Commit Graph

9 Commits

Author SHA1 Message Date
type-two
7a37348d9a Art batch 3: portraits, villains, tilesets, landing art + the 4-player cab
30 FLUX images via MODELBEAST (queue3 + text rerolls), all local/free:
class portraits x4, player variants x3, Tier-3 villains x7 (spectral conductor,
78rpm, gatekeeper, shazam zombie, scalper, warped record, fire marshal),
warehouse + festival tilesets, props, attract cards, wide key-art banner,
VINYL GAUNTLET marquee logo, and the super-rare 4-player cabinet hero shot.
klein-4b garbles text ~2/3 of the time: rerolled with 'reads exactly' prompts
(logo nailed it 3/3), composited the good marquee onto the cabinet with PIL and
pixel-verified the garbled kickplate patch. Finals in assets/promo/ (committed);
raw gen stays in assets/generated/ (gitignored, reproducible from queue JSONs).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 18:10:46 +10:00
type-two
8e967407c1 Tier 2 complete: digging, treasure rooms, the Archive, infinite mazes
- Digging: hold E (or DIG touch button) by a crate wall, 2s rooted channel, once
  per tile. Loot: 70% +200 vibe, 25% gold record, 4% grail (full vibe), 1%
  bootleg (every bin on the level erupts).
- Treasure rooms: every 3rd level, 20s bonus room strewn with gold, no enemies,
  booth exits instantly, "CLOSING TIME" when the timer dies.
- THE ARCHIVE (4th theme): FLUX-generated dark tileset, real darkness via
  RenderTexture with radial glow holes at player + lamps, dust mites spawn in
  packs of 3, Mite Queen miniboss (12 HP, broods mites every 5s, airhorn-immune,
  drops 3 gold + 1000 pts). Archive tune pool: 195 dnb/hardcore/breakbeat/
  electro 12"s (718 total tunes now).
- Infinite: levels past the 4 authored maps are deterministic seeded mazes
  (recursive backtracker + loops + rooms), difficulty scales with depth.

All verified in-browser via engine stepping.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 17:35:42 +10:00
type-two
a1f4588deb Tier 2: the Trainspotter's Notebook — real records from discogs_full
assets/extract_tunes.py pulls 523 canon tunes (repress-count ranked, club pool
12"-only) into public/tunes.json across shop/fair/club genre pools; top ~8% of
each chunk flagged grail ("CERTIFIED CLASSIC", gold flash, 2000 pts). Level
clear reveals a real record (artist — title, label, year), the announcer speaks
it, and first IDs land in a persistent localStorage notebook (+1000). Title
screen shows notebook progress. Also: overlay/sub text got backgrounds for
readability, and prompt() is guarded for webviews that lack it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 17:17:34 +10:00
type-two
d903dd57ca Tier 1: classes, themes, pirates/ghouls, score, vibe states, touch
- 4 Gauntlet classes (stat tweaks + tint) with title-screen select (keys 1-4 or tap)
- Level themes cycle shop/fair/club: per-theme tilesets (9 idle sprites wired) and
  weighted enemy spawn tables
- Record Pirate (steals pickups, flees to its bin; kill = loot back + gold bonus)
  and Crate Ghoul (3 HP tank)
- Gold records ('R' tiles + pirate drops), score (kills/gold/clears), local top-5
  high-score table with initials on the title screen
- Vibe states: peak time = faster vinyl, burning out = slower + red vignette
- "Selector shot the espresso" (vinyl destroys food) + new announcer lines
- Mobile: Scale.FIT canvas, twin-stick touch (left = move, right = fire), HORN button

All mechanics regression-tested in browser via engine stepping.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 16:58:25 +10:00
type-two
2008668cb2 DESIGN.md: depth roadmap — classes, real-record trainspotting, bosses, art plan
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 16:47:25 +10:00
type-two
a4ec2e7dd4 Deploy to partly.party/vinylgauntlet
Vite base=/vinylgauntlet/ and Phaser assets load from BASE_URL so they resolve
under the subpath. deploy.sh builds and ships dist/ into the forum-nginx
container (humanjing@100.71.119.27), same pattern as the other partly.party
games. Verified live: 200, game HTML + sprites serving, renders in-browser.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 00:08:27 +10:00
type-two
8341bed22f Sharpen sprites: TILE 32->48, higher-res textures + unsharp pass
Regenerate textures at 48px (chars/walls), 96px floor, with an UnsharpMask to
counter the LANCZOS softening. Bump TILE to 48 so the whole world scales up and
sprites render bigger/crisper; scale movement + range constants x1.5 to keep the
same tiles-per-second feel, and collision bodies to 34px. Mechanics reverified.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 23:52:08 +10:00
type-two
9a42e0eaf8 Step 7: wire FLUX sprites into the game
Chroma-key magenta -> alpha, autocrop, downscale (assets/process_sprites.py ->
public/sprites/). GameScene loads image textures instead of drawing primitives:
tiled darkened floor, crate walls, digger/poser/nerd/sound-guy/booth/pickup
sprites. Bodies sized under the 32px sprites so corridors still fit. Mechanics
verified unchanged (combat, trainspot, level flow).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 23:39:40 +10:00
type-two
0a71e07078 Vinyl Gauntlet: core game (Gauntlet II re-skin) + FLUX asset queue
Top-down arcade maze shooter in Phaser 3. Steps 1-6 of plan.md complete and
verified: vibe drain, generators/swarm, pooling, combat, Sound Guy, airhorn,
trainspot exit, level flow, announcer. assets/ holds the FLUX prompt manifest
+ MODELBEAST enqueuer for the Step 7 sprite pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 23:17:19 +10:00