Commit Graph
66 Commits
Author SHA1 Message Date
Quintine 59869945d0 docs: unify styling across guides (enemy tables, item counts, headers) 2026-08-13 13:37:02 +10:00
Quintine a2294197e4 docs: add 0.9.1 CHANGELOG entry 2026-08-13 13:27:12 +10:00
Quintine d60baa6b29 perf: cache static walls, fast-path sprite draws, cache canvas rect (0.9.1, v57) v0.9.1 2026-08-13 13:11:16 +10:00
Quintine 6cc8132046 release: bump to 0.9.0; docs for dash, hearts, pressure refills; drop retired dev-guide index row v0.9.0 2026-08-12 18:05:20 +10:00
Quintine ce73aab116 test: smoke coverage for dash, pressure refills, full-HP hearts, decode-ahead, muzzle origins, debug refill 2026-08-12 18:05:20 +10:00
Quintine 8c2141c3f1 perf: decode-ahead sprite cache; cache bust v56
Sprites.load() now awaits img.decode() before a tier image counts as
ready, so every sprite is fully decoded during the title screen and
first-draw decode jitter disappears on weak machines. Headless smoke
keeps working via the typeof-decode fallback. Asset URLs bump to v=56.
2026-08-12 18:05:11 +10:00
Quintine 4b9e4a1e97 feat: dash ability; ammo pressure scaling, full-HP hearts, muzzle alignment, holstered debug ammo
- Shift dash: 0.45*v*0.6 instant burst then 0.6s of 50% slow (net 95% of
  walking distance); slow doubles as cooldown, no dash while idle/slowed.
- Generic ammo refills scale with the live pressure dial at 80% of the HP
  multiplier via ammoPressureMul().
- Hearts at full HP stay on the floor (magnet ignores them) instead of
  converting to score.
- Muzzle audit: flame FX and pellets share one right-hand origin, Spinal
  Tap beam starts at the muzzle, saw flash suppressed (blade sparks are
  the effect).
- Debug REFILL/INF AMMO and the ammo row now cover a spent special
  holstered behind the Bone Popper.
- Sfx.duck() defaults its args; a no-arg call crashed the loop with a
  non-finite AudioParam value (found via the dash E2E).
