using Robust.Shared.Map;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
namespace Content.Shared._Sunrise.Boss.Systems;
///
/// This handles...
///
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 MarkedTargets = new();
public ResPath ShuttlePath = new("/Maps/_Sunrise/arena.yml");
public List Shuttles = [];
///
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,
}