CatStation/Content.Server/StationEvents/Components/VentHordeRuleComponent.cs
ScarKy0 f3bb1becf5
Vent Hordes (#43047)
* init

* port hostiles to hordes, fakeout horde

* cleaning, docs

* i may be blind sometimes

* i may be even blinder

* remove friendly announcements

* fuck it

* i love microbalancing

* review

* review

* review p2

* Update Resources/Prototypes/GameRules/pests.yml

Co-authored-by: SnappingOpossum <snappingopossum@outlook.com>

* review + powercreep

* lower the times to account for the gamerule delay

* review

* review

* fuck this return actually

* fial

---------

Co-authored-by: SnappingOpossum <snappingopossum@outlook.com>
2026-03-11 23:28:47 +00:00

26 lines
907 B
C#

using Content.Server.StationEvents.Events;
using Content.Shared.EntityTable.EntitySelectors;
namespace Content.Server.StationEvents.Components;
/// <summary>
/// Component used for the vent horde gamerule.
/// Picks a random entity with <see cref="VentCritterSpawnLocationComponent"/>
/// and spawns entities picked from the <see cref="Table"/> on it after a delay.
/// </summary>
[RegisterComponent, Access(typeof(VentHordeRule))]
public sealed partial class VentHordeRuleComponent : Component
{
/// <summary>
/// The table of possible mobs to spawn from the vent.
/// </summary>
[DataField(required: true)]
public EntityTableSelector Table = default!;
/// <summary>
/// The vent that has been chosen to spawn the entities.
/// Spawning logic is handled by <see cref="VentHordeSpawnerComponent"/>
/// </summary>
[DataField]
public EntityUid? ChosenVent;
}