[Milestone M4] Necromancer Summoning Spells Tree (10 Skills) #444

Closed
opened 2026-09-24 10:49:01 +00:00 by troytt · 1 comment
Owner

Milestone M4: Necromancer Summoning Spells Tree (10 Skills)

Overview

Implementation and ground truth verification for all 10 Necromancer Summoning skills according to Diablo II v1.13c binary assembly (D2Game.dll, D2Common.dll) and MPQ authoritative tables (Skills.txt, SkillDesc.txt, MonStats.txt, PetType.txt).


1. Universal Summoning Rules & Ground Truth Invariants

  1. Golem Group 3 Mutual Exclusivity: All four golems (Clay Golem, Blood Golem, Iron Golem, Fire Golem) belong to petGroup = 3 and petType = golem. A Necromancer can have at most ONE active golem. Summoning any golem instantly evicts and unsummons the active golem.
  2. Corpse Consumption Invariant: Raise Skeleton, Raise Skeletal Mage, and Revive require a valid slain monster corpse. The corpse is consumed synchronously upon the cast frame and cannot be re-used. Act Boss corpses are non-targetable.
  3. Four-Element Skeletal Mages: Each summoned Skeletal Mage rolls an elemental type with equal probability (25% Fire, 25% Cold, 25% Lightning, 25% Poison) and casts elemental missiles via NecromageMissile (Skill ID 338).
  4. Blood Golem Life Link 1.13c Rule: When Blood Golem deals damage, 70% is converted to life and 30% directly heals the Necromancer. In accordance with 1.13c patch balance, damage taken by the Blood Golem no longer damages the Necromancer.
  5. Iron Golem Metallic Item Consumption & Item Inheritance: Iron Golem requires targeting a metallic weapon or armor item on the ground. The item is consumed permanently. The golem inherits the item's base damage, defense, sockets, and passive/item auras (e.g. Meditation, Fanaticism) in addition to native Thorns damage reflection.
  6. Revive 180s Lifespan Timer: Revived minions duplicate base monster attributes with +200% HP and +215% damage, expiring strictly at 4500 frames (180.0 seconds). Upon timer expiry, the minion despawns cleanly without dropping items or leaving a corpse.
  7. Passives Architecture: Skeleton Mastery, Golem Mastery, and Summon Resist apply stat buffs passively to active and newly summoned minions.
  8. 2:1 Isometric Ground Geometry: Minion navigation, collision, and targeting strictly adhere to ISO_GROUND_ASPECT_RATIO = 0.5.
  9. BATCH1_SKILLS Invariant: The BATCH1_SKILLS registry length is strictly preserved at 38 skills.

2. Skill Specifications (IDs 69, 70, 75, 79, 80, 85, 89, 90, 94, 95)

Skill 69: Skeleton Mastery (支配骷髏)

  • ID: 69 | ReqLevel: 1 | Prerequisites: Raise Skeleton (70) | Type: Pure Passive (passivestate: skel_mastery)
  • Effects:
    • Skeleton Warrior & Mage Life: +8 flat HP per level (lvl * par1)
    • Skeleton Warrior Damage: +2 flat base damage per level (lvl * par2)
    • Revive Monster Life: +5% HP per level (lvl * par3)
    • Revive Monster Damage: +10% damage per level (lvl * par4)
    • Minion Defense: +10 defense per level (lvl * 10)

Skill 70: Raise Skeleton (骷髏復甦)

  • ID: 70 | ReqLevel: 1 | Prerequisites: None | Mana Cost: Base 6, lvlmana 1
  • Functions: srvstfunc: 15, srvdofunc: 31 (SKILLS_SrvDo031_RaiseSkeleton_Mage)
  • Corpse Requirement: Strictly requires target valid non-boss monster corpse (consumed on cast).
  • Pet Count: (lvl < 4) ? lvl : (2 + floor(lvl / 3))
    • slvl 1: 1 Skeleton | slvl 10: 5 Skeletons | slvl 20: 8 Skeletons
  • Warrior Stats:
    • Base HP: 21 (necroskeleton) + 7 HP/lvl (lvl > 3) + Skeleton Mastery (+8 HP/lvl)
    • Defense & Attack Rating: 20 + (lvl - 1) * 15
    • Base Damage: 1-2 + 7%/lvl (lvl > 3) + Skeleton Mastery (+2 flat/lvl)

