264 lines
11 KiB
Lua
264 lines
11 KiB
Lua
|
|
local UpperMonthCard = {}
|
|
local sortingOrder = 0
|
|
local chargeConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)
|
|
local globalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity)
|
|
--- 本地枚举
|
|
local ImgType = {
|
|
[78] = {
|
|
bg = "scene_floor_84",
|
|
mask = "LZE256",
|
|
rewardBg = "X1_hunluanzhizhi_zhipeilidiban_02",
|
|
downBg = "y_yjj_128kuang001",
|
|
rewardPreview = "X1_shenjing_guaiqiaming",
|
|
rewardPreviewText = "y_yjj_128kuang005",
|
|
reward = "y_yjj_1280",
|
|
iconId = 15,
|
|
},
|
|
[79] = {
|
|
bg = "scene_floor_84",
|
|
mask = "LZH32",
|
|
rewardBg = "X1_hunluanzhizhi_zhipeilidiban_01",
|
|
downBg = "s_sanshibei_kuang_01",
|
|
rewardPreview = "X1_shenjing_guaiqiaming",
|
|
rewardPreviewText = "s_sanshibei_biaotizi",
|
|
reward = "y_yjj_3280",
|
|
iconId = 15,
|
|
},
|
|
}
|
|
|
|
local state = {
|
|
[0] = {bg = "X1_zhanling_pata_bt_03",text = "",red = false},
|
|
[1] = {bg = "X1_zhanling_pata_bt_03",text = "领 取",red = true},
|
|
[2] = {bg = "X1_zhanling_pata_bt_04",text = "已领取",red = false},
|
|
}
|
|
|
|
function UpperMonthCard:New(gameObject)
|
|
local b = {}
|
|
b.gameObject = gameObject
|
|
b.transform = gameObject.transform
|
|
setmetatable(b, { __index = UpperMonthCard })
|
|
return b
|
|
end
|
|
|
|
--初始化组件(用于子类重写)
|
|
function UpperMonthCard:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
self.Bg = Util.GetGameObject(self.gameObject, "Bg/bg"):GetComponent("Image")
|
|
self.mask = Util.GetGameObject(self.gameObject, "Bg/mask"):GetComponent("Image")
|
|
|
|
self.chargeIconType = Util.GetGameObject(self.gameObject, "Bg/payBack/icon"):GetComponent("Image")
|
|
self.chargeType = Util.GetGameObject(self.gameObject, "Bg/payBack/type"):GetComponent("Image")
|
|
|
|
--- 不同的充值行为显示部分
|
|
self.middlePart = Util.GetGameObject(self.gameObject, "Bg/partDown/Bg"):GetComponent("Image")
|
|
self.titleDi = Util.GetGameObject(self.middlePart.transform, "titleDi"):GetComponent("Image")
|
|
self.titleImg = Util.GetGameObject(self.titleDi.transform, "title"):GetComponent("Image")
|
|
self.infoBg = Util.GetGameObject(self.middlePart.transform, "middle"):GetComponent("Image")
|
|
self.grid = Util.GetGameObject( self.middlePart.transform, "middle/scroller/grid")
|
|
self.gridRect = self.grid:GetComponent("RectTransform")
|
|
self.itemPre = Util.GetGameObject(self.middlePart.transform, "middle/itemPre")
|
|
self.itemHeight = self.itemPre.transform.rect.height
|
|
|
|
self.btnBuy = Util.GetGameObject(self.middlePart.transform, "btnBuy")
|
|
self.btnBuyImage = self.btnBuy:GetComponent("Image")
|
|
self.textBuy = Util.GetGameObject(self.btnBuy, "Text"):GetComponent("Text")
|
|
self.btnBuyRed = Util.GetGameObject(self.btnBuy, "red")
|
|
self.btnHelp = Util.GetGameObject(self.gameObject, "Bg/helpBtn")
|
|
self.helpPosition = self.btnHelp:GetComponent("RectTransform").localPosition
|
|
|
|
self.tip = Util.GetGameObject(self.gameObject, "Bg/tip")
|
|
---- 奖励列表
|
|
self.itemLst = {}
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function UpperMonthCard:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityProgressStateChange,self.RefreshPanel,self)
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function UpperMonthCard:RemoveListener()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityProgressStateChange,self.RefreshPanel,self)
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function UpperMonthCard:BindEvent()
|
|
Util.AddClick(self.btnHelp,function()
|
|
UIManager.OpenPanel(UIName.HelpPopup,self.actConfig.HelpId,self.helpPosition.x,self.helpPosition.y)
|
|
end)
|
|
Util.AddOnceClick(self.btnBuy, function()
|
|
if self.actInfo.value < 2 then
|
|
PayManager.Pay(self.baseType, function(id)
|
|
self:RechargeSuccessFunc(id)
|
|
self:OnShow()
|
|
end)
|
|
elseif self.isGet then
|
|
NetManager.GetActivityRewardRequest(0,self.actInfo.activityId,function(msg)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, msg, 1,function ()
|
|
self:OnShow()
|
|
end)
|
|
end)
|
|
end
|
|
if self.actType == 78 then
|
|
CheckRedPointStatus(RedPointType.jijin128)
|
|
else
|
|
CheckRedPointStatus(RedPointType.jijin328)
|
|
end
|
|
end)
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function UpperMonthCard:OnOpen(_activityConfig,_index,parent)
|
|
self.actConfig = _activityConfig
|
|
self.pageIndex = _index
|
|
self.parent = parent
|
|
end
|
|
|
|
function UpperMonthCard:OnSortingOrderChange(_sortingOrder)
|
|
self.sortingOrder = _sortingOrder
|
|
for k,v in pairs(self.itemLst) do
|
|
v.itemView:SetEffectLayer(self.sortingOrder)
|
|
end
|
|
end
|
|
|
|
-- 打开,重新打开时回调
|
|
function UpperMonthCard:OnShow(_sortingOrder)
|
|
self.gameObject:SetActive(true)
|
|
self.sortingOrder = _sortingOrder
|
|
self.actType = self.actConfig.ActiveType
|
|
-- self.actInfo = ActivityGiftManager.GetActivityInfoByType(self.actType)
|
|
self.actInfo = CommonActPageManager.GetData(self.actType)
|
|
if not self.actInfo then
|
|
self.parent:ClosePanel()
|
|
return
|
|
end
|
|
self.baseType = globalActivity[self.actInfo.activityId].CanBuyRechargeId[1]
|
|
self:SetPanelType()
|
|
self:RefreshPanel()
|
|
if self.actType==78 then
|
|
PlayerPrefs.SetInt(PlayerManager.uid.."chaozhijijin128",1)
|
|
CheckRedPointStatus(RedPointType.jijin128)
|
|
elseif self.actType==79 then
|
|
PlayerPrefs.SetInt(PlayerManager.uid.."chaozhijijin328",1)
|
|
CheckRedPointStatus(RedPointType.jijin328)
|
|
end
|
|
end
|
|
|
|
function UpperMonthCard:RefreshPanel()
|
|
self:SetRewardInfo()
|
|
self:SetBuyState()
|
|
end
|
|
|
|
--- 设置不同的显示界面
|
|
function UpperMonthCard:SetPanelType()
|
|
self.Bg.sprite = self.spLoader:LoadSprite(ImgType[self.actType].bg)
|
|
self.mask.sprite = self.spLoader:LoadSprite(ImgType[self.actType].mask)
|
|
|
|
--self.chargeIconType.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(ImgType[self.actType].iconId))
|
|
self.chargeIconType.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(15))
|
|
self.chargeType.sprite = self.spLoader:LoadSprite(ImgType[self.actType].reward)
|
|
--屏蔽基金额外奖励显示
|
|
self.chargeIconType.gameObject:SetActive(false)
|
|
self.chargeType.gameObject:SetActive(false)
|
|
self.middlePart.sprite = self.spLoader:LoadSprite(ImgType[self.actType].rewardBg)
|
|
self.titleDi.sprite = self.spLoader:LoadSprite(ImgType[self.actType].rewardPreview)
|
|
self.titleImg.sprite = self.spLoader:LoadSprite(ImgType[self.actType].rewardPreviewText)
|
|
self.infoBg.sprite = self.spLoader:LoadSprite(ImgType[self.actType].downBg)
|
|
|
|
self.btnHelp.gameObject:SetActive(self.actConfig.HelpId and self.actConfig.HelpId > 0)
|
|
end
|
|
|
|
--- 设置不同界面的奖励信息
|
|
function UpperMonthCard:SetRewardInfo()
|
|
local mission = self.actInfo.rewards
|
|
if not self.itemLst then
|
|
self.itemLst = {}
|
|
end
|
|
for i = 1,#mission do
|
|
if not self.itemLst[i] then
|
|
self.itemLst[i] = {}
|
|
self.itemLst[i].go = newObjToParent(self.itemPre,self.grid)
|
|
self.itemLst[i].name = Util.GetGameObject(self.itemLst[i].go, "name"):GetComponent("Text")
|
|
self.itemLst[i].itemPos = Util.GetGameObject(self.itemLst[i].go, "itemPos")
|
|
self.itemLst[i].itemView = SubUIManager.Open(SubUIConfig.ItemView,self.itemLst[i].itemPos.transform)
|
|
self.itemLst[i].yiGet = Util.GetGameObject(self.itemLst[i].go, "yilingqu")
|
|
self.itemLst[i].redPoint = Util.GetGameObject(self.itemLst[i].go, "redPoint")
|
|
end
|
|
self.itemLst[i].go.gameObject:SetActive(true)
|
|
self.itemLst[i].name.text = string.format("第%s天",NumToChinese[i])
|
|
local reward = ConfigManager.GetConfigDataByDoubleKey(ConfigName.LuxuryFundConfig,"Type",self.baseType,"Day",i).reward[1]
|
|
self.itemLst[i].itemView:OnOpen(false, reward, 1.1, false, false, false, self.sortingOrder)
|
|
--1 已领取 0 未领
|
|
-- LogGreen(tostring(mission[i].missionId).." ".."state:"..tostring(mission[i].otherData.State))
|
|
self.itemLst[i].yiGet.gameObject:SetActive(false)
|
|
if mission[i].otherData.State == 1 then
|
|
self.itemLst[i].redPoint.gameObject:SetActive(false)
|
|
elseif mission[i].otherData.State == 2 then
|
|
self.itemLst[i].redPoint.gameObject:SetActive(true)
|
|
elseif mission[i].otherData.State == 3 then
|
|
self.itemLst[i].yiGet.gameObject:SetActive(true)
|
|
self.itemLst[i].redPoint.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
local v = self.gridRect.sizeDelta
|
|
v.y = (math.ceil(#self.itemLst/5) * self.itemHeight) + ((math.ceil(#self.itemLst/5)) * 94)
|
|
self.gridRect.sizeDelta = v
|
|
end
|
|
|
|
--- 根据是否购买了显示信息
|
|
function UpperMonthCard:SetBuyState()
|
|
LogRed("value:"..tostring(self.actInfo.value))
|
|
if self.actInfo.value < 2 then
|
|
self.btnBuy.gameObject:SetActive(true)
|
|
self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[0].bg)
|
|
self.textBuy.text = MoneyUtil.GetMoneyUnitNameWithMoney(chargeConfig[self.baseType].Price)
|
|
self.btnBuyRed.gameObject:SetActive(false)
|
|
self.tip.gameObject:SetActive(false)
|
|
else
|
|
self.isGet = self.actInfo.FreelyData.isGet
|
|
self.isAllGet = self.actInfo.FreelyData.isAllGet
|
|
|
|
if self.isGet then
|
|
self.btnBuy.gameObject:SetActive(true)
|
|
self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[1].bg)
|
|
self.textBuy.text = state[1].text
|
|
self.btnBuyRed.gameObject:SetActive(true)
|
|
self.tip.gameObject:SetActive(false)
|
|
else
|
|
self.btnBuy.gameObject:SetActive(true)
|
|
self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[2].bg)
|
|
self.textBuy.text = state[2].text
|
|
self.btnBuyRed.gameObject:SetActive(false)
|
|
self.tip.gameObject:SetActive(false)
|
|
end
|
|
if self.isAllGet then
|
|
self.btnBuy.gameObject:SetActive(false)
|
|
self.tip.gameObject:SetActive(true)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- 充值成功回调
|
|
function UpperMonthCard:RechargeSuccessFunc(id)
|
|
FirstRechargeManager.RefreshAccumRechargeValue(id)
|
|
OperatingManager.RefreshGiftGoodsBuyTimes(GoodsTypeDef.DemonCrystal, id)
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function UpperMonthCard:OnClose()
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function UpperMonthCard:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
for k,v in pairs(self.itemLst) do
|
|
SubUIManager.Close(v.itemView)
|
|
end
|
|
Util.ClearChild(self.grid.transform)
|
|
self.itemLst = {}
|
|
end
|
|
return UpperMonthCard
|
|
|