miduo_client/Assets/ManagedResources/~Lua/View/FetterItem.lua

125 lines
5.0 KiB
Lua

FetterItem = {}
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local parent
function FetterItem:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = FetterItem })
return b
end
--初始化组件(用于子类重写)
function FetterItem:InitComponent()
self.name = Util.GetGameObject(self.gameObject,"bg/nameText"):GetComponent("Text")
self.mask = Util.GetGameObject(self.gameObject,"bg/mask")
self.grid = Util.GetGameObject(self.gameObject,"scroll")
self.tipText = Util.GetGameObject(self.gameObject,"tipText"):GetComponent("Text")
self.activeBtn = Util.GetGameObject(self.gameObject,"activeBtn")
self.activeBtnRed = Util.GetGameObject(self.gameObject,"redpot")
self.reward = Util.GetGameObject(self.gameObject,"reward")
self.rewardIcon = Util.GetGameObject(self.reward,"icon"):GetComponent("Image")
self.rewardNum = Util.GetGameObject(self.reward,"num"):GetComponent("Text")
self.active = Util.GetGameObject(self.gameObject,"active")
self.itemList = {}
self.itemData = {}
end
--绑定事件(用于子类重写)
function FetterItem:BindEvent()
Util.AddOnceClick(self.activeBtn, function()
local oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
NetManager.PokemonBookEnableRequest(self.itemData.id,function(msg)
if msg.drop and msg.drop.itemlist and #msg.drop.itemlist > 0 then
local item = msg.drop.itemlist[1]
PopupTipPanel.ShowTip(string.format("激活成功,获得%s%s",item.itemNum,ConfigManager.GetConfigData(ConfigName.ItemConfig,item.itemId).Name))
end
TianShuMiJuanManger.UpdateFetterId({self.itemData.id})
local newWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPower,newValue = newWarPower})
parent:RefreshData()
end)
end)
end
--添加事件监听(用于子类重写)
function FetterItem:AddListener()
end
--移除事件监听(用于子类重写)
function FetterItem:RemoveListener()
end
function FetterItem:OnOpen()
end
function FetterItem:SetData(data,_parent)
parent = _parent
self.itemData = data
self.name.text = self.itemData.name
if self.itemData.enabled < 1 then
self.tipText.text = string.format("<color = #ffd674>%s</color>",self.itemData.activeParaTip)
elseif self.itemData.enabled then
self.tipText.text = string.format("<color = #fff5df>%s</color>",self.itemData.activeParaTip)
end
self.tipText.text = self.itemData.activeParaTip
if self.itemData.reward and #self.itemData.reward > 0 then
self.reward.gameObject:SetActive(true)
self.rewardIcon = Util.LoadSprite(GetResourcePath(itemConfig[self.itemData.reward[1][1]].ResourceID))
self.rewardNum.text = self.itemData.reward[1][2]
else
self.reward.gameObject:SetActive(false)
end
self:SetIcon(self.itemData.enabled)
if not self.itemList then
self.itemList = {}
end
for i = 1 ,#self.itemList do
self.itemList[i].gameObject:SetActive(false)
end
for i = 1, #self.itemData.teamers do
if not self.itemList[i] then
self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView,self.grid.transform)
end
Util.SetGray(self.itemList[i].gameObject,false)
self.itemList[i].gameObject:SetActive(true)
self.itemList[i]:OnOpen(false,{self.itemData.teamers[i],0},1,true,false,false,self.sortingOrder)
if TianShuMiJuanManger.IsHaveItem(self.itemData.fetterType,self.itemData.teamers[i]) then
Util.SetGray(self.itemList[i].gameObject,false)
else
Util.SetGray(self.itemList[i].gameObject,true)
end
end
end
function FetterItem:SetIcon(status)
if status == 1 then
self.activeBtn.gameObject:SetActive(false)
self.active.gameObject:SetActive(true)
self.mask.gameObject:SetActive(false)
else
self.mask.gameObject:SetActive(false)
self.activeBtn.gameObject:SetActive(true)
self.active.gameObject:SetActive(false)
self.activeBtnRed.gameObject:SetActive(false)
Util.SetGray(self.activeBtn,false)
if status == 0 then
Util.SetGray(self.activeBtn,false)
self.activeBtnRed.gameObject:SetActive(true)
self.activeBtn:GetComponent("Button").enabled = true
self.mask.gameObject:SetActive(true)
else
Util.SetGray(self.activeBtn,true)
self.activeBtnRed.gameObject:SetActive(false)
self.activeBtn:GetComponent("Button").enabled = false
self.mask.gameObject:SetActive(false)
end
end
end
function FetterItem:OnClose()
for i = 1, #self.itemList do
Util.SetGray(self.itemList[i].gameObject,false)
SubUIManager.Close(self.itemList[i])
end
self.itemList = {}
end
return FetterItem