Skill 75: Clay Golem (黏土石魔)

  • ID: 75 | ReqLevel: 6 | Prerequisites: None | Mana Cost: Base 15, lvlmana 3
  • Functions: srvdofunc: 56, event handler auraeventfunc: 27 (slow on hit & when struck in melee)
  • Cap: Golem Group 3 mutual exclusivity (1 golem max).
  • Life: (100 + 35 * (lvl - 1)) * (100 + GolemMastery% + BloodGolem.blvl * 5) / 100
  • Slows Enemies: dm34 (par3=10, par4=75): slvl 1: 11% | slvl 10: 51% | slvl 20: 63% slow applied to targets and melee attackers.
  • Attack Rating: +20 AR per level (Base 65).

Skill 79: Golem Mastery (支配石魔)

  • ID: 79 | ReqLevel: 12 | Prerequisites: Clay Golem (75) | Type: Pure Passive (passivestate: golem_mastery)
  • Effects to All Golems:
    • Golem Max Life: +20% HP per level (lvl * par1)
    • Golem Walk/Run Speed: dm34 (par3=0, par4=40): slvl 1: +6% | slvl 10: +27% | slvl 20: +33%
    • Golem Attack Rating: ln56 (par5=25, par6=25): +25 AR per level

Skill 80: Raise Skeletal Mage (復甦骷髏法師)

  • ID: 80 | ReqLevel: 12 | Prerequisites: Raise Skeleton (70) | Mana Cost: Base 8, lvlmana 1
  • Functions: srvstfunc: 15, srvdofunc: 31
  • Pet Count: Same as warriors: (lvl < 4) ? lvl : (2 + floor(lvl / 3))
  • Element Distribution: 25% Fire, 25% Cold, 25% Lightning, 25% Poison randomly rolled on spawn.
  • AI Sub-Skill: NecromageMissile (ID 338) firing corresponding elemental missiles.
  • Base Stats: 61 HP (necromage) + Skeleton Mastery (+8 HP/lvl), Defense: 10 + (lvl - 1) * 10.

Skill 85: Blood Golem (鮮血石魔)

  • ID: 85 | ReqLevel: 18 | Prerequisites: Clay Golem (75) | Mana Cost: Base 25, lvlmana 4
  • Functions: srvdofunc: 56, event handler auraeventfunc: 23
  • Life Link: dm12 (par1=70, par2=140): slvl 1: 86% | slvl 10: 126% | slvl 20: 138% of damage converted to life. 30% heals Necromancer. 1.13c rule: Golem damage taken no longer damages Necromancer.
  • Base Stats: 201 HP, 6-16 Damage, 120 Defense.

Skill 89: Summon Resist (召喚反抗)

  • ID: 89 | ReqLevel: 24 | Prerequisites: Golem Mastery (79) | Type: Pure Passive (passivestate: summonresist)
  • Resistances Granted: dm12 (par1=20, par2=75, formula floor((110*lvl*55)/(100*(lvl+6))) + 20):
    • slvl 1: +28% | slvl 10: +57% | slvl 20: +66% to All Resistances (Fire, Cold, Lightning, Poison), capped at 75%.
    • Applies to: Skeletons, Skeletal Mages, Golems, and Revives.

Skill 90: Iron Golem (鋼鐵石魔)

  • ID: 90 | ReqLevel: 24 | Prerequisites: Blood Golem (85) | Mana Cost: 35 (Constant)
  • Functions: srvstfunc: 20, srvdofunc: 57
  • Item Requirement: Targets metallic weapon/armor item on ground; item is permanently consumed.
  • Item Stat Inheritance: Inherits weapon damage, armor defense, sockets, and passive/item auras (e.g. Meditation, Fanaticism).
  • Thorns Reflection: ln12 (par1=150, par2=15): slvl 1: 150% | slvl 10: 285% | slvl 20: 435% physical melee damage reflected.
  • Base Stats: 306 HP, 7-19 Damage, 175 Defense (+35/lvl).

Skill 94: Fire Golem (火焰石魔)

  • ID: 94 | ReqLevel: 30 | Prerequisites: Iron Golem (90) | Mana Cost: Base 50, lvlmana 10
  • Functions: srvdofunc: 56, death handler D2GAME_EventFunc27_6FD0F7A0, Overlay: 164 (FireGolemOverlay)
  • Holy Fire Aura: Ticks periodic radial fire damage every 50 frames and adds fire damage to melee attacks.
  • Fire Absorption: Converts 100% incoming fire damage to health (dm12: 36% to 88%).
  • Death Nova: Detonates in a Fire Nova on death, dealing fire damage to surrounding enemies.
  • Base Stats: 313 HP, 10-27 Damage, 200 Defense.

