205 lines
8.0 KiB
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
|
|
|