#nullable enable using ReplacedPerson.Core; using ShrinkEventBus; namespace ReplacedPerson.Runtime { public sealed class ReplacedMatchPhaseEvent : IShrinkEvent { public int Round { get; set; } public ReplacedMatchPhase MatchPhase { get; set; } public int LeadPlayer { get; set; } public string StateHash { get; set; } = string.Empty; } public sealed class ReplacedCardsCommittedEvent : IShrinkEvent { public int PlayerIndex { get; set; } public string[] NormalCardIds { get; set; } = System.Array.Empty(); public string[] EndCardIds { get; set; } = System.Array.Empty(); } public sealed class ReplacedDiceEvent : IShrinkEvent { public int Slot { get; set; } public int PlayerOneRoll { get; set; } public int PlayerTwoRoll { get; set; } } public sealed class ReplacedDamageEvent : IShrinkEvent { public int TargetPlayer { get; set; } public int Amount { get; set; } public int RemainingHealth { get; set; } } public sealed class ReplacedRewardEvent : IShrinkEvent { public string RewardId { get; set; } = string.Empty; } public sealed class ReplacedSaveEvent : IShrinkEvent { public string Operation { get; set; } = string.Empty; public bool Success { get; set; } } public sealed class ReplacedNetworkStatusEvent : IShrinkEvent { public string Status { get; set; } = string.Empty; public string Detail { get; set; } = string.Empty; } }