Skill 95: Revive (重生)

  • ID: 95 | ReqLevel: 30 | Prerequisites: Raise Skeletal Mage (80), Iron Golem (90) | Mana Cost: 45 (Constant)
  • Functions: srvstfunc: 21, srvdofunc: 58
  • Pet Count: lvl (slvl 1: 1 minion | slvl 10: 10 minions | slvl 20: 20 minions)
  • Lifespan: Strictly FIXED at 4500 frames = 180 seconds (3.0 minutes). Unsummons cleanly without loot/corpse.
  • Revived Minion Stats:
    • Exact duplicate of slain target monster entity.
    • Life: Base Monster Life + 200% + Skeleton Mastery (+5% per lvl).
    • Damage: Base Monster Damage + 215% + Skeleton Mastery (+10% per lvl).
    • Non-revivable filter: Act Bosses, Champions, Leapers, and suicide minions.
## Milestone M4: Necromancer Summoning Spells Tree (10 Skills) ### Overview Implementation and ground truth verification for all 10 Necromancer Summoning skills according to Diablo II v1.13c binary assembly (`D2Game.dll`, `D2Common.dll`) and MPQ authoritative tables (`Skills.txt`, `SkillDesc.txt`, `MonStats.txt`, `PetType.txt`). --- ### 1. Universal Summoning Rules & Ground Truth Invariants 1. **Golem Group 3 Mutual Exclusivity**: All four golems (Clay Golem, Blood Golem, Iron Golem, Fire Golem) belong to `petGroup = 3` and `petType = golem`. A Necromancer can have at most ONE active golem. Summoning any golem instantly evicts and unsummons the active golem. 2. **Corpse Consumption Invariant**: Raise Skeleton, Raise Skeletal Mage, and Revive require a valid slain monster corpse. The corpse is consumed synchronously upon the cast frame and cannot be re-used. Act Boss corpses are non-targetable. 3. **Four-Element Skeletal Mages**: Each summoned Skeletal Mage rolls an elemental type with equal probability (25% Fire, 25% Cold, 25% Lightning, 25% Poison) and casts elemental missiles via `NecromageMissile` (Skill ID 338). 4. **Blood Golem Life Link 1.13c Rule**: When Blood Golem deals damage, 70% is converted to life and 30% directly heals the Necromancer. In accordance with 1.13c patch balance, damage taken by the Blood Golem no longer damages the Necromancer. 5. **Iron Golem Metallic Item Consumption & Item Inheritance**: Iron Golem requires targeting a metallic weapon or armor item on the ground. The item is consumed permanently. The golem inherits the item's base damage, defense, sockets, and passive/item auras (e.g. Meditation, Fanaticism) in addition to native Thorns damage reflection. 6. **Revive 180s Lifespan Timer**: Revived minions duplicate base monster attributes with +200% HP and +215% damage, expiring strictly at 4500 frames (180.0 seconds). Upon timer expiry, the minion despawns cleanly without dropping items or leaving a corpse. 7. **Passives Architecture**: Skeleton Mastery, Golem Mastery, and Summon Resist apply stat buffs passively to active and newly summoned minions. 8. **2:1 Isometric Ground Geometry**: Minion navigation, collision, and targeting strictly adhere to `ISO_GROUND_ASPECT_RATIO = 0.5`. 9. **BATCH1_SKILLS Invariant**: The `BATCH1_SKILLS` registry length is strictly preserved at 38 skills. --- ### 2. Skill Specifications (IDs 69, 70, 75, 79, 80, 85, 89, 90, 94, 95) #### Skill 69: Skeleton Mastery (支配骷髏) - **ID**: 69 | **ReqLevel**: 1 | **Prerequisites**: Raise Skeleton (70) | **Type**: Pure Passive (`passivestate: skel_mastery`) - **Effects**: - Skeleton Warrior & Mage Life: +8 flat HP per level (`lvl * par1`) - Skeleton Warrior Damage: +2 flat base damage per level (`lvl * par2`) - Revive Monster Life: +5% HP per level (`lvl * par3`) - Revive Monster Damage: +10% damage per level (`lvl * par4`) - Minion Defense: +10 defense per level (`lvl * 10`) #### Skill 70: Raise Skeleton (骷髏復甦) - **ID**: 70 | **ReqLevel**: 1 | **Prerequisites**: None | **Mana Cost**: Base 6, lvlmana 1 - **Functions**: `srvstfunc: 15`, `srvdofunc: 31` (`SKILLS_SrvDo031_RaiseSkeleton_Mage`) - **Corpse Requirement**: Strictly requires target valid non-boss monster corpse (consumed on cast). - **Pet Count**: `(lvl < 4) ? lvl : (2 + floor(lvl / 3))` - slvl 1: 1 Skeleton | slvl 10: 5 Skeletons | slvl 20: 8 Skeletons - **Warrior Stats**: - Base HP: 21 (`necroskeleton`) + 7 HP/lvl (lvl > 3) + Skeleton Mastery (+8 HP/lvl) - Defense & Attack Rating: `20 + (lvl - 1) * 15` - Base Damage: 1-2 + 7%/lvl (lvl > 3) + Skeleton Mastery (+2 flat/lvl) #### Skill 75: Clay Golem (黏土石魔) - **ID**: 75 | **ReqLevel**: 6 | **Prerequisites**: None | **Mana Cost**: Base 15, lvlmana 3 - **Functions**: `srvdofunc: 56`, event handler `auraeventfunc: 27` (slow on hit & when struck in melee) - **Cap**: Golem Group 3 mutual exclusivity (1 golem max). - **Life**: `(100 + 35 * (lvl - 1)) * (100 + GolemMastery% + BloodGolem.blvl * 5) / 100` - **Slows Enemies**: `dm34` (par3=10, par4=75): slvl 1: 11% | slvl 10: 51% | slvl 20: 63% slow applied to targets and melee attackers. - **Attack Rating**: +20 AR per level (Base 65). #### Skill 79: Golem Mastery (支配石魔) - **ID**: 79 | **ReqLevel**: 12 | **Prerequisites**: Clay Golem (75) | **Type**: Pure Passive (`passivestate: golem_mastery`) - **Effects to All Golems**: - Golem Max Life: +20% HP per level (`lvl * par1`) - Golem Walk/Run Speed: `dm34` (par3=0, par4=40): slvl 1: +6% | slvl 10: +27% | slvl 20: +33% - Golem Attack Rating: `ln56` (par5=25, par6=25): +25 AR per level #### Skill 80: Raise Skeletal Mage (復甦骷髏法師) - **ID**: 80 | **ReqLevel**: 12 | **Prerequisites**: Raise Skeleton (70) | **Mana Cost**: Base 8, lvlmana 1 - **Functions**: `srvstfunc: 15`, `srvdofunc: 31` - **Pet Count**: Same as warriors: `(lvl < 4) ? lvl : (2 + floor(lvl / 3))` - **Element Distribution**: 25% Fire, 25% Cold, 25% Lightning, 25% Poison randomly rolled on spawn. - **AI Sub-Skill**: `NecromageMissile` (ID 338) firing corresponding elemental missiles. - **Base Stats**: 61 HP (`necromage`) + Skeleton Mastery (+8 HP/lvl), Defense: `10 + (lvl - 1) * 10`. #### Skill 85: Blood Golem (鮮血石魔) - **ID**: 85 | **ReqLevel**: 18 | **Prerequisites**: Clay Golem (75) | **Mana Cost**: Base 25, lvlmana 4 - **Functions**: `srvdofunc: 56`, event handler `auraeventfunc: 23` - **Life Link**: `dm12` (par1=70, par2=140): slvl 1: 86% | slvl 10: 126% | slvl 20: 138% of damage converted to life. 30% heals Necromancer. 1.13c rule: Golem damage taken no longer damages Necromancer. - **Base Stats**: 201 HP, 6-16 Damage, 120 Defense. #### Skill 89: Summon Resist (召喚反抗) - **ID**: 89 | **ReqLevel**: 24 | **Prerequisites**: Golem Mastery (79) | **Type**: Pure Passive (`passivestate: summonresist`) - **Resistances Granted**: `dm12` (par1=20, par2=75, formula `floor((110*lvl*55)/(100*(lvl+6))) + 20`): - slvl 1: +28% | slvl 10: +57% | slvl 20: +66% to All Resistances (Fire, Cold, Lightning, Poison), capped at 75%. - Applies to: Skeletons, Skeletal Mages, Golems, and Revives. #### Skill 90: Iron Golem (鋼鐵石魔) - **ID**: 90 | **ReqLevel**: 24 | **Prerequisites**: Blood Golem (85) | **Mana Cost**: 35 (Constant) - **Functions**: `srvstfunc: 20`, `srvdofunc: 57` - **Item Requirement**: Targets metallic weapon/armor item on ground; item is permanently consumed. - **Item Stat Inheritance**: Inherits weapon damage, armor defense, sockets, and passive/item auras (e.g. Meditation, Fanaticism). - **Thorns Reflection**: `ln12` (par1=150, par2=15): slvl 1: 150% | slvl 10: 285% | slvl 20: 435% physical melee damage reflected. - **Base Stats**: 306 HP, 7-19 Damage, 175 Defense (+35/lvl). #### Skill 94: Fire Golem (火焰石魔) - **ID**: 94 | **ReqLevel**: 30 | **Prerequisites**: Iron Golem (90) | **Mana Cost**: Base 50, lvlmana 10 - **Functions**: `srvdofunc: 56`, death handler `D2GAME_EventFunc27_6FD0F7A0`, Overlay: 164 (`FireGolemOverlay`) - **Holy Fire Aura**: Ticks periodic radial fire damage every 50 frames and adds fire damage to melee attacks. - **Fire Absorption**: Converts 100% incoming fire damage to health (`dm12`: 36% to 88%). - **Death Nova**: Detonates in a Fire Nova on death, dealing fire damage to surrounding enemies. - **Base Stats**: 313 HP, 10-27 Damage, 200 Defense. #### Skill 95: Revive (重生) - **ID**: 95 | **ReqLevel**: 30 | **Prerequisites**: Raise Skeletal Mage (80), Iron Golem (90) | **Mana Cost**: 45 (Constant) - **Functions**: `srvstfunc: 21`, `srvdofunc: 58` - **Pet Count**: `lvl` (slvl 1: 1 minion | slvl 10: 10 minions | slvl 20: 20 minions) - **Lifespan**: Strictly FIXED at 4500 frames = 180 seconds (3.0 minutes). Unsummons cleanly without loot/corpse. - **Revived Minion Stats**: - Exact duplicate of slain target monster entity. - Life: Base Monster Life + 200% + Skeleton Mastery (+5% per lvl). - Damage: Base Monster Damage + 215% + Skeleton Mastery (+10% per lvl). - Non-revivable filter: Act Bosses, Champions, Leapers, and suicide minions.
Author
Owner

