troytt
d393a48043
feat(drop): embed MonStats and SuperUniques with 1.13c multi-diff TC parity ( Fixes #410 , #411 )
...
- Pack and embed authentic 1.13c MonStats drop columns (734 kinds) with noRatio support
- Embed SuperUniques multi-difficulty TCs (66 unique bosses) and fail-fast loading
- Fix SuperUnique minion TC3 inheritance and minion monsterType identification
- Add adversarial drop parity audit and superunique minion test suites
- Update D2MOO oracle seed generator and Paladin skill tree parity
2026-09-25 13:44:35 +00:00
troytt
de5530f1fe
feat(necro): implement Milestone M4 Necromancer Summoning Spells Tree (10 skills)
...
- Implement core 1.13c summoning formulas and invariants:
- Skeleton Mastery (69): passive flat HP (+8/lvl), flat damage (+2/lvl), revive HP % (+5%/lvl), damage % (+10%/lvl), defense (+10/lvl).
- Raise Skeleton (70): max count formula ((slvl < 4) ? slvl : 2 + floor(slvl/3)), corpse requirement.
- Clay Golem (75): Golem Group 3 exclusivity, slow-on-hit effect against targets and melee attackers, synergy from Blood Golem.
- Golem Mastery (79): passive HP % (20% + 25%/lvl) and diminishing run/walk speed bonuses.
- Raise Skeletal Mage (80): max count formula matching warriors, 4 elemental types, ranged elemental missile firing.
- Blood Golem (85): 70% life link healing on damage dealt, damage sharing with player.
- Summon Resist (89): diminishing passive elemental & poison resistances (dm12(20, 75)) capped at 75%.
- Iron Golem (90): consumes metallic weapon/armor item from ground, inherits base damage/defense/auras, innate Thorns reflection (150% + 15%/lvl).
- Fire Golem (94): Holy Fire pulse aura every 50 ticks, 100% fire absorption healing, Fire Nova death explosion.
- Revive (95): max count = slvl, copies target monster stats with +200% HP and +215% damage, 180s (4500 frames) lifespan timer.
- Integrate with SummonManager, CombatPipeline, and ActScene:
- Group 3 Golem mutual exclusivity (Clay, Blood, Iron, Fire).
- Synchronous corpse consumption (non-boss corpses only).
- Fire Golem 100% fire damage absorption to health.
- Clay Golem attacker in melee slow debuff.
- Iron Golem Thorns physical melee reflection.
- Blood Golem life link healing to player.
- Preserve BATCH1_SKILLS length invariant (strictly 38).
- Enforce 2:1 isometric ground geometry (ISO_GROUND_ASPECT_RATIO = 0.5).
- Add comprehensive verification test suites:
- tests/skills/nec/summoning.test.ts (unit tests for all 10 summoning skills)
- tests/skills/nec/adv-summoning-stress.test.ts (stress & boundary tests)
2026-09-24 10:38:37 +00:00
troytt
bfc1164d9b
feat(necro): implement Milestone M3 Necromancer Curses Tree (10 skills)
...
- Implement core curse formulas (radius, duration, debuff stats, immunity breaking)
- Enforce 1.13c ground truth invariants:
* Amplify Damage (-100% phys res, or -20% on immune)
* Decrepify (-50% phys res / -10% on immune, -50% speed, -50% attack rate, -50% damage dealt)
* Lower Resist (-dm56% on fire/lightning/cold/poison, 1/5th penalty on immune)
* Life Tap (50% physical life leech on hit)
* Iron Maiden (reflects 200%..675% physical melee damage back to attacker)
* Weaken (-33% damage dealt)
* Attract (cursetype = 2, immune to overwrite, cannot recast on attracted unit)
* Mental curse immunity for Bosses & Champions (Dim Vision, Terror, Confuse, Attract)
* 2:1 isometric radius targeting and overhead animated overlays
- Add primary verification suite (tests/skills/nec/curses.test.ts)
- Add adversarial challenger stress suite (tests/skills/nec/adv-curses-stress.test.ts)
2026-09-24 09:21:30 +00:00
troytt
29a53233a8
fix(necro): remediate challenger findings for Poison & Bone spells
...
- Fix dagger classification in getAttackWeaponInfo: authentic 1.13c dagger 'Blade' (bld, knif) properly classified as dagger instead of sword
- Prevent runaway recursive sub-missile explosion cascade loops on piercing missiles (Bone Spear, Teeth, Bone Spirit)
- Fix Bone Spirit homing scalar speed doubling on non-horizontal angles (ensure scalar speed is invariant to homing angle)
- Ensure Poison Nova projectile TTL is exactly 50 frames per D2 1.13c standard
- Include adv-pnb-kinematics-stress.test.ts and adv-pnb-synergy-stress.test.ts stress test suites
2026-09-24 08:37:27 +00:00
troytt
e070ed404d
feat(nec): implement 10 Necromancer Poison and Bone Spells (M2)
...
- Implement 10 Poison and Bone skills (Teeth 67, Bone Armor 68, Poison Dagger 73,
Corpse Explosion 74, Bone Wall 78, Poison Explosion 83, Bone Spear 84, Bone Prison 88,
Poison Nova 92, Bone Spirit 93) per 1.13c ground truth.
- Decouple damage formulas into standalone exported functions: calculateTeethDamage,
calculateBoneArmorCapacity, calculatePoisonDaggerDamage, calculateCorpseExplosionDamage,
calculateBoneWallStats, calculatePoisonExplosionDamage, calculateBoneSpearDamage,
calculateBonePrisonStats, calculatePoisonNovaDamage, calculateBoneSpiritDamage.
- Preserve BATCH1_SKILLS length strictly at 38 skills.
- Enforce 2:1 isometric ground projection geometry (ISO_GROUND_ASPECT_RATIO = 0.5)
for collision, radial Poison Nova bursts (64 bolts), and trajectory kinematics.
- Implement Bone Spirit homing steering and Bone Spear piercing (collideKill = 0).
- Integrate casting lifecycle in act-scene: mana deduction, overlays, corpse consumption,
and dagger weapon requirement for Poison Dagger.
- Add comprehensive 37-test suite in tests/skills/nec/poison-bone.test.ts.
2026-09-24 08:37:27 +00:00
troytt
b327e5ee77
test(skills): persist Necromancer M1 asset challenger adversarial stress test suites
2026-09-24 07:04:38 +00:00
troytt
ac9999cd5b
feat(nec): bake missing Necromancer missiles, overlays, and register metadata (M1)
...
- Update scripts/pack-missiles.ts to include missing Necromancer missiles: corpseexplosion, poisoncorpseexplosion, poisonexplosioncloud, poisonpuff, cursecast, bonecast, bonespeartrail, revive
- Update scripts/pack-overlays.ts to include 15 Necromancer overlays: 10 Curses overhead state icons, 2 hit overlays, 3 Bone Armor overlays
- Extract and bake 32-bit RGBA sprite sheets into public/missiles/ and public/overlays/ with transparent border thresholding (max(r,g,b) <= 4 -> alpha = 0)
- Generate strongly-typed metadata in src/render/missiles-meta.ts and src/render/overlays-meta.ts
- Add comprehensive Vitest test suite in tests/skills/nec/necro-assets.test.ts verifying physical file existence, JSON frame geometry, and 0 transparent border artifacts
- Verified typecheck with 0 errors and all asset test suites passing 100%
2026-09-24 07:04:38 +00:00
troytt
84956115dd
feat(skill-095): implement 1.13c Revive module and Vitest suite ( #249 )
2026-09-22 03:44:50 +00:00
troytt
3fba1e79bc
feat(skill-094): implement 1.13c FireGolem module and Vitest suite ( #248 )
2026-09-22 03:44:48 +00:00
troytt
536d736803
feat(skill-093): implement 1.13c Bone Spirit module and Vitest suite ( #247 )
2026-09-22 03:44:47 +00:00
troytt
4f6d8d44e9
feat(skill-092): implement 1.13c Poison Nova module and Vitest suite ( #246 )
2026-09-22 03:44:45 +00:00
troytt
c2c139f17b
feat(skill-091): implement 1.13c Lower Resist module and Vitest suite ( #245 )
2026-09-22 03:44:43 +00:00
troytt
8189f3c643
feat(skill-090): implement 1.13c IronGolem module and Vitest suite ( #244 )
2026-09-22 03:44:42 +00:00
troytt
494409e04a
feat(skill-089): implement 1.13c Summon Resist module and Vitest suite ( #243 )
2026-09-22 03:44:40 +00:00
troytt
83bbb4abf6
feat(skill-088): implement 1.13c Bone Prison module and Vitest suite ( #242 )
2026-09-22 03:44:38 +00:00
troytt
d7993ebc3e
feat(skill-087): implement 1.13c Decrepify module and Vitest suite ( #241 )
2026-09-22 03:44:37 +00:00
troytt
cf075924de
feat(skill-086): implement 1.13c Attract module and Vitest suite ( #240 )
2026-09-22 03:44:35 +00:00
troytt
130c22e563
feat(skill-085): implement 1.13c BloodGolem module and Vitest suite ( #239 )
2026-09-22 03:44:33 +00:00
troytt
8ccee8dd3d
feat(skill-084): implement 1.13c Bone Spear module and Vitest suite ( #238 )
2026-09-22 03:44:31 +00:00
troytt
997a4f68b9
feat(skill-083): implement 1.13c Poison Explosion module and Vitest suite ( #237 )
2026-09-22 03:44:29 +00:00
troytt
779f14b114
feat(skill-082): implement 1.13c Life Tap module and Vitest suite ( #236 )
2026-09-22 03:44:27 +00:00
troytt
9c9e093da8
feat(skill-081): implement 1.13c Confuse module and Vitest suite ( #235 )
2026-09-22 03:44:26 +00:00
troytt
384eac60dd
feat(skill-080): implement 1.13c Raise Skeletal Mage module and Vitest suite ( #234 )
2026-09-22 03:44:24 +00:00
troytt
3775cfaa06
feat(skill-079): implement 1.13c Golem Mastery module and Vitest suite ( #233 )
2026-09-22 03:44:22 +00:00
troytt
e342512ac8
feat(skill-078): implement 1.13c Bone Wall module and Vitest suite ( #232 )
2026-09-22 03:44:20 +00:00
troytt
5f74e58900
feat(skill-077): implement 1.13c Terror module and Vitest suite ( #231 )
2026-09-22 03:44:19 +00:00
troytt
fabfa0ae83
feat(skill-076): implement 1.13c Iron Maiden module and Vitest suite ( #230 )
2026-09-22 03:44:17 +00:00
troytt
81b4cd878b
feat(skill-075): implement 1.13c Clay Golem module and Vitest suite ( #229 )
2026-09-22 03:44:16 +00:00
troytt
f46d668c00
feat(skill-074): implement 1.13c Corpse Explosion module and Vitest suite ( #228 )
2026-09-22 03:44:14 +00:00
troytt
729491d31f
feat(skill-073): implement 1.13c Poison Dagger module and Vitest suite ( #227 )
2026-09-22 03:44:12 +00:00
troytt
7f05cc4669
feat(skill-072): implement 1.13c Weaken module and Vitest suite ( #226 )
2026-09-22 03:44:11 +00:00
troytt
1e0675195d
feat(skill-071): implement 1.13c Dim Vision module and Vitest suite ( #225 )
2026-09-22 03:44:09 +00:00
troytt
72c2138106
feat(skill-070): implement 1.13c Raise Skeleton module and Vitest suite ( #224 )
2026-09-22 03:44:07 +00:00
troytt
fee3778263
feat(skill-069): implement 1.13c Skeleton Mastery module and Vitest suite ( #223 )
2026-09-22 03:44:06 +00:00
troytt
20ad021bfa
feat(skill-068): implement 1.13c Bone Armor module and Vitest suite ( #222 )
2026-09-22 03:44:04 +00:00
troytt
4800674898
feat(skill-067): implement 1.13c Teeth module and Vitest suite ( #221 )
2026-09-22 03:44:02 +00:00
troytt
400df5ed46
feat(skill-066): implement 1.13c Amplify Damage module and Vitest suite ( #220 )
2026-09-22 03:44:01 +00:00