From e7b554573ffc426dbcc4e5d98de3d8ce313e1916 Mon Sep 17 00:00:00 2001
From: "PC-202302260912\\Administrator" <419983115@qq.com>
Date: Tue, 2 Dec 2025 17:20:23 +0800
Subject: [PATCH] 1
---
.../~Lua/Modules/Operating/WeekCardPanel.lua | 331 +++++++++---------
1 file changed, 171 insertions(+), 160 deletions(-)
diff --git a/Assets/ManagedResources/~Lua/Modules/Operating/WeekCardPanel.lua b/Assets/ManagedResources/~Lua/Modules/Operating/WeekCardPanel.lua
index 2f35aee659..a8ddcdf004 100644
--- a/Assets/ManagedResources/~Lua/Modules/Operating/WeekCardPanel.lua
+++ b/Assets/ManagedResources/~Lua/Modules/Operating/WeekCardPanel.lua
@@ -2,30 +2,30 @@ require("Base/BasePanel")
local WeekCardPanel = Inherit(BasePanel)
local sortingOrder = 0
local _WeekcardConfig = ConfigManager.GetConfig(ConfigName.WeekcardConfig)
-local weekReward = ConfigManager.GetConfig(ConfigName.WeekRewardConfig)
+local weekReward=ConfigManager.GetConfig(ConfigName.WeekRewardConfig)
local _ItemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local _RechargeCommodityConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)
-local weekcardR = nil
+local weekcardR=nil
--初始化组件(用于子类重写)
function WeekCardPanel:InitComponent()
self.spLoader = SpriteLoader.New()
self.grid = Util.GetGameObject(self.gameObject, "grid")
self.cardPres = {}
self.timerList = {}
- self.tabs = {}
- self.selectObj = Util.GetGameObject(self.gameObject, "selectObj")
- self.selectTxt = Util.GetGameObject(self.gameObject, "selectObj/Text"):GetComponent("Text")
- self.info1 = Util.GetGameObject(self.gameObject, "info1"):GetComponent("Text")
- self.info2 = Util.GetGameObject(self.gameObject, "info2"):GetComponent("Text")
- self.info1.text = Language[12023]
- self.info2.text = Language[12024]
- self.titleImg = Util.GetGameObject(self.gameObject, "titleImg"):GetComponent("Image")
- self.timeTxt = Util.GetGameObject(self.gameObject, "time"):GetComponent("Text")
- self.titleImg.sprite = self.spLoader:LoadSprite("new_biaotichendi")
- for i = 1, self.grid.transform.childCount do
+ self.tabs={}
+ self.selectObj=Util.GetGameObject(self.gameObject, "selectObj")
+ self.selectTxt=Util.GetGameObject(self.gameObject, "selectObj/Text"):GetComponent("Text")
+ self.info1=Util.GetGameObject(self.gameObject, "info1"):GetComponent("Text")
+ self.info2=Util.GetGameObject(self.gameObject, "info2"):GetComponent("Text")
+ self.info1.text="·购买后可领取活动前期累计奖励 及 后续奖励"
+ self.info2.text="·每日0点刷新,奖励可累计领取"
+ self.titleImg=Util.GetGameObject(self.gameObject, "titleImg"):GetComponent("Image")
+ self.timeTxt=Util.GetGameObject(self.gameObject, "time"):GetComponent("Text")
+ self.titleImg.sprite=self.spLoader:LoadSprite("r_zhouka_zksh_zh")
+ 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].bg = self.cardPres[i].go:GetComponent("Image")
self.cardPres[i].name = Util.GetGameObject(self.cardPres[i].go, "nameBg/name"):GetComponent("Text")
self.cardPres[i].nameBg = Util.GetGameObject(self.cardPres[i].go, "nameBg"):GetComponent("Image")
self.cardPres[i].icon = Util.GetGameObject(self.cardPres[i].go, "icon"):GetComponent("Image")
@@ -45,17 +45,18 @@ function WeekCardPanel:InitComponent()
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")
self.cardPres[i].rewardGrid = Util.GetGameObject(self.cardPres[i].go, "grid")
- self.cardPres[i].rewards = {}
- for j = 1, self.cardPres[i].rewardGrid.transform.childCount do
- table.insert(self.cardPres[i].rewards, self.cardPres[i].rewardGrid.transform:GetChild(j - 1).gameObject)
+ self.cardPres[i].rewards={}
+ for j= 1 ,self.cardPres[i].rewardGrid.transform.childCount do
+ table.insert(self.cardPres[i].rewards,self.cardPres[i].rewardGrid.transform:GetChild(j - 1).gameObject)
self.cardPres[i].rewardGrid.transform:GetChild(j - 1).gameObject:SetActive(false)
end
- end
- self.btnBack = Util.GetGameObject(self.gameObject, "btnClose")
- self.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn")
- for i = 1, 5 do
- table.insert(self.tabs, Util.GetGameObject(self.gameObject, "scrollrect/tabs/" .. i))
+ end
+ self.btnBack = Util.GetGameObject(self.gameObject,"btnClose")
+ self.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn")
+
+ for i=1,5 do
+ table.insert(self.tabs,Util.GetGameObject(self.gameObject, "scrollrect/tabs/"..i))
end
end
@@ -85,104 +86,107 @@ function WeekCardPanel:OnOpen(args)
-- self.actConfig = _activityConfig
-- self.pageIndex = _index
-- self.parent = parent
- activityId = args
+ activityId=args
end
function WeekCardPanel:OnSortingOrderChange()
end
-- 打开,重新打开时回调
-local allcards = {}
-local curKey = 0
-local curIndex = 0
+local allcards={}
+local curKey=0
+local curIndex=0
--local activityId=0
-local endTime = 0
+local endTime=0
function WeekCardPanel:OnShow()
self.gameObject:SetActive(true)
sortingOrder = _sortingOrder
local serverOpenTime = PlayerManager.GetServerOpenTime()
-- 查看周卡界面刷新红点
- PlayerPrefs.SetInt("IsCheckWeekCard_" .. PlayerManager.uid, 1)
+ PlayerPrefs.SetInt("IsCheckWeekCard_"..PlayerManager.uid, 1)
CheckRedPointStatus(RedPointType.WeekCard)
local id = ActivityGiftManager.GetActivityTypeInfo(102)
- endTime = id.endTime
- self.timeTxt.text = Language[10022] ..
- TimeStampToDateStr6(id.startTime) .. Language[12025] .. TimeStampToDateStr6(id.endTime)
- weekcardR = ConfigManager.GetConfigDataByKey(ConfigName.WeekcardRotationConfig, "GlobalActivity", id.activityId)
+ endTime=id.endTime
+ self.timeTxt.text="活动时间:"..TimeStampToDateStr6(id.startTime).."至"..TimeStampToDateStr6(id.endTime)
+ weekcardR=ConfigManager.GetConfigDataByKey(ConfigName.WeekcardRotationConfig,"GlobalActivity",id.activityId)
--weekcardR=ConfigManager.GetConfigData(ConfigName.WeekcardRotationConfig,1)
- local cardTypes = {}
- for i = 1, #weekcardR.WeekcardType do
- local id = weekcardR.WeekcardType[i][3]
- local min = weekcardR.WeekcardType[i][1]
- local max = weekcardR.WeekcardType[i][2]
- local type = _WeekcardConfig[id].Type
- local data = WeekCardManager.GetWeekCardData(id)
+ local cardTypes={}
+ for i=1,#weekcardR.WeekcardType do
+ local id=weekcardR.WeekcardType[i][3]
+ local min=weekcardR.WeekcardType[i][1]
+ local max=weekcardR.WeekcardType[i][2]
+ local type=_WeekcardConfig[id].Type
+ local data=WeekCardManager.GetWeekCardData(id)
--已经购买
if data then
- if allcards[type] == nil then
- allcards[type] = {}
+ if allcards[type]==nil then
+ allcards[type]={}
end
- table.insert(allcards[type], _WeekcardConfig[id])
- table.insert(cardTypes, _WeekcardConfig[id].WeekcardType)
+ table.insert(allcards[type],_WeekcardConfig[id])
+ table.insert(cardTypes,_WeekcardConfig[id].WeekcardType)
else
- if PlayerManager.level >= min and PlayerManager.level <= max and not cardTypes[_WeekcardConfig[id].WeekcardType] then
- if allcards[type] == nil then
- allcards[type] = {}
+ if PlayerManager.level>=min and PlayerManager.level<=max and not cardTypes[_WeekcardConfig[id].WeekcardType] then
+ if allcards[type]==nil then
+ allcards[type]={}
end
- table.insert(allcards[type], _WeekcardConfig[id])
+ table.insert(allcards[type],_WeekcardConfig[id])
end
end
--table.insert(allcards,weekcardR.WeekcardType[i][3])
end
-
-
- for i = 1, 5 do
- self.tabs[i]:SetActive(false)
+
+
+ for i=1, 5 do
+ self.tabs[i]:SetActive(false)
end
- local i = 0
- local firstKey = 0
+ local i=0
+ local firstKey=0
for key, value in pairs(allcards) do
- i = i + 1
+ i=i+1
self.tabs[i]:SetActive(true)
- local name = Util.GetGameObject(self.tabs[i], "Text"):GetComponent("Text")
- name.text = value[1].Desc
- local red = Util.GetGameObject(self.tabs[i], "redpoint")
+ local name=Util.GetGameObject(self.tabs[i], "Text"):GetComponent("Text")
+ name.text=value[1].Desc
+ local red=Util.GetGameObject(self.tabs[i], "redpoint")
red:SetActive(false)
if firstKey == 0 then
firstKey = key
- curIndex = i
+ curIndex=i
end
- local kk = key
+ local kk=key
Util.AddClick(self.tabs[i], function()
- curKey = kk
- curIndex = i
+
+ curKey=kk
+ curIndex=i
self:SetCardWind(curKey)
end)
- LogError("key==" .. key .. " value==" .. value[1].Id .. " value2==" .. value[2].Id)
+ LogError("key=="..key.." value=="..value[1].Id.." value2=="..value[2].Id)
end
self:CheckTabRed()
- if curKey == 0 then
- curKey = firstKey
+ if curKey==0 then
+ curKey=firstKey
end
self:SetCardWind(firstKey)
end
+
function WeekCardPanel:CheckTabRed()
- --检测页签红点
- local num = 0
- for key, value in pairs(allcards) do
- num = num + 1
- local isTrue = false
- Util.GetGameObject(self.tabs[num], "redpoint"):SetActive(false)
- for i = 1, #value do
- isTrue = WeekCardManager.CheckTabRedReward(value[i].Id)
+ --检测页签红点
+ local num=0
+ for key, value in pairs(allcards) do
+ num=num+1
+ local isTrue=false
+ Util.GetGameObject(self.tabs[num], "redpoint"):SetActive(false)
+ for i=1,#value do
+ isTrue=WeekCardManager.CheckTabRedReward(value[i].Id)
if isTrue then
- Util.GetGameObject(self.tabs[num], "redpoint"):SetActive(isTrue)
+ Util.GetGameObject(self.tabs[num], "redpoint"):SetActive(isTrue)
end
- end
- end
+ end
+
+ end
end
--- 妖晶数量显示
+
+-- 钻石数量显示
function WeekCardPanel:RefreshShow()
-- local allData = WeekCardManager.GetWeekCardDataArray()
-- --月卡
@@ -195,140 +199,143 @@ function WeekCardPanel:RefreshShow()
self:SetCardWind(curKey)
end
+
--设置周卡界面
function WeekCardPanel:SetCardWind(key)
- curkey = key
+ curkey=key
if allcards[curkey] then
- local aaa = 0
+ local aaa=0
for k, value in pairs(allcards) do
- aaa = aaa + 1
- if k == curkey then
- break
- end
+ aaa=aaa+1
+ if k==curkey then
+ break
+ end
end
self.selectObj.transform:SetParent(self.tabs[aaa].transform)
self.selectObj.transform.localScale = Vector3.one
self.selectObj.transform.localPosition = Vector3.zero
self.selectTxt:GetComponent("Text").text = Util.GetGameObject(self.tabs[aaa], "Text"):GetComponent("Text").text
- for i = 1, #allcards[curkey] do
- self:ShowCardInfo(i, allcards[curkey][i])
- end
+ for i=1,#allcards[curkey] do
+ self:ShowCardInfo(i,allcards[curkey][i])
+ end
end
end
+
+
--显示周卡信息
-function WeekCardPanel:ShowCardInfo(index, config)
+function WeekCardPanel:ShowCardInfo(index,config)
local pre = self.cardPres[index]
if not pre then
- return
+ return
end
if not config then
- return
+ return
end
-- 背景
-
+
-- 物品名称
- if config.QualityType == 1 then
- pre.name.text = GetLanguageStrById(config.Name) -- Language[10349]
- pre.bg.sprite = self.spLoader:LoadSprite("r_shijie_xuanzetiao")
- pre.btnImg.sprite = self.spLoader:LoadSprite("r_zhouka_btn_an")
- pre.nameBg.sprite = self.spLoader:LoadSprite("r_zhouka_btn_bg2")
- else
- pre.name.text = GetLanguageStrById(config.Name) --Language[12026]
- pre.bg.sprite = self.spLoader:LoadSprite("r_shijie_xuanzetiao")
- pre.btnImg.sprite = self.spLoader:LoadSprite("r_zhouka_btn_liang")
- pre.nameBg.sprite = self.spLoader:LoadSprite("r_zhouka_btn_bg1")
- end
+ if config.QualityType==1 then
+ pre.name.text =config.Name-- "普通"
+ pre.bg.sprite = self.spLoader:LoadSprite("X1_chongzhi_zuanshidiban")
+ pre.btnImg.sprite=self.spLoader:LoadSprite("X1_shouzha_yeqianxuanzhong_01")
+ pre.nameBg.sprite=self.spLoader:LoadSprite("UI_hz_zhonghe01_64")
+ else
+ pre.name.text = config.Name--"豪华"
+ pre.bg.sprite = self.spLoader:LoadSprite("X1_chongzhi_zuanshidiban")
+ pre.btnImg.sprite=self.spLoader:LoadSprite("X1_shouzha_yeqianxuanzhong_03")
+ pre.nameBg.sprite=self.spLoader:LoadSprite("UI_hz_zhonghe01_64")
+ end
+
-- 每日奖励数量
local itemId = 0
local dayNum = 0
- -- pre.rewards
- -- weekReward
- local allNum = 0
- local name = ""
- local icon = ""
- local oneNum = 0
- for i = 1, #config.BaseRewardID do
+ -- pre.rewards
+ -- weekReward
+ local allNum=0
+ local name=""
+ local icon=""
+ local oneNum=0
+ for i=1,#config.BaseRewardID do
if pre.rewards[i] then
pre.rewards[i]:SetActive(true)
- local dayTxt = Util.GetGameObject(pre.rewards[i], "day"):GetComponent("Text")
- dayTxt.text = Language[10286] .. NumToChinese[config.BaseRewardID[i][1]] .. Language[10017]
- local rewardId = config.BaseRewardID[i][2]
- if weekReward[rewardId] then
- local id = weekReward[rewardId].BaseReward[1]
- local num = weekReward[rewardId].BaseReward[2]
- name = _ItemConfig[id].Name
- oneNum = num
- icon = GetResourcePath(_ItemConfig[id].ResourceID)
- itemId = id
- pre.rewards[i]:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(
- _ItemConfig[id].Quantity))
- local icon1 = Util.GetGameObject(pre.rewards[i], "Image"):GetComponent("Image")
- icon1.sprite = self.spLoader:LoadSprite(icon)
- local stateTxt = Util.GetGameObject(pre.rewards[i], "Text"):GetComponent("Text")
- local numTxt = Util.GetGameObject(pre.rewards[i], "num"):GetComponent("Text")
- if num > 10000 then
- numTxt.text = PrintWanNum2(num)
+ local dayTxt=Util.GetGameObject(pre.rewards[i],"day"):GetComponent("Text")
+ dayTxt.text="第"..NumToChinese[config.BaseRewardID[i][1]].."天"
+ local rewardId=config.BaseRewardID[i][2]
+ if weekReward[rewardId] then
+ local id= weekReward[rewardId].BaseReward[1]
+ local num= weekReward[rewardId].BaseReward[2]
+ name=_ItemConfig[id].Name
+ oneNum=num
+ icon=GetResourcePath(_ItemConfig[id].ResourceID)
+ itemId=id
+ pre.rewards[i]:GetComponent("Image").sprite=self.spLoader:LoadSprite(GetQuantityImageByquality(_ItemConfig[id].Quantity))
+ local icon1=Util.GetGameObject(pre.rewards[i],"Image"):GetComponent("Image")
+ icon1.sprite=self.spLoader:LoadSprite(icon)
+ local stateTxt=Util.GetGameObject(pre.rewards[i],"Text"):GetComponent("Text")
+ local numTxt=Util.GetGameObject(pre.rewards[i],"num"):GetComponent("Text")
+ if num>10000 then
+ numTxt.text=PrintWanNum2(num)
else
- numTxt.text = num
+ numTxt.text=num
end
-
- allNum = allNum + num
+
+ allNum=allNum+num
end
-
- -- pre.rewards[i]:GetComponent("Image").sprite=self.spLoader:LoadSprite(config.TypeImage)
+
+ -- pre.rewards[i]:GetComponent("Image").sprite=self.spLoader:LoadSprite(config.TypeImage)
end
end
-
+
pre.icon.sprite = self.spLoader:LoadSprite(icon)
- Util.AddClick(pre.icon.gameObject, function()
- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemId, nil)
- end)
- pre.Text.text = GetLanguageStrById(name) .. "*" .. PrintWanNum2(oneNum)
- local str = GetLanguageStrById(name) .. "*" .. PrintWanNum2(allNum)
- pre.hint.text = Language[12027] .. "" .. str .. ""
+ Util.AddClick(pre.icon.gameObject,function()
+ UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,itemId,nil)
+ end )
+ pre.Text.text = name.."*"..PrintWanNum2(oneNum)
+ local str=name.."*"..PrintWanNum2(allNum)
+ pre.hint.text = "共计: "..""..str..""
local rechargeCfg = _RechargeCommodityConfig[config.RechargeId]
if not rechargeCfg then
- return
+ return
end
- local data = WeekCardManager.GetWeekCardData(config.Id)
+ local data=WeekCardManager.GetWeekCardData(config.Id)
-- 按钮状态
if data then
- local getNum = 0
- for i = 1, #data.leaveGetRewardDays do
- if data.leaveGetRewardDays[i].state == 1 then
- getNum = getNum + 1
+ local getNum=0
+ for i=1,#data.leaveGetRewardDays do
+ if data.leaveGetRewardDays[i].state==1 then
+ getNum=getNum+1
end
end
local residueTimeNum = endTime - GetTimeStamp()
local dayNum = math.floor(residueTimeNum / (24 * 3600))
- pre.timeTxt.text = Language[10049] .. dayNum .. Language[12028]
- if dayNum == 0 then
+ pre.timeTxt.text="(剩余"..dayNum.."天)"
+ if dayNum==0 then
pre.timeTxt.gameObject:SetActive(false)
else
pre.timeTxt.gameObject:SetActive(true)
end
if getNum > 0 then
-- 领取奖励
- pre.btnText.text = Language[10018]
+ pre.btnText.text = "领取"
pre.red:SetActive(true)
Util.SetGray(pre.btn, false)
Util.AddOnceClick(pre.btn, function()
local id = ActivityGiftManager.GetActivityTypeInfo(102)
--LogError("cardid=="..data.id.." id=="..id.activityId)
- WeekCardManager.RequestGetWeekCardReward(data.id, id.activityId, function()
+ WeekCardManager.RequestGetWeekCardReward(data.id, id.activityId,function()
-- 刷新显示
self:RefreshShow()
end)
end)
else
-- 已领取
- pre.btnText.text = Language[10025]
+ pre.btnText.text = "已领取"
pre.red:SetActive(false)
Util.SetGray(pre.btn, true)
Util.AddOnceClick(pre.btn, function()
- PopupTipPanel.ShowTip(Language[12022])
+ PopupTipPanel.ShowTip("您已领取该奖励")
end)
end
else
@@ -338,7 +345,7 @@ function WeekCardPanel:ShowCardInfo(index, config)
pre.red:SetActive(false)
Util.SetGray(pre.btn, false)
Util.AddOnceClick(pre.btn, function()
- PayManager.Pay(config.RechargeId, function(id)
+ PayManager.Pay(config.RechargeId, function(id)
-- 前端修改购买状态
--data.isBuy = true
--WeekCardManager.UpdateWeekCardData(data)
@@ -347,16 +354,21 @@ function WeekCardPanel:ShowCardInfo(index, config)
end)
end)
end
+
end
+
+
+
+
function WeekCardPanel:SetCardShow(index, data)
local pre = self.cardPres[index]
if not pre then
- return
+ return
end
local config = _WeekcardConfig[data.id]
if not config then
- return
+ return
end
-- 背景
pre.bg.sprite = self.spLoader:LoadSprite(config.BgImage)
@@ -374,7 +386,7 @@ function WeekCardPanel:SetCardShow(index, data)
-- 当前累计奖励数量
local curNum = dayNum * data.leaveGetRewardDays or 0
pre.curNum.text = PrintWanNum2(curNum)
- pre.curNum.transform.parent.gameObject:SetActive(curNum ~= 0) -- 累计数量为0时不显示
+ pre.curNum.transform.parent.gameObject:SetActive(curNum ~= 0) -- 累计数量为0时不显示
-- 总奖励数量
local continueDay = config.ContiueDays or 0
local allNum = dayNum * continueDay
@@ -388,14 +400,14 @@ function WeekCardPanel:SetCardShow(index, data)
local rechargeCfg = _RechargeCommodityConfig[config.RechargeId]
if not rechargeCfg then
- return
+ return
end
-- 按钮状态
if data.isBuy then
if data.leaveGetRewardDays > 0 then
-- 领取奖励
- pre.btnText.text = Language[10018]
+ pre.btnText.text = "领取"
pre.red:SetActive(true)
Util.SetGray(pre.btn, false)
Util.AddOnceClick(pre.btn, function()
@@ -406,11 +418,11 @@ function WeekCardPanel:SetCardShow(index, data)
end)
else
-- 已领取
- pre.btnText.text = Language[10025]
+ pre.btnText.text = "已领取"
pre.red:SetActive(false)
Util.SetGray(pre.btn, true)
Util.AddOnceClick(pre.btn, function()
- PopupTipPanel.ShowTip(Language[12022])
+ PopupTipPanel.ShowTip("您已领取该奖励")
end)
end
else
@@ -419,7 +431,7 @@ function WeekCardPanel:SetCardShow(index, data)
pre.red:SetActive(false)
Util.SetGray(pre.btn, false)
Util.AddOnceClick(pre.btn, function()
- PayManager.Pay(config.RechargeId, function(id)
+ PayManager.Pay(config.RechargeId, function(id)
-- 前端修改购买状态
data.isBuy = true
WeekCardManager.UpdateWeekCardData(data)
@@ -436,11 +448,10 @@ function WeekCardPanel:OnClose()
CheckRedPointStatus(RedPointType.WeekCardOpen)
CheckRedPointStatus(RedPointType.WeekCardReward)
end
-
--界面销毁时调用(用于子类重写)
function WeekCardPanel:OnDestroy()
self.spLoader:Destroy()
self.cardPres = {}
end
-
return WeekCardPanel
+