Verification Report: Milestone M4 (Summoning Spells Tree)

  • Verification Commit: de5530f (feat(necro): implement Milestone M4 Necromancer Summoning Spells Tree (10 skills))
  • Test Suite Results:
    • Total Test Files Passed: 40/40
    • Total Tests Passed: 262/262
    • Key Test Suites:
      • tests/skills/nec/summoning.test.ts
      • tests/skills/nec/adv-summoning-stress.test.ts
      • tests/skills/nec/skill-069-skeleton-mastery.test.ts through skill-095-revive.test.ts
  • Invariants Verified:
    • Golem Group 3 mutual exclusivity across Clay, Blood, Iron, and Fire Golems.
    • Non-boss corpse consumption on cast frame.
    • 4-element Skeletal Mage distribution (25% Fire, Cold, Lightning, Poison).
    • Blood Golem life link 1.13c rule (no player self-damage).
    • Iron Golem metallic item consumption, stat/aura inheritance, and Thorns reflection.
    • Revive 180s (4500 frame) lifespan timer and death unsummon.
    • Passives architecture and 2:1 isometric ground geometry.

Milestone M4 is verified complete and closed.

### Verification Report: Milestone M4 (Summoning Spells Tree) - **Verification Commit**: `de5530f` (`feat(necro): implement Milestone M4 Necromancer Summoning Spells Tree (10 skills)`) - **Test Suite Results**: - Total Test Files Passed: 40/40 - Total Tests Passed: 262/262 - Key Test Suites: * `tests/skills/nec/summoning.test.ts` * `tests/skills/nec/adv-summoning-stress.test.ts` * `tests/skills/nec/skill-069-skeleton-mastery.test.ts` through `skill-095-revive.test.ts` - **Invariants Verified**: * Golem Group 3 mutual exclusivity across Clay, Blood, Iron, and Fire Golems. * Non-boss corpse consumption on cast frame. * 4-element Skeletal Mage distribution (25% Fire, Cold, Lightning, Poison). * Blood Golem life link 1.13c rule (no player self-damage). * Iron Golem metallic item consumption, stat/aura inheritance, and Thorns reflection. * Revive 180s (4500 frame) lifespan timer and death unsummon. * Passives architecture and 2:1 isometric ground geometry. Milestone M4 is verified complete and closed.
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#444
No description provided.