using System; namespace SpecialMoveCards { /// /// Central event hub for the Special Move Card system. /// Keeps the PlayerPocket decoupled from UI and other systems. /// public static class GameEvents { /// Raised when a card is picked up by a player. public static event Action CardPicked; /// Raised when a card is consumed/used by the player. public static event Action CardUsed; // Card, slotIndex /// Raised whenever the pocket inventory changes. public static event Action PocketChanged; // snapshot, count public static void RaiseCardPicked(CardData data) => CardPicked?.Invoke(data); public static void RaiseCardUsed(CardData data, int slotIndex) => CardUsed?.Invoke(data, slotIndex); public static void RaisePocketChanged(CardData[] snapshot, int count) => PocketChanged?.Invoke(snapshot, count); } }