286 lines
No EOL
9.4 KiB
Lua
286 lines
No EOL
9.4 KiB
Lua
--===========================
|
||
--超限乱斗活动管理器
|
||
--模块负责:吕天元
|
||
--===========================
|
||
local XSmashBActivityManager = {}
|
||
local Config
|
||
--总已获取的能量
|
||
local CurrentEnergy
|
||
--用过的能量
|
||
local UsedEnergy
|
||
--剩余可获得的能量
|
||
local LeftEnergy
|
||
-- 队伍等级
|
||
local TeamLevel
|
||
-- 队伍升级持有道具
|
||
local TeamItem = 0
|
||
-- 队伍等级数据
|
||
local TeamLevelConfig
|
||
--===============
|
||
--设置活动配置
|
||
--===============
|
||
function XSmashBActivityManager.SetConfig(config)
|
||
Config = config
|
||
CurrentEnergy = 0
|
||
UsedEnergy = 0
|
||
LeftEnergy = 0
|
||
TeamLevelConfig = XSuperSmashBrosConfig.GetAllConfigs(XSuperSmashBrosConfig.TableKey.TeamLevel)
|
||
end
|
||
--===============
|
||
--获取给定配置的活动Id(XSuperSmashBrosActivity的Id)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetActivityId()
|
||
return Config and Config.Id or 0
|
||
end
|
||
--===============
|
||
--获取给定配置的活动OpenTimeId(XSuperSmashBrosActivity的OpenTimeId)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetOpenTimeId()
|
||
return Config and Config.OpenTimeId or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的活动名称(XSuperSmashBrosActivity的Name)
|
||
--若配置为空,则返回字符串"UnNamed"
|
||
--===============
|
||
function XSmashBActivityManager.GetName()
|
||
return Config and Config.Name or "UnNamed"
|
||
end
|
||
--===============
|
||
--获取当前配置的活动积分道具Id(XSuperSmashBrosActivity的PointItemId)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetPointItemId()
|
||
return Config and Config.PointItemId or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的活动能量道具Id(XSuperSmashBrosActivity的PointItemId)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetEnergyItemId()
|
||
return Config and Config.EnergyItemId or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的队伍等级道具Id
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetLevelItem()
|
||
return Config and Config.LevelItem or 0
|
||
end
|
||
function XSmashBActivityManager.GetLevelItemIcon()
|
||
local id = XSmashBActivityManager.GetLevelItem()
|
||
return XDataCenter.ItemManager.GetItemIcon(id)
|
||
end
|
||
--===============
|
||
--获取当前配置的活动能量道具图标
|
||
--===============
|
||
function XSmashBActivityManager.GetEnergyItemIcon()
|
||
local id = XSmashBActivityManager.GetEnergyItemId()
|
||
return XDataCenter.ItemManager.GetItemIcon(id)
|
||
end
|
||
--===============
|
||
--获取当前配置的每日恢复能量数量(XSuperSmashBrosActivity的EnergyGainByDay)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetEnergyGainByDay()
|
||
return Config and Config.EnergyGainByDay or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的能量上限(XSuperSmashBrosActivity的MaxEnergy)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetMaxEnergy()
|
||
return Config and Config.MaxEnergy or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的核心起始星级(XSuperSmashBrosActivity的CoreStartLevel)
|
||
--若配置为空,则返回1
|
||
--===============
|
||
function XSmashBActivityManager.GetCoreStartLevel()
|
||
return Config and Config.CoreStartLevel or 1
|
||
end
|
||
--===============
|
||
--获取当前配置的增幅核心所需能量(XSuperSmashBrosActivity的EnergyCostOnUpgrade)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetEnergyCostOnUpgrade()
|
||
return Config and Config.EnergyCostOnUpgrade or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的核心攻击每级提升数值(XSuperSmashBrosActivity的AtkUpNumByLevel)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetAtkUpNumByLevel()
|
||
return Config and Config.AtkUpNumByLevel or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的核心攻击每级提升战力(XSuperSmashBrosActivity的AtkUpAbilityByLevel)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetAtkUpAbilityByLevel()
|
||
return Config and Config.AtkUpAbilityByLevel or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的核心生命每级提升数值(XSuperSmashBrosActivity的LifeUpNumByLevel)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetLifeUpNumByLevel()
|
||
return Config and Config.LifeUpNumByLevel or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的核心生命每级提升数值(XSuperSmashBrosActivity的LifeUpAbilityByLevel)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetLifeUpAbilityByLevel()
|
||
return Config and Config.LifeUpAbilityByLevel or 0
|
||
end
|
||
--===============
|
||
--获取当前配置的入口配图(XSuperSmashBrosActivity的EntryImage)
|
||
--若配置为空,则返回0
|
||
--===============
|
||
function XSmashBActivityManager.GetEntryImage()
|
||
return Config and Config.EntryImage or ""
|
||
end
|
||
--===============
|
||
--获取排位特殊图标(XSuperSmashBrosActivity的RankingIcons)
|
||
--若配置为空,则返回空Table
|
||
--===============
|
||
function XSmashBActivityManager.GetRankingIcons()
|
||
return Config and Config.RankingIcons or {}
|
||
end
|
||
--===============
|
||
--获取已获得的能量总数(后端数据)
|
||
--===============
|
||
function XSmashBActivityManager.GetCurrentEnergy()
|
||
return CurrentEnergy or 0
|
||
end
|
||
--===============
|
||
--获取剩余可获得的能量总数(后端数据)
|
||
--===============
|
||
function XSmashBActivityManager.GetLeftEnergy()
|
||
return LeftEnergy or 0
|
||
end
|
||
--===============
|
||
--获取已用过的能量总数(后端数据)
|
||
--===============
|
||
function XSmashBActivityManager.GetUsedEnergy()
|
||
return UsedEnergy or 0
|
||
end
|
||
--===============
|
||
--获取未使用的能量总数
|
||
--===============
|
||
function XSmashBActivityManager.GetNotUsedEnergy()
|
||
return XSmashBActivityManager.GetCurrentEnergy() - XSmashBActivityManager.GetUsedEnergy()
|
||
end
|
||
--===============
|
||
--设置已获得的能量总数(后端数据)
|
||
--===============
|
||
function XSmashBActivityManager.SetTotalEnergy(value)
|
||
CurrentEnergy = value
|
||
end
|
||
--===============
|
||
--设置剩余可获得的能量总数(后端数据)
|
||
--===============
|
||
function XSmashBActivityManager.SetLeftEnergy(value)
|
||
LeftEnergy = value
|
||
end
|
||
--===============
|
||
--设置已用过的能量总数(后端数据)
|
||
--===============
|
||
function XSmashBActivityManager.SetUsedEnergy(value)
|
||
UsedEnergy = value
|
||
end
|
||
--===============
|
||
--获取当前队伍等级
|
||
--===============
|
||
function XSmashBActivityManager.GetTeamLevel()
|
||
return TeamLevel or 1
|
||
end
|
||
--===============
|
||
--获取当前队伍升级道具数量
|
||
--===============
|
||
function XSmashBActivityManager.GetTeamItem()
|
||
return TeamItem or 0
|
||
end
|
||
--===============
|
||
--获取当前队伍等级数据
|
||
--===============
|
||
function XSmashBActivityManager.GetNowTeamLevelConfig()
|
||
local lv = XSmashBActivityManager.GetTeamLevel()
|
||
return TeamLevelConfig[lv]
|
||
end
|
||
--===============
|
||
--获取当前队伍等级是否已经是最大
|
||
--===============
|
||
function XSmashBActivityManager.GetIsTeamLvMax()
|
||
local teamLevelConfig = XSuperSmashBrosConfig.GetAllConfigs(XSuperSmashBrosConfig.TableKey.TeamLevel)
|
||
if TeamLevel == #teamLevelConfig then
|
||
return true
|
||
end
|
||
|
||
return false
|
||
end
|
||
--=================================入口,跳转相关=============================
|
||
--===================
|
||
--获取活动配置简表
|
||
--===================
|
||
function XSmashBActivityManager.GetActivityChapters()
|
||
--只有活动开启期间显示入口
|
||
local isEnd = XDataCenter.SuperSmashBrosManager.CheckIsEnd()
|
||
if isEnd then return {} end
|
||
local chapters = {}
|
||
local tempChapter = {}
|
||
tempChapter.Type = XDataCenter.FubenManager.ChapterType.SuperSmashBros
|
||
tempChapter.Id = XSmashBActivityManager.GetActivityId()
|
||
table.insert(chapters, tempChapter)
|
||
return chapters
|
||
end
|
||
--================
|
||
--跳转到活动主界面
|
||
--================
|
||
function XSmashBActivityManager.JumpTo()
|
||
if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SuperSmashBros) then
|
||
local canGoTo, notStart = XDataCenter.SuperSmashBrosManager.CheckCanGoTo()
|
||
if canGoTo then
|
||
XLuaUiManager.Open("UiSuperSmashBrosMain")
|
||
elseif notStart then
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("CommonActivityNotStart"))
|
||
else
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("CommonActivityEnd"))
|
||
end
|
||
end
|
||
end
|
||
--================
|
||
--玩法关闭时弹出主界面
|
||
--================
|
||
function XSmashBActivityManager.OnActivityEndHandler()
|
||
XLuaUiManager.RunMain()
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("CommonActivityEnd"))
|
||
end
|
||
--================
|
||
--刷新后台推送活动数据
|
||
--================
|
||
function XSmashBActivityManager.RefreshNotifyActivityData(data)
|
||
-- cxldV2 超限乱斗2期屏蔽能量数据
|
||
-- XSmashBActivityManager.RefreshNotifyEnergyData(data.EnergyDb)
|
||
XSmashBActivityManager.RefreshNotifyTeamLevelData(data)
|
||
end
|
||
--================
|
||
--刷新能量数据
|
||
--================
|
||
function XSmashBActivityManager.RefreshNotifyEnergyData(energyDb)
|
||
-- XSmashBActivityManager.SetTotalEnergy(energyDb.MaxValue or 0)
|
||
-- XSmashBActivityManager.SetUsedEnergy((energyDb.MaxValue or 0) - (energyDb.CurValue or 0))
|
||
-- XSmashBActivityManager.SetLeftEnergy((energyDb.DailyMaxValue or 0) - (energyDb.DailyAddValue or 0))
|
||
--XLog.Debug("EnergyDb : ", energyDb)
|
||
end
|
||
--================
|
||
--刷新队伍等级数据
|
||
--================
|
||
function XSmashBActivityManager.RefreshNotifyTeamLevelData(data)
|
||
TeamLevel = data.TeamLevel
|
||
TeamItem = data.TeamItem
|
||
end
|
||
|
||
return XSmashBActivityManager |