188 lines
6.5 KiB
Lua
188 lines
6.5 KiB
Lua
local WeekCardPage = {}
|
|
local sortingOrder = 0
|
|
local _WeekcardConfig = ConfigManager.GetConfig(ConfigName.WeekcardConfig)
|
|
local _ItemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local _RechargeCommodityConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)
|
|
|
|
function WeekCardPage:New(gameObject)
|
|
local b = {}
|
|
b.gameObject = gameObject
|
|
b.transform = gameObject.transform
|
|
setmetatable(b, { __index = WeekCardPage })
|
|
return b
|
|
end
|
|
--初始化组件(用于子类重写)
|
|
function WeekCardPage:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
self.grid = Util.GetGameObject(self.gameObject, "grid")
|
|
self.cardPres = {}
|
|
self.timerList = {}
|
|
for i= 1 ,self.grid.transform.childCount do
|
|
self.cardPres[i] = {}
|
|
self.cardPres[i].go = self.grid.transform:GetChild(i - 1).gameObject
|
|
self.cardPres[i].bg = self.cardPres[i].go:GetComponent("Image")
|
|
self.cardPres[i].name = Util.GetGameObject(self.cardPres[i].go, "nameBg/name"):GetComponent("Image")
|
|
|
|
self.cardPres[i].icon = Util.GetGameObject(self.cardPres[i].go, "icon"):GetComponent("Image")
|
|
self.cardPres[i].icon1 = Util.GetGameObject(self.cardPres[i].go, "tip1/icon"):GetComponent("Image")
|
|
self.cardPres[i].icon2 = Util.GetGameObject(self.cardPres[i].go, "tip2/icon"):GetComponent("Image")
|
|
self.cardPres[i].icon3 = Util.GetGameObject(self.cardPres[i].go, "Image/icon"):GetComponent("Image")
|
|
|
|
self.cardPres[i].dayNum = Util.GetGameObject(self.cardPres[i].go, "tip1/num"):GetComponent("Text")
|
|
self.cardPres[i].curNum = Util.GetGameObject(self.cardPres[i].go, "tip2/num"):GetComponent("Text")
|
|
self.cardPres[i].allNum = Util.GetGameObject(self.cardPres[i].go, "Image/Text"):GetComponent("Text")
|
|
|
|
self.cardPres[i].btn = Util.GetGameObject(self.cardPres[i].go, "btn")
|
|
self.cardPres[i].btnText = Util.GetGameObject(self.cardPres[i].go, "btn/Text"):GetComponent("Text")
|
|
self.cardPres[i].red = Util.GetGameObject(self.cardPres[i].go, "btn/redPoint")
|
|
end
|
|
|
|
self.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn")
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function WeekCardPage:BindEvent()
|
|
Util.AddClick(self.helpBtn, function()
|
|
local pos = self.helpBtn.transform.localPosition
|
|
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.WeekCard, pos.x, pos.y)
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function WeekCardPage:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.WeekCard.OnWeekCardUpdate, self.RefreshShow, self)
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function WeekCardPage:RemoveListener()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.WeekCard.OnWeekCardUpdate, self.RefreshShow, self)
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function WeekCardPage:OnOpen(_activityConfig,_index,parent)
|
|
self.actConfig = _activityConfig
|
|
self.pageIndex = _index
|
|
self.parent = parent
|
|
end
|
|
|
|
function WeekCardPage:OnSortingOrderChange()
|
|
end
|
|
|
|
-- 打开,重新打开时回调
|
|
function WeekCardPage:OnShow(_sortingOrder)
|
|
self.gameObject:SetActive(true)
|
|
sortingOrder = _sortingOrder
|
|
|
|
-- 刷新显示
|
|
self:RefreshShow()
|
|
|
|
-- 查看周卡界面刷新红点
|
|
PlayerPrefs.SetInt("IsCheckWeekCard_"..PlayerManager.uid, 1)
|
|
CheckRedPointStatus(RedPointType.WeekCardOpen)
|
|
|
|
end
|
|
|
|
-- 妖晶数量显示
|
|
function WeekCardPage:RefreshShow()
|
|
local allData = WeekCardManager.GetWeekCardDataArray()
|
|
--月卡
|
|
for i = 1, #self.cardPres do
|
|
if allData[i] then
|
|
self:SetCardShow(i, allData[i])
|
|
end
|
|
end
|
|
end
|
|
|
|
function WeekCardPage:SetCardShow(index, data)
|
|
local pre = self.cardPres[index]
|
|
if not pre then
|
|
return
|
|
end
|
|
local config = _WeekcardConfig[data.id]
|
|
if not config then
|
|
return
|
|
end
|
|
-- 背景
|
|
pre.bg.sprite = self.spLoader:LoadSprite(config.BgImage)
|
|
-- 物品名称
|
|
pre.name.sprite = self.spLoader:LoadSprite(config.TypeImage)
|
|
pre.name:SetNativeSize()
|
|
-- 每日奖励数量
|
|
local itemId = 0
|
|
local dayNum = 0
|
|
if config.BaseReward and config.BaseReward[1] then
|
|
itemId = config.BaseReward[1][1]
|
|
dayNum = config.BaseReward[1][2]
|
|
end
|
|
pre.dayNum.text = PrintWanNum2(dayNum)
|
|
-- 当前累计奖励数量
|
|
local curNum = dayNum * data.leaveGetRewardDays or 0
|
|
pre.curNum.text = PrintWanNum2(curNum)
|
|
pre.curNum.transform.parent.gameObject:SetActive(curNum ~= 0) -- 累计数量为0时不显示
|
|
-- 总奖励数量
|
|
local continueDay = config.ContiueDays or 0
|
|
local allNum = dayNum * continueDay
|
|
pre.allNum.text = PrintWanNum2(allNum)
|
|
-- 设置物品图片显示
|
|
local sprite = SetIcon(self.spLoader, itemId)
|
|
pre.icon.sprite = sprite
|
|
pre.icon1.sprite = sprite
|
|
pre.icon2.sprite = sprite
|
|
pre.icon3.sprite = sprite
|
|
|
|
local rechargeCfg = _RechargeCommodityConfig[config.RechargeId]
|
|
if not rechargeCfg then
|
|
return
|
|
end
|
|
|
|
-- 按钮状态
|
|
if data.isBuy then
|
|
if data.leaveGetRewardDays > 0 then
|
|
-- 领取奖励
|
|
pre.btnText.text = "领取"
|
|
pre.red:SetActive(true)
|
|
Util.SetGray(pre.btn, false)
|
|
Util.AddOnceClick(pre.btn, function()
|
|
WeekCardManager.RequestGetWeekCardReward(data.id, function()
|
|
-- 刷新显示
|
|
self:RefreshShow()
|
|
end)
|
|
end)
|
|
else
|
|
-- 已领取
|
|
pre.btnText.text = "已领取"
|
|
pre.red:SetActive(false)
|
|
Util.SetGray(pre.btn, true)
|
|
Util.AddOnceClick(pre.btn, function()
|
|
PopupTipPanel.ShowTip("您已领取该奖励")
|
|
end)
|
|
end
|
|
else
|
|
-- 购买周卡
|
|
pre.btnText.text = MoneyUtil.GetMoneyUnitNameWithMoney(rechargeCfg.Price)
|
|
pre.red:SetActive(false)
|
|
Util.SetGray(pre.btn, false)
|
|
Util.AddOnceClick(pre.btn, function()
|
|
PayManager.Pay(config.RechargeId, function(id)
|
|
-- 前端修改购买状态
|
|
data.isBuy = true
|
|
WeekCardManager.UpdateWeekCardData(data)
|
|
-- 刷新显示
|
|
self:RefreshShow()
|
|
end)
|
|
end)
|
|
end
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function WeekCardPage:OnClose()
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
--界面销毁时调用(用于子类重写)
|
|
function WeekCardPage:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
self.cardPres = {}
|
|
end
|
|
return WeekCardPage
|
|
|