local MultilevelRecharge_Controller = {} local EventSystem = require 'Event/EventSystem' local private = {} MultilevelRecharge_Controller.Reward_Type = { Hero = "Hero", Horse = "Horse", Treasure = "Treasure", Weapon = "Weapon", Picture = "Picture", HeroAndFollower = "HeroAndFollower", } function MultilevelRecharge_Controller.OnStartup() EventSystem.Regist(EventID.UI_Shop_Recharge, MultilevelRecharge_Controller.RefreshRedPoint) EventSystem.Regist(EventID.UI_TotalTopUp_RefreshInfo, MultilevelRecharge_Controller.RefreshRedPoint) EventSystem.Regist(EventID.UI_RefreshCurrency, MultilevelRecharge_Controller.OnRechargeCreditUpdate) EventSystem.Regist(EventID.FunctionUnlockUpdate, private.RefreshInfoByFunction) EventSystem.Regist(EventID.FunctionUnlockUpdate, MultilevelRecharge_Controller.RefreshRedPoint) end -- TotalTopUp 档位红点 function MultilevelRecharge_Controller.IsChargeStateHasRedPoint(id) local rewardList = MDL.MultilevelRecharge.GetRewardList() local state = MDL.MultilevelRecharge.GetCurrentChargeStateId() if rewardList[id] == false and id < state then return true end local lastChargeMoney = MDL.MultilevelRecharge.GetLastChargeAmountVal() if not rewardList[id] and MDL.Currency.GetTotalRechargeCredit() >= lastChargeMoney then return true end return false end -- TotalTopBase累冲页签节点有无红点 function MultilevelRecharge_Controller.HasTotalChargeRedPoint() if MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.TotalTopUp) then for i, v in DataSheetManager.TotalTopUp:GetEnumerator() do if MultilevelRecharge_Controller.IsChargeStateHasRedPoint(v.ID) then return true end end end return false end function MultilevelRecharge_Controller.RefreshRedPoint() -- 判断 TotalTopBase 累冲页签tab红点 if MultilevelRecharge_Controller.HasTotalChargeRedPoint() then CTL.RedPoint.AddRedPoint(CTL.RedPoint.RedPointKey.PayMall_TotalTop) EventSystem.Dispatch(CTL.RedPoint.RedPointKey.PayMall_TotalTop, true) else CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.PayMall_TotalTop) EventSystem.Dispatch(CTL.RedPoint.RedPointKey.PayMall_TotalTop, false) end end --累充送郭嘉 function MultilevelRecharge_Controller.GetGetChargeStateId_6HeroId() return tonumber(DataSheetManager.TotalTopUp:GetDataByID(MDL.MultilevelRecharge.ChargeStateId_6).ShowResource) end function MultilevelRecharge_Controller.IsFunctionRelatedToAccumulatingRechargeGJ(functionId) return functionId == MDL.Unlock.FunctionType.TotalTopUp or functionId == MDL.Unlock.FunctionType.AccumulatingRechargeGJ end function MultilevelRecharge_Controller.IsShowAccumulatingRechargeGJ() if not MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.TotalTopUp) then return false end if not MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.AccumulatingRechargeGJ) then return false end if MDL.MultilevelRecharge.IsGetReward(MDL.MultilevelRecharge.ChargeStateId_6) then return false end return true end function MultilevelRecharge_Controller.GetChargeStateId_6Amount() return DataSheetManager.TotalTopUp:GetDataByID(MDL.MultilevelRecharge.ChargeStateId_6).Amount end function MultilevelRecharge_Controller.OnRechargeCreditUpdate() if MultilevelRecharge_Controller.IsChargeStateHasRedPoint(MDL.MultilevelRecharge.ChargeStateId_6) then CTL.RedPoint.AddRedPoint(CTL.RedPoint.RedPointKey.AccumulatingRechargeGJ) else CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.AccumulatingRechargeGJ) end end function MultilevelRecharge_Controller.GetHeroPreviewShowData(heroID, heroApperanceID, weaponApperanceID) local heroInfo ={magicWeaponLevel = 15, isMagicWeaponActive = true, curWeaponAppearanceId = weaponApperanceID, heroApperanceId = heroApperanceID} return UTL.UIRender.LoadShowHeroByHeroData(heroID, heroInfo, false) end --开关玩法时执行 function private.RefreshInfoByFunction(funcId, isUnlock) if funcId == MDL.Unlock.FunctionType.TotalTopUp then if not isUnlock then private.EndAndCloseGamePlay() end end end function private.EndAndCloseGamePlay() logging.log(LTAG.LOG, "EndAndCloseGamePlay MultilevelRecharge_Controller") UIManager.CloseView(Const_UI_Lua.UIEnum.OperationActivity.UIAccumulatingRecharge) end return MultilevelRecharge_Controller