public override void OnBehaviourInitialize() { base.OnBehaviourInitialize(); Utilities.EnableSingleGPUQueryPerFrame(); this._missionAgentSpawnLogic = this.Mission.GetMissionBehaviour <MissionAgentSpawnLogic>(); this._paths = this.Mission.Scene.GetPathsWithNamePrefix("CameraPath"); this._targets = this.Mission.Scene.GetPathsWithNamePrefix("CameraTarget"); Array.Sort <Path>(this._paths, (Comparison <Path>)((x, y) => x.GetName().CompareTo(y.GetName()))); Array.Sort <Path>(this._targets, (Comparison <Path>)((x, y) => x.GetName().CompareTo(y.GetName()))); if (this._paths.Length == 0) { return; } this._curPath = 0; this._cameraPassedDistanceOnPath = 0.0f; string name1 = this._paths[this._curPath].GetName(); int num1 = name1.LastIndexOf('_'); this._curPathSpeed = this._cameraSpeed = float.Parse(name1.Substring(num1 + 1)); this._curPathLenght = this._paths[this._curPath].GetTotalLength(); if (this._paths.Length <= this._curPath + 1) { return; } string name2 = this._paths[this._curPath + 1].GetName(); int num2 = name2.LastIndexOf('_'); this._nextPathSpeed = float.Parse(name2.Substring(num2 + 1)); }
public static Mission OpenBattleJustHero(string scene, string upgradeLevel) { MissionInitializerRecord record = new MissionInitializerRecord(scene) { PlayingInCampaignMode = Campaign.Current.GameMode == CampaignGameMode.Campaign, AtmosphereOnCampaign = (Campaign.Current.GameMode == CampaignGameMode.Campaign) ? Campaign.Current.Models.MapWeatherModel.GetAtmosphereModel(CampaignTime.Now, MobileParty.MainParty.GetLogicalPosition()) : null, SceneLevels = upgradeLevel }; MissionAgentSpawnLogic lc2 = 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", record, delegate(Mission mission) { List <MissionBehaviour> list = new List <MissionBehaviour>(); list.Add(new MissionOptionsComponent()); list.Add(new CampaignMissionComponent()); list.Add(new BattleEndLogic()); list.Add(new MissionCombatantsLogic(MobileParty.MainParty.MapEvent.InvolvedParties, PartyBase.MainParty, MobileParty.MainParty.MapEvent.GetLeaderParty(BattleSideEnum.Defender), MobileParty.MainParty.MapEvent.GetLeaderParty(BattleSideEnum.Attacker), Mission.MissionTeamAITypeEnum.FieldBattle, isPlayerSergeant)); list.Add(new BattleMissionStarterLogic()); //list.Add(new MissionDefaultCaptainAssignmentLogic()); list.Add(new BattleSpawnLogic("battle_set")); list.Add(new MissionAgentPanicHandler()); list.Add(new AgentBattleAILogic()); list.Add(new BattleObserverMissionLogic()); list.Add(lc2); list.Add(new MissionFightHandler()); list.Add(new AgentFadeOutLogic()); list.Add(new BattleAgentLogic()); list.Add(new AgentVictoryLogic()); list.Add(new MissionDebugHandler()); list.Add(new MissionHardBorderPlacer()); list.Add(new MissionBoundaryPlacer()); list.Add(new MissionBoundaryCrossingHandler()); list.Add(new BattleMissionAgentInteractionLogic()); list.Add(new HighlightsController()); list.Add(new BattleHighlightsController()); list.Add(new BattleHeroJustTroopSpawnHandler()); list.Add(new FieldBattleController()); //list.Add(new AgentMoraleInteractionLogic()); //list.Add(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; list.Add(new CreateBodyguardMissionBehavior(arg_18B_0, (expr_177 != null) ? expr_177.Name.ToString() : null, null, null, true)); return list.ToArray(); }, true, true)); }
static void Postfix(MissionAgentSpawnLogic __instance, ref int ____battleSize) { if (BannerlordTweaksSettings.Instance is { } settings&& settings.BattleSize > 0) { ____battleSize = settings.BattleSize; DebugHelpers.ColorGreenMessage("Max Battle Size Modified to: " + settings.BattleSize); } return; }
public override void AfterStart() { base.AfterStart(); MissionAgentSpawnLogic missionBehaviour = this.Mission.GetMissionBehaviour <MissionAgentSpawnLogic>(); if (missionBehaviour == null || !this.IsPhasingInitialized) { return; } missionBehaviour.AddPhaseChangeAction(BattleSideEnum.Defender, new OnPhaseChangedDelegate(this.OnPhaseChanged)); }
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 override void OnBehaviourInitialize() { base.OnBehaviourInitialize(); _missionAgentSpawnLogic = Mission.GetMissionBehaviour <MissionAgentSpawnLogic>(); }
public override void OnBehaviourInitialize() { base.OnBehaviourInitialize(); this._missionAgentSpawnLogic = base.Mission.GetMissionBehaviour <MissionAgentSpawnLogic>(); this._mapEvent = MapEvent.PlayerMapEvent; }