public static Mission OpenBattleNormal(string scene, string sceneLevels) { MissionAgentSpawnLogic lc = new MissionAgentSpawnLogic(new IMissionTroopSupplier[] { new PartyGroupTroopSupplier(MapEvent.PlayerMapEvent, BattleSideEnum.Defender, null), new PartyGroupTroopSupplier(MapEvent.PlayerMapEvent, BattleSideEnum.Attacker, null) }, PartyBase.MainParty.Side); bool isPlayerSergeant = MobileParty.MainParty.MapEvent.IsPlayerSergeant(); bool isPlayerInArmy = MobileParty.MainParty.Army != null; List <string> heroesOnPlayerSideByPriority = HeroHelper.OrderHeroesOnPlayerSideByPriority(); return(MissionState.OpenNew("Battle", SandBoxMissions.CreateSandBoxMissionInitializerRecord(scene, sceneLevels, false), delegate(Mission mission) { MissionBehaviour[] expr_07 = new MissionBehaviour[26]; expr_07[0] = new MissionOptionsComponent(); expr_07[1] = new CampaignMissionComponent(); expr_07[2] = new BattleEndLogic(); expr_07[3] = new MissionCombatantsLogic(MobileParty.MainParty.MapEvent.InvolvedParties, PartyBase.MainParty, MobileParty.MainParty.MapEvent.GetLeaderParty(BattleSideEnum.Defender), MobileParty.MainParty.MapEvent.GetLeaderParty(BattleSideEnum.Attacker), Mission.MissionTeamAITypeEnum.FieldBattle, isPlayerSergeant); expr_07[4] = new MissionDefaultCaptainAssignmentLogic(); expr_07[5] = new BattleMissionStarterLogic(); expr_07[6] = new BattleSpawnLogic("battle_set"); expr_07[7] = new AgentBattleAILogic(); expr_07[8] = lc; expr_07[9] = new BaseMissionTroopSpawnHandler(); expr_07[10] = new AgentFadeOutLogic(); expr_07[11] = new BattleObserverMissionLogic(); expr_07[12] = new BattleAgentLogic(); expr_07[13] = new AgentVictoryLogic(); expr_07[14] = new MissionDebugHandler(); expr_07[15] = new MissionAgentPanicHandler(); expr_07[16] = new MissionHardBorderPlacer(); expr_07[17] = new MissionBoundaryPlacer(); expr_07[18] = new MissionBoundaryCrossingHandler(); expr_07[19] = new BattleMissionAgentInteractionLogic(); expr_07[20] = new FieldBattleController(); expr_07[21] = new AgentMoraleInteractionLogic(); expr_07[22] = new HighlightsController(); expr_07[23] = new BattleHighlightsController(); expr_07[24] = new AssignPlayerRoleInTeamMissionController(!isPlayerSergeant, isPlayerSergeant, isPlayerInArmy, heroesOnPlayerSideByPriority, FormationClass.NumberOfRegularFormations); int arg_190_1 = 25; Hero expr_152 = MapEvent.PlayerMapEvent.AttackerSide.LeaderParty.LeaderHero; string arg_18B_0 = (expr_152 != null) ? expr_152.Name.ToString() : null; Hero expr_177 = MapEvent.PlayerMapEvent.DefenderSide.LeaderParty.LeaderHero; expr_07[arg_190_1] = new CreateBodyguardMissionBehavior(arg_18B_0, (expr_177 != null) ? expr_177.Name.ToString() : null, null, null, true); return expr_07; }, true, true)); }
public static void AddMissionBehaviour(MissionView entranceView, MissionBehaviour behaviour) { behaviour.OnAfterMissionCreated(); entranceView.Mission.AddMissionBehaviour(behaviour); }