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
e3f03b255e
fix(ama): update baseline entity count and explodingarrowexp test expectations ( #458 )
2026-09-24 18:23:28 +00:00
troytt
cc994fe3c8
fix(skill): fix Fire Ball explosion missile asset and 80px AoE radius ( Fixes #440 )
2026-09-24 16:54:28 +00:00
troytt
f107d05dd2
fix(skill): fix Fire Wall collision indexing and implement SubLoop flame animation ( Fixes #439 )
2026-09-24 16:28:29 +00:00
troytt
ebea702572
fix(skill): change Enchant cast overlay to authentic one-shot playback ( Fixes #438 )
2026-09-24 16:22:05 +00:00
troytt
f12fd5674a
fix(skill): extend Meteor ground fire duration and add extinction decay animation ( Fixes #437 )
2026-09-24 16:17:38 +00:00
troytt
0aa7c0a121
fix(skill): implement Hydra summon cap and authentic entity visuals ( Fixes #436 )
2026-09-24 16:10:44 +00:00
troytt
f2b78c80de
fix(test): use missileType in charged bolt kinematics test
2026-09-24 16:02:45 +00:00
troytt
4937f75131
test(missile): clean typecheck error in charged bolt kinematics test
2026-09-24 15:58:24 +00:00
troytt
e33738d394
fix(missile): implement authentic Charged Bolt snake-like random walk kinematics ( Fixes #435 )
2026-09-24 15:55:57 +00:00
troytt
a3f5013481
fix(skill): restore Lightning and Chain Lightning continuous beam and arc visuals ( Fixes #434 )
2026-09-24 15:12:39 +00:00
troytt
967a545116
fix(skill): implement Thunder Storm ambient aura and sky strike ( Fixes #433 )
2026-09-24 14:29:45 +00:00
troytt
d9ad6df63f
fix(skill): preserve buff visual persistence and enforce armor mutual exclusion ( Fixes #432 )
2026-09-24 13:55:10 +00:00
troytt
0e70ad1662
fix(skill): implement Frost Nova 64-missile radial spread and slow ( Fixes #431 )
2026-09-24 13:18:31 +00:00
troytt
71466df5e7
fix(skill): implement Glacial Spike explosion and 64px AoE freeze ( Fixes #430 )
2026-09-24 12:23:39 +00:00
troytt
51acb0effa
test(skills): persist M4 fire and M5 cross-tree adversarial stress test suites on main
2026-09-24 04:28:37 +00:00
troytt
2e061b3257
feat(skills): implement Enchant (52) and Fire Mastery (61) with authentic 1.13c parity
...
- Implement 1.13c Enchant 5-band weapon fire damage progression (HitShift 7, Warmth 9%/blvl synergy)
- Implement Enchant Attack Rating bonus (20% + 9%/slvl) and duration (3600 + 600/slvl frames)
- Implement Fire Mastery passive fire damage bonus (30% + 7%/slvl) in stat-list and combat-pipeline
- Implement authentic Sorceress melee double-dip and ranged 33% weapon fire damage penalty
- Enforce fire immunity preservation (res >= 100% takes 0 fire damage, Fire Mastery cannot pierce)
- Wire Enchant cast skill (52) and overlay animation in act-scene and engine
- Maintain BATCH1_SKILLS invariant strictly at 38
- Add comprehensive 7-dimensional verification suites for Enchant and Fire Mastery (31 tests passing)
- Closes #206 , Closes #215
2026-09-24 03:59:47 +00:00
troytt
6aa951e8cc
fix(skills): remediate Milestone 3 gate failures for Inferno range and channeled mana drain
...
- Fix calculateInfernoRangePx to authentic 1.13c ratio: calculateInfernoRange(slvl) * 32 (32 px/subtile).
- Update act-scene.ts flame stream ttl calculation to Math.min(60, Math.round(rangePx / speed)) allowing authentic travel reach.
- Connect continuous channeled mana drain in act-scene.ts: drain (36 + slvl - 1) * 4 / 256 mana per frame with fractional accumulator, stopping channel on mana depletion.
- Update tests/skills/sor/skill-041-inferno.test.ts assertions to 320/752/1232 px and add runtime continuous mana drain tests.
- Persist adversarial stress test suites (adv-fire-m3-math-stress.test.ts and adv-fire-m3-geom-stress.test.ts).
2026-09-24 03:20:48 +00:00
troytt
df4c5b66b0
feat(skills): implement Fire Wall, Blaze, and Inferno with 1.13c parity ( closes #205 , closes #200 , closes #195 )
2026-09-24 02:46:20 +00:00
troytt
10ef14b5b2
test(skills): persist M2 cold adversarial stress test suites on main
2026-09-24 02:44:18 +00:00
troytt
375f3296f9
feat(skills): implement Ice Blast, Glacial Spike, and Cold Mastery with 1.13c parity ( closes #199 , closes #209 , closes #219 )
2026-09-24 01:43:59 +00:00
troytt
2d6bbb93a2
fix(sor-cold): remediate number overload contract and wire reactive combat hooks (Issue #194 , #204 , #214 )
...
- Fix calculateShiverArmorDamage and calculateChillingArmorDamage number overload to treat number as allocated synergy points (synPoints) with 1.13c percentage scaling, supporting explicit options.synMultiplier override
- Guard duration and chill/freeze length calculators against negative synergy inputs with Math.max(0, synPoints)
- Wire reactive combat hooks in combat.ts (tickMonsters/updateMonsters and hitPlayerWithMissile):
* Frozen Armor: reactively freezes attacking monster upon taking physical melee damage
* Shiver Armor: proactively chills and damages attacking monster upon melee attack initiation
* Chilling Armor: reflects retaliatory chillingarmorbolt on incoming ranged missiles with returnFire=false
- Wire proactive and reactive combat events in combat-pipeline.ts (executeSUnitDmg):
* Dispatches attackedinmelee proactively before hit resolution
* Dispatches damagedinmelee post-damage on melee hits
* Dispatches hitbymissile post-damage on missile hits
* Exposes attackerStatesApplied, attackerColdDamage256, reflectedPhys256, and spawnedMissiles on SUnitDmgOutcome
- Add comprehensive remediation test suite tests/skills/sor/cold-armors-remediation.test.ts
2026-09-24 01:06:25 +00:00
troytt
e7d105dce0
feat(skills): implement Frozen Armor, Shiver Armor, and Chilling Armor with 1.13c parity ( closes #194 , closes #204 , closes #214 )
2026-09-24 00:29:57 +00:00
troytt
a0567c2473
feat(skills): implement Thunder Storm, Energy Shield, and Lightning Mastery with 1.13c parity ( closes #211 , closes #212 , closes #217 )
...
- Thunder Storm (57):
* Authentic 1.13c duration: 800 + (slvl - 1) * 200 frames (Param1=800, Param2=200).
* Hyperbolic cadence decay: Math.max(25, 125 - Math.floor((110 * slvl) / (slvl + 6))) frames.
* Range: 17 subtiles = 340px (Param7=17).
* 5-band piecewise lightning damage (1-100 base, +10/+10/+11 across bands).
* Authentic missile 'thunderstorm1' (ID 166, CelFile 'LightningboltBig', animLen 8) and cast overlay 'light_cast_2'.
* Zero synergies in 1.13c; multiplicative scaling with Lightning Mastery.
- Energy Shield (58):
* Authentic duration: 3600 + (slvl - 1) * 1500 frames (Param1=3600, Param2=1500).
* 1.13c piecewise absorb percentage: 20% lvl 1, +5% lvl 2-8, +2% lvl 9-16, +1% lvl 17+, strictly hard capped at 95% (slvl 40).
* Telekinesis hard synergy ratio: (32 - Math.min(20, Math.max(0, tkBlvl))) / 16 (2.0 down to 0.75). Hard points only (blvl); soft points ignored.
* Absorbs raw incoming damage BEFORE player resistances are applied. Remainder mitigated by player resistances.
* Poison (elemType === 'pois' || isPoison) and Open Wounds strictly bypass ES directly to HP.
* Mana depletion drains mana to 0, collapses shield, and spills unabsorbed damage to HP.
* Overlays: 'energyshield' looping body overlay and 'energyshieldhit0' directional hit overlay.
- Lightning Mastery (63):
* Passive formula: 50 + (slvl - 1) * 12 percent (+50% at lvl 1, +62% at lvl 2, +158% at lvl 10, +278% at lvl 20, +518% at lvl 40).
* Multiplicative scaling with synergies across all 5 lightning skills (Charged Bolt, Lightning, Chain Lightning, Nova, Thunder Storm): Final = Math.floor(Base * (1 + Syn/100) * (1 + Mastery/100)).
* StatList accrued stat 'passive_ltng_mastery' integration and combat pipeline executeSUnitDmg support.
- 7-Dimensional Vitest Suites:
* Full 7-D coverage for skill-057-thunder-storm.test.ts (15 tests passing).
* Full 7-D coverage for skill-058-energy-shield.test.ts (15 tests passing).
* Full 7-D coverage for skill-063-lightning-mastery.test.ts (17 tests passing).
* Invariants: BATCH1_SKILLS length strictly 38, zero runtime MPQ queries.
* Full repo test suite passing (414 test files, 4213 tests passing, 0 errors).
2026-09-23 20:33:24 +00:00
troytt
728d641646
feat(skills): implement Charged Bolt (38) and Telekinesis (43) with 1.13c parity ( #192 , #197 )
...
- Fix double-append bug in src/game/engine.ts lines 446-449
- Implement Charged Bolt (38) kinematics, NextDelay 0, 5-band damage, 32-entry discrete orthogonal jitter, and +6% Lightning synergy
- Implement Telekinesis (43) 600px range, remote object triggering, ground item pickup whitelist, 1-2 damage, 35% knockback, 35 stun ticks, and Energy Shield hard synergy
- Add comprehensive 7-Dimensional test suites for Charged Bolt (38) and Telekinesis (43)
- Verify 100% pass across all 4,175 unit tests and clean typecheck
2026-09-23 19:30:47 +00:00
troytt
6fefc684ef
feat(skills): implement Sorceress Lightning (49) & Chain Lightning (53) with 1.13c parity ( closes #203 , closes #207 )
...
- Implement 1.13c piecewise 5-band damage and +8%/+4% synergies for Lightning and Chain Lightning
- Implement authentic missile kinematics, NextDelay 4, ping-pong retargeting excluding immediate victim, and infinite beam piercing
- Wire casting overlays, 0 frame cooldown, and 1.13c mana formulas in missile-engine.ts, skills.ts, and act-scene.ts
- Add comprehensive 7-dimensional verification test suites in tests/skills/sor/ (40/40 passing)
- Full repo test suite passing: 4,140 passed, 0 failed, 0 typecheck errors
2026-09-23 18:24:28 +00:00
troytt
0e0cd3adee
feat(skills): harden 1.13c Nova and Static Field against adversarial probes ( fixes #196 , #202 )
...
- Fix ghost property resistLightning to respect monster resistances and lightningResist in act-scene.ts
- Wire monster resistances across MonsterStats and applyEliteModifiers in combat.ts and monsters.ts
- Clamp Static Field damage non-lethally post-resistance scaling and protect against difficulty floor underflow in missile-engine.ts
- Implement continuous sub-step collision and raycast line-of-sight in missile-engine.ts and skills.ts
- Add persistent NextDelay tracking on GameEngine with automatic per-tick expired entry pruning
- Align Nova (64 bolts, aspect ratio 0.5, NextDelay 4) and Static Field in executeSkillCore113c
2026-09-23 17:14:53 +00:00
troytt
35b926749e
feat(skills): implement 1.13c Nova and Static Field with 7-D test verification ( fixes #196 , #202 )
2026-09-23 16:27:57 +00:00
troytt
84c7730382
fix(skills): implement falling meteor dual sprite trajectory, frame indexing, exact tick-60 detonation, and wall collision
...
- Dual sprite falling trajectory: render falling meteor fireball (meteor) and flame tail (meteortail) descending diagonally during 60-tick countdown with additive blending
- Animation frame indexing: meteorcenter advances monotonically starting at frame 0, meteorfire plays emergence once (0..11) then loops 12..36 indefinitely
- Detonation timing: center expires and detonates at tick 60 exact (isExpired when ttl <= 1)
- Wall collision: drop meteorfire ground patches landing inside solid walls in MissileEngine
- Full test coverage: Dimensions 8 & 9 added to skill-056-meteor.test.ts, stress and adversarial test suites verified
2026-09-23 13:06:24 +00:00
troytt
96eee679b4
feat(skills): implement Skill #056 Meteor with 1.13c ground truth parity (Ref #401 )
2026-09-23 12:36:17 +00:00
troytt
39de19364f
fix(skills): route Blizzard damage calculation, eliminate shard silent fallback, and correct blizzardexplode3 celFile (Ref #400 )
2026-09-23 11:35:28 +00:00
troytt
3fade77d76
feat(skill-065): implement 1.13c Cold Mastery module and Vitest suite ( #219 )
2026-09-22 03:43:59 +00:00
troytt
8ef345a8a1
feat(skill-064): implement 1.13c Frozen Orb module and Vitest suite ( #218 )
2026-09-22 03:43:57 +00:00
troytt
469ee48b7b
feat(skill-063): implement 1.13c Lightning Mastery module and Vitest suite ( #217 )
2026-09-22 03:43:55 +00:00
troytt
4227c565ae
feat(skill-062): implement 1.13c Hydra module and Vitest suite ( #216 )
2026-09-22 03:43:54 +00:00
troytt
8bd5e0f176
feat(skill-061): implement 1.13c Fire Mastery module and Vitest suite ( #215 )
2026-09-22 03:43:52 +00:00
troytt
1124830988
feat(skill-060): implement 1.13c Chilling Armor module and Vitest suite ( #214 )
2026-09-22 03:43:50 +00:00
troytt
084e1fd30a
feat(skill-059): implement 1.13c Blizzard module and Vitest suite ( #213 )
2026-09-22 03:43:47 +00:00
troytt
2df5fdae46
feat(skill-058): implement 1.13c Energy Shield module and Vitest suite ( #212 )
2026-09-22 03:43:45 +00:00
troytt
e9250c44ef
feat(skill-057): implement 1.13c Thunder Storm module and Vitest suite ( #211 )
2026-09-22 03:43:43 +00:00
troytt
3246c1f73c
feat(skill-056): implement 1.13c Meteor module and Vitest suite ( #210 )
2026-09-22 03:43:41 +00:00
troytt
8a6981f193
feat(skill-055): implement 1.13c Glacial Spike module and Vitest suite ( #209 )
2026-09-22 03:43:40 +00:00
troytt
0e7dfe1db4
feat(skill-054): implement 1.13c Teleport module and Vitest suite ( #208 )
2026-09-22 03:43:38 +00:00
troytt
13520d6d3c
feat(skill-053): implement 1.13c Chain Lightning module and Vitest suite ( #207 )
2026-09-22 03:43:36 +00:00
troytt
9700297af4
feat(skill-052): implement 1.13c Enchant module and Vitest suite ( #206 )
2026-09-22 03:43:35 +00:00
troytt
9ce66a70fa
feat(skill-051): implement 1.13c Fire Wall module and Vitest suite ( #205 )
2026-09-22 03:43:33 +00:00
troytt
3f32b5029e
feat(skill-050): implement 1.13c Shiver Armor module and Vitest suite ( #204 )
2026-09-22 03:43:31 +00:00
troytt
195038b35a
feat(skill-049): implement 1.13c Lightning module and Vitest suite ( #203 )
2026-09-22 03:43:29 +00:00
troytt
53aadb174c
feat(skill-048): implement 1.13c Nova module and Vitest suite ( #202 )
2026-09-22 03:43:28 +00:00
troytt
74be483943
feat(skill-047): implement 1.13c Fire Ball module and Vitest suite ( #201 )
2026-09-22 03:43:26 +00:00