forked from endernon/PGRData
1193 lines
No EOL
43 KiB
Lua
1193 lines
No EOL
43 KiB
Lua
XFubenRogueLikeManagerCreator = function()
|
||
|
||
local XFubenRogueLikeManager = {}
|
||
|
||
local RogueLikeRpc = {
|
||
GetBlackShopData = "GetBlackShopDataRequest", --获取黑市商店数据
|
||
BuyBlackShopItem = "BuyBlackShopItemRequest", --黑市商店购买
|
||
FinishNode = "FinishNodeRequest", --完成节点
|
||
OpenBox = "OpenBoxRequest", --打开宝箱
|
||
Recover = "RecoverRequest", --休息点回复行动力
|
||
IntensifyBuff = "IntensifyBuffRequest", --增强buff
|
||
SelectNode = "SelectNodeRequest", --选择节点
|
||
NodeBuy = "NodeBuyRequest", --节点商店购买
|
||
SelectSpecialEvent = "SelectSpecialEventRequest", --选择特殊事件
|
||
SupportCall = "SupportCallRequest", --支援请求
|
||
SelectSpecialEventGroup = "SelectSpecialEventGroupRequest", --选择特殊事件组
|
||
TeamSet = "RogueLikeTeamSetRequest", --设置队伍
|
||
ResetHardNode = "ResetHardNodeRequest",--重置副本次数
|
||
OpenTrialPoint = "OpenTrialPointRequest",--刷新试炼积分信息
|
||
}
|
||
local CheckUiName = {
|
||
[1] = "UiRogueLikeMain",
|
||
[2] = "UiRogueLikeHelpRole",
|
||
[3] = "UiRogueLikeIllegalShop",
|
||
[4] = "UiRogueLikeObtainBuff",
|
||
[5] = "UiRogueLikeRoomCharacter",
|
||
[6] = "UiRogueLikeShop",
|
||
[7] = "UiRogueLikeStoryResult",
|
||
[8] = "UiRogueLikeThemeTips",
|
||
[9] = "UiRogueLikeTask",
|
||
[10] = "UiRogueLikeFightTips",
|
||
}
|
||
|
||
-- 活动信息
|
||
local ActivityId -- 活动id
|
||
local CurSectionId = 0 -- 当前章节
|
||
local ActionPoint = 0
|
||
local SectionInfo = {} -- 选择的节点信息//TierSectionInfo
|
||
local AssistRobots = {} -- 助战机器人//int
|
||
local BuffIds = {} -- 获得的buff//int
|
||
local CharacterInfos = {} -- 参战列表//RLCharacterInfo
|
||
local NodeShopInfos = {} -- 节点商店信息//RLNodeShopInfo
|
||
-- local DayBuffIds = {} -- 每日buff//int
|
||
local TeamEffectId = 0 -- 队伍效果id
|
||
local DayRefreshTime = 0 -- 每日刷新时间
|
||
local WeekRefreshTime = 0 -- 每周刷新时间
|
||
local SupportInfos = {} -- 支援终端
|
||
local NewBuffIds = {} -- 最新获得的buff,用来显示
|
||
local NewRobots = {} -- 最新获得的支援角色,显示用
|
||
local ShowSelectNodeInfo = {} -- 选择过的节点//[nodeId = nodeInfo]
|
||
local IsFinal = false -- 是否为最后的层级
|
||
local HistoryMaxTier = 0 -- 历史达到最高层数
|
||
|
||
local Id2SectionMap = {} -- SecionId对应SectionInfo
|
||
local RogueLikeStageRobots = {} -- 助战阵容{stageId = {IsAssis=,RobotId}}
|
||
|
||
local RogueLikeTrialPoint = 0 --试炼模式积分
|
||
local RogueLikeResetNum = 0 --重置试炼次数
|
||
local NeedShowTrialTips = false --是否需要显示试炼开启
|
||
local TrialPointDatas = {}
|
||
local NeedShowTrialPointView = false --是否需要显示积分页面
|
||
local RogueLikeTrialPointLast = -1
|
||
local RogueLikeTrialPointShowByTween = 0
|
||
|
||
function XFubenRogueLikeManager.InitStageInfo()
|
||
local allNodes = XFubenRogueLikeConfig.GetAllNodes()
|
||
for _, nodeDatas in pairs(allNodes) do
|
||
if nodeDatas.Type == XFubenRogueLikeConfig.XRLNodeType.Fight then
|
||
local stageId = nodeDatas.Param[1]
|
||
local stageInfo = XDataCenter.FubenManager.GetStageInfo(stageId)
|
||
if stageInfo then
|
||
stageInfo.Type = XDataCenter.FubenManager.StageType.RogueLike
|
||
end
|
||
local stageDiffcultId = nodeDatas.Param[2]
|
||
if stageDiffcultId and stageDiffcultId > 0 then
|
||
local stageDiffcultInfo = XDataCenter.FubenManager.GetStageInfo(stageDiffcultId)
|
||
if stageDiffcultInfo then
|
||
stageDiffcultInfo.Type = XDataCenter.FubenManager.StageType.RogueLike
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
-- [胜利]
|
||
function XFubenRogueLikeManager.ShowReward(winData)
|
||
if not winData then return end
|
||
XLuaUiManager.Open("UiSettleWin", winData)
|
||
end
|
||
|
||
function XFubenRogueLikeManager.AsyncRogueLikeInfo(notifyData)
|
||
if not notifyData then return end
|
||
ActivityId = notifyData.Id
|
||
CurSectionId = notifyData.CurSectionId
|
||
ActionPoint = notifyData.ActionPoint
|
||
SectionInfo = notifyData.SectionInfo
|
||
AssistRobots = notifyData.AssistRobots
|
||
RogueLikeTrialPoint = notifyData.TrialPoint
|
||
RogueLikeResetNum = notifyData.HardNodeResetCount
|
||
|
||
if RogueLikeTrialPointLast > -1 and RogueLikeTrialPointLast < RogueLikeTrialPoint then
|
||
RogueLikeTrialPointShowByTween = RogueLikeTrialPointLast
|
||
end
|
||
RogueLikeTrialPointLast = RogueLikeTrialPoint
|
||
|
||
if not next(AssistRobots) then
|
||
XFubenRogueLikeManager.ResetNewRobots()
|
||
end
|
||
BuffIds = notifyData.BuffIds
|
||
if not next(BuffIds) then
|
||
XFubenRogueLikeManager.ResetNewBuffs()
|
||
end
|
||
CharacterInfos = notifyData.CharacterInfos
|
||
HistoryMaxTier = notifyData.MaxTier
|
||
|
||
NodeShopInfos = {}
|
||
for i = 1, #notifyData.ShopInfos do
|
||
local shopInfo = notifyData.ShopInfos[i]
|
||
NodeShopInfos[shopInfo.Id] = shopInfo
|
||
end
|
||
|
||
TeamEffectId = notifyData.TeamEffectId
|
||
DayRefreshTime = math.floor(notifyData.DayRefreshTime)
|
||
WeekRefreshTime = math.floor(notifyData.WeekRefreshTime)
|
||
|
||
SupportInfos = {}
|
||
for _, v in pairs(notifyData.SupportInfos or {}) do
|
||
SupportInfos[v.Id] = v.Count
|
||
end
|
||
|
||
for k, v in pairs(SectionInfo) do
|
||
Id2SectionMap[v.Id] = {}
|
||
Id2SectionMap[v.Id].Index = k
|
||
Id2SectionMap[v.Id].Id = v.Id
|
||
Id2SectionMap[v.Id].Group = v.Group
|
||
|
||
Id2SectionMap[v.Id].FinishNode = {}
|
||
for _, node in pairs(v.FinishNode or {}) do
|
||
Id2SectionMap[v.Id].FinishNode[node] = true
|
||
end
|
||
|
||
Id2SectionMap[v.Id].SelectNodeInfo = {}
|
||
for _, nodeInfo in pairs(v.SelectNodeInfos or {}) do
|
||
Id2SectionMap[v.Id].SelectNodeInfo[nodeInfo.SelectId] = nodeInfo
|
||
end
|
||
end
|
||
|
||
-- 日重置、 周重置刷新界面
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_REFRESH_ALLNODES)
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_ACTIONPOINT_CHARACTER_CHANGED)
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_ASSISTROBOT_CHANGED)
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_BUFFIDS_CHANGES)
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_TEAMEFFECT_CHANGES)
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_TASK_RESET)
|
||
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_ILLEGAL_SHOP_RESET)
|
||
-- 检查是否需要重置角色
|
||
XFubenRogueLikeManager.CheckCharacterReset()
|
||
end
|
||
|
||
function XFubenRogueLikeManager.AsyncBuffData(notifyData)
|
||
if not notifyData then return end
|
||
BuffIds = notifyData.BuffIds
|
||
if notifyData.NewId > 0 then
|
||
NewBuffIds[notifyData.NewId] = true
|
||
end
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_BUFFIDS_CHANGES)
|
||
end
|
||
|
||
function XFubenRogueLikeManager.ResetDataByInPurgatory()
|
||
NeedShowTrialTips = true
|
||
BuffIds = {}
|
||
XFubenRogueLikeManager.ResetNewBuffs()
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_BUFFIDS_CHANGES)
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_SECTIONTYPE_CHANGE)
|
||
end
|
||
|
||
-- 章节选择同步
|
||
function XFubenRogueLikeManager.AsyncSectionInfoChange(notifyData)
|
||
if not notifyData then return end
|
||
local lastSectionType = XFubenRogueLikeConfig.GetTierSectionTierTypeById(CurSectionId) or 0
|
||
CurSectionId = notifyData.CurSectionId
|
||
local curSectionType = XFubenRogueLikeConfig.GetTierSectionTierTypeById(CurSectionId)
|
||
if lastSectionType == XFubenRogueLikeConfig.TierType.Normal and curSectionType == XFubenRogueLikeConfig.TierType.Purgatory then
|
||
XFubenRogueLikeManager.ResetDataByInPurgatory()
|
||
end
|
||
|
||
for k, v in pairs(SectionInfo) do
|
||
if v.Id == notifyData.SectionInfo.Id then
|
||
SectionInfo[k] = notifyData.SectionInfo
|
||
end
|
||
end
|
||
|
||
local sectionId = notifyData.SectionInfo.Id
|
||
Id2SectionMap[sectionId].FinishNode = {}
|
||
for _, node in pairs(notifyData.SectionInfo.FinishNode or {}) do
|
||
Id2SectionMap[sectionId].FinishNode[node] = true
|
||
end
|
||
|
||
Id2SectionMap[sectionId].SelectNodeInfo = {}
|
||
for _, nodeInfo in pairs(notifyData.SectionInfo.SelectNodeInfos or {}) do
|
||
Id2SectionMap[sectionId].SelectNodeInfo[nodeInfo.SelectId] = nodeInfo
|
||
end
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_REFRESH_ALLNODES)
|
||
IsFinal = XFubenRogueLikeManager.GetRogueLikeLevel() == XFubenRogueLikeManager.GetMaxTier()
|
||
|
||
local currTier = XFubenRogueLikeManager.GetRogueLikeLevel()
|
||
if currTier > HistoryMaxTier then
|
||
HistoryMaxTier = currTier
|
||
end
|
||
end
|
||
|
||
function XFubenRogueLikeManager.AsyncNodeShopInfo(notifyData)
|
||
if not notifyData then return end
|
||
local shopId = notifyData.ShopInfo.Id
|
||
NodeShopInfos[shopId] = notifyData.ShopInfo
|
||
|
||
end
|
||
|
||
-- 通知助战机器人改变
|
||
function XFubenRogueLikeManager.AsyncAssistRobot(notifyData)
|
||
if not notifyData then return end
|
||
|
||
local new_assisRobots = {}
|
||
for _, robotId in pairs(notifyData.AssistRobots) do
|
||
new_assisRobots[robotId] = true
|
||
end
|
||
for _, robotId in pairs(AssistRobots) do
|
||
new_assisRobots[robotId] = nil
|
||
end
|
||
local receiveNewRobot = false
|
||
local robot_names = ""
|
||
for robotId, _ in pairs(new_assisRobots) do
|
||
receiveNewRobot = true
|
||
NewRobots[robotId] = true
|
||
local characterId = XRobotManager.GetCharacterId(robotId)
|
||
local fullName = XCharacterConfigs.GetCharacterFullNameStr(characterId)
|
||
if robot_names == "" then
|
||
robot_names = fullName
|
||
else
|
||
robot_names = string.format("%s %s", robot_names, fullName)
|
||
end
|
||
end
|
||
if receiveNewRobot and robot_names ~= "" then
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("RogueLikeGetAssistRobot", robot_names))
|
||
end
|
||
|
||
AssistRobots = notifyData.AssistRobots
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_ASSISTROBOT_CHANGED)
|
||
end
|
||
|
||
-- 刷新行动点和角色信息
|
||
function XFubenRogueLikeManager.AsyncActionPointAndCharacterInfo(notifyData)
|
||
if not notifyData then return end
|
||
local newActionPoint = notifyData.ActionPoint
|
||
local isAdd = newActionPoint > ActionPoint
|
||
ActionPoint = notifyData.ActionPoint
|
||
|
||
RogueLikeTrialPoint = notifyData.TrialPoint
|
||
|
||
if RogueLikeTrialPointLast > -1 and RogueLikeTrialPointLast < RogueLikeTrialPoint then
|
||
RogueLikeTrialPointShowByTween = RogueLikeTrialPointLast
|
||
end
|
||
RogueLikeTrialPointLast = RogueLikeTrialPoint
|
||
|
||
local newCharacterInfos = notifyData.CharacterInfos
|
||
for i = 1, #newCharacterInfos do
|
||
if newCharacterInfos[i] and CharacterInfos[i] then
|
||
if newCharacterInfos[i].HpLeft ~= CharacterInfos[i].HpLeft then
|
||
newCharacterInfos[i].EffectUp = true
|
||
end
|
||
end
|
||
end
|
||
CharacterInfos = notifyData.CharacterInfos
|
||
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_ACTIONPOINT_CHARACTER_CHANGED, isAdd)
|
||
end
|
||
|
||
-- 刷新队伍效果
|
||
function XFubenRogueLikeManager.AsyncTeamEffect(notifyData)
|
||
if not notifyData then return end
|
||
TeamEffectId = notifyData.TeamEffectId
|
||
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_TEAMEFFECT_CHANGES)
|
||
end
|
||
|
||
--刷新获得积分数据
|
||
function XFubenRogueLikeManager.AsyncTrialPoint(notifyData)
|
||
TrialPointDatas = notifyData.pointInfo or {}
|
||
table.sort(TrialPointDatas,function(a,b)
|
||
return a.PointType < b.PointType
|
||
end)
|
||
NeedShowTrialPointView = true
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_TRIALPOINT_CHANGE)
|
||
end
|
||
|
||
--刷新获得积分数据(回调)
|
||
function XFubenRogueLikeManager.AsyncTrialPointRequest(pointInfo)
|
||
TrialPointDatas = pointInfo
|
||
table.sort(TrialPointDatas,function(a,b)
|
||
return a.PointType < b.PointType
|
||
end)
|
||
end
|
||
|
||
-- 活动id
|
||
function XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
return ActivityId
|
||
end
|
||
|
||
-- 行动点
|
||
function XFubenRogueLikeManager.GetRogueLikeActionPoint()
|
||
return ActionPoint
|
||
end
|
||
|
||
-- 日常buff
|
||
function XFubenRogueLikeManager.GetRogueLikeDayBuffs()
|
||
return XFubenRogueLikeManager.GetDayBuffByTeamEffect(TeamEffectId, CharacterInfos)
|
||
end
|
||
|
||
-- 锁定的出站角色
|
||
function XFubenRogueLikeManager.GetCharacterInfos()
|
||
return CharacterInfos
|
||
end
|
||
|
||
-- 如果有出站人数为3则视为已经锁定
|
||
function XFubenRogueLikeManager.IsRogueLikeCharacterLock()
|
||
return XFubenRogueLikeManager.GetTeamMemberCount() == #CharacterInfos
|
||
end
|
||
|
||
-- 助战机器人
|
||
function XFubenRogueLikeManager.GetAssistRobots(characterType)
|
||
local robots = {}
|
||
|
||
for _, v in pairs(AssistRobots or {}) do
|
||
local characterId = XRobotManager.GetCharacterId(v)
|
||
local charType = XCharacterConfigs.GetCharacterType(characterId)
|
||
if not characterType or charType == characterType then
|
||
table.insert(robots, { Id = v })
|
||
end
|
||
end
|
||
|
||
return robots
|
||
end
|
||
|
||
-- 助战角色达到3人则视为可以切换助战
|
||
function XFubenRogueLikeManager.CanSwitch2Assist()
|
||
return #AssistRobots >= XFubenRogueLikeManager.GetTeamMemberCount()
|
||
end
|
||
|
||
-- 获得助战人数,默认3
|
||
function XFubenRogueLikeManager.GetTeamMemberCount()
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
if not activityId then return XFubenRogueLikeConfig.TEAM_NUMBER end
|
||
|
||
local activityTemplate = XFubenRogueLikeConfig.GetRougueLikeTemplateById(activityId)
|
||
if not activityTemplate then return XFubenRogueLikeConfig.TEAM_NUMBER end
|
||
|
||
return activityTemplate.TeamMemberCount or XFubenRogueLikeConfig.TEAM_NUMBER
|
||
end
|
||
|
||
-- 当前章节
|
||
function XFubenRogueLikeManager.GetCurSectionInfo()
|
||
return Id2SectionMap[CurSectionId]
|
||
end
|
||
|
||
-- 获取当前活动最大层数
|
||
function XFubenRogueLikeManager.GetMaxTier()
|
||
local maxTier = 0
|
||
local maxTierNormal = 0
|
||
local maxTierPurgatory = 0
|
||
local curSectionType = XFubenRogueLikeConfig.GetTierSectionTierTypeById(CurSectionId)
|
||
|
||
for _, v in pairs(SectionInfo) do
|
||
local tierSectionTemplate = XFubenRogueLikeConfig.GetTierSectionTemplateById(v.Id)
|
||
if tierSectionTemplate.MaxTier > maxTier then
|
||
if XFubenRogueLikeConfig.GetTierSectionTierTypeById(v.Id) == XFubenRogueLikeConfig.TierType.Normal then
|
||
maxTierNormal = tierSectionTemplate.MaxTier
|
||
else
|
||
maxTierPurgatory = tierSectionTemplate.MaxTier
|
||
end
|
||
--maxTier = tierSectionTemplate.MaxTier
|
||
end
|
||
end
|
||
maxTierPurgatory = maxTierPurgatory - maxTierNormal
|
||
if XFubenRogueLikeManager.IsSectionPurgatory() then
|
||
return maxTierPurgatory
|
||
else
|
||
return maxTierNormal
|
||
end
|
||
return maxTier
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetRogueLikeLevel()
|
||
if not SectionInfo then return 0 end
|
||
|
||
local rogueLikeLevel = 0
|
||
local curSectionType = XFubenRogueLikeConfig.GetTierSectionTierTypeById(CurSectionId)
|
||
for i = 1, #SectionInfo do
|
||
local section = SectionInfo[i]
|
||
if section and section.Id then
|
||
local sectionType = XFubenRogueLikeConfig.GetTierSectionTierTypeById(section.Id)
|
||
for _, v in pairs(section.FinishNode) do
|
||
local finishNode = Id2SectionMap[section.Id].FinishNode or {}
|
||
if finishNode[v] and curSectionType == sectionType then
|
||
rogueLikeLevel = rogueLikeLevel + 1
|
||
end
|
||
end
|
||
end
|
||
end
|
||
return rogueLikeLevel
|
||
end
|
||
|
||
-- 获取我的buffs//排序规则:新获得的(20) > 正面的(10) > 负面的(5)
|
||
function XFubenRogueLikeManager.GetMyBuffs()
|
||
local myBuffs = {}
|
||
for _, v in pairs(BuffIds) do
|
||
local buffConfig = XFubenRogueLikeConfig.GetBuffConfigById(v)
|
||
|
||
local weight = 5
|
||
if XFubenRogueLikeConfig.BuffType.PositiveBuff == buffConfig.BuffType then
|
||
weight = 10
|
||
end
|
||
weight = XFubenRogueLikeManager.IsBuffNew(v) and 20 or weight
|
||
table.insert(myBuffs, {
|
||
BuffId = v,
|
||
IsSelect = false,
|
||
BuffType = buffConfig.BuffType,
|
||
Priority = buffConfig.Priority,
|
||
SortWeight = weight,
|
||
})
|
||
end
|
||
table.sort(myBuffs, function(a, b)
|
||
return a.BuffId < b.BuffId
|
||
end)
|
||
return myBuffs
|
||
end
|
||
|
||
-- 获得节点商店数据
|
||
function XFubenRogueLikeManager.GetNodeShopInfoById(shopId)
|
||
return NodeShopInfos[shopId]
|
||
end
|
||
|
||
-- 队伍效果id
|
||
function XFubenRogueLikeManager.GetTeamEffectId()
|
||
return TeamEffectId
|
||
end
|
||
|
||
-- 是否为队伍效果id中配置的角色
|
||
function XFubenRogueLikeManager.IsTeamEffectCharacter(cid)
|
||
local teamEffectId = XFubenRogueLikeManager.GetTeamEffectId()
|
||
if XFubenRogueLikeManager.IsSectionPurgatory() then return false end
|
||
if teamEffectId <= 0 then return false end
|
||
|
||
local teamEffectTemplate = XFubenRogueLikeConfig.GetTeamEffectTemplateById(teamEffectId)
|
||
if not teamEffectTemplate then
|
||
return false
|
||
end
|
||
for _, characterId in pairs(teamEffectTemplate.CharacterId) do
|
||
if characterId == cid then
|
||
return true
|
||
end
|
||
end
|
||
return false
|
||
end
|
||
|
||
-- 日刷新时间
|
||
function XFubenRogueLikeManager.GetDayRefreshTime()
|
||
return DayRefreshTime
|
||
end
|
||
|
||
-- 周刷新时间
|
||
function XFubenRogueLikeManager.GetWeekRefreshTime()
|
||
return WeekRefreshTime
|
||
end
|
||
|
||
-- 获取支援终端的东西
|
||
function XFubenRogueLikeManager.GetSupportInfos()
|
||
return SupportInfos
|
||
end
|
||
|
||
-- 是否有新的buffId
|
||
function XFubenRogueLikeManager.HasNewBuffs()
|
||
local newBuffCount = 0
|
||
for _, _ in pairs(NewBuffIds) do
|
||
newBuffCount = newBuffCount + 1
|
||
end
|
||
return newBuffCount
|
||
end
|
||
|
||
-- 重置新效果
|
||
function XFubenRogueLikeManager.ResetNewBuffs()
|
||
NewBuffIds = {}
|
||
end
|
||
|
||
-- 是否为新获得的buff
|
||
function XFubenRogueLikeManager.IsBuffNew(buffId)
|
||
return NewBuffIds[buffId]
|
||
end
|
||
|
||
-- 是否有新获得的支援角色
|
||
function XFubenRogueLikeManager.HasNewRobots()
|
||
local newRobotCount = 0
|
||
for _, _ in pairs(NewRobots) do
|
||
newRobotCount = newRobotCount + 1
|
||
end
|
||
return newRobotCount > 0
|
||
end
|
||
|
||
function XFubenRogueLikeManager.ResetNewRobots()
|
||
NewRobots = {}
|
||
end
|
||
|
||
function XFubenRogueLikeManager.UpdateNewRobots(robotId)
|
||
NewRobots[robotId] = nil
|
||
end
|
||
|
||
function XFubenRogueLikeManager.IsRobotNew(robotId)
|
||
return NewRobots[robotId]
|
||
end
|
||
|
||
-- 获取是否选择过节点
|
||
function XFubenRogueLikeManager.GetShowSelectNodeById(nodeId)
|
||
return ShowSelectNodeInfo[nodeId]
|
||
end
|
||
|
||
-- 获得主题buff
|
||
function XFubenRogueLikeManager.GetDayBuffByTeamEffect(id, characterInfos)
|
||
local day_buffs = {}
|
||
local teamEffectTemplate = XFubenRogueLikeConfig.GetTeamEffectTemplateById(id)
|
||
if not teamEffectTemplate then
|
||
return day_buffs
|
||
end
|
||
|
||
local lock_character = {}
|
||
for _, characterInfo in pairs(characterInfos or {}) do
|
||
lock_character[characterInfo.Id] = true
|
||
end
|
||
|
||
local buff_count = 0
|
||
|
||
for _, characterId in pairs(teamEffectTemplate.CharacterId) do
|
||
if lock_character[characterId] then
|
||
buff_count = buff_count + 1
|
||
end
|
||
end
|
||
|
||
for i, buffId in pairs(teamEffectTemplate.BuffId) do
|
||
table.insert(day_buffs, {
|
||
BuffId = buffId,
|
||
IsActive = i <= buff_count
|
||
})
|
||
end
|
||
|
||
return day_buffs
|
||
end
|
||
|
||
-- 获得折扣:队伍buff/系统buff
|
||
function XFubenRogueLikeManager.GetNodeShopDiscount()
|
||
-- 默认100,没有打折
|
||
local discount = 100
|
||
local curSectionType = XFubenRogueLikeConfig.GetTierSectionTierTypeById(CurSectionId)
|
||
if curSectionType == XFubenRogueLikeConfig.TierType.Purgatory then
|
||
return discount
|
||
end
|
||
for _, buffId in pairs(BuffIds) do
|
||
local buffTemplate = XFubenRogueLikeConfig.GetBuffTemplateById(buffId)
|
||
if buffTemplate then
|
||
if buffTemplate.Discount > 0 and buffTemplate.Discount < discount then
|
||
discount = buffTemplate.Discount
|
||
end
|
||
end
|
||
end
|
||
|
||
local day_Buff = XFubenRogueLikeManager.GetDayBuffByTeamEffect(TeamEffectId, CharacterInfos)
|
||
for _, buffInfo in pairs(day_Buff) do
|
||
local buffTemplate = XFubenRogueLikeConfig.GetBuffTemplateById(buffInfo.BuffId)
|
||
if buffTemplate and buffInfo.IsActive then
|
||
if buffTemplate.Discount > 0 and buffTemplate.Discount < discount then
|
||
discount = buffTemplate.Discount
|
||
end
|
||
end
|
||
end
|
||
|
||
return discount
|
||
end
|
||
|
||
-- 是否在显示等级的时间段
|
||
function XFubenRogueLikeManager.IsInActivity()
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
if not activityId then return false end
|
||
local activityTemplate = XFubenRogueLikeConfig.GetRougueLikeTemplateById(activityId)
|
||
if not activityTemplate then return false end
|
||
local now = XTime.GetServerNowTimestamp()
|
||
local beginTime, endTime = XFunctionManager.GetTimeByTimeId(activityTemplate.ActivityTimeId)
|
||
if not beginTime or not endTime then return false end
|
||
return now >= beginTime and now <= endTime
|
||
end
|
||
|
||
-- 是否在挑战时间
|
||
function XFubenRogueLikeManager.IsInFight()
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
if not activityId then return false end
|
||
local activityTemplate = XFubenRogueLikeConfig.GetRougueLikeTemplateById(activityId)
|
||
if not activityTemplate then return false end
|
||
local now = XTime.GetServerNowTimestamp()
|
||
local beginTime = XFunctionManager.GetStartTimeByTimeId(activityTemplate.ActivityTimeId)
|
||
local endTime = XFunctionManager.GetEndTimeByTimeId(activityTemplate.FightTimeId)
|
||
if not beginTime or not endTime then return false end
|
||
return now >= beginTime and now <= endTime
|
||
end
|
||
|
||
-- 获取入口数据
|
||
function XFubenRogueLikeManager.GetRogueLikeSection()
|
||
local sections = {}
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
if activityId and XFubenRogueLikeManager.IsInActivity() then
|
||
local section = {
|
||
Id = activityId,
|
||
Type = XDataCenter.FubenManager.ChapterType.RogueLike,
|
||
BannerBg = CS.XGame.ClientConfig:GetString("FubenRogueLikeBannerBg"),
|
||
}
|
||
|
||
table.insert(sections, section)
|
||
end
|
||
|
||
return sections
|
||
end
|
||
|
||
-- 选择特殊节点
|
||
function XFubenRogueLikeManager.SelectSpecialEvent(nodeId, eventId, func)
|
||
XNetwork.Call(RogueLikeRpc.SelectSpecialEvent, {
|
||
NodeId = nodeId,
|
||
EventId = eventId
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
if func then
|
||
func()
|
||
end
|
||
-- response
|
||
-- public XCode Code;
|
||
end)
|
||
end
|
||
|
||
-- 神秘商店购买
|
||
function XFubenRogueLikeManager.NodeBuy(nodeId, itemId, itemCount, func)
|
||
XNetwork.Call(RogueLikeRpc.NodeBuy, {
|
||
NodeId = nodeId,
|
||
ItemId = itemId,
|
||
Count = itemCount
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
if func then
|
||
func()
|
||
end
|
||
|
||
-- 奖励通知
|
||
local shopItemTemplate = XFubenRogueLikeConfig.GetShopItemTemplateById(itemId)
|
||
if not shopItemTemplate then return end
|
||
|
||
if shopItemTemplate.Type == XFubenRogueLikeConfig.XRLShopItemType.Item then
|
||
local list = {}
|
||
table.insert(list, XRewardManager.CreateRewardGoodsByTemplate({ TemplateId = shopItemTemplate.Param[1], Count = shopItemTemplate.Param[2] or 1 }))
|
||
XUiManager.OpenUiObtain(list)
|
||
elseif shopItemTemplate.Type == XFubenRogueLikeConfig.XRLShopItemType.Buff then
|
||
local buffIds = {}
|
||
table.insert(buffIds, {
|
||
Id = shopItemTemplate.Param[1]
|
||
})
|
||
XLuaUiManager.Open("UiRogueLikeObtainBuff", buffIds)
|
||
end
|
||
|
||
end)
|
||
end
|
||
|
||
-- 选择节点
|
||
function XFubenRogueLikeManager.SelectNode(nodeId, func)
|
||
XNetwork.Call(RogueLikeRpc.SelectNode, {
|
||
NodeId = nodeId
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
-- 记下选择过的节点{Id,SelectId, Value, SubValue}
|
||
if res.SelectInfo then
|
||
ShowSelectNodeInfo[res.SelectInfo.SelectId] = res.SelectInfo
|
||
end
|
||
|
||
if func then
|
||
func()
|
||
end
|
||
-- response
|
||
-- public XCode Code;
|
||
end)
|
||
end
|
||
|
||
-- 增强buff
|
||
function XFubenRogueLikeManager.IntensifyBuff(nodeId, buffId, func)
|
||
XNetwork.Call(RogueLikeRpc.IntensifyBuff, {
|
||
NodeId = nodeId,
|
||
BuffId = buffId
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
local buffTemplate = XFubenRogueLikeConfig.GetBuffTemplateById(buffId)
|
||
local update_buffs = {}
|
||
for _, v in pairs(BuffIds or {}) do
|
||
if v ~= buffId and v ~= buffTemplate.IntensifyId then
|
||
table.insert(update_buffs, v)
|
||
end
|
||
end
|
||
if buffTemplate.IntensifyId > 0 then
|
||
table.insert(update_buffs, buffTemplate.IntensifyId)
|
||
end
|
||
BuffIds = update_buffs
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_BUFFIDS_CHANGES)
|
||
|
||
if func then
|
||
func()
|
||
end
|
||
-- response
|
||
-- public XCode Code;
|
||
end)
|
||
end
|
||
|
||
-- 休息点回复行动力
|
||
function XFubenRogueLikeManager.Recover(nodeId, func)
|
||
XNetwork.Call(RogueLikeRpc.Recover, {
|
||
NodeId = nodeId,
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
if func then
|
||
func()
|
||
end
|
||
-- response
|
||
-- public XCode Code;
|
||
end)
|
||
end
|
||
|
||
-- 打开宝箱
|
||
function XFubenRogueLikeManager.OpenBox(nodeId, eventNode, func)
|
||
XNetwork.Call(RogueLikeRpc.OpenBox, {
|
||
NodeId = nodeId,
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
-- 判断宝箱类型
|
||
local nodeTemplate = XFubenRogueLikeConfig.GetNodeTemplateById(eventNode.Id)
|
||
for i = 1, #nodeTemplate.Param do
|
||
local boxId = nodeTemplate.Param[i]
|
||
local boxTemplate = XFubenRogueLikeConfig.GetBoxTemplateById(boxId)
|
||
if boxTemplate.Type == XFubenRogueLikeConfig.XRLBoxType.Item then
|
||
if func then
|
||
func()
|
||
end
|
||
XUiManager.OpenUiObtain(res.RewardGoodsList or {})
|
||
elseif boxTemplate.Type == XFubenRogueLikeConfig.XRLBoxType.Buff then
|
||
local buffIds = {}
|
||
for i2 = 1, #boxTemplate.Param do
|
||
table.insert(buffIds, {
|
||
Id = boxTemplate.Param[i2]
|
||
})
|
||
end
|
||
XLuaUiManager.Open("UiRogueLikeObtainBuff", buffIds)
|
||
if func then
|
||
func()
|
||
end
|
||
end
|
||
break
|
||
end
|
||
|
||
-- response
|
||
-- public XCode Code;
|
||
-- public List<XRewardGoods> RewardGoodsList;
|
||
end)
|
||
end
|
||
|
||
-- 完成节点:离开
|
||
function XFubenRogueLikeManager.FinishNode(nodeId, func)
|
||
XNetwork.Call(RogueLikeRpc.FinishNode, {
|
||
NodeId = nodeId,
|
||
}, function(res)
|
||
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
if func then
|
||
func(res)
|
||
end
|
||
-- response
|
||
-- public XCode Code;
|
||
end)
|
||
end
|
||
|
||
-- 黑市商店购买
|
||
function XFubenRogueLikeManager.BuyBlackShopItem()
|
||
end
|
||
|
||
-- 支援请求
|
||
function XFubenRogueLikeManager.RequestSupportCall(id, count, func)
|
||
XNetwork.Call(RogueLikeRpc.SupportCall, {
|
||
Id = id,
|
||
Count = count
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
SupportInfos[id] = (SupportInfos[id] or 0) + 1
|
||
local supportTemplate = XFubenRogueLikeConfig.GetSupportStationTemplateById(id)
|
||
local specialEventTemplate = XFubenRogueLikeConfig.GetSpecialEventTemplateById(supportTemplate.SpecialEvent)
|
||
if XFubenRogueLikeConfig.XRLOtherEventType.AddRobot ~= specialEventTemplate.Type then
|
||
XLuaUiManager.Open("UiRogueLikeStoryResult", supportTemplate.SpecialEvent, XFubenRogueLikeConfig.SpecialResultType.SingleEvent)
|
||
end
|
||
|
||
if func then
|
||
func()
|
||
end
|
||
|
||
end)
|
||
end
|
||
|
||
-- 选择特殊事件组
|
||
function XFubenRogueLikeManager.SelectSpecialEventGroup(nodeId, groupId, func)
|
||
XNetwork.Call(RogueLikeRpc.SelectSpecialEventGroup,
|
||
{
|
||
NodeId = nodeId,
|
||
GroupId = groupId
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
if func then
|
||
func()
|
||
end
|
||
|
||
if #res.ResultInfos > 0 then
|
||
XLuaUiManager.Open("UiRogueLikeStoryResult", res.ResultInfos, XFubenRogueLikeConfig.SpecialResultType.MultipleEvent)
|
||
end
|
||
end)
|
||
end
|
||
|
||
-- 当天第一次进入时,保存今日队伍
|
||
function XFubenRogueLikeManager.RogueLikeSetTeam(characterList, func)
|
||
XNetwork.Call(RogueLikeRpc.TeamSet,
|
||
{
|
||
CharacterList = characterList
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
for i = 1, #characterList do
|
||
CharacterInfos[i] = {}
|
||
CharacterInfos[i].Id = characterList[i]
|
||
CharacterInfos[i].HpLeft = 100
|
||
CharacterInfos[i].TeamPos = i
|
||
CharacterInfos[i].Captain = 0
|
||
CharacterInfos[i].FirstFight = 0
|
||
end
|
||
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_ACTIONPOINT_CHARACTER_CHANGED)
|
||
|
||
if func then
|
||
func()
|
||
end
|
||
end)
|
||
end
|
||
|
||
|
||
function XFubenRogueLikeManager.UpdateRogueLikeStageRobots(stageId, isAssis, robotId)
|
||
RogueLikeStageRobots[stageId] = {}
|
||
RogueLikeStageRobots[stageId].IsAssis = isAssis == 1
|
||
local robots = (isAssis == 1) and robotId or {}
|
||
RogueLikeStageRobots[stageId].RobotId = robots
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetRogueLikeStageRobots(stageId)
|
||
return RogueLikeStageRobots[stageId]
|
||
end
|
||
|
||
|
||
function XFubenRogueLikeManager.GetActivityBeginTime()
|
||
local activityTemplate = XFubenRogueLikeConfig.GetLastRogueLikeConfig()
|
||
return XFunctionManager.GetStartTimeByTimeId(activityTemplate.ActivityTimeId)
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetFightEndTime()
|
||
local activityTemplate = XFubenRogueLikeConfig.GetLastRogueLikeConfig()
|
||
return XFunctionManager.GetEndTimeByTimeId(activityTemplate.FightTimeId)
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetActivityEndTime()
|
||
local activityTemplate = XFubenRogueLikeConfig.GetLastRogueLikeConfig()
|
||
return XFunctionManager.GetEndTimeByTimeId(activityTemplate.ActivityTimeId)
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetFunctionalOpenId()
|
||
local activityConfig = XFubenRogueLikeConfig.GetRogueLikeConfigById(ActivityId)
|
||
return activityConfig.FunctionalOpenId
|
||
end
|
||
|
||
function XFubenRogueLikeManager.ShowRogueLikeTipsOnce()
|
||
local value = XFubenRogueLikeManager.GetRogueLikePrefs(XFubenRogueLikeConfig.KEY_SHOW_TIPS, 0)
|
||
local hasShow = value == 1
|
||
if not hasShow then
|
||
XUiManager.ShowHelpTip("RogueLike")
|
||
XFubenRogueLikeManager.SaveRogueLikePrefs(XFubenRogueLikeConfig.KEY_SHOW_TIPS, 1)
|
||
end
|
||
end
|
||
|
||
-- 打开爬塔之前检查是否需要播剧情
|
||
function XFubenRogueLikeManager.OpenRogueLikeCheckStory()
|
||
local value = XFubenRogueLikeManager.GetRogueLikePrefs(XFubenRogueLikeConfig.KEY_PLAY_STORY, 0)
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
local hasPlay = value == 1
|
||
if not hasPlay and activityId then
|
||
local activityConfig = XFubenRogueLikeConfig.GetRogueLikeConfigById(activityId)
|
||
-- -- 播放剧情
|
||
if activityConfig and activityConfig.BeginStoryId then
|
||
XDataCenter.MovieManager.PlayMovie(activityConfig.BeginStoryId, function()
|
||
XLuaUiManager.Open("UiRogueLikeMain")
|
||
end)
|
||
else
|
||
XLuaUiManager.Open("UiRogueLikeMain")
|
||
end
|
||
XFubenRogueLikeManager.SaveRogueLikePrefs(XFubenRogueLikeConfig.KEY_PLAY_STORY, 1)
|
||
else
|
||
XLuaUiManager.Open("UiRogueLikeMain")
|
||
end
|
||
end
|
||
|
||
-- 保存本地数据
|
||
function XFubenRogueLikeManager.SaveRogueLikePrefs(key, value)
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
if XPlayer.Id and activityId then
|
||
key = string.format("%s_%s_%s", key, tostring(XPlayer.Id), tostring(activityId))
|
||
CS.UnityEngine.PlayerPrefs.SetInt(key, value)
|
||
CS.UnityEngine.PlayerPrefs.Save()
|
||
end
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetRogueLikePrefs(key, defaultValue)
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
if XPlayer.Id and activityId then
|
||
key = string.format("%s_%s_%s", key, tostring(XPlayer.Id), tostring(activityId))
|
||
if CS.UnityEngine.PlayerPrefs.HasKey(key) then
|
||
local rogueLikePref = CS.UnityEngine.PlayerPrefs.GetInt(key)
|
||
return (rogueLikePref == nil or rogueLikePref == 0) and defaultValue or rogueLikePref
|
||
end
|
||
end
|
||
return defaultValue
|
||
end
|
||
|
||
-- 检查活动结束
|
||
function XFubenRogueLikeManager.CheckRogueLikeActivityEndOnUi(uiName)
|
||
if not XFubenRogueLikeManager.IsInActivity() and XLuaUiManager.IsUiShow(uiName) then
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime"))
|
||
XLuaUiManager.RunMain()
|
||
end
|
||
end
|
||
|
||
-- 检查天重置-修改为活动过期提示
|
||
function XFubenRogueLikeManager.CheckRogueLikeDayResetOnUi(uiName)
|
||
if CS.XFight.IsRunning or XLuaUiManager.IsUiLoad("UiLoading") then
|
||
return
|
||
end
|
||
if XLuaUiManager.IsUiShow(uiName) then
|
||
local notChars = #CharacterInfos <= 0
|
||
local notInActivity = not XFubenRogueLikeManager.IsInActivity()
|
||
if notChars or notInActivity then
|
||
if notChars then
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("RogueLikeDayReset"))
|
||
elseif notInActivity then
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime"))
|
||
end
|
||
XScheduleManager.ScheduleOnce(function()
|
||
XLuaUiManager.RunMain()
|
||
end, 1000)
|
||
end
|
||
end
|
||
end
|
||
|
||
function XFubenRogueLikeManager.CheckCharacterReset()
|
||
-- 战斗模式
|
||
if CS.XFight.IsRunning or XLuaUiManager.IsUiLoad("UiLoading") then
|
||
return
|
||
end
|
||
|
||
if XFubenRogueLikeManager.IsTargetUiShow() and not XFubenRogueLikeManager.IsSectionPurgatory() then
|
||
local notChars = #CharacterInfos <= 0
|
||
local notInActivity = not XFubenRogueLikeManager.IsInActivity()
|
||
if notChars or notInActivity then
|
||
if notInActivity then
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime"))
|
||
elseif notChars then
|
||
XUiManager.TipMsg(CS.XTextManager.GetText("RogueLikeDayReset"))
|
||
end
|
||
XScheduleManager.ScheduleOnce(function()
|
||
XLuaUiManager.RunMain()
|
||
end, 1000)
|
||
end
|
||
end
|
||
|
||
end
|
||
|
||
function XFubenRogueLikeManager.IsTargetUiShow()
|
||
for _, uiName in pairs(CheckUiName) do
|
||
if XLuaUiManager.IsUiShow(uiName) then
|
||
return true
|
||
end
|
||
end
|
||
return false
|
||
end
|
||
|
||
function XFubenRogueLikeManager.IsFinalTier()
|
||
return IsFinal
|
||
end
|
||
|
||
-- 获取历史最高层级
|
||
function XFubenRogueLikeManager.GetHistoryMaxTier()
|
||
return HistoryMaxTier
|
||
end
|
||
|
||
function XFubenRogueLikeManager.ResetIsFinalTier()
|
||
IsFinal = false
|
||
end
|
||
|
||
-- 最多获得机器人数量
|
||
function XFubenRogueLikeManager.GetMaxRobotCount()
|
||
local activityId = XFubenRogueLikeManager.GetRogueLikeActivityId()
|
||
if not activityId then return 3 end
|
||
local activityTemplate = XFubenRogueLikeConfig.GetRougueLikeTemplateById(activityId)
|
||
if not activityTemplate then return 3 end
|
||
return activityTemplate.RobotMax or 3
|
||
end
|
||
|
||
-- 机器人是否已经到达最大值
|
||
function XFubenRogueLikeManager.IsAssistRobotFull()
|
||
local ownCount = #AssistRobots
|
||
local needCount = XFubenRogueLikeManager.GetMaxRobotCount()
|
||
return ownCount >= needCount
|
||
end
|
||
|
||
|
||
--试炼模式尽量放在这里
|
||
--试炼模式重置数据
|
||
function XFubenRogueLikeManager.ResetHardNode(resetType, func)
|
||
XNetwork.Call(RogueLikeRpc.ResetHardNode, {
|
||
Type = resetType,
|
||
}, function(res)
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
XDataCenter.FubenRogueLikeManager.AsyncRogueLikeInfo(res.Data)
|
||
XEventManager.DispatchEvent(XEventId.EVENT_ROGUELIKE_SECTION_REFRESH)
|
||
if func then
|
||
func()
|
||
end
|
||
end)
|
||
end
|
||
|
||
function XFubenRogueLikeManager.OpenTrialPoint(func)
|
||
XNetwork.Call(RogueLikeRpc.OpenTrialPoint, {
|
||
CurSectionId = CurSectionId
|
||
}, function(res)
|
||
|
||
if res.Code ~= XCode.Success then
|
||
XUiManager.TipCode(res.Code)
|
||
return
|
||
end
|
||
|
||
XDataCenter.FubenRogueLikeManager.AsyncTrialPointRequest(res.PointInfo)
|
||
if func then
|
||
func()
|
||
end
|
||
end)
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetRogueLikeTrialPoint()
|
||
return RogueLikeTrialPoint
|
||
end
|
||
|
||
function XFubenRogueLikeManager.SetRogueLikeTrialPointShowByTween(value)
|
||
RogueLikeTrialPointShowByTween = value
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetRogueLikeTrialPointShowByTween()
|
||
return RogueLikeTrialPointShowByTween
|
||
end
|
||
|
||
function XFubenRogueLikeManager.IsSectionPurgatory()
|
||
local CurSectionTierType = XFubenRogueLikeConfig.GetTierSectionTierTypeById(CurSectionId)
|
||
return CurSectionTierType == XFubenRogueLikeConfig.TierType.Purgatory
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetNeedShowTrialTips()
|
||
return NeedShowTrialTips
|
||
end
|
||
|
||
--是否需要显示试炼开启页面
|
||
function XFubenRogueLikeManager.SetNeedShowTrialTips(value)
|
||
NeedShowTrialTips = value
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetRogueLikeResetNum()
|
||
return RogueLikeResetNum
|
||
end
|
||
|
||
--获取最终得分的数据
|
||
function XFubenRogueLikeManager.GetRogueLikeTrialPointDatas()
|
||
return TrialPointDatas
|
||
end
|
||
|
||
--是否需要显示最终得分页面
|
||
function XFubenRogueLikeManager.SetNeedShowTrialPointView(value)
|
||
NeedShowTrialPointView = value
|
||
end
|
||
|
||
function XFubenRogueLikeManager.GetNeedShowTrialPointView()
|
||
return NeedShowTrialPointView
|
||
end
|
||
|
||
function XFubenRogueLikeManager.Init()
|
||
end
|
||
|
||
XFubenRogueLikeManager.Init()
|
||
return XFubenRogueLikeManager
|
||
end
|
||
|
||
-- 通知玩法数据
|
||
XRpc.NotifyRogueLikeData = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncRogueLikeInfo(notifyData)
|
||
end
|
||
|
||
-- 通知buff
|
||
XRpc.NotifyBuffData = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncBuffData(notifyData)
|
||
end
|
||
|
||
-- 更新章节数据
|
||
XRpc.NotifySectionInfoChange = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncSectionInfoChange(notifyData)
|
||
end
|
||
|
||
|
||
XRpc.NotifyNodeShopInfo = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncNodeShopInfo(notifyData)
|
||
end
|
||
|
||
-- 通知助战机器人改变
|
||
XRpc.NotifyAssistRobot = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncAssistRobot(notifyData)
|
||
end
|
||
|
||
-- 刷新行动点和角色信息
|
||
XRpc.NotifyActionPointAndCharacterInfo = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncActionPointAndCharacterInfo(notifyData)
|
||
end
|
||
|
||
-- 刷新队伍效果
|
||
XRpc.NotifyTeamEffect = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncTeamEffect(notifyData)
|
||
end
|
||
|
||
--通关显示试炼积分
|
||
XRpc.NotifyTrialPoint = function(notifyData)
|
||
XDataCenter.FubenRogueLikeManager.AsyncTrialPoint(notifyData)
|
||
end |