using Content.Server.StationEvents.Events; using Content.Shared.Atmos; using Robust.Shared.Map; namespace Content.Server.StationEvents.Components; [RegisterComponent, Access(typeof(GasLeakRule))] public sealed partial class GasLeakRuleComponent : Component { public readonly Gas[] LeakableGases = { Gas.Ammonia, Gas.Plasma, Gas.Tritium, Gas.Frezon, Gas.WaterVapor, // the fog }; /// /// Running cooldown of how much time until another leak. /// public float TimeUntilLeak; /// /// How long between more gas being added to the tile. /// public float LeakCooldown = 1.0f; // Event variables public EntityUid TargetStation; public EntityUid TargetGrid; public Vector2i TargetTile; public EntityCoordinates TargetCoords; public bool FoundTile; public Gas LeakGas; public float MolesPerSecond; public readonly int MinimumMolesPerSecond = 80; /// /// Don't want to make it too fast to give people time to flee. /// public int MaximumMolesPerSecond = 200; public int MinimumGas = 1000; public int MaximumGas = 4000; public float SparkChance = 0.05f; }