Commit Graph

5 Commits

Author SHA1 Message Date
Brian Fertig ecfdf4c59b feat(superkart): add missed-checkpoint correction for shortcut detection
Detect when a player shortcuts across geometry and skips checkpoint gates
by monitoring the spline projection delta. When the player jumps past
the configured skip threshold, they are teleported back to the last
legitimate checkpoint, shown a blinking "CHECKPOINT MISSED" banner,
and given a brief invulnerability window.

- Add checkpointMissSkip and checkpointMissMs config values
- Implement delta-based gate-skipping detection in kart logic
- Add HUD banner and sound feedback for missed checkpoints
- Make player sprite blink during the correction window
- Add verification tests for detection, correction, and clean-race false positives
- Make Tetris Attack portrait frame half-transparent
2026-07-22 13:00:12 -06:00
Brian Fertig 54a9614464 feat: add Super Kart themes, profile import/export, and Civilization spaceship notifications
- Super Kart: populate missing theme image paths, increase acceleration spread,
  and add a track loading panel to the editor
- Civilization: display completion notifications for spaceship parts with
  direct navigation to the building city
- Profile: implement export/import via .fcg files with validation, download,
  and restore flows
- UI: add multi-button modal support, improve ProfileScene layout with avatar
  masking and info card, and rename Arcade category to "Video Games"
2026-07-18 12:28:22 -06:00
Brian Fertig 65cc0a2c79 feat(superkart): add beach theme and AI rubber-banding
- Add beach theme artwork and register paths in artwork JSON
- Implement AI rubber-banding that scales AI top speed based on gap to player
- Configure engine classes with varying rubber-band strength (Cruiser most forgiving, Turbo least)
- Balance racer stats: boost Kona top speed, reduce heavy racer accel/handling
- Update verification script to validate new rubber-banding configuration
2026-07-17 23:45:46 -06:00
Brian Fertig a0316bf467 feat: add mini-turbo boost mechanic to drifting
- Track drift charge duration while sliding and payout a speed boost
  when the drift is released cleanly (not stalled or reversed)
- Boost strength scales with drift duration, capped at maximum charge
- Added configurable mini-turbo parameters (min/max ms, boost ms,
  boost multiplier range) to superkart-rules.json
- Increase drift visual rotation angle from 6° to 14° for more
  pronounced drift feedback
- Reset charge on respawn, spin, and new drift start
2026-07-17 22:04:43 -06:00
Brian Fertig 5380a8eab4 feat: add Super Kart — SNES-style Mode 7 kart racing game
Complete kart racing game featuring 12 procedurally generated tracks
across 3 cups, 9 unique racers with distinct stats, headless physics
simulation, and a secret track editor (?superkart-editor=1).

Core features:
- Mode 7 ground renderer with parallax horizon backdrops
- 12 hand-tuned tracks (speedway, beach, swamp, scrapyard, volcano, nightcity)
- 9-racer roster with balanced archetypes (all-rounder, drift pirate, etc.)
- Headless race simulation for deterministic AI and headless verification
- Item system (bolt, seeker, oil, turbo, overdrive, emp, coins)
- Position-weighted item roulette and rubber-banding
- AI opponents with skill-based driving and stuck-recovery
- Full track editor with live preview, validation, and export
- 275 verification checks covering schema, physics, AI soak, and determinism

Data files: data/superkart-racers.json, superkart-rules.json, superkart-artwork.json
Game data: assets/gamedata/superkart/ (cups.json + 12 track files)
Tools: genSuperKartTracks.js, verifySuperKart.js
2026-07-17 14:25:18 -06:00