【ID1009412】

【超值基金】超值基金页面及奖励领取逻辑优化
dev_chengFeng
jiaoyangna 2021-07-13 17:25:21 +08:00
parent 877ec25063
commit 9f4d456004
7 changed files with 251 additions and 165 deletions

View File

@ -1161,6 +1161,80 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
--- !u!1 &7068780587487006022
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4095337321497035801}
- component: {fileID: 2583225234602877354}
- component: {fileID: 570133163089678911}
m_Layer: 5
m_Name: yilingqu
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4095337321497035801
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7068780587487006022}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 3026958449964278605}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 190, y: 116}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2583225234602877354
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7068780587487006022}
m_CullTransparentMesh: 0
--- !u!114 &570133163089678911
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7068780587487006022}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 21300000, guid: 9cb4aa53aa218974fa09913ff23f3fd5, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
--- !u!1 &7575804837319189379
GameObject:
m_ObjectHideFlags: 0
@ -1264,6 +1338,7 @@ RectTransform:
m_Children:
- {fileID: 8451588087794241115}
- {fileID: 8296427967819817445}
- {fileID: 4095337321497035801}
m_Father: {fileID: 2481339074999143791}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@ -2643,6 +2643,17 @@ NumToChinese = {
[18] = "十八",
[19] = "十九",
[20] = "二十",
[21] = "二十一",
[22] = "二十二",
[23] = "二十三",
[24] = "二十四",
[25] = "二十五",
[26] = "二十六",
[27] = "二十七",
[28] = "二十八",
[29] = "二十九",
[30] = "三十",
[31] = "三十一",
}
--抽卡配置

View File

@ -183,7 +183,6 @@ function this.InitActivityServerData(msg, isUpdate)
TreasureOfSomebodyManagerV2.SetTreasureLocalData()
this.OnlineStartCountDown()
FindFairyManager.SetActivityData()
end
--倒计时逻辑处理
@ -206,8 +205,6 @@ function this.OnlineStartCountDown()
this.haveOnlineTime = nowStageTime - this.haveOnlineTime
end
--检测七日礼包红点
function this.CheckSevenDayRed()
local sevenDayRed = this.CheckRedFunc(RedPointType.CourtesyDress_SevenDay)

View File

@ -984,6 +984,7 @@ function this:OnShow()
this.InitFuncShow()
this.RefreshActivityShow()
this.RefreshFuncNewText()
this.RefreshGiftBtnShow()
-- 刷新一次编队战斗力
FormationManager.RefreshMainFormationPower()
this.TimeFormat()
@ -1370,6 +1371,21 @@ function this.RefreshChangeName()
end
end
-- 刷新一些购买活动的按钮限时
function this.RefreshGiftBtnShow()
for k,v in pairs(activitys) do
local ishow = DynamicActivityManager.IsQualifiled(v.Id)
if v.ActId == 668 and ishow then
-- 加入对月卡的判断
-- local isMonthCardActive = OperatingManager.IsMonthCardActive()
local showTab = activityTabs[k].go.gameObject.activeSelf
local isOpen_128 = OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_128)
local isOpen_328 = OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_328)
showTab = (isOpen_128 or isOpen_328)--isMonthCardActive and
this.RefreshLayer(showTab,k,v)
end
end
end
--后台推送
function this.RefreshActivityBtn(context)
--LogGreen("context.type1 " .. context.type .. " " .. context.status)
@ -1419,27 +1435,69 @@ end
function this.RefreshActivityShow()
--八日十五日登陆
this.RefreshEightGiftPreview()
this.RefreshGiftBtnShow()
end
function this.RefreshGiftBtnShow()
local curAllMonthCardData = OperatingManager.GetMonthCardData()
local curState = VipManager.GetChargedNum() > ConfigManager.GetConfigData(ConfigName.MonthcardConfig,MONTH_CARD_TYPE.LUXURYMONTHCARD).Price
local showTab
for k,v in ipairs(activitys) do
if v.FunType == 94 then
showTab = activityTabs[k].go.gameObject.activeSelf
local ishow = ActTimeCtrlManager.SingleFuncState(v.FunType)
if ishow then
if curState then
showTab = true
local showTab = activityTabs[k].go.gameObject.activeSelf
local ishow = DynamicActivityManager.IsQualifiled(v.Id)
if ishow then
if v.RpType > 0 then
--绑定新的红点
BindRedPointObject(v.RpType,activityTabs[k].redpot)
end
if v.ActiveType < 1 and v.FunType < 1 then
if v.ActId == 666 then
--限时折扣
local giftList = {}
giftList = OperatingManager.GetInfoList(v.ShopData)
if #giftList > 0 then
local time = giftList[1].endTime - GetTimeStamp()
if time < 1 then
OperatingManager.RemoveItemInfoByType(GoodsTypeDef.DirectPurchaseGift, giftList[1].goodsId)
showTab = false
else
showTab = true
end
else
showTab = false
end
end
elseif v.ActiveType > 0 then
local activityId = ActivityGiftManager.IsActivityTypeOpen(v.ActiveType)
if activityId and activityId > 0 and ActivityGiftManager.IsQualifiled(v.ActiveType) then
if v.ActiveType == 42 then
if ActivityGiftManager.GetRewardState(42) ~= 3 then
local endTime = ActivityGiftManager.GetTaskEndTime(ActivityTypeDef.SupremeHero)
if endTime - PlayerManager.serverTime > 0 then
showTab = true
else
showTab = false
end
else
showTab = false
end
elseif v.FunType and v.FunType == 41 then
showTab = DailyRechargeManager.GetDailyRechargeExist()
elseif v.ActiveType == 78 then
showTab = ActivityGiftManager.GetActivityValueInfo(v.ActiveType, activityId) ~= 0
else
showTab = true
end
else
showTab = false
end
elseif v.FunType > 0 then
if ActTimeCtrlManager.SingleFuncState(v.FunType) then
showTab = true
else
showTab = false
end
else
showTab = false
end
this.RefreshLayer(showTab,k,v)
break
end
else
showTab = false
end
this.RefreshLayer(showTab,k,v)
end
end

View File

@ -287,6 +287,9 @@ function this.GetActiveGoodsIDByType(goodsType)
end
end
end
function this.GetGoodsEndTime(goodsType)
local goodsId, endTime = this.GetActiveGoodsIDByType(goodsType)
return endTime

View File

@ -2,9 +2,10 @@
local UpperMonthCard = {}
local sortingOrder = 0
local chargeConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)
local globalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity)
--- 本地枚举
local ImgType = {
[10002] = {
[78] = {
bg = "y_yjj_128beijdi",
mask = "y_yjj_128dikuang001",
rewardBg = "y_yjj_128kuang",
@ -13,9 +14,8 @@ local ImgType = {
rewardPreviewText = "y_yjj_128kuang005",
reward = "y_yjj_1280",
iconId = 16,
chargerBaseType = GoodsTypeDef.MONTHCARD_128,
},
[10003] = {
[79] = {
bg = "s_sanshibei_beijingren",
mask = "s_sanshibei_bg",
rewardBg = "s_sanshibei_kuang_02",
@ -24,7 +24,6 @@ local ImgType = {
rewardPreviewText = "s_sanshibei_biaotizi",
reward = "y_yjj_3280",
iconId = 16,
chargerBaseType = GoodsTypeDef.MONTHCARD_328,
},
}
@ -57,29 +56,39 @@ function UpperMonthCard:InitComponent()
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/grid")
local width = self.grid.transform.rect.width
local height = self.grid.transform.rect.height
self.itemPre = Util.GetGameObject(self.middlePart.transform, "middle/itemPre")
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.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.grid.transform,
self.itemPre, nil, Vector2.New(width, height), 1, 5, Vector2.New(35, 35))
self.scrollView.moveTween.MomentumAmount = 1
self.scrollView.moveTween.Strength = 2
---- 奖励列表
self.rewardList = {}
end
--添加事件监听(用于子类重写)
function ActivityMainPanel:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityProgressStateChange,self.RefreshPanel,self)
end
--移除事件监听(用于子类重写)
function ActivityMainPanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityProgressStateChangeself.RefreshPanel,self)
end
--绑定事件(用于子类重写)
function UpperMonthCard:BindEvent()
Util.AddOnceClick(self.btnBuy, function()
PayManager.Pay(self.baseType, function(id)
self:RechargeSuccessFunc(id)
end)
Util.AddOnceClick(self.btnBuy, function()
if self.actInfo.value == 0 then
PayManager.Pay(self.baseType, function(id)
self:RechargeSuccessFunc(id)
end)
elseif self.isGet then
NetManager.GetActivityRewardRequest(0,self.actInfo.activityId,function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup, msg, 1)
end)
end
end)
end
@ -96,33 +105,21 @@ end
-- 打开,重新打开时回调
function UpperMonthCard:OnShow(_sortingOrder)
self.gameObject:SetActive(true)
sortingOrder = _sortingOrder
self.actType = self.actConfig.ActId
--- 鸡精类型
self.chargerBaseType = ImgType[self.actType].chargerBaseType
self.sortingOrder = _sortingOrder
self.actType = self.actConfig.ActiveType
self.actInfo = ActivityGiftManager.GetActivityInfoByType(self.actType)
self.baseType = globalActivity[self.actInfo.activityId].CanBuyRechargeId
self:SetPanelType()
self:RefreshPanel()
end
--- 鸡精的商品ID
-- 判断我是否购买过该商品
local goodsId = OperatingManager.GetActiveGoodsIDByType(self.chargerBaseType)
if not goodsId then
-- 没有购买过判断是否在活动期间
local gift = OperatingManager.GetGiftGoodsInfo(self.chargerBaseType)
if not gift then
return
end
goodsId = gift.goodsId
end
self.baseType = goodsId
self.gameObject:SetActive(true)
--OperatingManager.SetSerData(self.chargerBaseType)
self:SetPanelType(self.actType)
-- self:SetRewardInfo(self.actType)
-- self:SetBuyState()
function UpperMonthCard:RefreshPanel()
self:SetRewardInfo()
self:SetBuyState()
end
--- 设置不同的显示界面
function UpperMonthCard:SetPanelType(type)
function UpperMonthCard:SetPanelType()
self.Bg.sprite = self.spLoader:LoadSprite(ImgType[self.actType].bg)
self.mask.sprite = self.spLoader:LoadSprite(ImgType[self.actType].mask)
@ -136,136 +133,85 @@ function UpperMonthCard:SetPanelType(type)
end
--- 设置不同界面的奖励信息
function UpperMonthCard:SetRewardInfo(type)
local data = OperatingManager.GetPanelShowReward(self.baseType, false,true)
for i = 1, #data do
if not self.rewardList[i] then
self.rewardList[i] = {}
self.rewardList[i].go = newObjToParent(self.itemPre, self.grid)
self.rewardList[i].item = SubUIManager.Open(SubUIConfig.ItemView, self.rewardList[i].go.transform)
function UpperMonthCard:SetRewardInfo()
local mission = self.actInfo.mission
table.sort(mission,function(a,b)
return a.missionId < b.missionId
end)
if not self.itemLst then
self.itemLst = {}
end
for i = 1,math.max(#mission,LengthOfTable(self.itemLst)) do
if not mission[i] then
self.itemLst[i].go.gameObject:SetActive(false)
else
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")
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)
self.itemLst[i].itemView:OnOpen(false, reward, 1.1, false, false, false, self.sortingOrder)
--2 已领取 1可领 0不可领
if mission[i].state == 2 then
self.itemLst[i].yiGet.gameObject:SetActive(true)
else
self.itemLst[i].yiGet.gameObject:SetActive(false)
end
end
local rewardData = data[i]
self.rewardList[i].item:OnOpen(false, {rewardData[1],rewardData[2]}, 1.12,true)
end
end
--- 根据是否购买了显示信息
function UpperMonthCard:SetBuyState()
-- local isActive = VipManager.GetMonthCardOpenState()
-- local isBought = OperatingManager.IsBaseBuy(self.chargerBaseType)
local canBuyNum = OperatingManager.GetLeftBuyTime(self.chargerBaseType, self.baseType)
local isBought = canBuyNum and canBuyNum <= 0
self.boughtPanel:SetActive(isBought)
self.buyPanel:SetActive(not isBought)
-- Util.SetGray(self.btnBuy, not isActive)
--isActive and
self.textBuy.text = (string.format(MoneyUtil.GetMoneyUnitName(),MoneyUtil.GetMoney(chargeConfig[self.baseType].Price))) or (string.format(MoneyUtil.GetMoneyUnitName(),MoneyUtil.GetMoney(chargeConfig[self.baseType].Price)))-- .. MoneyUtil.GetMoneyUnitName())
self.actLeftTime.gameObject:SetActive(false)
if not isBought then
-- self:SetBuyPanelInfo()
if self.actInfo.value == 1 then
self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[0].bg)
self.textBuy.text = state[0].text
self.btnBuyRed.gameObject:SetActive(false)
else
self:SetBoughtPanelInfo()
end
end
function UpperMonthCard:SetBuyPanelInfo()
--- 未激活,在活动时间内
local isOpen = OperatingManager.IsBaseOpen(self.chargerBaseType, self.baseType)
self.buyTimer = nil
if isOpen then
--- 获取剩余时间结束时间为0表示不限时
local data = OperatingManager.GetGiftGoodsInfo(self.chargerBaseType, self.baseType)
local endTime = data.endTime
if endTime <= 0 then
self.actLeftTime.gameObject:SetActive(false)
else
self.actLeftTime.gameObject:SetActive(true)
self.buyTimer = Timer.New(function ()
if endTime - GetTimeStamp() <= 0 then
Log("时间到,活动关闭")
self.buyTimer:Stop()
self:ClosePanel()
end
end, 1, -1, true)
self.buyTimer:Start()
self.actLeftTime.text = Language[10573] .. self:TimeFormat(endTime - PlayerManager.serverTime)
self.isGet = false
for i = 1,#self.actInfo.mission do
if self.actInfo.mission.state == 1 then
self.isGet = true
break
end
end
else
self.actLeftTime.gameObject:SetActive(false)
end
end
function UpperMonthCard:SetBoughtPanelInfo()
local endTime = OperatingManager.GetGoodsEndTime(self.chargerBaseType)
self.totalLoginday.text = Language[11388] .. OperatingManager.GetRewardDay(self.chargerBaseType) .. Language[10017]
local startStr, endStr = OperatingManager.GetShowTime(endTime)
self.boughtLeftTime.text = Language[11389] ..startStr .. "".. endStr
--- 购买后倒计时显示
self.timer = nil
self.timer = Timer.New(function()
if GetTimeStamp() > endTime then
--- 注销鸡精
OperatingManager.RemoveEndTime(self.baseType)
self:SetBuyState()
self.timer:Stop()
if self.isGet then
self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[1].bg)
self.textBuy.text = state[1].text
self.btnBuyRed.gameObject:SetActive(true)
else
OperatingManager.SetSerData(self.chargerBaseType)
self.totalLoginday.text = Language[11388] .. OperatingManager.GetRewardDay(self.chargerBaseType) .. Language[10017]
self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[2].bg)
self.textBuy.text = state[2].text
self.btnBuyRed.gameObject:SetActive(false)
end
end, 1, -1, true)
self.timer:Start()
end
end
-- 充值成功回调
function UpperMonthCard:RechargeSuccessFunc(id)
FirstRechargeManager.RefreshAccumRechargeValue(id)
OperatingManager.RefreshGiftGoodsBuyTimes(GoodsTypeDef.DemonCrystal, id)
--- 设置购买成功数据
OperatingManager.SetSignRewarDay(self.chargerBaseType, 438)
local startTime = Today_N_OClockTimeStamp(0)
OperatingManager.SetGoodsEndTime(self.baseType, startTime + 30 * 24 * 60 * 60 - 1)
-- Today_N_OClockTimeStamp
--- 刷新本地显示
self:FreshBoughtShow()
end
--- 购买成功刷新
function UpperMonthCard:FreshBoughtShow()
self.boughtPanel:SetActive(true)
self.buyPanel:SetActive(false)
self.totalLoginday.text = Language[11388] .. OperatingManager.GetRewardDay(self.chargerBaseType) .. Language[10017]
local startStr, endStr = OperatingManager.GetShowTime(OperatingManager.GetGoodsEndTime(self.chargerBaseType))
self.boughtLeftTime.text = Language[11389] ..startStr .. "".. endStr
end
function UpperMonthCard:TimeFormat(second)
local day = math.floor(second / (24 * 3600))
local minute = math.floor(second / 60) % 60
local sec = second % 60
local hour = math.floor(math.floor(second - day * 24 * 3600 - sec - minute * 60) / 3600)
return string.format(Language[11390], day, hour, minute)
end
--界面关闭时调用(用于子类重写)
function UpperMonthCard:OnClose()
self.gameObject:SetActive(false)
end
--界面销毁时调用(用于子类重写)
function UpperMonthCard:OnDestroy()
self.spLoader:Destroy()
for k,v in pairs(self.rewardList) do
SubUIManager.Close(v.item)
for k,v in pairs(self.itemLst) do
SubUIManager.Close(v.itemView)
end
Util.ClearChild(self.grid.transform)
self.rewardList = {}
self.itemLst = {}
end
return UpperMonthCard

View File

@ -362,14 +362,14 @@ function this.SetPlayerRide(value)
PlayerManager.ride = value
end
function this.GetPlayerDesignation()
--刷新所有时装 坐骑 称号 集合 检查是否有限时到时间的并删除
this.RefreshAllSkinRideTitle()
--加判断是否到时间 卸掉
local curTitleData = this.userTitleList[PlayerManager.designation]
if curTitleData then
if curTitleData.overTime > GetTimeStamp() or curTitleData.overTime == 0 then
return PlayerManager.designation
end
else
return PlayerManager.designation
end
NetManager.RequestChangeModifyDecoration(2,0)
this.SetPlayerDesignation(0)
@ -386,8 +386,6 @@ function this.GetPlayerSkin()
if curSkinData.overTime > GetTimeStamp() or curSkinData.overTime == 0 then
return PlayerManager.skin
end
else
return PlayerManager.skin
end
NetManager.RequestChangeModifyDecoration(4,0)
this.SetPlayerSkin(0)
@ -402,8 +400,6 @@ function this.GetPlayerRide()
if currideData.overTime > GetTimeStamp() or currideData.overTime == 0 then
return PlayerManager.ride
end
else
return PlayerManager.ride
end
NetManager.RequestChangeModifyDecoration(3,0)
this.SetPlayerRide(0)