local UIGuildMineMyMine = UIViewClass() function UIGuildMineMyMine:OnOpened(context) self:RegistSystemEvent(EventID.UI_GuildMine_CloseView, self.OnBackButtonPressed) -- GMS self:RegistSystemEvent(EventID.UI_Guild_BeKickOutRefresh, self.OnBackButtonPressed) -- 被踢出势力 self:RegistSystemEvent(EventID.UI_GuildMine_MyMine_Create, self.StartMining) -- 创建开始挖矿 self:RegistSystemEvent(EventID.UI_GuildMine_MyMine_Refresh, self.Refresh) -- 刷新 self:RegistSystemEvent(EventID.UI_GuildMine_MyMine_ReTimes, self.RefreshBtns) -- 按钮刷新 self:RegistSystemEvent(EventID.BagItem_Update, self.RefreshBtns) -- 背包道具数量变化 MDL.GuildMine.GetMineLevelRequest(MDL.GuildMine.GetMineOptType.GetLevel) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_Mine_MyMine) self:InitMinesRewards() self:InitStartMiningBtn() self:Refresh() end function UIGuildMineMyMine:StartMining() CTL.Tips.AddTipsMsg(Const_IDS["IDS_Mine_StartMining"]) self:CloseView() CTL.Sound.PlayGameSound("UI_open") end function UIGuildMineMyMine:InitMinesRewards() for i = 1, 4 do local mineRewardId = DataSheetManager.MineQuality:GetDataByID(i).MineReward local rewardData = DataSheetManager.MineRewardRepeat:GetDataByID(mineRewardId).Item_Table for _, reward in ipairs(rewardData) do self.group_MineInfo[i].loop_Reward:AddData(reward, 0) end end end function UIGuildMineMyMine:InitStartMiningBtn() local dailyCollectLimitNum = MDL.GuildMine.MineDailyCollectNum self.collectCount = dailyCollectLimitNum - MDL.GuildMine.GetMineCollectNum() local str if self.collectCount == 0 then str = UTL.Color.FormatRedColor(0).."/"..dailyCollectLimitNum else str = self.collectCount.."/"..dailyCollectLimitNum end UIUtils.SetLabel(self.txt_MiningTimes, string.FormatByIdsId(Const_IDS.IDS_Mine_MiningTimes, str)) end function UIGuildMineMyMine:Refresh() self:RefreshMineSelect() self:RefreshBtns() end function UIGuildMineMyMine:RefreshMineSelect() self.curMineLevel = MDL.GuildMine.GetCurMineLevel() for i = 1, 4 do local isSelect = i == self.curMineLevel UIUtils.SetActive(self.group_MineInfo[i].group_Now, isSelect) -- 设置选中特效 if isSelect then self.group_MineInfo[i].effect_SelectedLight:PlayUIEffect() else self.group_MineInfo[i].effect_SelectedLight:StopUIEffect() end end end function UIGuildMineMyMine:RefreshBtns() -- 领取金矿按钮 self.goldMineTokenItemId = DataSheetManager.ConstData:GetDataByID("GoldMineTokenItem").IntValue local bagGoldMineTokenCount = UTL.Item.GetItemStockCount(self.goldMineTokenItemId) local needGoldMineTokenNum = DataSheetManager.ConstData:GetDataByID("GoldMineTokenItemNum").IntValue self.goldMineTokenEnough = bagGoldMineTokenCount >= needGoldMineTokenNum if self.goldMineTokenEnough then UIUtils.SetLabel(self.txt_CollectTimes, string.format("%s/%s", UTL.Color.FormatGreenColor(bagGoldMineTokenCount), needGoldMineTokenNum)) else UIUtils.SetLabel(self.txt_CollectTimes, string.format("%s/%s", UTL.Color.FormatRedColor(bagGoldMineTokenCount), needGoldMineTokenNum)) end -- 刷新按钮 local dailyRefreshLimitNum = DataSheetManager.ConstData:GetDataByID("MineDailyRefreshNum").IntValue self.refreshCount = dailyRefreshLimitNum - MDL.GuildMine.GetMineRefreshCount() local str if self.refreshCount == 0 then str = UTL.Color.FormatRedColor(0).."/"..dailyRefreshLimitNum else str = self.refreshCount.."/"..dailyRefreshLimitNum end UIUtils.SetLabel(self.txt_RefreshTimes, string.FormatByIdsId(Const_IDS.IDS_Mine_RefreshTimes, str)) end function UIGuildMineMyMine:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIGuildMineMyMine:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() elseif comp == self.btn_Collect then self:OnClickBtnCollect() elseif comp == self.btn_Refresh then self:OnClickBtnRefresh() elseif comp == self.btn_Start then self:OnClickBtnStartMining() end end function UIGuildMineMyMine:OnClickBtnCollect() if self.collectCount <= 0 then CTL.Tips.AddTipsMsg(Const_IDS["IDS_Mine_NoMiningTimes"]) return end if not self.goldMineTokenEnough then CTL.Tips.AddTipsMsg(string.FormatByIdsId(Const_IDS.IDS_Guild_CommonFail1, UTL.Item.GetItemDataSpliceByType(self.goldMineTokenItemId).Name)) return end if MDL.GuildMine.IsGoldMineLevel() then CTL.Tips.AddTipsMsg(Const_IDS["IDS_Mine_HighestQuality"]) return end if not CTL.Activities.IsActivityInOpeningTime(LuaConst.ActivityType.GuildMine) then CTL.Tips.AddTipsMsg(Const_IDS["IDS_RebelStrike_NotAtActivityTime"]) return end MDL.GuildMine.GetMineLevelRequest(MDL.GuildMine.GetMineOptType.DrawGold) end function UIGuildMineMyMine:OnClickBtnRefresh() if self.refreshCount <= 0 then CTL.Tips.AddTipsMsg(Const_IDS["IDS_Mine_NoRefreshTimes"]) return end if MDL.GuildMine.IsGoldMineLevel() then CTL.Tips.AddTipsMsg(Const_IDS["IDS_Mine_HighestQuality"]) return end if not CTL.Activities.IsActivityInOpeningTime(LuaConst.ActivityType.GuildMine) then CTL.Tips.AddTipsMsg(Const_IDS["IDS_RebelStrike_NotAtActivityTime"]) return end MDL.GuildMine.GetMineLevelRequest(MDL.GuildMine.GetMineOptType.RefreshLevel) end function UIGuildMineMyMine:OnClickBtnStartMining() if self.collectCount <= 0 then CTL.Tips.AddTipsMsg(Const_IDS["IDS_Mine_NoMiningTimes"]) return end if not CTL.Activities.IsActivityInOpeningTime(LuaConst.ActivityType.GuildMine) then CTL.Tips.AddTipsMsg(Const_IDS["IDS_RebelStrike_NotAtActivityTime"]) return end MDL.GuildMine.CreatMineRequest() end function UIGuildMineMyMine:OnCellInit(scrollRect, index, cellTable, data) -- 当前界面只有item cell UTL.Item.SetItemCell(cellTable.item, data.ItemID, data.ItemNum) end function UIGuildMineMyMine:OnCellClicked(scrollRect, index, cellTable, target, data) UTL.ItemTips.ShowCommonTipsById(data.ItemID) end return UIGuildMineMyMine