Combo Shots

recipe combo scoring

Combo Shots

A combo is several shots made in order within a time window — an orbit threaded entry-to-exit, a left-right-left ramp chain. Cade detects the sequence for you with a signal block, so you don’t track flags and timers by hand.

Detecting the sequence

A signal "shot" block lists the switches that make up the shot and the window to complete it. It emits shot.<name>.complete automatically when the player gets through them in time:

signal "shot" "orbit_combo" {
  switches    = [orbit_entry, orbit_middle, orbit_exit]
  time_window = "2s"
  # Emits "shot.orbit_combo.complete" on completion
}

Scoring the combo

React to the completion event like any other event — award the combo value and track how many the player has made:

event_handler "orbit_combo_scored" {
  when = shot.orbit_combo.complete
  actions {
    points    = 1000
    increment = "orbit_combos"
    emit      = combo_made
  }
}

Credit for each shot

If you also want each individual switch to score as the player works through the shot, add a base rule on the switches — it runs in parallel with the combo detection:

score "hardware" "orbit_switches" {
  tags       = ["orbit"]
  transition = "active"
  points     = 10
}

How it works

Signals are the pattern-detection layer that sits between raw hardware and your scoring rules. For ordered vs unordered sequences, reversible shots, and the difference between signals and event handlers, see Signals vs Event Handlers.