I'm really looking for a sanity check on how I'm implementing this sequence, but I can share some setup.
This is how the saucer that is meant to start and end the sequence is defined as a ball device --
bd_escape_saucer:
ball_switches: s_saucer_treasure_chamber
eject_coil: c_saucer_trasure_chamber
eject_events: zzz_none, chase_multiball_qualified
# eject_timeouts: 500ms, 1s, 2s, 4s
auto_fire_on_unexpected_ball: false
debug: true
* I have tried this both with eject_timeouts commented and no commented, this has no effect on the behavior.
* The event "chase_multiball_qualified" is thrown at this step of the sequence --
"If the player completes the objectives and gets the ball in one of two other saucers, we add an additional ball, with new objectives. This should, in effect, start as a 3 ball multiball, with the ball in play (the second one that you just locked in a saucer) being ejected, the ball from the saucer being ejected, and one more auto launched ball from the trough."
* The event "zzz_none" is never thrown, its a place holder and will eventually be replaced with an event indicating we are ready to "* kick the ball out of the saucer returning to single ball play", the very last step in the sequence.
This is the ball hold in effect for the "We hold the ball there, launch another ball, player has some objectives" part of the sequence, which is working as expected.
ball_holds:
chase_hold:
balls_to_hold: 1
hold_devices: bd_escape_saucer
release_one_events: release_chase_hold
disable_events: multiball_chase_multiball_started
This is the ball hold in effect during the 3 ball multiball. Curiously, when looking at the device monitor, even after I see the eject ball events, this still shows its holding one ball.
ball_holds:
boar_hold:
balls_to_hold: 1
hold_devices: bd_escape_saucer
enable_events: boar_six_pack_complete
release_one_events: zzz_boar_final_display
Note that the event zzz_boar_final_display is a placeholder event (like zzz_none above) and would eventually be replaced with an event indicating we are ready to "* kick the ball out of the saucer returning to single ball play", the very last step in the sequence.
I also use a ball save device during this first phase, where the ball is locked in the saucer, and you are attempting to complete objectives with another ball I put onto the playfield --
ball_saves:
pre_chase_ballsave:
enable_events: start_chase_sequence
disable_events: release_chase_hold
only_last_ball: true
If we drain to one ball, I kill the ball save, return the held ball, and you are back to normal single ball play. I did it this way mainly because I don't want the state to carry ball to ball or have the ball locked for the next player. If you fail to start the 3 ball multiball, you should be back in single ball play, no balls held in the saucer... this is all working as expected.
Here are the multiball definitions --
multiballs:
pre_chase_multiball:
ball_count: 1
ball_count_type: add
start_events: start_chase_sequence
stop_events: end_chase_sequence
chase_multiball:
ball_count: 2
ball_count_type: add
ball_locks: bd_escape_saucer
start_events: start_chase_multiball
stop_events: ball_save_ball_save_boars_nest_timer_start
I was wondering if this might have been related to my use of bd_escape_saucer as a ball lock device, but this behavior occurs with and without its use as a ball lock device. If I don't use it as a ball lock device, I get more balls launched than I wanted.
Note that the various indent levels are not shown when I copy and paste the code here.
I am throwing the events to stop the "pre_chase_multiball" as soon as I start the "chase_multiball". I am throwing the event to stop the "chase_multiball" pretty much as soon as it launches its balls... another mode handles the rules for this sequence, which I want to continue even if the multiball portion end... this other mode also handles the multi-ball ball saver as a ball_save device rather than using the multiball's own ball save device.
I've tried this a couple of different ways (not ending the multiball, not using the ball lock, etc)., and still it seems like the "boar_hold" ball_hold just...won't...hold....
I've thought about a single multiball with an add-a-ball event... but just haven't tried that approach yet.
Anyway, I suspect these code snippets would likely lead to more questions... that's why I was looking for a sanity check on my initial scheme.
I wonder if there is a way to add a ball to the playfield without starting a multiball? Sort of like in Stern Star Trek, where a certain number of warp ramp hits can trigger "add-a-ball", whether or not you are in a multiball.... if you aren't it just throws another ball on the playfield....