Ejemplo n.º 1
0
 /// <summary>
 /// Add n randomly generated pilots to the roster
 /// </summary>
 /// <param name="simGame"></param>
 /// <param name="n">How many pilots</param>
 public static void AddProceduralPilots(SimGameState simGame, int n)
 {
     while (n > 0)
     {
         var pilots = simGame.PilotGenerator.GeneratePilots(n, Main.Settings.PilotPlanetDifficulty, 0f, out _);
         foreach (var pilot in pilots)
         {
             if (!simGame.CanPilotBeCareerModeStarter(pilot))
             {
                 Logger.Log($"\tProcedural pilot unsuitable for starting roster: {pilot.Description.Id}");
                 continue;
             }
             if (simGame.AddPilotToRoster(pilot, false, true))
             {
                 --n;
                 pilot.SetDayOfHire(simGame.DaysPassed);
                 Logger.Log($"\tAdded procedural pilot: {pilot.Description.Id}");
             }
             else
             {
                 Logger.Log($"\tFailed to add procedural pilot: {pilot.Description.Id}");
             }
         }
     }
 }
Ejemplo n.º 2
0
        //Code for randomizing starting pilots
        public static void RandomizeRonin(SimGameState sim)
        {
            while (sim.PilotRoster.Count > 0)
            {
                sim.PilotRoster.RemoveAt(0);
            }
            List <PilotDef> list = new List <PilotDef>();

            if (RngStart.Settings.StartingRonin != null)
            {
                var RoninRandomizer = new List <string>();
                RoninRandomizer.AddRange(GetRandomSubList(RngStart.Settings.StartingRonin, RngStart.Settings.NumberRoninFromList));
                foreach (var roninID in RoninRandomizer)
                {
                    var pilotDef = sim.DataManager.PilotDefs.Get(roninID);

                    // add directly to roster, don't want to get duplicate ronin from random ronin
                    if (pilotDef != null)
                    {
                        sim.AddPilotToRoster(pilotDef, true, true);
                    }
                }
            }

            if (RngStart.Settings.NumberRandomRonin > 0)
            {
                List <PilotDef> list2 = new List <PilotDef>(sim.RoninPilots);
                for (int m = list2.Count - 1; m >= 0; m--)
                {
                    for (int n = 0; n < sim.PilotRoster.Count; n++)
                    {
                        if (list2[m].Description.Id == sim.PilotRoster[n].Description.Id)
                        {
                            list2.RemoveAt(m);
                            break;
                        }
                    }
                }
                list2.RNGShuffle <PilotDef>();
                for (int i = 0; i < RngStart.Settings.NumberRandomRonin; i++)
                {
                    list.Add(list2[i]);
                }
            }

            if (RngStart.Settings.NumberProceduralPilots > 0)
            {
                List <PilotDef> list3 = new List <PilotDef>();
                int             f     = 0;
                while (f < RngStart.Settings.NumberProceduralPilots)
                {
                    PilotDef pilotDef = sim.PilotGenerator.GeneratePilots(1, 1, 0f, out list3)[0];
                    if (sim.CanPilotBeCareerModeStarter(pilotDef))
                    {
                        pilotDef.SetDayOfHire(sim.DaysPassed);
                        sim.AddPilotToRoster(pilotDef, false, true);
                        f++;
                    }
                }
            }
        }