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:
1 parent
a02cff52cf
commit
4f46d54e99
28 files changed
+356
-187
No files matched your search
+2
-2
@@ -58,13 +58,13 @@ function pressureDropUnits(dial) { const d = clamp(dial, PRESSURE_DIAL_MIN, PRES
|
||||
function pressureGain() { return pressureGainUnits(G.pressureDial) * PRESSURE_UNIT; }
|
||||
function pressureDropScale() { return pressureDropUnits(G.pressureDial) / PRESSURE_DROP_BASE; }
|
||||
|
||||
// total player power: perks drafted (level - 1) + item tiers owned.
|
||||
// total player power: perks drafted (level - 1) + item tiers owned, weighted by rarity.
|
||||
// monsters scale against this so difficulty tracks the build.
|
||||
function powerScore() {
|
||||
const p = G.player;
|
||||
if (!p) return 0;
|
||||
let n = (p.level - 1) * PERK_POWER_WEIGHT;
|
||||
for (const iid in p.items) n += p.items[iid];
|
||||
for (const iid in p.items) n += p.items[iid] * ITEM_RARITY[ITEMS[iid].rarity].power;
|
||||
return Math.max(0, n);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user