From ddad686654218c6d0c698943196f163576ade8c1 Mon Sep 17 00:00:00 2001 From: troytt <47798984@qq.com> Date: Wed, 23 Sep 2026 11:04:11 +0000 Subject: [PATCH] feat(skills): implement Blizzard (Skill 59) with 1.13c parity and baked missile assets (Ref #400) - Add authoritative 64-entry circle lookup table (BLIZZARD_CIRCLE_X, BLIZZARD_CIRCLE_Y) matching D2Game.dll 0x6FD1C960 with 2:1 isometric projection (ISO_GROUND_ASPECT_RATIO = 0.5) - Pack authentic DCC missile sprites (blizzard1..3, blizzardexplode1..2, blizzard4 alias, blizzardexplode3 alias) from d2data.mpq into public/missiles/ and export metadata in missiles-meta.ts - Implement 1.13c simulation in skills.ts and missile-engine.ts: * Controller missile 158 blizzardcenter: 100 ticks lifetime, emits 1 falling shard every 4 ticks (Param3=4), coprime step 13 mod 64, radius 7 subtiles * Falling shards (blizzard1..4): 9 ticks range, vertical screen altitude descent from 120 px to 0 px * Impact explosions (blizzardexplode1..3): 6 ticks duration, cold damage, 100 ticks chill, NextDelay = 0 * Authentic 5-band level scaling [15, 30, 45, 55, 65] and +5%/pt synergies - Integrate Blizzard casting in act-scene.ts: spawn blizzardcenter, handle altitude offset, aliased art fallback, and ice_cast_3 overlay - Add comprehensive 10-case verification test suite (tests/blizzard-missile-113c.test.ts) --- public/missiles/blizzard1.json | 61 ++++ public/missiles/blizzard1.png | Bin 0 -> 30216 bytes public/missiles/blizzard2.json | 61 ++++ public/missiles/blizzard2.png | Bin 0 -> 27497 bytes public/missiles/blizzard3.json | 77 +++++ public/missiles/blizzard3.png | Bin 0 -> 39707 bytes public/missiles/blizzard4.json | 77 +++++ public/missiles/blizzard4.png | Bin 0 -> 39707 bytes public/missiles/blizzardexplode1.json | 61 ++++ public/missiles/blizzardexplode1.png | Bin 0 -> 25138 bytes public/missiles/blizzardexplode2.json | 61 ++++ public/missiles/blizzardexplode2.png | Bin 0 -> 25660 bytes public/missiles/blizzardexplode3.json | 61 ++++ public/missiles/blizzardexplode3.png | Bin 0 -> 25660 bytes scripts/pack-missiles.ts | 50 ++- src/game/engine/blizzard-table.ts | 65 ++++ src/game/engine/missile-engine.ts | 100 +++++- src/game/skills.ts | 361 ++++++++++++++++++- src/render/missiles-meta.ts | 123 ++++++- src/scene/act-scene.ts | 62 +++- tests/blizzard-missile-113c.test.ts | 481 ++++++++++++++++++++++++++ 21 files changed, 1669 insertions(+), 32 deletions(-) create mode 100644 public/missiles/blizzard1.json create mode 100644 public/missiles/blizzard1.png create mode 100644 public/missiles/blizzard2.json create mode 100644 public/missiles/blizzard2.png create mode 100644 public/missiles/blizzard3.json create mode 100644 public/missiles/blizzard3.png create mode 100644 public/missiles/blizzard4.json create mode 100644 public/missiles/blizzard4.png create mode 100644 public/missiles/blizzardexplode1.json create mode 100644 public/missiles/blizzardexplode1.png create mode 100644 public/missiles/blizzardexplode2.json create mode 100644 public/missiles/blizzardexplode2.png create mode 100644 public/missiles/blizzardexplode3.json create mode 100644 public/missiles/blizzardexplode3.png create mode 100644 src/game/engine/blizzard-table.ts create mode 100644 tests/blizzard-missile-113c.test.ts diff --git a/public/missiles/blizzard1.json b/public/missiles/blizzard1.json new file mode 100644 index 0000000..557f486 --- /dev/null +++ b/public/missiles/blizzard1.json @@ -0,0 +1,61 @@ +{ + "name": "blizzard1", + "celFile": "icestormfallvar01", + "width": 512, + "height": 198, + "directions": 1, + "framesPerDirection": 6, + "animSpeed": 16, + "groups": [ + [ + [ + 0, + 0, + 56, + 198, + -50, + -208 + ], + [ + 57, + 0, + 56, + 198, + -50, + -208 + ], + [ + 114, + 0, + 56, + 198, + -50, + -208 + ], + [ + 171, + 0, + 56, + 198, + -50, + -208 + ], + [ + 228, + 0, + 56, + 198, + -50, + -208 + ], + [ + 285, + 0, + 56, + 198, + -50, + -208 + ] + ] + ] +} \ No newline at end of file diff --git a/public/missiles/blizzard1.png b/public/missiles/blizzard1.png new file mode 100644 index 0000000000000000000000000000000000000000..47b7590fbff3adb0004e4ea49482f6e324539e74 GIT binary patch literal 30216 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ⅅOLbPQN&6Vfj{%LhK{1Eb@tqb(^ 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�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 literal 0 HcmV?d00001 diff --git a/public/missiles/blizzardexplode2.json b/public/missiles/blizzardexplode2.json new file mode 100644 index 0000000..809d8bd --- /dev/null +++ b/public/missiles/blizzardexplode2.json @@ -0,0 +1,61 @@ +{ + "name": "blizzardexplode2", + "celFile": "icestormimpactvar02", + "width": 512, + "height": 141, + "directions": 1, + "framesPerDirection": 6, + "animSpeed": 16, + "groups": [ + [ + [ + 0, + 0, + 117, + 70, + -55, + -30 + ], + [ + 118, + 0, + 117, + 70, + -55, + -30 + ], + [ + 236, + 0, + 117, + 70, + -55, + -30 + ], + [ + 354, + 0, + 117, + 70, + -55, + -30 + ], + [ + 0, + 71, + 117, + 70, + -55, + -30 + ], + [ + 118, + 71, + 117, + 70, + -55, + -30 + ] + ] + ] +} \ No newline at end of file diff --git a/public/missiles/blizzardexplode2.png b/public/missiles/blizzardexplode2.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ade64da9ce9eccecf681658e9c1458883ae1e1 GIT binary patch literal 25660 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 |5E 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 literal 0 HcmV?d00001 diff --git a/public/missiles/blizzardexplode3.json b/public/missiles/blizzardexplode3.json new file mode 100644 index 0000000..6fb4262 --- /dev/null +++ b/public/missiles/blizzardexplode3.json @@ -0,0 +1,61 @@ +{ + "name": "blizzardexplode3", + "celFile": "icestormimpactvar02", + "width": 512, + "height": 141, + "directions": 1, + "framesPerDirection": 6, + "animSpeed": 16, + "groups": [ + [ + [ + 0, + 0, + 117, + 70, + -55, + -30 + ], + [ + 118, + 0, + 117, + 70, + -55, + -30 + ], + [ + 236, + 0, + 117, + 70, + -55, + -30 + ], + [ + 354, + 0, + 117, + 70, + -55, + -30 + ], + [ + 0, + 71, + 117, + 70, + -55, + -30 + ], + [ + 118, + 71, + 117, + 70, + -55, + -30 + ] + ] + ] +} \ No newline at end of file diff --git a/public/missiles/blizzardexplode3.png b/public/missiles/blizzardexplode3.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ade64da9ce9eccecf681658e9c1458883ae1e1 GIT binary patch literal 25660 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 |5E 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 literal 0 HcmV?d00001 diff --git a/scripts/pack-missiles.ts b/scripts/pack-missiles.ts index d1758d6..f49d35d 100644 --- a/scripts/pack-missiles.ts +++ b/scripts/pack-missiles.ts @@ -17,7 +17,7 @@ * Enforces Zero Runtime MPQ/DLL Architectural Invariant. */ -import { mkdirSync, writeFileSync } from 'node:fs' +import { mkdirSync, writeFileSync, readFileSync } from 'node:fs' import { join } from 'node:path' import { MpqArchive } from '../src/mpq/archive.ts' import { fileSource } from '../src/mpq/file-source.ts' @@ -69,6 +69,11 @@ const MISSILE_TARGETS = [ { name: 'freezeexplode', celFile: 'FreezeExplodeCenter', animSpeed: 16 }, { name: 'frozenorb', celFile: 'IceOrb', animSpeed: 16 }, { name: 'frozenorbexplode', celFile: 'IceOrbExplode', animSpeed: 16 }, + { name: 'blizzard1', celFile: 'icestormfallvar01', animSpeed: 16 }, + { name: 'blizzard2', celFile: 'icestormfallvar02', animSpeed: 16 }, + { name: 'blizzard3', celFile: 'Blizzard', animSpeed: 16 }, + { name: 'blizzardexplode1', celFile: 'icestormimpactvar01', animSpeed: 16 }, + { name: 'blizzardexplode2', celFile: 'icestormimpactvar02', animSpeed: 16 }, // Lightning { name: 'chargedbolt', celFile: 'ChargedBolt', animSpeed: 16 }, @@ -227,6 +232,9 @@ export async function bakeMissiles(projectRoot: string = process.cwd()): Promise join(projectRoot, 'samples', 'd2', 'Patch_D2.mpq'), join(projectRoot, 'samples', 'd2', 'd2exp.mpq'), join(projectRoot, 'samples', 'd2', 'd2data.mpq'), + '/usr/local/google/home/taodao/d2-data/Patch_D2.mpq', + '/usr/local/google/home/taodao/d2-data/d2exp.mpq', + '/usr/local/google/home/taodao/d2-data/d2data.mpq', ] const archives: MpqArchive[] = [] for (const p of archivePaths) { @@ -301,6 +309,22 @@ export async function bakeMissiles(projectRoot: string = process.cwd()): Promise console.log(`[Missile Packer] Baked ${target.name} (${target.celFile}.dcc): ${packed.width}x${packed.height}, ${packed.png.byteLength} bytes PNG`) } + // Aliases for blizzard4 (from blizzard3) and blizzardexplode3 (from blizzardexplode2) + const copyAlias = (aliasName: string, sourceName: string) => { + const srcMeta = metaRecord[sourceName] + if (!srcMeta) return + const aliasMeta: MissileMeta = { ...srcMeta, name: aliasName } + const jsonStr = JSON.stringify(aliasMeta, null, 2) + writeFileSync(join(publicOutDir, `${aliasName}.json`), jsonStr, 'utf-8') + writeFileSync(join(packOutDir, `${aliasName}.json`), jsonStr, 'utf-8') + const srcPngBytes = readFileSync(join(publicOutDir, `${sourceName}.png`)) + writeFileSync(join(publicOutDir, `${aliasName}.png`), srcPngBytes) + writeFileSync(join(packOutDir, `${aliasName}.png`), srcPngBytes) + console.log(`[Missile Packer] Aliased ${aliasName} -> ${sourceName}`) + } + copyAlias('blizzard4', 'blizzard3') + copyAlias('blizzardexplode3', 'blizzardexplode2') + // Generate src/render/missiles-meta.ts const metaExports = MISSILE_TARGETS.map(t => { const upper = t.name.toUpperCase() @@ -401,8 +425,32 @@ export function velocityToDccDirection(vx: number, vy: number, directions = 16): ${metaExports} +export const BLIZZARD4_META: MissileMeta = { + ...BLIZZARD3_META, + name: 'blizzard4', +} + +export const BLIZZARDEXPLODE3_META: MissileMeta = { + ...BLIZZARDEXPLODE2_META, + name: 'blizzardexplode3', +} + +export const HYDRA_META: MissileMeta = { + ...FIREBOLT_META, + name: 'hydra', +} + +export const HYDRAFIRE_META: MissileMeta = { + ...FIREBOLT_META, + name: 'hydrafire', +} + export const MISSILE_METAS: Readonly> = Object.freeze({ ${mapEntries} + 'blizzard4': BLIZZARD4_META, + 'blizzardexplode3': BLIZZARDEXPLODE3_META, + 'hydra': HYDRA_META, + 'hydrafire': HYDRAFIRE_META, }) ` diff --git a/src/game/engine/blizzard-table.ts b/src/game/engine/blizzard-table.ts new file mode 100644 index 0000000..052bcac --- /dev/null +++ b/src/game/engine/blizzard-table.ts @@ -0,0 +1,65 @@ +/** + * Diablo II: Lord of Destruction v1.13c — Blizzard (Skill 59) Circle Table. + * + * Authoritative 64-entry circle lookup table from D2Game.dll (VA 0x6FD1C960, 0x6FD1CA60). + * Table radius = 30 subtiles. + * + * Used by MISSMODE_SrvDo10_blizzardcenter (0x6FC60CA0) to disperse falling shards + * across a radius of 7 subtiles with 2:1 isometric ground projection (Y * 0.5). + */ + +export const BLIZZARD_CIRCLE_X: readonly number[] = Object.freeze([ + 0, 2, 5, 8, 11, 14, 16, 19, + 21, 23, 24, 26, 27, 28, 29, 29, + 30, 29, 29, 28, 27, 26, 24, 23, + 21, 19, 16, 14, 11, 8, 5, 2, + 0, -2, -5, -8, -11, -14, -16, -19, + -21, -23, -24, -26, -27, -28, -29, -29, + -30, -29, -29, -28, -27, -26, -24, -23, + -21, -19, -16, -14, -11, -8, -5, -2, +]) + +export const BLIZZARD_CIRCLE_Y: readonly number[] = Object.freeze([ + 30, 29, 29, 28, 27, 26, 24, 23, + 21, 19, 16, 14, 11, 8, 5, 2, + 0, -2, -5, -8, -11, -14, -16, -19, + -21, -23, -24, -26, -27, -28, -29, -29, + -30, -29, -29, -28, -27, -26, -24, -23, + -21, -19, -16, -14, -11, -8, -5, -2, + 0, 2, 5, 8, 11, 14, 16, 19, + 21, 23, 24, 26, 27, 28, 29, 29, +]) + +/** + * 2:1 Isometric ground projection ratio. + */ +export const ISO_GROUND_ASPECT_RATIO = 0.5 + +/** + * Default subtile to world pixel conversion ratio. + * 1 full tile = 160x80 px = 5x5 subtiles -> 1 subtile = 16 px half-width (32 px full-width). + */ +export const SUBTILE_TO_PX = 16 + +/** + * Calculates ground target offset for a Blizzard falling shard using the 64-entry circle table + * with 2:1 isometric ground foreshortening (Y * 0.5). + * + * @param angleIdx - Angle index in the 64-entry table (0..63) + * @param radiusSubtiles - Radius in subtiles (default: 7 from Skills.txt Param1) + * @param subtileToPx - Subtile to world pixel ratio (default: 16) + * @returns { dx, dy } in world pixel coordinates + */ +export function getBlizzardDropOffset( + angleIdx: number, + radiusSubtiles = 7, + subtileToPx = SUBTILE_TO_PX, +): { dx: number; dy: number } { + const idx = Math.abs(angleIdx % 64) + const tblX = BLIZZARD_CIRCLE_X[idx]! + const tblY = BLIZZARD_CIRCLE_Y[idx]! + const scale = (radiusSubtiles * subtileToPx) / 30 + const dx = tblX * scale + const dy = tblY * scale * ISO_GROUND_ASPECT_RATIO + return { dx, dy } +} diff --git a/src/game/engine/missile-engine.ts b/src/game/engine/missile-engine.ts index 482c629..5ff61f5 100644 --- a/src/game/engine/missile-engine.ts +++ b/src/game/engine/missile-engine.ts @@ -16,6 +16,7 @@ */ import type { D2DataRegistry, MissileRecord } from './data-registry.ts' import { executeSUnitDmg, type CombatUnitContext, type SUnitDmgPacket } from './combat-pipeline.ts' +import { getBlizzardDropOffset } from './blizzard-table.ts' export const ISO_GROUND_ASPECT_RATIO = 0.5 @@ -246,17 +247,20 @@ export class MissileEngine { const dx = params.targetX - params.startX const dy = params.targetY - params.startY const angleRad = dx === 0 && dy === 0 ? Math.PI / 2 : Math.atan2(dy, dx) - const speedPxPerTick = Math.max(8, effectiveRec.vel || 18) const isTurret = Boolean(params.isTurret || effectiveRec.name.toLowerCase() === 'hydra_turret') - const vx = isTurret ? 0 : Math.cos(angleRad) * speedPxPerTick - const vy = isTurret ? 0 : Math.sin(angleRad) * speedPxPerTick + const isStationary = + isTurret || + effectiveRec.vel === 0 || + effectiveRec.name.toLowerCase().startsWith('blizzard') + const speedPxPerTick = isStationary ? 0 : Math.max(8, effectiveRec.vel || 18) + const vx = isStationary ? 0 : Math.cos(angleRad) * speedPxPerTick + const vy = isStationary ? 0 : Math.sin(angleRad) * speedPxPerTick + const baseRange = effectiveRec.range !== undefined && effectiveRec.range > 0 ? effectiveRec.range : 35 + const calculatedRange = baseRange + Math.max(0, params.slvl - 1) * (effectiveRec.levRange || 0) const maxRangeTicks = params.maxRangeTicks ?? ( isTurret ? 250 // 1.13c Hydra duration: 250 frames (10 seconds) - : Math.max( - 10, - (effectiveRec.range || 35) + Math.max(0, params.slvl - 1) * (effectiveRec.levRange || 0), - ) + : calculatedRange ) const missile: ActiveMissile = { @@ -366,6 +370,35 @@ export class MissileEngine { } } + // `pSrvDoFunc = 10` (`blizzardcenter`): emits falling shards across 64-entry circle table + // Authentic D2Game.0x6FC60CA0 (MISSMODE_SrvDo10_blizzardcenter): + // - Trigger frequency: dwParam[2] (4 frames, Param3 in Skills.txt) + // - Angular step: 13 (coprime with 64) + // - Radius: 7 subtiles + // - Foreshortened by ISO_GROUND_ASPECT_RATIO = 0.5 in 2:1 isometric ground perspective + if (m.record.pSrvDoFunc === 10 || m.name === 'blizzardcenter') { + const cadence = Math.max(1, m.record.param3 || 4) + if (m.ageTicks % cadence === 0) { + const idx = Math.abs((m.subMissileIdx ?? 0) % 64) + const offset = getBlizzardDropOffset(idx, 7) + const shardVariants = ['blizzard1', 'blizzard2', 'blizzard3', 'blizzard4'] as const + const shardName = shardVariants[Math.floor((m.ageTicks / cadence) - 1) % shardVariants.length]! + this.spawnMissile({ + missileNameOrId: shardName, + sourceSkillId: m.sourceSkillId, + slvl: m.slvl, + owner: m.owner, + startX: m.x + offset.dx, + startY: m.y + offset.dy, + targetX: m.x + offset.dx, + targetY: m.y + offset.dy, + dmgPacket: m.dmgPacket, + }) + subMissilesSpawned.push(shardName) + m.subMissileIdx = (idx + 13) % 64 + } + } + // Turret emitter (Hydra heads): stationary emitter periodically firing bolts at nearest target const isTurretEmitter = Boolean(m.isTurret || m.name.toLowerCase() === 'hydra_turret') if (isTurretEmitter) { @@ -434,9 +467,14 @@ export class MissileEngine { continue } - // Main Frozen Orb (pSrvDoFunc === 15) and Hydra turret emitters do not deal direct contact damage; - // all damage is delivered through emitted child bolts. - if (m.record.pSrvDoFunc === 15 || isTurretEmitter) { + // Main Frozen Orb (pSrvDoFunc === 15), Blizzard Center (pSrvDoFunc === 10), and Hydra turret emitters + // do not deal direct contact damage; all damage is delivered through emitted child bolts / shards. + if ( + m.record.pSrvDoFunc === 15 || + m.record.pSrvDoFunc === 10 || + m.name === 'blizzardcenter' || + isTurretEmitter + ) { continue } @@ -551,6 +589,25 @@ export class MissileEngine { if (m.canPierce && m.pierceCount < 4 && m.pierceChancePct > 0) { m.pierceCount += 1 } else if (m.record.collideKill || !m.canPierce) { + if ( + m.name.startsWith('blizzard') && + !m.name.includes('explode') && + m.name !== 'blizzardcenter' + ) { + const expName = m.record.explosionMissile || 'blizzardexplode1' + this.spawnMissile({ + missileNameOrId: expName, + sourceSkillId: m.sourceSkillId, + slvl: m.slvl, + owner: m.owner, + startX: m.x, + startY: m.y, + targetX: m.x, + targetY: m.y, + dmgPacket: m.dmgPacket, + }) + subMissilesSpawned.push(expName) + } m.expired = true break } @@ -558,6 +615,29 @@ export class MissileEngine { } if (m.ageTicks >= m.maxRangeTicks) { + // Blizzard falling shard ground impact explosion (Missiles 159..162) + if ( + m.name.startsWith('blizzard') && + !m.name.includes('explode') && + m.name !== 'blizzardcenter' && + (!m.currentHitFrame || m.currentHitFrame === 0) + ) { + m.currentHitFrame = 1 + const expName = m.record.explosionMissile || 'blizzardexplode1' + this.spawnMissile({ + missileNameOrId: expName, + sourceSkillId: m.sourceSkillId, + slvl: m.slvl, + owner: m.owner, + startX: m.x, + startY: m.y, + targetX: m.x, + targetY: m.y, + dmgPacket: m.dmgPacket, + }) + subMissilesSpawned.push(expName) + } + // `pSrvHitFunc = 29` (`Frozen Orb` expiration burst) // Authentic D2Game.0x6FC5CE10 (MISSMODE_SrvHit29_FrozenOrb): // - Triggers only on first frame of hit (currentHitFrame === 0) diff --git a/src/game/skills.ts b/src/game/skills.ts index 8d5bf7e..fd8343a 100644 --- a/src/game/skills.ts +++ b/src/game/skills.ts @@ -26,6 +26,12 @@ import type { Rng } from './rng.ts' import type { CharacterClassCode } from './classes.ts' import type { CombatPlayer } from './combat.ts' import { FROZEN_ORB_X_POSITIONS, FROZEN_ORB_Y_POSITIONS } from './engine/missile-engine.ts' +import { + BLIZZARD_CIRCLE_X, + BLIZZARD_CIRCLE_Y, + getBlizzardDropOffset, +} from './engine/blizzard-table.ts' +export { BLIZZARD_CIRCLE_X, BLIZZARD_CIRCLE_Y, getBlizzardDropOffset } from './engine/blizzard-table.ts' /** One castable skill, read from a table row. */ export interface SkillDef { @@ -115,6 +121,8 @@ export interface Projectile { readonly spawnMissileType?: string | undefined /** Number of elapsed ticks this projectile has lived. */ readonly ageTicks?: number | undefined + /** Altitude above ground in pixels for falling missiles (e.g. Blizzard shards). */ + readonly altitude?: number | undefined } /** @@ -459,6 +467,166 @@ export const CANONICAL_113C_MISSILES: Readonly> = speedPxPerSec: 0, distancePx: 0, }, + blizzardcenter: { + name: 'blizzardcenter', + id: 158, + vel: 0, + maxVel: 0, + range: 100, + levRange: 0, + celFile: '', + animLen: 2, + animSpeed: 16, + loopAnim: 1, + numDirections: 1, + explosionMissile: '', + light: 0, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, + blizzard1: { + name: 'blizzard1', + id: 159, + vel: 0, + maxVel: 0, + range: 9, + levRange: 0, + celFile: 'icestormfallvar01', + animLen: 6, + animSpeed: 16, + loopAnim: 0, + numDirections: 1, + explosionMissile: 'blizzardexplode1', + light: 4, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, + blizzard2: { + name: 'blizzard2', + id: 160, + vel: 0, + maxVel: 0, + range: 9, + levRange: 0, + celFile: 'icestormfallvar02', + animLen: 6, + animSpeed: 16, + loopAnim: 0, + numDirections: 1, + explosionMissile: 'blizzardexplode2', + light: 4, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, + blizzard3: { + name: 'blizzard3', + id: 161, + vel: 0, + maxVel: 0, + range: 9, + levRange: 0, + celFile: 'Blizzard', + animLen: 8, + animSpeed: 16, + loopAnim: 0, + numDirections: 1, + explosionMissile: 'blizzardexplode3', + light: 4, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, + blizzard4: { + name: 'blizzard4', + id: 162, + vel: 0, + maxVel: 0, + range: 9, + levRange: 0, + celFile: 'Blizzard', + animLen: 8, + animSpeed: 16, + loopAnim: 0, + numDirections: 1, + explosionMissile: 'blizzardexplode1', + light: 4, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, + blizzardexplode1: { + name: 'blizzardexplode1', + id: 163, + vel: 0, + maxVel: 0, + range: 6, + levRange: 0, + celFile: 'icestormimpactvar01', + animLen: 6, + animSpeed: 16, + loopAnim: 0, + numDirections: 1, + explosionMissile: '', + light: 6, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, + blizzardexplode2: { + name: 'blizzardexplode2', + id: 164, + vel: 0, + maxVel: 0, + range: 6, + levRange: 0, + celFile: 'icestormimpactvar02', + animLen: 6, + animSpeed: 16, + loopAnim: 0, + numDirections: 1, + explosionMissile: '', + light: 6, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, + blizzardexplode3: { + name: 'blizzardexplode3', + id: 165, + vel: 0, + maxVel: 0, + range: 6, + levRange: 0, + celFile: 'icestormimpactvar01', + animLen: 6, + animSpeed: 16, + loopAnim: 0, + numDirections: 1, + explosionMissile: '', + light: 6, + red: 81, + green: 81, + blue: 255, + speedPxPerSec: 0, + distancePx: 0, + }, hydra: { name: 'hydra', id: 247, @@ -3257,6 +3425,30 @@ export interface ProjectileOutcome { readonly spawnedProjectiles?: readonly Projectile[] | undefined } +function getBlizzardExplosionMissile(missileType: string): string { + switch (missileType) { + case 'blizzard1': + return 'blizzardexplode1' + case 'blizzard2': + return 'blizzardexplode2' + case 'blizzard3': + return 'blizzardexplode3' + case 'blizzard4': + return 'blizzardexplode1' + default: + return 'blizzardexplode1' + } +} + +function isBlizzardShard(missileType?: string): boolean { + return ( + missileType === 'blizzard1' || + missileType === 'blizzard2' || + missileType === 'blizzard3' || + missileType === 'blizzard4' + ) +} + /** * Advance every projectile one tick. * @@ -3333,6 +3525,23 @@ export function tickProjectiles( missileType: 'frozenorb', aoeRadius: 24, }) + } else if (isBlizzardShard(projectile.missileType)) { + const expType = getBlizzardExplosionMissile(projectile.missileType!) + spawned.push({ + skillId: projectile.skillId, + x: projectile.x, + y: projectile.y, + vx: 0, + vy: 0, + damage: projectile.damage, + ttl: 6, + fromPlayer: projectile.fromPlayer, + missileType: expType, + statusEffect: 'chill', + statusDuration: 100, + aoeRadius: 32, + pierce: false, + }) } continue } @@ -3492,6 +3701,42 @@ export function tickProjectiles( } } + // 6. Blizzard Center Emitter (pSrvDoFunc = 10, Skill 59) + // Authentic D2 1.13c MISSMODE_SrvDo10_blizzardcenter (0x6FC60CA0): + // Emits 1 falling shard every 4 ticks (Param3 = 4) across 64-entry circle table (Radius 7) + // with step 13, for a total of exactly 25 shards over 100 ticks. + if (projectile.missileType === 'blizzardcenter') { + const currentAge = (projectile.ageTicks ?? 0) + 1 + if (currentAge % 4 === 0) { + const idx = Math.abs((subMissileIdx ?? 0) % 64) + const offset = getBlizzardDropOffset(idx, 7) + const shardVariants = ['blizzard1', 'blizzard2', 'blizzard3', 'blizzard4'] as const + const shardType = shardVariants[Math.floor((currentAge / 4) - 1) % shardVariants.length]! + spawned.push({ + skillId: projectile.skillId, + x: projectile.x + offset.dx, + y: projectile.y + offset.dy, + vx: 0, + vy: 0, + altitude: 120, + damage: projectile.damage > 0 ? projectile.damage : 45, + ttl: 9, + fromPlayer: projectile.fromPlayer, + missileType: shardType, + statusEffect: 'chill', + statusDuration: 100, + pierce: false, + }) + subMissileIdx = (idx + 13) % 64 + } + } + + let altitude = projectile.altitude + if (isBlizzardShard(projectile.missileType)) { + if (altitude === undefined) altitude = 120 + altitude = Math.max(0, altitude - (120 / 9)) + } + const hitTargets = projectile.hitTargets ?? new Set() const moved: Projectile = { ...projectile, @@ -3501,6 +3746,7 @@ export function tickProjectiles( vy, spiral, subMissileIdx, + altitude, hitTargets, ageTicks: (projectile.ageTicks ?? 0) + 1, ttl: projectile.ttl - 1, @@ -3542,18 +3788,49 @@ export function tickProjectiles( pierce: false, }) } + } else if (isBlizzardShard(projectile.missileType)) { + const expType = getBlizzardExplosionMissile(projectile.missileType!) + spawned.push({ + skillId: projectile.skillId, + x, + y, + vx: 0, + vy: 0, + damage: 0, + ttl: 6, + fromPlayer: projectile.fromPlayer, + missileType: expType, + statusEffect: 'chill', + statusDuration: 100, + aoeRadius: 32, + pierce: false, + }) } continue } let struck = false - const isHarmlessEmitter = projectile.missileType === 'frozenorb' || isTurretEmitter + const isHarmlessEmitter = + projectile.missileType === 'frozenorb' || + projectile.missileType === 'blizzardcenter' || + isTurretEmitter if (!isHarmlessEmitter) { for (const target of targets) { if (!target.alive) continue if (hitTargets.has(target.index)) continue // already struck by piercing projectile if (Math.hypot(target.x - x, target.y - y) > target.radius + radius) continue + const statusEffect = + projectile.statusEffect ?? + (isBlizzardShard(projectile.missileType) || projectile.missileType?.startsWith('blizzardexplode') + ? 'chill' + : undefined) + const statusDuration = + projectile.statusDuration ?? + (isBlizzardShard(projectile.missileType) || projectile.missileType?.startsWith('blizzardexplode') + ? 100 + : undefined) + hits.push({ targetIndex: target.index, damage: projectile.damage, @@ -3562,14 +3839,32 @@ export function tickProjectiles( skillId: projectile.skillId, missileType: projectile.missileType, aoeRadius: projectile.aoeRadius, - statusEffect: projectile.statusEffect, - statusDuration: projectile.statusDuration, + statusEffect, + statusDuration, isUndeadOnly: projectile.isUndeadOnly, }) hitTargets.add(target.index) if (!projectile.pierce) { struck = true + if (isBlizzardShard(projectile.missileType)) { + const expType = getBlizzardExplosionMissile(projectile.missileType!) + spawned.push({ + skillId: projectile.skillId, + x, + y, + vx: 0, + vy: 0, + damage: 0, + ttl: 6, + fromPlayer: projectile.fromPlayer, + missileType: expType, + statusEffect: 'chill', + statusDuration: 100, + aoeRadius: 32, + pierce: false, + }) + } break } } @@ -3822,6 +4117,66 @@ export function calculateSkillDamage( return { min, max } } +/** + * Calculates Blizzard (Skill 59) synergy multiplier: + * +5% damage per hard point in Ice Bolt (39), Ice Blast (45), and Glacial Spike (55). + */ +export function calculateBlizzardSynergyMultiplier(synergies: { + readonly iceBolt?: number | undefined + readonly iceBlast?: number | undefined + readonly glacialSpike?: number | undefined +}): number { + const points = (synergies.iceBolt ?? 0) + (synergies.iceBlast ?? 0) + (synergies.glacialSpike ?? 0) + return 1.0 + points * 0.05 +} + +/** + * Calculates Blizzard (Skill 59) min and max damage with 1.13c 5-band level scaling and synergies. + */ +export function calculateBlizzardDamage( + effectiveLevel: number, + synergies: { + readonly iceBolt?: number | undefined + readonly iceBlast?: number | undefined + readonly glacialSpike?: number | undefined + } = {}, +): { min: number; max: number } { + const syn = calculateBlizzardSynergyMultiplier(synergies) + const lvl = Math.max(1, Math.floor(effectiveLevel)) + let min = 45 + let max = 75 + if (lvl > 1) { + const b1 = Math.min(lvl - 1, 7) + min += b1 * 15 + max += b1 * 16 + + if (lvl > 8) { + const b2 = Math.min(lvl - 8, 8) + min += b2 * 30 + max += b2 * 31 + } + if (lvl > 16) { + const b3 = Math.min(lvl - 16, 6) + min += b3 * 45 + max += b3 * 46 + } + if (lvl > 22) { + const b4 = Math.min(lvl - 22, 6) + min += b4 * 55 + max += b4 * 56 + } + if (lvl > 28) { + const b5 = lvl - 28 + min += b5 * 65 + max += b5 * 66 + } + } + return { + min: Math.floor(min * syn), + max: Math.floor(max * syn), + } +} + /** Result of executing a Batch 1 skill. */ export type SkillExecutionResult = | { readonly kind: 'cooldown'; readonly ticksLeft: number } diff --git a/src/render/missiles-meta.ts b/src/render/missiles-meta.ts index 5cc40cf..eb32812 100644 --- a/src/render/missiles-meta.ts +++ b/src/render/missiles-meta.ts @@ -885,6 +885,108 @@ export const FROZENORBEXPLODE_META: MissileMeta = { ], } +export const BLIZZARD1_META: MissileMeta = { + name: "blizzard1", + celFile: "icestormfallvar01", + width: 512, + height: 198, + directions: 1, + framesPerDirection: 6, + animSpeed: 16, + groups: [ + [ + [0, 0, 56, 198, -50, -208], + [57, 0, 56, 198, -50, -208], + [114, 0, 56, 198, -50, -208], + [171, 0, 56, 198, -50, -208], + [228, 0, 56, 198, -50, -208], + [285, 0, 56, 198, -50, -208] + ] + ], +} + +export const BLIZZARD2_META: MissileMeta = { + name: "blizzard2", + celFile: "icestormfallvar02", + width: 512, + height: 195, + directions: 1, + framesPerDirection: 6, + animSpeed: 16, + groups: [ + [ + [0, 0, 48, 195, -46, -201], + [49, 0, 48, 195, -46, -201], + [98, 0, 48, 195, -46, -201], + [147, 0, 48, 195, -46, -201], + [196, 0, 48, 195, -46, -201], + [245, 0, 48, 195, -46, -201] + ] + ], +} + +export const BLIZZARD3_META: MissileMeta = { + name: "blizzard3", + celFile: "Blizzard", + width: 512, + height: 307, + directions: 1, + framesPerDirection: 8, + animSpeed: 16, + groups: [ + [ + [0, 0, 97, 153, -71, -153], + [98, 0, 97, 153, -71, -153], + [196, 0, 97, 153, -71, -153], + [294, 0, 97, 153, -71, -153], + [392, 0, 97, 153, -71, -153], + [0, 154, 97, 153, -71, -153], + [98, 154, 97, 153, -71, -153], + [196, 154, 97, 153, -71, -153] + ] + ], +} + +export const BLIZZARDEXPLODE1_META: MissileMeta = { + name: "blizzardexplode1", + celFile: "icestormimpactvar01", + width: 512, + height: 145, + directions: 1, + framesPerDirection: 6, + animSpeed: 16, + groups: [ + [ + [0, 0, 113, 72, -54, -31], + [114, 0, 113, 72, -54, -31], + [228, 0, 113, 72, -54, -31], + [342, 0, 113, 72, -54, -31], + [0, 73, 113, 72, -54, -31], + [114, 73, 113, 72, -54, -31] + ] + ], +} + +export const BLIZZARDEXPLODE2_META: MissileMeta = { + name: "blizzardexplode2", + celFile: "icestormimpactvar02", + width: 512, + height: 141, + directions: 1, + framesPerDirection: 6, + animSpeed: 16, + groups: [ + [ + [0, 0, 117, 70, -55, -30], + [118, 0, 117, 70, -55, -30], + [236, 0, 117, 70, -55, -30], + [354, 0, 117, 70, -55, -30], + [0, 71, 117, 70, -55, -30], + [118, 71, 117, 70, -55, -30] + ] + ], +} + export const CHARGEDBOLT_META: MissileMeta = { name: "chargedbolt", celFile: "ChargedBolt", @@ -4845,6 +4947,16 @@ export const LIGHTNINGJAVELIN_META: MissileMeta = { ], } +export const BLIZZARD4_META: MissileMeta = { + ...BLIZZARD3_META, + name: 'blizzard4', +} + +export const BLIZZARDEXPLODE3_META: MissileMeta = { + ...BLIZZARDEXPLODE2_META, + name: 'blizzardexplode3', +} + export const HYDRA_META: MissileMeta = { ...FIREBOLT_META, name: 'hydra', @@ -4857,8 +4969,6 @@ export const HYDRAFIRE_META: MissileMeta = { export const MISSILE_METAS: Readonly> = Object.freeze({ 'firebolt': FIREBOLT_META, - 'hydra': HYDRA_META, - 'hydrafire': HYDRAFIRE_META, 'fireball': FIREBALL_META, 'fireexplode': FIREEXPLODE_META, 'icebolt': ICEBOLT_META, @@ -4868,6 +4978,11 @@ export const MISSILE_METAS: Readonly> = Object.freez 'freezeexplode': FREEZEEXPLODE_META, 'frozenorb': FROZENORB_META, 'frozenorbexplode': FROZENORBEXPLODE_META, + 'blizzard1': BLIZZARD1_META, + 'blizzard2': BLIZZARD2_META, + 'blizzard3': BLIZZARD3_META, + 'blizzardexplode1': BLIZZARDEXPLODE1_META, + 'blizzardexplode2': BLIZZARDEXPLODE2_META, 'chargedbolt': CHARGEDBOLT_META, 'teeth': TEETH_META, 'teethexplode': TEETHEXPLODE_META, @@ -4882,4 +4997,8 @@ export const MISSILE_METAS: Readonly> = Object.freez 'icearrow': ICEARROW_META, 'arrow': ARROW_META, 'lightningjavelin': LIGHTNINGJAVELIN_META, + 'blizzard4': BLIZZARD4_META, + 'blizzardexplode3': BLIZZARDEXPLODE3_META, + 'hydra': HYDRA_META, + 'hydrafire': HYDRAFIRE_META, }) diff --git a/src/scene/act-scene.ts b/src/scene/act-scene.ts index 1a62df6..866b0d6 100644 --- a/src/scene/act-scene.ts +++ b/src/scene/act-scene.ts @@ -1078,7 +1078,7 @@ export function getSkillMana(skillId: number, hudManager?: HudManager | null): n case 21: return 4 case 40: return 7 case 42: return 9 - case 59: return 27 + case 59: return 23 case 60: return 12 case 62: return 20 case 64: return 30 @@ -1297,19 +1297,29 @@ export function castSkill( } if (skillId === 59) { - // Blizzard: AoE radius 120 around target, delay 45 ticks - let hitCount = 0 - for (const monster of engine.world.monsters) { - if (monster.state === 'dead' || monster.hp <= 0) continue - if (Math.hypot(monster.x - targetX, monster.y - targetY) <= 120) { - damageMonster(engine.world, monster.index, 35) - engine.metrics.castHits += 1 - hitCount++ - } - } + // Blizzard (Skill 59): spawn invisible blizzardcenter emitter missile at target coordinates + // 1.13c Skills.txt: Param1: 7 (radius subtiles), Param3: 4 (interval ticks), delay: 45 (1.8s cooldown) + // 1.13c Missiles.txt: blizzardcenter (ID 158), Range: 100 ticks (4.0s duration), Vel: 0 + const slvl = 1 + const dmgRange = calculateSkillDamage(59, slvl) + const blizzardDamage = Math.round((dmgRange.min + dmgRange.max) / 2) + + engine.projectiles.push({ + skillId: '59', + x: targetX, + y: targetY, + vx: 0, + vy: 0, + damage: blizzardDamage, + ttl: 100, // 4.00s at 25 fps + fromPlayer: true, + missileType: 'blizzardcenter', + subMissileIdx: 0, + }) + player.cooldown = 45 engine.metrics.casts += 1 - status.textContent = `施展暴风雪,命中 ${hitCount} 个目标` + status.textContent = '施展暴风雪' return true } @@ -3664,6 +3674,12 @@ export async function loadMissileArtMap( if (!map.has('hydra')) map.set('hydra', fireboltArt) if (!map.has('hydrafire')) map.set('hydrafire', fireboltArt) } + if (map.has('blizzard3') && !map.has('blizzard4')) { + map.set('blizzard4', map.get('blizzard3')!) + } + if (map.has('blizzardexplode2') && !map.has('blizzardexplode3')) { + map.set('blizzardexplode3', map.get('blizzardexplode2')!) + } return map } @@ -3677,6 +3693,12 @@ export function drawMissileProjectile( shot: Projectile, missileArt?: LoadedMissileArt, ): void { + if (shot.missileType === 'blizzardcenter') { + return // Invisible controller missile + } + + const altitude = shot.altitude ?? 0 + if (missileArt !== undefined) { const dccDir = velocityToDccDirection(shot.vx, shot.vy, missileArt.meta.directions) const frameCount = Math.max(1, missileArt.meta.framesPerDirection) @@ -3685,7 +3707,7 @@ export function drawMissileProjectile( const frame = group?.[frameIndex] ?? group?.[0] if (frame !== undefined) { const drawX = frame.anchorX !== undefined ? shot.x + frame.anchorX : shot.x - frame.width / 2 - const drawY = frame.anchorY !== undefined ? shot.y + frame.anchorY : shot.y - frame.height / 2 + const drawY = (frame.anchorY !== undefined ? shot.y + frame.anchorY : shot.y - frame.height / 2) - altitude const isAdditive = missileArt.meta.name !== 'arrow' renderer.draw(frame, drawX, drawY, { atlas: missileArt.handle, @@ -3696,7 +3718,7 @@ export function drawMissileProjectile( } const x = shot.x - const y = shot.y + const y = shot.y - altitude if (shot.isTurret || shot.missileType === 'hydra_turret') { // Authentic stationary hydra head turret plume @@ -5256,9 +5278,15 @@ if (typeof window !== 'undefined') { } for (const shot of engine.projectiles) { + if (shot.missileType === 'blizzardcenter') continue pushEntity(shot.x, shot.y, () => { const mType = shot.missileType ?? (shot.skillId === '36' ? 'firebolt' : shot.skillId === '47' ? 'fireball' : undefined) - const art = mType !== undefined ? (missileArtMap.get(mType) ?? (mType === 'frozenorbbolt' || mType === 'frozenorbnova' ? missileArtMap.get('icebolt') : undefined)) : undefined + const art = mType !== undefined + ? (missileArtMap.get(mType) ?? + (mType === 'frozenorbbolt' || mType === 'frozenorbnova' ? missileArtMap.get('icebolt') : + mType === 'blizzard4' ? missileArtMap.get('blizzard3') : + mType === 'blizzardexplode3' ? missileArtMap.get('blizzardexplode2') : undefined)) + : undefined if (art !== undefined) { drawMissileProjectile(renderer, shot, art) } else { @@ -5269,7 +5297,9 @@ if (typeof window !== 'undefined') { for (const exp of engine.explosions) { pushEntity(exp.x, exp.y, () => { - const art = missileArtMap.get(exp.missileType) ?? missileArtMap.get('fireexplode') + const art = + missileArtMap.get(exp.missileType) ?? + (exp.missileType === 'blizzardexplode3' ? missileArtMap.get('blizzardexplode2') : missileArtMap.get('fireexplode')) drawExplosion(renderer, exp, art) }) } diff --git a/tests/blizzard-missile-113c.test.ts b/tests/blizzard-missile-113c.test.ts new file mode 100644 index 0000000..379d96b --- /dev/null +++ b/tests/blizzard-missile-113c.test.ts @@ -0,0 +1,481 @@ +/** + * Diablo II: Lord of Destruction v1.13c — Skill #059: Blizzard (SOR) + * Missile Physics, 64-Entry Circle Emitter, Falling Altitude & 1.13c Parity Suite + * + * Requirements (Issue #400 / Blizzard Parity): + * 1. Missiles.txt ground truth: parses and verifies blizzardcenter (ID 158), blizzard1..4 (IDs 159..162), + * and blizzardexplode1..3 (IDs 163..165). + * 2. Visual assets & atlas metadata: BLIZZARD1..4_META (icestormfallvar01/02 and Blizzard.dcc), + * BLIZZARDEXPLODE1..3_META (icestormimpactvar01/02.dcc), baked PNG/JSON files exist. + * 3. Authoritative 64-entry circle table from D2Game.dll (VA 0x6FD1C960, 0x6FD1CA60), + * 2:1 isometric ground foreshortening (ISO_GROUND_ASPECT_RATIO = 0.5), step 13 coprime rotation. + * 4. Controller missile blizzardcenter (pSrvDoFunc = 10): lives 100 ticks, emits 25 shards total + * (every 4 ticks), harmless emitter (no direct contact damage). + * 5. Falling shard vertical descent: altitude drops from 120 px to 0 over 9 ticks (120/9 px/tick). + * 6. Ground impact & wall detonation: spawns blizzardexplode1..3 upon expiry or obstacle collision. + * 7. NextDelay = 0 sweet-spot burst: multiple overlapping shards deal full damage without immunity windows. + */ +import { describe, expect, it } from 'vitest' +import fs from 'node:fs' +import path from 'node:path' +import { + parseMissilesTxt, + getMissileTxtData, + CANONICAL_113C_MISSILES, + tickProjectiles, + ISO_GROUND_ASPECT_RATIO, + calculateBlizzardDamage, + calculateBlizzardSynergyMultiplier, + type Projectile, +} from '../src/game/skills.ts' +import { + BLIZZARD_CIRCLE_X, + BLIZZARD_CIRCLE_Y, + getBlizzardDropOffset, +} from '../src/game/engine/blizzard-table.ts' +import { + BLIZZARD1_META, + BLIZZARD2_META, + BLIZZARD3_META, + BLIZZARD4_META, + BLIZZARDEXPLODE1_META, + BLIZZARDEXPLODE2_META, + BLIZZARDEXPLODE3_META, + MISSILE_METAS, +} from '../src/render/missiles-meta.ts' + +describe('[Skill #059] Blizzard — 1.13c Missile Physics & Runtime Parity (Issue #400)', () => { + const missilesTxtPath = path.resolve(__dirname, '../samples/fixtures/data/global/excel/Missiles.txt') + const missilesTxtContent = fs.readFileSync(missilesTxtPath, 'latin1') + + it('1. Parses authentic 1.13c Missiles.txt and verifies Blizzard missile suite (IDs 158..165)', () => { + const map = parseMissilesTxt(missilesTxtContent) + + // blizzardcenter (ID 158) + const center = map.get('blizzardcenter') + expect(center).toBeDefined() + expect(center!.id).toBe(158) + expect(center!.vel).toBe(0) + expect(center!.range).toBe(100) + expect(center!.animLen).toBe(2) + expect(center!.red).toBe(81) + expect(center!.green).toBe(81) + expect(center!.blue).toBe(255) + + // blizzard1 (ID 159) + const b1 = map.get('blizzard1') + expect(b1).toBeDefined() + expect(b1!.id).toBe(159) + expect(b1!.vel).toBe(0) + expect(b1!.range).toBe(9) + expect(b1!.celFile.toLowerCase()).toBe('icestormfallvar01') + expect(b1!.animLen).toBe(6) + + // blizzard2 (ID 160) + const b2 = map.get('blizzard2') + expect(b2).toBeDefined() + expect(b2!.id).toBe(160) + expect(b2!.vel).toBe(0) + expect(b2!.range).toBe(9) + expect(b2!.celFile.toLowerCase()).toBe('icestormfallvar02') + expect(b2!.animLen).toBe(6) + + // blizzard3 (ID 161) + const b3 = map.get('blizzard3') + expect(b3).toBeDefined() + expect(b3!.id).toBe(161) + expect(b3!.vel).toBe(0) + expect(b3!.range).toBe(9) + expect(b3!.celFile.toLowerCase()).toBe('blizzard') + expect(b3!.animLen).toBe(8) + + // blizzard4 (ID 162) + const b4 = map.get('blizzard4') + expect(b4).toBeDefined() + expect(b4!.id).toBe(162) + expect(b4!.vel).toBe(0) + expect(b4!.range).toBe(9) + expect(b4!.celFile.toLowerCase()).toBe('blizzard') + expect(b4!.animLen).toBe(8) + + // blizzardexplode1 (ID 163) + const exp1 = map.get('blizzardexplode1') + expect(exp1).toBeDefined() + expect(exp1!.id).toBe(163) + expect(exp1!.vel).toBe(0) + expect(exp1!.range).toBe(6) + expect(exp1!.celFile.toLowerCase()).toBe('icestormimpactvar01') + expect(exp1!.animLen).toBe(6) + + // blizzardexplode2 (ID 164) + const exp2 = map.get('blizzardexplode2') + expect(exp2).toBeDefined() + expect(exp2!.id).toBe(164) + expect(exp2!.vel).toBe(0) + expect(exp2!.range).toBe(6) + expect(exp2!.celFile.toLowerCase()).toBe('icestormimpactvar02') + expect(exp2!.animLen).toBe(6) + + // blizzardexplode3 (ID 165) + const exp3 = map.get('blizzardexplode3') + expect(exp3).toBeDefined() + expect(exp3!.id).toBe(165) + expect(exp3!.vel).toBe(0) + expect(exp3!.range).toBe(6) + expect(exp3!.celFile.toLowerCase()).toBe('icestormimpactvar02') + expect(exp3!.animLen).toBe(6) + }) + + it('2. CANONICAL_113C_MISSILES export contains Blizzard suite with exact 1.13c values', () => { + const center = getMissileTxtData('blizzardcenter') + expect(center.id).toBe(158) + expect(center.vel).toBe(0) + expect(center.range).toBe(100) + + const b1 = getMissileTxtData('blizzard1') + expect(b1.id).toBe(159) + expect(b1.vel).toBe(0) + expect(b1.range).toBe(9) + expect(b1.animLen).toBe(6) + expect(b1.explosionMissile).toBe('blizzardexplode1') + + const b2 = getMissileTxtData('blizzard2') + expect(b2.id).toBe(160) + expect(b2.range).toBe(9) + expect(b2.explosionMissile).toBe('blizzardexplode2') + + const b3 = getMissileTxtData('blizzard3') + expect(b3.id).toBe(161) + expect(b3.range).toBe(9) + expect(b3.animLen).toBe(8) + expect(b3.explosionMissile).toBe('blizzardexplode3') + + const b4 = getMissileTxtData('blizzard4') + expect(b4.id).toBe(162) + expect(b4.range).toBe(9) + expect(b4.animLen).toBe(8) + expect(b4.explosionMissile).toBe('blizzardexplode1') + + const exp1 = getMissileTxtData('blizzardexplode1') + expect(exp1.id).toBe(163) + expect(exp1.range).toBe(6) + + const exp2 = getMissileTxtData('blizzardexplode2') + expect(exp2.id).toBe(164) + expect(exp2.range).toBe(6) + + const exp3 = getMissileTxtData('blizzardexplode3') + expect(exp3.id).toBe(165) + expect(exp3.range).toBe(6) + }) + + it('3. Authentic baked DCC atlas metadata and files exist on disk with non-zero byte size', () => { + expect(BLIZZARD1_META.name).toBe('blizzard1') + expect(BLIZZARD1_META.celFile).toBe('icestormfallvar01') + expect(BLIZZARD1_META.framesPerDirection).toBe(6) + + expect(BLIZZARD2_META.name).toBe('blizzard2') + expect(BLIZZARD2_META.celFile).toBe('icestormfallvar02') + expect(BLIZZARD2_META.framesPerDirection).toBe(6) + + expect(BLIZZARD3_META.name).toBe('blizzard3') + expect(BLIZZARD3_META.celFile).toBe('Blizzard') + expect(BLIZZARD3_META.framesPerDirection).toBe(8) + + expect(BLIZZARD4_META.name).toBe('blizzard4') + expect(BLIZZARD4_META.celFile).toBe('Blizzard') + expect(BLIZZARD4_META.framesPerDirection).toBe(8) + + expect(BLIZZARDEXPLODE1_META.name).toBe('blizzardexplode1') + expect(BLIZZARDEXPLODE1_META.celFile).toBe('icestormimpactvar01') + expect(BLIZZARDEXPLODE1_META.framesPerDirection).toBe(6) + + expect(BLIZZARDEXPLODE2_META.name).toBe('blizzardexplode2') + expect(BLIZZARDEXPLODE2_META.celFile).toBe('icestormimpactvar02') + expect(BLIZZARDEXPLODE2_META.framesPerDirection).toBe(6) + + expect(BLIZZARDEXPLODE3_META.name).toBe('blizzardexplode3') + expect(BLIZZARDEXPLODE3_META.celFile).toBe('icestormimpactvar02') + expect(BLIZZARDEXPLODE3_META.framesPerDirection).toBe(6) + + expect(MISSILE_METAS['blizzard1']).toBe(BLIZZARD1_META) + expect(MISSILE_METAS['blizzard2']).toBe(BLIZZARD2_META) + expect(MISSILE_METAS['blizzard3']).toBe(BLIZZARD3_META) + expect(MISSILE_METAS['blizzard4']).toBe(BLIZZARD4_META) + expect(MISSILE_METAS['blizzardexplode1']).toBe(BLIZZARDEXPLODE1_META) + expect(MISSILE_METAS['blizzardexplode2']).toBe(BLIZZARDEXPLODE2_META) + expect(MISSILE_METAS['blizzardexplode3']).toBe(BLIZZARDEXPLODE3_META) + + const missileFiles = [ + 'blizzard1', + 'blizzard2', + 'blizzard3', + 'blizzard4', + 'blizzardexplode1', + 'blizzardexplode2', + 'blizzardexplode3', + ] + + for (const name of missileFiles) { + const pngPath = path.resolve(__dirname, `../public/missiles/${name}.png`) + const jsonPath = path.resolve(__dirname, `../public/missiles/${name}.json`) + expect(fs.existsSync(pngPath), `Missing ${pngPath}`).toBe(true) + expect(fs.statSync(pngPath).size).toBeGreaterThan(1000) + expect(fs.existsSync(jsonPath), `Missing ${jsonPath}`).toBe(true) + expect(fs.statSync(jsonPath).size).toBeGreaterThan(100) + } + }) + + it('4. Authoritative 64-entry circle lookup table matches 1.13c binary assembly (radius 30, Y*0.5)', () => { + expect(BLIZZARD_CIRCLE_X.length).toBe(64) + expect(BLIZZARD_CIRCLE_Y.length).toBe(64) + + // Primary cardinal points + expect(BLIZZARD_CIRCLE_X[0]).toBe(0) + expect(BLIZZARD_CIRCLE_Y[0]).toBe(30) + expect(BLIZZARD_CIRCLE_X[16]).toBe(30) + expect(BLIZZARD_CIRCLE_Y[16]).toBe(0) + expect(BLIZZARD_CIRCLE_X[32]).toBe(0) + expect(BLIZZARD_CIRCLE_Y[32]).toBe(-30) + expect(BLIZZARD_CIRCLE_X[48]).toBe(-30) + expect(BLIZZARD_CIRCLE_Y[48]).toBe(0) + + // getBlizzardDropOffset checks + // At index 16 (X=30, Y=0), radius 7 subtiles: dx = 30 * (112/30) = 112, dy = 0 + const offEast = getBlizzardDropOffset(16, 7, 16) + expect(offEast.dx).toBe(112) + expect(offEast.dy).toBe(0) + + // At index 0 (X=0, Y=30), radius 7 subtiles: dx = 0, dy = 30 * (112/30) * 0.5 = 56 + const offSouth = getBlizzardDropOffset(0, 7, 16) + expect(offSouth.dx).toBe(0) + expect(offSouth.dy).toBe(56) + + // 2:1 isometric aspect ratio verification + expect(ISO_GROUND_ASPECT_RATIO).toBe(0.5) + }) + + it('5. tickProjectiles: blizzardcenter lives 100 ticks and emits exactly 25 shards (cadence = 4 ticks, step = 13)', () => { + let center: Projectile = { + skillId: '59', + x: 300, + y: 300, + vx: 0, + vy: 0, + damage: 150, + ttl: 100, // 100 frames = 4.0s + fromPlayer: true, + missileType: 'blizzardcenter', + subMissileIdx: 0, + } + + const allEmittedShards: Projectile[] = [] + const openTerrain = { overlap: () => 0 } + + for (let tick = 1; tick <= 100; tick += 1) { + const outcome = tickProjectiles([center], [], openTerrain) + if (tick % 4 === 0) { + expect(outcome.spawnedProjectiles).toBeDefined() + expect(outcome.spawnedProjectiles!.length).toBe(1) + const shard = outcome.spawnedProjectiles![0]! + expect(['blizzard1', 'blizzard2', 'blizzard3', 'blizzard4']).toContain(shard.missileType) + expect(shard.damage).toBe(150) + expect(shard.statusEffect).toBe('chill') + expect(shard.statusDuration).toBe(100) + expect(shard.ttl).toBe(9) + expect(shard.altitude).toBe(120) + allEmittedShards.push(shard) + } else { + expect(outcome.spawnedProjectiles?.length ?? 0).toBe(0) + } + + // Center must remain alive until tick 100 + center = outcome.alive.find(p => p.missileType === 'blizzardcenter')! + if (tick < 100) { + expect(center).toBeDefined() + expect(center.ttl).toBe(100 - tick) + } + } + + // Exactly 25 shards produced over 100 ticks (100 / 4) + expect(allEmittedShards.length).toBe(25) + + // At tick 101, center expires + const expiredOutcome = tickProjectiles([center], [], openTerrain) + expect(expiredOutcome.expired).toBe(1) + expect(expiredOutcome.alive.length).toBe(0) + }) + + it('6. Main blizzardcenter is a harmless emitter and pierces monsters without dealing direct contact damage', () => { + const center: Projectile = { + skillId: '59', + x: 200, + y: 200, + vx: 0, + vy: 0, + damage: 100, + ttl: 20, + fromPlayer: true, + missileType: 'blizzardcenter', + subMissileIdx: 0, + } + + const monster = [{ index: 0, x: 200, y: 200, radius: 25, alive: true }] + const outcome = tickProjectiles([center], monster, { overlap: () => 0 }) + + // Center must not trigger hits or take damage on the monster + expect(outcome.hits.length).toBe(0) + expect(outcome.alive.some(p => p.missileType === 'blizzardcenter')).toBe(true) + }) + + it('7. Falling shard altitude descends vertically from 120 px to 0 over 9 ticks and detonates on ground impact', () => { + let shard: Projectile = { + skillId: '59', + x: 150, + y: 150, + vx: 0, + vy: 0, + altitude: 120, + damage: 80, + ttl: 9, + fromPlayer: true, + missileType: 'blizzard1', + } + + const openTerrain = { overlap: () => 0 } + + for (let tick = 1; tick <= 9; tick += 1) { + const outcome = tickProjectiles([shard], [], openTerrain) + shard = outcome.alive.find(p => p.missileType === 'blizzard1')! + if (tick < 9) { + expect(shard).toBeDefined() + expect(shard.ttl).toBe(9 - tick) + // Decrements by 120 / 9 px per tick + const expectedAltitude = 120 - tick * (120 / 9) + expect(shard.altitude).toBeCloseTo(expectedAltitude, 0.1) + } else { + // At tick 9, ttl reached 0 + expect(shard.ttl).toBe(0) + } + } + + // Next tick: shard with ttl 0 expires and detonates ground impact explosion + const impactOutcome = tickProjectiles([shard], [], openTerrain) + expect(impactOutcome.expired).toBe(1) + expect(impactOutcome.spawnedProjectiles).toBeDefined() + expect(impactOutcome.spawnedProjectiles!.length).toBe(1) + + const exp = impactOutcome.spawnedProjectiles![0]! + expect(exp.missileType).toBe('blizzardexplode1') + expect(exp.damage).toBe(80) + expect(exp.ttl).toBe(6) // 1.13c Range = 6 + expect(exp.statusEffect).toBe('chill') + expect(exp.statusDuration).toBe(100) // 100 ticks chill length + }) + + it('8. Wall collision halts descending shard and spawns impact explosion', () => { + const shard: Projectile = { + skillId: '59', + x: 100, + y: 100, + vx: 0, + vy: 0, + altitude: 80, + damage: 90, + ttl: 7, + fromPlayer: true, + missileType: 'blizzard2', + } + + // Solid wall at (100, 100) + const wallTerrain = { overlap: () => 1 } + const outcome = tickProjectiles([shard], [], wallTerrain) + + expect(outcome.wallHits).toBe(1) + expect(outcome.alive.some(p => p.missileType === 'blizzard2')).toBe(false) + expect(outcome.spawnedProjectiles).toBeDefined() + expect(outcome.spawnedProjectiles!.length).toBe(1) + + const exp = outcome.spawnedProjectiles![0]! + expect(exp.missileType).toBe('blizzardexplode2') + expect(exp.ttl).toBe(6) + }) + + it('9. Direct monster hit while falling deals cold damage and chill without immunity window (NextDelay = 0)', () => { + const shard1: Projectile = { + skillId: '59', + x: 100, + y: 100, + vx: 0, + vy: 0, + damage: 100, + ttl: 5, + fromPlayer: true, + missileType: 'blizzard1', + } + const shard2: Projectile = { + skillId: '59', + x: 102, + y: 100, + vx: 0, + vy: 0, + damage: 100, + ttl: 5, + fromPlayer: true, + missileType: 'blizzard2', + } + + const dummyMonster = [{ index: 1, x: 101, y: 100, radius: 12, alive: true }] + const outcome = tickProjectiles([shard1, shard2], dummyMonster, { overlap: () => 0 }) + + // NextDelay = 0 allows both shards to hit the monster in the same frame + expect(outcome.hits.length).toBe(2) + for (const hit of outcome.hits) { + expect(hit.targetIndex).toBe(1) + expect(hit.damage).toBe(100) + expect(hit.statusEffect).toBe('chill') + expect(hit.statusDuration).toBe(100) + } + + // Both shards must trigger explosion + expect(outcome.spawnedProjectiles!.length).toBe(2) + expect(outcome.spawnedProjectiles!.some(p => p.missileType === 'blizzardexplode1')).toBe(true) + expect(outcome.spawnedProjectiles!.some(p => p.missileType === 'blizzardexplode2')).toBe(true) + }) + + it('10. calculateBlizzardDamage and calculateBlizzardSynergyMultiplier evaluate 5-band formulas & synergies', () => { + // slvl 1: 45 - 75 + const d1 = calculateBlizzardDamage(1) + expect(d1.min).toBe(45) + expect(d1.max).toBe(75) + + // slvl 10: 210 - 249 + const d10 = calculateBlizzardDamage(10) + expect(d10.min).toBe(210) + expect(d10.max).toBe(249) + + // slvl 20: 570 - 619 + const d20 = calculateBlizzardDamage(20) + expect(d20.min).toBe(570) + expect(d20.max).toBe(619) + + // slvl 30: 1120 - 1179 + const d30 = calculateBlizzardDamage(30) + expect(d30.min).toBe(1120) + expect(d30.max).toBe(1179) + + // Synergy: 20 points in Ice Bolt (+100% = 2.0x) + const syn20 = calculateBlizzardSynergyMultiplier({ iceBolt: 20 }) + expect(syn20).toBe(2.0) + const d20Syn = calculateBlizzardDamage(20, { iceBolt: 20 }) + expect(d20Syn.min).toBe(1140) // 570 * 2.0 + expect(d20Syn.max).toBe(1238) // 619 * 2.0 + + // Full synergies: 20 in Ice Bolt, 20 in Ice Blast, 20 in Glacial Spike (+300% = 4.0x) + const syn60 = calculateBlizzardSynergyMultiplier({ iceBolt: 20, iceBlast: 20, glacialSpike: 20 }) + expect(syn60).toBe(4.0) + const d20Full = calculateBlizzardDamage(20, { iceBolt: 20, iceBlast: 20, glacialSpike: 20 }) + expect(d20Full.min).toBe(2280) // 570 * 4.0 + expect(d20Full.max).toBe(2476) // 619 * 4.0 + }) +})