CatStation/Content.Shared/Arcade/SharedSpaceVillainArcadeComponent.cs
Stefano Pigozzi 6d8caeb425
Make Space Villain LMTR wire remove HP and MP limits and skip game end checks (#40961)
* Make Space Villain `LMTR` wire remove HP and MP limits and skip game end checks

* cleanup

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-07-17 13:03:11 -04:00

90 lines
3 KiB
C#

using Robust.Shared.Serialization;
namespace Content.Shared.Arcade
{
public abstract partial class SharedSpaceVillainArcadeComponent : Component
{
[Serializable, NetSerializable]
public enum Indicators
{
/// <summary>
/// Blinks when any invincible flag is set
/// </summary>
HealthManager,
/// <summary>
/// Blinks when the Uncapped flag is set.
/// </summary>
HealthLimiter
}
[Serializable, NetSerializable]
public enum PlayerAction
{
Attack,
Heal,
Recharge,
NewGame,
RequestData
}
[Serializable, NetSerializable]
public enum SpaceVillainArcadeVisualState
{
Normal,
Off,
Broken,
Win,
GameOver,
}
[Serializable, NetSerializable]
public enum SpaceVillainArcadeUiKey
{
Key,
}
[Serializable, NetSerializable]
public sealed class SpaceVillainArcadePlayerActionMessage : BoundUserInterfaceMessage
{
public readonly PlayerAction PlayerAction;
public SpaceVillainArcadePlayerActionMessage(PlayerAction playerAction)
{
PlayerAction = playerAction;
}
}
[Serializable, NetSerializable]
public sealed class SpaceVillainArcadeMetaDataUpdateMessage : SpaceVillainArcadeDataUpdateMessage
{
public readonly string GameTitle;
public readonly string EnemyName;
public readonly bool ButtonsDisabled;
public SpaceVillainArcadeMetaDataUpdateMessage(int playerHp, int playerMp, int enemyHp, int enemyMp, string playerActionMessage, string enemyActionMessage, string gameTitle, string enemyName, bool buttonsDisabled) : base(playerHp, playerMp, enemyHp, enemyMp, playerActionMessage, enemyActionMessage)
{
GameTitle = gameTitle;
EnemyName = enemyName;
ButtonsDisabled = buttonsDisabled;
}
}
[Serializable, NetSerializable, Virtual]
public class SpaceVillainArcadeDataUpdateMessage : BoundUserInterfaceMessage
{
public readonly int PlayerHP;
public readonly int PlayerMP;
public readonly int EnemyHP;
public readonly int EnemyMP;
public readonly string PlayerActionMessage;
public readonly string EnemyActionMessage;
public SpaceVillainArcadeDataUpdateMessage(int playerHp, int playerMp, int enemyHp, int enemyMp, string playerActionMessage, string enemyActionMessage)
{
PlayerHP = playerHp;
PlayerMP = playerMp;
EnemyHP = enemyHp;
EnemyMP = enemyMp;
EnemyActionMessage = enemyActionMessage;
PlayerActionMessage = playerActionMessage;
}
}
}
}