2026-08-12 18:04:58 +10:00
Quintine 684a54f5ad feat: rework chroma keyer (interior pockets, fringe erosion, despill) and regenerate SD/HD tiers
Four-stage keyer in flood_key_magenta: unchanged border flood, strict
interior-pocket key, is_magenta fringe erosion, and despill; hd_assets
inherits it via import. New --reprocess mode re-keys assets/raw sources
without API calls (skips tiles, rebuilds sheets, never touches the
manifest). Pure-key #FF00FF pockets are gone from every HD webp.
2026-08-12 18:04:42 +10:00
Quintine 6b4e7091a9 release: bump to 0.8.0 (HD Remaster) with docs, cache bust, and smoke coverage
Cache-bust v=54 -> v=55 across index.html and sfxbank.js, bump the game
version to 0.8.0, document the HD Remaster setting in gameplay.md and the
changelog, and extend the smoke suite with 4x sheet-geometry bounds checks,
HD loader fallback URL assertions, and toggle persistence/reload checks.
v0.8.0
2026-08-12 10:11:23 +10:00
Quintine 928232ce9d chore: add HD Remaster asset tier (4x WebP from raw sources)
218 stills + 24 sheets generated by tools/hd_assets.py at quality 90,
~220MB total. Loaded only when HD Remaster is enabled; standard PNGs
remain the default and the per-sprite fallback.
2026-08-12 10:04:52 +10:00
Quintine efa4a7fb0a feat: parameterize sheet renderers for scale, add HD tier generator
draw_sprites.py renderers take scale/smooth/src_dir/out_dir keywords with
SD-identical defaults (verified pixel-for-pixel against the committed
sheets); smooth swaps NEAREST for LANCZOS/BICUBIC. tools/hd_assets.py
derives the 4x WebP tier from assets/raw sources: flood-key, crop,
margin/fit/center without palette quantization, then renders 4x sheets
through a temp PNG bridge.
2026-08-12 10:04:49 +10:00
Quintine c09a66ae9e feat: tiered sprite loader with per-sprite SD fallback
Sprites.load() serves assets/hd/<name>.webp in HD mode and falls back once
to the SD PNG per sprite; sheet frame sizes derive from sheet geometry
(width/8 for actor and legs sheets, height for the one-row death strip) so
both tiers address correctly.
2026-08-12 10:04:49 +10:00
Quintine ea354d0153 feat: HD Remaster toggle with 4x canvas render path
G.hdRemaster persisted in localStorage (meatslicer_hd_remaster), toggled
from the title screen via H key or the bottom-left tag; activation reloads
so the asset tier and canvas resolution swap at boot. draw() applies a
uniform hdScale() transform, the room-layer cache renders at render scale,
and image smoothing follows the tier.
2026-08-12 10:04:49 +10:00
Quintine 24c1958f2b chore: track unoptimized raw source art under assets/raw 2026-08-12 08:27:00 +10:00
Quintine 50826d568d docs: sync gameplay/items/perks/weapons with 0.7.0 QoL batch; release: bump to 0.7.2 2026-08-11 19:31:28 +10:00
Quintine fde2747561 docs: add 0.7.0/0.6.0 changelog entries, fix docs index, note Linux build in README v0.7.2 2026-08-11 19:20:32 +10:00
Quintine c0d909eebd release: bump game and memory versions to 0.7.0 2026-08-11 19:06:36 +10:00
Quintine 717a106119 feat: peek big-room camera toward walls, shorten perk-selection guard to 0.4s 2026-08-11 19:03:36 +10:00
Quintine b41dcd8ebb feat: QoL weapon/UI batch — door fix, Red Right Hand + flamethrower right-offset, fire slowdown, literal armor dodge, persistent pedestals, menu shot-lock 2026-08-11 18:25:34 +10:00
Quintine 1131ed1e0b Merge branch 'bigrooms' into main 2026-08-11 17:35:42 +10:00
Quintine d9a921a1ea Merge commit integrating big-rooms + linux-and-qol (keep both features) 2026-08-11 17:35:02 +10:00
Quintine 16efccd912 release: bump game and memory versions to 0.6.0 (big rooms) v0.7.0 2026-08-11 08:56:33 +10:00
Quintine 96815f6685 feat: big rooms with Isaac-style camera, extra-large and odd rooms 2026-08-11 08:56:33 +10:00
Quintine 9c6fc194ca release: bump game and memory versions to 0.6.0 (big rooms) v0.6.0 2026-08-11 08:51:48 +10:00
Quintine 063ace998f feat: big rooms with Isaac-style camera, extra-large and odd rooms 2026-08-11 08:51:43 +10:00
admin 7269ff53f0 Merge pull request #1 from Quintine/feature/memory-versioning
Feature/memory versioning
2026-08-10 21:42:56 +10:00
Quintine 5d5eb3d265 feat: room-entry reaction buffer, 1.5s perk-selection lock, nearby-item toasts, Sine Weave stagger perk 2026-08-10 18:31:36 +10:00
Quintine 97ab316304 chore: bump game and memory versions to 0.5.2 after level-up firing and weapon re-pick fixes 2026-08-09 17:05:08 +10:00
Quintine 8c2ee5b5b2 docs: stamp memory version 0.5.0 and add memory versioning policy 2026-08-09 17:02:37 +10:00
Quintine f77b4fd402 feat: crimson metronome lends ½ heart, repaid on a clean room clear 2026-08-09 14:22:26 +10:00
Quintine 0e595d8b17 Document development workflows 2026-08-09 14:16:20 +10:00
Quintine 39d89fbc53 build: add Linux AppImage target and dist:linux script 2026-08-09 13:56:43 +10:00
Quintine e801c02ef6 feat: 2.5s lockout before dropped weapons can be re-picked 2026-08-09 13:56:41 +10:00
Quintine 7aee2f5f64 fix: don't fire weapon when choosing upgrade from level-up menu 2026-08-09 13:56:38 +10:00
Quintine 5e6a7b72fb Add root README and MIT license 2026-08-09 13:37:35 +10:00
MeatSlicer Developer a7e48a0465 Document debug console in help manual and README 2026-07-31 09:30:26 +10:00
MeatSlicer Developer 3f76998fab Add hidden dev debug console (v0.5.0) 2026-07-31 08:49:39 +10:00
MeatSlicer Developer b8b5c360f2 Disable desktop exit in browsers 2026-07-30 23:48:49 +10:00
MeatSlicer Developer 92491dd06e Seal boss stairs after victory 2026-07-30 23:37:26 +10:00
MeatSlicer Developer d96d492a43 Polish pause actions and duplicate weapons 2026-07-30 22:57:36 +10:00
MeatSlicer Developer 3e603c349d Document v0.4.0 expansion 2026-07-30 22:47:39 +10:00
MeatSlicer Developer 74edcf5491 Add five pressure-monster archetypes 2026-07-30 22:44:15 +10:00
MeatSlicer Developer 61a41049f2 Expand pressure dial to twenty-one notches 2026-07-30 22:32:16 +10:00
MeatSlicer Developer 11f9341b46 Add variable room shapes and themes 2026-07-30 22:29:04 +10:00
MeatSlicer Developer 0eab705ed3 Add locked gore death and enemy health pips 2026-07-30 22:18:44 +10:00
MeatSlicer Developer 2f1769a528 Add confirmed menu and desktop exits 2026-07-30 22:11:11 +10:00
MeatSlicer Developer 2259106d6d Remove unused wpn-hemophage-2.mp3 2026-07-30 22:06:39 +10:00
MeatSlicer Developer d9eae34df4 Normalize ammo economy: per-weapon refill, stream drain, behavior fixes
- Every special weapon gets an explicit 'refill' (units per ammo pickup,
  tuned so one pickup funds ~10 kills) replacing the ammoRefillFraction
  log2 heuristic and ammoWeight overrides
