fish-station/Content.Shared/_Sunrise/Boss/Systems/SharedHellSpawnArenaSystem.cs
pacable 8f2445ea94
Адское Отродье - Босс для утилей (#1525)
Signed-off-by: pacable <igor.mamaev1@gmail.com>
2025-03-10 02:33:48 +03:00

57 lines
1.3 KiB
C#

using Robust.Shared.Map;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
namespace Content.Shared._Sunrise.Boss.Systems;
/// <summary>
/// This handles...
/// </summary>
public abstract class SharedHellSpawnArenaSystem : EntitySystem
{
public static HellSpawnBossStatus Status = HellSpawnBossStatus.Idle;
public EntityUid? Arena;
public MapId? ArenaMap;
public TimeSpan CooldownLength = TimeSpan.FromSeconds(3);
public HashSet<EntityUid> MarkedTargets = new();
public ResPath ShuttlePath = new("/Maps/_Sunrise/arena.yml");
public List<EntityUid> Shuttles = [];
/// <inheritdoc />
public override void Initialize()
{
}
}
[Serializable] [NetSerializable]
public sealed class HellSpawnArenaConsoleUiState : BoundUserInterfaceState
{
public TimeSpan? ActivationTime;
public HellSpawnBossStatus CurrentStatus;
}
[Serializable] [NetSerializable]
public enum HellSpawnBossStatus : byte
{
Idle,
InProgress,
Cooldown,
}
[Serializable] [NetSerializable]
public sealed class TravelButtonPressedMessage : BoundUserInterfaceMessage
{
public NetEntity Owner;
}
public sealed class TravelModeToggledEvent : EntityEventArgs
{
public bool Enabled = false;
}
[Serializable] [NetSerializable]
public enum HellSpawnArenaUiKey
{
Key,
}