Files
Delta-v/Content.Server/StationEvents/Components/VentHordeRuleComponent.cs
T
ScarKy0 9b5a09e8a8 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>

# Conflicts:
#	Resources/Prototypes/GameRules/pests.yml
2026-06-29 12:44:03 +02:00

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