Sequence Shots

Related Config File Sections
sequence_shots:

A sequence of switches which need to be hit in order with a timeout.

This is an example:

switches:
  s_ramp_entry:
    number: 1
  s_ramp_success:
    number: 2

sequence_shots:
     ramp:
         switch_sequence: s_ramp_entry, s_ramp_success
         sequence_timeout: 3s

This example is tested to be valid MPF config. Additionally, our integration test passed. Click to show the test and full config.
switches:
  s_ramp_entry:
    number: 1
  s_ramp_success:
    number: 2

sequence_shots:
     ramp:
         switch_sequence: s_ramp_entry, s_ramp_success
         sequence_timeout: 3s

##! test
mock_event ramp_hit
hit_and_release_switch s_ramp_entry
assert_event_not_called ramp_hit
hit_and_release_switch s_ramp_success
advance_time_and_run 1
assert_event_called ramp_hit

When both switches are hit in sequence ramp_hit ((sequence_shot)__hit) will be posted. You can use that event to trigger further logic/shows/etc.

Using Sequence Shots in Shot Groups

Sequence shots got shots in their name but they cannot be used in shot_groups. If you want to use them in a shot groups create a shot which is triggerd on the (sequence_shot)__hit event.

This is an example:

switches:
  s_ramp_entry:
    number: 1
  s_ramp_success:
    number: 2

sequence_shots:
   ramp:
      switch_sequence: s_ramp_entry, s_ramp_success
      sequence_timeout: 3s

##! mode: test_mode
# In your mode
shots:
   shot_ramp:
      hit_events: ramp_hit

shot_groups:
   your_group:
      shots: shot_ramp

This example is tested to be valid MPF config. Additionally, our integration test passed. Click to show the test and full config.
switches:
  s_ramp_entry:
    number: 1
  s_ramp_success:
    number: 2

sequence_shots:
   ramp:
      switch_sequence: s_ramp_entry, s_ramp_success
      sequence_timeout: 3s

##! mode: test_mode
# In your mode
shots:
   shot_ramp:
      hit_events: ramp_hit

shot_groups:
   your_group:
      shots: shot_ramp

##! test
start_game
start_mode test_mode
mock_event ramp_hit
mock_event shot_ramp_hit
mock_event your_group_complete
hit_and_release_switch s_ramp_entry
assert_event_not_called ramp_hit
hit_and_release_switch s_ramp_success
advance_time_and_run 1
assert_event_called ramp_hit
assert_event_called shot_ramp_hit
assert_event_called your_group_complete