286 lines
9.4 KiB
Lua
286 lines
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
|