release: bump to 0.9.0; docs for dash, hearts, pressure refills; drop retired dev-guide index row

This commit is contained in:
Quintine committed 2026-08-12 18:05:20 +10:00
1 parent ce73aab116
commit 6cc8132046
4 files changed
+27 -8

No files matched your search

+21 -1
View File
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
---
## [0.9.0] — 2026-08-12
### Added
- **Dash (Shift)** — a burst movement in the movement direction, instant displacement D = 0.45 × v × 0.6 then 0.6 s of 50% slow after (net 95% of walking distance); no dash while slowed (DASH_SLOW_T doubles as cooldown)
- **Decode-ahead asset cache** — sprites are fully decoded into memory during the title screen via `img.decode()`, eliminating first-draw jitter on weak systems
### Changed
- **Ammo pressure scaling** — generic ammo refills now scale with the live pressure dial at 80% of the HP multiplier (`ammoPressureMul() = 1 + (G.pressure − 1) × 0.8` in `js/state.js`)
- **Chroma-key pipeline reworked** — `flood_key_magenta` in `tools/gen_assets.py` now has four stages: border flood (unchanged), strict interior-pocket key (r>200, g<80, b>200), 3-pass is_magenta fringe erosion, and despill (excess=min(r,b)−g, cut round(excess×0.6) when >50); both SD and HD tiers regenerated with no magenta pockets
- **Muzzle alignment** — flame origin shifted right-hand 26px before `spawnMuzzleFx` so pellets and FX share one origin (cone/bile unchanged); beam starts at the muzzle (x0,y0) instead of the pivot; saw rendered flash suppressed (blade sparks are the effect); applied across all 16 weapons
### Fixed
- **Debug ammo on a holstered spent weapon** — `debugRefillAmmo()` and INF AMMO upkeep now top up both `p.weapon` and `p.holstered`; the live ammo row edits the finite slot when the active weapon has infinite ammo
- **Hearts at full HP** — hearts stay on the floor instead of converting to score; the magnet won't drag them
### Removed
- **Retired development-guide row from the docs index** — the `| Development Guide |` table row in `docs/README.md` is removed (the guide was retired in 0.7.0)
---
## [0.8.0] — 2026-08-12
### Added
@@ -201,4 +221,4 @@ The initial series of commits that built the game from scratch. Grouped by featu
---
*Generated from the git log. Last commit: v0.8.0*
*Generated from the git log. Last commit: v0.9.0*
-1
View File
@@ -15,7 +15,6 @@ MeatSlicer is an endless top-down arena roguelite. You are the Butcher, descendi
| [Enemies](enemies.md) | All 11 enemy types, elites, drops, wave and scaling formulas |
| [Bosses](bosses.md) | All 9 bosses: rotation, scaling, full attack patterns, counters |
| [Debug Console](dev-debug.md) | In-game cheat/inspection toolset (backtick `` ` `` key, `--dev` flag): all 8 tabs, run tainting, stat-rebuild internals |
| Development Guide | Architecture, build/test workflow, Electron packaging, asset and audio pipelines, versioning, releases, and Git practices — maintained in Serena memory (`.serena/memories/meatslicer-development.md`), not this repo |
| [Changelog](CHANGELOG.md) | Release history by version |
### Quick numbers
+5 -5
View File
@@ -32,7 +32,6 @@ Score is display-only (it buys nothing) and determines your saved best:
| Combat room cleared | +50 |
| Descending to next floor | +250 |
| XP gained | +1 per XP (rounded) |
| Heart picked up at full HP | +25 |
| Ammo picked up with nothing to refill | +15 (+2 per wasted unit otherwise) |
| Duplicate item at tier cap (IX) | +150 |
@@ -55,6 +54,7 @@ Your best score is saved in `localStorage` as `meatslicer_best` and shown on the
| **T** | Toggle Auto-Draft (auto-pick random perk on level-up) |
| **M** | Mute / unmute |
| **N** | Next music track |
| **Shift** | Dash in the movement direction; 0.6s of 50% slow after (net 95% of walking distance) |
### Perk draft screen (level-up)
@@ -89,7 +89,7 @@ The desktop app title screen has **[X] Exit to Desktop**. Pause has **[Q] Main M
The first matching press arms a 3-second confirmation; press it again to confirm. `P` or
`Escape` resumes. In a web browser, desktop-exit controls are greyed out and non-interactive.
Right-click is disabled (context menu suppressed). There is **no dash, no interact key** — pickups are collected by walking over them.
Right-click is disabled (context menu suppressed). There is **no interact key** — pickups are collected by walking over them.
---
@@ -119,7 +119,7 @@ Right-click is disabled (context menu suppressed). There is **no dash, no intera
### Healing
- Hearts restore 2 HP (1 heart) each.
- Healing past max HP normally goes to waste (converted to +25 score for heart pickups) — unless you have the **Second Stomach** item, which converts overflow healing into shield HP.
- Healing past max HP normally goes to waste — unless you have the **Second Stomach** item, which converts overflow healing into shield HP. Hearts are not consumed at full HP (they stay on the floor for later, and the magnet won't drag them).
- Other healing sources: Vampire Dentures (kill procs), Hemophage (hit procs), Worm Gut / Bone Knit (post-combat heals).
---
@@ -185,8 +185,8 @@ Clearing a combat room drops:
| Pickup | Effect |
|---|---|
| **XP Gem** (small, value 1 / big, value 5) | Grants XP × your `xpMul`. Fills the level bar; each level-up opens the Mutation Draft. |
| **Heart** | Heals 2 HP. At full HP: +25 score instead. |
| **Ammo** | Refills carried special weapons (current + holstered) by their authored `refill` × `ammoPickupMul`, up to 150% of magazine size. Overflow becomes score. |
| **Heart** | Heals 2 HP. At full HP: stays on the floor for later (the magnet won't drag it). |
| **Ammo** | Refills carried special weapons (current + holstered) by their authored `refill` × `ammoPickupMul` × `ammoPressureMul()` (pressure scaling at 80% of the HP multiplier), up to 150% of magazine size. Overflow becomes score. |
| **Weapon** | Equips on walk-over. Your old special weapon drops with its remaining ammo (Bone Popper is never dropped). |
| **Item** (on pedestal) | Grants/upgrades a passive item. Hovering near a pedestal shows its name. |
| **Stairs Down** | Appears after every boss kill. Walk over to descend. |
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "meatslicer",
"productName": "MeatSlicer",
"version": "0.8.0",
"version": "0.9.0",
"private": true,
"description": "A Butcher's Descent - clear, harvest, descend.",
"main": "desktop/main.js",