jwinterm
a62eefb47b
fix: resolve security/correctness review + AAA graphics pass
...
Backend (Tier 0/1/3): single-payout double-pay -> needs_review; admin-retry tx_hash guard; UNIQUE index on games.payment_id (migration 023) + atomic claim; reconnect no longer resets block-timeout; completeGame keys on user_id+dungeon_seed (not socket_id); token-gated /api/user/:socketId/* endpoints; payout min/max enforcement; orphaned-active-game boot recovery; sessionManager cleanup FK fix; XFF rightmost-hop; global uncaughtException/unhandledRejection guard; server binds 127.0.0.1; provably-fair client-seed (HMAC) + RNG [0,1) bound; difficulty preset ranges reach the digger; chat no longer leaks full socket.id; removed dangerous-keyword SQL theater.
Match mode (Tier 2, still MATCH_ENABLED-gated): fixed match_queue/match_move crash paths + scheduler dead-code + leaked ceiling timer; pot collected before start with abort+refund; BigInt/basis-point fee math, capped payout; no-address winner claimable; winnerId==placement[0]; finalize schema + payout-first isolation; reconnect re-key with ownership; refunds on all cancel paths; real countdown; map/timer cleanup. +16 tests.
Graphics: new overlay FX layer (torch light, vignette, embers, sparkle/burst/flash/shake, self-suspending rAF); gameplay juice; atmospheric screens; CSS design-token chrome with framed modals; richer Kenney tile renderer; imported Kenney dungeon/interior sheets + fx particles.
Verification: 45 suites / 312 tests pass; 40 changed JS files parse; 20 server modules load clean; no regressions.
2026-07-09 17:46:58 -04:00
jwinterm
8fa8b06b20
feat: lively tavern (NPCs + speech bubbles), spectator camera, dungeon render adapter
...
- tavernLife.js: client-side NPCs (bartender, patrons, cat) with autonomous
movement, random speech bubbles, and real-player chat bubbles
- T2b: spectator camera — watch live dungeon runs from inside the tavern
(game list, spectate_start/update, ESC to leave)
- R1: sceneFromGameState adapter — converts dungeon game state to render-kit
Scene with lighting grid and entity mapping
- R2: pre-populated Kenney roguelikeSheet tile defaults for the tiled renderer
- Dungeon renderer support: TileRenderer + AsciiRenderer handle lightGrid,
dungeon features/items/monster entities
- 3 new tests (242 total, 36 suites, all passing)
2026-07-09 06:31:35 -04:00
jwinterm
4ee03f24a6
fix: char customizer flakiness + wire real render-mode entitlement gating
...
- Equipment option tiles register for async redraw (were stuck on '...')
- Render mode switching no longer silently mutates avatar identity
- Dungeon renderer falls back to @ tile when overlay draw fails
- Main-game customizer locked to topdown (no confusing render-mode picker)
- equipRedrawers prevents unbounded redraw array growth
- RENDER_MODE_TEST_UNLOCKS flipped to false; ASCII made free (accessible fallback)
- Documented COSMETIC_PRODUCTS in .env.example
- 5 new tests (239 total, 36 suites, all passing)
2026-07-09 06:15:00 -04:00
jwinterm
fa18e99a94
correct iso avatar customization
2026-07-06 07:26:12 -04:00
jwinterm
49ea01606e
fix designed-room iso character rendering
2026-07-06 07:04:26 -04:00
jwinterm
f505a4fb8a
make character customization projection aware
2026-07-06 06:38:19 -04:00
jwinterm
c89c01e5f1
improve gear tinting and unlock render tests
2026-07-06 04:38:28 -04:00
jwinterm
83020f6c08
polish character customizer render choices
2026-07-06 04:26:00 -04:00
jwinterm
1ca18dfdbc
fix: render visible animated 3d tavern avatars
2026-07-06 04:11:43 -04:00
jwinterm
cb9efbe66c
refactor: route render packs through avatar visuals
2026-07-06 03:53:13 -04:00
jwinterm
3195386ba1
refactor: resolve avatar visuals through render kit
2026-07-06 03:41:11 -04:00
jwinterm
07cfe80591
feat: improve character customization colors
2026-07-05 21:09:52 -04:00
jwinterm
454e6ab69a
feat: add tavern render kit and character entitlements
2026-07-05 20:57:46 -04:00