- Bile Blunderbuss + The Cauterizer join Red Right Hand as time-denominated
  stream weapons ('drain' per second) instead of per-shot cost
- Sawblades ricochet through enemies (bounce fix), traps catch 3 victims,
  lobbed projectiles arc overhead and always trigger at the target point
  (Flesh Masher / Trap Queen / Swarm Jar payloads now actually deploy)
- Boss rooms stock one ammo on entry and drop one guaranteed on death
- Cauterizer burn trimmed (2.2s x2 -> 1.5s x0.8), bile acid pools trimmed
  (3.5s x1.5 -> 2.5s x0.8), Marrow Draught now covers stream drain
- New tools/ammo_sim.js calibrates every weapon into the 8-13 kills/refill
  band (all 15 pass); smoke test guards the ammo structure
- v0.3.0, cache bump v=44
2026-07-30 22:06:10 +10:00
MeatSlicer Developer 7d33e36c1e v0.2.0: item pickups hold their toast for 5.5s
Toast durations are now per-toast (addToast third arg); passive item and
active item pickups display for 5.5s instead of the default 2.5s.
Cache v=43.
2026-07-30 17:49:14 +10:00
MeatSlicer Developer 64ac53434b Doom-style weapon audio batch + remove footsteps
- Regenerated all 13 weapon fire one-shots and 4 weapon loops via the audio
  specialist (ElevenLabs) with a 1993 Doom style brief: chunky, bass-heavy,
  crunchy 90s FPS sounds
- New clips wired into SfxBank: ui_active, ui_active_empty (active items),
  ui_curse (legendary pickups, replaces the normal item jingle), plr_revive
  (Second Skin revive)
- Footstep system removed entirely (never worked right): Sfx.footstep, 8
  plr_step* samples and bank entries, player.js call site, smoke test block
- Cache v=42
2026-07-30 17:41:31 +10:00