diff --git a/src/ai.rs b/src/ai.rs index 3970824..6cd8251 100644 --- a/src/ai.rs +++ b/src/ai.rs @@ -19,6 +19,9 @@ impl Plugin for AiPlugin { .run_if(in_state(PlayState::AiBogo)) .run_if(in_state(GameState::Play)) .run_if(in_state(TurnState(Side::A))) + .run_if(in_state(TutorialState::None) + .or_else(in_state(TutorialState::Empty)) + ) ); } } diff --git a/src/display3d.rs b/src/display3d.rs index 2bfc686..32d9f99 100644 --- a/src/display3d.rs +++ b/src/display3d.rs @@ -89,14 +89,10 @@ impl Plugin for Display3dPlugin { .run_if(in_state(ai::PlayState::Human)), vantage_point .run_if(in_state(GameState::Play)) - .run_if(in_state(PlayState::AiBogo)) - .run_if(in_state(TurnState(Side::B))) - .run_if(any_component_added::().or_else(any_component_removed::())), - vantage_point - .run_if(in_state(GameState::Play)) - .run_if(in_state(PlayState::Human)) - .run_if(not(state_changed::)) - .run_if(any_component_added::().or_else(any_component_removed::())), + .run_if(in_state(PlayState::AiBogo) + .and_then(in_state(TurnState(Side::B)).and_then(any_component_added::().or_else(any_component_removed::()))) + .or_else(in_state(PlayState::Human).and_then(not(state_changed::))) + ), update_pieces .run_if(resource_exists::) .run_if(in_state(GameState::Play))