local UIDemonGodBattle = UIViewClass() local floor = math.floor local TOTAL_COUNTDOWN = DataSheetManager.ConstData:GetDataByID("DemonGodEachArmyTimeMax").IntValue function UIDemonGodBattle:OnOpened(context) self:RegistSystemEvent(EventID.UIBattle_Level_OnBossBorn, self.OnBossBorn) self:RegistSystemEvent(EventID.UIBattle_DmgToBossChanged, self.OnUpdateDmg) self:RegistSystemEvent(EventID.UIBattle_Level_SetUpBoss, self.SetUpBoss) self:RegistSystemEvent(EventID.Level_SwitchHero, self.ResetRoundTime) self.comboViewRoot:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIBattleCombo), {isShowComboType = LuaConst.ComboType.IsKillHero}) self.progressRoot:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIBattleBossProgress)) self.dmgRecord = MDL.DemonGod.GetLineUpMaxDamage() self.txt_NumberRecord.text = self.dmgRecord self.txt_NumberNow.text = 0 self.curFightTime = 0 --多boss支持 self.isBossLifeBarActive = false self.bossLifeBarDic = {} self.bossLifeBarList = {} self.bossLifeBarDelayCreateRequestDic = {} end function UIDemonGodBattle:OnBossBorn(entity) local entityID = entity.EntityID if self.isBossLifeBarActive then self:CreateBossLifeBar(entityID) else self.bossLifeBarDelayCreateRequestDic[entityID] = true end end function UIDemonGodBattle:SetUpBoss(active, monsterId, entityID) self.isBossLifeBarActive = active if active then self:DealCreateBossLifeBarDelayReq() for k,v in pairs(self.bossLifeBarDic) do v:ActiveUI({entityID = k}) end else for k,v in pairs(self.bossLifeBarDic) do v:HideUI() end end end --region 支持双boss function UIDemonGodBattle:DealCreateBossLifeBarDelayReq() if self.isBossLifeBarActive then if self.bossLifeBarDelayCreateRequestDic then for entityID,v in pairs(self.bossLifeBarDelayCreateRequestDic) do self.bossLifeBarDelayCreateRequestDic[entityID] = nil self:CreateBossLifeBar(entityID) end end end end function UIDemonGodBattle:CreateBossLifeBar(entityID) local view = self.bossHPRoot:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIDemonGodBossHp), {entityID = entityID}, "GuildBoss/UIGuildBossBattleView") self.bossLifeBarDic[entityID] = view table.insert(self.bossLifeBarList,view) self:RefreshLayoutUI() return view end function UIDemonGodBattle:RefreshLayoutUI() local count = #self.bossLifeBarList if count > 1 then local width = count == 3 and 470 or 545 local scale = 0.6 -- 无选中 ,都一样的大小 local startPos = width * scale / 2 - (width * scale * count) / 2 for i = 1, count do local view = self.bossLifeBarList[i] view.gameObject.transform:SetSizeDelta(width, nil) self:SetBossHpUIPosAndScale(view, startPos, scale) startPos = startPos + scale * width end end end function UIDemonGodBattle:SetBossHpUIPosAndScale(view, posX, scale) view.gameObject.transform:SetLocalPosition(posX, 0, 0) view.gameObject.transform:SetLocalScale(scale, scale, scale) end --endregion 支持双boss function UIDemonGodBattle:ResetRoundTime() self.curFightTime = BattleDataGetter.GetCurFrameIndex() / LuaConst.LogicFrameRate end function UIDemonGodBattle:OnUpdateDmg() local curDmg = floor(BattleDataGetter.GetMyDamageToBoss()) self.txt_NumberNow.text = curDmg if curDmg > self.dmgRecord then self.dmgRecord = curDmg self.txt_NumberRecord.text = curDmg end end function UIDemonGodBattle:OnButtonClicked(comp) if comp == self.btn_Setting then UIManager.OpenView(Const_UI_Lua.UIEnum.UISettingMainPanel) elseif comp == self.btn_Exit then CTL.Setting.BackToTown() end end return UIDemonGodBattle