local UIDigTreasureSelection = UIViewClass() local itemArr = { [1] = {id = 51}, [2] = {id = 52}, } function UIDigTreasureSelection:OnOpened(context) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS["IDS_ActivityName_DigTreasure"]) self:SetItem() self:InitExtraReward() self:RegistSystemEvent(EventID.BagItem_Update, self.SetItem) self:RegistSystemEvent(EventID.DigTreasure_RefreshSwitchState, self.RefreshExtraToggleState) end function UIDigTreasureSelection:SetItem() for i, v in ipairs(self.group_Items) do local itemId = itemArr[i].id local itemData = DataSheetManager.ItemData:GetDataByID(itemId) local count = MDL.Bag.GetItemCount(itemId) local QualityName = UTL.Color.FormatQualityText( UIUtils.GetLocalizedTxt(Const_IDS[itemData.Name]), itemData.Color ) if count <= 0 then count = UTL.Color.FormatRedColor(count) v.event_Use:SetGray(true, true) end v.id = itemId UTL.Item.SetItemCell(v.Item, itemId, count) -- 图标 UIUtils.SetLabel(v.txt_ItemName, QualityName) -- 名称 end end function UIDigTreasureSelection:OnEventUseClick(index) local id = itemArr[index].id local count = MDL.Bag.GetItemCount(id) if count <= 0 then CTL.Tips.AddTipsMsg(Const_IDS["IDS_DigTreasure_WindowTips_None"]) return end self:TryUseTreasureMap(id) end function UIDigTreasureSelection:TryUseTreasureMap(id) if CTL.ItemUse.CanUseItem(nil, id, true) then local useableItemData = DataSheetManager.UseableItem:GetDataByUseableID(id) if useableItemData and useableItemData.Reading > 0 then self:CloseAllPanel() CTL.ItemUse.TryUseItemProgress(id, useableItemData.Reading, useableItemData.ReadingIDS) end end end function UIDigTreasureSelection:CloseAllPanel() UIManager.RecoverTopView() CTL.HomeMain.CloseOpenView() self:CloseView() end function UIDigTreasureSelection:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIDigTreasureSelection:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() elseif comp == self.img_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.DigTreasureExtraReward}) end for _, v in ipairs(self.group_Items) do if comp == v.Item.event_Click then UTL.ItemTips.ShowCommonTipsById(v.id) end end for i, _ in ipairs(itemArr) do if comp == self.group_Items[i].event_Use then self:OnEventUseClick(i) elseif comp == self.group_Items[i].event_Use then self:OnEventUseClick(i) end end end function UIDigTreasureSelection:OnValueChanged(comp, state) if comp == self.toggle_extra then local info = MDL.Task.GetTreasureRewardInfo() if state ~= info.isOpenSwitch then MDL.Task.ChangeDigTreasureSwitchReq(state) end end end function UIDigTreasureSelection:InitExtraReward() local info = MDL.Task.GetTreasureRewardInfo() local extraRewardCount = info.rewardCountLeft local extraTotalCount = DataSheetManager.ConstData:GetDataByID("DigTreasureDailyHelpTimes").IntValue if extraRewardCount > 0 then self.toggle_extra.isOn = info.isOpenSwitch UIUtils.SetLabel(self.txt_num, extraRewardCount .. "/" .. extraTotalCount) UIUtils.SetActive(self.group_ExtraRewardNum.gameObject, true) else UIUtils.SetActive(self.group_ExtraRewardNum.gameObject, false) end end function UIDigTreasureSelection:RefreshExtraToggleState() local info = MDL.Task.GetTreasureRewardInfo() self.toggle_extra.isOn = info.isOpenSwitch end return UIDigTreasureSelection