feat(controllers): #60 shooter — ludic.shooter package (base + extensible)
All checks were successful
bootstrap / cfree-fixpoint (push) Successful in 21s
ci / build-and-test (push) Successful in 2m9s
commit-lint / conventional-commits (push) Successful in 4s
docs / build-and-deploy (push) Successful in 28s

Top-down shooter: TopDown decoupled move/aim (mouse/stick/move-dir/auto-aim),
a name-keyed Weapon registry (fire-rate/spread/pellets/pattern + data-driven
pierce/homing), and a self-contained deterministic Projectile pool with
faction-filtered Combat hits, pierce, ring/spiral patterns, and homing. One
weapon impl serves player + NPC via a want_fire intent. Budgeted wave Spawner.
Reuses ludic.gameplay Faction/Combat/Stats. 11-check example, in the suite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-01 17:04:49 +03:00
parent dd5cb5817b
commit 02a8bcc324
5 changed files with 705 additions and 0 deletions

View file

@ -0,0 +1,16 @@
# ludic.shooter — the builtin top-down Shooter controller (#60).
#
# A twin-stick / mouse-aim character whose movement is decoupled from aim, a
# data-driven weapon registry, and a general projectile system (pierce / bounce /
# homing / bullet-hell patterns), all conforming to the six-lever contract (#57).
# Reuses the engine Body/Collider and the ludic.gameplay Faction + Combat + Stats
# foundation: the SAME weapon/projectile systems drive a player and an NPC (the AI
# writes the "fire" intent instead of input), so there is no duplicate enemy-gun
# code. Deterministic integer/fixed maths throughout, so bullet patterns replay.
package "ludic.shooter"
version "0.1.0"
kind source
provides "TopDown"
provides "Weapon"
provides "Spawner"
require "ludic.gameplay" "0.1.0"