use crate::agent::GameLogEvent;
use crate::agent::ManaCostAction;
use crate::ids::{CardId, PlayerId};
use forge_foundation::PhaseType;
#[derive(Debug, Clone)]
pub enum GameNotification {
Event(GameLogEvent),
CardPlayed {
player: PlayerId,
card_id: CardId,
card_name: String,
set_code: String,
},
TurnChanged {
active_player: PlayerId,
turn_number: u32,
},
PhaseChanged {
phase: PhaseType,
},
PriorityChanged {
player: PlayerId,
},
StateChanged,
SnapshotCreated {
checkpoint_id: u64,
label: String,
},
ManaPaymentResolved {
player: PlayerId,
actions: Vec<ManaCostAction>,
},
ActivatedAbilityPaymentFailed {
player: PlayerId,
card_id: CardId,
ability_index: usize,
},
DiceRolled {
player: PlayerId,
sides: i32,
natural_results: Vec<i32>,
final_results: Vec<i32>,
ignored_rolls: Vec<i32>,
source_card_name: Option<String>,
},
FirstPlayerRoll {
sides: i32,
rolls: Vec<(PlayerId, i32)>,
winner: PlayerId,
},
GameOver,
}