[Milestone M3] Necromancer Curses Tree (10 Skills) #443
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Milestone M3: Necromancer Curses Tree (10 Skills)
Overview
Implementation and ground truth verification for all 10 Necromancer Curse skills according to Diablo II v1.13c binary assembly (
D2Game.dll,D2Common.dll) and MPQ authoritative tables (Skills.txt,SkillDesc.txt,Missiles.txt,Overlay.txt).1. Universal Curse Rules & Priority Architecture
cursetype = 1. Casting a new standard curse unconditionally overwrites and evicts any existingcursetype = 1curse on the target.cursetype = 2. It CANNOT be overwritten by any curse (cursetype = 1or2). Attempts to apply another curse yieldApplyStateResult.blockedByAttract.monflags & MONFLAG_BOSS). Physical/combat curses (Amplify Damage, Weaken, Iron Maiden, Life Tap, Decrepify, Lower Resist) apply universally across all monster ranks.Math.trunc(penalty / 5)).ISO_GROUND_ASPECT_RATIO = 0.5).cursecast(148) andcursecenter(192), and binds overhead animated looping overlays (Overlays 128-137).2. Skill Specifications (IDs 66, 71, 72, 76, 77, 81, 82, 86, 87, 91)
Skill 66: Amplify Damage (傷害加深)
srvdofunc: 30, State:amplifydamage, Overhead Overlay: 128 (CurseAmplifyDamageEffect)ln34(par3=200, par4=75): slvl 1: 200 frames (8.0s) | slvl 10: 875 frames (35.0s) | slvl 20: 1625 frames (65.0s)ln12(par1=3, par2=1 sub-tiles): slvl 1: 3 sub-tiles (2.0 yds) | slvl 10: 12 sub-tiles (8.0 yds) | slvl 20: 22 sub-tiles (14.7 yds)Skill 71: Dim Vision (微暗靈視)
srvdofunc: 30, State:dimvision, Overhead Overlay: 129 (CurseDimVisionEffect)ln34(par3=175, par4=50): slvl 1: 175 frames (7.0s) | slvl 10: 625 frames (25.0s) | slvl 20: 1125 frames (45.0s)ln12(par1=4, par2=1 sub-tiles): slvl 1: 4 sub-tiles (2.7 yds) | slvl 10: 13 sub-tiles (8.7 yds) | slvl 20: 23 sub-tiles (15.3 yds)Skill 72: Weaken (削弱)
srvdofunc: 30, State:weaken, Overhead Overlay: 130 (CurseWeakenEffect)ln34(par3=350, par4=60): slvl 1: 350 frames (14.0s) | slvl 10: 890 frames (35.6s) | slvl 20: 1490 frames (59.6s)ln12(par1=9, par2=1 sub-tiles): slvl 1: 9 sub-tiles (6.0 yds) | slvl 10: 18 sub-tiles (12.0 yds) | slvl 20: 28 sub-tiles (18.7 yds)Skill 76: Iron Maiden (攻擊反噬)
srvdofunc: 30, event handlerauraeventfunc: 4ondamagedinmelee, State:ironmaiden, Overlay: 131, Hit Overlay: 138ln34(par3=300, par4=60): slvl 1: 300 frames (12.0s) | slvl 10: 840 frames (33.6s) | slvl 20: 1440 frames (57.6s)ln12(par1=7, par2=0) -> FIXED at 7 sub-tiles (4.7 yards) across all levelsln56(par5=200, par6=25): slvl 1: 200% | slvl 10: 425% | slvl 20: 675% physical melee damage reflected to attacker. (Ranged attacks/spells bypass).Skill 77: Terror (恐懼)
srvdofunc: 30, State:terror, Overhead Overlay: 132 (CurseTerrorEffect)ln34(par3=200, par4=25): slvl 1: 200 frames (8.0s) | slvl 10: 425 frames (17.0s) | slvl 20: 675 frames (27.0s)ln12(par1=4, par2=0) -> FIXED at 4 sub-tiles (2.7 yards) across all levelsSkill 81: Confuse (迷亂)
srvdofunc: 61(SKILLS_SrvDo061_Confuse), State:confuse, Overhead Overlay: 135ln34(par3=250, par4=50): slvl 1: 250 frames (10.0s) | slvl 10: 700 frames (28.0s) | slvl 20: 1200 frames (48.0s)ln12(par1=6, par2=1 sub-tiles): slvl 1: 6 sub-tiles (4.0 yds) | slvl 10: 15 sub-tiles (10.0 yds) | slvl 20: 25 sub-tiles (16.7 yds)Skill 82: Life Tap (偷取生命)
srvdofunc: 30, event handlerauraeventfunc: 5, State:lifetap, Overhead Overlay: 134ln34(par3=400, par4=60): slvl 1: 400 frames (16.0s) | slvl 10: 940 frames (37.6s) | slvl 20: 1540 frames (61.6s)ln12(par1=4, par2=1 sub-tiles): slvl 1: 4 sub-tiles (2.7 yds) | slvl 10: 13 sub-tiles (8.7 yds) | slvl 20: 23 sub-tiles (15.3 yds)Math.trunc(remPhys256 / 2)) of damage dealt. Unaffected by difficulty drain penalties or skeleton/undead drain immunities.Skill 86: Attract (吸引)
srvstfunc: 18,srvdofunc: 59, State:attract, Overhead Overlay: 133ln34(par3=300, par4=90): slvl 1: 300 frames (12.0s) | slvl 10: 1110 frames (44.4s) | slvl 20: 2010 frames (80.4s)ln12(par1=9, par2=0) -> FIXED at 9 sub-tiles (6.0 yards) across all levelscursetype = 2(cannot be overwritten by any curse). Boss/Champion immune.Skill 87: Decrepify (衰老)
srvdofunc: 30, State:decrepify, Overhead Overlay: 136ln34(par3=100, par4=15): slvl 1: 100 frames (4.0s) | slvl 10: 235 frames (9.4s) | slvl 20: 385 frames (15.4s)ln12(par1=6, par2=0) -> FIXED at 6 sub-tiles (4.0 yards) across all levelsSkill 91: Lower Resist (降低抵抗)
srvdofunc: 30, State:lowerresist, Overhead Overlay: 137ln34(par3=500, par4=50): slvl 1: 500 frames (20.0s) | slvl 10: 950 frames (38.0s) | slvl 20: 1450 frames (58.0s)ln12(par1=7, par2=1 sub-tiles): slvl 1: 7 sub-tiles (4.7 yds) | slvl 10: 16 sub-tiles (10.7 yds) | slvl 20: 26 sub-tiles (17.3 yds)dm56(par5=30, par6=70, diminishing returns formulafloor((110*lvl*40)/(100*(lvl+6))) + 30):Verification Report: Milestone M3 (Curses Tree)
bfc1164(feat(necro): implement Milestone M3 Necromancer Curses Tree (10 skills))tests/skills/nec/curses.test.tstests/skills/nec/adv-curses-stress.test.tstests/skills/nec/skill-066-amplify-damage.test.tsthroughskill-091-lower-resist.test.tscursetype = 2inviolability to overwrite.cursetype = 1replacement).Milestone M3 is verified complete and closed.