diff --git a/README.md b/README.md
index 5b17f0f..028ba66 100644
--- a/README.md
+++ b/README.md
@@ -31,16 +31,23 @@ graph TD
GREEN_FLAG -- 50 laps all day --> LUX_MODE[/"Lap of Luxury Mode"/]
GREEN_FLAG -- grand prix sequence --> GP_MODE[/"Grand Prix Mode"/]
RANDOM1 -- fuel -->
- PIT_CHECK{"Fuel, Oil or Tires need attention?"}
- RANDOM1 -- tires --> PIT_CHECK
- RANDOM1 -- oil --> PIT_CHECK
+ IS_NEED_PIT{"Fuel, Oil or Tires need attention?"}
+ RANDOM1 -- tires --> IS_NEED_PIT
+ RANDOM1 -- oil --> IS_NEED_PIT
RANDOM1 -- bad luck --> BALL_DRAINS((("Ball Drains")))
- PIT_CHECK -- yes --> PIT
- PIT_CHECK -- no --> GREEN_FLAG
+ IS_NEED_PIT -- yes --> PIT
+ IS_NEED_PIT -- no --> GREEN_FLAG
GL_MODE --> GL_MULTI("Grooveline Multiball")
LUX_MODE --> LUX_MULTI("Lap of Luxury Multiball")
GP_MODE --> GP_MULTI("Grand Prix Multiball")
GL_MULTI -- make 3 laps --> GL_MULTI_ADD_BALL("Add a Ball")
+ GL_MULTI -->
+ IS_RF_MODE_READY{"Red Flag Mode Ready?"}
+ LUX_MULTI --> IS_RF_MODE_READY
+ GP_MULTI --> IS_RF_MODE_READY
+ IS_RF_MODE_READY -- yes --> RF_MODE[/"Red Flag
(Wizard) Mode"/]
+ IS_RF_MODE_READY -- no --> GREEN_FLAG
+ RF_MODE --> RF_MULTI("Red Flag Multiball")
```
### Production Machine Setup
diff --git a/config/common.yaml b/config/common.yaml
index e1874c3..a614e5e 100644
--- a/config/common.yaml
+++ b/config/common.yaml
@@ -1,6 +1,7 @@
#config_version=6
config:
+- common/mpf.yaml
- common/assets.yaml
- common/ball_devices.yaml
- common/coils.yaml
diff --git a/modes/red_flag/config/mode.yaml b/modes/red_flag/config/mode.yaml
index 75d7f6d..46a27ba 100644
--- a/modes/red_flag/config/mode.yaml
+++ b/modes/red_flag/config/mode.yaml
@@ -1,7 +1,8 @@
#config_version=6
mode:
- # start_events:
+ start_events:
+ - sw_tag_hole_active{current_player.is_grooveline_completed > 0 and current_player.is_grand_prix_completed > 0 and current_player.is_luxury_completed > 0}
# TODO after logicblock_red_flag_counter_complete
stop_events:
- multiball_red_flag_ended
diff --git a/tests/test_red_flag_mode.py b/tests/test_red_flag_mode.py
index d12e5b9..5a46148 100644
--- a/tests/test_red_flag_mode.py
+++ b/tests/test_red_flag_mode.py
@@ -1,3 +1,4 @@
+import random
from tests.death_save_game_testing import DeathSaveGameTesting
class TestRedFlagMode(DeathSaveGameTesting):
@@ -49,7 +50,6 @@ def test_qualification(self):
for i in range(2):
self._drain_one_ball()
self.advance_time_and_run(1)
- #self.assertEqual(1, self.machine.playfield.balls)
self.assertModeNotRunning("grand_prix")
self.assertEqual(
1, self.machine.game.player.is_grand_prix_completed)
@@ -60,4 +60,16 @@ def test_qualification(self):
self.assertEqual(True, self.machine. \
counters["red_flag_counter"].check_complete())
- # TODO: final sequence for mode start here
+ # With all 3 qualifying modes completed,
+ # the red flag mode is started by entering
+ # ANY ONE OF THE HOLES on the playfield, so
+ # we select a random one here
+ holes = ["s_grand_hole", "s_prix_hole", "s_podium_hole"]
+ self.assertModeNotRunning("red_flag")
+ self.hit_and_release_switch(random.choice(holes))
+
+ # The red flag mode is started
+ self.advance_time_and_run(1)
+ self.assertModeRunning("red_flag")
+ self.assertEqual(True,
+ self.machine.multiballs["red_flag"].enabled)
diff --git a/web/app.py b/web/app.py
index aa58986..8024b09 100644
--- a/web/app.py
+++ b/web/app.py
@@ -10,6 +10,7 @@
''
app = Flask(__name__)