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 +