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);
}
}