local UISlgGvESummaryPanel = UIViewClass() local ClimbTowerAutoQuit = DataSheetManager.ConstData:GetDataByID("ClimbTowerAutoQuit").IntValue function UISlgGvESummaryPanel:OnOpened(context) self.isWin = context.isWin self.gveInfo = context.gveInfo self.leftTime = ClimbTowerAutoQuit self.txt_Tips.text = string.FormatByIdsId(Const_IDS.IDS_ClimbTower_AutoQuit, self.leftTime) self:StartRepeatFunc(self.OnUpdate, 1, -1, true) self:RefreshSummaryPanelTitle() self:RefreshSummaryPanelInfo() end function UISlgGvESummaryPanel:RefreshSummaryPanelTitle() if self.gveInfo.battleType == 2 and (self.gveInfo.plotType == MDL.SlgGvE.GridType.Elite or self.gveInfo.plotType == MDL.SlgGvE.GridType.Boss ) then self.state_result:SetState(2) UIUtils.SetActive(self.group_Fail, not self.isWin) CTL.Sound.PlayGameSound("MUSIC_Victory") else CTL.LevelSelect.ShowCommonSummaryTemplate(self, self.isWin) if self.isWin then self.state_result:SetState(1) CTL.Sound.PlayGameSound("MUSIC_Victory") else self.state_result:SetState(0) CTL.Sound.PlayGameSound("MUSIC_Fail") end end end function UISlgGvESummaryPanel:RefreshSummaryPanelInfo() if self.gveInfo.battleType == 1 then --贼兵 if self.isWin then self.state_battle:SetState(2) self:RefreshRewards() else self.state_battle:SetState(3) end elseif self.gveInfo.battleType == 2 then --守军 if self.gveInfo.plotType == MDL.SlgGvE.GridType.Elite or self.gveInfo.plotType == MDL.SlgGvE.GridType.Boss then --精英/boss self.state_battle:SetState(1) self:RefreshBossAndCityDamage() else if self.isWin then self.state_battle:SetState(0) self:RefreshRevenueAdd() self:RefreshRewards() else self.state_battle:SetState(3) end end end end function UISlgGvESummaryPanel:RefreshRevenueAdd() local plotData = DataSheetManager.SlgGvEPlotData:GetDataByGveMapID(self.gveInfo.plotId) local data = DataSheetManager.SlgGvEHoldReward:GetDataByGveHoldRewardID(plotData.GveHoldRewardID) for i = 1, 3 do if i > #data.LootRule_Table then UIUtils.SetActive(self.group_material[i].gameObject, false) else UIUtils.SetActive(self.group_material[i].gameObject, true) local itemId = CTL.SlgGvE.MaterialsItemId[data.LootRule_Table[i].GvereSourcesID] UTL.Item.ItemSquareIcon(self.group_material[i].icon_material, nil, itemId) local itemNameAndDesc = UTL.Item.GetItemDataSpliceByType(itemId) self.group_material[i].lab_name.text = itemNameAndDesc.Name self.group_material[i].lab_num.text = string.FormatByIdsId(Const_IDS.IDS_SlgGve_Main_Hint_1, CTL.SlgGvE.GetMaterialEarnNum(data.LootRule_Table[i].ItemNum)) end end end function UISlgGvESummaryPanel:RefreshRewards() if self.gveInfo.rewards and #self.gveInfo.rewards > 0 then self.RewardScroll:ReloadAll(self.gveInfo.rewards) end end function UISlgGvESummaryPanel:RefreshBossAndCityDamage() self.lab_DamageNum.text = string.format("%s(%s)", UTL.String.GetCountStr(self.gveInfo.damage), UTL.Attr.FormatNumberToPercentage(self.gveInfo.damage / self.gveInfo.bossMaxHp, 2)) self.lab_BloodName.text = string.format("%s(%s)", UTL.String.GetCountStr(self.gveInfo.bossLeftHp), UTL.Attr.FormatNumberToPercentage(self.gveInfo.bossLeftHp / self.gveInfo.bossMaxHp, 2)) end function UISlgGvESummaryPanel:OnUpdate(deltaTime, timeSinceUpdate) local timeOffset = self.leftTime - timeSinceUpdate if timeOffset > 0 then self.txt_Tips.text = string.FormatByIdsId(Const_IDS.IDS_ClimbTower_AutoQuit, timeOffset) else self:OnButtonClicked(self.btn_Exit) end end function UISlgGvESummaryPanel:OnButtonClicked(comp) if comp == self.btn_Exit then self:CloseView() MDL.Level.SendRoleLeaveFuben() end end function UISlgGvESummaryPanel:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.RewardScroll then UTL.Item.SetItemCell(cellTable.item, data.ItemId, data.ItemCount) end end function UISlgGvESummaryPanel:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.RewardScroll then if target == cellTable.item.event_Click then UTL.ItemTips.ShowCommonTipsById(data.ItemId) end end end return UISlgGvESummaryPanel