local MainlineAvgLevel = class("MainlineAvgLevel") local mapEventConfig = { LevelStateChanged = "OnEvent_SendMsgFinishBattle" } function MainlineAvgLevel:Init(parent, nMainlineId) self._nSelectId = nMainlineId self.parent = parent self.bSettle = false self:BindEvent() local mapMainline = ConfigTable.GetData_Mainline(nMainlineId) if mapMainline == nil then self.parent:LevelEnd() return end if mapMainline.AvgId == nil or mapMainline.AvgId == "" then self.parent:LevelEnd() return end self.parent = parent local mapData = { nType = AllEnum.StoryAvgType.PureAvg, sAvgId = mapMainline.AvgId, nNodeId = nMainlineId, callback = nil } EventManager.Hit(EventId.OpenPanel, PanelId.PureAvgStory, mapData) end function MainlineAvgLevel:BindEvent() if type(mapEventConfig) ~= "table" then return end for nEventId, sCallbackName in pairs(mapEventConfig) do local callback = self[sCallbackName] if type(callback) == "function" then EventManager.Add(nEventId, self, callback) end end end function MainlineAvgLevel:UnBindEvent() if type(mapEventConfig) ~= "table" then return end for nEventId, sCallbackName in pairs(mapEventConfig) do local callback = self[sCallbackName] if type(callback) == "function" then EventManager.Remove(nEventId, self, callback) end end end function MainlineAvgLevel:OnEvent_SendMsgFinishBattle() if self.bSettle == true then print("已在结算流程中!") return end self.bSettle = true print("OnEvent_SendMsgFinishBattle") local nStar = 7 local func_cbFinishSucc = function(_, mapMainData) self.parent:UpdateMainlineStar(self._nSelectId, nStar) EventManager.Hit(EventId.CloesCurPanel) local close = function() PlayerData.Base:OnBackToMainMenuModule() end if mapMainData.FirstRewardItems and #mapMainData.FirstRewardItems > 0 then UTILS.OpenReceiveByDisplayItem(mapMainData.FirstRewardItems, mapMainData.Change, close) else close() end self:UnBindEvent() self.parent:LevelEnd() end local mapSendMsg = {} mapSendMsg.Ok = true mapSendMsg.MinChests = {} mapSendMsg.MaxChests = {} HttpNetHandler.SendMsg(NetMsgId.Id.mainline_settle_req, mapSendMsg, nil, func_cbFinishSucc) end return MainlineAvgLevel