[Skill #350] [UNI] Delerium Change (1.13c Parity) #374

Closed
opened 2026-09-22 02:40:30 +00:00 by troytt · 2 comments
Owner

Diablo II: Lord of Destruction v1.13c Skill Parity Specification

Field Value
Skill ID 350 (#350)
Skill Name Delerium Change (skilldesc: delerium change)
Class uni (Universal / Item-Granted)
Required Level (reqlevel) 1
Prerequisites (reqskill1..3) -, -, -
Isolated Implementation Module src/game/skills/impl/uni/skill-350-delerium-change.ts
Isolated Vitest Suite tests/skills/uni/skill-350-delerium-change.test.ts

1. Authoritative 1.13c Skills.txt Function & Handler Dispatch

Function Slot 1.13c Value
srvstfunc (Server Start / Pre-Cast) -
srvdofunc (Server Action Frame 0x01/0x02) 116
srvprgfunc1..3 (Progressive Charge Release) - / - / -
cltstfunc / cltdofunc (Client Start / Action) 45 / -
cltprgfunc1..3 (Client Progressive Release) - / - / -
passive / checkfunc passive=- / checkfunc=-
auraevent1 / auraeventfunc1 - / -

2. Associated Missiles, States, Auras, Curses & Summons

Subsystem 1.13c Configuration
Server Missiles (srvmissile / a..c) - / a:-, b:-, c:-
Client Missiles (cltmissile / cltmissilea) - / -
Aura / Buff States (aurastate / auratgtstate) self:delerium / tgt:-
Aura / Buff Stats (aurastat1..3) velocitypercent, attackrate, other_animrate
Passive State & Stats (passivestate / passivestat1..3) state:- / -, -, -
Curse Priority (cursetype) -
Summon / Pet (summon / pettype / petmax) mon:- / type:- / max:-

3. 1.13c Base Numerical & Synergy Formulas (Patch_D2.mpq)

  • Mana Cost: mana=-, lvlmana=- (256-fixed-point << HitShift)
  • Physical / Elemental Damage: MinDam=-, MaxDam=-, EType=-, EMin=-, EMax=-, ELen=-
  • AST calc1..4: calc1=-, calc2=-, calc3=-, calc4=-
  • Synergy Calculations (blvl strictly base allocated STAT_SKILLPTS only):
    • EDmgSymPerCalc: -
    • DmgSymPerCalc: -
    • ELenSymPerCalc: -

4. R3 Verification & Merge Checklist

  • Isolated Git Worktree: Created via git worktree add ../wt-skill-350 -b feat/skill-350 from main.
  • 1.13c Implementation: src/game/skills/impl/uni/skill-350-delerium-change.ts implements exact 1.13c srvstfunc/srvdofunc/srvprgfunc & numerical evaluation.
  • Automated Unit & Numerical Tests (slvl 1, 10, 20 + blvl Synergies): tests/skills/uni/skill-350-delerium-change.test.ts passes 100% in Vitest verifying ManaCost, MinDmg, MaxDmg, ToHit, Duration, Radius, synergy scaling, and runtime combat/missile/state/summon effect.
  • Real-Browser Casting & Screenshot: Executed in headless Chromium (acts.html?arena=1&class=uni&skill=350&slvl=20&autocast=1) with zero console/page errors and PNG screenshot attached to this Issue.
  • Merge & Cleanup: Merged to main with fixes #<issue_number>, pushed to origin/main, verified Issue is closed, and removed worktree ../wt-skill-350 + branch feat/skill-350.
## Diablo II: Lord of Destruction v1.13c Skill Parity Specification | Field | Value | |---|---| | **Skill ID** | `350` (`#350`) | | **Skill Name** | **Delerium Change** (`skilldesc: delerium change`) | | **Class** | `uni` (Universal / Item-Granted) | | **Required Level (`reqlevel`)** | `1` | | **Prerequisites (`reqskill1..3`)** | `-`, `-`, `-` | | **Isolated Implementation Module** | `src/game/skills/impl/uni/skill-350-delerium-change.ts` | | **Isolated Vitest Suite** | `tests/skills/uni/skill-350-delerium-change.test.ts` | --- ### 1. Authoritative 1.13c `Skills.txt` Function & Handler Dispatch | Function Slot | 1.13c Value | |---|---| | **`srvstfunc`** (Server Start / Pre-Cast) | `-` | | **`srvdofunc`** (Server Action Frame `0x01`/`0x02`) | `116` | | **`srvprgfunc1..3`** (Progressive Charge Release) | `-` / `-` / `-` | | **`cltstfunc` / `cltdofunc`** (Client Start / Action) | `45` / `-` | | **`cltprgfunc1..3`** (Client Progressive Release) | `-` / `-` / `-` | | **`passive` / `checkfunc`** | `passive=-` / `checkfunc=-` | | **`auraevent1` / `auraeventfunc1`** | `-` / `-` | ### 2. Associated Missiles, States, Auras, Curses & Summons | Subsystem | 1.13c Configuration | |---|---| | **Server Missiles (`srvmissile` / `a..c`)** | `-` / `a:-`, `b:-`, `c:-` | | **Client Missiles (`cltmissile` / `cltmissilea`)** | `-` / `-` | | **Aura / Buff States (`aurastate` / `auratgtstate`)** | `self:delerium` / `tgt:-` | | **Aura / Buff Stats (`aurastat1..3`)** | `velocitypercent`, `attackrate`, `other_animrate` | | **Passive State & Stats (`passivestate` / `passivestat1..3`)** | `state:-` / `-`, `-`, `-` | | **Curse Priority (`cursetype`)** | `-` | | **Summon / Pet (`summon` / `pettype` / `petmax`)** | `mon:-` / `type:-` / `max:-` | ### 3. 1.13c Base Numerical & Synergy Formulas (`Patch_D2.mpq`) - **Mana Cost**: `mana=-`, `lvlmana=-` (256-fixed-point `<< HitShift`) - **Physical / Elemental Damage**: `MinDam=-`, `MaxDam=-`, `EType=-`, `EMin=-`, `EMax=-`, `ELen=-` - **AST `calc1..4`**: `calc1=-`, `calc2=-`, `calc3=-`, `calc4=-` - **Synergy Calculations (`blvl` strictly base allocated `STAT_SKILLPTS` only)**: - `EDmgSymPerCalc`: `-` - `DmgSymPerCalc`: `-` - `ELenSymPerCalc`: `-` --- ### 4. R3 Verification & Merge Checklist - [ ] **Isolated Git Worktree**: Created via `git worktree add ../wt-skill-350 -b feat/skill-350` from `main`. - [ ] **1.13c Implementation**: `src/game/skills/impl/uni/skill-350-delerium-change.ts` implements exact 1.13c `srvstfunc`/`srvdofunc`/`srvprgfunc` & numerical evaluation. - [ ] **Automated Unit & Numerical Tests (`slvl` 1, 10, 20 + `blvl` Synergies)**: `tests/skills/uni/skill-350-delerium-change.test.ts` passes 100% in Vitest verifying `ManaCost`, `MinDmg`, `MaxDmg`, `ToHit`, `Duration`, `Radius`, synergy scaling, and runtime combat/missile/state/summon effect. - [ ] **Real-Browser Casting & Screenshot**: Executed in headless Chromium (`acts.html?arena=1&class=uni&skill=350&slvl=20&autocast=1`) with zero console/page errors and PNG screenshot attached to this Issue. - [ ] **Merge & Cleanup**: Merged to `main` with `fixes #<issue_number>`, pushed to `origin/main`, verified Issue is `closed`, and removed worktree `../wt-skill-350` + branch `feat/skill-350`.
troytt added this to the All Player Skills (v1.13c Parity) milestone 2026-09-22 02:40:30 +00:00
Author
Owner

✅ Completed: [Skill #350] Delerium Change (UNI) — 1.13c Parity Verified

  • Worktree & Branch: ../wt-skill-350 (feat/skill-350)
  • Skill Module: src/game/skills/impl/uni/skill-350-delerium-change.ts
  • Vitest Suite: tests/skills/uni/skill-350-delerium-change.test.ts
  • 1.13c Numbers (slvl 1 / 10 / 20): Mana 0 / 0 / 0, Phys 0-0 / 0-0 / 0-0, Elem 0-0 / 0-0 / 0-0 (mag)
  • Chromium Arena Telemetry: ready=true, castCount=1, anim=SC:7, consoleErrors=0

Skill #350 Delerium Change

### ✅ Completed: [Skill #350] Delerium Change (`UNI`) — 1.13c Parity Verified - **Worktree & Branch**: `../wt-skill-350` (`feat/skill-350`) - **Skill Module**: `src/game/skills/impl/uni/skill-350-delerium-change.ts` - **Vitest Suite**: `tests/skills/uni/skill-350-delerium-change.test.ts` - **1.13c Numbers (slvl 1 / 10 / 20)**: Mana `0` / `0` / `0`, Phys `0-0` / `0-0` / `0-0`, Elem `0-0` / `0-0` / `0-0` (`mag`) - **Chromium Arena Telemetry**: `ready=true, castCount=1, anim=SC:7, consoleErrors=0` ![Skill #350 Delerium Change](https://git.projectdiablo2.cn/attachments/c69a789c-ea0b-4f4f-969e-5da293a65dc4)
Author
Owner

Cohort 8 Universal Skills 1.13c Parity Verification — Skill #350 (Delerium Change)

D2MOO C++ Ground Truth References

  • SKILLS_SrvDo116_Wearwolf_Wearbear (D2Game/src/SKILLS/SkillDruid.cpp:262)
  • sub_6FD11C90 (D2Game/src/SKILLS/Skills.cpp:1770)
  • sub_6FCFE0E0 (D2Game/src/SKILLS/SkillDruid.cpp:203)
  • D2Common_SKILLS_CheckShapeRestriction_6FDB1380 (D2Common/src/D2Skills.cpp:1819)

1.13c Parity Verification Summary

  • Verified STATE_DELERIUM (177, Group 3 mutual exclusion with wolf/bear, Bone Fetish hcIdx = 212) applied for 1500 frames (60s) with +33% velocitypercent, +33% attackrate, and +33% other_animrate; verified manual unmorph toggle when casting Skill 350 while already morphed; verified pre-cast form restriction blocking prohibited skills while in delerium form.
  • Verification Gate: npx vitest run tests/skills/universal/universal-skills.test.ts — 100% PASS.
## Cohort 8 Universal Skills 1.13c Parity Verification — Skill #350 (`Delerium Change`) ### D2MOO C++ Ground Truth References - `SKILLS_SrvDo116_Wearwolf_Wearbear` (`D2Game/src/SKILLS/SkillDruid.cpp:262`) - `sub_6FD11C90` (`D2Game/src/SKILLS/Skills.cpp:1770`) - `sub_6FCFE0E0` (`D2Game/src/SKILLS/SkillDruid.cpp:203`) - `D2Common_SKILLS_CheckShapeRestriction_6FDB1380` (`D2Common/src/D2Skills.cpp:1819`) ### 1.13c Parity Verification Summary - Verified `STATE_DELERIUM` (`177`, Group 3 mutual exclusion with `wolf`/`bear`, Bone Fetish `hcIdx = 212`) applied for `1500` frames (`60s`) with `+33% velocitypercent`, `+33% attackrate`, and `+33% other_animrate`; verified manual unmorph toggle when casting Skill 350 while already morphed; verified pre-cast form restriction blocking prohibited skills while in `delerium` form. - **Verification Gate**: `npx vitest run tests/skills/universal/universal-skills.test.ts` — **100% PASS**.
Sign in to join this conversation.
No Label
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#374
No description provided.