Document v0.4.0 expansion
This commit is contained in:
1 parent
74edcf5491
commit
3e603c349d
7 files changed
+79
-42
No files matched your search
+2
-2
@@ -12,7 +12,7 @@ MeatSlicer is an endless top-down arena roguelite. You are the Butcher, descendi
|
||||
| [Weapons](weapons.md) | All 16 weapons with exact stats, drop tiers, and damage math |
|
||||
| [Items](items.md) | All 46 passive items, stacking/tier rules, proc numbers, synergies |
|
||||
| [Perks](perks.md) | All 23 Mutation Draft perks, XP curve, draft mechanics |
|
||||
| [Enemies](enemies.md) | All 6 enemy types, elites, drops, wave and scaling formulas |
|
||||
| [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 |
|
||||
|
||||
### Quick numbers
|
||||
@@ -20,7 +20,7 @@ MeatSlicer is an endless top-down arena roguelite. You are the Butcher, descendi
|
||||
- **16 weapons** (1 infinite-ammo sidearm + 15 special weapons across 4 tiers)
|
||||
- **46 passive items** (stacking, tier cap IX)
|
||||
- **23 perks** (draft 1 of 3 per level-up)
|
||||
- **6 enemy types** (+ elite variants)
|
||||
- **11 enemy types** (+ elite variants)
|
||||
- **9 bosses** (fixed rotation, one per floor)
|
||||
- **∞ floors** (permadeath, endless descent, high-score chase)
|
||||
|
||||
|
||||
+27
-9
@@ -1,6 +1,6 @@
|
||||
# Enemies
|
||||
|
||||
All **6 enemy types** in MeatSlicer, plus elites, drops, and the exact difficulty-scaling formulas. Pulled from `js/enemies.js` and `js/rooms.js`.
|
||||
All **11 enemy types** in MeatSlicer, plus elites, drops, and the exact difficulty-scaling formulas. Pulled from `js/enemies.js` and `js/rooms.js`.
|
||||
|
||||
---
|
||||
|
||||
@@ -88,22 +88,40 @@ Suicide bomber. Charges at you; within 56 px its **0.5 s fuse** lights (it flash
|
||||
|
||||
## Spawn weights
|
||||
|
||||
| Enemy | Floor 1 | Floor 2 | Floor 3+ |
|
||||
|---|---|---|---|
|
||||
| Shambler | 40 | 40 | 40 |
|
||||
| Runner | 25 | 25 | 25 |
|
||||
| Spitter | — | 18 | 18 |
|
||||
| Splitter | — | 16 | 16 |
|
||||
| Exploder | — | — | 14 |
|
||||
| Enemy | First floor | Weight |
|
||||
|---|---:|---:|
|
||||
| Shambler | 1 | 30 |
|
||||
| Runner | 1 | 22 |
|
||||
| Spitter | 2 | 14 |
|
||||
| Splitter | 2 | 12 |
|
||||
| Exploder | 3 | 10 |
|
||||
| Censer | 4 | 8 |
|
||||
| Bulwark | 5 | 8 |
|
||||
| Flenserling | 5 | 7 |
|
||||
| Choirmaster | 6 | 6 |
|
||||
| Brood Sac | 7 | 6 |
|
||||
|
||||
Weights stay flat once unlocked; floors get harder through stat scaling and wave size, not new mixes.
|
||||
|
||||
## New enemy types
|
||||
|
||||
**Censer** — 34 HP, speed 45, damage 1, radius 19, XP 3; floor 4, weight 8. A zone caster that every ~3.3s predicts player movement and telegraphs a hostile acid pool (radius 38, 0.75s warning, ~4.2s life). Excluded from wave picks when the arena's minimum dimension is below 300px.
|
||||
|
||||
**Bulwark** — 60 HP, speed 38, damage 2, radius 23, XP 3; floor 5, weight 8. Slowly faces the player; hits within ±70° of its front deal 20%, flank/rear hits full. Resists on-hit stun and cannot be elite.
|
||||
|
||||
**Flenserling** — 22 HP, speed 150, damage 2, radius 16, XP 3; floor 5, weight 7. Periodically phases untargetable, appears behind the aim vector, and lunges.
|
||||
|
||||
**Choirmaster** — 40 HP, speed 50, damage 1, radius 19, XP 4; floor 6, weight 6. Its 180px aura grants +35% speed and heals nearby non-boss monsters ~1.8% max HP per second (minimum 0.5). At most one is selected by a normal wave.
|
||||
|
||||
**Brood Sac** — 45 HP, speed 20, damage 1, radius 22, XP 4; floor 7, weight 6. Spawns 2 Minis every 4s and 4 on death. At most two are wave-selected; the brood population cap is 40. Cannot be elite and is excluded from thin halls.
|
||||
|
||||
## Elites
|
||||
|
||||
Any wave-spawned enemy can roll as an **elite** (gold ring, HP bar pip):
|
||||
|
||||
- Chance: `min(0.03 + floor × 0.02, 0.20)` — 5% on floor 1, capping at 20% from floor 9.
|
||||
- **HP ×2.6**, speed ×0.9, contact damage **+1**, radius ×1.45, XP ×3.
|
||||
- Bulwark and Brood Sac are excluded from elite rolls.
|
||||
- Drops: 3× XP plus 3–5 bonus gems, **18% + luck×10% chance of an item pedestal drop**, otherwise 60% + luck×20% chance of ammo.
|
||||
|
||||
## Drops
|
||||
@@ -135,7 +153,7 @@ base speed × (1 + 0.04 × (floor − 1) + 0.01 × power) × (elite ? 0.9 : 1)
|
||||
|
||||
**Contact damage:** flat per type (elites +1) — it **never scales with floor**. What kills you late-game is volume, speed, and HP pools, not bigger hit numbers.
|
||||
|
||||
**Pressure** (see [gameplay.md](gameplay.md#pressure-dynamic-difficulty)) ranges 0.75–1.60 and multiplies both HP and speed. Playing flawlessly pushes it up; getting hit pulls it down. The title-screen **Pressure Dial** (−5…+5) tunes how fast it rises per clean room and how much relief each hit grants — and every point of score is multiplied by the live pressure value.
|
||||
**Pressure** (see [gameplay.md](gameplay.md#pressure-dynamic-difficulty)) ranges 0.60–2.00 and multiplies both HP and speed. Playing flawlessly pushes it up; getting hit pulls it down. The title-screen **Pressure Dial** (−10…+10) tunes how fast it rises per clean room and how much relief each hit grants — and every point of score is multiplied by the live pressure value.
|
||||
|
||||
### Wave spawn telegraph
|
||||
|
||||
|
||||
+26
-7
@@ -76,7 +76,7 @@ Your best score is saved in `localStorage` as `meatslicer_best` and shown on the
|
||||
| **[ / ]** or **Left / Right arrows** | Previous / next music track |
|
||||
| **Click arrows** | Cycle music tracks |
|
||||
| **Drag sliders** | SFX / Music / HUD opacity bars are click-and-drag |
|
||||
| **H / [?] button** | Open the Field Manual (8 pages: controls, loop, arsenal, mutations, implants I, implants II, bestiary, pressure) |
|
||||
| **H / [?] button** | Open the 12-page Field Manual |
|
||||
|
||||
### Menus
|
||||
|
||||
@@ -84,6 +84,10 @@ Your best score is saved in `localStorage` as `meatslicer_best` and shown on the
|
||||
|---|---|
|
||||
| **Enter / Space / Click** | Start run (title), restart after death |
|
||||
|
||||
The title screen has **[X] Exit to Desktop**. Pause has **[Q] Main Menu** and **[X] Exit**.
|
||||
The first matching press arms a 3-second confirmation; press it again to confirm. `P` or
|
||||
`Escape` resumes. Electron quits directly; the browser fallback asks you to close the tab.
|
||||
|
||||
Right-click is disabled (context menu suppressed). There is **no dash, no interact key** — pickups are collected by walking over them.
|
||||
|
||||
---
|
||||
@@ -140,6 +144,12 @@ Right-click is disabled (context menu suppressed). There is **no dash, no intera
|
||||
|
||||
Doors in combat and boss rooms **lock** until the room is cleared. Re-entering an uncleared room restarts its remaining waves.
|
||||
|
||||
The canvas is fixed at **960 × 640**. Playable bounds are inset into five room shapes: full
|
||||
hall, wide horizontal hall (224px playable height), tall vertical hall (224px playable width),
|
||||
compact chamber, and inset pit. Start and boss rooms force full halls; item rooms force
|
||||
chambers; combat rooms mix the shapes. There is no camera or larger-than-screen room. Visual
|
||||
tiles recombine into four themes: **abattoir**, **plant**, **oxide**, and **flesh**.
|
||||
|
||||
### Waves per combat room
|
||||
|
||||
```
|
||||
@@ -211,7 +221,7 @@ Clearing a combat room drops:
|
||||
|
||||
The **PRESSURE** meter on the HUD is a run-long adaptive difficulty multiplier applied to enemy and boss **HP and speed at spawn time**. It also **multiplies every point of score you earn** — the higher the pressure, the more each kill, room, and floor is worth.
|
||||
|
||||
- Range: **0.75 – 1.60** (starts at 1.00).
|
||||
- Range: **0.60 – 2.00** (starts at 1.00).
|
||||
- Gains for rooms cleared **without taking damage** (flawless streak).
|
||||
- Taking damage **relieves** pressure, scaled by how big the hit was, how low your HP is, and how many recent hits you've taken.
|
||||
- Decays passively while below 35% HP, or if you stall in a room for 90+ seconds.
|
||||
@@ -219,15 +229,17 @@ The **PRESSURE** meter on the HUD is a run-long adaptive difficulty multiplier a
|
||||
|
||||
### The Pressure Dial
|
||||
|
||||
The title screen has a **PRESSURE DIAL** (−5 … +5) that tunes how pressure responds. It sets two curves — how fast pressure **rises** per clean room, and how much **relief** each hit grants (which also scales the passive decay). The midpoint (0) is the standard tuning; the dial persists between sessions.
|
||||
The title screen has a **PRESSURE DIAL** (−10 … +10) that tunes how pressure responds. It sets two curves — how fast pressure **rises** per clean room, and how much **relief** each hit grants (which also scales the passive decay). The midpoint (0) is the standard tuning; the dial persists between sessions.
|
||||
|
||||
| Dial | Rise / clean room | Relief on hit (base) | Behaviour |
|
||||
|---|---|---|---|
|
||||
| **−5** | 0 | 0.050 (max) | Mercy — pressure can only ever fall; score capped at 1.00× |
|
||||
| **−10** | −0.020 | 0.080 | Strong mercy; negative rise respects the 0.60 floor |
|
||||
| **−5** | 0 | 0.050 | Mercy — pressure does not rise from clean rooms |
|
||||
| **0** | +0.010 | 0.030 | Standard — today's balance |
|
||||
| **+5** | +0.050 | 0 (none) | Ratchet — pressure can only ever rise; score floored at 1.00× |
|
||||
| **+10** | +0.100 | 0 | Maximum ratchet; pressure respects the 2.00 ceiling |
|
||||
|
||||
Values between the ends interpolate linearly (rise: 0→1→5 units; relief: 5→3→0 units, 1 unit = 0.01). At −5 pressure never rises so your score multiplier stays ≤ 1.00×; at +5 it never falls, so pressure climbs to the 1.60× cap and your score climbs with it. **Cranking the dial up is how you chase the BEST CUT.**
|
||||
Values between the anchors interpolate linearly. Negative rise respects the 0.60 floor and positive rise respects the 2.00 ceiling. **Cranking the dial up is how you chase the BEST CUT.**
|
||||
|
||||
### Streak
|
||||
|
||||
@@ -263,7 +275,7 @@ Full formulas are in [enemies.md](enemies.md) and [bosses.md](bosses.md).
|
||||
|
||||
| Screen | What it offers |
|
||||
|---|---|
|
||||
| **Title** | INITIATE DESCENT, PRESSURE DIAL (−5…+5), control reference, best score |
|
||||
| **Title** | INITIATE DESCENT, PRESSURE DIAL (−10…+10), control reference, best score, confirmed desktop exit |
|
||||
| **Pause** | Jukebox (track cycling), SFX/music volume + HUD opacity sliders, resume/swap/auto/mute hints, Field Manual (`H` / `?` button) |
|
||||
| **Mutation Draft** | 3 perk cards, random cut, reroll, auto-draft |
|
||||
| **Game Over ("BUTCHERED")** | Floor, kills, score, NEW BEST CUT tag, restart |
|
||||
@@ -278,7 +290,14 @@ Stored in `localStorage` between sessions:
|
||||
- `meatslicer_sfx_volume` (default 0.45)
|
||||
- `meatslicer_music_volume` (default 0.55)
|
||||
- `meatslicer_autoperk` — auto-draft toggle
|
||||
- `meatslicer_pressure_dial` — Pressure Dial setting (−5…+5, default 0)
|
||||
- `meatslicer_pressure_dial` — Pressure Dial setting (−10…+10, default 0)
|
||||
- `meatslicer_hud_alpha` — HUD opacity (default 1.0)
|
||||
|
||||
Nothing else carries over: no unlocks, no meta-currency, no saved runs. Every descent starts fresh with a Bone Popper and 6 HP.
|
||||
|
||||
### Death and restart
|
||||
|
||||
When HP reaches zero, simulation freezes. Input is locked for 3 seconds, then **R**, **Enter**,
|
||||
or a click restarts the run. During the lock the player plays a derived gore animation with
|
||||
particles. Normal damaged monsters show mini HP pips for 2.5 seconds; elite and boss bars stay
|
||||
persistent.
|
||||
Reference in new issue
Block a user