/// <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}"); } } } }
//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++; } } } }