| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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
- };
- /// <summary>
- /// Running cooldown of how much time until another leak.
- /// </summary>
- public float TimeUntilLeak;
- /// <summary>
- /// How long between more gas being added to the tile.
- /// </summary>
- 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;
- /// <summary>
- /// Don't want to make it too fast to give people time to flee.
- /// </summary>
- public int MaximumMolesPerSecond = 200;
- public int MinimumGas = 1000;
- public int MaximumGas = 4000;
- public float SparkChance = 0.05f;
- }
|