Commit Graph
60 Commits
Author SHA1 Message Date
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
MeatSlicer Developer 4dad22d087 Ammo economy: 25% less ammo per box, 25% fewer ammo drops
- AMMO_REFILL_SCALE 0.75 on ammoRefillFraction (smaller refills)
- AMMO_DROP_SCALE 0.75 on all three ammo spawn sites (room clear, elite,
  normal kill); help/gameplay drop-rate text updated; cache v=41
2026-07-30 17:18:11 +10:00
MeatSlicer Developer 0ec12cd72c Phase 5: active items — room-clear charged, dedicated pedestals, Space to use
- ACTIVES table with 10 actives (Bone Nova, Offal Bomb, Blood Transfusion,
  Cleaver Storm, Butcher's Bell, Marrow Draught, Slaughter Time, Panic Room,
  Skinner's Coin, Gut Reroll); charges accrue +1/combat room, +2/boss
- Dedicated 'active' pickup with weapon-style swap-drop; 30% boss / 15% item-room
  bonus pedestal spawns; flat +2 powerScore while held
- HUD active slot with charge pips + READY state; ACTIVES help page (12 pages);
  teal medallion frame variant in draw_sprites.py; 10 generated icons
- Procedural Sfx.active()/activeEmpty() (real clips deferred to audio batch)
- Fix: toast panel width now fits the wider of title/subtitle and clamps to screen
- Bump asset cache to v=40
2026-07-30 17:14:25 +10:00
MeatSlicer Developer f71d202850 Rebalance weapon tiers via quantitative DPS/range/accuracy/pool scoring
tools/score_weapons.js ranks the arsenal with a behavior-aware model:
effective DPS (bounce/boomerang/AoE/DoT multipliers), real engagement range,
spread-based accuracy, and damage pool per ammo load. Tier moves:
- Cleaver Cadence 0->1 (440px range + return re-hit outguns the starters)
- Bile Blunderbuss 1->2 (134 effDPS + slow + pools is secretly a heavy)
- The Cauterizer 2->3 (252 effDPS, highest sustained DPS in the game)
- The Tenderizer 2->3 (134 effDPS AoE, outscores Spinal Tap)

Tiers now: T0 repeater/marrow, T1 cleaver/saw/hemophage/eye,
T2 bile/guthook/fleshmasher/trapqueen/redhand, T3 cauterizer/tenderizer/
spinaltap/swarmjar. Smoke test pins the 2/4/5/4 distribution.
2026-07-30 16:35:21 +10:00
MeatSlicer Developer d5b1828df4 Fix help manual layout: shrink tabs to fit panel, space implant rows
- 10+ tabs at fixed 108px overflowed the 920px panel; tabs now shrink to fit
- Implant rows grew a rarity/cap sub-line but kept 20px spacing; now 26px
  with 10 rows per column (20 items/page, 5 pages for 82 items)
- Bump asset cache to v=39; smoke test asserts tabs stay on-screen
2026-07-30 16:17:20 +10:00
MeatSlicer Developer f9552326c2 Phase 4: 10 boss-exclusive legendaries + ammo/HP balance fixes
Legendaries (cap 1, boss-only): Butcher's Oath, Second Skin, Twin Sidearm,
Crimson Metronome, Abattoir Engine, Gore Crown, Thousand Teeth, Hollow Father,
The Last Cut, Meat Grinder. Once-per-floor flags reset in nextFloor.

Balance fixes: Ghoul Heart now +4 HP (2 full hearts); Brass Magazine ammo
efficiency uses the same diminishing additive formula as Scrap Feed.
2026-07-30 16:06:20 +10:00
MeatSlicer Developer a93802ebd9 Phase 3: 12 hook passives with conditional damage, auras, and kill/room effects
- dmgLiveMul live damage channel wired into fireWeapon, sawTick, fireBeam, orbitals
- Dead Weight (execute), Cauterized Veins (burn bonus), Pain Engine, Iron Lung,
  Slaughter Rhythm, Hollow Choir, Sawbone Coil, Glutton's Gut, Thresher Plate,
  Blood Moat, Meat Hook, Blood Debt
- Iron Lung re-armed per room in enterRoom; Slaughter Rhythm stamps kills
- Targeted smoke tests for the five stat-conditional effects; icons + docs
2026-07-30 15:44:31 +10:00