--[[ 背包快捷使用面包 ]] local UIBagItemFastApply = UIViewClass() local USETIME = 5 local EventSystem = require 'Event/EventSystem' function UIBagItemFastApply:OnOpened(context) self:RegistSystemEvent(EventID.Bag_UpdateQuickUse, self.UpdateQuickUseItem) self:RegistSystemEvent(EventID.Bag_OperateItem, self.DeleteQuickUseItem) self.parentView = context.parentView self:SetQuickUseItem(context.data) self:SetPushStyle(LuaConst.PushStyleEnum.NOTCLOSE) end function UIBagItemFastApply:DeleteQuickUseItem(operateItemType, deleteData) if operateItemType ~= MDL.Bag.ItemOperType.DeleteOneItem then return end if not self.quickUseData or not deleteData then return end if self.quickUseData.itemCfgId ~= deleteData.CfgId then return end self.quickUseData.count = self.quickUseData.count - deleteData.Count if self.quickUseData.count<=0 then self:CloseView() else self:SetQuickUseItem(self.quickUseData) end end function UIBagItemFastApply:UpdateQuickUseItem(quickUseData) if not quickUseData then self:OnButtonClicked(self.btn_Close) return end if not self.quickUseData or not quickUseData then return end if self.quickUseData.itemCfgId ~= quickUseData.itemCfgId then return end self:SetQuickUseItem(quickUseData) end function UIBagItemFastApply:SetQuickUseItem(quickUseData) self.quickUseData = quickUseData UTL.Item.SetItemCell(self.Item, self.quickUseData.itemCfgId, self.quickUseData.count) local itemData = DataSheetManager.ItemData:GetDataByID(self.quickUseData.itemCfgId) --道具名称 local colorText = UTL.Color.FormatQualityText(UTL.Item.GetItemDataSpliceByType(self.quickUseData.itemCfgId).Name, itemData.Color) UIUtils.SetLabel(self.txt_ItemName, colorText) self:StopRepeatFunc(self.OnUpdateFun) self:StartRepeatFunc(self.OnUpdateFun, USETIME) local timeStr = UIUtils.GetLocalizedTxt(Const_IDS.IDS_Item_fuc1) self.cdTime:ResetAndBeginCustomTimer(false,USETIME,0,timeStr,1) end function UIBagItemFastApply:OnUpdateFun(deltaTime, timeSinceUpdate) if timeSinceUpdate >= USETIME then if self.context.isUse then self:OnButtonClicked(self.btn_Apply) else self:OnButtonClicked(self.btn_Close) end end end --以下为按钮点击事件 function UIBagItemFastApply:OnClickApply() CTL.ItemUse.TryUseItemByCfgId(self.quickUseData.itemCfgId, true) end function UIBagItemFastApply:OnButtonClicked(comp) if(comp==self.btn_Apply) then self:OnClickApply() self:CloseView() elseif(comp==self.btn_Close) then self:CloseView() EventSystem.Dispatch(EventID.BagItemFastApply_ClickClose, self.quickUseData.itemCfgId) end end function UIBagItemFastApply:OnClosed() CTL.Bag.DeleteQuickUseItem(self.quickUseData.itemCfgId) self.parentView:CheckPanelClose() end return UIBagItemFastApply