miduo_client/Assets/ManagedResources/~Lua/Modules/NewActivity/ItemUpstarPre.lua

126 lines
5.2 KiB
Lua

ItemUpstarPre = {}
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
function ItemUpstarPre:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = ItemUpstarPre })
return b
end
--初始化组件(用于子类重写)
function ItemUpstarPre:InitComponent()
self.upLayout = Util.GetGameObject(self.gameObject,"Content/upLayout")
self.midLayout = Util.GetGameObject(self.gameObject,"Content/middleLayout")
self.btnExchange = Util.GetGameObject(self.midLayout,"btnBuy")
self.btnText = Util.GetGameObject(self.btnExchange,"Text"):GetComponent("Text")
self.btnRed = Util.GetGameObject(self.btnExchange,"redPoint")
self.info = Util.GetGameObject(self.midLayout,"info"):GetComponent("Text")
self.gridList ={}
self.gridList[1] = Util.GetGameObject(self.midLayout,"itemNeed/item")
self.gridList[2] = Util.GetGameObject(self.midLayout,"itemCost/item")
self.gridList[3] = Util.GetGameObject(self.midLayout,"itemGet/item")
self.btnMaskNeed = Util.GetGameObject(self.midLayout,"itemNeed/mask")
self.btnMaskGet = Util.GetGameObject(self.midLayout,"itemGet/mask")
self.btnMaskNeedAdd = Util.GetGameObject(self.midLayout,"itemNeed/mask/Image")
self.effect = Util.GetGameObject(self.gameObject,"UI_Effect_MianBan_LiBao_button_01")
end
--绑定事件(用于子类重写)
function ItemUpstarPre:BindEvent()
Util.AddOnceClick(self.btnMaskNeed,function ()
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.YunYouMan,self.data,function ()
self:Refresh()
end)
end)
Util.AddOnceClick(self.btnExchange,function ()
if self.data.otherData.selectId == 0 then
PopupTipPanel.ShowTip(Language[12302])
return
end
local cost = ConfigManager.GetConfigData(ConfigName.ComposeBook,self.data.otherData.selectId).NeedCost
NetManager.EquipUpLevelRequest(self.actData.activityId,self.data.otherData.selectId,cost[1][1],cost[1][2],function (msg)
UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1,function()
self.parent:RefreshData(true,true,false)
end)
end)
end)
end
--添加事件监听(用于子类重写)
function ItemUpstarPre:AddListener()
end
--移除事件监听(用于子类重写)
function ItemUpstarPre:RemoveListener()
end
function ItemUpstarPre:OnOpen()
end
function ItemUpstarPre:SetData(_data,_parent,_sortingOrder,_actData,_actConfig)
self.data = _data
self.parent = _parent
self.sortingOrder = _sortingOrder
self.actData = _actData
self.actConfig = _actConfig
self:Refresh()
end
function ItemUpstarPre:Refresh()
-- LogPink("self.data.missionId.:"..tostring(self.data.missionId).." #self.data.otherData.needItems:"..tostring(#self.data.otherData.needItems))
local needItemId = self.data.otherData.selectId == 0 and self.data.otherData.needItems[1] or self.data.otherData.selectId
local configData = ConfigManager.GetConfigData(ConfigName.ComposeBook,needItemId)
local rewardList = {configData.NeedItems[1],configData.NeedCost[1],configData.GoalItems[1]}
--设置内容
if not self.itemList then
self.itemList = {}
end
for i = 1, #rewardList do
if not self.itemList[i] then
self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView,self.gridList[i].transform)
end
-- LogRed("id="..self.data.missionId..", sort="..self.sortingOrder)
self.itemList[i]:OnOpen(false, rewardList[i], 1,false,false,false,self.sortingOrder)
end
self:SetMask()
self:SetButton()
Util.SetParticleSortLayer(self.effect, self.sortingOrder or 0)
self.effect:SetActive(CommonActPageManager.CheckSingleRed(self.data))
end
function ItemUpstarPre:SetMask()
if self.data.otherData.selectId == 0 then
self.btnMaskNeedAdd:SetActive(true)
self.btnMaskGet:SetActive(not self.data.otherData.IsShowItem)
Util.GetGameObject(self.itemList[1].gameObject,"effects"):SetActive(false)
Util.GetGameObject(self.itemList[1].gameObject,"item/icon"):SetActive(false)
Util.GetGameObject(self.itemList[3].gameObject,"effects"):SetActive(false)
Util.GetGameObject(self.itemList[3].gameObject,"item/icon"):SetActive(self.data.otherData.IsShowItem)
else
self.btnMaskNeedAdd:SetActive(false)
self.btnMaskGet:SetActive(false)
Util.GetGameObject(self.itemList[1].gameObject,"effects"):SetActive(true)
Util.GetGameObject(self.itemList[1].gameObject,"item/icon"):SetActive(true)
Util.GetGameObject(self.itemList[3].gameObject,"effects"):SetActive(true)
Util.GetGameObject(self.itemList[3].gameObject,"item/icon"):SetActive(true)
end
end
function ItemUpstarPre:SetButton()
self.info.text = string.format(Language[12303],self.data.progress)
local bool = self.data.progress == 0
self.btnText.text = bool and Language[12304] or Language[12305]
Util.SetGray(self.btnExchange,bool)
self.btnExchange:GetComponent("Button").interactable = not bool
end
function ItemUpstarPre:OnClose()
self.data.otherData.selectId = 0
self.gridList = {}
for k,v in pairs(self.itemList) do
SubUIManager.Close(v)
end
end
return ItemUpstarPre