miduo_client/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelManager.lua

137 lines
6.4 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

FightLevelManager = {};
local this = FightLevelManager
local HardStageChapter = ConfigManager.GetConfig(ConfigName.HardStageChapter)
local HardStage = ConfigManager.GetConfig(ConfigName.HardStage)
local HardStageReward = ConfigManager.GetConfig(ConfigName.HardStageReward)
local stateList = {--状态:0-7星级状态8为荣耀三星,0为小节点未通过1为小节点通过
[0] = {0,0,0},--0 为未获得星 1 为 已获得星 二进制
[1] = {0,0,1},
[2] = {0,1,0},
[3] = {0,1,1},
[4] = {1,0,0},
[5] = {1,0,1},
[6] = {1,1,0},
[7] = {1,1,1},
}
local allChapterData = {}--所有章节信息
local curChapterId = 1--当前章节id
local curChapterLevelId = 1--当前章节中小关卡id 打一关前端自己更新一次
function this.Initialize()
allChapterData = {}
for index, config in ConfigPairs(HardStageChapter) do
if config then
local singleChapterData = {}
singleChapterData.chapterId = config.Id
singleChapterData.config = config
singleChapterData.state = 0--未开启 1 开启
singleChapterData.stars = 0--章节获得总星数
singleChapterData.HardStageChapter = {}--章节中小关卡信息
local curMaxStarNum = 0
singleChapterData.node = {}
local curChapterAllLevel = ConfigManager.GetAllConfigsDataByKey(ConfigName.HardStage,"Chapter", config.Id)
for j = 1, #curChapterAllLevel do
curMaxStarNum = curMaxStarNum + curChapterAllLevel[j].HighestStar
local HardStageNode = {}
HardStageNode.nodeId = curChapterAllLevel[j].Id
HardStageNode.type = curChapterAllLevel[j].StageType--类型:0.大节点1.小节点
HardStageNode.state = 0--状态:0-7星级状态8为荣耀三星,0为小节点未通过1为小节点通过
HardStageNode.config = curChapterAllLevel[j]--表
singleChapterData.node[HardStageNode.nodeId] = HardStageNode
end
singleChapterData.curMaxStarNum = curMaxStarNum--章节总星数
allChapterData[config.Id] = singleChapterData
end
end
end
--后端更新章节信息
function this.UpdataChapterData(msg)
LogYellow("msg.chapter "..#msg.chapter)
if msg then
for i = 1, #msg.chapter do
local singleHardStageChapter = allChapterData[msg.chapter[i].chapterId]
LogYellow("msg.chapter[i].chapterId "..msg.chapter[i].chapterId.." "..msg.chapter[i].stars.." node num "..#msg.chapter[i].node.." reward num "..#msg.chapter[i].reward)
singleHardStageChapter.chapterId = msg.chapter[i].chapterId
this.SetCurChapterId(singleHardStageChapter.chapterId)
singleHardStageChapter.stars = msg.chapter[i].stars--章节获得总星数
-- singleHardStageChapter.node = {}
for j = 1, #msg.chapter[i].node do
local HardStageNode = {}
HardStageNode.nodeId = msg.chapter[i].node[j].nodeId
HardStageNode.type = msg.chapter[i].node[j].type--类型:0.大节点1.小节点
HardStageNode.state = msg.chapter[i].node[j].state--状态:0-7星级状态8为荣耀三星,0为小节点未通过1为小节点通过
HardStageNode.config = HardStage[msg.chapter[i].node[j].nodeId]--表
this.SetCurChapterLevelId(HardStageNode.nodeId)
singleHardStageChapter.node[HardStageNode.nodeId] = HardStageNode
end
-- singleHardStageChapter.reward = {}--每章宝箱奖励
for k = 1, #msg.chapter[i].reward do
local HardStageChapterReward = {}
HardStageChapterReward.id = msg.chapter[i].reward[k].id
HardStageChapterReward.state = msg.chapter[i].reward[k].state--0.未领取1.已领取
HardStageChapterReward.config = HardStageReward[msg.chapter[i].reward[k].id]--表
table.insert(singleHardStageChapter.reward,HardStageChapterReward)
end
allChapterData[msg.chapter[i].chapterId] = singleHardStageChapter
end
end
end
function this.GetChapterData(allChapterId)
if allChapterId and allChapterId > 0 then
return allChapterData[allChapterId]
else
return allChapterData
end
end
function this.SetCurChapterId(ChapterId)
curChapterId = ChapterId
end
function this.GetCurChapterId()
return curChapterId
end
function this.SetCurChapterLevelId(ChapterLevelId)
curChapterLevelId = ChapterLevelId
end
function this.GetCurChapterLevelId()
return curChapterLevelId
end
function this.GetAllChapterStars()
local allStarNum = 0
for i = 1, #allChapterData do
allStarNum = allStarNum + allChapterData[i].stars
end
return allStarNum
end
function this.GetCurLevelStarState(starNum,index)
return stateList[starNum][index] == 1
end
--请求回放
function this.HardStageReportRequset(_fightLevelData, callBack)
NetManager.HardStageReportRequset(_fightLevelData.config.Chapter, _fightLevelData.nodeId,function (msg)--FIGHT_LEVEL
if msg.player and #msg.player > 0 then
UIManager.OpenPanel(UIName.FightLevelSingleLevelInfoPopup,FIGHTLEVEL_POPUP_TYPE.BackBattle,msg.player)
else
PopupTipPanel.ShowTip("尚无符合条件的回放!")
end
end)
end
--开始战斗
local HardStageFightResponseMsg = {}
function this.FightLevelFightBattle(_fightLevelData, callBack)
NetManager.HardStageFightRequest(_fightLevelData.nodeId, FormationTypeDef.FIGHT_LEVEL,function (msg)--FIGHT_LEVEL
-- LogYellow("ssssssssssssssssssss 9")
HardStageFightResponseMsg = msg
if _fightLevelData.config.StageType == FIGHTLEVEL_STAGETYPE.MainLevel or _fightLevelData.config.StageType == FIGHTLEVEL_STAGETYPE.AssistantLevel then
local fightData = BattleManager.GetBattleServerData(msg,0)
UIManager.OpenPanel(UIName.BattlePanel, fightData, _fightLevelData.config.StageType == FIGHTLEVEL_STAGETYPE.MainLevel and BATTLE_TYPE.FIGHTLEVEL or BATTLE_TYPE.FIGHT_ASSISTANT_LEVEL, callBack)
elseif _fightLevelData.config.StageType == FIGHTLEVEL_STAGETYPE.AssistantLevelReward then
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function()
--刷新数据刷新界面
end)
end
end)
end
function this.GetHardStageFightResponseMsg()
return HardStageFightResponseMsg
end
return this