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
2b6b6d7fd5
feat(skills): full 33 Paladin aura visual overlays & offline UI atlases parity ( Fixes #397 )
...
- Implement all 33 Paladin aura overlay targets (13 front/back pairs + 7 full rings) with authentic 1.13c Overlay.txt definitions
- Update offline overlay baking script scripts/pack-overlays.ts and generated metadata src/render/overlays-meta.ts with zero runtime MPQ parsing
- Align baked UI atlases and manifest in public/ui/ and src/ui/baked-ui-meta.ts
- Expand tests/skills/aura-target-parity.test.ts to 7 dimensions including 3D Isometric Aura Ring Sandwich depth layering
- Fix hero class walk offset assertion in tests/hero-classes-art.test.ts
- Add set item icon dye tests in tests/set-items-icons-dye.test.ts
2026-09-23 10:33:34 +00:00
troytt
e5a34af708
feat(skills): implement Diablo II v1.13c aura skills system with town/wilderness target filtering and visual parity ( Fixes #397 )
...
- Implement all 20 Paladin auras (offensive & defensive) with 1.13c MPQ parameters
- Town vs Wilderness filtering: friendly auras buff only self in town, broadcast to allies/mercenaries/summons in wilderness; offensive pulses and redemption suspended in town
- Conviction (#123 ) asymmetry: caster ring visual only with 0 self debuffs; wilderness enemies receive -Def% and -Res% debuffs with green spikes foot ring; suspended in town
- Holy Freeze (#114 ) parity: caster displays cyan ring, wilderness enemies take cold pulse damage, item_slow, and blue chill tint with ZERO enemy foot rings
- Offline asset baking: baked 20 aura overlay animations into public/overlays and generated src/render/overlays-meta.ts with zero runtime MPQ parsing
- Full test coverage in tests/skills/aura-target-parity.test.ts passing 6/6 tests and full TypeScript typecheck passing
2026-09-23 09:15:48 +00:00
troytt
c5242c93b7
feat(skill-350): implement 1.13c Delerium Change module and Vitest suite ( #374 )
2026-09-22 03:48:40 +00:00
troytt
468cf5d05e
feat(skill-280): implement 1.13c Royal Strike module and Vitest suite ( #373 )
2026-09-22 03:48:38 +00:00
troytt
2f2116f9fd
feat(skill-279): implement 1.13c Shadow Master module and Vitest suite ( #372 )
2026-09-22 03:48:36 +00:00
troytt
2d558698dc
feat(skill-278): implement 1.13c Venom module and Vitest suite ( #371 )
2026-09-22 03:48:34 +00:00
troytt
7b8f954d32
feat(skill-277): implement 1.13c Blade Shield module and Vitest suite ( #370 )
2026-09-22 03:48:32 +00:00
troytt
dee07295b2
feat(skill-276): implement 1.13c Death Sentry module and Vitest suite ( #369 )
2026-09-22 03:48:30 +00:00
troytt
80e1af9cf4
feat(skill-275): implement 1.13c Dragon Flight module and Vitest suite ( #368 )
2026-09-22 03:48:29 +00:00
troytt
8d30d0b6ed
feat(skill-274): implement 1.13c Blades of Ice module and Vitest suite ( #367 )
2026-09-22 03:48:27 +00:00
troytt
3170f0aa68
feat(skill-273): implement 1.13c Mind Blast module and Vitest suite ( #366 )
2026-09-22 03:48:25 +00:00
troytt
a0e46c9046
feat(skill-272): implement 1.13c Inferno Sentry module and Vitest suite ( #365 )
2026-09-22 03:48:23 +00:00
troytt
fed2fc6688
feat(skill-271): implement 1.13c Lightning Sentry module and Vitest suite ( #364 )
2026-09-22 03:48:21 +00:00
troytt
e91554764f
feat(skill-270): implement 1.13c Dragon Tail module and Vitest suite ( #363 )
2026-09-22 03:48:18 +00:00
troytt
5d33bf09ae
feat(skill-269): implement 1.13c Claws of Thunder module and Vitest suite ( #362 )
2026-09-22 03:48:16 +00:00
troytt
8829f881c8
feat(skill-268): implement 1.13c Shadow Warrior module and Vitest suite ( #361 )
2026-09-22 03:48:14 +00:00
troytt
9bc13289d4
feat(skill-267): implement 1.13c Fade module and Vitest suite ( #360 )
2026-09-22 03:48:12 +00:00
troytt
50725f335b
feat(skill-266): implement 1.13c Blade Fury module and Vitest suite ( #359 )
2026-09-22 03:48:11 +00:00
troytt
bdcb2af7d1
feat(skill-265): implement 1.13c Cobra Strike module and Vitest suite ( #358 )
2026-09-22 03:48:09 +00:00
troytt
9fe4c77754
feat(skill-264): implement 1.13c Cloak of Shadows module and Vitest suite ( #357 )
2026-09-22 03:48:07 +00:00
troytt
53b2f6c9c8
feat(skill-263): implement 1.13c Weapon Block module and Vitest suite ( #356 )
2026-09-22 03:48:05 +00:00
troytt
76a3cf17f9
feat(skill-262): implement 1.13c Wake of Fire Sentry module and Vitest suite ( #355 )
2026-09-22 03:48:03 +00:00
troytt
cf444ded20
feat(skill-261): implement 1.13c Charged Bolt Sentry module and Vitest suite ( #354 )
2026-09-22 03:48:02 +00:00
troytt
4c20bf9fb9
feat(skill-260): implement 1.13c Dragon Claw module and Vitest suite ( #353 )
2026-09-22 03:48:00 +00:00
troytt
3b23f61791
feat(skill-259): implement 1.13c Fists of Fire module and Vitest suite ( #352 )
2026-09-22 03:47:58 +00:00
troytt
190a0c5537
feat(skill-258): implement 1.13c Quickness module and Vitest suite ( #351 )
2026-09-22 03:47:56 +00:00
troytt
039ca21ba5
feat(skill-257): implement 1.13c Blade Sentinel module and Vitest suite ( #350 )
2026-09-22 03:47:54 +00:00
troytt
72570aa522
feat(skill-256): implement 1.13c Shock Field module and Vitest suite ( #349 )
2026-09-22 03:47:52 +00:00
troytt
8dcd62df87
feat(skill-255): implement 1.13c Dragon Talon module and Vitest suite ( #348 )
2026-09-22 03:47:50 +00:00
troytt
e7c09b2e62
feat(skill-254): implement 1.13c Tiger Strike module and Vitest suite ( #347 )
2026-09-22 03:47:48 +00:00
troytt
5b2189a72e
feat(skill-253): implement 1.13c Psychic Hammer module and Vitest suite ( #346 )
2026-09-22 03:47:47 +00:00
troytt
ac9984dcc0
feat(skill-252): implement 1.13c Claw Mastery module and Vitest suite ( #345 )
2026-09-22 03:47:45 +00:00
troytt
0e30660401
feat(skill-251): implement 1.13c Fire Trauma module and Vitest suite ( #344 )
2026-09-22 03:47:43 +00:00
troytt
67d92834ca
feat(skill-250): implement 1.13c Hurricane module and Vitest suite ( #343 )
2026-09-22 03:47:42 +00:00
troytt
a32a8b21c4
feat(skill-249): implement 1.13c Armageddon module and Vitest suite ( #342 )
2026-09-22 03:47:40 +00:00
troytt
ddc040cc90
feat(skill-248): implement 1.13c Fury module and Vitest suite ( #341 )
2026-09-22 03:47:38 +00:00
troytt
996f8edff9
feat(skill-247): implement 1.13c Summon Grizzly module and Vitest suite ( #340 )
2026-09-22 03:47:36 +00:00
troytt
022375e1a3
feat(skill-246): implement 1.13c Spirit of Barbs module and Vitest suite ( #339 )
2026-09-22 03:47:35 +00:00
troytt
25b8330b06
feat(skill-245): implement 1.13c Tornado module and Vitest suite ( #338 )
2026-09-22 03:47:31 +00:00
troytt
493fe0646f
feat(skill-244): implement 1.13c Volcano module and Vitest suite ( #337 )
2026-09-22 03:47:30 +00:00
troytt
3adf8224d6
feat(skill-243): implement 1.13c Shock Wave module and Vitest suite ( #336 )
2026-09-22 03:47:28 +00:00