-- 魔神布阵界面 local UIFreeLineupSelectOfficer = require("View/FreeLineUp/UIFreeLineupSelectOfficer") local UIDemonGodSelectOfficer = UIViewClass(UIFreeLineupSelectOfficer) --region--------------------- 子类重写方法 -------------------------- -- 初始化 -- OVERRIDE function UIDemonGodSelectOfficer:Init() self:RegistSystemEvent(EventID.UI_DemonGod_RefreshMainUI, self.RefreshSelectOfficerView) -- 设置标题 UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS.IDS_DemonGod_UI_9) UIUtils.SetActive(self.btn_Fight, true) UIUtils.SetActive(self.btn_Formation, true) UIUtils.SetActive(self.btn_Next, false) UIUtils.SetActive(self.img_ScoreBg.gameObject, true) self.DemonGodInfo = MDL.DemonGod.GetDemonGodInfo() self.curKingdom = self.DemonGodInfo.country --国别使用服务器的数据 end -- 刷新界面信息 -- OVERRIDE function UIDemonGodSelectOfficer:RefreshSelectOfficerView() self.demonGodCfg = DataSheetManager.DemonGodBoss:GetDataByID(self.DemonGodInfo.curBossId) self.allDamage, self.maxDamage = MDL.DemonGod.GetLineUpMaxDamage() UIUtils.SetLabel(self.txt_TotalScore, string.FormatByIdsId(Const_IDS.IDS_DemonGod_UI_46, self.allDamage)) -- 三军总伤害 self:RefreshHeroList() end -- 面板右侧显示 -- OVERRIDE function UIDemonGodSelectOfficer:RefreshRightPanelInfo() UIUtils.SetLabel(self.txt_BR, 0) UIUtils.SetActive(self.group_Sopt1.img_Lock,self:IsTeamPosLockedUp(self.selectTeamId)) UIUtils.SetActive(self.group_Sopt2.img_Lock,self:IsTeamPosLockedUp(self.selectTeamId)) UIUtils.SetLabel(self.txt_HighestScore, UIUtils.GetLocalizedTxt(Const_IDS.IDS_DemonGod_UI_20)..":"..MDL.DemonGod.GetTeamMaxDamageByTeamID(self.selectTeamId)) -- 最高伤害 UIUtils.SetLabel(self.txt_Tips, "") end -- 检查上阵情况 -- OVERRIDE function UIDemonGodSelectOfficer:CheckHeroLineups() local activityData = DataSheetManager.ActivityData:GetDataByID(self.curActivityType) if not UTL.Time.IsServerInOpeningTime(activityData.Time_Table[1].StartTime, activityData.Time_Table[1].EndTime) then CTL.Tips.AddTipsMsg(Const_IDS.IDS_GoldHeroActivity_TimeHint3) return false end -- 必须要至少有一个主将才能进战斗 if self:GetTeamPos(1, 1) <= 0 and self:GetTeamPos(1, 2) <= 0 and self:GetTeamPos(1, 3) <= 0 then CTL.Tips.AddTipsMsg(Const_IDS.IDS_DemonGod_UI_12) return false end -- 存在一军仅装备了副将,需将其更改为主将出战 if (self:GetTeamPos(2, 1) > 0 and self:GetTeamPos(1, 1) <= 0) or (self:GetTeamPos(2, 2) > 0 and self:GetTeamPos(1, 2) <= 0) or (self:GetTeamPos(2, 3) > 0 and self:GetTeamPos(1, 3) <= 0) then CTL.Tips.AddTipsMsg(Const_IDS.IDS_DemonGod_UI_49) return false end self:SetLineUps() return true end -- 按钮点击执行逻辑 -- OVERRIDE function UIDemonGodSelectOfficer:ExecuteFightFunc() -- 检查阵容上将情况 if self:CheckHeroLineups() then MDL.DemonGod.EnterDemonGodRequest(self.demonGodCfg.MissonDataID, MDL.FreeLineUp.GetFreeLineUpLineNumber(self.freeLineupFuncType)) end end -- 槽位是否已放武将 -- OVERRIDE function UIDemonGodSelectOfficer:IsTeamPosLockedUp(selectTeamID) return MDL.DemonGod.GetTeamLockState(selectTeamID) end -- OVERRIDE 魔神降世默认只保存1的lineNumber function UIDemonGodSelectOfficer:SetLineUps() local activityData = DataSheetManager.ActivityData:GetDataByID(self.curActivityType) if UTL.Time.IsServerInOpeningTime(activityData.Time_Table[1].StartTime, activityData.Time_Table[1].EndTime) then MDL.FreeLineUp.FreeLineUpSetRequest( self.freeLineupFuncType, MDL.FreeLineUp.GetFreeLineUpLineNumber(self.freeLineupFuncType), MDL.FreeLineUp.SetType.Official, self.allHeroList ) else CTL.Tips.AddTipsMsg(Const_IDS.IDS_GoldHeroActivity_TimeHint3) end end --endregion------------------------------------------------------------------- return UIDemonGodSelectOfficer