Files
2025-01-25 04:38:09 +08:00

134 lines
3.9 KiB
Lua

------------------------------------------------
--作者: 何健
--日期: 2019-05-30
--文件: UIGetItemTIps.lua
--模块: UIGetItemTIps
--描述: 物品获得快速使用界面
------------------------------------------------
local UIGetItemTIps = {
--物品显示
UIItem = nil,
--使用按钮
UseBtn = nil,
--按钮显示文字
UseLabel = nil,
--自动使用倒计时
RemainTime = 0,
--显示的物品数据
Data = nil,
CanClose = false
}
-- 继承Form函数
function UIGetItemTIps:OnRegisterEvents()
self:RegisterEvent(UIEventDefine.UIITEMGET_TIPS_OPEN,self.OnOpen)
self:RegisterEvent(UIEventDefine.UIITEMGET_TIPS_CLOSE,self.OnClose)
self:RegisterEvent(LogicEventDefine.EVENT_ITEM_CHANGE_UPDATE, self.OnItemChange)
self:RegisterEvent(LogicEventDefine.EID_EVENT_CLOSEREMAINTIME_EQUIP, self.OnCloseCountDown)
end
function UIGetItemTIps:OnFirstShow()
self.UIItem = UILuaItem:New(UIUtils.FindTrans(self.Trans, "Container/Back/UIItem"))
self.UseBtn = UIUtils.FindBtn(self.Trans, "Container/Back/BtnUse")
self.UseLabel = UIUtils.FindLabel(self.Trans, "Container/Back/BtnUse/Label")
self.NameLabel = UIUtils.FindLabel(self.Trans, "Container/Back/Name")
UIUtils.AddBtnEvent(self.UseBtn, self.OnBtnUse, self)
local button = UIUtils.FindBtn(self.Trans, "Container/Back/CloseBtn")
UIUtils.AddBtnEvent(button, self.OnCloseBtnClick, self)
self.CSForm.UIRegion = UIFormRegion.NoticRegion
self.CSForm:AddNormalAnimation(0.3)
self.CSForm.FormType = CS.Thousandto.Plugins.Common.UIFormType.Hint
end
function UIGetItemTIps:OnShowAfter()
end
function UIGetItemTIps:OnHideBefore()
return self.CanClose
end
function UIGetItemTIps:OnHideAfter()
end
function UIGetItemTIps:Update()
if not self.Data then
self:OnClose()
end
end
function UIGetItemTIps:OnUpdateForm()
local _canShow, _ = GameCenter.GetNewItemSystem:CanShowNewTips(self.Data)
if _canShow then
--UIUtils.SetTextByEnum(self.UseLabel, "C_ITEM_USE")
self.UIItem:InitWithItemData(self.Data, 1)
UIUtils.SetTextByString(self.NameLabel, self.Data.Name)
-- UIUtils.SetColorByQuality(self.NameLabel, self.Data.Quality)
else
self.CanClose = true
self:OnClose()
end
end
--打开界面时,保存物品数据
function UIGetItemTIps:OnOpen(obj, sender)
self.Data = obj
if self.Data then
self.CSForm:Show(sender)
self:OnUpdateForm()
else
self.CanClose = true
self:OnClose()
end
end
function UIGetItemTIps:OnClose(obj, sender)
self.CanClose = true
self.CSForm:Hide()
end
--关闭倒计时,用于返回登陆时关闭界面
function UIGetItemTIps:OnCloseCountDown(obj, sender)
self.CanClose = true
self:OnClose()
end
--物品信息改变,如果背包中没有该物品,则关闭界面
function UIGetItemTIps:OnItemChange(obj, sender)
if self.Data == nil then
self:OnClose()
return
end
if self.Data and obj ~= self.Data.CfgID then
return
end
self.Data = GameCenter.ItemContianerSystem:GetItemByUIDFormBag(self.Data.DBID)
local _canShow, _ = GameCenter.GetNewItemSystem:CanShowNewTips(self.Data)
if not _canShow then
self.CanClose = true
self:OnClose()
end
end
--点击界面上关闭按钮
function UIGetItemTIps:OnCloseBtnClick()
self.CanClose = true
self:OnClose()
end
--使用按钮
function UIGetItemTIps:OnBtnUse()
local _canShow, _ = GameCenter.GetNewItemSystem:CanShowNewTips(self.Data)
if _canShow then
if self.Data.CfgID == GameCenter.WorldSupportSystem.TanksItemID then
GameCenter.WorldSupportSystem:ReqAtLastHelp()
else
self.Data:UseItem()
end
end
self.CanClose = true
self:OnClose()
--关闭奖励界面
GameCenter.PushFixEvent(UIEventDefine.UIGetNewItemForm_CLOSE)
GameCenter.PushFixEvent(UIEventDefine.UITHJRXYGetNewItemForm_CLOSE)
end
return UIGetItemTIps