From 43d32e6d23950967b6e5b1af5c6148fbc5c07866 Mon Sep 17 00:00:00 2001 From: troytt <47798984@qq.com> Date: Fri, 2 Oct 2026 15:00:45 +0000 Subject: [PATCH] Fix Multiple Shot ammunition branching and Missiles.txt 684-row parity (Closes #562, #568, #571, #572, #574, #576) --- src/client/session/online-session.ts | 16 +- src/client/world/client-world.ts | 99 +- src/common/skills/missiles-data.ts | 2240 ++++++++------------------ src/server/engine/combat-pipeline.ts | 4 +- tests/client/client-world.test.ts | 4 +- 5 files changed, 787 insertions(+), 1576 deletions(-) diff --git a/src/client/session/online-session.ts b/src/client/session/online-session.ts index 582818e..55aec0e 100644 --- a/src/client/session/online-session.ts +++ b/src/client/session/online-session.ts @@ -1141,20 +1141,18 @@ export class OnlineSession { if (this.gameAdapter && this.gameAdapter.state !== 'closed') { try { this.gameAdapter.send(cmd) - this.world.noteOutgoingCommand(cmd, nowMs) - if (this.world.selfId !== 0) { - const selfUnit = this.world.getUnit('player', this.world.selfId) - if (selfUnit?.castState && !this.predictor.getSnapshot().moving) { - this.predictor.setTargetDirection(selfUnit.targetDirection, false) - } - } } catch (err) { const msg = err instanceof Error ? err.message : String(err) this.handleUnexpectedDisconnect(`Failed to send command ${cmd.type}: ${msg}`, 'error', true) return } - } else { - this.world.noteOutgoingCommand(cmd, nowMs) + } + this.world.noteOutgoingCommand(cmd, nowMs) + if (this.world.selfId !== 0) { + const selfUnit = this.world.getUnit('player', this.world.selfId) + if (selfUnit?.castState && !this.predictor.getSnapshot().moving) { + this.predictor.setTargetDirection(selfUnit.targetDirection, false) + } } if ( cmd.type === 'SkillAt' || diff --git a/src/client/world/client-world.ts b/src/client/world/client-world.ts index 9e7684e..bbdc150 100644 --- a/src/client/world/client-world.ts +++ b/src/client/world/client-world.ts @@ -210,6 +210,13 @@ const BUTTON_ACTION_OPEN_STASH = 0x10 /** Largest 1.13c stat id: stat ids are 9 bits wide in the stat bitstream (ItemStatCost.txt). */ const MAX_D2_STAT_ID = 0x1ff +/** 1.13c crossbow item codes (normal, exceptional, elite). */ +const CROSSBOW_ITEM_CODES = new Set([ + 'lxb', 'mxb', 'hxb', 'rxb', + '8lx', '8mx', '8hx', '8rx', + '6lx', '6mx', '6hx', '6rx', +]) + /** 1.13c physical/weapon attack skill IDs that use attack animation mode (`A1`) instead of spellcast (`SC`). */ const PHYSICAL_ATTACK_SKILL_IDS = new Set([ 0, 2, 6, 7, 10, 11, 12, 16, 19, 20, 21, 22, 24, 26, 27, 31, 96, 97, 106, 107, 116, 126, 133, 139, @@ -529,7 +536,7 @@ export class ClientWorld { const defaultMaxTicks = !loopAnim && data.vel === 0 ? Math.max(1, Math.ceil((totalFrames * 16) / animSpeed)) - : Math.max(1, (data.range || 20) + Math.max(0, level - 1) * (data.levRange ?? 0)) + : Math.max(1, data.range + Math.max(0, level - 1) * (data.levRange ?? 0)) const maxTicks = opts?.maxTicks ?? defaultMaxTicks const unit = new ClientUnit({ @@ -577,6 +584,35 @@ export class ClientWorld { return unit } + private isCrossbowEquipped(caster: ClientUnit): boolean { + if (caster.unitType === 'player') { + const isSelf = caster.id === this.selfId || this.selfId === 0 + if (isSelf) { + const eqWeapon = + this._containers.equipmentBySlot.get(4) ?? this._containers.equipmentBySlot.get(5) + if (eqWeapon) { + const code = (eqWeapon.code ?? '').trim().toLowerCase() + if (CROSSBOW_ITEM_CODES.has(code)) return true + const rawName = (eqWeapon as any).name + if (typeof rawName === 'string') { + const name = rawName.toLowerCase() + if ( + name.includes('crossbow') || + name.includes('arbalest') || + name.includes('ballista') || + name.includes('chu-ko-nu') + ) { + return true + } + } + } + } + const weaponType = (caster as any).equippedWeaponType ?? (caster as any).weaponItemType + if (typeof weaponType === 'string' && weaponType.toLowerCase() === 'crossbow') return true + } + return false + } + /** * Spawns canonical 1.13c projectile/ground/radial/spiral/emitter missiles for a skill cast. */ @@ -612,12 +648,17 @@ export class ClientWorld { // 2. Multi-projectile fan spells: Charged Bolt (38), Teeth (67), Multiple Shot (12) if (skillId === 38 || skillId === 67 || skillId === 12) { - const missileKey = + let missileKey = skillId === 38 ? 'chargedbolt' : skillId === 67 ? 'teeth' : 'multipleshotarrow' - const count = - skillId === 38 - ? Math.min(24, 2 + Math.max(1, skillLevel)) - : Math.min(24, Math.max(2, 1 + Math.max(1, skillLevel))) + let count = 2 + if (skillId === 38) { + count = Math.min(24, 2 + Math.max(1, skillLevel)) + } else if (skillId === 67) { + count = Math.min(24, 1 + Math.max(1, skillLevel)) + } else if (skillId === 12) { + count = Math.min(24, 2 + Math.max(1, skillLevel)) + missileKey = this.isCrossbowEquipped(caster) ? 'multipleshotbolt' : 'multipleshotarrow' + } const totalSpread = Math.min(Math.PI * 0.65, 0.14 * Math.max(1, count - 1)) for (let i = 0; i < count; i++) { const offset = count === 1 ? 0 : -totalSpread / 2 + (totalSpread * i) / (count - 1) @@ -844,8 +885,6 @@ export class ClientWorld { spawnVisuals = true, nowMs?: number, ): void { - unit.targetX = targetX - unit.targetY = targetY unit.lastSkillId = skillId unit.moveMode = 'stop' // Turn toward the cast/attack target via D2Common.#10425 (bInstant = 0); 25Hz tick steps @@ -870,6 +909,18 @@ export class ClientWorld { effRate = animParams.effRate stepSpeed256 = animParams.stepSpeed256 durationMs = animParams.durationMs + } else if (unit.unitType === 'monster') { + if (unit.totalFrames && unit.totalFrames > 0) { + frames = unit.totalFrames + } + if (unit.animStepSpeed256 && unit.animStepSpeed256 > 0) { + stepSpeed256 = unit.animStepSpeed256 + baseSpeed = stepSpeed256 + } else if (unit.animSpeed && unit.animSpeed > 0) { + baseSpeed = Math.round((unit.animSpeed / 16) * 256) + stepSpeed256 = baseSpeed + } + durationMs = computeOneShotDurationMs(frames, stepSpeed256) } const castState: UnitCastState = { @@ -1217,7 +1268,7 @@ export class ClientWorld { hitY: number, isWallHit: boolean, ): void { - const expKey = + let expKey = missile.explosionMissile || (!isWallHit && (missile.missileKey === 'lightning' || @@ -1227,6 +1278,12 @@ export class ClientWorld { ? 'lightninghit' : '') + if (expKey === 'freezingarrowexp1') { + expKey = 'freezeexplode' + } else if (expKey === 'freezingarrowexp2') { + expKey = 'glacialspikeejecta' + } + if (expKey) { const exp = this.spawnMissileByKey(expKey, hitX, hitY, hitX, hitY, { ownerType: missile.ownerType, @@ -1592,9 +1649,8 @@ export class ClientWorld { if (!Number.isFinite(dtMs)) { throw new RangeError(`dtMs must be a finite number, got ${String(dtMs)}`) } - const safeDt = Math.max(0, dtMs) - const cappedDt = Math.min(200, safeDt) - this._tickAccumulatorMs += cappedDt + const safeDt = Math.min(200, Math.max(0, dtMs)) + this._tickAccumulatorMs = Math.min(200, this._tickAccumulatorMs + safeDt) this._simTimeMs += safeDt this.expireCastStates(nowMs, safeDt) @@ -2143,9 +2199,12 @@ export class ClientWorld { unit.animStepSpeed256 = speedInfo.stepSpeed256 unit.animEffRate = speedInfo.effRate } else if (unit.unitType === 'monster' && resolvedMode === 3) { - unit.modeDurationMs = 240 - unit.modeUntilMs = now + 240 - unit.animStepSpeed256 = undefined + const ghFrames = unit.totalFrames && unit.totalFrames > 0 ? unit.totalFrames : 8 + const ghSpeed = unit.animStepSpeed256 && unit.animStepSpeed256 > 0 ? unit.animStepSpeed256 : 256 + const ghDuration = computeOneShotDurationMs(ghFrames, ghSpeed) + unit.modeDurationMs = ghDuration + unit.modeUntilMs = now + ghDuration + unit.animStepSpeed256 = ghSpeed unit.animEffRate = undefined } else { unit.modeDurationMs = undefined @@ -2232,7 +2291,10 @@ export class ClientWorld { // 0x73 CreateMissile: caster.unitType === 3 ('missile') if (unitTypeFromId(casterType) === 'missile') { const missileClassId = skillId - const missileKey = MISSILE_CLASS_ID_TO_KEY[missileClassId] ?? 'arrow' + const missileKey = MISSILE_CLASS_ID_TO_KEY[missileClassId] + if (!missileKey) { + throw new Error(`Unknown missile classId ${missileClassId} in Missiles.txt`) + } const ownerType = ev.owner ? unitTypeFromId(ev.owner.unitType) : 'player' const ownerId = ev.owner?.id ?? 0 const ownerUnit = ev.owner ? this.getUnit(ev.owner.unitType, ev.owner.id) : undefined @@ -2292,12 +2354,11 @@ export class ClientWorld { (unit.id === this.selfId || this.selfId === 0) && skillId === this._lastLocalCastSkillId && timeSinceLocalCast >= 0 && - timeSinceLocalCast <= 500 + timeSinceLocalCast <= 1000 if (isSelfEcho) { this._lastLocalCastSkillId = -1 if (unit.castState && unit.castState.skillId === skillId && now < unit.castState.untilMs) { - unit.targetX = targetX - unit.targetY = targetY + unit.faceToward(targetX, targetY, false) } else { this.applySkillCastToUnit(unit, skillId, targetX, targetY, level, false, nowMs) } diff --git a/src/common/skills/missiles-data.ts b/src/common/skills/missiles-data.ts index d085d8f..95af0b3 100644 --- a/src/common/skills/missiles-data.ts +++ b/src/common/skills/missiles-data.ts @@ -222,1550 +222,700 @@ export interface MissileTxtData { /** Canonical 1.13c Ground Truth Missiles.txt defaults. */ export const CANONICAL_113C_MISSILES: Readonly> = Object.freeze({ - lightninghit: { - name: 'lightninghit', - id: 99, - vel: 0, - maxVel: 0, - range: 12, - levRange: 0, - celFile: 'LightningStrike', - animLen: 8, - animSpeed: 16, - loopAnim: 1, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - trans: 1, - speedPxPerSec: 0, - distancePx: 0, - subLoop: 1, - subStop: 7, - }, - lightningbolt: { - name: 'lightningbolt', - id: 98, - vel: 30, - maxVel: 30, - range: 25, - levRange: 0, - celFile: 'LightningStrike', - animLen: 16, - animSpeed: 16, - loopAnim: 2, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - trans: 1, - speedPxPerSec: 750, - distancePx: 750, - }, - lightning: { - name: 'lightning', - clientAlias: true, - id: 98, - vel: 30, - maxVel: 30, - range: 25, - levRange: 0, - celFile: 'LightningStrike', - animLen: 16, - animSpeed: 16, - loopAnim: 2, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - trans: 1, - speedPxPerSec: 750, - distancePx: 750, - }, - chainlightning: { - name: 'chainlightning', - id: 93, - vel: 30, - maxVel: 30, - range: 25, - levRange: 0, - celFile: 'LightningStrike', - animLen: 16, - animSpeed: 16, - loopAnim: 1, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - nextHit: 1, - nextDelay: 4, - trans: 1, - speedPxPerSec: 750, - distancePx: 750, - }, - thunderstorm1: { - name: 'thunderstorm1', - id: 166, - vel: 2, - maxVel: 2, - range: 9, - levRange: 0, - celFile: 'LightningboltBig', - animLen: 8, - animSpeed: 8, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - trans: 1, - speedPxPerSec: 50, - distancePx: 18, - }, - thunderstorm: { - name: 'thunderstorm', - clientAlias: true, - id: 166, - vel: 2, - maxVel: 2, - range: 9, - levRange: 0, - celFile: 'LightningboltBig', - animLen: 8, - animSpeed: 8, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - trans: 1, - speedPxPerSec: 50, - distancePx: 18, - }, - nova: { - name: 'nova', - id: 90, - vel: 24, - maxVel: 24, - range: 13, - levRange: 0, - celFile: 'ElectricNova', - animLen: 13, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - nextHit: 1, - nextDelay: 4, - trans: 1, - speedPxPerSec: 600, - distancePx: 312, - }, - electricnova: { - name: 'electricnova', - clientAlias: true, - id: 90, - vel: 24, - maxVel: 24, - range: 13, - levRange: 0, - celFile: 'ElectricNova', - animLen: 13, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - nextHit: 1, - nextDelay: 4, - trans: 1, - speedPxPerSec: 600, - distancePx: 312, - }, - frostnova: { - name: 'frostnova', - id: 119, - vel: 24, - maxVel: 24, - range: 14, - levRange: 0, - celFile: 'FrostNova', - animLen: 14, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 0, - red: 81, - green: 81, - blue: 255, - nextHit: 1, - nextDelay: 4, - trans: 1, - speedPxPerSec: 600, - distancePx: 336, - }, - firebolt: { - name: 'firebolt', - id: 58, - vel: 20, - maxVel: 20, - range: 50, - levRange: 0, - celFile: 'Firebolt', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'fireexplode', - light: 7, - red: 255, - green: 178, - blue: 64, - speedPxPerSec: 500, - trans: 1, - distancePx: 1000, - }, - fireball: { - name: 'fireball', - id: 62, - vel: 20, - maxVel: 20, - range: 50, - levRange: 0, - celFile: 'Fireball', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'explodingarrowexp', - light: 7, - red: 255, - green: 178, - blue: 64, - speedPxPerSec: 500, - trans: 1, - distancePx: 1000, - }, - fireexplode: { - name: 'fireexplode', - id: 29, - vel: 0, - maxVel: 0, - range: 12, - levRange: 0, - celFile: 'FireArrowExplode2', - animLen: 12, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 13, - red: 255, - green: 178, - blue: 64, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - explodingarrowexp: { - name: 'explodingarrowexp', - id: 42, - vel: 0, - maxVel: 0, - range: 16, - levRange: 0, - celFile: 'ExpArrowExplode', - animLen: 16, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 178, - blue: 64, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - icebolt: { - name: 'icebolt', - id: 59, - vel: 12, - maxVel: 12, - range: 50, - levRange: 0, - celFile: 'Icebolt', - animLen: 6, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'iceexplode', - light: 7, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 300, - trans: 1, - distancePx: 600, - }, - iceblast: { - name: 'iceblast', - id: 91, - vel: 12, - maxVel: 12, - range: 50, - levRange: 0, - celFile: 'IceBlast', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'freezeexplode', - light: 7, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 300, - trans: 1, - distancePx: 600, - }, - glacialspike: { - name: 'glacialspike', - id: 96, - vel: 16, - maxVel: 16, - range: 40, - levRange: 0, - celFile: 'GlacialSpike', - animLen: 6, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'freezeexplode', - light: 5, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 400, - trans: 1, - distancePx: 640, - }, - iceexplode: { - name: 'iceexplode', - id: 30, - vel: 0, - maxVel: 0, - range: 16, - levRange: 0, - celFile: 'IceArrowExplode', - animLen: 16, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 11, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - freezeexplode: { - name: 'freezeexplode', - clientAlias: true, - id: 88, - vel: 0, - maxVel: 0, - range: 15, - levRange: 0, - celFile: 'FreezeExplodeCenter', - animLen: 15, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 11, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - freezingarrowexp1: { - name: 'freezingarrowexp1', - id: 88, - vel: 0, - maxVel: 0, - range: 15, - levRange: 0, - celFile: 'FreezeExplodeCenter', - animLen: 15, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 11, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - glacialspikeejecta: { - name: 'glacialspikeejecta', - clientAlias: true, - id: 89, - vel: 0, - maxVel: 0, - range: 15, - levRange: 0, - celFile: 'FreezeExplodeEjecta', - animLen: 15, - animSpeed: 16, - loopAnim: 0, - numDirections: 8, - explosionMissile: '', - light: 11, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - frozenorb: { - name: 'frozenorb', - id: 260, - vel: 10, - maxVel: 10, - range: 30, - levRange: 0, - celFile: 'IceOrb', - animLen: 16, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'frozenorbexplode', - light: 6, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 250, - trans: 1, - distancePx: 300, - }, - frozenorbbolt: { - name: 'frozenorbbolt', - id: 261, - vel: 18, - maxVel: 18, - range: 25, - levRange: 0, - celFile: 'IceBolt', - animLen: 6, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'iceexplode', - light: 4, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 450, - trans: 1, - distancePx: 450, - }, - frozenorbnova: { - name: 'frozenorbnova', - id: 262, - vel: 24, - maxVel: 24, - range: 25, - levRange: 0, - celFile: 'IceBolt', - animLen: 6, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'iceexplode', - light: 4, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 600, - trans: 1, - distancePx: 600, - }, - frozenorbexplode: { - name: 'frozenorbexplode', - id: 263, - vel: 0, - maxVel: 0, - range: 16, - levRange: 0, - celFile: 'IceOrbExplode', - animLen: 16, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 6, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 0, - trans: 1, - 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, - trans: 1, - 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, - trans: 1, - 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, - trans: 1, - 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, - trans: 1, - 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, - trans: 1, - 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, - trans: 1, - 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, - trans: 1, - distancePx: 0, - }, - blizzardexplode3: { - name: 'blizzardexplode3', - id: 165, - 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, - trans: 1, - distancePx: 0, - }, - hydra: { - name: 'hydra', - id: 247, - vel: 16, - maxVel: 16, - range: 30, - levRange: 0, - celFile: 'Firebolt', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'fireexplode', - light: 5, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 400, - trans: 1, - distancePx: 480, - }, - hydrafire: { - name: 'hydrafire', - clientAlias: true, - id: 247, - vel: 16, - maxVel: 16, - range: 30, - levRange: 0, - celFile: 'Firebolt', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'fireexplode', - light: 5, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 400, - trans: 1, - distancePx: 480, - }, - firewallmaker: { - name: 'firewallmaker', - id: 68, - vel: 0, - maxVel: 0, - range: 1, - levRange: 0, - celFile: '', - animLen: 1, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 0, - green: 0, - blue: 0, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - firewall: { - name: 'firewall', - id: 69, - vel: 0, - maxVel: 0, - range: 90, - levRange: 0, - celFile: 'groundFireBig', - animLen: 37, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: '', - light: 5, - red: 255, - green: 178, - blue: 64, - trans: 1, - speedPxPerSec: 0, - distancePx: 0, - }, - groundfirebig: { - name: 'groundfirebig', - clientAlias: true, - id: 83, - vel: 0, - maxVel: 0, - range: 90, - levRange: 0, - celFile: 'groundFireBig', - animLen: 15, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: '', - light: 10, - red: 255, - green: 178, - blue: 64, - trans: 1, - speedPxPerSec: 0, - distancePx: 0, - }, - blaze: { - name: 'blaze', - id: 67, - vel: 0, - maxVel: 0, - range: 90, - levRange: 25, - celFile: 'Blaze', - animLen: 14, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: '', - light: 8, - red: 255, - green: 178, - blue: 64, - trans: 1, - speedPxPerSec: 0, - distancePx: 0, - }, - infernoflame1: { - name: 'infernoflame1', - id: 60, - vel: 12, - maxVel: 12, - range: 16, - levRange: 0, - celFile: 'InfernoFlame1', - animLen: 8, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 6, - red: 255, - green: 178, - blue: 64, - trans: 1, - speedPxPerSec: 300, - distancePx: 192, - }, - infernoflame2: { - name: 'infernoflame2', - id: 61, - vel: 12, - maxVel: 12, - range: 16, - levRange: 0, - celFile: 'InfernoFlame2', - animLen: 8, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 6, - red: 255, - green: 178, - blue: 64, - trans: 1, - speedPxPerSec: 300, - distancePx: 192, - }, - meteor: { - name: 'meteor', - id: 100, - vel: 0, - maxVel: 0, - range: 60, - levRange: 0, - celFile: 'Meteor', - animLen: 12, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: 'meteorexplode', - light: 0, - red: 0, - green: 0, - blue: 0, - speedPxPerSec: 0, - trans: 0, - distancePx: 0, - }, - meteorcenter: { - name: 'meteorcenter', - id: 101, - vel: 0, - maxVel: 0, - range: 60, - levRange: 0, - celFile: 'MeteorTargetIndicator', - animLen: 17, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: 'meteorexplode', - light: 4, - red: 255, - green: 64, - blue: 64, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - meteortail: { - name: 'meteortail', - id: 102, - vel: 0, - maxVel: 0, - range: 60, - levRange: 0, - celFile: 'MeteorTail', - animLen: 12, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 0, - green: 0, - blue: 0, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - meteorexplode: { - name: 'meteorexplode', - id: 103, - vel: 0, - maxVel: 0, - range: 16, - levRange: 0, - celFile: 'ExpArrowExplode', - animLen: 16, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 13, - red: 255, - green: 178, - blue: 64, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - meteorfire: { - name: 'meteorfire', - id: 240, - vel: 0, - maxVel: 0, - range: 30, - levRange: 15, - celFile: 'groundFireMedium', - animLen: 37, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: '', - light: 3, - red: 255, - green: 178, - blue: 64, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - chargedbolt: { - name: 'chargedbolt', - id: 56, - vel: 12, - maxVel: 12, - range: 98, - levRange: 0, - celFile: 'ChargedBolt', - animLen: 10, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 3, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 300, - trans: 1, - distancePx: 1176, - }, - teeth: { - name: 'teeth', - id: 114, - vel: 16, - maxVel: 16, - range: 50, - levRange: 0, - celFile: 'teethMissile', - animLen: 30, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: 'teethexplode', - light: 3, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 400, - trans: 1, - distancePx: 800, - }, - teethexplode: { - name: 'teethexplode', - id: 204, - vel: 0, - maxVel: 0, - range: 13, - levRange: 0, - celFile: 'teethexplode', - animLen: 13, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - bonespear: { - name: 'bonespear', - id: 192, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'BoneSpear', - animLen: 6, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'teethexplode', - light: 3, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 600, - trans: 1, - distancePx: 960, - }, - bonespearexplode: { - name: 'bonespearexplode', - id: 216, - vel: 0, - maxVel: 0, - range: 13, - levRange: 0, - celFile: 'teethexplode', - animLen: 13, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - bonespirit: { - name: 'bonespirit', - id: 193, - vel: 12, - maxVel: 12, - range: 128, - levRange: 0, - celFile: 'BoneSpirit', - animLen: 8, - animSpeed: 16, - loopAnim: 1, - numDirections: 8, - explosionMissile: 'bonespiritexplode', - light: 3, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 300, - trans: 1, - distancePx: 1536, - }, - bonespiritexplode: { - name: 'bonespiritexplode', - id: 327, - vel: 0, - maxVel: 0, - range: 13, - levRange: 0, - celFile: 'BoneSpiritExplode', - animLen: 13, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - }, - poisonnova: { - name: 'poisonnova', - id: 118, - vel: 12, - maxVel: 12, - range: 30, - levRange: 0, - celFile: 'poisonNova', - animLen: 30, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 300, - trans: 1, - distancePx: 360, - }, - holybolt: { - name: 'holybolt', - id: 55, - vel: 20, - maxVel: 20, - range: 50, - levRange: 0, - celFile: 'HolyBoltMissile', - animLen: 16, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: '', - light: 7, - red: 222, - green: 222, - blue: 255, - speedPxPerSec: 500, - trans: 1, - distancePx: 1000, - }, - blessedhammer: { - name: 'blessedhammer', - id: 92, - vel: 18, - maxVel: 30, - range: 120, - levRange: 0, - celFile: 'blessedhammer', - animLen: 6, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 5, - red: 222, - green: 222, - blue: 255, - speedPxPerSec: 450, - trans: 1, - distancePx: 2160, - }, - magicarrow: { - name: 'magicarrow', - id: 27, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'SafeArrow', - animLen: 1, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: 'teethexplode', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 600, - trans: 1, - distancePx: 960, - }, - firearrow: { - name: 'firearrow', - id: 12, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'FireArrow', - animLen: 8, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: 'fireexplode', - light: 6, - red: 255, - green: 178, - blue: 64, - speedPxPerSec: 600, - trans: 1, - distancePx: 960, - }, - icearrow: { - name: 'icearrow', - id: 28, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'IceArrow', - animLen: 8, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: 'iceexplode', - light: 6, - red: 81, - green: 81, - blue: 255, - speedPxPerSec: 600, - trans: 1, - distancePx: 960, - }, - arrow: { - name: 'arrow', - id: 0, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'Arrow', - animLen: 1, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - }, - multipleshotarrow: { - name: 'multipleshotarrow', - id: 213, - vel: 24, - maxVel: 24, - range: 50, - levRange: 0, - celFile: 'Arrow', - animLen: 1, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 600, - trans: 0, - distancePx: 1200, - }, - lightningjavelin: { - name: 'lightningjavelin', - id: 205, - vel: 30, - maxVel: 30, - range: 25, - levRange: 0, - celFile: 'LightningJavelin', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 6, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 750, - trans: 1, - distancePx: 750, - }, - bolt: { - name: 'bolt', - id: 1, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'Spike', - animLen: 1, - animSpeed: 16, - loopAnim: 1, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 0, - green: 0, - blue: 0, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - clientAlias: true, - }, - coldarrow: { - name: 'coldarrow', - id: 13, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'ColdArrow', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 3, - red: 112, - green: 160, - blue: 255, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - clientAlias: true, - }, - guidedarrow: { - name: 'guidedarrow', - id: 31, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'Arrow', - animLen: 1, - animSpeed: 16, - loopAnim: 1, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - clientAlias: true, - }, - explodingarrow: { - name: 'explodingarrow', - id: 41, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'FireArrow', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'explodingarrowexp', - alwaysExplode: true, - light: 3, - red: 255, - green: 175, - blue: 55, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - clientAlias: true, - }, - immolationarrow: { - name: 'immolationarrow', - id: 63, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'FireArrow', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'explodingarrowexp', - alwaysExplode: true, - light: 5, - red: 255, - green: 175, - blue: 55, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - clientAlias: true, - }, - immolationfire: { - name: 'immolationfire', - id: 64, - vel: 0, - maxVel: 0, - range: 75, - levRange: 0, - celFile: 'FireSmall', - animLen: 21, - animSpeed: 16, - loopAnim: 1, - numDirections: 1, - explosionMissile: '', - light: 3, - red: 255, - green: 185, - blue: 75, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - clientAlias: true, - }, - freezingarrow: { - name: 'freezingarrow', - id: 87, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'ColdArrow', - animLen: 5, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: 'freezingarrowexp1', - alwaysExplode: true, - light: 3, - red: 112, - green: 160, - blue: 255, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - clientAlias: true, - }, - foa: { - name: 'foa', - id: 211, - vel: 0, - maxVel: 0, - range: 25, - levRange: 0, - celFile: 'FistOfTheHeavensDelay', - animLen: 5, - animSpeed: 16, - loopAnim: 0, - numDirections: 1, - explosionMissile: 'fistoftheheavensbolt', - alwaysExplode: true, - light: 8, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 0, - trans: 1, - distancePx: 0, - clientAlias: true, - }, - fistoftheheavensbolt: { - name: 'fistoftheheavensbolt', - id: 212, - vel: 24, - maxVel: 24, - range: 25, - levRange: 0, - celFile: 'HolyBolt', - animLen: 6, - animSpeed: 16, - loopAnim: 1, - numDirections: 16, - explosionMissile: '', - light: 3, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 600, - trans: 1, - distancePx: 600, - clientAlias: true, - }, - strafearrow: { - name: 'strafearrow', - id: 215, - vel: 24, - maxVel: 24, - range: 40, - levRange: 0, - celFile: 'Arrow', - animLen: 1, - animSpeed: 16, - loopAnim: 1, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 0, - green: 0, - blue: 0, - speedPxPerSec: 600, - trans: 0, - distancePx: 960, - clientAlias: true, - }, - 'multiple shot': { - name: 'multipleshotarrow', - id: 213, - vel: 24, - maxVel: 24, - range: 50, - levRange: 0, - celFile: 'Arrow', - animLen: 1, - animSpeed: 16, - loopAnim: 0, - numDirections: 32, - explosionMissile: '', - light: 0, - red: 255, - green: 255, - blue: 255, - speedPxPerSec: 600, - trans: 0, - distancePx: 1200, - clientAlias: true, - }, + arrow: { name: "arrow", id: 0, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + javelin: { name: "javelin", id: 1, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + bighead1: { name: "bighead1", id: 2, vel: 8, maxVel: 8, range: 40, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "bigheadexp", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 200, distancePx: 320, trans: 1 }, + bighead2: { name: "bighead2", id: 3, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "bigheadexp", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 300, distancePx: 480, trans: 1 }, + bighead3: { name: "bighead3", id: 4, vel: 14, maxVel: 14, range: 40, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "bigheadexp", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 350, distancePx: 560, trans: 1 }, + bighead4: { name: "bighead4", id: 5, vel: 10, maxVel: 10, range: 40, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "bigheadexp", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 250, distancePx: 400, trans: 1 }, + bighead5: { name: "bighead5", id: 6, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "bigheadexp", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 400, distancePx: 640, trans: 1 }, + spike1: { name: "spike1", id: 7, vel: 10, maxVel: 10, range: 40, levRange: 0, celFile: "SpikeFiendMissle", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 400 }, + spike2: { name: "spike2", id: 8, vel: 13, maxVel: 13, range: 40, levRange: 0, celFile: "SpikeFiendMissle", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 325, distancePx: 520 }, + spike3: { name: "spike3", id: 9, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "SpikeFiendMissle", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 400, distancePx: 640 }, + spike4: { name: "spike4", id: 10, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "SpikeFiendMissle", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800 }, + spike5: { name: "spike5", id: 11, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "SpikeFiendMissle", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960 }, + firearrow: { name: "firearrow", id: 12, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "FireArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "fireexplode", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + cr_arrow1: { name: "cr_arrow1", id: 13, vel: 14, maxVel: 14, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 560, pierce: true }, + cr_arrow2: { name: "cr_arrow2", id: 14, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 400, distancePx: 640, pierce: true }, + cr_arrow3: { name: "cr_arrow3", id: 15, vel: 18, maxVel: 18, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 450, distancePx: 720, pierce: true }, + cr_arrow4: { name: "cr_arrow4", id: 16, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800, pierce: true }, + cr_arrow5: { name: "cr_arrow5", id: 17, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + blood1: { name: "blood1", id: 18, vel: 3, maxVel: 3, range: 128, levRange: 0, celFile: "BloodSmall01", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 75, distancePx: 384 }, + blood2: { name: "blood2", id: 19, vel: 4, maxVel: 4, range: 128, levRange: 0, celFile: "BloodSmall02", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 100, distancePx: 512 }, + bigblood1: { name: "bigblood1", id: 20, vel: 3, maxVel: 3, range: 128, levRange: 0, celFile: "BloodLarge01", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 75, distancePx: 384 }, + bigblood2: { name: "bigblood2", id: 21, vel: 4, maxVel: 4, range: 128, levRange: 0, celFile: "BloodLarge02", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 100, distancePx: 512 }, + shafire1: { name: "shafire1", id: 22, vel: 8, maxVel: 8, range: 40, levRange: 0, celFile: "ShamanFireball", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 200, distancePx: 320, trans: 1, pierce: true }, + shafire2: { name: "shafire2", id: 23, vel: 10, maxVel: 10, range: 40, levRange: 0, celFile: "ShamanFireball", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 250, distancePx: 400, trans: 1, pierce: true }, + shafire3: { name: "shafire3", id: 24, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "ShamanFireball", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 480, trans: 1, pierce: true }, + shafire4: { name: "shafire4", id: 25, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "ShamanFireball", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 400, distancePx: 640, trans: 1, pierce: true }, + shafire5: { name: "shafire5", id: 26, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "ShamanFireball", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 500, distancePx: 800, trans: 1, pierce: true }, + magicarrow: { name: "magicarrow", id: 27, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "SafeArrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "teethexplode", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + icearrow: { name: "icearrow", id: 28, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "IceArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "iceexplode", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + fireexplode: { name: "fireexplode", id: 29, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "FireArrowExplode2", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + iceexplode: { name: "iceexplode", id: 30, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "IceArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 11, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + bolt: { name: "bolt", id: 31, vel: 24, maxVel: 24, range: 50, levRange: 0, celFile: "XBowBolt", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 1200, pierce: true }, + andarielspray: { name: "andarielspray", id: 32, vel: 15, maxVel: 15, range: 40, levRange: 0, celFile: "AndarielSpell", animLen: 24, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 375, distancePx: 600, trans: 1, pierce: true }, + bigheadexp: { name: "bigheadexp", id: 33, vel: 0, maxVel: 0, range: 6, levRange: 0, celFile: "BigheadLightningExplosion", animLen: 7, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 8, red: 143, green: 143, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + shamanexp: { name: "shamanexp", id: 34, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "ShamanFireballExplodeFinal", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + throwaxe: { name: "throwaxe", id: 35, vel: 24, maxVel: 24, range: 20, levRange: 0, celFile: "MissileHandAxe", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 480, pierce: true }, + throwknife: { name: "throwknife", id: 36, vel: 24, maxVel: 24, range: 20, levRange: 0, celFile: "MissileDagger", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 480, pierce: true }, + glaive: { name: "glaive", id: 37, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Glaive", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + poisonjav: { name: "poisonjav", id: 38, vel: 24, maxVel: 24, range: 25, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 600, distancePx: 600, pierce: true }, + poisonjavcloud: { name: "poisonjavcloud", id: 39, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + coldarrow: { name: "coldarrow", id: 40, vel: 24, maxVel: 24, range: 20, levRange: 0, celFile: "IceArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "iceexplode", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 480, trans: 1, pierce: true }, + explodingarrow: { name: "explodingarrow", id: 41, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "FireArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "explodingarrowexp", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 600, distancePx: 960, trans: 1, alwaysExplode: true, pierce: true }, + explodingarrowexp: { name: "explodingarrowexp", id: 42, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 15, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + plaguejavelin: { name: "plaguejavelin", id: 43, vel: 24, maxVel: 24, range: 15, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 4, red: 128, green: 255, blue: 128, speedPxPerSec: 600, distancePx: 360, alwaysExplode: true, pierce: true }, + oilpotion: { name: "oilpotion", id: 44, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "mslops", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 128, blue: 128, speedPxPerSec: 400, distancePx: 480, alwaysExplode: true }, + explosivepotion: { name: "explosivepotion", id: 45, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "mslopm", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 128, blue: 128, speedPxPerSec: 400, distancePx: 480, alwaysExplode: true }, + fulminatingpotion: { name: "fulminatingpotion", id: 46, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "mslopl", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 128, blue: 128, speedPxPerSec: 400, distancePx: 480, alwaysExplode: true }, + rancidgasepotion: { name: "rancidgasepotion", id: 47, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "mslgps", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 400, distancePx: 480, alwaysExplode: true }, + chokinggaspoition: { name: "chokinggaspoition", id: 48, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "mslgpm", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 400, distancePx: 480, alwaysExplode: true }, + stranglinggaspotion: { name: "stranglinggaspotion", id: 49, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "mslgpl", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 400, distancePx: 480, alwaysExplode: true }, + notused50: { name: "notused50", id: 50, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + explosivepotionexp: { name: "explosivepotionexp", id: 51, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "PotionExplode", animLen: 29, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + explosivepotiondebris1: { name: "explosivepotiondebris1", id: 52, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "PotionExplodeDebris01", animLen: 29, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + explosivepotiondebris2: { name: "explosivepotiondebris2", id: 53, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "PotionExplodeDebris02", animLen: 29, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + explosivepotiondebris3: { name: "explosivepotiondebris3", id: 54, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "PotionExplodeDebris03", animLen: 29, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + holybolt: { name: "holybolt", id: 55, vel: 20, maxVel: 20, range: 50, levRange: 0, celFile: "HolyBoltMissile", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 7, red: 222, green: 222, blue: 255, speedPxPerSec: 500, distancePx: 1000, trans: 1 }, + chargedbolt: { name: "chargedbolt", id: 56, vel: 12, maxVel: 12, range: 98, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1176, trans: 1, subLoop: 1, subStop: 8 }, + sanctuarybolt: { name: "sanctuarybolt", id: 57, vel: 0, maxVel: 0, range: 14, levRange: 0, celFile: "Gleam", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 222, green: 222, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + firebolt: { name: "firebolt", id: 58, vel: 20, maxVel: 20, range: 50, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "fireexplode", light: 7, red: 255, green: 178, blue: 64, speedPxPerSec: 500, distancePx: 1000, trans: 1 }, + icebolt: { name: "icebolt", id: 59, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "Icebolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "iceexplode", light: 7, red: 81, green: 81, blue: 255, speedPxPerSec: 300, distancePx: 600, trans: 1 }, + infernoflame1: { name: "infernoflame1", id: 60, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "Flamethrower", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + infernoflame2: { name: "infernoflame2", id: 61, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "Flamethrower2", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + fireball: { name: "fireball", id: 62, vel: 20, maxVel: 20, range: 50, levRange: 0, celFile: "Fireball", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "explodingarrowexp", light: 7, red: 255, green: 178, blue: 64, speedPxPerSec: 500, distancePx: 1000, trans: 1 }, + mummy1: { name: "mummy1", id: 63, vel: 5, maxVel: 5, range: 24, levRange: 0, celFile: "GreaterMummyBreath", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 125, distancePx: 120, trans: 1 }, + mummy2: { name: "mummy2", id: 64, vel: 5, maxVel: 5, range: 24, levRange: 0, celFile: "GreaterMummyBreath", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 125, distancePx: 120, trans: 1 }, + mummy3: { name: "mummy3", id: 65, vel: 5, maxVel: 5, range: 24, levRange: 0, celFile: "GreaterMummyBreath", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 125, distancePx: 120, trans: 1 }, + mummy4: { name: "mummy4", id: 66, vel: 5, maxVel: 5, range: 24, levRange: 0, celFile: "GreaterMummyBreath", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 125, distancePx: 120, trans: 1 }, + blaze: { name: "blaze", id: 67, vel: 0, maxVel: 0, range: 90, levRange: 25, celFile: "groundFireBig", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + firewallmaker: { name: "firewallmaker", id: 68, vel: 12, maxVel: 12, range: 7, levRange: 2, celFile: "groundFireBig", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 84, trans: 1, subLoop: 1, subStop: 2 }, + firewall: { name: "firewall", id: 69, vel: 0, maxVel: 0, range: 90, levRange: 0, celFile: "groundFireBig", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + goospit1: { name: "goospit1", id: 70, vel: 10, maxVel: 10, range: 24, levRange: 0, celFile: "SandMaggotGooSpit", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "goosplat", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 240 }, + goospit2: { name: "goospit2", id: 71, vel: 10, maxVel: 10, range: 24, levRange: 0, celFile: "SandMaggotGooSpit", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "goosplat", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 240 }, + goospit3: { name: "goospit3", id: 72, vel: 10, maxVel: 10, range: 24, levRange: 0, celFile: "SandMaggotGooSpit", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "goosplat", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 240 }, + goospit4: { name: "goospit4", id: 73, vel: 10, maxVel: 10, range: 24, levRange: 0, celFile: "SandMaggotGooSpit", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "goosplat", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 240 }, + goospit5: { name: "goospit5", id: 74, vel: 10, maxVel: 10, range: 24, levRange: 0, celFile: "SandMaggotGooSpit", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "goosplat", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 240 }, + goosplat: { name: "goosplat", id: 75, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "GooHit", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "sand pile": { name: "sand pile", id: 76, vel: 0, maxVel: 0, range: 128, levRange: 0, celFile: "SandMaggotSandPile", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + unholybolt1: { name: "unholybolt1", id: 77, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "UnholyBolt", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 480, trans: 2 }, + unholybolt2: { name: "unholybolt2", id: 78, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "UnholyBolt", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 480, trans: 2 }, + unholybolt3: { name: "unholybolt3", id: 79, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "UnholyBolt", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 480, trans: 2 }, + unholybolt4: { name: "unholybolt4", id: 80, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "UnholyBolt", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 480, trans: 2 }, + sanctuarycenter: { name: "sanctuarycenter", id: 81, vel: 0, maxVel: 0, range: 125, levRange: 0, celFile: "sanctuary", animLen: 40, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, subLoop: 1, subStop: 30 }, + fireexplosion: { name: "fireexplosion", id: 82, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "FireArrowExplode2", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + stuckarrow: { name: "stuckarrow", id: 83, vel: 1, maxVel: 1, range: 128, levRange: 0, celFile: "ArrowInGround", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 25, distancePx: 128 }, + footprint: { name: "footprint", id: 84, vel: 0, maxVel: 0, range: 128, levRange: 0, celFile: "Footsteps01", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + immolationarrow: { name: "immolationarrow", id: 85, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "FireArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 9, red: 255, green: 178, blue: 64, speedPxPerSec: 600, distancePx: 960, trans: 1, alwaysExplode: true, pierce: true }, + guidedarrow: { name: "guidedarrow", id: 86, vel: 24, maxVel: 24, range: 128, levRange: 0, celFile: "SafeArrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 3072, trans: 1, alwaysExplode: true }, + freezingarrow: { name: "freezingarrow", id: 87, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "IceArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1, alwaysExplode: true, pierce: true }, + freezingarrowexp1: { name: "freezingarrowexp1", id: 88, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "FreezeExplodeCenter", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 11, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + freezingarrowexp2: { name: "freezingarrowexp2", id: 89, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "FreezeExplodeEjecta", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + nova: { name: "nova", id: 90, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "ElectricNova", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + iceblast: { name: "iceblast", id: 91, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "IceBlast", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "freezingarrowexp1", light: 7, red: 81, green: 81, blue: 255, speedPxPerSec: 300, distancePx: 600, trans: 1 }, + blessedhammer: { name: "blessedhammer", id: 92, vel: 18, maxVel: 30, range: 120, levRange: 0, celFile: "blessedhammer", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 5, red: 222, green: 222, blue: 255, speedPxPerSec: 450, distancePx: 2160, trans: 1, pierce: true }, + chainlightning: { name: "chainlightning", id: 93, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, nextHit: 1, nextDelay: 4, trans: 1 }, + fistofares: { name: "fistofares", id: 94, vel: 12, maxVel: 12, range: 128, levRange: 0, celFile: "FOAorbiter", animLen: 9, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1536, trans: 1 }, + chillblood: { name: "chillblood", id: 95, vel: 8, maxVel: 8, range: 128, levRange: 0, celFile: "ChillBlood", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 4, red: 81, green: 81, blue: 255, speedPxPerSec: 200, distancePx: 1024, trans: 1 }, + glacialspike: { name: "glacialspike", id: 96, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "GlacialSpike", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 400, distancePx: 640, trans: 1 }, + teleport: { name: "teleport", id: 97, vel: 0, maxVel: 0, range: 18, levRange: 0, celFile: "Teleport", animLen: 18, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 6, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + lightningbolt: { name: "lightningbolt", id: 98, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1 }, + lightninghit: { name: "lightninghit", id: 99, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 7 }, + meteor: { name: "meteor", id: 100, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "Meteor", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + meteorcenter: { name: "meteorcenter", id: 101, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "MeteorTargetIndicator", animLen: 17, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 64, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + meteortail: { name: "meteortail", id: 102, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "MeteorTail", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + meteorexplode: { name: "meteorexplode", id: 103, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + firesmall: { name: "firesmall", id: 104, vel: 0, maxVel: 0, range: 90, levRange: 25, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + firemedium: { name: "firemedium", id: 105, vel: 0, maxVel: 0, range: 90, levRange: 25, celFile: "groundFireMedium", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + monblizcenter: { name: "monblizcenter", id: 106, vel: 0, maxVel: 0, range: 25, levRange: 15, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 9, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + monbliz1: { name: "monbliz1", id: 107, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "icestormfallvar01", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + monbliz2: { name: "monbliz2", id: 108, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "icestormfallvar02", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + monbliz3: { name: "monbliz3", id: 109, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "icestormfallvar03", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + monbliz4: { name: "monbliz4", id: 110, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "icestormfallvar04", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + monblizexplode1: { name: "monblizexplode1", id: 111, vel: 0, maxVel: 0, range: 6, levRange: 0, celFile: "icestormimpactvar01", animLen: 6, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + monblizexplode2: { name: "monblizexplode2", id: 112, vel: 0, maxVel: 0, range: 6, levRange: 0, celFile: "icestormimpactvar02", animLen: 6, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + monblizexplode3: { name: "monblizexplode3", id: 113, vel: 0, maxVel: 0, range: 6, levRange: 0, celFile: "icestormimpactvar02", animLen: 6, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + teeth: { name: "teeth", id: 114, vel: 16, maxVel: 16, range: 50, levRange: 0, celFile: "teethMissile", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "teethexplode", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 400, distancePx: 800, nextHit: 1, nextDelay: 4, trans: 1, subLoop: 1, subStop: 15 }, + corpseexplosion: { name: "corpseexplosion", id: 115, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "CorpseExplodeGuts", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0 }, + poisoncorpseexplosion: { name: "poisoncorpseexplosion", id: 116, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "CorpseExplodeGutsPoison", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0 }, + monstercorpseexplode: { name: "monstercorpseexplode", id: 117, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "CorpseExplodeGuts", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0 }, + poisonnova: { name: "poisonnova", id: 118, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 360, nextHit: 1, nextDelay: 4, trans: 1 }, + frostnova: { name: "frostnova", id: 119, vel: 24, maxVel: 24, range: 14, levRange: 0, celFile: "FrostNova", animLen: 14, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 336, nextHit: 1, nextDelay: 4, trans: 1 }, + rogue1: { name: "rogue1", id: 120, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, alwaysExplode: true, pierce: true }, + rogue2: { name: "rogue2", id: 121, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "FireArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "fireexplode", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 600, distancePx: 960, trans: 1, alwaysExplode: true, pierce: true }, + rogue3: { name: "rogue3", id: 122, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "IceArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "iceexplode", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1, alwaysExplode: true, pierce: true }, + "bat lightning bolt": { name: "bat lightning bolt", id: 123, vel: 16, maxVel: 16, range: 16, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 400, distancePx: 256, trans: 1 }, + "bat lightning trail": { name: "bat lightning trail", id: 124, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 8 }, + skmage1: { name: "skmage1", id: 125, vel: 9, maxVel: 9, range: 40, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 225, distancePx: 360, trans: 1 }, + skmage2: { name: "skmage2", id: 126, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "Icebolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "iceexplode", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 480, trans: 1 }, + skmage3: { name: "skmage3", id: 127, vel: 14, maxVel: 14, range: 40, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "fireexplode", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 560, trans: 1 }, + skmage4: { name: "skmage4", id: 128, vel: 14, maxVel: 14, range: 40, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 560, trans: 1 }, + vampirefireball: { name: "vampirefireball", id: 129, vel: 14, maxVel: 14, range: 30, levRange: 0, celFile: "Fireball", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "explodingarrowexp", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 350, distancePx: 420, trans: 1, alwaysExplode: true }, + vampirefirewallmaker: { name: "vampirefirewallmaker", id: 130, vel: 12, maxVel: 12, range: 10, levRange: 0, celFile: "groundFireBig", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 120, trans: 1, subLoop: 1, subStop: 2 }, + vampirefirewall: { name: "vampirefirewall", id: 131, vel: 0, maxVel: 0, range: 90, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + vampiremeteor: { name: "vampiremeteor", id: 132, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "Meteor", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + vampiremeteorcenter: { name: "vampiremeteorcenter", id: 133, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "MeteorTargetIndicator", animLen: 17, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 64, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + vampiremeteorexp: { name: "vampiremeteorexp", id: 134, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + raven1: { name: "raven1", id: 135, vel: 16, maxVel: 16, range: 50, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 400, distancePx: 800 }, + raven2: { name: "raven2", id: 136, vel: 16, maxVel: 16, range: 50, levRange: 0, celFile: "FireArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "fireexplode", light: 9, red: 255, green: 178, blue: 64, speedPxPerSec: 400, distancePx: 800, trans: 1 }, + amphibiangoo1: { name: "amphibiangoo1", id: 137, vel: 12, maxVel: 12, range: 15, levRange: 0, celFile: "FrogPoisonMissile", animLen: 7, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 2, red: 64, green: 255, blue: 64, speedPxPerSec: 300, distancePx: 180, trans: 1 }, + amphibiangoo2: { name: "amphibiangoo2", id: 138, vel: 12, maxVel: 12, range: 18, levRange: 0, celFile: "FrogPoisonMissile", animLen: 7, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 2, red: 64, green: 255, blue: 64, speedPxPerSec: 300, distancePx: 216, trans: 1 }, + tentaclegoo: { name: "tentaclegoo", id: 139, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "FrogPoisonMissile", animLen: 7, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "amphibianexplode", light: 2, red: 64, green: 255, blue: 64, speedPxPerSec: 300, distancePx: 480, trans: 1, alwaysExplode: true }, + amphibianexplode: { name: "amphibianexplode", id: 140, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "GooHit", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + poisonpuff: { name: "poisonpuff", id: 141, vel: 1, maxVel: 15, range: 25, levRange: 0, celFile: "PoisonSmokePuff", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 25, distancePx: 25, trans: 1 }, + curseeffectred: { name: "curseeffectred", id: 142, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 1, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + spidergoolay: { name: "spidergoolay", id: 143, vel: 1, maxVel: 1, range: 16, levRange: 0, celFile: "Spider_Goo_Missile", animLen: 17, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "spidergoo", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 25, distancePx: 16, trans: 1, alwaysExplode: true }, + fetishinferno1: { name: "fetishinferno1", id: 144, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "Flamethrower", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + fetishinferno2: { name: "fetishinferno2", id: 145, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "Flamethrower2", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + spidergoo: { name: "spidergoo", id: 146, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "Spider_Goo_Disappear", animLen: 9, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 1 }, + cursecast: { name: "cursecast", id: 147, vel: 3, maxVel: 5, range: 20, levRange: 0, celFile: "CurseCast", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 1, red: 255, green: 0, blue: 0, speedPxPerSec: 75, distancePx: 60, trans: 1 }, + howl: { name: "howl", id: 148, vel: 12, maxVel: 12, range: 12, levRange: 0, celFile: "BAYellShockWave01", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 192, green: 192, blue: 192, speedPxPerSec: 300, distancePx: 144, trans: 1 }, + shout: { name: "shout", id: 149, vel: 30, maxVel: 30, range: 15, levRange: 0, celFile: "BAYellShockWave01", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 192, green: 192, blue: 192, speedPxPerSec: 750, distancePx: 450, trans: 1 }, + dust: { name: "dust", id: 150, vel: 4, maxVel: 4, range: 100, levRange: 0, celFile: "FireSmoke", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 100, distancePx: 400, trans: 1 }, + redlightmissile: { name: "redlightmissile", id: 151, vel: 0, maxVel: 0, range: 10, levRange: 10, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0 }, + greenlightmissile: { name: "greenlightmissile", id: 152, vel: 0, maxVel: 0, range: 10, levRange: 10, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 128, green: 255, blue: 128, speedPxPerSec: 0, distancePx: 0 }, + bluelightmissile: { name: "bluelightmissile", id: 153, vel: 0, maxVel: 0, range: 10, levRange: 10, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + whitelightmissile: { name: "whitelightmissile", id: 154, vel: 0, maxVel: 0, range: 10, levRange: 10, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + corpsepoisoncloud: { name: "corpsepoisoncloud", id: 155, vel: 0, maxVel: 0, range: 80, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 2, red: 128, green: 255, blue: 128, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + chillbloodcloud: { name: "chillbloodcloud", id: 156, vel: 4, maxVel: 4, range: 80, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 3, red: 81, green: 81, blue: 255, speedPxPerSec: 100, distancePx: 320, trans: 1 }, + chillbloodpuff: { name: "chillbloodpuff", id: 157, vel: 1, maxVel: 15, range: 25, levRange: 0, celFile: "ChillBloodPuff", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 3, red: 81, green: 81, blue: 255, speedPxPerSec: 25, distancePx: 25, trans: 1 }, + blizzardcenter: { name: "blizzardcenter", id: 158, vel: 0, maxVel: 0, range: 100, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 9, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + blizzard1: { name: "blizzard1", id: 159, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "icestormfallvar01", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + blizzard2: { name: "blizzard2", id: 160, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "icestormfallvar02", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + blizzard3: { name: "blizzard3", id: 161, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "Blizzard", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + blizzard4: { name: "blizzard4", id: 162, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "Blizzard", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + 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: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + 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: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + blizzardexplode3: { name: "blizzardexplode3", id: 165, vel: 0, maxVel: 0, range: 6, levRange: 0, celFile: "icestormimpactvar02", animLen: 6, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + thunderstorm1: { name: "thunderstorm1", id: 166, vel: 2, maxVel: 2, range: 9, levRange: 0, celFile: "LightningboltBig", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 255, blue: 255, speedPxPerSec: 50, distancePx: 18, trans: 1, alwaysExplode: true }, + thunderstorm2: { name: "thunderstorm2", id: 167, vel: 2, maxVel: 2, range: 9, levRange: 0, celFile: "LightningboltBig", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 255, blue: 255, speedPxPerSec: 50, distancePx: 18, trans: 1, alwaysExplode: true }, + thunderstorm3: { name: "thunderstorm3", id: 168, vel: 2, maxVel: 2, range: 9, levRange: 0, celFile: "LightningboltBig", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 255, blue: 255, speedPxPerSec: 50, distancePx: 18, trans: 1, alwaysExplode: true }, + thunderstorm4: { name: "thunderstorm4", id: 169, vel: 2, maxVel: 2, range: 9, levRange: 0, celFile: "LightningboltBig", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 255, blue: 255, speedPxPerSec: 50, distancePx: 18, trans: 1, alwaysExplode: true }, + monsterlight: { name: "monsterlight", id: 170, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1 }, + poisonball: { name: "poisonball", id: 171, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + diablight: { name: "diablight", id: 172, vel: 20, maxVel: 20, range: 30, levRange: 0, celFile: "DiabloLightning", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 600, nextDelay: 3, trans: 1, pierce: true }, + redemption: { name: "redemption", id: 173, vel: 0, maxVel: 0, range: 18, levRange: 0, celFile: "RedemptionGhost", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 6, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + redemptionfail: { name: "redemptionfail", id: 174, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "CorpseExplodeGuts", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0 }, + handofgod: { name: "handofgod", id: 175, vel: 2, maxVel: 2, range: 9, levRange: 0, celFile: "LightningBolt", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 255, blue: 255, speedPxPerSec: 50, distancePx: 18, trans: 1, alwaysExplode: true }, + diabfire: { name: "diabfire", id: 176, vel: 30, maxVel: 30, range: 50, levRange: 0, celFile: "groundFireBig", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 1500, nextHit: 1, nextDelay: 4, trans: 1, subLoop: 1, subStop: 36 }, + fingermagespider: { name: "fingermagespider", id: 177, vel: 6, maxVel: 6, range: 80, levRange: 0, celFile: "FingerMageSpider", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 178, blue: 178, speedPxPerSec: 150, distancePx: 480, trans: 1 }, + "electric throwaxe": { name: "electric throwaxe", id: 178, vel: 24, maxVel: 24, range: 20, levRange: 0, celFile: "MissileHandAxe", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 480, pierce: true }, + diabwallmaker: { name: "diabwallmaker", id: 179, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "groundFireMedium", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 178, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1, subLoop: 1, subStop: 2 }, + diabwall: { name: "diabwall", id: 180, vel: 0, maxVel: 0, range: 36, levRange: 0, celFile: "groundFireMedium", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + curseamplifydamage: { name: "curseamplifydamage", id: 181, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + cursedimvision: { name: "cursedimvision", id: 182, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + curseweaken: { name: "curseweaken", id: 183, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + curseironmaiden: { name: "curseironmaiden", id: 184, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + curseterror: { name: "curseterror", id: 185, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + curseattract: { name: "curseattract", id: 186, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + cursereversevampire: { name: "cursereversevampire", id: 187, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + curseconfuse: { name: "curseconfuse", id: 188, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + cursedecrepify: { name: "cursedecrepify", id: 189, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + curselowerresist: { name: "curselowerresist", id: 190, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "CurseArea", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + cursecenter: { name: "cursecenter", id: 191, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + bonespear: { name: "bonespear", id: 192, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "BoneSpear", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "bonespearexplode", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1 }, + bonespirit: { name: "bonespirit", id: 193, vel: 12, maxVel: 12, range: 128, levRange: 0, celFile: "BoneSpirit", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "bonespiritexplode", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1536, trans: 1, alwaysExplode: true }, + coldunique: { name: "coldunique", id: 194, vel: 24, maxVel: 24, range: 14, levRange: 0, celFile: "FrostNova", animLen: 14, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 336, nextHit: 1, nextDelay: 3, trans: 1 }, + lightunique: { name: "lightunique", id: 195, vel: 12, maxVel: 12, range: 98, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1176, trans: 1, subLoop: 1, subStop: 8 }, + skbowarrow1: { name: "skbowarrow1", id: 196, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + skbowarrow2: { name: "skbowarrow2", id: 197, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + skbowarrow3: { name: "skbowarrow3", id: 198, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + skbowarrow4: { name: "skbowarrow4", id: 199, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "FireArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + skbowarrow5: { name: "skbowarrow5", id: 200, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "SafeArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + nova1: { name: "nova1", id: 201, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + nova2: { name: "nova2", id: 202, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + andypoisonbolt: { name: "andypoisonbolt", id: 203, vel: 20, maxVel: 20, range: 50, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 1000, trans: 1 }, + teethexplode: { name: "teethexplode", id: 204, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "teethexplode", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + lightningjavelin: { name: "lightningjavelin", id: 205, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningJavelin", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 6, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1, pierce: true }, + lightningfury: { name: "lightningfury", id: 206, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningJavelin", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 6, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1, pierce: true }, + bonewallmaker: { name: "bonewallmaker", id: 207, vel: 12, maxVel: 12, range: 7, levRange: 2, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 84, trans: 1 }, + necromage1: { name: "necromage1", id: 208, vel: 14, maxVel: 14, range: 30, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 420, trans: 1 }, + necromage2: { name: "necromage2", id: 209, vel: 14, maxVel: 14, range: 30, levRange: 0, celFile: "Icebolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 420, trans: 1 }, + necromage3: { name: "necromage3", id: 210, vel: 14, maxVel: 14, range: 30, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 420, trans: 1 }, + necromage4: { name: "necromage4", id: 211, vel: 14, maxVel: 14, range: 30, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 420, trans: 1 }, + sparkle: { name: "sparkle", id: 212, vel: 4, maxVel: 4, range: 30, levRange: 0, celFile: "Gleam", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 100, distancePx: 120, trans: 1 }, + multipleshotarrow: { name: "multipleshotarrow", id: 213, vel: 24, maxVel: 24, range: 50, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 1200, nextHit: 1, nextDelay: 4, pierce: true }, + multipleshotbolt: { name: "multipleshotbolt", id: 214, vel: 24, maxVel: 24, range: 50, levRange: 0, celFile: "XBowBolt", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 1200, nextHit: 1, nextDelay: 4, pierce: true }, + chargedstrikebolt: { name: "chargedstrikebolt", id: 215, vel: 12, maxVel: 12, range: 98, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1176, trans: 1, subLoop: 1, subStop: 8 }, + bonespearexplode: { name: "bonespearexplode", id: 216, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "teethexplode", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + poisonexplosioncloud: { name: "poisonexplosioncloud", id: 217, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + bonecast: { name: "bonecast", id: 218, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "BoneCast", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + battlecry: { name: "battlecry", id: 219, vel: 12, maxVel: 12, range: 12, levRange: 0, celFile: "BAYellShockWave01", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 192, green: 192, blue: 192, speedPxPerSec: 300, distancePx: 144, nextHit: 1, nextDelay: 4, trans: 1 }, + primepoisoncloud: { name: "primepoisoncloud", id: 220, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + plaguejavcloud: { name: "plaguejavcloud", id: 221, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + rancidgascloud: { name: "rancidgascloud", id: 222, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + chokinggascloud: { name: "chokinggascloud", id: 223, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + stranglinggascloud: { name: "stranglinggascloud", id: 224, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + buglightning: { name: "buglightning", id: 225, vel: 12, maxVel: 12, range: 98, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1176, trans: 1, subLoop: 1, subStop: 8 }, + pantherjav1: { name: "pantherjav1", id: 226, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 1600, pierce: true }, + pantherjav2: { name: "pantherjav2", id: 227, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 1600, pierce: true }, + pantherjav3: { name: "pantherjav3", id: 228, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 1600, pierce: true }, + pantherjav4: { name: "pantherjav4", id: 229, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 1600, pierce: true }, + immolationfire: { name: "immolationfire", id: 230, vel: 0, maxVel: 0, range: 100, levRange: 0, celFile: "groundFireBig", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + furylightning: { name: "furylightning", id: 231, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1, subLoop: 1, subStop: 7 }, + lightningstrike: { name: "lightningstrike", id: 232, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, nextHit: 1, nextDelay: 4, trans: 1 }, + fistoftheheavensdelay: { name: "fistoftheheavensdelay", id: 233, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + fistoftheheavensbolt: { name: "fistoftheheavensbolt", id: 234, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "HolyBoltMissile", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "teethexplode", light: 8, red: 222, green: 222, blue: 255, speedPxPerSec: 300, distancePx: 600, nextDelay: 4, trans: 1 }, + warcry: { name: "warcry", id: 235, vel: 12, maxVel: 12, range: 16, levRange: 0, celFile: "WarcryShockwave", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 192, green: 192, blue: 192, speedPxPerSec: 300, distancePx: 192, nextHit: 1, nextDelay: 6, trans: 1 }, + battlecommand: { name: "battlecommand", id: 236, vel: 30, maxVel: 30, range: 15, levRange: 0, celFile: "BAYellShockWave01", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 192, green: 192, blue: 192, speedPxPerSec: 750, distancePx: 450, nextHit: 1, nextDelay: 4, trans: 1 }, + battleorders: { name: "battleorders", id: 237, vel: 30, maxVel: 30, range: 15, levRange: 0, celFile: "BAYellShockWave01", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 192, green: 192, blue: 192, speedPxPerSec: 750, distancePx: 450, nextHit: 1, nextDelay: 4, trans: 1 }, + pantherpotorange: { name: "pantherpotorange", id: 238, vel: 16, maxVel: 16, range: 128, levRange: 0, celFile: "mslops", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 128, blue: 128, speedPxPerSec: 400, distancePx: 2048, alwaysExplode: true }, + pantherpotgreen: { name: "pantherpotgreen", id: 239, vel: 16, maxVel: 16, range: 128, levRange: 0, celFile: "mslgps", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 400, distancePx: 2048, alwaysExplode: true }, + meteorfire: { name: "meteorfire", id: 240, vel: 0, maxVel: 0, range: 90, levRange: 0, celFile: "groundFireMedium", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + "trap spike right": { name: "trap spike right", id: 241, vel: 9, maxVel: 9, range: 50, levRange: 0, celFile: "SpikeRight", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 225, distancePx: 450 }, + "trap spike left": { name: "trap spike left", id: 242, vel: 9, maxVel: 9, range: 50, levRange: 0, celFile: "SpikeLeft", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 225, distancePx: 450 }, + "trap cursed skull right": { name: "trap cursed skull right", id: 243, vel: 6, maxVel: 6, range: 50, levRange: 0, celFile: "SkullRight", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 150, distancePx: 300 }, + "trap cursed skull left": { name: "trap cursed skull left", id: 244, vel: 6, maxVel: 6, range: 50, levRange: 0, celFile: "SkullLeft", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 150, distancePx: 300 }, + "trap poison ball right": { name: "trap poison ball right", id: 245, vel: 6, maxVel: 6, range: 50, levRange: 0, celFile: "PoisonRight", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 150, distancePx: 300 }, + "trap poison ball left": { name: "trap poison ball left", id: 246, vel: 6, maxVel: 6, range: 50, levRange: 0, celFile: "PoisonLeft", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 150, distancePx: 300 }, + hydra: { name: "hydra", id: 247, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "fireexplode", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 400, distancePx: 480, trans: 1 }, + bonespeartrail: { name: "bonespeartrail", id: 248, vel: 0, maxVel: 0, range: 8, levRange: 0, celFile: "BoneSpearTrail", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + grimwardsmallstart: { name: "grimwardsmallstart", id: 249, vel: 0, maxVel: 0, range: 5, levRange: 0, celFile: "GrimWardSmallStart", animLen: 5, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardsmall: { name: "grimwardsmall", id: 250, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "GrimWardSmall", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardsmallstop: { name: "grimwardsmallstop", id: 251, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "GrimWardSmallStop", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardmediumstart: { name: "grimwardmediumstart", id: 252, vel: 0, maxVel: 0, range: 8, levRange: 0, celFile: "GrimWardMediumStart", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardmedium: { name: "grimwardmedium", id: 253, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "GrimWardMedium", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardmediumstop: { name: "grimwardmediumstop", id: 254, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "GrimWardMediumStop", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardlargestart: { name: "grimwardlargestart", id: 255, vel: 0, maxVel: 0, range: 8, levRange: 0, celFile: "GrimWardLargeStart", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardlarge: { name: "grimwardlarge", id: 256, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "GrimWardLarge", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + grimwardlargestop: { name: "grimwardlargestop", id: 257, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "GrimWardLargeStop", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + zakarumlight: { name: "zakarumlight", id: 258, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 7 }, + grimwardscare: { name: "grimwardscare", id: 259, vel: 2, maxVel: 2, range: 24, levRange: 12, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 50, distancePx: 48, nextHit: 1, nextDelay: 6, trans: 1 }, + frozenorb: { name: "frozenorb", id: 260, vel: 10, maxVel: 10, range: 30, levRange: 0, celFile: "IceOrb", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 6, red: 81, green: 81, blue: 255, speedPxPerSec: 250, distancePx: 300, trans: 1, alwaysExplode: true }, + frozenorbbolt: { name: "frozenorbbolt", id: 261, vel: 18, maxVel: 18, range: 25, levRange: 0, celFile: "IceBolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 4, red: 81, green: 81, blue: 255, speedPxPerSec: 450, distancePx: 450, trans: 1 }, + frozenorbnova: { name: "frozenorbnova", id: 262, vel: 24, maxVel: 24, range: 25, levRange: 0, celFile: "IceBolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 4, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 600, trans: 1 }, + frozenorbexplode: { name: "frozenorbexplode", id: 263, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "IceOrbExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 6, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + chillingarmorbolt: { name: "chillingarmorbolt", id: 264, vel: 18, maxVel: 18, range: 25, levRange: 0, celFile: "IceBolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 4, red: 81, green: 81, blue: 255, speedPxPerSec: 450, distancePx: 450, trans: 1 }, + fireexplosion2: { name: "fireexplosion2", id: 265, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "FireArrowExplode2", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + blowgun: { name: "blowgun", id: 266, vel: 20, maxVel: 20, range: 90, levRange: 0, celFile: "Blowdart", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 1800, pierce: true }, + chainlightning2: { name: "chainlightning2", id: 267, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, nextHit: 1, nextDelay: 4, trans: 1 }, + revivesmall: { name: "revivesmall", id: 268, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Revive", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + revivemedium: { name: "revivemedium", id: 269, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Revive", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + revivelarge: { name: "revivelarge", id: 270, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Revive", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + monglacialspike: { name: "monglacialspike", id: 271, vel: 18, maxVel: 18, range: 40, levRange: 0, celFile: "GlacialSpike", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 450, distancePx: 720, trans: 1 }, + icebreaksmall: { name: "icebreaksmall", id: 272, vel: 0, maxVel: 0, range: 30, levRange: 0, celFile: "IceBreakSmall", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + icebreakmedium: { name: "icebreakmedium", id: 273, vel: 0, maxVel: 0, range: 30, levRange: 0, celFile: "IceBreakLarge", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + icebreaklarge: { name: "icebreaklarge", id: 274, vel: 0, maxVel: 0, range: 30, levRange: 0, celFile: "IceBreakLarge", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + icebreaksmoke: { name: "icebreaksmoke", id: 275, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "IceBreakSmoke", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + mephisto: { name: "mephisto", id: 276, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "MephistoMissile", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "mephistoexplosion", light: 9, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1 }, + firehead: { name: "firehead", id: 277, vel: 14, maxVel: 14, range: 40, levRange: 0, celFile: "VampireMissile", animLen: 19, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 350, distancePx: 560, trans: 1, alwaysExplode: true }, + whilrwind: { name: "whilrwind", id: 278, vel: 12, maxVel: 12, range: 3, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 36 }, + arcanelightningbolt: { name: "arcanelightningbolt", id: 279, vel: 32, maxVel: 32, range: 40, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 8, red: 178, green: 178, blue: 255, speedPxPerSec: 800, distancePx: 1280, trans: 1 }, + frogfire: { name: "frogfire", id: 280, vel: 15, maxVel: 15, range: 40, levRange: 0, celFile: "Fireball", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 4, red: 255, green: 64, blue: 64, speedPxPerSec: 375, distancePx: 600, trans: 1 }, + frogcold: { name: "frogcold", id: 281, vel: 12, maxVel: 12, range: 35, levRange: 0, celFile: "Icebolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "iceexplode", light: 4, red: 64, green: 64, blue: 255, speedPxPerSec: 300, distancePx: 420, trans: 1 }, + frogpois: { name: "frogpois", id: 282, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "FrogPoisonMissile", animLen: 7, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 4, red: 64, green: 255, blue: 64, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + desertfireball: { name: "desertfireball", id: 283, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "Fireball", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "explodingarrowexp", light: 6, red: 255, green: 64, blue: 64, speedPxPerSec: 400, distancePx: 640, trans: 1 }, + brdeathcontrol: { name: "brdeathcontrol", id: 284, vel: 0, maxVel: 0, range: 375, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 6, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + brdeathlightningbolt: { name: "brdeathlightningbolt", id: 285, vel: 32, maxVel: 32, range: 20, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 800, distancePx: 640, trans: 1 }, + brdeathlightninghit: { name: "brdeathlightninghit", id: 286, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 7 }, + denofevillight: { name: "denofevillight", id: 287, vel: 0, maxVel: 0, range: 300, levRange: 0, celFile: "LightBeams", animLen: 21, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 10, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + cairnstones: { name: "cairnstones", id: 288, vel: 0, maxVel: 0, range: 300, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + cairnstonessky: { name: "cairnstonessky", id: 289, vel: 0, maxVel: 0, range: 5, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + cairnstonesground: { name: "cairnstonesground", id: 290, vel: 20, maxVel: 20, range: 30, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 600, trans: 1, alwaysExplode: true }, + towermist: { name: "towermist", id: 291, vel: 2, maxVel: 2, range: 400, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 50, distancePx: 800, trans: 1, alwaysExplode: true }, + towermisttrail: { name: "towermisttrail", id: 292, vel: 3, maxVel: 3, range: 50, levRange: 0, celFile: "mist", animLen: 14, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "towermistfade", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 75, distancePx: 150, trans: 1 }, + brdeathsmokes1: { name: "brdeathsmokes1", id: 293, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "BRSmokeS1", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "brdeathsmokenu", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + brdeathsmokenu: { name: "brdeathsmokenu", id: 294, vel: 0, maxVel: 0, range: 340, levRange: 0, celFile: "BRSmokeNU", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "brdeathsmokedt", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + brdeathsmokedt: { name: "brdeathsmokedt", id: 295, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "BRSmokeDT", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + brdeathspirits1: { name: "brdeathspirits1", id: 296, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "BRSpiritS1", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "brdeathspiritnu", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + brdeathspiritnu: { name: "brdeathspiritnu", id: 297, vel: 0, maxVel: 0, range: 340, levRange: 0, celFile: "BRSpiritNU", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "brdeathspiritdt", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + brdeathspiritdt: { name: "brdeathspiritdt", id: 298, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "BRSpiritDT", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + mephistodeathcontrol: { name: "mephistodeathcontrol", id: 299, vel: 0, maxVel: 0, range: 275, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 6, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + mephistofirewallmaker: { name: "mephistofirewallmaker", id: 300, vel: 8, maxVel: 8, range: 50, levRange: 0, celFile: "groundFireSmall", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 200, distancePx: 400, trans: 1, subLoop: 1, subStop: 2 }, + mephistofirewall: { name: "mephistofirewall", id: 301, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + mephistoflyingrocksbig: { name: "mephistoflyingrocksbig", id: 302, vel: 12, maxVel: 12, range: 10, levRange: 3, celFile: "ExplosionSpark", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "mephistoexplosionbig", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 120, alwaysExplode: true }, + mephistoexplosionbig: { name: "mephistoexplosionbig", id: 303, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "FireArrowExplode2", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + mephistoflyingrockssmall: { name: "mephistoflyingrockssmall", id: 304, vel: 12, maxVel: 12, range: 5, levRange: 3, celFile: "ExplosionSparkSmall", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "mephistoexplosionsmall", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 60, alwaysExplode: true }, + mephistoexplosionsmall: { name: "mephistoexplosionsmall", id: 305, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "FireArrowExplode2", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + mephistodonotdraw: { name: "mephistodonotdraw", id: 306, vel: 0, maxVel: 0, range: 70, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andycontrol0: { name: "andycontrol0", id: 307, vel: 0, maxVel: 0, range: 350, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andyfirewallmaker: { name: "andyfirewallmaker", id: 308, vel: 8, maxVel: 8, range: 50, levRange: 0, celFile: "groundFireSmall", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 200, distancePx: 400, trans: 1, subLoop: 1, subStop: 2 }, + andyfirewall: { name: "andyfirewall", id: 309, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + andycolumnfirebase: { name: "andycolumnfirebase", id: 310, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "groundFireMedium", animLen: 37, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + andycolumnfire: { name: "andycolumnfire", id: 311, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "AndarielFlameDeath", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 192, green: 128, blue: 128, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + andyfallingdebris1: { name: "andyfallingdebris1", id: 312, vel: 0, maxVel: 0, range: 8, levRange: 0, celFile: "CeilingChunkFall01", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andyfallingdebris2: { name: "andyfallingdebris2", id: 313, vel: 0, maxVel: 0, range: 8, levRange: 0, celFile: "CeilingChunkFall02", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andyfallingdebris3: { name: "andyfallingdebris3", id: 314, vel: 0, maxVel: 0, range: 8, levRange: 0, celFile: "CeilingChunkFall03", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andydebrisexplosion1: { name: "andydebrisexplosion1", id: 315, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "CeilingChunkVanish01", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andydebrisexplosion2: { name: "andydebrisexplosion2", id: 316, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "CeilingChunkVanish02", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andydebrisexplosion3: { name: "andydebrisexplosion3", id: 317, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "CeilingChunkRemain01", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andydebrisexplosion4: { name: "andydebrisexplosion4", id: 318, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "CeilingChunkRemain02", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + andydebrisexplosion5: { name: "andydebrisexplosion5", id: 319, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "CeilingChunkRemain03", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + willowisplightningbolt: { name: "willowisplightningbolt", id: 320, vel: 32, maxVel: 32, range: 40, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 8, red: 178, green: 178, blue: 255, speedPxPerSec: 800, distancePx: 1280, trans: 1 }, + queenpoisoncloud: { name: "queenpoisoncloud", id: 321, vel: 8, maxVel: 64, range: 92, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 4, red: 64, green: 255, blue: 64, speedPxPerSec: 200, distancePx: 736, trans: 1 }, + "dirt pile": { name: "dirt pile", id: 322, vel: 0, maxVel: 0, range: 128, levRange: 0, celFile: "SandMaggotDirtPile", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + undeadmissile1: { name: "undeadmissile1", id: 323, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "SkullPoison", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 9, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800, trans: 1 }, + undeadmissile2: { name: "undeadmissile2", id: 324, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "SkullFire", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 9, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800, trans: 1 }, + undeadmissile3: { name: "undeadmissile3", id: 325, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "SkullIce", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 9, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800, trans: 1 }, + undeadmissile4: { name: "undeadmissile4", id: 326, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "SkullUnholy", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 9, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800, trans: 1 }, + bonespiritexplode: { name: "bonespiritexplode", id: 327, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "BoneSpiritExplode", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + dopplezonexplode: { name: "dopplezonexplode", id: 328, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "DopplezonExplode", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + monbonespirit: { name: "monbonespirit", id: 329, vel: 12, maxVel: 12, range: 128, levRange: 0, celFile: "BoneSpirit", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "bonespiritexplode", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1536, trans: 1, alwaysExplode: true }, + towermistfade: { name: "towermistfade", id: 330, vel: 0, maxVel: 0, range: 128, levRange: 1, celFile: "Mist_fade", animLen: 14, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + countessfirewall: { name: "countessfirewall", id: 331, vel: 0, maxVel: 0, range: 1000, levRange: 1, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + towerchestspawner: { name: "towerchestspawner", id: 332, vel: 0, maxVel: 0, range: 400, levRange: 1, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 15, red: 192, green: 192, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + hellmeteorlaunch1: { name: "hellmeteorlaunch1", id: 333, vel: 0, maxVel: 0, range: 22, levRange: 0, celFile: "meteorlavaburst", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + hellmeteorlaunch2: { name: "hellmeteorlaunch2", id: 334, vel: 0, maxVel: 0, range: 22, levRange: 0, celFile: "meteorlavaburst2", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + hellmeteorup: { name: "hellmeteorup", id: 335, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "meteorlavaup", animLen: 9, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + hellmeteordown: { name: "hellmeteordown", id: 336, vel: 0, maxVel: 0, range: 225, levRange: 0, celFile: "meteorlavadown", animLen: 9, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + hellmeteorball: { name: "hellmeteorball", id: 337, vel: 0, maxVel: 0, range: 225, levRange: 0, celFile: "meteorlavarock", animLen: 9, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + horadricstaff: { name: "horadricstaff", id: 338, vel: 0, maxVel: 0, range: 440, levRange: 0, celFile: "HoradricStaff", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + horadriclightning: { name: "horadriclightning", id: 339, vel: 20, maxVel: 20, range: 30, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 600, trans: 1 }, + horadriclight: { name: "horadriclight", id: 340, vel: 0, maxVel: 0, range: 225, levRange: 0, celFile: "HoradricLightBeamstreaks", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + regurgitatorcorpse: { name: "regurgitatorcorpse", id: 341, vel: 14, maxVel: 14, range: 200, levRange: 0, celFile: "SlugMissile", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "regurgitatorcorpseexpl", light: 2, red: 255, green: 64, blue: 64, speedPxPerSec: 350, distancePx: 2800, trans: 1, alwaysExplode: true }, + regurgitatorcorpseexpl: { name: "regurgitatorcorpseexpl", id: 342, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "Slug Missile Explode", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 64, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + highpriestlightning: { name: "highpriestlightning", id: 343, vel: 20, maxVel: 20, range: 15, levRange: 0, celFile: "HighPriestLightning", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 1, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 300, trans: 1, alwaysExplode: true }, + icebreaksmallmelt: { name: "icebreaksmallmelt", id: 344, vel: 0, maxVel: 0, range: 150, levRange: 0, celFile: "IceBreakSmallMelt", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + icebreaklargemelt: { name: "icebreaklargemelt", id: 345, vel: 0, maxVel: 0, range: 150, levRange: 0, celFile: "IceBreakLargeMelt", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + leapknockback: { name: "leapknockback", id: 346, vel: 0, maxVel: 0, range: 2, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + radamentdeath: { name: "radamentdeath", id: 347, vel: 0, maxVel: 0, range: 400, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 15, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + radamenthandofgod: { name: "radamenthandofgod", id: 348, vel: 0, maxVel: 0, range: 21, levRange: 0, celFile: "HandOfGod", animLen: 21, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + radamentholybolt: { name: "radamentholybolt", id: 349, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "HolyBoltMissile", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 600, trans: 1 }, + taintedsuncontrol: { name: "taintedsuncontrol", id: 350, vel: 0, maxVel: 0, range: 300, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + taintedsunflash: { name: "taintedsunflash", id: 351, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "yellowBallGlowIntro", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + taintedsunball: { name: "taintedsunball", id: 352, vel: 12, maxVel: 12, range: 300, levRange: 0, celFile: "yellowBallGlow2", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 3600, trans: 1 }, + queendeathcenter: { name: "queendeathcenter", id: 353, vel: 0, maxVel: 0, range: 100, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + queendeathglob: { name: "queendeathglob", id: 354, vel: 6, maxVel: 6, range: 20, levRange: 0, celFile: "QueenDeathGuts", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 150, distancePx: 120, alwaysExplode: true }, + queendeathsplat1: { name: "queendeathsplat1", id: 355, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "QueenDeathPuddle", animLen: 5, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + queendeathsplat2: { name: "queendeathsplat2", id: 356, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "QueenDeathPuddle2", animLen: 5, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + healingbolt: { name: "healingbolt", id: 357, vel: 14, maxVel: 14, range: 30, levRange: 0, celFile: "HolyBoltMissile", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 222, green: 222, blue: 255, speedPxPerSec: 350, distancePx: 420, trans: 1 }, + mephistoholedelay: { name: "mephistoholedelay", id: 358, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "mephistoholebirth", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + mephistoholebirth: { name: "mephistoholebirth", id: 359, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "smithholebirth", animLen: 21, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "mephistoholeneutral", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + mephistoholeneutral: { name: "mephistoholeneutral", id: 360, vel: 0, maxVel: 0, range: 225, levRange: 0, celFile: "smithholeneutral", animLen: 21, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "mephistoholedeath", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + mephistoholedeath: { name: "mephistoholedeath", id: 361, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "smithholedeath", animLen: 21, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "mephistoholedead", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + mephistoholedead: { name: "mephistoholedead", id: 362, vel: 0, maxVel: 0, range: 400, levRange: 0, celFile: "smithholedead", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + durieldeathcontrol: { name: "durieldeathcontrol", id: 363, vel: 0, maxVel: 0, range: 400, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + durieldeathrock: { name: "durieldeathrock", id: 364, vel: 0, maxVel: 0, range: 40, levRange: 0, celFile: "Rock_large", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + durieldeathdebris: { name: "durieldeathdebris", id: 365, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "Rock_small", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 480, alwaysExplode: true }, + durieldeathsmoke: { name: "durieldeathsmoke", id: 366, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "FireSmoke", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + mephistoexplosion: { name: "mephistoexplosion", id: 367, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "MephistoMissileExplosion", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + orbmist: { name: "orbmist", id: 368, vel: 2, maxVel: 2, range: 400, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 125, blue: 125, speedPxPerSec: 50, distancePx: 800, trans: 1, alwaysExplode: true }, + orbmisttrail: { name: "orbmisttrail", id: 369, vel: 3, maxVel: 3, range: 50, levRange: 0, celFile: "mist_Fade_Orb_Loop", animLen: 14, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "orbmistfade", light: 2, red: 255, green: 125, blue: 125, speedPxPerSec: 75, distancePx: 150, trans: 1, alwaysExplode: true }, + orbmistfade: { name: "orbmistfade", id: 370, vel: 3, maxVel: 3, range: 15, levRange: 0, celFile: "mist_Fade_Orb", animLen: 14, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 125, blue: 125, speedPxPerSec: 75, distancePx: 45, trans: 1 }, + pilum: { name: "pilum", id: 371, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Pilum", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, pierce: true }, + "diablo appears": { name: "diablo appears", id: 372, vel: 0, maxVel: 0, range: 300, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + hfcontrol: { name: "hfcontrol", id: 373, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 8, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + hffragment1: { name: "hffragment1", id: 374, vel: 6, maxVel: 6, range: 16, levRange: 0, celFile: "SoulForgeShard", animLen: 47, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 150, distancePx: 96, trans: 1, subLoop: 1, subStop: 30, alwaysExplode: true }, + hffragment2: { name: "hffragment2", id: 375, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "SoulForgeShard", animLen: 47, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 30, alwaysExplode: true }, + hffragment3: { name: "hffragment3", id: 376, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "SoulForgeShard", animLen: 47, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 30, alwaysExplode: true }, + hfspirit1: { name: "hfspirit1", id: 377, vel: 8, maxVel: 4, range: 55, levRange: 0, celFile: "SoulForgeRisingSoul", animLen: 33, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 200, distancePx: 440, trans: 1, subLoop: 1, subStop: 19, alwaysExplode: true }, + hfreserved3: { name: "hfreserved3", id: 378, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "izual control": { name: "izual control", id: 379, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "izual mist loop": { name: "izual mist loop", id: 380, vel: 4, maxVel: 4, range: 50, levRange: 0, celFile: "IzualDeathClouds", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "izual mist fade", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 100, distancePx: 200, trans: 1, alwaysExplode: true }, + "izual mist fade": { name: "izual mist fade", id: 381, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "izual lightning": { name: "izual lightning", id: 382, vel: 3, maxVel: 3, range: 50, levRange: 0, celFile: "IzualDeathParticles", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 75, distancePx: 150, trans: 1 }, + "izual lightning trail": { name: "izual lightning trail", id: 383, vel: 3, maxVel: 3, range: 50, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 75, distancePx: 150, trans: 1 }, + "cairn stones bolt": { name: "cairn stones bolt", id: 384, vel: 0, maxVel: 0, range: 9, levRange: 0, celFile: "LightningboltBig", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "bomb in air": { name: "bomb in air", id: 385, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "expansion\\FireTraumaMissile", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 600, alwaysExplode: true }, + "bomb on ground": { name: "bomb on ground", id: 386, vel: 0, maxVel: 0, range: 5, levRange: 0, celFile: "expansion\\FireTraumaGround", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "bomb explosion", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "bomb explosion": { name: "bomb explosion", id: 387, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "expansion\\FireTraumaXplosion", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "shock field in air": { name: "shock field in air", id: 388, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "expansion\\caltrops", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 600, subLoop: 1, subStop: 7, alwaysExplode: true }, + "shock field on ground": { name: "shock field on ground", id: 389, vel: 0, maxVel: 0, range: 90, levRange: 0, celFile: "Expansion\\ShockField", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 25, trans: 1 }, + throwingstar: { name: "throwingstar", id: 390, vel: 24, maxVel: 24, range: 100, levRange: 50, celFile: "expansion\\ThrowingStarMissile", animLen: 7, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 2400, trans: 1, subLoop: 1, subStop: 7 }, + acidspray: { name: "acidspray", id: 391, vel: 12, maxVel: 12, range: 6, levRange: 2, celFile: "frogpoisonmissile", animLen: 7, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 72, trans: 1, alwaysExplode: true }, + "blade creeper": { name: "blade creeper", id: 392, vel: 0, maxVel: 0, range: 10, levRange: 5, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 25, trans: 1 }, + distraction: { name: "distraction", id: 393, vel: 0, maxVel: 0, range: 100, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "distraction fog": { name: "distraction fog", id: 394, vel: 0, maxVel: 0, range: 10, levRange: 5, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "distraction puff": { name: "distraction puff", id: 395, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "FireSmoke", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "distraction start": { name: "distraction start", id: 396, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "ExpArrowExplode", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "distraction end": { name: "distraction end", id: 397, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "ExpArrowExplode", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + impinfernoflame1: { name: "impinfernoflame1", id: 398, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Flamethrower", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + impinfernoflame2: { name: "impinfernoflame2", id: 399, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Flamethrower2", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + baallightningbolt: { name: "baallightningbolt", id: 400, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + baallightningtrail: { name: "baallightningtrail", id: 401, vel: 0, maxVel: 0, range: 5, levRange: 0, celFile: "expansion\\lightningpiece", animLen: 1, animSpeed: 16, loopAnim: 2, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + baallightningbolt2: { name: "baallightningbolt2", id: 402, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + baallightningtrail2: { name: "baallightningtrail2", id: 403, vel: 0, maxVel: 0, range: 5, levRange: 0, celFile: "expansion\\lightningpiece", animLen: 1, animSpeed: 16, loopAnim: 2, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + impfireball: { name: "impfireball", id: 404, vel: 18, maxVel: 18, range: 50, levRange: 0, celFile: "expansion\\ImpFireball", animLen: 20, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "impfireballexplode", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 450, distancePx: 900, trans: 1, alwaysExplode: true }, + impfireballexplode: { name: "impfireballexplode", id: 405, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "ExpArrowExplode", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "catapultchargedball on": { name: "catapultchargedball on", id: 406, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + catapultchargedball: { name: "catapultchargedball", id: 407, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + catapultchargedballbolt: { name: "catapultchargedballbolt", id: 408, vel: 12, maxVel: 12, range: 20, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 240, trans: 1, subLoop: 1, subStop: 8 }, + "imp spawn monsters": { name: "imp spawn monsters", id: 409, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "ExpArrowExplode", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "catapult spike ball on": { name: "catapult spike ball on", id: 410, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "Meteor", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "catapult spike ball": { name: "catapult spike ball", id: 411, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Meteor", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, subLoop: 1, subStop: 7, alwaysExplode: true }, + "catapult spike in air": { name: "catapult spike in air", id: 412, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "expansion\\FireSpikes", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 600, subLoop: 1, subStop: 7, alwaysExplode: true }, + "catapult spike on ground": { name: "catapult spike on ground", id: 413, vel: 0, maxVel: 0, range: 180, levRange: 0, celFile: "expansion\\FireSpikesGround", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "catapult spike explosion", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "catapult spike explosion": { name: "catapult spike explosion", id: 414, vel: 0, maxVel: 0, range: 36, levRange: 0, celFile: "expansion\\FireSpikeExplode", animLen: 14, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "catapult cold ball on": { name: "catapult cold ball on", id: 415, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "IceOrb", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "catapult cold ball": { name: "catapult cold ball", id: 416, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "IceOrb", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "catapult cold explosion": { name: "catapult cold explosion", id: 417, vel: 6, maxVel: 6, range: 15, levRange: 0, celFile: "IceBreakLarge", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 150, distancePx: 90, trans: 1, alwaysExplode: true }, + "catapult plague ball on": { name: "catapult plague ball on", id: 418, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "expansion\\catapultpoisonbomb", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "catapult plague ball": { name: "catapult plague ball", id: 419, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "expansion\\catapultpoisonbomb", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "catapult plague cloud": { name: "catapult plague cloud", id: 420, vel: 0, maxVel: 0, range: 80, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19, alwaysExplode: true }, + "catapult meteor ball on": { name: "catapult meteor ball on", id: 421, vel: 0, maxVel: 0, range: 50, levRange: 0, celFile: "Meteor", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "catapult meteor ball": { name: "catapult meteor ball", id: 422, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Meteor", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "catapult meteor fire": { name: "catapult meteor fire", id: 423, vel: 0, maxVel: 0, range: 90, levRange: 25, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + "tower death": { name: "tower death", id: 424, vel: 0, maxVel: 0, range: 1, levRange: 0, celFile: "expansion\\TowerDebris", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "healing vortex": { name: "healing vortex", id: 425, vel: 12, maxVel: 12, range: 100, levRange: 25, celFile: "expansion\\overseer_missile", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 1200, trans: 1 }, + suicidecorpseexplode: { name: "suicidecorpseexplode", id: 426, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "CorpseExplodeGuts", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0 }, + suicidefireexplode: { name: "suicidefireexplode", id: 427, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "Fsexplode", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + suicideiceexplode: { name: "suicideiceexplode", id: 428, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "FreezeExplodeCenter", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + explodingjavalin: { name: "explodingjavalin", id: 429, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "explodingjavalinexp", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, alwaysExplode: true, pierce: true }, + explodingjavalinexp: { name: "explodingjavalinexp", id: 430, vel: 25, maxVel: 25, range: 12, levRange: 0, celFile: "ExpArrowExplode", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 15, red: 255, green: 178, blue: 64, speedPxPerSec: 625, distancePx: 300, trans: 1 }, + lightingtrailingjavalin: { name: "lightingtrailingjavalin", id: 431, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "lightjavalinexplosion", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, alwaysExplode: true }, + lightjavalintrail: { name: "lightjavalintrail", id: 432, vel: 12, maxVel: 12, range: 20, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 240, trans: 1, subLoop: 1, subStop: 8 }, + lightjavalinexplosion: { name: "lightjavalinexplosion", id: 433, vel: 12, maxVel: 12, range: 20, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 240, trans: 1, subLoop: 1, subStop: 8 }, + icejavalin: { name: "icejavalin", id: 434, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "icejavalinexplode", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, alwaysExplode: true, pierce: true }, + icejavalinexplode: { name: "icejavalinexplode", id: 435, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "IceArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 11, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + plaguejavelin2: { name: "plaguejavelin2", id: 436, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "plaguejavlinexplode", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, alwaysExplode: true, pierce: true }, + plaguejavlinexplode: { name: "plaguejavlinexplode", id: 437, vel: 0, maxVel: 15, range: 25, levRange: 0, celFile: "PoisonSmokePuff", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + advlighttrailingjav: { name: "advlighttrailingjav", id: 438, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "advlightjavexplode", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960 }, + advlighttrailingjav2: { name: "advlighttrailingjav2", id: 439, vel: 12, maxVel: 12, range: 20, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 240, trans: 1, subLoop: 1, subStop: 8 }, + advlightjavexplode: { name: "advlightjavexplode", id: 440, vel: 12, maxVel: 12, range: 20, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 240, trans: 1, subLoop: 1, subStop: 8 }, + sucfireball: { name: "sucfireball", id: 441, vel: 18, maxVel: 18, range: 50, levRange: 0, celFile: "Fireball", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 10, red: 255, green: 178, blue: 64, speedPxPerSec: 450, distancePx: 900, trans: 1 }, + sucfireballexplode: { name: "sucfireballexplode", id: 442, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "FireArrowExplode2", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + sucfireballtrail: { name: "sucfireballtrail", id: 443, vel: 0, maxVel: 0, range: 36, levRange: 0, celFile: "groundFiresmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + sucshockfieldmissile: { name: "sucshockfieldmissile", id: 444, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningJavelin", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 6, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1 }, + sucshockfieldmissileexp: { name: "sucshockfieldmissileexp", id: 445, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "teethexplode", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + sucshockfield: { name: "sucshockfield", id: 446, vel: 0, maxVel: 0, range: 36, levRange: 0, celFile: "expansion\\FireSpikeExplode", animLen: 14, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + hellfiremissile: { name: "hellfiremissile", id: 447, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "MeteorTail", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + hellfireexa: { name: "hellfireexa", id: 448, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "BoneSpiritExplode", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + hellfireexb: { name: "hellfireexb", id: 449, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "DopplezonExplode", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "imp charged bolt": { name: "imp charged bolt", id: 450, vel: 12, maxVel: 12, range: 98, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1176, trans: 1, subLoop: 1, subStop: 8 }, + "imp teleport": { name: "imp teleport", id: 451, vel: 1, maxVel: 15, range: 14, levRange: 0, celFile: "expansion\\impteleport", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 25, distancePx: 14, trans: 1 }, + moltenboulder: { name: "moltenboulder", id: 452, vel: 4, maxVel: 4, range: 100, levRange: 0, celFile: "expansion\\MoltenBoulderRoll", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 100, distancePx: 400, alwaysExplode: true }, + moltenboulderemerge: { name: "moltenboulderemerge", id: 453, vel: 3, maxVel: 3, range: 5, levRange: 0, celFile: "expansion\\MoltenBoulderEmerge", animLen: 6, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 75, distancePx: 15, alwaysExplode: true }, + moltenboulderexplode: { name: "moltenboulderexplode", id: 454, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + moltenboulderfirepath: { name: "moltenboulderfirepath", id: 455, vel: 0, maxVel: 0, range: 37, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + "moltenboulder-flyingrocks": { name: "moltenboulder-flyingrocks", id: 456, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "expansion\\MoltenFragmentD", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + firestorm: { name: "firestorm", id: 457, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "groundFiresmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + firestormmaker: { name: "firestormmaker", id: 458, vel: 8, maxVel: 8, range: 40, levRange: 0, celFile: "expansion\\FirestormEmitter", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 200, distancePx: 320, trans: 1 }, + arcticblast1: { name: "arcticblast1", id: 459, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "expansion\\ArcticBlastIce", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + arcticblast2: { name: "arcticblast2", id: 460, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "expansion\\ArcticBlastIce_2", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + "erruption center": { name: "erruption center", id: 461, vel: 0, maxVel: 0, range: 80, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "erruption crack 1": { name: "erruption crack 1", id: 462, vel: 0, maxVel: 0, range: 84, levRange: 0, celFile: "expansion\\EruptionCrack", animLen: 41, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 5 }, + "erruption crack 2": { name: "erruption crack 2", id: 463, vel: 0, maxVel: 0, range: 84, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 5 }, + "erruption smoke 1": { name: "erruption smoke 1", id: 464, vel: 0, maxVel: 0, range: 84, levRange: 0, celFile: "expansion\\EruptionSmoke", animLen: 41, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "erruption smoke 2": { name: "erruption smoke 2", id: 465, vel: 0, maxVel: 0, range: 84, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "vine beast walk 1": { name: "vine beast walk 1", id: 466, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "expansion\\Pod_walk_1", animLen: 31, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "vine beast walk 1 fade", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "vine beast walk 2": { name: "vine beast walk 2", id: 467, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "expansion\\Pod_walk_2", animLen: 31, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "vine beast walk 2 fade", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "vine beast neutral": { name: "vine beast neutral", id: 468, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "expansion\\Pod_neutral_1", animLen: 31, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "vine beast neutral fade", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "vine beast attack": { name: "vine beast attack", id: 469, vel: 0, maxVel: 0, range: 75, levRange: 0, celFile: "expansion\\Pod_attack_1", animLen: 51, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "vine beast death": { name: "vine beast death", id: 470, vel: 0, maxVel: 0, range: 51, levRange: 0, celFile: "expansion\\Pod_death_1", animLen: 21, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + vines: { name: "vines", id: 471, vel: 7, maxVel: 7, range: 20, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 175, distancePx: 140 }, + "vines trail": { name: "vines trail", id: 472, vel: 0, maxVel: 0, range: 100, levRange: 25, celFile: "Expansion\\vines", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "vines wither": { name: "vines wither", id: 473, vel: 0, maxVel: 0, range: 100, levRange: 0, celFile: "Expansion\\Vines_Death", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "plague vines": { name: "plague vines", id: 474, vel: 7, maxVel: 7, range: 20, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 175, distancePx: 140 }, + "plague vines trail": { name: "plague vines trail", id: 475, vel: 0, maxVel: 0, range: 100, levRange: 25, celFile: "Expansion\\vines", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "plague vines wither": { name: "plague vines wither", id: 476, vel: 0, maxVel: 0, range: 100, levRange: 0, celFile: "Expansion\\Vines_Death", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + twister: { name: "twister", id: 477, vel: 10, maxVel: 10, range: 50, levRange: 0, celFile: "expansion\\twister", animLen: 40, animSpeed: 16, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 500, nextHit: 1, nextDelay: 25, trans: 1, subLoop: 1, subStop: 36 }, + tornado: { name: "tornado", id: 478, vel: 8, maxVel: 8, range: 75, levRange: 0, celFile: "expansion\\tornado", animLen: 40, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 200, distancePx: 600, nextHit: 1, nextDelay: 25, trans: 1, subLoop: 1, subStop: 36 }, + volcano: { name: "volcano", id: 479, vel: 0, maxVel: 0, range: 150, levRange: 0, celFile: "Expansion\\volcano_base", animLen: 30, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 10, subLoop: 1, subStop: 18 }, + "volcano overlay fire": { name: "volcano overlay fire", id: 480, vel: 0, maxVel: 0, range: 150, levRange: 0, celFile: "Expansion\\volcano_Fire", animLen: 30, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 64, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 14 }, + "volcano debris 2": { name: "volcano debris 2", id: 481, vel: 14, maxVel: 14, range: 16, levRange: 0, celFile: "expansion\\volcano_rock", animLen: 15, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 350, distancePx: 224, trans: 1, alwaysExplode: true }, + "volcano explosion": { name: "volcano explosion", id: 482, vel: 0, maxVel: 0, range: 18, levRange: 0, celFile: "Expansion\\rock_lava_explosion", animLen: 18, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "volcano small fire": { name: "volcano small fire", id: 483, vel: 0, maxVel: 0, range: 18, levRange: 0, celFile: "Expansion\\rock_lava_pool", animLen: 18, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 5 }, + "dragonbreath missile": { name: "dragonbreath missile", id: 484, vel: 12, maxVel: 12, range: 15, levRange: 0, celFile: "Expansion\\firenova", animLen: 11, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 180, nextHit: 1, nextDelay: 4, trans: 1, subLoop: 1, subStop: 7 }, + lureprojectile: { name: "lureprojectile", id: 485, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "expansion\\FireSpikes", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 600, subLoop: 1, subStop: 7, alwaysExplode: true }, + lurecenter: { name: "lurecenter", id: 486, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Expansion\\LureCloud", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 3, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + lurecloud: { name: "lurecloud", id: 487, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Expansion\\LureCloud", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + impmiss1: { name: "impmiss1", id: 488, vel: 10, maxVel: 10, range: 80, levRange: 0, celFile: "Expansion\\impmissile01", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 250, distancePx: 800, trans: 1 }, + impmiss2: { name: "impmiss2", id: 489, vel: 12, maxVel: 12, range: 80, levRange: 0, celFile: "Expansion\\impmissile01", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 300, distancePx: 960, trans: 1 }, + impmiss3: { name: "impmiss3", id: 490, vel: 14, maxVel: 14, range: 80, levRange: 0, celFile: "Expansion\\impmissile01", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 350, distancePx: 1120, trans: 1 }, + impmiss4: { name: "impmiss4", id: 491, vel: 16, maxVel: 16, range: 80, levRange: 0, celFile: "Expansion\\impmissile01", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 400, distancePx: 1280, trans: 1 }, + impmiss5: { name: "impmiss5", id: 492, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Expansion\\impmissile01", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + "frozenhorror arcticblast1": { name: "frozenhorror arcticblast1", id: 493, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "expansion\\ArcticBlastIce", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + "frozenhorror arcticblast2": { name: "frozenhorror arcticblast2", id: 494, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "expansion\\ArcticBlastIce_2", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + sentrychargedbolt: { name: "sentrychargedbolt", id: 495, vel: 12, maxVel: 12, range: 98, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1176, trans: 1, subLoop: 1, subStop: 8 }, + sentryspikeinair: { name: "sentryspikeinair", id: 496, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "expansion\\FireSpikes", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 600, subLoop: 1, subStop: 7, alwaysExplode: true }, + sentryspikeonground: { name: "sentryspikeonground", id: 497, vel: 0, maxVel: 0, range: 180, levRange: 60, celFile: "expansion\\FireSpikesGround", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "bomb explosion", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "recycler delay": { name: "recycler delay", id: 498, vel: 0, maxVel: 0, range: 47, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + "recycler vine": { name: "recycler vine", id: 499, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "Expansion\\vines", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "recycler fade": { name: "recycler fade", id: 500, vel: 0, maxVel: 0, range: 100, levRange: 0, celFile: "Expansion\\Vines_Death", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "recycler explosion": { name: "recycler explosion", id: 501, vel: 0, maxVel: 0, range: 13, levRange: 0, celFile: "CorpseExplodeGuts", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0 }, + "death mauler": { name: "death mauler", id: 502, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "expansion\\deathmaulerfingers", animLen: 8, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 10, alwaysExplode: true }, + "death mauler trail": { name: "death mauler trail", id: 503, vel: 0, maxVel: 0, range: 36, levRange: 0, celFile: "expansion\\deathmaulermissile", animLen: 31, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "death mauler trail fade": { name: "death mauler trail fade", id: 504, vel: 0, maxVel: 0, range: 36, levRange: 0, celFile: "expansion\\deathmaulerfadeout", animLen: 31, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + bladefury1: { name: "bladefury1", id: 505, vel: 18, maxVel: 18, range: 22, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 396, alwaysExplode: true }, + bladefragment1: { name: "bladefragment1", id: 506, vel: 22, maxVel: 22, range: 40, levRange: 0, celFile: "Expansion\\bladefury", animLen: 7, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 550, distancePx: 880, alwaysExplode: true }, + bladefury2: { name: "bladefury2", id: 507, vel: 18, maxVel: 18, range: 22, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 396, alwaysExplode: true }, + bladefragment2: { name: "bladefragment2", id: 508, vel: 22, maxVel: 22, range: 33, levRange: 0, celFile: "Expansion\\bladefury_B", animLen: 7, animSpeed: 32, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 550, distancePx: 726, alwaysExplode: true }, + bladefury3: { name: "bladefury3", id: 509, vel: 18, maxVel: 18, range: 22, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 396, alwaysExplode: true }, + bladefragment3: { name: "bladefragment3", id: 510, vel: 22, maxVel: 22, range: 25, levRange: 0, celFile: "Expansion\\bladefury_C", animLen: 7, animSpeed: 32, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 550, distancePx: 550, alwaysExplode: true }, + shockwave: { name: "shockwave", id: 511, vel: 20, maxVel: 20, range: 14, levRange: 0, celFile: "expansion\\shockwave", animLen: 7, animSpeed: 8, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 280, nextHit: 1, nextDelay: 4, trans: 1 }, + lightningtalons: { name: "lightningtalons", id: 512, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1 }, + lightningtalonstrail: { name: "lightningtalonstrail", id: 513, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 7 }, + phoenixtrail: { name: "phoenixtrail", id: 514, vel: 0, maxVel: 0, range: 90, levRange: 25, celFile: "groundFireBig", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + rabiesplague: { name: "rabiesplague", id: 515, vel: 0, maxVel: 0, range: 10, levRange: 5, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + rabiescontagion: { name: "rabiescontagion", id: 516, vel: 5, maxVel: 5, range: 20, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 125, distancePx: 100 }, + "wake of destruction maker": { name: "wake of destruction maker", id: 517, vel: 10, maxVel: 10, range: 25, levRange: 2, celFile: "groundFireSmall", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 250, distancePx: 250, nextHit: 1, nextDelay: 4, trans: 1, subLoop: 1, subStop: 2 }, + "wake of destruction": { name: "wake of destruction", id: 518, vel: 8, maxVel: 8, range: 20, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 200, distancePx: 160, nextHit: 1, nextDelay: 4, trans: 1, subLoop: 1, subStop: 36 }, + deathsentryexplode: { name: "deathsentryexplode", id: 519, vel: 0, maxVel: 0, range: 24, levRange: 0, celFile: "Expansion\\dethsentry02", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + tigerfury: { name: "tigerfury", id: 520, vel: 12, maxVel: 12, range: 128, levRange: 0, celFile: "BoneSpirit", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "tigerfurytrail2", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1536, trans: 1, alwaysExplode: true }, + tigerfurytrail: { name: "tigerfurytrail", id: 521, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "groundFireMedium", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + tigerfurytrail2: { name: "tigerfurytrail2", id: 522, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "BoneSpiritExplode", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "inferno sentry 1": { name: "inferno sentry 1", id: 523, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "Flamethrower", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 600, trans: 1 }, + "inferno sentry 2": { name: "inferno sentry 2", id: 524, vel: 12, maxVel: 12, range: 50, levRange: 0, celFile: "Flamethrower2", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 600, trans: 1 }, + "ancient throwing axe": { name: "ancient throwing axe", id: 525, vel: 24, maxVel: 24, range: 20, levRange: 0, celFile: "MissileHandAxe", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 480, pierce: true }, + sentrylightningbolt: { name: "sentrylightningbolt", id: 526, vel: 30, maxVel: 30, range: 10, levRange: 2, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 300, trans: 1 }, + sentrylightninghit: { name: "sentrylightninghit", id: 527, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 7 }, + "anya center": { name: "anya center", id: 528, vel: 0, maxVel: 0, range: 300, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + "anya icicle": { name: "anya icicle", id: 529, vel: 0, maxVel: 0, range: 1, levRange: 0, celFile: "expansion\\icicle", animLen: 10, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "anya iceimpact", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "anya iceimpact": { name: "anya iceimpact", id: 530, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "expansion\\iceimpact", animLen: 10, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "anya icesteam": { name: "anya icesteam", id: 531, vel: 0, maxVel: 0, range: 30, levRange: 0, celFile: "expansion\\icecavequest_steam", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "anya icemagic": { name: "anya icemagic", id: 532, vel: 0, maxVel: 0, range: 30, levRange: 0, celFile: "expansion\\icecavequest_magic", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "dragontail missile": { name: "dragontail missile", id: 533, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + dragonflight: { name: "dragonflight", id: 534, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "expansion\\FirestormEmitter", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + dragonflightmaker: { name: "dragonflightmaker", id: 535, vel: 8, maxVel: 8, range: 20, levRange: 0, celFile: "expansion\\FirestormEmitter", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 200, distancePx: 160, trans: 1 }, + "progressive radius damage": { name: "progressive radius damage", id: 536, vel: 8, maxVel: 8, range: 20, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 200, distancePx: 160, trans: 1 }, + "vine beast walk 1 fade": { name: "vine beast walk 1 fade", id: 537, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "expansion\\Pod_Jump_FadeOut", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "vine beast walk 2 fade": { name: "vine beast walk 2 fade", id: 538, vel: 0, maxVel: 0, range: 31, levRange: 0, celFile: "expansion\\deathmaulerfadeout", animLen: 31, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "vine beast neutral fade": { name: "vine beast neutral fade", id: 539, vel: 0, maxVel: 0, range: 11, levRange: 0, celFile: "expansion\\Pod_Neutral_FadeOut", animLen: 11, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0 }, + "vine recycler delay": { name: "vine recycler delay", id: 540, vel: 0, maxVel: 0, range: 47, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + "ancient death center": { name: "ancient death center", id: 541, vel: 3, maxVel: 3, range: 400, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 125, blue: 125, speedPxPerSec: 75, distancePx: 1200, trans: 1, alwaysExplode: true }, + "ancient death cloud": { name: "ancient death cloud", id: 542, vel: 3, maxVel: 3, range: 50, levRange: 0, celFile: "expansion\\AncientDeathMissile", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 125, blue: 125, speedPxPerSec: 75, distancePx: 150, trans: 1, subLoop: 1, subStop: 12, alwaysExplode: true }, + "lightning charge up nova": { name: "lightning charge up nova", id: 543, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "ElectricNova", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + "chainlightningcharge up": { name: "chainlightningcharge up", id: 544, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, nextHit: 1, nextDelay: 4, trans: 1 }, + "pain worm appear": { name: "pain worm appear", id: 545, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "Revive", animLen: 25, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baal taunt control": { name: "baal taunt control", id: 546, vel: 0, maxVel: 0, range: 75, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baal taunt lightning": { name: "baal taunt lightning", id: 547, vel: 30, maxVel: 30, range: 10, levRange: 2, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 300, nextHit: 1, nextDelay: 10, trans: 1 }, + "baal taunt lightning trail": { name: "baal taunt lightning trail", id: 548, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, nextHit: 1, nextDelay: 10, trans: 1 }, + "baal taunt poison": { name: "baal taunt poison", id: 549, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + "baal spawn monsters": { name: "baal spawn monsters", id: 550, vel: 12, maxVel: 12, range: 60, levRange: 0, celFile: "Expansion\\baalsummonmissile2", animLen: 8, animSpeed: 8, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 300, distancePx: 720, trans: 1, alwaysExplode: true }, + "mindblast hit": { name: "mindblast hit", id: 551, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "Expansion\\Mindblast", animLen: 10, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "blade shield missile": { name: "blade shield missile", id: 552, vel: 18, maxVel: 30, range: 100, levRange: 0, celFile: "Expansion\\blade_shield_missile", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 450, distancePx: 1800, trans: 1 }, + "blade shield attachment": { name: "blade shield attachment", id: 553, vel: 0, maxVel: 0, range: 500, levRange: 100, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + "baal inferno": { name: "baal inferno", id: 554, vel: 20, maxVel: 40, range: 2048, levRange: 0, celFile: "Expansion\\baalmissile", animLen: 14, animSpeed: 12, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 40960, nextHit: 1, nextDelay: 4, trans: 1, alwaysExplode: true }, + "baal nova": { name: "baal nova", id: 555, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "Expansion\\baalsummonmissile", animLen: 8, animSpeed: 12, loopAnim: 0, numDirections: 8, explosionMissile: "shamanexp", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800, nextHit: 1, nextDelay: 4, trans: 1 }, + fistsoffireexplode: { name: "fistsoffireexplode", id: 556, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 15, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + fistsoffirefirewall: { name: "fistsoffirefirewall", id: 557, vel: 0, maxVel: 0, range: 64, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + clawsofthunderbolt: { name: "clawsofthunderbolt", id: 558, vel: 12, maxVel: 12, range: 98, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 1176, nextHit: 1, nextDelay: 4, trans: 1, subLoop: 1, subStop: 8 }, + clawsofthundernova: { name: "clawsofthundernova", id: 559, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "ElectricNova", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + bladesoficeexplode: { name: "bladesoficeexplode", id: 560, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "IceArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 11, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + bladesoficecubes: { name: "bladesoficecubes", id: 561, vel: 0, maxVel: 0, range: 30, levRange: 0, celFile: "IceBreakSmall", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + bladesoficecubesmelt: { name: "bladesoficecubesmelt", id: 562, vel: 0, maxVel: 0, range: 150, levRange: 0, celFile: "IceBreakSmallMelt", animLen: 12, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + royalstrikemeteor: { name: "royalstrikemeteor", id: 563, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "Meteor", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + royalstrikemeteorcenter: { name: "royalstrikemeteorcenter", id: 564, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "MeteorTargetIndicator", animLen: 17, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 64, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + royalstrikemeteortail: { name: "royalstrikemeteortail", id: 565, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "MeteorTail", animLen: 12, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + royalstrikemeteorexplode: { name: "royalstrikemeteorexplode", id: 566, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 13, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + royalstrikemeteorfire: { name: "royalstrikemeteorfire", id: 567, vel: 0, maxVel: 0, range: 37, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + royalstrikechainlightning: { name: "royalstrikechainlightning", id: 568, vel: 30, maxVel: 30, range: 60, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 1800, nextHit: 1, nextDelay: 4, trans: 1 }, + royalstrikechaosice: { name: "royalstrikechaosice", id: 569, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "IceBolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 4, red: 81, green: 81, blue: 255, speedPxPerSec: 400, distancePx: 640, nextHit: 1, nextDelay: 4, trans: 1 }, + "world stone chip 1": { name: "world stone chip 1", id: 570, vel: 1, maxVel: 1, range: 500, levRange: 0, celFile: "expansion\\wstonechips1", animLen: 25, animSpeed: 12, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 25, distancePx: 500 }, + "world stone chip 2": { name: "world stone chip 2", id: 571, vel: 1, maxVel: 1, range: 500, levRange: 0, celFile: "expansion\\wstonechips2", animLen: 33, animSpeed: 12, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 25, distancePx: 500 }, + "world stone chip 3": { name: "world stone chip 3", id: 572, vel: 1, maxVel: 1, range: 500, levRange: 0, celFile: "expansion\\wstonechips3", animLen: 25, animSpeed: 12, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 25, distancePx: 500 }, + "world stone chip 4": { name: "world stone chip 4", id: 573, vel: 1, maxVel: 1, range: 500, levRange: 0, celFile: "expansion\\wstonechips4", animLen: 17, animSpeed: 12, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 25, distancePx: 500 }, + highpriestlightning2: { name: "highpriestlightning2", id: 574, vel: 8, maxVel: 8, range: 16, levRange: 0, celFile: "HighPriestLightning", animLen: 9, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 12, red: 255, green: 64, blue: 64, speedPxPerSec: 200, distancePx: 128, trans: 1, alwaysExplode: true }, + infernoflame3: { name: "infernoflame3", id: 575, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "Flamethrower", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + "mindblast center": { name: "mindblast center", id: 576, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "Expansion\\Mindblast", animLen: 10, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + armageddoncontrol: { name: "armageddoncontrol", id: 577, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + armageddonrock: { name: "armageddonrock", id: 578, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "expansion\\armageddon_rock", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + armageddontail: { name: "armageddontail", id: 579, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "expansion\\armageddon_fire", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + armageddonexplosion: { name: "armageddonexplosion", id: 580, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + hurricaneswoosh: { name: "hurricaneswoosh", id: 581, vel: 20, maxVel: 20, range: 22, levRange: 0, celFile: "expansion\\hurricane_swoosh", animLen: 11, animSpeed: 8, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 500, distancePx: 440, trans: 1 }, + hurricanecart: { name: "hurricanecart", id: 582, vel: 18, maxVel: 18, range: 20, levRange: 0, celFile: "expansion\\hurricane_cart", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 360 }, + hurricanerock: { name: "hurricanerock", id: 583, vel: 18, maxVel: 18, range: 20, levRange: 0, celFile: "expansion\\hurricane_rocks", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 360 }, + hurricanesack: { name: "hurricanesack", id: 584, vel: 18, maxVel: 18, range: 20, levRange: 0, celFile: "expansion\\hurricane_sack", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 360 }, + hurricanetree: { name: "hurricanetree", id: 585, vel: 18, maxVel: 18, range: 20, levRange: 0, celFile: "expansion\\hurricane_tree", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 360 }, + hurricanevase: { name: "hurricanevase", id: 586, vel: 18, maxVel: 18, range: 20, levRange: 0, celFile: "expansion\\hurricane_vase", animLen: 20, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 360 }, + baalcorpseexplodedelay: { name: "baalcorpseexplodedelay", id: 587, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "baalcorpseexplodeexpl", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + baalcorpseexplodeexpl: { name: "baalcorpseexplodeexpl", id: 588, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "expansion\\CEBaal", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "baal cold maker": { name: "baal cold maker", id: 589, vel: 20, maxVel: 20, range: 50, levRange: 0, celFile: "BlueNovaB", animLen: 8, animSpeed: 8, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 500, distancePx: 1000, nextHit: 1, nextDelay: 4, trans: 1 }, + "baal cold trail": { name: "baal cold trail", id: 590, vel: 13, maxVel: 13, range: 20, levRange: 0, celFile: "BlueNovaB", animLen: 8, animSpeed: 8, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 5, red: 143, green: 143, blue: 255, speedPxPerSec: 325, distancePx: 260, nextHit: 1, nextDelay: 4, trans: 1 }, + "baal spawn monsters exp": { name: "baal spawn monsters exp", id: 591, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "Expansion\\baalsummonsmall", animLen: 11, animSpeed: 15, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + impmiss21: { name: "impmiss21", id: 592, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Expansion\\impmissile2", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + impmiss22: { name: "impmiss22", id: 593, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Expansion\\impmissile2", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + impmiss23: { name: "impmiss23", id: 594, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Expansion\\impmissile2", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + impmiss24: { name: "impmiss24", id: 595, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Expansion\\impmissile2", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + impmiss25: { name: "impmiss25", id: 596, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Expansion\\impmissile2", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + anyasteam1: { name: "anyasteam1", id: 597, vel: 0, maxVel: 0, range: 26, levRange: 0, celFile: "ChillBloodPuff", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + anyasteam2: { name: "anyasteam2", id: 598, vel: 0, maxVel: 0, range: 26, levRange: 0, celFile: "ChillBloodPuff", animLen: 26, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + ancientsguide: { name: "ancientsguide", id: 599, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + ancientsmarker: { name: "ancientsmarker", id: 600, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + ancientscontrol: { name: "ancientscontrol", id: 601, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + overseercontrol: { name: "overseercontrol", id: 602, vel: 0, maxVel: 0, range: 500, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + nihlithak1: { name: "nihlithak1", id: 603, vel: 0, maxVel: 0, range: 32, levRange: 0, celFile: "expansion\\Nihlathak A", animLen: 16, animSpeed: 8, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + nihlithak2: { name: "nihlithak2", id: 604, vel: 0, maxVel: 0, range: 192, levRange: 0, celFile: "expansion\\Nihlathak B", animLen: 8, animSpeed: 8, loopAnim: 1, numDirections: 1, explosionMissile: "nihlithak3", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + nihlithak3: { name: "nihlithak3", id: 605, vel: 0, maxVel: 0, range: 34, levRange: 0, celFile: "expansion\\Nihlathak C", animLen: 17, animSpeed: 8, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + nehlithakcontrol: { name: "nehlithakcontrol", id: 606, vel: 0, maxVel: 0, range: 224, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + nehlithakswoosh: { name: "nehlithakswoosh", id: 607, vel: 20, maxVel: 20, range: 22, levRange: 0, celFile: "expansion\\nehlthak_Swoosh", animLen: 11, animSpeed: 8, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 500, distancePx: 440, trans: 1 }, + nehlithakdebris1: { name: "nehlithakdebris1", id: 608, vel: 18, maxVel: 18, range: 16, levRange: 0, celFile: "expansion\\Skeleton_pieces_A", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 288 }, + nehlithakdebris2: { name: "nehlithakdebris2", id: 609, vel: 18, maxVel: 18, range: 16, levRange: 0, celFile: "expansion\\Skeleton_pieces_B", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 288 }, + nehlithakdebris3: { name: "nehlithakdebris3", id: 610, vel: 18, maxVel: 18, range: 16, levRange: 0, celFile: "expansion\\Skeleton_pieces_C", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 288 }, + nehlithakdebris4: { name: "nehlithakdebris4", id: 611, vel: 18, maxVel: 18, range: 16, levRange: 0, celFile: "expansion\\Skeleton_pieces_D", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 450, distancePx: 288 }, + nehlithakglow: { name: "nehlithakglow", id: 612, vel: 0, maxVel: 0, range: 0, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + baalteleport: { name: "baalteleport", id: 613, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "Expansion\\Baalsummonoverlay", animLen: 20, animSpeed: 24, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 3, red: 128, green: 64, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + baalclonedeath: { name: "baalclonedeath", id: 614, vel: 0, maxVel: 0, range: 20, levRange: 0, celFile: "Expansion\\Baalteleport", animLen: 20, animSpeed: 24, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 3, red: 128, green: 64, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + anyasteamvent: { name: "anyasteamvent", id: 615, vel: 0, maxVel: 0, range: 82, levRange: 0, celFile: "expansion\\IceCaveEruption", animLen: 41, animSpeed: 8, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + anyasteam: { name: "anyasteam", id: 616, vel: 0, maxVel: 0, range: 82, levRange: 0, celFile: "expansion\\Ice_Smoke", animLen: 41, animSpeed: 8, loopAnim: 0, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + nehlithakhole: { name: "nehlithakhole", id: 617, vel: 0, maxVel: 0, range: 250, levRange: 0, celFile: "expansion\\nehlthak_Hole", animLen: 41, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, subLoop: 1, subStop: 29 }, + nehlithakholelight: { name: "nehlithakholelight", id: 618, vel: 0, maxVel: 0, range: 250, levRange: 0, celFile: "expansion\\nehlthak_Hole_light", animLen: 41, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 29 }, + volcanofiretrail: { name: "volcanofiretrail", id: 619, vel: 12, maxVel: 12, range: 0, levRange: 0, celFile: "expansion\\wallfire_low_Tiny", animLen: 25, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 300, distancePx: 0, trans: 1 }, + nehlithakglow2: { name: "nehlithakglow2", id: 620, vel: 0, maxVel: 0, range: 192, levRange: 0, celFile: "expansion\\NehlithakGlow", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + nehlithakbonechips: { name: "nehlithakbonechips", id: 621, vel: 0, maxVel: 0, range: 192, levRange: 0, celFile: "expansion\\BonePieces", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + baalcorpseexplodefade: { name: "baalcorpseexplodefade", id: 622, vel: 0, maxVel: 0, range: 443, levRange: 0, celFile: "expansion\\CEBaalFade", animLen: 11, animSpeed: 4, loopAnim: 1, numDirections: 4, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + armageddonfire: { name: "armageddonfire", id: 623, vel: 0, maxVel: 0, range: 37, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + icesparkle: { name: "icesparkle", id: 624, vel: 0, maxVel: 0, range: 250, levRange: 0, celFile: "expansion\\iceglint", animLen: 6, animSpeed: 12, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 2, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baalfx control": { name: "baalfx control", id: 625, vel: 0, maxVel: 0, range: 650, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baalfx spirit 1": { name: "baalfx spirit 1", id: 626, vel: 10, maxVel: 10, range: 250, levRange: 0, celFile: "expansion\\baaldeathghostie02", animLen: 8, animSpeed: 6, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 250, distancePx: 2500, trans: 1 }, + "baalfx spirit 2": { name: "baalfx spirit 2", id: 627, vel: 10, maxVel: 10, range: 250, levRange: 0, celFile: "expansion\\baaldeathghostie01", animLen: 8, animSpeed: 6, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 250, distancePx: 2500, trans: 1 }, + "baalfx spirit 3": { name: "baalfx spirit 3", id: 628, vel: 10, maxVel: 10, range: 250, levRange: 0, celFile: "null", animLen: 1, animSpeed: 8, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 250, distancePx: 2500, trans: 1 }, + "baalfx spirit 4": { name: "baalfx spirit 4", id: 629, vel: 10, maxVel: 10, range: 250, levRange: 0, celFile: "null", animLen: 1, animSpeed: 8, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 250, distancePx: 2500, trans: 1 }, + "baalfx spirit 5": { name: "baalfx spirit 5", id: 630, vel: 10, maxVel: 10, range: 250, levRange: 0, celFile: "null", animLen: 1, animSpeed: 8, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 250, distancePx: 2500, trans: 1 }, + "baalfx baal head appear": { name: "baalfx baal head appear", id: 631, vel: 0, maxVel: 0, range: 455, levRange: 0, celFile: "expansion\\baaldeathswirl", animLen: 36, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baalfx baal head 1": { name: "baalfx baal head 1", id: 632, vel: 0, maxVel: 0, range: 390, levRange: 0, celFile: "expansion\\baaldeathhead01", animLen: 42, animSpeed: 12, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baalfx baal head 2": { name: "baalfx baal head 2", id: 633, vel: 0, maxVel: 0, range: 390, levRange: 0, celFile: "expansion\\baaldeathhead02", animLen: 42, animSpeed: 12, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baalfx baal head 3": { name: "baalfx baal head 3", id: 634, vel: 0, maxVel: 0, range: 390, levRange: 0, celFile: "expansion\\baaldeathhead03", animLen: 42, animSpeed: 12, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + "baalfx tyreal debris 1": { name: "baalfx tyreal debris 1", id: 635, vel: 0, maxVel: 0, range: 40, levRange: 0, celFile: "expansion\\BCeilingChunkFall1", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "baalfx tyreal debris break", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "baalfx tyreal debris 2": { name: "baalfx tyreal debris 2", id: 636, vel: 0, maxVel: 0, range: 40, levRange: 0, celFile: "expansion\\BCeilingChunkFall2", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "baalfx tyreal debris break", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "baalfx tyreal debris 3": { name: "baalfx tyreal debris 3", id: 637, vel: 0, maxVel: 0, range: 40, levRange: 0, celFile: "expansion\\BCeilingChunkFall3", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "baalfx tyreal debris break", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "baalfx tyreal debris break": { name: "baalfx tyreal debris break", id: 638, vel: 0, maxVel: 0, range: 1365, levRange: 0, celFile: "expansion\\BCeilingChunkBreak", animLen: 12, animSpeed: 12, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + "worldstone shake": { name: "worldstone shake", id: 639, vel: 0, maxVel: 0, range: 200, levRange: 0, celFile: "null", animLen: 1, animSpeed: 12, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + blessedhammerex: { name: "blessedhammerex", id: 640, vel: 18, maxVel: 30, range: 120, levRange: 0, celFile: "blessedhammer", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 5, red: 222, green: 222, blue: 255, speedPxPerSec: 450, distancePx: 2160, trans: 1 }, + sentrylightningbolt2: { name: "sentrylightningbolt2", id: 641, vel: 30, maxVel: 30, range: 10, levRange: 2, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 300, trans: 1, pierce: true }, + sentrylightninghit2: { name: "sentrylightninghit2", id: 642, vel: 0, maxVel: 0, range: 12, levRange: 0, celFile: "LightningStrike", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 7 }, + lightningtowernova: { name: "lightningtowernova", id: 643, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "ElectricNova", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + skbowarrow6: { name: "skbowarrow6", id: 644, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "FireArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 2, red: 255, green: 178, blue: 64, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + skbowarrow7: { name: "skbowarrow7", id: 645, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "IceArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 2, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + skbowarrow8: { name: "skbowarrow8", id: 646, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "SafeArrow", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 2, red: 255, green: 178, blue: 64, speedPxPerSec: 600, distancePx: 960, trans: 1, pierce: true }, + bighead6: { name: "bighead6", id: 647, vel: 16, maxVel: 16, range: 40, levRange: 0, celFile: "BigheadLightningMissile", animLen: 3, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "bigheadexp", light: 3, red: 143, green: 143, blue: 255, speedPxPerSec: 400, distancePx: 640, trans: 1 }, + viper_poisjav: { name: "viper_poisjav", id: 648, vel: 24, maxVel: 24, range: 15, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 360, trans: 1, pierce: true }, + viper_poisjavcloud: { name: "viper_poisjavcloud", id: 649, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + viper_fire: { name: "viper_fire", id: 650, vel: 24, maxVel: 24, range: 15, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 360, trans: 1 }, + viper_firecloud: { name: "viper_firecloud", id: 651, vel: 0, maxVel: 0, range: 10, levRange: 0, celFile: "Flamethrower", animLen: 15, animSpeed: 7, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, nextHit: 1, nextDelay: 4, trans: 1 }, + viper_bonespear: { name: "viper_bonespear", id: 652, vel: 24, maxVel: 24, range: 40, levRange: 0, celFile: "BoneSpear", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "bonespearexplode", light: 3, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 960, trans: 1 }, + countessfirewallmaker: { name: "countessfirewallmaker", id: 653, vel: 12, maxVel: 12, range: 7, levRange: 0, celFile: "groundFireBig", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 8, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 84, trans: 1, subLoop: 1, subStop: 2 }, + "baal taunt lightning control": { name: "baal taunt lightning control", id: 654, vel: 0, maxVel: 0, range: 1, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + "baal taunt poison control": { name: "baal taunt poison control", id: 655, vel: 0, maxVel: 0, range: 1, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + explodingarrowexp2: { name: "explodingarrowexp2", id: 656, vel: 0, maxVel: 0, range: 1, levRange: 0, celFile: "null", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + freezingarrowexp3: { name: "freezingarrowexp3", id: 657, vel: 0, maxVel: 0, range: 1, levRange: 0, celFile: "null", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + pantherjav5: { name: "pantherjav5", id: 658, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Javelin", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 1600, pierce: true }, + spike6: { name: "spike6", id: 659, vel: 30, maxVel: 30, range: 40, levRange: 0, celFile: "SpikeFiendMissle", animLen: 2, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 1200 }, + cr_arrow6: { name: "cr_arrow6", id: 660, vel: 26, maxVel: 26, range: 40, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 1, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 650, distancePx: 1040, pierce: true }, + skmagepois: { name: "skmagepois", id: 661, vel: 12, maxVel: 12, range: 40, levRange: 0, celFile: "poisonNova", animLen: 30, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 300, distancePx: 480, trans: 1 }, + skmagecold: { name: "skmagecold", id: 662, vel: 14, maxVel: 14, range: 40, levRange: 0, celFile: "Icebolt", animLen: 6, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "iceexplode", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 350, distancePx: 560, trans: 1 }, + skmagefire: { name: "skmagefire", id: 663, vel: 18, maxVel: 18, range: 40, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "fireexplode", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 450, distancePx: 720, trans: 1 }, + skmageltng: { name: "skmageltng", id: 664, vel: 20, maxVel: 20, range: 40, levRange: 0, celFile: "ChargedBolt", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 2, red: 255, green: 255, blue: 255, speedPxPerSec: 500, distancePx: 800, trans: 1 }, + succubusmiss: { name: "succubusmiss", id: 665, vel: 10, maxVel: 10, range: 80, levRange: 0, celFile: "Expansion\\impmissile01", animLen: 10, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "teethexplode", light: 2, red: 255, green: 64, blue: 64, speedPxPerSec: 250, distancePx: 800, trans: 1 }, + willowisplightningbolt2: { name: "willowisplightningbolt2", id: 666, vel: 32, maxVel: 32, range: 40, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 8, red: 178, green: 178, blue: 255, speedPxPerSec: 800, distancePx: 1280, trans: 1 }, + mummyex: { name: "mummyex", id: 667, vel: 5, maxVel: 5, range: 24, levRange: 0, celFile: "GreaterMummyBreath", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 125, distancePx: 120, trans: 1 }, + goospitex: { name: "goospitex", id: 668, vel: 10, maxVel: 10, range: 24, levRange: 0, celFile: "SandMaggotGooSpit", animLen: 24, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "goosplat", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 250, distancePx: 240 }, + impmissex: { name: "impmissex", id: 669, vel: 20, maxVel: 20, range: 80, levRange: 0, celFile: "Expansion\\impmissile2", animLen: 8, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "shamanexp", light: 5, red: 255, green: 64, blue: 64, speedPxPerSec: 500, distancePx: 1600, trans: 1 }, + diablogeddoncontrol: { name: "diablogeddoncontrol", id: 670, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "null", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0 }, + diablogeddonrock: { name: "diablogeddonrock", id: 671, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "expansion\\armageddon_rock", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, alwaysExplode: true }, + diablogeddontail: { name: "diablogeddontail", id: 672, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "expansion\\armageddon_fire", animLen: 16, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 0, red: 0, green: 0, blue: 0, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + diablogeddonexplosion: { name: "diablogeddonexplosion", id: 673, vel: 0, maxVel: 0, range: 16, levRange: 0, celFile: "ExpArrowExplode", animLen: 16, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + diablogeddonfire: { name: "diablogeddonfire", id: 674, vel: 0, maxVel: 0, range: 37, levRange: 0, celFile: "groundFireSmall", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 5, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + megademoninferno: { name: "megademoninferno", id: 675, vel: 12, maxVel: 12, range: 30, levRange: 0, celFile: "Flamethrower", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 178, blue: 64, speedPxPerSec: 300, distancePx: 360, trans: 1 }, + trapfirebolt: { name: "trapfirebolt", id: 676, vel: 20, maxVel: 20, range: 50, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "fireexplode", light: 7, red: 255, green: 178, blue: 64, speedPxPerSec: 500, distancePx: 1000, trans: 1 }, + trappoisonjavcloud: { name: "trappoisonjavcloud", id: 677, vel: 0, maxVel: 0, range: 60, levRange: 0, celFile: "PoisonSparks", animLen: 31, animSpeed: 16, loopAnim: 1, numDirections: 8, explosionMissile: "", light: 0, red: 128, green: 255, blue: 128, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 19 }, + trapnova: { name: "trapnova", id: 678, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "ElectricNova", animLen: 13, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + mephfrostnova: { name: "mephfrostnova", id: 679, vel: 24, maxVel: 24, range: 14, levRange: 0, celFile: "FrostNova", animLen: 14, animSpeed: 16, loopAnim: 0, numDirections: 16, explosionMissile: "", light: 0, red: 81, green: 81, blue: 255, speedPxPerSec: 600, distancePx: 336, nextHit: 1, nextDelay: 4, trans: 1 }, + mephlight: { name: "mephlight", id: 680, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "null", animLen: 2, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 4, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1 }, + vampiremeteorfire: { name: "vampiremeteorfire", id: 681, vel: 0, maxVel: 0, range: 90, levRange: 0, celFile: "groundFireMedium", animLen: 37, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 3, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1, subLoop: 1, subStop: 36 }, + strafearrow: { name: "strafearrow", id: 682, vel: 24, maxVel: 24, range: 50, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 1200, nextHit: 1, nextDelay: 4, pierce: true }, + strafebolt: { name: "strafebolt", id: 683, vel: 24, maxVel: 24, range: 50, levRange: 0, celFile: "XBowBolt", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 1200, nextHit: 1, nextDelay: 4, pierce: true }, + // Backward-compatible visual / test aliases (marked clientAlias: true) + lightning: { name: "lightning", clientAlias: true, id: 98, vel: 30, maxVel: 30, range: 25, levRange: 0, celFile: "LightningStrike", animLen: 16, animSpeed: 16, loopAnim: 2, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 750, distancePx: 750, trans: 1 }, + thunderstorm: { name: "thunderstorm", clientAlias: true, id: 166, vel: 2, maxVel: 2, range: 9, levRange: 0, celFile: "LightningboltBig", animLen: 8, animSpeed: 8, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 50, distancePx: 18, trans: 1 }, + electricnova: { name: "electricnova", clientAlias: true, id: 90, vel: 24, maxVel: 24, range: 13, levRange: 0, celFile: "ElectricNova", animLen: 13, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 312, nextHit: 1, nextDelay: 4, trans: 1 }, + freezeexplode: { name: "freezeexplode", clientAlias: true, id: 88, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "FreezeExplodeCenter", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "", light: 11, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + glacialspikeejecta: { name: "glacialspikeejecta", clientAlias: true, id: 89, vel: 0, maxVel: 0, range: 15, levRange: 0, celFile: "FreezeExplodeEjecta", animLen: 15, animSpeed: 16, loopAnim: 0, numDirections: 8, explosionMissile: "", light: 11, red: 81, green: 81, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + hydrafire: { name: "hydrafire", clientAlias: true, id: 247, vel: 16, maxVel: 16, range: 30, levRange: 0, celFile: "Firebolt", animLen: 5, animSpeed: 16, loopAnim: 1, numDirections: 16, explosionMissile: "fireexplode", light: 5, red: 255, green: 255, blue: 255, speedPxPerSec: 400, distancePx: 480, trans: 1 }, + groundfirebig: { name: "groundfirebig", clientAlias: true, id: 83, vel: 0, maxVel: 0, range: 90, levRange: 0, celFile: "groundFireBig", animLen: 15, animSpeed: 16, loopAnim: 1, numDirections: 1, explosionMissile: "", light: 10, red: 255, green: 178, blue: 64, speedPxPerSec: 0, distancePx: 0, trans: 1 }, + foa: { name: "foa", clientAlias: true, id: 211, vel: 0, maxVel: 0, range: 25, levRange: 0, celFile: "FistOfTheHeavensDelay", animLen: 5, animSpeed: 16, loopAnim: 0, numDirections: 1, explosionMissile: "fistoftheheavensbolt", light: 8, red: 255, green: 255, blue: 255, speedPxPerSec: 0, distancePx: 0, trans: 1, alwaysExplode: true }, + "multiple shot": { name: "multipleshotarrow", clientAlias: true, id: 213, vel: 24, maxVel: 24, range: 50, levRange: 0, celFile: "Arrow", animLen: 1, animSpeed: 16, loopAnim: 0, numDirections: 32, explosionMissile: "", light: 0, red: 255, green: 255, blue: 255, speedPxPerSec: 600, distancePx: 1200, trans: 0 }, }) /** @@ -1775,7 +925,7 @@ export const MISSILE_CLASS_ID_TO_KEY: Readonly> = Object. (() => { const map: Record = {} for (const [key, data] of Object.entries(CANONICAL_113C_MISSILES)) { - if (!data.clientAlias || map[data.id] === undefined) { + if (!data.clientAlias) { map[data.id] = key } } diff --git a/src/server/engine/combat-pipeline.ts b/src/server/engine/combat-pipeline.ts index 322e7f7..6f5cdd7 100644 --- a/src/server/engine/combat-pipeline.ts +++ b/src/server/engine/combat-pipeline.ts @@ -177,7 +177,9 @@ export function computeToHitChance(params: { const alvl = Math.max(1, params.attackerLvl) const dlvl = Math.max(1, params.defenderLvl) - const raw = Math.trunc((2 * effAr * 100 * alvl) / (Math.max(1, effAr + effDef) * (alvl + dlvl))) + const divisor = effAr + effDef + const toHitFactor = divisor > 0 ? Math.trunc((100 * effAr) / divisor) : 100 + const raw = Math.trunc((2 * alvl * toHitFactor) / (alvl + dlvl)) return Math.max(5, Math.min(95, raw)) } diff --git a/tests/client/client-world.test.ts b/tests/client/client-world.test.ts index 5768f0c..7346813 100644 --- a/tests/client/client-world.test.ts +++ b/tests/client/client-world.test.ts @@ -879,7 +879,7 @@ describe('ClientWorld authoritative state mirror', () => { ) expect(subBolts.length).toBeGreaterThanOrEqual(4) - // 6. Multiple Shot (skill 12, level 5 -> 6 multipleshotarrow missiles in a fan, classId=213) + // 6. Multiple Shot (skill 12, level 5 -> 7 multipleshotarrow missiles in a fan per 1.13c calc1 min(24, 2 + slvl), classId=213) const msWorld = new ClientWorld() msWorld.apply({ type: 'UnitAssign', @@ -897,7 +897,7 @@ describe('ClientWorld authoritative state mirror', () => { const multiShotArrows = Array.from(msWorld.units.values()).filter( u => u.unitType === 'missile' && u.missileKey === 'multipleshotarrow', ) - expect(multiShotArrows).toHaveLength(6) + expect(multiShotArrows).toHaveLength(7) expect(multiShotArrows.every(m => m.classId === 213)).toBe(true) // 7. Challenge 3: spawnMissileByKey('arrow') without opts.classId preserves classId === 0