miduo_client/Assets/ManagedResources/~Lua/Modules/UpStar/UpStarPre.lua

205 lines
8.0 KiB
Lua

UpStarPre = {}
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local parent
function UpStarPre:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = UpStarPre })
return b
end
--初始化组件(用于子类重写)
function UpStarPre:InitComponent()
self.spLoader = SpriteLoader.New()
self.title = Util.GetGameObject(self.gameObject, "title"):GetComponent("Text")
self.middleLayout = Util.GetGameObject(self.gameObject, "bg/middleLayout")
self.btnBuy = Util.GetGameObject(self.middleLayout, "btnBuy"):GetComponent("Button")
self.icon = Util.GetGameObject(self.btnBuy.transform, "icon"):GetComponent("Image")
self.price = Util.GetGameObject(self.btnBuy.transform, "price"):GetComponent("Text")
self.buyInfo = Util.GetGameObject(self.middleLayout, "buyInfo"):GetComponent("Text")
self.redPoint = Util.GetGameObject(self.middleLayout, "scroller2/redPoint")
self.grid1 = Util.GetGameObject(self.middleLayout, "grid1")
self.grid2 = Util.GetGameObject(self.middleLayout, "scroller2/grid2")
self.GetBtn = Util.GetGameObject(self.middleLayout, "scroller2/GetBtn")
self.grid3 = Util.GetGameObject(self.middleLayout, "scroller3/grid3")
self.grid3 = Util.GetGameObject(self.middleLayout, "scroller3/grid3")
self.itemPre = Util.GetGameObject(self.middleLayout, "itemPre")
self.itemList = {}
end
--绑定事件(用于子类重写)
function UpStarPre:BindEvent()
Util.AddOnceClick(self.btnBuy.gameObject, function()
if self.isTemp then
PopupTipPanel.ShowTip("请先选择并锁定一个英雄")
return
end
if self.data.state == 0 then
PopupTipPanel.ShowTip("英雄达指定星级后解锁")
return
end
--直购商品
PayManager.Pay(self.data.giftId, function(id)
self:SetBtn()
end)
end)
Util.AddOnceClick(self.GetBtn, function()
if self.isTemp then
PopupTipPanel.ShowTip("请先选择并锁定一个英雄")
return
end
NetManager.GetActivityRewardRequest(self.data.missionId,self.actData.activityId,function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup,msg,1)
self.data.state = 2
self:SetBtn1()
end)
end)
end
--添加事件监听(用于子类重写)
function UpStarPre:AddListener()
end
--移除事件监听(用于子类重写)
function UpStarPre:RemoveListener()
end
function UpStarPre:OnOpen()
end
function UpStarPre:SetData(singleData,_parent,sortingOrder,actData,actConfig)
self.data = singleData
self.parent = _parent
self.actData = actData
self.sortingOrder = sortingOrder
--设置礼包内容
if not self.itemList then
self.itemList = {}
end
self:SetShows(1,self.data.heroShows, self.grid1)
self:SetShows(2,self.data.freeShows, self.grid2)
self:SetShows(3,self.data.giftShows, self.grid3)
self:SetBtn1()
self:SetBtn()
end
function UpStarPre:SetShows(key,shows,parent)
if not self.itemList[key] then
self.itemList[key] = {}
end
for i = 1, math.max(#shows,#self.itemList[key]) do
if not shows[i] then
self.itemList[key][i].go.gameObject:SetActive(false)
else
if not self.itemList[key][i] then
self.itemList[key][i] = {}
self.itemList[key][i].go = newObjToParent(self.itemPre,parent)
self.itemList[key][i].lock = Util.GetGameObject(self.itemList[key][i].go, "lock")
self.itemList[key][i].Get = Util.GetGameObject(self.itemList[key][i].go, "Get")
self.itemList[key][i].Get.gameObject:SetActive(false)
if self.data.state == 0 then
if key == 1 then
self.title.text = string.format("%s星解锁",shows[i][4])
end
self.itemList[key][i].lock.gameObject:SetActive(true)
else
self.title.text = ""
self.itemList[key][i].lock.gameObject:SetActive(false)
end
self.itemList[key][i].item = SubUIManager.Open(SubUIConfig.ItemView,self.itemList[key][i].go.transform)
self.itemList[key][i].item.transform:SetAsFirstSibling()
end
self.itemList[key][i].go.gameObject:SetActive(true)
self.itemList[key][i].item:OnOpen(false, {shows[i][1],shows[i][2],shows[i][3],shows[i][4]}, 0.85,false,false,false,self.sortingOrder)
-- 定制显示
if self.parent.GetCurChooseHero then
self.choose, self.isTemp = self.parent:GetCurChooseHero()
-- 临时状态不再显示锁头
if self.data.state == 0 and not self.isTemp then
self.itemList[key][i].lock.gameObject:SetActive(true)
else
self.itemList[key][i].lock.gameObject:SetActive(false)
end
-- 未选择时角色和角色碎片显示问号
if self.choose == 0 then
local con = itemConfig[shows[i][1]]
if con and (con.ItemType == ItemType.Hero or con.ItemType == ItemType.HeroDebris) then
-- 不显示阵营
self.itemList[key][i].item.proImage.gameObject:SetActive(false)
self.itemList[key][i].item.fragmentIcon.gameObject:SetActive(false)
-- 显示问号
self.itemList[key][i].item.icon.sprite = self.spLoader:LoadSprite("y_yosr_wenhao")
self.itemList[key][i].item.icon:SetNativeSize()
-- 屏蔽按钮事件
Util.AddOnceClick(self.itemList[key][i].item.frameBtn, function() end)
end
end
end
end
end
end
function UpStarPre:SetBtn1()
for i = 1,#self.itemList[2] do
if self.data.state == 2 then
self.itemList[2][i].Get.gameObject:SetActive(true)
else
self.itemList[2][i].Get.gameObject:SetActive(false)
end
end
-- 只有在锁定状态才显示可领取
if self.data.state == 1 and not self.isTemp then
self.GetBtn.gameObject:SetActive(true)
self.redPoint.gameObject:SetActive(true)
else
self.GetBtn.gameObject:SetActive(false)
self.redPoint.gameObject:SetActive(false)
end
end
local State = {
[0] = {sprte = "l_libao_anniu"},
[1] = {sprte = "s_slbz_1anniuongse"},
[2] = {sprte = "s_slbz_1anniuhuise"},
}
function UpStarPre:SetBtn()
self.btnBuy.gameObject:SetActive(true)
self.data.giftData = OperatingManager.GetGiftGoodsInfo(self.data.giftConfig.Type,self.data.giftConfig.Id)
self.icon.gameObject:SetActive(false)
self.btnBuy.enabled = true
self.price.text = MoneyUtil.GetMoneyUnitNameWithMoney(self.data.giftConfig.Price)
self.buyInfo.text = string.format("限购%s次",self.data.giftConfig.Limit)
if self.data.giftData and self.data.giftData.buyTimes > 0 then
self.buyInfo.text = ""
self.price.text = "已购买"
self.btnBuy.enabled = false
self.btnBuy:GetComponent("Image").sprite = self.spLoader:LoadSprite(State[2].sprte)
else
-- 未选择神将时显示未购买
if self.data.state == 0 or self.isTemp then
self.btnBuy:GetComponent("Image").sprite = self.spLoader:LoadSprite(State[0].sprte)
else
self.btnBuy:GetComponent("Image").sprite = self.spLoader:LoadSprite(State[1].sprte)
end
end
ForceRebuildLayout(self.btnBuy.transform)
end
function UpStarPre:OnClose()
for k,v in pairs(self.itemList) do
for n,m in ipairs(v) do
SubUIManager.Close(m.item)
end
end
Util.ClearChild(self.grid1.transform)
Util.ClearChild(self.grid2.transform)
Util.ClearChild(self.grid3.transform)
self.itemList = {}
end
return UpStarPre