local UIBattlePlayerHeadBase = require("View/Battle/UIBattlePlayerHeadBase") local UIHeadCircleAdjutant = UIViewClass(UIBattlePlayerHeadBase) function UIHeadCircleAdjutant:OnOpened(context) self.headInfo = BattleDataGetter.GetHeadInfoByPlayerID_SelectOneRevive(context.playerID) self.isSelf = BattleDataGetter.GetCurPlayerID() == context.playerID self:InitMainHead() self:InitLeftHead() self:InitRightHead() self:RegistEvent() end function UIHeadCircleAdjutant:InitMainHead() self:SetHeroState(self.group_PlayerPortrait_Big,self.headInfo[1].heroID,self.headInfo[1].reviveTime,self.headInfo[1].reviveTotalTime) self:SetPlayerHp(self.group_PlayerPortrait_Big.img_CountDown_Green,self.headInfo[1].hpPercent) end function UIHeadCircleAdjutant:InitLeftHead() if self.headInfo[2] then self:SetHeroState(self.group_PlayerPortrait_Small_Left,self.headInfo[2].heroID,self.headInfo[2].reviveTime,self.headInfo[2].reviveTotalTime) end end function UIHeadCircleAdjutant:InitRightHead() if self.headInfo[3] then self:SetHeroState(self.group_PlayerPortrait_Small_Right,self.headInfo[3].heroID,self.headInfo[3].reviveTime,self.headInfo[3].reviveTotalTime) end end function UIHeadCircleAdjutant:SetHeroState(obj, heroId, reviveTime,totalTime) UTL.Item.SetHeroIconByHeroId(obj.texture_Head, heroId, BattleDataGetter.GetHeroIsAwaken(self.context.playerID, heroId)) UIUtils.SetGray(obj.texture_Head,false) if reviveTime and reviveTime > 0 then obj.img_CountDown_BlackCover.gameObject:SetActive(true) obj.txt_Number:ResetAndBeginTimer(false,math.ceil(reviveTime),math.ceil(totalTime)) else obj.img_CountDown_BlackCover.gameObject:SetActive(false) obj.txt_Number:EndTimer() end end function UIHeadCircleAdjutant:GetTime(value) if value then return (value - LogicUpdateManager._clientHandleFrame) * LuaConst.TimeSpan end end function UIHeadCircleAdjutant:SetPlayerHp(obj, hpPercent) obj.fillAmount = hpPercent or 1 end function UIHeadCircleAdjutant:OnHeroDead(playerID) if playerID == self.context.playerID then self.headInfo = BattleDataGetter.GetHeadInfoByPlayerID_SelectOneRevive(self.context.playerID) self:InitMainHead() end end function UIHeadCircleAdjutant:OnSwitchHero(switchHeroType, entity) if entity:GetPlayerID() == self.context.playerID then self.headInfo = BattleDataGetter.GetHeadInfoByPlayerID_SelectOneRevive(self.context.playerID) self:InitMainHead() self:InitLeftHead() self:InitRightHead() end end function UIHeadCircleAdjutant:OnHPMessageChanged(entity) if entity:GetPlayerID() == self.context.playerID then local comp_Attr = entity.components.attr local hplmt = comp_Attr:GetAttrValueNum(LuaConst.AttrType.hplmt) if hplmt <= 0 then return end local hp = FP.tonumberV1(comp_Attr.hp) local pc = FP.tonumberV1(comp_Attr.pc) local totalValue = pc + hp >= hplmt and pc + hp or hplmt self:SetPlayerHp(self.group_PlayerPortrait_Big.img_CountDown_Green,hp/totalValue) end end function UIHeadCircleAdjutant:OnPlayerRevive(entity) if entity:GetPlayerID() == self.context.playerID then self.headInfo = BattleDataGetter.GetHeadInfoByPlayerID_SelectOneRevive(self.context.playerID) self:InitMainHead() end end function UIHeadCircleAdjutant:OnPlayerQuit(playerID) if playerID == self.context.playerID then self:CloseView() end end return UIHeadCircleAdjutant