<script setup>
import Avatar from "@/components/Avatar.vue";
import { meleeAvatarColors } from "@/constants";
defineProps({
  players: {
    type: Array,
    default: () => [],
  },
  blueTeam: {
    type: Array,
    default: () => [],
  },
  redTeam: {
    type: Array,
    default: () => [],
  },
  showRank: {
    type: Boolean,
    default: false,
  },
  winner: {
    type: Number,
    default: 2,
  },
});
</script>

<template>
  <view class="container">
    <image
      :src="`../static/battle-header${blueTeam.length ? '' : '-melee'}.png`"
      mode="widthFix"
    />
    <view v-if="players.length" class="players-melee">
      <view
        v-for="(player, index) in players"
        :key="index"
        :style="{
          backgroundColor: meleeAvatarColors[index],
          width: `${Math.max(100 / players.length, 18)}vw`,
        }"
      >
        <Avatar
          :src="player.avatar"
          :size="40"
          :rank="showRank ? index + 1 : 0"
        />
        <text class="player-name">{{ player.name }}</text>
      </view>
    </view>
    <view v-if="blueTeam.length && redTeam.length" class="players">
      <view>
        <Avatar :src="blueTeam[0].avatar" :rankLvl="blueTeam[0].rankLvl" />
        <text class="player-name">{{ blueTeam[0].name }}</text>
        <image
          v-if="winner === 1"
          src="../static/winner-badge.png"
          mode="widthFix"
        />
      </view>
      <view>
        <Avatar
          v-if="redTeam[0]"
          :src="redTeam[0].avatar"
          :rankLvl="redTeam[0].rankLvl"
        />
        <text class="player-name">{{ redTeam[0].name }}</text>
        <image
          v-if="winner === 0"
          src="../static/winner-badge.png"
          mode="widthFix"
        />
      </view>
    </view>
  </view>
</template>

<style scoped>
.container {
  width: 100%;
  position: relative;
  margin-bottom: 10px;
  padding-top: 5px;
}
.container > image:first-child {
  position: absolute;
  width: 100%;
  top: -5px;
  z-index: 1;
}
.players {
  display: flex;
}
.players > view {
  width: 50%;
  height: 85px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff9;
  font-size: 12px;
  margin-top: 15px;
  overflow: hidden;
  position: relative;
  padding-top: 5px;
}
.players > view:first-child {
  background-color: #364469;
}
.players > view:last-child {
  background-color: #692735;
}
.players > view > image:last-child {
  position: absolute;
  width: 60px;
  right: 0;
  bottom: 0;
}
.players-melee {
  display: flex;
  height: 85px;
  width: 100%;
  margin-top: 15px;
  overflow-x: auto;
}
.players-melee > view {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff9;
  font-size: 12px;
  padding-top: 5px;
  flex: 0 0 auto;
}
.player-name {
  margin-top: 5px;
  width: 80%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}
</style>
