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;
}