local FormationManager = class("FormationManager", BaseModule) function FormationManager:upHeroToStageFormation(heroId, matchType) local formation = DataManager.FormationData:getStageFormation() if formation[matchType] == heroId then return end local args = { formationType = GConst.BattleConst.BATTLE_TYPE.STAGE, matchType = matchType, heroId = heroId } -- self:sendMessage(ProtoMsgType.FromMsgEnum., args, {}, self.upHeroToStageFormationFinish) end function FormationManager:upHeroToStageFormationFinish(result) if result.err_code == GConst.ERROR_STR.SUCCESS then DataManager.FormationData:upHeroToFormation(GConst.BattleConst.BATTLE_TYPE.STAGE, matchType, heroId) DataManager.HeroData:setDirty() end end function FormationManager:formationIsFull() local actvieMap = DataManager.HeroData:getMatchActiveHeroMap() local formation = DataManager.FormationData:getStageFormation() local count = 0 for matchtype = 1, GConst.BattleConst.ELEMENT_TYPE_COUNT do if not formation[matchtype] or formation[matchtype] <= 0 then if actvieMap[matchtype] and table.nums(actvieMap[matchtype]) > 0 then return false end else count = count + 1 end end if count <= 0 then return false end return true end return FormationManager