use bevy::prelude::*;
#[derive(States, Debug, Clone, Eq, PartialEq, Hash, Default, Reflect)]
#[reflect(opaque)]
pub enum TurnPhase {
#[default]
PlayerInput,
Processing,
Visuals,
EnemyTurn,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_turn_phase_default() {
let phase = TurnPhase::default();
assert_eq!(phase, TurnPhase::PlayerInput);
}
#[test]
fn test_turn_phase_equality() {
assert_eq!(TurnPhase::PlayerInput, TurnPhase::PlayerInput);
assert_ne!(TurnPhase::PlayerInput, TurnPhase::Processing);
}
#[test]
fn test_turn_phase_clone() {
let phase1 = TurnPhase::Processing;
let phase2 = phase1.clone();
assert_eq!(phase1, phase2);
}
#[test]
fn test_turn_phase_debug() {
let phase = TurnPhase::Visuals;
let debug_str = format!("{:?}", phase);
assert!(debug_str.contains("Visuals"));
}
}