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

167 lines
7.1 KiB
Lua
Raw Normal View History

2021-04-21 13:12:04 +08:00
FetterItem = {}
2021-03-19 14:37:24 +08:00
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
2024-09-06 10:38:56 +08:00
local parent
2021-03-19 14:37:24 +08:00
function FetterItem:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = FetterItem })
return b
end
2024-09-06 10:38:56 +08:00
2021-03-19 14:37:24 +08:00
--初始化组件(用于子类重写)
function FetterItem:InitComponent()
2021-04-21 13:12:04 +08:00
self.spLoader = SpriteLoader.New()
2024-09-06 10:38:56 +08:00
self.name = Util.GetGameObject(self.gameObject, "bg/nameDi/nameText"):GetComponent("Text")
self.mask = Util.GetGameObject(self.gameObject, "bg/mask")
self.grid = Util.GetGameObject(self.gameObject, "scroll")
self.tipText = Util.GetGameObject(self.gameObject, "tip/tipText"):GetComponent("Text")
self.infoTxt = Util.GetGameObject(self.gameObject, "infoTxt"):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")
2021-03-19 14:37:24 +08:00
self.itemList = {}
2021-03-22 15:16:29 +08:00
self.itemData = {}
2021-03-19 14:37:24 +08:00
end
--绑定事件(用于子类重写)
function FetterItem:BindEvent()
2021-03-25 10:45:50 +08:00
Util.AddOnceClick(self.activeBtn, function()
2021-03-19 14:37:24 +08:00
local oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
2024-09-06 10:38:56 +08:00
NetManager.PokemonBookEnableRequest(self.itemData.id, function(msg)
2021-03-19 14:37:24 +08:00
if msg.drop and msg.drop.itemlist and #msg.drop.itemlist > 0 then
local item = msg.drop.itemlist[1]
2024-09-06 10:38:56 +08:00
PopupTipPanel.ShowTip(string.format(Language[13057], item.itemNum,
GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig, item.itemId).Name)))
2021-03-19 14:37:24 +08:00
end
2024-04-10 16:52:46 +08:00
--LogError("潜能等级============================="..TianShuMiJuanManger.GetAddPotentialLV())
2024-09-06 10:38:56 +08:00
TianShuMiJuanManger.UpdateFetterId({ self.itemData.id })
2024-04-10 16:52:46 +08:00
--LogError("潜能等级111111111111111============================="..TianShuMiJuanManger.GetAddPotentialLV())
HeroManager.ChangeAllHeroGiftLV()
--local lv=TianShuMiJuanManger.GetAddPotentialLV()
--LogError("lv==============================="..lv)
2024-09-06 10:38:56 +08:00
local formationList = FormationManager.GetFormationByID(FormationTypeDef.FORMATION_NORMAL)
2024-04-10 16:52:46 +08:00
for i = 1, 6 do
if formationList.teamHeroInfos[i] then
2024-09-06 10:38:56 +08:00
HeroPropManager.SetDirtyByType(formationList.teamHeroInfos[i].heroId, Hero_Prop_Type.Equip)
HeroPropManager.SetDirtyByType(formationList.teamHeroInfos[i].heroId, Hero_Prop_Type.EquipTreasure)
HeroPropManager.SetDirtyByType(formationList.teamHeroInfos[i].heroId, Hero_Prop_Type.FaXiang)
2024-04-10 16:52:46 +08:00
end
end
2021-03-19 14:37:24 +08:00
local newWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
2024-09-06 10:38:56 +08:00
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2, { oldValue = oldWarPower, newValue = newWarPower })
parent:RefreshData()
2021-03-19 14:37:24 +08:00
end)
end)
end
--添加事件监听(用于子类重写)
function FetterItem:AddListener()
end
--移除事件监听(用于子类重写)
function FetterItem:RemoveListener()
end
2024-09-06 10:38:56 +08:00
2021-03-22 15:16:29 +08:00
function FetterItem:OnOpen()
end
2024-09-06 10:38:56 +08:00
function FetterItem:SetData(data, _parent, _index)
2021-03-23 15:16:38 +08:00
parent = _parent
2021-03-22 15:16:29 +08:00
self.itemData = data
2024-09-20 17:32:50 +08:00
self.name.text = GetLanguageStrById(self.itemData.name)
2021-03-22 15:16:29 +08:00
if self.itemData.enabled < 1 then
2024-09-06 10:38:56 +08:00
self.tipText.text = string.format("<color=#553D02>%s</color>", self.itemData.activeParaTip)
2021-03-22 15:16:29 +08:00
elseif self.itemData.enabled then
2024-09-06 10:38:56 +08:00
self.tipText.text = string.format("<color=#114800>%s</color>", self.itemData.activeParaTip)
2021-03-22 15:16:29 +08:00
end
-- self.tipText.text = self.itemData.activeParaTip
2024-09-06 10:38:56 +08:00
if (_index ~= 3 and _index ~= 5) and self.itemData.reward and #self.itemData.reward > 0 then
if self.itemData.reward[1][1] == 0 then
self.reward.gameObject:SetActive(false)
else
self.reward.gameObject:SetActive(true)
self.rewardIcon = self.spLoader:LoadSprite(GetResourcePath(itemConfig[self.itemData.reward[1][1]].ResourceID))
self.rewardNum.text = self.itemData.reward[1][2]
end
2021-03-19 14:37:24 +08:00
else
self.reward.gameObject:SetActive(false)
end
2024-09-06 10:38:56 +08:00
if _index == 3 then
self.reward.gameObject:SetActive(false)
end
2021-03-22 15:16:29 +08:00
self:SetIcon(self.itemData.enabled)
2021-03-19 14:37:24 +08:00
if not self.itemList then
self.itemList = {}
end
2024-09-06 10:38:56 +08:00
for i = 1, #self.itemList do
2021-03-19 14:37:24 +08:00
self.itemList[i].gameObject:SetActive(false)
end
2021-03-22 15:16:29 +08:00
for i = 1, #self.itemData.teamers do
2021-03-19 14:37:24 +08:00
if not self.itemList[i] then
2024-09-06 10:38:56 +08:00
self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.grid.transform)
2021-03-19 14:37:24 +08:00
end
2024-09-06 10:38:56 +08:00
Util.SetGray(self.itemList[i].gameObject, false)
2021-03-19 14:37:24 +08:00
self.itemList[i].gameObject:SetActive(true)
2024-09-06 10:38:56 +08:00
self.itemList[i]:OnOpen(false, { self.itemData.teamers[i][1], self.itemData.teamers[i][2] }, 1, true, false,
false, self.sortingOrder)
2021-10-15 09:54:12 +08:00
if self.itemData.teamers[i][2] > 1 then
self.itemList[i].num.gameObject:SetActive(true)
else
self.itemList[i].num.gameObject:SetActive(false)
end
2024-09-06 10:38:56 +08:00
self.itemList[i].name:GetComponent("Text").text = string.gsub(self.itemList[i].name:GetComponent("Text").text,
Language[10452], "")
self.itemList[i].name:GetComponent("Text").text = string.gsub(self.itemList[i].name:GetComponent("Text").text,
Language[13058], "")
if TianShuMiJuanManger.IsHaveItem(self.itemData.fetterType, self.itemData.teamers[i][1], self.itemData.teamers[i][2]) then
Util.SetGray(self.itemList[i].gameObject, false)
2021-03-23 17:20:48 +08:00
else
2024-09-06 10:38:56 +08:00
Util.SetGray(self.itemList[i].gameObject, true)
2021-03-23 17:20:48 +08:00
end
2021-03-19 14:37:24 +08:00
end
2024-09-06 10:38:56 +08:00
self.infoTxt.gameObject:SetActive(self.itemData.Potential > 0)
self.infoTxt.text = Language[13059] .. self.itemData.Potential
2021-03-19 14:37:24 +08:00
end
function FetterItem:SetIcon(status)
if status == 1 then
self.activeBtn.gameObject:SetActive(false)
self.active.gameObject:SetActive(true)
2021-03-25 15:34:05 +08:00
self.mask.gameObject:SetActive(false)
2021-03-19 14:37:24 +08:00
else
2021-03-25 15:34:05 +08:00
self.mask.gameObject:SetActive(false)
2021-03-19 14:37:24 +08:00
self.activeBtn.gameObject:SetActive(true)
self.active.gameObject:SetActive(false)
2021-03-23 16:52:19 +08:00
self.activeBtnRed.gameObject:SetActive(false)
2024-09-06 10:38:56 +08:00
Util.SetGray(self.activeBtn, false)
2021-03-19 14:37:24 +08:00
if status == 0 then
2024-09-06 10:38:56 +08:00
Util.SetGray(self.activeBtn, false)
2021-03-23 15:16:38 +08:00
self.activeBtnRed.gameObject:SetActive(true)
2021-03-22 15:16:29 +08:00
self.activeBtn:GetComponent("Button").enabled = true
2021-03-25 15:34:05 +08:00
self.mask.gameObject:SetActive(true)
2021-03-19 14:37:24 +08:00
else
2024-09-06 10:38:56 +08:00
Util.SetGray(self.activeBtn, true)
2021-03-23 15:16:38 +08:00
self.activeBtnRed.gameObject:SetActive(false)
2021-03-22 15:16:29 +08:00
self.activeBtn:GetComponent("Button").enabled = false
2021-03-25 15:34:05 +08:00
self.mask.gameObject:SetActive(false)
2021-03-19 14:37:24 +08:00
end
end
end
function FetterItem:OnClose()
for i = 1, #self.itemList do
2024-09-06 10:38:56 +08:00
Util.SetGray(self.itemList[i].gameObject, false)
2021-03-19 14:37:24 +08:00
SubUIManager.Close(self.itemList[i])
end
self.itemList = {}
2021-04-21 13:12:04 +08:00
self.spLoader:Destroy()
2021-03-19 14:37:24 +08:00
end
2024-09-06 10:38:56 +08:00
return FetterItem