-- 势力拍卖分红界面 local UIGuildAuctionShareOutBonus = UIViewClass() local AuctionEnumType = MDL.GuildAuction.GuildAuctionShareBonusState local DEFAULT_ACTIVITY_BG_PATH = ConstAssetPathConfig.DEFAULT_ACTIVITY_BG_PATH local JadeId = 5 local MoneyId = 4 function UIGuildAuctionShareOutBonus:OnOpened(context) self:RegistSystemEvent(EventID.UI_Guild_AuctionShareBonusRefresh, self.RefreshPanel) self:RegistSystemEvent(EventID.UI_Guild_Leave, self.RefreshPanel) self:RegistSystemEvent(EventID.New_Day_Refresh, self.RefreshPanel) self:RegistSystemEvent(EventID.UI_Guild_BeKickOutRefresh, self.Init) -- 设置当前类型为分红页签 MDL.GuildAuction.SetCurAuctionType(MDL.GuildAuction.AllAuctionType.GuildAuctionShare) UIUtils.SetActive(self.group_WeekBonusInfo.gameObject, false) UIUtils.SetLabelText(self.lab_ViewWeekBonus, Const_IDS.IDS_GuildAuctionBonus_NewHint_2) UIUtils.SetLabelText(self.lab_BonusTips, Const_IDS.IDS_GuildAuction_Intro) UIUtils.SetLabelText(self.lab_CurrBonusInfo, Const_IDS.IDS_GuildAuctionBonus_NewHint_2) self:Init() end function UIGuildAuctionShareOutBonus:Init() MDL.Guild.GetGuildAuctionInfoReq() end function UIGuildAuctionShareOutBonus:RefreshPanel() self.curActivityID = CTL.Activities.GetOpenGuildActivitiesIDByWeek() -- 今日无活动 if self.curActivityID == 0 then self.state_Activity:SetState(1) UIUtils.SetActive(self.txt_TodayAct, false) UIUtils.SetLabel(self.txt_Name, "") UIUtils.SetLabel(self.txt_Time, "") UIUtils.SetGray(self.img_bg, true) UIUtils.SetActive(self.txt_TodayAct, true) UIUtils.SetActive(self.group_BonusPreview, false) UIUtils.SetImageByAssetBundle(self.img_bg, DEFAULT_ACTIVITY_BG_PATH) UIUtils.SetLabel(self.txt_CurrBonus1Num, 0) UIUtils.SetLabel(self.txt_CurrBonus2Num, 0) UIUtils.SetLabel(self.txt_WeekBonus1Num, 0) UIUtils.SetLabel(self.txt_WeekBonus2Num, 0) else self.state_Activity:SetState(0) UIUtils.SetActive(self.txt_TodayAct, true) UIUtils.SetLabelText(self.txt_TodayAct, Const_IDS.IDS_GuildAuction_FunctionName) UIUtils.SetActive(self.group_BonusPreview, true) -- 设置今日活动 local activityData = DataSheetManager.ActivityData:GetDataByID(self.curActivityID) UIUtils.SetLabelText(self.txt_Name, Const_IDS[activityData.Activity]) local imgPath = DataSheetManager.GuildAuctionShare:GetDataByID(self.curActivityID).Image UIUtils.SetGray(self.img_bg, false) UIUtils.SetImageByAssetBundle(self.img_bg, imgPath) local date, time = CTL.Activities.GetDetailsTimeDesc(activityData) UIUtils.SetLabel(self.txt_Time, time) self:DisplayBonus() end -- 无势力 self.btn_Recieve:SetRedPoint(false) if not MDL.Guild.IsHasGuild() then -- 没有势力的显示 self.state_Button:SetState(1) UIUtils.SetLabel(self.txt_CurrBonus1Num, 0) UIUtils.SetLabel(self.txt_CurrBonus2Num, 0) UIUtils.SetLabel(self.txt_WeekBonus1Num, 0) UIUtils.SetLabel(self.txt_WeekBonus2Num, 0) else self.state_Button:SetState(0) local shareBonusInfo = MDL.Guild.GetWeekAccumulatedAuctionBonus() local jadeNum = (shareBonusInfo.WeekTotalBonus[JadeId] or 0) - (shareBonusInfo.ReceivedBonus[JadeId] or 0) local yuanbaoNum = (shareBonusInfo.WeekTotalBonus[MoneyId] or 0) - (shareBonusInfo.ReceivedBonus[MoneyId] or 0) self.canReceive = jadeNum > 0 or yuanbaoNum > 0 UIUtils.SetLabel(self.txt_CurrBonus1Num, jadeNum) UIUtils.SetLabel(self.txt_CurrBonus2Num, yuanbaoNum) UIUtils.SetLabel(self.txt_WeekBonus1Num, shareBonusInfo.WeekTotalBonus[JadeId] or 0) UIUtils.SetLabel(self.txt_WeekBonus2Num, shareBonusInfo.WeekTotalBonus[MoneyId] or 0) local rectTrans = self.group_CurrBonusInfo:GetComponent(typeof(RectTransform)) UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(rectTrans) end self.btn_Recieve:SetRedPoint(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.GuildAuction_ShareBonus)) end function UIGuildAuctionShareOutBonus:DisplayBonus() if not MDL.Guild.IsHasGuild() then self:PreviewBonus() return end local shareBonusInfo = MDL.Guild.GetGuildAuctionShareBonusInfo(self.curActivityID) local auctionRewardType = shareBonusInfo.auctionRewardType --拍卖结束 if auctionRewardType == AuctionEnumType.ClosedAndCanNotReward or auctionRewardType == AuctionEnumType.ClosedAndNoReward or auctionRewardType == AuctionEnumType.ClosedAndHasReward then local auctionShareMoney = shareBonusInfo.bonusItems[1] ~= nil and shareBonusInfo.bonusItems[1].itemCount or 0 local auctionShareJade = shareBonusInfo.bonusItems[2] ~= nil and shareBonusInfo.bonusItems[2].itemCount or 0 local famousShareJade = shareBonusInfo.bonusItems[3] ~= nil and shareBonusInfo.bonusItems[3].itemCount or 0 local isAll = shareBonusInfo.isAllReward self:SetTodayShareBonus(auctionShareJade + famousShareJade, auctionShareMoney, isAll) else self:PreviewBonus() end end function UIGuildAuctionShareOutBonus:SetTodayShareBonus(auctionShareJade, auctionShareMoney, isAllReward) self.group_BonusPreview:SetState(1) UIUtils.SetLabelText(self.txt_BonusPreview, Const_IDS["IDS_GuildAuctionBonus_NewHint_6"]) if auctionShareJade <= 0 and auctionShareMoney <= 0 then UIUtils.SetActive(self.group_TodayBonus1.gameObject, true) UIUtils.SetActive(self.group_TodayBonus2.gameObject, true) else UIUtils.SetActive(self.group_TodayBonus1.gameObject, auctionShareJade > 0) UIUtils.SetActive(self.group_TodayBonus2.gameObject, auctionShareMoney > 0) end UIUtils.SetLabel(self.txt_TodayBonus1Num, isAllReward == true and auctionShareJade or UTL.Color.FormatRedColor(auctionShareJade)) UIUtils.SetLabel(self.txt_TodayBonus2Num, isAllReward == true and auctionShareMoney or UTL.Color.FormatRedColor(auctionShareMoney)) UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(self.group_TodayBonus1) UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(self.group_TodayBonus2) UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(self.group_TodayBonus) end function UIGuildAuctionShareOutBonus:PreviewBonus() self.group_BonusPreview:SetState(0) local lowJade, maxJade = CTL.GuildAuction.GetAuctionPreviewRange(self.curActivityID) UIUtils.SetLabel(self.txt_Num1, lowJade .. "-" .. maxJade .. "+") UIUtils.SetLabelText(self.txt_BonusPreview, Const_IDS["IDS_Auction_BonusPreview"]) end function UIGuildAuctionShareOutBonus:OnButtonClicked(comp) if comp == self.btn_Recieve then if not self.canReceive then CTL.Tips.AddTipsMsg(Const_IDS["IDS_GuildAuctionBonus_NewHint_4"]) return end MDL.Guild.RewardAuctionBonusReq(MDL.GuildAuction.AuctionGuildShareIndex[self.curActivityID]) elseif comp == self.btn_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UIGuildFamousPop) elseif comp == self.btn_AddGuild then CTL.Guild.OpenGuildMain() elseif comp == self.btn_ViewWeekBonus then UIUtils.SetActive(self.group_WeekBonusInfo.gameObject, true) elseif comp == self.group_WeekBonusInfo then UIUtils.SetActive(self.group_WeekBonusInfo.gameObject, false) end end return UIGuildAuctionShareOutBonus