Species are now picked at random in the developer environment! (#37057)
* Various changes to random species in dev * This should be split
This commit is contained in:
@@ -140,8 +140,29 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem
|
||||
if (_randomizeCharacters)
|
||||
{
|
||||
var weightId = _configurationManager.GetCVar(CCVars.ICRandomSpeciesWeights);
|
||||
var weights = _prototypeManager.Index<WeightedRandomSpeciesPrototype>(weightId);
|
||||
speciesId = weights.Pick(_random);
|
||||
|
||||
// If blank, choose a round start species.
|
||||
if (string.IsNullOrEmpty(weightId))
|
||||
{
|
||||
var roundStart = new List<ProtoId<SpeciesPrototype>>();
|
||||
|
||||
var speciesPrototypes = _prototypeManager.EnumeratePrototypes<SpeciesPrototype>();
|
||||
foreach (var proto in speciesPrototypes)
|
||||
{
|
||||
if (proto.RoundStart)
|
||||
roundStart.Add(proto.ID);
|
||||
}
|
||||
|
||||
if (roundStart.Count == 0)
|
||||
speciesId = SharedHumanoidAppearanceSystem.DefaultSpecies;
|
||||
else
|
||||
speciesId = _random.Pick(roundStart);
|
||||
}
|
||||
else
|
||||
{
|
||||
var weights = _prototypeManager.Index<WeightedRandomSpeciesPrototype>(weightId);
|
||||
speciesId = weights.Pick(_random);
|
||||
}
|
||||
}
|
||||
else if (profile != null)
|
||||
{
|
||||
|
||||
@@ -36,6 +36,7 @@ public sealed partial class CCVars
|
||||
|
||||
/// <summary>
|
||||
/// A weighted random prototype used to determine the species selected for random characters.
|
||||
/// If blank, will use a round start species picked at random.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string> ICRandomSpeciesWeights =
|
||||
CVarDef.Create("ic.random_species_weights", "SpeciesWeights", CVar.SERVER);
|
||||
|
||||
@@ -37,3 +37,7 @@ preload_grids = false
|
||||
|
||||
[admin]
|
||||
see_own_notes = true
|
||||
|
||||
[ic]
|
||||
random_characters = true
|
||||
random_species_weights = ""
|
||||
|
||||
Reference in New Issue
Block a user