Files
MeatSlicer/docs/enemies.md
T

176 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Enemies
All **11 enemy types** in MeatSlicer, plus elites, drops, and the exact difficulty-scaling formulas. Pulled from `js/enemies.js` and `js/rooms.js`.
---
## Enemy roster
### Shambler
| Stat | Value |
|---|---|
| Base HP | 26 |
| Base speed | 55 |
| Contact damage | 1 |
| Hitbox radius | 18 |
| XP | 1 |
| First appears | Floor 1 (spawn weight 40) |
The basic chaser. Shuffles toward you with a sinusoidal wobble. Individually harmless, dangerous in the packed waves of later floors.
### Runner
| Stat | Value |
|---|---|
| Base HP | 12 |
| Base speed | 236 |
| Contact damage | 1 |
| Hitbox radius | 15 |
| XP | 1 |
| First appears | Floor 1 (spawn weight 25) |
Extremely fast, fragile chaser — over 4× the Shambler's speed. They arrive first and force you to keep moving.
### Spitter
| Stat | Value |
|---|---|
| Base HP | 20 |
| Base speed | 60 |
| Contact damage | 1 |
| Hitbox radius | 18 |
| XP | 2 |
| First appears | Floor 2 (spawn weight 18) |
Ranged kiter. Holds 190–250 px away from you — approaches if you're farther than 250 px, retreats if you're closer than 190 px. Fires a gore bolt (speed 220, damage 1, 3 s life) when within 420 px, every **1.9 s**. Elite Spitters fire a 3-shot fan (0.25 rad spread) every **1.1 s**.
### Splitter
| Stat | Value |
|---|---|
| Base HP | 30 |
| Base speed | 70 |
| Contact damage | 1 |
| Hitbox radius | 21 |
| XP | 1 |
| First appears | Floor 2 (spawn weight 16) |
Chaser that **splits into 2 Minis on death** (non-elite Splitters only). Slightly tankier than a Shambler. Explosions and AoE that kill the Minis with the parent are valuable here.
### Mini
| Stat | Value |
|---|---|
| Base HP | 6 |
| Base speed | 120 |
| Contact damage | 1 |
| Hitbox radius | 14 |
| XP | 1 |
| First appears | Only from Splitter deaths and boss summons |
Small, vicious gore-red chaser. Never spawns directly from room waves. Splitter splits and boss summons appear instantly; room-wave enemies telegraph first (see below).
### Exploder
| Stat | Value |
|---|---|
| Base HP | 14 |
| Base speed | 110 |
| Contact damage | 2 |
| Hitbox radius | 16 |
| XP | 2 |
| First appears | Floor 3 (spawn weight 14) |
Suicide bomber. Charges at you; within 56 px its **0.5 s fuse** lights (it flashes). When the fuse ends — or when it's killed by anything — it detonates: radius 70 (fuse) / 60 (killed), **2 damage**. The blast only hurts *you*, not other enemies. Kill them at range or bait the fuse and back off.
---
## Spawn weights
| 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
| Kill | XP | Other drops |
|---|---|---|
| Normal enemy | Its XP value | Ammo: 7% + luck×4% · Heart: 2.2% + luck×3% |
| Elite | 3× XP + 3–5 bonus | Item: 18% + luck×10% · else ammo: 60% + luck×20% |
Your on-kill items (Volatile Bile, Bloodlust, Vampire Dentures, Dead Man's Switch) trigger off every kill — see [items.md](items.md).
---
## Difficulty scaling
Every enemy's stats are computed at **spawn time** from three factors: floor, your power score, and pressure.
**Power score** = `(your level − 1) × 0.5 + (sum of all your item tiers)`
**HP:**
```
base HP × (1 + 0.22 × (floor − 1)) × (1 + 0.05 × power) × (elite ? 2.6 : 1) × pressure
```
**Speed:**
```
base speed × (1 + 0.04 × (floor − 1) + 0.01 × power) × (elite ? 0.9 : 1) × rand(0.9, 1.1) × pressure
```
**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.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
When a combat-room wave spawns, each enemy first appears as a **pulsing red sigil** for 0.5 s — frozen, harmless, but targetable. After the telegraph it materializes and becomes dangerous. Splitter splits and boss-summoned minions appear instantly (no telegraph).
### Example: Floor 10 Shambler
Level 8 player (3.5 power) with 8 item tiers (8 power) → power 11.5, pressure 1.2:
```
HP: 26 × (1 + 0.22×9) × (1 + 0.05×11.5) × 1.2 = 26 × 2.98 × 1.575 × 1.2 ≈ 146
Spd: 55 × (1 + 0.04×9 + 0.01×11.5) × 1.2 ≈ 55 × 1.475 × 1.2 ≈ 97
```
vs. 26 HP / 55 speed on floor 1. Build damage accordingly.
## Wave sizes
Combat rooms spawn `3 + ceil(floor × 1.4)` enemies in wave 1, plus a second wave (×0.7) from floor 2 and a third (×0.5) from floor 4. Full table in [gameplay.md](gameplay.md#waves-per-combat-room). Hard cap: 72 enemies alive at once.