Item system overhaul: rarity bands, per-item caps, source pools + 14 new passives

- Add ITEM_RARITY (common/uncommon/rare/legendary) with per-item tier caps
- Weighted pools per source: elites favour common, item rooms uncommon,
  bosses rare/legendary; legendaries are boss-exclusive; capped items excluded
- Rarity-weighted powerScore so deep common stacks inflate difficulty less
- Differentiate duplicates: Grafted Trigger, Crow Bait, Hollow Bones, Twin Hearts
- 14 new clean passives incl. Chill Gland (activates slowOnHit) and Hooked Sinew
  (activates magnetPull); revive magnetPull in pickups
- Rarity-tinted pedestal glow + nameplates, rarity-sorted HUD implant tray,
  dynamic help implant pages (8 -> 9)
- Generate 14 item icons via gen_assets.py; bump asset cache to v=38
- Update smoke tests for 60 items, per-item caps, pools, weighted power
This commit is contained in:
MeatSlicer Developer committed 2026-07-30 15:21:02 +10:00
1 parent a02cff52cf
commit 4f46d54e99
28 files changed
+356 -187

No files matched your search

+103 -61
View File
@@ -1,23 +1,37 @@
# Items
All **46 passive items** in MeatSlicer, with exact effects pulled from `js/items.js` and the proc logic in `js/enemies.js` / `js/player.js`.
All **60 passive items** in MeatSlicer, with exact effects pulled from `js/items.js` and the proc logic in `js/enemies.js` / `js/player.js`.
---
## How items work
- Items are **passive and permanent** for the run. Pick one up and its effect applies immediately.
- **Duplicates upgrade the tier** (shown as Roman numerals **I–IX** on the pedestal and in your item tray). Each duplicate re-applies the item's effect — multiplicative stats compound, additive stats stack linearly.
- **Tier cap is 9.** Picking up a duplicate at tier IX instead grants +150 score and 5 XP gems with a "MAX" toast.
- There is **no rarity system**. Item rolls use a "smart roll": 50% chance to upgrade an item you already own (below cap), 50% chance of any item from the full pool — so builds naturally specialize over a run.
- **Duplicates upgrade the tier** (shown as Roman numerals on the pedestal and in your item tray). Each duplicate re-applies the item's effect — multiplicative stats compound, additive stats stack linearly.
- **Tier caps are per-item.** Simple stat items stack deep (up to VIII); build-defining and legendary items cap at III or I. Picking up a duplicate at cap instead grants +150 score and 5 XP gems with a "MAX" toast.
- **Every item has a rarity band** — Common, Uncommon, Rare, or Legendary — which drives both its drop weight and how much it inflates enemy scaling (see below).
- Item rolls use a "smart roll": a small chance to upgrade an item you already own (below cap), otherwise a weighted roll from the source's pool. Builds naturally specialize, but rares stay rare.
### Rarity bands
| Band | Base weight | Power/tier | Typical cap | Colour |
|---|---|---|---|---|
| Common | 100 | 0.5 | V–VIII | bone |
| Uncommon | 55 | 1.0 | IV–VI | teal |
| Rare | 25 | 1.5 | II–III | gold |
| Legendary | 8 | 3.0 | I | red |
**Power score** (drives enemy HP/speed scaling) = perks × 0.5 + Σ(item tier × band power). A deep stack of commons inflates difficulty far less than a few rares.
### Where items come from
| Source | Chance |
|---|---|
| Item room pedestal | Guaranteed (1 per floor) |
| Boss kill | Guaranteed (1 pedestal) |
| Elite enemy kill | 18% + luck × 10% |
| Source | Chance | Pool tilt |
|---|---|---|
| Item room pedestal | Guaranteed (1 per floor) | Favours Uncommon / Rare |
| Boss kill | Guaranteed (1 pedestal) | Favours Rare / **Legendary** (boss-only) |
| Elite enemy kill | 18% + luck × 10% | Favours Common |
Legendary items are **boss-exclusive** — they never roll from item rooms or elites. Items already at their tier cap are excluded from fresh rolls, so pedestals don't waste themselves.
---
@@ -29,7 +43,11 @@ All **46 passive items** in MeatSlicer, with exact effects pulled from `js/items
| **Marrow Glut** | +20% damage, −10% fire rate | `dmgMul ×1.20`, `rateMul ×0.90` |
| **Bloat Rounds** | +25% attack size, +10% damage | `sizeMul ×1.25`, `dmgMul ×1.10` |
| **Twitch Fibers** | +20% fire rate | `rateMul ×1.20` |
| **Grafted Trigger** | +18% fire rate | `rateMul ×1.18` |
| **Grafted Trigger** | +18% fire rate, +6% shot speed | `rateMul ×1.18`, `shotSpeedMul ×1.06` |
| **Bonemeal Powder** | +15% damage, +15% shot speed | `dmgMul ×1.15`, `shotSpeedMul ×1.15` |
| **Marrow Piston** | +30% knockback, +12% attack size | `knockbackMul ×1.30`, `sizeMul ×1.12` |
| **Whipcord Tendon** | +20% range, +8% fire rate | `rangeMul ×1.20`, `rateMul ×1.08` |
| **Butcher's Twine** | +12% bleed, +8% fire rate | `bleed +0.12`, `rateMul ×1.08` |
Note: attack size (`sizeMul`) also enlarges melee arcs, blast radii, acid pools, and projectile hitboxes — Bloat Rounds is secretly an AoE item.
@@ -41,6 +59,8 @@ Note: attack size (`sizeMul`) also enlarges melee arcs, blast radii, acid pools,
| **Lead Marrow** | +25% range | `rangeMul ×1.25` |
| **Piercing Gaze** | Shots pierce +1 enemy | `pierce +1` |
| **Ricochet Ribs** | Shots bounce +1 time | `bounce +1` (wall bounces) |
| **Gyroscopic Ribs** | +2 bounce, +10% range | `bounce +2`, `rangeMul ×1.10` |
| **Split Cortex** | +1 pierce, +1 chain | `pierce +1`, `chain +1` — Rare hybrid projectile modifier |
| **Split Tongue** | Twin parallel shot | `split +1` — extra parallel shots per volley |
| **Hydra Maw** | Fires 2 extra angled shots | `fan +1` — extra angled shots (±0.16 rad per level) |
| **Homing Tumor** | Shots seek flesh (stronger per tier) | `homing +1` — homing strength `1.6 + homing × 0.7` |
@@ -55,6 +75,8 @@ All of these trigger from your weapon hits (orbital knives proc at half chance).
|---|---|---|
| **Flayer Kiss** | Hits inflict heavy bleeding | `bleed +0.20` — every hit applies 2.2 s bleed at `hit damage × bleed × 0.45` DPS |
| **Ember Jar** | 20% chance to ignite | `+0.20` chance — burn for 1.8 s at `5 × dmgMul` DPS |
| **Chill Gland** | 18% chance to chill | `+0.18` chance — slows enemies (activates the previously unused `slowOnHit` stat) |
| **Cinder Sump** | +12% ignite, +12% acid | `igniteChance +0.12`, `acidOnHit +0.12` — dual-element hybrid |
| **Acid Gland** | Hits may leave acid pools | `+0.12` chance (cap 65%) — pool radius 18 × sizeMul, 2.5 s, `5 × dmgMul` DPS |
| **Hook Rounds** | Hits pull enemies toward you | `+0.18` chance (cap 80%) — yanks the enemy toward you at speed 170 |
| **Sledge Rounds** | More knockback, hits may stun | `knockbackMul ×1.35`, `+0.08` stun chance (cap 75%) — 0.35 s stun, non-bosses only |
@@ -76,7 +98,9 @@ All of these trigger from your weapon hits (orbital knives proc at half chance).
|---|---|---|
| **Iron Stomach** | +½ heart container, heal ½ heart | `maxHp +1`, heal 1 |
| **Ghoul Heart** | +2 max HP, heal 2 | `maxHp +2`, heal 2 |
| **Twin Hearts** | +1 max heart, heal 1 heart | `maxHp +2`, heal 2 (identical to Ghoul Heart) |
| **Twin Hearts** | +1 max heart, heal to full | `maxHp +2`, `hp = maxHp` — the premium Rare HP item |
| **Rendered Fat** | +½ heart, +4% armor | `maxHp +1`, `armor +0.04`, heal 1 — clean hybrid HP/armor |
| **Gristle Cord** | +0.12s hurt immunity, +4% armor | `invBonus +0.12`, `armor +0.04` |
| **Bone Plate** | +½ shield heart each floor | `shieldPerk +1`, `shieldHp +1` — shields refill every floor (1 shield HP = ½ heart, renders as half a cyan pip) |
| **Second Stomach** | +½ heart and excess healing shields | `maxHp +1`, heal 1, `overShield +1` — overflow healing becomes shield HP |
| **Tanned Hide** | +8% chance to ignore damage | `armor +0.087` — block chance `armor / (1 + armor)`, cap 75% |
@@ -99,65 +123,83 @@ All of these trigger from your weapon hits (orbital knives proc at half chance).
| **Orbital Knives** | +1 circling knife | `orbitals +1` — each knife orbits you, dealing `12 × dmgMul × orbDmgMul` on contact (0.35 s cooldown per enemy, half proc chance) |
| **Orbit Crown** | +25% orbital speed and damage | `orbSpeedMul ×1.25`, `orbDmgMul ×1.25` |
| **Lucky Coin** | Better drops | `luck +0.2` |
| **Crow Bait** | +25% drop luck | `luck +0.25` |
| **Crow Bait** | +15% drop luck, +25% pickup radius | `luck +0.15`, `magnet ×1.25` |
| **Magnet Maw** | +60% pickup radius | `magnet ×1.6` — magnet radius 46 × magnet px |
| **Gorging Leech** | +20% XP gained | `xpMul ×1.20` |
| **Reroll Rib** | +1 perk reroll each level | `rerollPerLevel +1` and +1 reroll immediately |
| **Brass Magazine** | 15% less ammo use, +20% ammo found | `ammoEff ×1.15`, `ammoPickupMul ×1.20` (the ×1.15 stays multiplicative; the **Scrap Feed** perk's additive stacks sit underneath it) |
| **Hollow Bones** | +12% move speed | `speedMul ×1.12` (178 → ~199 px/s at tier I) |
| **Hollow Bones** | +14% move speed | `speedMul ×1.14` (178 → ~203 px/s at tier I) |
| **Gorged Tick** | +15% XP, +10% luck | `xpMul ×1.15`, `luck +0.10` |
| **Hooked Sinew** | +30% pickup pull speed, +10% radius | `magnetPull ×1.30`, `magnet ×1.10` (activates the `magnetPull` stat) |
| **Rusted Diadem** | +40% orbital speed | `orbSpeedMul ×1.40` |
| **Rimed Fang** | +4% crit chance, +25% crit damage | `crit +0.04`, `critMul +0.25` |
---
## Complete item index (A–Z)
| # | Item | Category |
|---|---|---|
| 1 | Acid Gland | On-hit proc |
| 2 | Backstabber | Shot modifier |
| 3 | Bloodlust | On-kill |
| 4 | Bloodshot Eye | Criticals |
| 5 | Bloat Rounds | Damage |
| 6 | Bone Plate | Survivability |
| 7 | Brass Magazine | Utility |
| 8 | Chain Sinew | On-hit proc |
| 9 | Crow Bait | Utility |
| 10 | Dead Man's Clock | Survivability |
| 11 | Dead Man's Switch | On-kill |
| 12 | Ember Jar | On-hit proc |
| 13 | Flayer Kiss | On-hit proc |
| 14 | Ghoul Heart | Survivability |
| 15 | Gorging Leech | Utility |
| 16 | Grafted Trigger | Fire rate |
| 17 | Hollow Bones | Utility |
| 18 | Hollow Needle | Criticals |
| 19 | Hollow Points | Damage |
| 20 | Homing Tumor | Shot modifier |
| 21 | Hook Rounds | On-hit proc |
| 22 | Hydra Maw | Shot modifier |
| 23 | Iron Stomach | Survivability |
| 24 | Lead Marrow | Shot modifier |
| 25 | Lucky Coin | Utility |
| 26 | Magnet Maw | Utility |
| 27 | Marrow Glut | Damage |
| 28 | Mortar Bone | On-hit proc |
| 29 | Orbit Crown | Utility |
| 30 | Orbital Knives | Utility |
| 31 | Piercing Gaze | Shot modifier |
| 32 | Reroll Rib | Utility |
| 33 | Ricochet Ribs | Shot modifier |
| 34 | Scalpel | Shot modifier |
| 35 | Second Stomach | Survivability |
| 36 | Sledge Rounds | On-hit proc |
| 37 | Spine Cage | Survivability |
| 38 | Spite Well | Survivability |
| 39 | Splinter Bone | Shot modifier |
| 40 | Split Tongue | Shot modifier |
| 41 | Tanned Hide | Survivability |
| 42 | Twin Hearts | Survivability |
| 43 | Twitch Fibers | Fire rate |
| 44 | Vampire Dentures | On-kill |
| 45 | Volatile Bile | On-kill |
| 46 | Worm Gut | Survivability |
| # | Item | Rarity | Cap | Category |
|---|---|---|---|---|
| 1 | Acid Gland | Uncommon | VI | On-hit proc |
| 2 | Backstabber | Rare | III | Shot modifier |
| 3 | Bloodlust | Common | V | On-kill |
| 4 | Bloodshot Eye | Common | VIII | Criticals |
| 5 | Bloat Rounds | Uncommon | V | Damage |
| 6 | Bone Plate | Rare | III | Survivability |
| 7 | Bonemeal Powder | Common | VI | Damage |
| 8 | Brass Magazine | Common | V | Utility |
| 9 | Butcher's Twine | Uncommon | V | Fire rate |
| 10 | Chain Sinew | Uncommon | VI | On-hit proc |
| 11 | Chill Gland | Uncommon | V | On-hit proc |
| 12 | Cinder Sump | Uncommon | V | On-hit proc |
| 13 | Crow Bait | Common | V | Utility |
| 14 | Dead Man's Clock | Rare | III | Survivability |
| 15 | Dead Man's Switch | Rare | III | On-kill |
| 16 | Ember Jar | Uncommon | V | On-hit proc |
| 17 | Flayer Kiss | Uncommon | V | On-hit proc |
| 18 | Ghoul Heart | Uncommon | V | Survivability |
| 19 | Gorged Tick | Common | V | Utility |
| 20 | Gorging Leech | Common | IV | Utility |
| 21 | Grafted Trigger | Common | VI | Fire rate |
| 22 | Gristle Cord | Uncommon | IV | Survivability |
| 23 | Gyroscopic Ribs | Uncommon | IV | Shot modifier |
| 24 | Hollow Bones | Common | VI | Utility |
| 25 | Hollow Needle | Common | VI | Criticals |
| 26 | Hollow Points | Common | VI | Damage |
| 27 | Homing Tumor | Uncommon | IV | Shot modifier |
| 28 | Hook Rounds | Uncommon | V | On-hit proc |
| 29 | Hooked Sinew | Common | V | Utility |
| 30 | Hydra Maw | Rare | III | Shot modifier |
| 31 | Iron Stomach | Common | VIII | Survivability |
| 32 | Lead Marrow | Common | VIII | Shot modifier |
| 33 | Lucky Coin | Common | V | Utility |
| 34 | Magnet Maw | Common | III | Utility |
| 35 | Marrow Glut | Uncommon | VI | Damage |
| 36 | Marrow Piston | Common | V | Damage |
| 37 | Mortar Bone | Uncommon | V | On-hit proc |
| 38 | Orbit Crown | Uncommon | V | Utility |
| 39 | Orbital Knives | Rare | III | Utility |
| 40 | Piercing Gaze | Uncommon | V | Shot modifier |
| 41 | Rendered Fat | Common | VI | Survivability |
| 42 | Reroll Rib | Rare | II | Utility |
| 43 | Ricochet Ribs | Uncommon | V | Shot modifier |
| 44 | Rimed Fang | Common | VI | Criticals |
| 45 | Rusted Diadem | Uncommon | V | Utility |
| 46 | Scalpel | Common | VIII | Shot modifier |
| 47 | Second Stomach | Rare | III | Survivability |
| 48 | Sledge Rounds | Uncommon | V | On-hit proc |
| 49 | Spine Cage | Uncommon | V | Survivability |
| 50 | Spite Well | Uncommon | V | Survivability |
| 51 | Split Cortex | Rare | III | Shot modifier |
| 52 | Splinter Bone | Rare | III | Shot modifier |
| 53 | Split Tongue | Rare | III | Shot modifier |
| 54 | Tanned Hide | Common | VI | Survivability |
| 55 | Twin Hearts | Rare | III | Survivability |
| 56 | Twitch Fibers | Common | VI | Fire rate |
| 57 | Vampire Dentures | Uncommon | V | On-kill |
| 58 | Volatile Bile | Rare | III | On-kill |
| 59 | Whipcord Tendon | Uncommon | V | Damage |
| 60 | Worm Gut | Rare | III | Survivability |
## Synergy notes