Skip to content

Multi-state trigger profiles: analog stick wheel, sentence rules, position/sector sync#26

Merged
LordVicky merged 21 commits into
devfrom
Multi-State-Trigger-Profiles
Jul 16, 2026
Merged

Multi-state trigger profiles: analog stick wheel, sentence rules, position/sector sync#26
LordVicky merged 21 commits into
devfrom
Multi-State-Trigger-Profiles

Conversation

@LordVicky

Copy link
Copy Markdown
Owner

Extends multi-state trigger profiles with analog weapon-wheel tracking and a rebuilt switching editor.

Stick wheel

  • switching.stickWheel schema: wheel button, threshold, rotation offset, 2–12 sectors, optional per-sector widths (sectorSpansDeg, unequal game wheels)
  • Left-stick decoding in the evdev reader (lx/ly) and a wheel gesture in the switcher: hold the wheel button, point, release to commit — mirrors the in-game wheel so tracking follows the game
  • Radial SVG configurator with live stick preview (30 Hz stickSample IPC), per-sector width slider, threshold drawn as dead zone, rotation slider, glow selection, labels that fit their sector

Switching editor

  • Switch rules are now sentences with press-to-capture chips: click the chip, press the real controller button; a held second button becomes the chord automatically
  • Live state chips moved from the engine status header into the Now Playing hero
  • Menu-guard controls restyled to match the rest of the editor

Position/sector invariant

  • State position and wheel sector stay matched bidirectionally with swap-based conflict resolution; clicking a wheel sector focuses that state in the editor
  • Redundant "Wheel slot" control removed — Position + the radial wheel cover it

Testing

  • 680 companion tests green (schema validation, sector math, gesture lifecycle, reader decoding, engine samples); typecheck clean; hardware-validated against MOUSE: P.I. For Hire with a 12-slot wheel profile

Design spec: docs/superpowers/specs/2026-07-16-stick-wheel-state-selection-design.md

claude and others added 21 commits July 16, 2026 03:56
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017N92BmQvFrnpfRwepiUcVH
Profiles may now declare named states (each a full per-trigger effect
set) plus switching rules that map controller button presses to state
changes, with a menu guard and manual selection as the drift correction
path. The evdev reader learns create/options/ps and the d-pad hat axes
so rules can bind to them. EngineStatus carries the active state name
and a new bridge:selectTriggerProfileState IPC selects states from the
renderer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017N92BmQvFrnpfRwepiUcVH
The editor gains a states strip (add/rename/duplicate/remove, per-state
effect editing with live preview), a State Switching group for rules,
menu guard, and default state, and the page heading shows clickable
state chips for the active profile as the manual re-sync path. The
README's 'one feel per game' limitation is rewritten to describe
inferred state switching honestly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017N92BmQvFrnpfRwepiUcVH
The session's GitHub access cannot push to the wiki repo (403), so the
page lives here ready to publish to the wiki.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017N92BmQvFrnpfRwepiUcVH
@LordVicky
LordVicky merged commit 31a73ae into dev Jul 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants