Пример #1
0
        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));
        }
Пример #3
0
        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;
        }
Пример #4
0
        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));
        }
Пример #5
0
        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;
 }