troytt
16f2f5ef4a
feat(skills): add Milestone M30 All 7 Classes Global Master Parity Gate suite
2026-09-25 04:01:20 +00:00
troytt
a70ab93a61
test(skills): implement Assassin Milestone M29 Class Gate & End-to-End Suite (30/30 skills)
...
- Add adv-ass-e2e-gate.test.ts covering all 8 core cross-tree scenarios:
1. Traps Tree Synergy Network & 5-Band Progression (LS +720%, DS corpse explosion, Blade weapon scaling 3/8 and 3/4).
2. Martial Arts Charge-Up & Finisher Discharge Pipeline (multi-skill charges, single-tier Phoenix Strike, Dragon Talon multi-kicks, Dragon Claw dual strikes).
3. Shadow Disciplines Buff Mechanics & Venom Bitrate Clamp (BoS vs Fade cancellation, Venom 10-frame clamp, CoS recast lockout).
4. Minion & Summon Caps (5 Traps + 1 Shadow = 6 Max concurrent pets).
5. NextDelay Collision Avoidance Across Trees (WoF 4f, Shock Web 25f, Dragon Flight 4f).
6. Cross-Tree Hybrid Build Integration (Trapper / Kicksin / Shadow).
7. Crowd Control & Status Effects (Mind Blast 4y stun/conversion, Psychic Hammer KB, CoS blind).
8. Complete 30-Skill Assassin Tree Data Registry & Invariants (IDs 251..280 exist in D2DataRegistry, BATCH1_SKILLS length = 38).
- All 34 Assassin test files pass (166/166 tests passed).
- TypeScript Typecheck (tsc --noEmit) passes with 0 errors.
2026-09-25 03:52:03 +00:00
troytt
8d15aac80f
feat(skills): implement Assassin Shadow Disciplines tree with 1.13c parity (Milestone M28)
...
- Implement Claw Mastery scaling (AR, ED, diminishing returns Critical Strike).
- Implement ShadowBuffTracker for Burst of Speed vs Fade mutual cancellation, duration, and Venom coexistence.
- Implement resolveVenomPoisonClamp for strict 10-frame (0.4s) duration clamp and bitrate summing.
- Implement resolveWeaponBlock with dual-claw requirement and 0% block while running.
- Implement Cloak of Shadows defense debuff/buff, duration, and recast lockout.
- Implement Psychic Hammer 50/50 phys/magic damage and target-rank knockback scaling.
- Implement Mind Blast physical damage, 4-yard AOE stun, and conversion chance with boss/unique immunity.
- Implement ShadowMinionManager for PetType limit = 1, mutual replacement, Warrior mirroring, and Master autonomous slvl scaling.
- Add adv-ass-shadow-stress.test.ts verifying all 7 adversarial test categories (21 tests passed).
- All 10 Shadow Disciplines unit tests (#252 , #253 , #258 , #263 , #264 , #267 , #268 , #273 , #278 , #279 ) and typecheck pass.
2026-09-25 03:45:44 +00:00
troytt
3e85a8059d
feat(skills): implement Assassin Martial Arts tree with 1.13c parity (Milestone M27)
...
- Implement ChargeOrbManager for 1..3 tier charge accumulation, 375-frame (15.0s) duration, timeout expiration, duration refresh, and multi-skill coexistence.
- Implement resolveFinisherDischarge for full discharge on finisher contact (Tiger Strike ED%, Cobra Strike life/mana steal, Claws of Thunder cumulative elemental tiers, Phoenix Strike single tier payload).
- Implement Dragon Talon multi-kicks (1 + floor(slvl/6)) and AR scaling.
- Implement Dragon Claw dual-claw check, 2 strikes, and Claw Mastery synergy.
- Implement Dragon Tail physical-to-fire conversion (50 + 10*(slvl-1)%), 6 subtiles AOE, and knockback.
- Implement Dragon Flight teleport kick, NextDelay = 4 frames, and ED% scaling.
- Add adv-ass-martial-stress.test.ts verifying all 7 adversarial test categories (16 tests passed).
- All 10 Martial Arts unit tests (#254 , #255 , #259 , #260 , #265 , #269 , #270 , #274 , #275 , #280 ) and typecheck pass.
2026-09-25 03:38:21 +00:00
troytt
880b196c43
feat(ass): Milestone M26 Assassin Asset Pipeline and Trap Mechanics ( closes #473 )
2026-09-25 03:30:28 +00:00
troytt
2e65415aed
feat(dru): Milestone M25 Druid Class Gate & End-to-End Suite across all 30 skills ( closes #472 )
2026-09-25 03:11:06 +00:00
troytt
853f61d634
feat(dru): Milestone M24 Druid Summoning skills, pet exclusivity, spirit auras, corpse cycles, and stress suite ( closes #471 )
2026-09-25 03:06:36 +00:00
troytt
0c5f5a88ab
feat(dru): Milestone M23 Druid Shape Shifting skills, form states, charge orbs, contagion, and stress suite ( closes #470 )
2026-09-25 02:56:20 +00:00
troytt
5eded536ef
feat(dru): Milestone M22 Druid elemental skills pure calculators, absorption, kinematics, and stress suite ( closes #469 )
2026-09-25 02:51:27 +00:00
troytt
51ac3b2d77
feat(dru): Milestone M21 Druid asset pipeline and foundation ( closes #468 )
2026-09-25 02:35:14 +00:00
troytt
1f14b311c7
feat(bar): Barbarian Class Final Quality Gate & E2E Verification (30/30 Skills)
...
- Complete E2E verification across all 30 Barbarian skills (IDs 126–155)
- Cross-tree Warcry buff duration network (Shout, Battle Orders, Battle Command)
- Berserk 100% magic conversion & zero-defense vulnerability duration
- Frenzy momentum speed scaling & dual-wield requirements
- Whirlwind uninterruptible path sweeping & 4-frame hit checks
- War Cry 5-band physical damage progression & stun length
- Combat Masteries & Critical Strike sequential roll without 4x stacking
- Refined weapon matching for cryptic axe, poleaxe, and mauls
- Enforces BATCH1_SKILLS length invariant = strictly 38
- Fixes #467
2026-09-25 02:12:47 +00:00
troytt
dbd80db251
feat(bar): implement Barbarian Warcries (IDs 130, 131, 137, 138, 142, 146, 149, 150, 154, 155)
...
- Authoritative 1.13c parity for 10 Barbarian Warcries
- Exact Shout, Battle Orders, Battle Command duration scaling & mutual synergies
- Exact 5-band physical damage progression for War Cry with +6%/blvl synergies
- Authentic Battle Cry defense/damage debuff scaling and duration
- Authentic Taunt forced melee & debuff progression
- Diminishing returns for Find Potion and Find Item
- Grim Ward 1000-frame (40s) totem duration & flee radius scaling
- Adversarial stress tests (slvl 0, 1, 10, 20, 99)
- Enforces BATCH1_SKILLS length invariant = strictly 38
- Fixes #466
2026-09-25 02:07:49 +00:00
troytt
0c3388b18b
feat(bar): implement Barbarian Combat Masteries (IDs 127-129, 134-136, 141, 145, 148, 153)
...
- Authoritative 1.13c parity for 10 Barbarian Combat Masteries
- Exact linear AR, Damage, Stamina, Defense progression
- Exact diminishing returns Critical Strike (dm56), Speed, Resist All (dm12)
- Sequential roll for Critical Strike & Deadly Strike
- Adversarial stress tests (slvl 0, 1, 10, 20, 99)
- Enforces BATCH1_SKILLS length invariant = strictly 38
- Fixes #465
2026-09-25 02:02:04 +00:00
troytt
bd4920f3aa
feat(bar): implement Barbarian Combat Skills (IDs 126, 132, 133, 139, 140, 143, 144, 147, 151, 152)
...
- Authoritative 1.13c parity for 10 Barbarian Combat skills
- Exact damage, attack rating, mana, duration, and knockback formulas
- 6-part synergy integration (Bash, Stun, Double Swing, Concentrate, Frenzy, Berserk)
- Adversarial stress tests (slvl 0, 1, 10, 20, 99)
- Enforces BATCH1_SKILLS length invariant = strictly 38
- Fixes #464
2026-09-25 01:56:23 +00:00
troytt
98210321da
feat(bar): Milestone M16 Barbarian asset pipeline and foundation
...
- Extracted and baked authentic Diablo II v1.13c missile DCC sprites from MPQ archives:
* BAYellShockWave01 (Howl, Shout, Battle Cry, Battle Command, Battle Orders)
* WarcryShockwave (War Cry)
* GrimWardSmallStart, GrimWardSmall, GrimWardSmallStop
* GrimWardMediumStart, GrimWardMedium, GrimWardMediumStop
* GrimWardLargeStart, GrimWardLarge, GrimWardLargeStop
- Extracted and baked authentic v1.13c overlay DCC sprites with Trans=3 additive blending:
* ShoutStart, Shout, BattleCry, BattleOrdersStart, BattleOrders
* BattleCommandStart, BattleCommand, BerserkOverlay, Frenzy, WarcryHit
- Added aliases for Taunt (CurseConfuseEffect) and Stun (Stun)
- Generated typed metadata in src/render/missiles-meta.ts and src/render/overlays-meta.ts
- Added comprehensive unit and adversarial test suites:
* tests/skills/bar/bar-assets.test.ts
* tests/skills/bar/adv-bar-assets-audit.test.ts
- Passed 38/38 test files (196/196 tests green, 0 typecheck errors)
- Preserved BATCH1_SKILLS length = 38 and zero runtime MPQ invariant
Closes #463
2026-09-25 01:46:57 +00:00
troytt
143383b93c
feat(skills): add Amazon class gate and full E2E verification suite ( closes #462 )
...
- Add adv-ama-e2e-gate.test.ts covering all 30 Amazon skills (IDs 6–35)
- Verify cross-tree synergies (Guided Arrow + Pierce + Critical Strike, Lightning Fury + Pierce cascades, Valkyrie + Decoy)
- Validate crowd control mechanics (Slow Missiles velocity dampening, Inner Sight flat defense reduction)
- Verify Fend multi-target thrash & 1.13c Dodge/Avoid/Evade evasion interrupt bug handling
- Verify casting delays (Poison Javelin 12f, Plague Javelin 100f, Immolation Arrow 25f, Valkyrie 150f)
- 36/36 Amazon test files passing (182/182 tests green), typecheck clean, 0 regressions
2026-09-25 01:29:04 +00:00
troytt
8ba4908572
feat(skills): implement Amazon Javelin and Spear skill tree with 1.13c parity ( closes #461 )
...
- Implement 10 Javelin & Spear skills: Jab (10), Power Strike (14), Poison Javelin (15), Impale (19), Lightning Bolt (20), Charged Strike (24), Plague Javelin (25), Fend (30), Lightning Strike (34), Lightning Fury (35)
- Wire 1.13c 5-band scaling, synergy matrices, mana curves, casting delays (Poison Javelin 12f, Plague Javelin 100f)
- Add comprehensive adversarial stress test suite adv-ama-javelin-spear-stress.test.ts (13/13 passing)
- Maintain BATCH1_SKILLS length = 38 invariant and zero runtime MPQ reads
- 100% typecheck clean and 0 regressions against existing test suite
2026-09-25 01:24:22 +00:00
troytt
1e5b02f0d6
feat(ama): implement Milestone M13 Amazon Passive and Magic skills tree ( #460 )
2026-09-24 20:10:40 +00:00
troytt
88c57f7ed6
feat(ama): implement Milestone M12 Amazon Bow and Crossbow skills tree ( #459 )
2026-09-24 19:08:16 +00:00
troytt
e3f03b255e
fix(ama): update baseline entity count and explodingarrowexp test expectations ( #458 )
2026-09-24 18:23:28 +00:00
troytt
e6b3c5b06d
feat(ama): implement Milestone M11 Amazon assets, animations & foundation setup ( #458 )
2026-09-24 18:07:04 +00:00
troytt
7b1a1de8c0
fix(necro): resolve 7 pre-existing 1.13c parity test regressions ( #453 )
2026-09-24 17:32:34 +00:00
troytt
b2b8a270b4
fix(test): align test expectations and monster max resistance with 1.13c parity
2026-09-24 17:30:38 +00:00
troytt
4e79c4731d
feat(pal): implement Milestone M10 Paladin Gate and full class E2E verification suite
2026-09-24 17:22:01 +00:00
troytt
a88b02ae33
test: fix 29 pre-existing vitest failures and ensure test hygiene ( Fixes #451 )
2026-09-24 17:15:59 +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
1a5f897cd6
feat(pal): implement Milestone M9 Paladin Defensive Auras tree (10 skills)
2026-09-24 16:05: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
6f935bccf6
feat(debug): add monster density and elite chance selectors to acts.html ( Fixes #450 )
2026-09-24 14:50:27 +00:00
troytt
ff2d091254
feat(paladin): implement Milestone M8 Paladin Offensive Auras tree
...
- Implement 1.13c exact calculators for all 10 Paladin Offensive Auras in skills.ts:
- Might (98): Party physical %ED (40% + 10%/lvl)
- Holy Fire (102): Radial fire pulse + weapon added fire damage, Resist Fire (+18%) and Salvation (+6%) synergies
- Thorns (103): Melee physical reflection (250% + 40%/lvl), physical resistance mitigation, PvP 1/4th penalty
- Blessed Aim (108): Active party %AR, +5% passive AR per hard point even when inactive
- Concentration (113): Party %ED, 20% uninterrupted attack chance, +50% Blessed Hammer synergy
- Holy Freeze (114): Continuous enemy slow (25%..54%), CBF bypass, cold pulse + weapon cold damage, synergies
- Holy Shock (118): Radial lightning pulse (1..max), weapon lightning damage, Resist Lightning (+12%) and Salvation (+4%) synergies
- Sanctuary (119): Radial magic pulse + knockback vs Undead, sets Undead physical resistance to 0%, %ED vs Undead
- Fanaticism (122): Caster IAS, %AR, asymmetric caster %ED vs ally %ED (strictly half)
- Conviction (123): Enemy defense % and elemental resistance reduction (-30%..-150%), 1/5th immunity breaking (-6%..-30%), zero impact on Poison/Magic, caster immunity
- Engine integrations:
- stat-list.ts: Blessed Aim passive AR (blvl * 5%)
- combat-pipeline.ts: Sanctuary Undead phys res zeroing, Thorns PvP reflection, Fanaticism caster/ally split, Concentration uninterrupted chance, added weapon elemental damage
- state-bus.ts: Thorns melee reflection trigger
- aura-scanner.ts: 50-tick cadence in 2:1 isometric ground space
- per-skill modules: re-export calculators for skills 98-123
- Add comprehensive test suites:
- tests/skills/pal/offensive-auras.test.ts (21 tests)
- tests/skills/pal/adv-pal-auras-stress.test.ts (5 adversarial scenarios)
- Preserve BATCH1_SKILLS length invariant strictly at 38 skills
2026-09-24 14:34:31 +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
a7110143fc
fix(monsters): enforce 1.13c champion [2,4] and unique [3,6] minion pack sizes ( Fixes #448 )
2026-09-24 14:01:16 +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
48183d3b82
feat(paladin): implement Milestone M7 Paladin Combat Skills Tree (10 skills)
2026-09-24 13:42:00 +00:00
troytt
62f4b4172e
fix(monsters): align monster density and champion/unique elite generation with 1.13c Levels.txt ( Fixes #448 )
2026-09-24 13:26:34 +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
e3a7918a16
fix(ground): hover ground item reveals label & fix grand charm flippy sprite ( Fixes #447 , Fixes #452 )
...
- Hover ground item icon reveals authentic name label without needing Alt key (Fixes #447 )
- Connect SceneMouseController pointermove/pointerleave with GroundLabelOverlay hover callback and ladder layout rendering
- Correct Grand Charm (cm3) and Gheed's Fortune ground flippy sprite mapping to flpchm3 (Fixes #452 )
- Correct Small Charm (cm1) and Large Charm (cm2) default flippy mappings to flpchm1 and flpchm2
- Add 1.13c charm ground flippy resolution tier and Chinese semantic fallbacks in resolveGroundItemSpriteRect
- Add comprehensive vitest suites in tests/charm-ground-flippy-parity.test.ts and tests/ground-items-alt-labels.test.ts
2026-09-24 13:06:15 +00:00
troytt
af2671c14a
fix(ground): resolve monster-drop ground sprites from padded .d2s item codes
...
Pipeline-built Items carry code as the 4-byte space-padded .d2s field
('dr3 '), so the codeToFlippyFile lookup missed and every drop fell through
to the inventory-size guess (2x2 -> invbox, the Horadric Cube). Picking the
item up rebuilt it via itemToUiInventoryItem, which is why re-dropping
looked correct. Normalize the code (trim, fall back to base.id) in both
resolveItemSpriteRect and resolveGroundItemSpriteRect.
Adds tests/ground-drop-sprite.test.ts: raw-drop sprite == post-pickup sprite
for 400 Act 1 Champ A rolls, and every droppable base with a baked flippy
resolves to it directly.
2026-09-24 12:30:30 +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
0aa6c3680d
feat(paladin): Milestone M6 — 1.13c Paladin assets packaging & metadata registry
...
- Update scripts/pack-missiles.ts with Paladin missiles (fistoftheheavensbolt, foa, blessedhammerex, blood1) with trans: 1 and dark border suppression max(r,g,b) <= 4 -> alpha = 0.
- Update scripts/pack-overlays.ts with 16 Paladin combat, cast, hit, and state overlays (charge, conversion, conversioncast, holy_bolt_cast, fist_of_the_heavens_cast, handofgod, sanctuary_knockback, holy_fire_hit, holy_fire_indicate, thorns_hit, thorns_indicate, cast_resistfire, cast_resistcold, cast_resistlight, cast_resistall, stun) with preDraw flags and trans: 3 dark halo thresholding.
- Bake and mirror assets across public/ and samples/d2-packs/.
- Generate compile-time metadata in src/render/missiles-meta.ts and src/render/overlays-meta.ts with zero runtime MPQ invariant.
- Add comprehensive unit tests in tests/skills/pal/pal-assets.test.ts.
- Add adversarial coverage audit tests in tests/skills/pal/adv-pal-assets-audit.test.ts.
- Resolves Gitea issue #445 .
2026-09-24 11:30:34 +00:00
troytt
ef86fc55f3
test(drop): end-to-end deterministic drop tests and headless browser audit ( Fixes #408 )
2026-09-24 11:13:35 +00:00
troytt
a19ded4c7b
Merge branch 'fix/cave-darkness-tuning'
2026-09-24 10:46:43 +00:00
troytt
c079ea4cb4
fix(lighting): calibrate isometric sub-tile torch radii and cave quadratic falloff
2026-09-24 10:46:30 +00:00