137 lines
6.4 KiB
Lua
137 lines
6.4 KiB
Lua
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 |