pub struct TurnState {Show 50 fields
pub active_player: u8,
pub starting_player: u8,
pub turn_number: u32,
pub phase: Phase,
pub mulligan_done: [bool; 2],
pub mulligan_selected: [u64; 2],
pub main_passed: bool,
pub decision_count: u32,
pub tick_count: u32,
pub attack: Option<AttackContext>,
pub attack_subphase_count: u8,
pub pending_level_up: Option<u8>,
pub encore_queue: Vec<EncoreRequest>,
pub encore_step_player: Option<u8>,
pub pending_triggers: Vec<PendingTrigger>,
pub pending_triggers_sorted: bool,
pub active_window: Option<TimingWindow>,
pub end_phase_window_done: bool,
pub end_phase_discard_done: bool,
pub end_phase_climax_done: bool,
pub end_phase_cleanup_done: bool,
pub encore_window_done: bool,
pub pending_losses: [bool; 2],
pub damage_resolution_target: Option<u8>,
pub cost_payment_depth: u8,
pub pending_resolution_cleanup: Vec<(u8, CardInstanceId)>,
pub cannot_use_auto_encore: [bool; 2],
pub rule_overrides: Vec<RuleOverrideKind>,
pub granted_abilities: Vec<GrantedAbilityInstance>,
pub next_grant_id: u64,
pub phase_step: u8,
pub attack_phase_begin_done: bool,
pub attack_decl_check_done: bool,
pub encore_begin_done: bool,
pub trigger_order: Option<TriggerOrderState>,
pub choice: Option<ChoiceState>,
pub target_selection: Option<TargetSelectionState>,
pub pending_cost: Option<CostPaymentState>,
pub priority: Option<PriorityState>,
pub stack: Vec<StackItem>,
pub pending_stack_groups: VecDeque<StackOrderState>,
pub stack_order: Option<StackOrderState>,
pub derived_attack: Option<DerivedAttackState>,
pub next_trigger_id: u32,
pub next_trigger_group_id: u32,
pub next_choice_id: u32,
pub next_stack_group_id: u32,
pub next_damage_event_id: u32,
pub next_effect_instance_id: u32,
pub end_phase_pending: bool,
}Expand description
Turn-level state tracking.
Fields§
§active_player: u8Seat whose turn it currently is.
starting_player: u8Seat that started the game.
turn_number: u32Turn counter (starting at 0 for mulligan).
phase: PhaseCurrent phase within the turn.
mulligan_done: [bool; 2]Per-seat mulligan completion flags.
mulligan_selected: [u64; 2]Per-seat packed mulligan selections.
main_passed: boolWhether the main phase has been passed.
decision_count: u32Decision counter for the episode.
tick_count: u32Tick counter for the episode.
attack: Option<AttackContext>Active attack context, if any.
attack_subphase_count: u8Counter used to advance attack subphases deterministically.
pending_level_up: Option<u8>Seat that must level up next, if any.
encore_queue: Vec<EncoreRequest>Queue of encore requests to resolve.
encore_step_player: Option<u8>Seat currently choosing encore, if any.
pending_triggers: Vec<PendingTrigger>Pending triggers awaiting ordering/resolution.
pending_triggers_sorted: boolWhether pending_triggers is already sorted for resolution.
active_window: Option<TimingWindow>Current timing window for priority/auto effects.
end_phase_window_done: boolWhether end-phase window has been processed.
end_phase_discard_done: boolWhether end-phase discard has been processed.
end_phase_climax_done: boolWhether end-phase climax cleanup has been processed.
end_phase_cleanup_done: boolWhether end-phase general cleanup has been processed.
encore_window_done: boolWhether encore window has been processed.
pending_losses: [bool; 2]Per-seat pending loss flags.
damage_resolution_target: Option<u8>Seat currently taking damage, if any.
cost_payment_depth: u8Nested cost payment depth (re-entrancy guard).
pending_resolution_cleanup: Vec<(u8, CardInstanceId)>Pending cleanup operations for the resolution zone.
cannot_use_auto_encore: [bool; 2]Per-seat flag to disable auto-encore.
rule_overrides: Vec<RuleOverrideKind>Active rule overrides for this turn.
granted_abilities: Vec<GrantedAbilityInstance>Runtime granted abilities active this turn.
next_grant_id: u64Next grant id allocator.
phase_step: u8Internal step counter within the current phase.
attack_phase_begin_done: boolWhether attack-phase begin effects have run.
attack_decl_check_done: boolWhether attack declaration legality checks have run.
encore_begin_done: boolWhether encore begin effects have run.
trigger_order: Option<TriggerOrderState>Active trigger ordering prompt, if any.
choice: Option<ChoiceState>Active choice prompt, if any.
target_selection: Option<TargetSelectionState>Active target selection prompt, if any.
pending_cost: Option<CostPaymentState>Active cost payment state, if any.
priority: Option<PriorityState>Active priority window, if any.
stack: Vec<StackItem>Effect stack items awaiting resolution.
pending_stack_groups: VecDeque<StackOrderState>Pending stack groups awaiting an ordering decision.
stack_order: Option<StackOrderState>Active stack ordering prompt, if any.
derived_attack: Option<DerivedAttackState>Cached derived attack state, if any.
next_trigger_id: u32Next trigger id allocator.
next_trigger_group_id: u32Next trigger group id allocator.
next_choice_id: u32Next choice id allocator.
next_stack_group_id: u32Next stack group id allocator.
next_damage_event_id: u32Next damage event id allocator.
next_effect_instance_id: u32Next effect instance id allocator.
end_phase_pending: boolWhether the end phase is currently pending execution.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TurnState
impl RefUnwindSafe for TurnState
impl Send for TurnState
impl Sync for TurnState
impl Unpin for TurnState
impl UnwindSafe for TurnState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more