using Content.Server.StationEvents.Events; using Content.Shared.Psionics.Glimmer; using Robust.Shared.Prototypes; namespace Content.Server.StationEvents.Components; /// /// Tries to spawn a random number of mobs scaling with psionic people. /// Rolls glimmer sources then vents then midround spawns in that order. /// [RegisterComponent, Access(typeof(GlimmerMobRule))] public sealed partial class GlimmerMobRuleComponent : Component { /// /// The mob to spawn. /// [DataField(required: true)] public EntProtoId MobPrototype = string.Empty; /// /// Every this number of psionics spawns 1 mob. /// [DataField] public int MobsPerPsionic = 10; /// /// If the current glimmer tier is above this, mob count gets multiplied by the difference. /// So by default 500-900 glimmer will double it and 900+ will triple it. /// [DataField] public GlimmerTier GlimmerTier = GlimmerTier.Moderate; /// /// Probability of rolling a glimmer source location. /// [DataField] public float GlimmerProb = 0.4f; /// /// Probability of rolling a vent location. /// [DataField] public float NormalProb = 1f; /// /// Probability of rolling a midround antag location. /// Should always be 1 to guarantee the right number of spawned mobs. /// [DataField] public float HiddenProb = 1f; }