miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/UppperMonthCard.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