diff --git a/api/.env.example b/api/.env.example index 2d3c9c1..6f02152 100644 --- a/api/.env.example +++ b/api/.env.example @@ -18,7 +18,7 @@ REDIS_PASSWORD= # Season Configuration (for default) CURRENT_SEASON=13 -# CORS +# CORS (comma-separated origins are supported) CORS_ORIGIN=* # Rate Limiting diff --git a/api/src/config/index.ts b/api/src/config/index.ts index 84a1810..2a27480 100644 --- a/api/src/config/index.ts +++ b/api/src/config/index.ts @@ -3,6 +3,20 @@ import logger from "node-color-log"; dotenv.config(); +const defaultCorsOrigins = [ + "http://localhost:4173", + "http://127.0.0.1:4173", + "http://localhost:4174", + "http://127.0.0.1:4174", + "http://localhost:5173", + "http://127.0.0.1:5173", +]; + +const corsOrigins = (process.env.CORS_ORIGIN || defaultCorsOrigins.join(",")) + .split(",") + .map((origin) => origin.trim()) + .filter(Boolean); + export const config = { // Node environment nodeEnv: process.env.NODE_ENV || "development", @@ -33,7 +47,7 @@ export const config = { currentSeason: parseInt(process.env.CURRENT_SEASON || "13", 10), // CORS - corsOrigin: process.env.CORS_ORIGIN || "http://localhost:5173", + corsOrigin: corsOrigins.length === 1 ? corsOrigins[0] : corsOrigins, // Rate limiting rateLimit: { diff --git a/api/src/game-data/pd2/season-13/Armor.txt b/api/src/game-data/pd2/season-13/Armor.txt new file mode 100644 index 0000000..d485c9f --- /dev/null +++ b/api/src/game-data/pd2/season-13/Armor.txt @@ -0,0 +1,206 @@ +name version compactsave rarity spawnable minac maxac absorbs speed reqstr block durability nodurability level levelreq cost gamble cost code namestr magic lvl auto prefix alternategfx OpenBetaGfx normcode ubercode ultracode spelloffset component invwidth invheight hasinv gemsockets gemapplytype flippyfile invfile uniqueinvfile setinvfile rArm lArm Torso Legs rSPad lSPad useable throwable stackable minstack maxstack type type2 dropsound dropsfxframe usesound unique transparent transtbl quivered lightradius belt quest missiletype durwarning qntwarning mindam maxdam StrBonus DexBonus gemoffset bitfield1 CharsiMin CharsiMax CharsiMagicMin CharsiMagicMax CharsiMagicLvl GheedMin GheedMax GheedMagicMin GheedMagicMax GheedMagicLvl AkaraMin AkaraMax AkaraMagicMin AkaraMagicMax AkaraMagicLvl FaraMin FaraMax FaraMagicMin FaraMagicMax FaraMagicLvl LysanderMin LysanderMax LysanderMagicMin LysanderMagicMax LysanderMagicLvl DrognanMin DrognanMax DrognanMagicMin DrognanMagicMax DrognanMagicLvl HraltiMin HraltiMax HraltiMagicMin HraltiMagicMax HraltiMagicLvl AlkorMin AlkorMax AlkorMagicMin AlkorMagicMax AlkorMagicLvl OrmusMin OrmusMax OrmusMagicMin OrmusMagicMax OrmusMagicLvl ElzixMin ElzixMax ElzixMagicMin ElzixMagicMax ElzixMagicLvl AshearaMin AshearaMax AshearaMagicMin AshearaMagicMax AshearaMagicLvl CainMin CainMax CainMagicMin CainMagicMax CainMagicLvl HalbuMin HalbuMax HalbuMagicMin HalbuMagicMax HalbuMagicLvl JamellaMin JamellaMax JamellaMagicMin JamellaMagicMax JamellaMagicLvl LarzukMin LarzukMax LarzukMagicMin LarzukMagicMax LarzukMagicLvl MalahMin MalahMax MalahMagicMin MalahMagicMax MalahMagicLvl DrehyaMin DrehyaMax DrehyaMagicMin DrehyaMagicMax DrehyaMagicLvl Source Art Game Art Transform InvTrans SkipName NightmareUpgrade HellUpgrade mindam maxdam nameable +Cap/hat 0 0 1 1 3 5 0 0 0 0 12 0 1 0 64 3016 cap cap cap cap cap xap uap 0 0 2 2 1 2 1 flpcap invcap invcapu invcapu 0 0 0 0 0 helm item_cap 12 item_cap 0 0 5 0 0 0 0 0 3 0 0 0 0 1 1 1 1 1 5 1 1 1 255 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 255 255 8 8 0 skp ghm 0 0 1 +Skull Cap 0 0 4 1 8 11 0 0 15 0 18 0 5 0 441 5551 skp skp skp skp skp xkp ukp 0 0 2 2 1 2 1 flpskp invskp 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 1 1 1 1 10 1 1 1 255 255 255 255 255 255 255 1 2 1 1 1 255 255 255 255 255 255 255 2 8 0 hlm crn 0 0 1 +Helm 0 0 4 1 15 18 0 0 26 0 24 0 11 0 1558 12284 hlm hlm hlm hlm hlm xlm ulm 0 0 2 2 1 2 1 flphlm invhlm invhlmu invhlmu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 1 1 1 255 1 2 1 1 1 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 2 8 0 fhl ghm 0 0 1 +Full Helm 0 0 4 1 23 26 0 0 41 0 30 0 15 0 3095 21606 fhl fhl fhl hlm fhl xhl uhl 0 0 2 2 1 2 1 flpfhl invfhl invfhlu invfhlu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 1 1 1 1 255 255 255 255 255 255 1 1 1 1 1 1 1 1 255 255 255 255 255 0 8 0 ghm xxx 0 0 1 +Great Helm 0 0 4 1 30 35 0 0 63 0 40 0 23 0 6177 49517 ghm ghm ghm hlm ghm xhm uhm 0 0 2 2 1 3 1 flpghm invghm 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 2 2 1 1 1 255 255 255 1 1 1 1 1 1 1 1 1 1 1 1 1 1 20 1 1 1 1 20 255 255 7 8 0 crn xxx 0 0 1 +Crown 0 0 4 1 25 45 0 0 55 0 50 0 29 0 8345 77501 crn crn crn hlm crn xrn urn 0 0 2 2 1 3 1 flpcrn invcrn 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 1 1 1 1 20 1 1 1 1 1 20 255 255 2 8 0 xxx xxx 0 0 1 +Mask 0 0 4 1 9 27 0 0 23 0 20 0 19 0 2857 25570 msk msk msk hlm msk xsk usk 0 0 2 2 1 3 1 flpmsk invmsk 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 1 1 1 255 255 255 255 1 1 255 255 255 1 2 0 xxx xxx 0 0 1 +Quilted Armor 0 0 1 1 9 11 0 0 12 0 20 0 1 0 140 3035 qui qui qlt qlt qui xui uui 0 1 2 3 1 2 1 flpqlt invqlt 0 0 0 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 1 1 1 1 5 1 1 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 7 8 0 lea gth 0 0 1 +Leather Armor 0 0 2 1 15 17 0 0 15 0 24 0 3 0 481 4360 lea lea lea lea lea xea uea 0 1 2 3 1 2 1 flplea invlea 0 0 1 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 1 1 1 1 10 1 1 1 255 255 255 255 255 255 255 1 1 1 1 1 255 255 255 255 255 255 255 7 8 0 hla ful 0 0 1 +Hard Leather Armor 0 0 3 1 23 25 0 0 20 0 28 0 5 0 1060 6325 hla hla hla hla hla xla ula 0 1 2 3 1 2 1 flphla invhla 1 1 1 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 1 1 1 1 15 1 1 1 255 255 255 255 255 255 255 1 1 1 1 1 255 255 255 255 255 255 255 7 8 0 stu aar 0 0 1 +Studded Leather 0 0 4 1 35 37 0 0 27 0 32 0 8 0 2385 11270 stu stu stu stu stu xtu utu 0 1 2 3 1 2 1 flpstu invstu 1 0 0 1 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 1 1 1 1 20 1 1 1 255 255 255 255 255 255 255 1 1 1 1 1 255 255 255 255 255 255 255 7 8 0 rng ltp 0 0 1 +Ring Mail 0 0 4 1 49 51 0 0 36 0 26 0 11 0 4428 20177 rng rng rng rng rng xng ung 0 1 2 3 1 3 1 flprng invrng 0 0 1 1 1 1 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 1 1 255 255 255 1 1 1 1 255 255 255 255 255 1 1 1 255 255 255 255 255 255 255 7 8 0 scl chn 0 0 1 +Scale Mail 0 0 4 1 61 63 0 0 44 0 36 0 13 0 6508 30151 scl scl scl scl scl xcl ucl 0 1 2 3 1 2 1 flpscl invscl 1 1 1 1 1 1 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 1 1 1 1 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 7 8 0 chn brs 0 0 1 +Chain Mail 0 0 4 1 70 71 0 0 48 0 45 0 15 0 9360 45100 chn chn chn chn chn xhn uhn 0 1 2 3 1 2 1 flpchn invchn 1 1 1 1 2 2 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 1 1 1 1 255 255 1 1 1 255 255 255 1 1 1 1 1 1 1 1 1 1 255 1 1 255 255 255 7 8 0 brs spl 0 0 1 +Breast Plate 0 0 4 1 56 58 1 0 30 0 50 0 18 0 10078 56851 brs brs brs brs brs xrs urs 0 1 2 3 1 3 1 flpbrs invbrs 0 0 2 0 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 1 1 1 255 255 1 1 1 1 255 255 255 1 1 1 1 1 1 1 1 1 1 255 1 1 1 1 255 255 255 7 8 0 spl plt 0 0 1 +Splint Mail 0 0 4 1 81 84 0 0 51 0 30 0 20 0 15489 89945 spl spl spl spl spl xpl upl 0 1 2 3 1 2 1 flpspl invspl 1 1 2 1 1 1 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 1 1 255 255 1 1 1 1 1 255 255 255 1 1 1 1 1 1 1 1 255 1 1 1 1 1 1 20 255 255 7 8 0 plt fld 0 0 1 +Plate Mail 0 0 4 1 103 108 0 0 65 0 60 0 24 0 22335 148510 plt plt plt plt plt xlt ult 0 1 2 3 1 2 1 flpplt invplt 2 2 2 2 1 1 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 1 1 20 1 1 1 1 1 1 1 20 255 255 8 8 0 fld xxx 0 0 1 +Field Plate 0 0 4 1 100 102 2 0 55 0 48 0 28 0 23841 183387 fld fld fld fld fld xld uld 0 1 2 3 1 2 1 flpfld invfld 1 1 2 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 1 1 255 255 255 255 255 1 1 1 1 20 1 1 2 20 255 255 8 8 0 gth ful 0 0 1 +Gothic Plate 0 0 4 1 124 128 0 0 70 0 55 0 32 0 34646 295668 gth gth gth gth gth xth uth 0 1 2 3 1 4 1 flpgth invgth 2 2 1 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 1 255 1 1 255 255 255 1 1 1 1 20 1 1 1 1 2 20 255 255 8 8 0 ful xxx 0 0 1 +Full Plate Mail 0 0 4 1 145 150 2 0 80 0 70 0 37 0 47192 457526 ful ful ful ful ful xul uul 0 1 2 3 1 4 1 flpful invful invfulu invfulu 2 2 2 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 1 255 255 255 255 255 1 1 20 1 1 1 1 2 20 255 255 8 8 0 aar xxx 0 0 1 +Ancient Armor 0 0 4 1 178 185 5 0 100 0 60 0 40 0 73864 761140 aar aar aar aar aar xar uar 0 1 2 3 1 4 1 flpaar invaar invaaru invaaru 1 2 2 2 2 0 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 1 1 20 255 1 1 1 2 20 255 1 1 2 20 8 8 0 ltp xxx 0 0 1 +Light Plate 0 0 4 1 93 99 1 0 41 0 60 0 35 0 28327 267861 ltp ltp ltp ltp ltp xtp utp 0 1 2 3 1 3 1 flpltp invltp 2 0 1 1 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 1 1 20 1 255 1 2 20 255 1 1 1 20 7 8 0 buc xxx 0 0 1 +Buckler 0 0 2 1 4 6 0 0 12 0 12 0 1 0 68 3017 buc buc buc buc buc xuc uuc 0 7 2 2 1 1 2 flpbuc invbuc invbucu invbucu 0 0 0 0 0 shie item_woodshield 12 item_woodshield 0 0 5 0 0 0 0 0 1 0 1 3 100 0 3 1 1 1 1 3 1 1 1 255 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 255 255 8 8 0 sml tow 0 0 1 +Small Shield 0 0 3 1 8 10 0 0 22 5 16 0 5 0 410 5512 sml sml buc buc sml xml uml 0 7 2 2 1 2 2 flpsml invsml invsmlu invsmlu 0 0 0 0 0 shie item_woodshield 12 item_woodshield 0 0 5 0 0 0 0 0 1 0 2 3 100 0 3 1 1 1 1 5 1 1 1 255 255 255 255 255 255 255 1 2 1 1 1 1 1 1 1 255 255 255 255 255 8 5 0 lrg kit 0 0 1 +Large Shield 0 0 4 1 12 14 0 0 34 12 24 0 11 0 1214 11338 lrg lrg lrg buc lrg xrg urg 0 7 2 3 1 3 2 flplrg invlrg invlrgu invlrgu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 3 6 100 0 3 1 1 10 1 1 1 255 1 1 1 1 1 255 255 255 255 255 255 1 1 1 1 1 1 1 1 1 1 255 1 1 255 255 255 255 8 2 0 kit tow 0 0 1 +Kite Shield 0 0 4 1 16 18 0 0 47 8 30 0 15 0 2129 17983 kit kit kit buc kit xit uit 0 7 2 3 1 3 2 flpkit invkit invkitu invkitu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 4 11 100 0 3 255 255 255 1 1 1 1 255 255 1 1 1 1 1 255 255 255 1 1 1 1 1 1 1 1 255 1 1 1 1 1 255 255 255 8 2 0 tow gts 0 0 1 +Tower Shield 0 0 4 1 22 25 1 0 75 24 60 0 22 0 4249 36869 tow tow tow buc tow xow uow 0 7 2 3 1 3 2 flptow invtow invtowu invtowu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 5 23 100 0 3 255 255 255 1 1 255 255 1 2 1 1 1 255 255 255 255 255 1 1 1 1 20 1 1 1 1 1 1 2 20 255 20 8 2 0 gts xxx 0 0 1 +Gothic Shield 0 0 4 1 30 35 0 0 60 20 40 0 30 0 8000 77500 gts gts kit buc gts xts uts 0 7 2 4 1 3 2 flpgts invgts invgtsu invgtsu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 7 20 100 0 3 255 255 255 255 255 255 1 1 255 255 255 255 255 1 1 1 1 20 1 1 2 20 255 1 1 20 8 2 0 xxx xxx 0 0 1 +Gloves(L) 0 0 1 1 2 3 0 0 0 0 12 0 3 0 80 4060 lgl lgl lgl lgl lgl xlg ulg 0 16 2 2 0 0 0 flplgl invlgl 0 0 0 0 0 glov item_gloves 12 item_gloves 0 0 5 0 0 0 0 0 5 0 0 0 0 1 1 1 1 1 3 1 1 1 1 255 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 255 255 0 8 0 vgl hgl 0 0 1 +Heavy Gloves 0 0 1 1 5 6 0 0 0 0 14 0 7 0 352 6616 vgl vgl vgl vgl vgl xvg uvg 0 16 2 2 0 0 0 flpvgl invvgl 0 0 0 0 0 glov item_gloves 12 item_gloves 0 0 5 0 0 0 0 0 5 0 0 0 0 1 1 1 5 1 1 1 255 1 1 1 255 255 255 255 255 1 1 1 1 1 255 255 255 255 255 255 255 0 8 0 mgl tgl 0 0 1 +Bracers(M) 0 0 2 1 8 9 0 0 25 0 16 0 12 0 859 11077 mgl mgl mgl mgl mgl xmg umg 0 16 2 2 0 0 0 flpmgl invmgl 0 0 0 0 0 glov item_gloveschain 12 item_gloveschain 0 0 5 0 0 0 0 0 5 0 0 0 0 3 1 10 255 255 1 2 1 1 1 255 255 255 255 255 255 1 1 1 1 1 1 1 1 255 255 255 255 255 0 8 0 tgl hgl 0 0 1 +Light Gauntlets 0 0 3 1 9 11 0 0 45 0 18 0 20 0 1635 20675 tgl tgl mgl mgl tgl xtg utg 0 16 2 2 0 0 0 flptgl invtgl 0 0 0 0 0 glov item_glovesmetal 12 item_glovesmetal 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 1 1 1 255 255 255 255 255 255 1 2 1 1 1 1 2 1 1 1 1 1 255 1 1 1 255 1 1 20 255 1 1 255 0 8 0 xxx xxx 0 0 1 +Gaunlets(H) 0 0 4 1 12 15 0 0 60 0 24 0 27 0 2964 36007 hgl hgl hgl hgl hgl xhg uhg 0 16 2 2 0 0 0 flphgl invhgl 0 0 0 0 0 glov item_glovesmetal 12 item_glovesmetal 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 1 1 1 1 1 1 1 1 1 1 1 255 1 1 255 1 1 1 1 20 255 1 1 1 1 20 0 8 0 xxx xxx 0 0 1 +Leather Boots 0 0 1 1 2 3 0 0 0 0 12 0 3 0 80 4060 lbt lbt lbt lbt lbt xlb ulb 0 16 2 2 0 0 0 flplbt invlbt 0 0 0 0 0 boot item_boots 12 item_boots 0 0 5 0 0 0 0 0 6 0 3 8 100 0 1 1 1 1 1 1 1 1 1 1 255 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 255 255 0 8 0 vbt tbt 0 0 1 +Heavy Boots 0 0 1 1 5 6 0 0 18 0 14 0 7 0 334 6584 vbt vbt vbt vbt vbt xvb uvb 0 16 2 2 0 0 0 flpvbt invvbt 0 0 0 0 0 boot item_boots 12 item_boots 0 0 5 0 0 0 0 0 6 0 4 12 100 0 1 1 1 1 1 1 1 255 1 1 1 255 255 255 255 255 1 1 1 1 1 255 255 255 255 255 255 255 0 8 0 mbt tbt 0 0 1 +Chain Boots 0 0 2 1 8 9 0 0 30 0 16 0 12 0 854 11062 mbt mbt mbt mbt mbt xmb umb 0 16 2 2 0 0 0 flpmbt invmbt 0 0 0 0 0 boot item_bootschain 12 item_bootschain 0 0 5 0 0 0 0 0 6 0 6 14 100 0 3 1 1 255 255 1 2 1 1 1 255 255 255 255 255 255 1 1 1 1 1 1 1 1 255 255 255 255 255 0 8 0 tbt hbt 0 0 1 +Light Plate Boots 0 0 3 1 9 11 0 0 50 0 18 0 20 0 1630 20650 tbt tbt mbt mbt tbt xtb utb 0 16 2 2 0 0 0 flptbt invtbt 0 0 0 0 0 boot item_bootsmetal 12 item_bootsmetal 0 0 5 0 0 0 0 0 6 0 8 18 100 0 3 255 255 255 1 1 1 255 255 255 255 255 255 1 2 1 1 1 1 2 1 1 1 1 1 20 1 1 1 255 1 1 20 255 1 1 255 0 8 0 xxx xxx 0 0 1 +Plate Boots 0 0 4 1 12 15 0 0 70 0 24 0 27 0 2954 35939 hbt hbt hbt hbt hbt xhb uhb 0 16 2 2 0 0 0 flphbt invhbt 0 0 0 0 0 boot item_bootsmetal 12 item_bootsmetal 0 0 5 0 0 0 0 0 6 0 10 20 100 0 3 255 255 255 255 255 255 255 255 255 255 1 1 1 1 1 1 1 1 1 1 1 1 20 1 1 255 1 1 1 1 20 255 1 1 1 1 20 0 8 0 xxx xxx 0 0 1 +Sash(L) 0 0 1 1 2 2 0 0 0 0 12 0 3 0 64 4048 lbl lbl lbl lbl lbl zlb ulc 0 16 2 1 0 0 0 flplbl invlbl 0 0 0 0 0 belt item_lightarmor 12 item_lightarmor 0 0 5 0 0 1 0 0 4 0 0 0 0 1 1 1 1 1 1 1 1 1 1 255 255 255 255 255 255 255 1 1 1 1 255 255 255 255 255 255 255 0 8 0 vbl tbl 0 0 1 +Light Belt 0 0 1 1 3 3 0 0 0 0 14 0 7 0 192 6336 vbl vbl vbl vbl vbl zvb uvc 0 16 2 1 0 0 0 flpvbl invvbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 4 0 0 4 0 0 0 0 1 1 1 1 1 1 1 255 1 1 1 255 255 255 255 255 1 1 1 1 1 255 255 255 255 255 255 255 0 8 0 mbl hbl 0 0 1 +Belt(M) 0 0 2 1 5 5 0 0 25 0 16 0 12 0 495 9985 mbl mbl mbl mbl mbl zmb umc 0 16 2 1 0 0 0 flpmbl invmbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 0 0 0 4 0 0 0 0 1 1 1 255 255 1 2 1 1 1 255 255 255 255 255 255 1 1 1 1 1 1 1 1 255 255 255 255 255 0 8 0 tbl hbl 0 0 1 +Heavy Belt 0 0 2 1 6 6 0 0 45 0 18 0 20 0 963 17315 tbl tbl mbl mbl tbl ztb utc 0 16 2 1 0 0 0 flptbl invtbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 5 0 0 4 0 0 0 0 1 255 255 255 1 1 1 255 255 255 255 255 255 1 2 1 1 1 1 2 1 1 1 1 1 20 1 1 1 255 255 255 1 1 255 0 8 0 xxx xxx 0 0 1 +Girdle(H) 0 0 3 1 8 11 0 0 60 0 24 0 27 0 2068 29959 hbl hbl hbl hbl hbl zhb uhc 0 16 2 1 0 0 0 flphbl invhbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 3 0 0 4 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 1 1 1 1 1 1 1 1 1 1 1 1 20 1 1 255 1 1 1 2 20 255 1 1 255 0 8 0 xxx xxx 0 0 1 +Bone Helm 0 0 2 1 33 36 0 0 25 0 40 0 22 0 6323 48276 bhm bhm bhm hlm bhm xh9 uh9 0 0 2 2 1 2 1 flpbhm invbhm invbhmu invbhmu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 2 0 0 0 3 0 0 0 0 1 255 255 255 255 255 1 2 1 3 20 255 255 1 1 255 255 255 255 255 255 255 1 1 1 7 8 0 xxx xxx 0 0 1 +Bone Shield 0 0 2 1 10 30 0 0 25 16 40 0 19 0 3175 27081 bsh bsh 318 bsh buc bsh xsh ush 0 7 2 3 1 2 2 flpbsh invbsh invbshu invbshu 0 0 0 0 0 shie bshi item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 5 10 100 0 1 255 255 255 255 255 1 2 1 3 20 255 255 1 1 255 255 255 255 255 255 255 1 1 1 8 8 0 xxx xxx 0 0 1 +Spiked Shield 0 0 3 1 15 25 0 0 30 8 40 0 11 0 1890 13197 spk spk 315 spk buc spk xpk upk 0 7 2 3 1 3 2 flpspk invspk invspku invspku 0 0 0 0 0 shie sshi item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 9 16 100 0 1 255 255 255 255 255 1 2 1 3 20 255 255 1 255 255 255 255 255 255 255 1 1 1 8 8 0 xxx xxx 0 0 1 +War Hat 0 0 1 1 45 53 0 0 20 0 12 0 34 22 13560 82061 xap xap cap cap cap xap uap 0 0 2 2 1 2 1 flpcap invcap 0 0 0 0 0 helm item_cap 12 item_cap 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Sallet 0 0 4 1 52 62 0 0 43 0 18 0 37 25 17210 113647 xkp xkp skp skp skp xkp ukp 0 0 2 2 1 2 1 flpskp invskp invxkpu invxkpu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Casque 0 0 4 1 63 72 0 0 59 0 24 0 42 25 23075 171804 xlm xlm hlm hlm hlm xlm ulm 0 0 2 2 1 2 1 flphlm invhlm invhlmu invhlmu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Basinet 0 0 4 1 75 84 0 0 82 0 30 0 45 25 29083 233910 xhl xhl fhl fhl fhl xhl uhl 0 0 2 2 1 2 1 flpfhl invfhl invfhlu invfhlu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Winged Helm 0 0 4 1 85 98 0 0 115 0 40 0 51 25 37846 355900 xhm xhm ghm ghm ghm xhm uhm 0 0 2 2 1 3 1 flpghm invghm 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 7 8 0 xxx xxx 0 0 1 +Grand Crown 0 0 4 1 78 113 0 0 103 0 50 0 55 25 42458 448816 xrn xrn crn crn crn xrn urn 0 0 2 2 1 3 1 flpcrn invcrn invxrnu invxrnu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Death Mask 0 0 4 1 54 86 0 0 55 0 20 0 48 25 27190 241184 xsk xsk msk msk msk xsk usk 0 0 2 2 1 3 1 flpmsk invmsk 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1 2 0 xxx xxx 0 0 1 +Ghost Armor 0 0 1 1 106 112 0 0 38 0 20 0 34 22 30552 165635 xui xui qlt qlt qui xui uui 0 1 2 3 1 2 1 flpqlt invqlt 0 0 0 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Serpentskin Armor 0 0 2 1 116 122 0 0 43 0 24 0 36 24 34960 197896 xea xea lea lea lea xea uea 0 1 2 3 1 2 1 flplea invlea 0 0 1 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Demonhide Armor 0 0 3 1 128 134 0 0 50 0 28 0 37 25 39090 236758 xla xla hla hla hla xla ula 0 1 2 3 1 2 1 flphla invhla 1 1 1 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Trellised Armor 0 0 4 1 148 156 0 0 61 0 32 0 40 25 47582 305707 xtu xtu stu stu stu xtu utu 0 1 2 3 1 2 1 flpstu invstu invxtuu invxtuu 1 0 0 1 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Linked Mail 0 0 4 1 172 180 0 0 74 0 26 0 42 25 56600 393748 xng xng rng rng rng xng ung 0 1 2 3 1 3 1 flprng invrng 0 0 1 1 1 1 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Tigulated Mail 0 0 4 1 193 202 0 0 86 0 36 0 43 25 64242 473193 xcl xcl scl scl scl xcl ucl 0 1 2 3 1 3 1 flpscl invscl 1 1 1 1 1 1 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Mesh Armor 0 0 4 1 207 216 0 0 92 0 45 0 45 25 75440 574094 xhn xhn chn chn chn xhn uhn 0 1 2 3 1 3 1 flpchn invchn 1 1 1 1 2 2 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Cuirass 0 0 4 1 170 176 1 0 65 0 50 0 47 25 74719 613456 xrs xrs brs brs brs xrs urs 0 1 2 3 1 3 1 flpbrs invbrs invxrss 0 0 2 0 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Russet Armor 0 0 4 1 223 233 0 0 97 0 30 0 49 25 93404 788235 xpl xpl spl spl spl xpl upl 0 1 2 3 1 3 1 flpspl invspl 1 1 2 1 1 1 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Templar Coat 0 0 4 1 264 278 0 0 118 0 60 0 52 25 111395 1017928 xlt xlt plt plt plt xlt ult 0 1 2 3 1 3 1 flpplt invplt 2 2 2 2 1 1 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Sharktooth Armor 0 0 4 1 246 255 2 0 103 0 48 0 55 25 111674 1103159 xld xld fld fld fld xld uld 0 1 2 3 1 3 1 flpfld invfld 1 1 2 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Embossed Plate 0 0 4 1 291 304 0 0 125 0 55 0 58 25 137817 1457493 xth xth gth gth gth xth uth 0 1 2 3 1 4 1 flpgth invgth 2 2 1 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Chaos Armor 0 0 4 1 323 340 2 0 140 0 70 0 61 25 162672 1888411 xul xul ful ful ful xul uul 0 1 2 3 1 4 1 flpful invful 2 2 2 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Ornate Armor 0 0 4 1 393 414 5 0 170 0 60 0 64 25 225120 2696482 xar xar aar aar aar xar uar 0 1 2 3 1 4 1 flpaar invaar invxaru invxaru 1 2 2 2 2 0 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Mage Plate 0 0 4 1 178 187 1 0 55 0 60 0 60 25 118407 1327498 xtp xtp ltp ltp ltp xtp utp 0 1 2 3 1 3 1 flpltp invltp 2 0 1 1 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 7 8 0 xxx xxx 0 0 1 +Defender 0 0 2 1 41 49 0 0 38 10 68 0 34 22 12562 77123 xuc xuc buc buc buc xuc uuc 0 7 2 2 1 1 2 flpbuc invbuc invbucu invbucu 0 0 0 0 0 shie item_woodshield 12 item_woodshield 0 0 5 0 0 0 0 0 1 0 10 15 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Round Shield 0 0 3 1 47 55 0 0 53 12 64 0 37 25 15451 103735 xml xml buc buc sml xml uml 0 7 2 2 1 2 2 flpsml invsml invxmlu invxmlu 0 0 0 0 0 shie item_woodshield 12 item_woodshield 0 0 5 0 0 0 0 0 1 0 11 23 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 5 0 xxx xxx 0 0 1 +Scutum 0 0 4 1 53 61 0 0 71 14 62 0 42 25 19537 148359 xrg xrg lrg lrg lrg xrg urg 0 7 2 3 1 3 2 flplrg invlrg invxrgu invxrgu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 16 22 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Dragon Shield 0 0 4 1 59 67 0 0 91 18 76 0 45 25 23094 189944 xit xit kit kit kit xit uit 0 7 2 3 1 3 2 flpkit invkit invkitu invkitu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 17 28 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Pavise 0 0 4 1 68 78 1 0 133 24 72 0 50 25 29550 278500 xow xow tow tow tow xow uow 0 7 2 3 1 3 2 flptow invtow invtowu invtowu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 24 32 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Ancient Shield 0 0 4 1 80 93 0 0 110 20 80 0 56 25 39220 422340 xts xts kit kit gts xts uts 0 7 2 4 1 3 2 flpgts invgts invgtsu invgtsu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 18 30 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Demonhide Gloves 0 0 1 1 28 35 0 0 20 0 12 0 33 21 8480 64102 xlg xlg lgl lgl lgl xlg ulg 0 16 2 2 0 0 0 flplgl invlgl 0 0 0 0 0 glov item_gloves 12 item_gloves 0 0 5 0 0 0 0 0 5 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Sharkskin Gloves 0 0 1 1 33 39 0 0 20 0 14 0 39 25 11420 85063 xvg xvg vgl vgl vgl xvg uvg 0 16 2 2 0 0 0 flpvgl invvgl 0 0 0 0 0 glov item_gloves 12 item_gloves 0 0 5 0 0 0 0 0 5 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Heavy Bracers 0 0 2 1 37 44 0 0 58 0 16 0 43 25 14111 114806 xmg xmg mgl mgl mgl xmg umg 0 16 2 2 0 0 0 flpmgl invmgl 0 0 0 0 0 glov item_gloveschain 12 item_gloveschain 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Battle Gauntlets 0 0 3 1 39 47 0 0 88 0 18 0 49 25 16913 161025 xtg xtg mgl mgl tgl xtg utg 0 16 2 2 0 0 0 flptgl invtgl 0 0 0 0 0 glov item_glovesmetal 12 item_glovesmetal 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +War Gauntlets 0 0 4 1 43 53 0 0 110 0 24 0 54 25 20900 223744 xhg xhg hgl hgl hgl xhg uhg 0 16 2 2 0 0 0 flphgl invhgl 0 0 0 0 0 glov item_glovesmetal 12 item_glovesmetal 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Demonhide Boots 0 0 1 1 28 35 0 0 20 0 12 0 36 24 9230 64102 xlb xlb lbt lbt lbt xlb ulb 0 16 2 2 0 0 0 flplbt invlbt 0 0 0 0 0 boot item_boots 12 item_boots 0 0 5 0 0 0 0 0 6 0 30 64 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Sharkskin Boots 0 0 1 1 33 39 0 0 47 0 14 0 39 25 11393 84859 xvb xvb vbt vbt vbt xvb uvb 0 16 2 2 0 0 0 flpvbt invvbt 0 0 0 0 0 boot item_boots 12 item_boots 0 0 5 0 0 0 0 0 6 0 32 72 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Mesh Boots 0 0 2 1 37 44 0 0 65 0 16 0 43 25 14103 114742 xmb xmb mbt mbt mbt xmb umb 0 16 2 2 0 0 0 flpmbt invmbt 0 0 0 0 0 boot item_bootschain 12 item_bootschain 0 0 5 0 0 0 0 0 6 0 35 78 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Battle Boots 0 0 3 1 39 47 0 0 95 0 18 0 49 25 16905 160950 xtb xtb mbt mbt tbt xtb utb 0 16 2 2 0 0 0 flptbt invtbt 0 0 0 0 0 boot item_bootsmetal 12 item_bootsmetal 0 0 5 0 0 0 0 0 6 0 42 84 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +War Boots 0 0 4 1 43 53 0 0 125 0 24 0 54 25 20885 223574 xhb xhb hbt hbt hbt xhb uhb 0 16 2 2 0 0 0 flphbt invhbt 0 0 0 0 0 boot item_bootsmetal 12 item_bootsmetal 0 0 5 0 0 0 0 0 6 0 45 90 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Demonhide Sash 0 0 1 1 29 34 0 0 20 0 12 0 36 24 9304 64486 zlb zlb lbl lbl lbl zlb ulc 0 16 2 1 0 0 0 flplbl invlbl 0 0 0 0 0 belt item_lightarmor 12 item_lightarmor 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Sharkskin Belt 0 0 1 1 31 36 0 0 20 0 14 0 39 25 10700 80809 zvb zvb vbl vbl vbl zvb uvc 0 16 2 1 0 0 0 flpvbl invvbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Mesh Belt 0 0 2 1 35 40 0 0 58 0 16 0 43 25 13143 108261 zmb zmb mbl mbl mbl zmb umc 0 16 2 1 0 0 0 flpmbl invmbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Battle Belt 0 0 2 1 37 42 0 0 88 0 18 0 49 25 15713 151185 ztb ztb mbl mbl tbl ztb utc 0 16 2 1 0 0 0 flptbl invtbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +War Belt 0 0 3 1 41 52 0 0 110 0 24 0 54 25 20350 218512 zhb zhb hbl hbl hbl zhb uhc 0 16 2 1 0 0 0 flphbl invhbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Grim Helm 0 0 2 1 60 125 0 0 58 0 40 0 50 25 37683 348947 xh9 xh9 bhm bhm bhm xh9 uh9 0 0 2 2 1 2 1 flpbhm invbhm invbhmu invbhmu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 2 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 7 8 0 xxx xxx 0 0 1 +Grim Shield 0 0 2 1 50 150 0 0 58 16 70 0 48 25 39143 337523 xsh xsh 319 bsh bsh bsh xsh ush 0 7 2 3 1 3 2 flpbsh invbsh invxshu invxshu 0 0 0 0 0 shie bshi item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 19 28 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Barbed Shield 0 0 3 1 58 78 0 0 65 15 55 0 42 25 23155 172324 xpk xpk 316 spk spk spk xpk upk 0 7 2 3 1 3 2 flpspk invspk invxpku invxpku 0 0 0 0 0 shie sshi item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 18 35 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Expansion 0 +Wolf Head 100 0 1 1 8 11 0 0 16 0 20 0 4 3 364 4868 dr1 dr1 dr1 dr1 dr1 dr6 drb 0 0 2 2 1 3 1 flpdr1 invdr1 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 8 0 xxx xxx 0 0 1 +Hawk Helm 100 0 1 1 4 15 0 0 20 0 20 0 8 6 664 7840 dr2 dr2 dr4 dr4 dr2 dr7 drc 0 0 2 2 1 3 1 flpdr4 invdr2 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 8 0 xxx xxx 0 0 1 +Antlers 100 0 1 1 18 24 0 0 24 0 20 0 16 12 2832 21852 dr3 dr3 dr3 dr3 dr3 dr8 drd 0 0 2 2 1 3 1 flpdr3 invdr3 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 8 0 xxx xxx 0 0 1 +Falcon Mask 100 0 1 1 12 28 0 0 28 0 20 0 20 15 3332 29200 dr4 dr4 dr4 dr4 dr4 dr9 dre 0 0 2 2 1 3 1 flpdr4 invdr4 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 8 0 xxx xxx 0 0 1 +Spirit Mask 100 0 1 1 22 35 0 0 30 0 20 0 24 18 5670 48550 dr5 dr5 dr1 dr1 dr5 dra drf 0 0 2 2 1 3 1 flpdr1 invdr5 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Jawbone Cap 100 0 2 1 10 15 0 0 25 0 25 0 4 3 320 4750 ba1 ba1 ba1 dr1 ba1 ba6 bab 0 0 2 2 1 3 1 flpba1 invba1 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 5 8 0 xxx xxx 0 0 1 +Fanged Helm 100 0 2 1 15 20 0 0 35 0 35 0 8 6 750 8250 ba2 ba2 ba1 bhm ba2 ba7 bac 0 0 2 2 1 3 1 flpba1 invba2 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 5 8 0 xxx xxx 0 0 1 +Horned Helm 100 0 2 1 25 30 0 0 45 0 45 0 16 12 2750 20750 ba3 ba3 ba3 bhm ba3 ba8 bad 0 0 2 2 1 3 1 flpba3 invba3 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 5 8 0 xxx xxx 0 0 1 +Assault Helmet 100 0 2 1 30 35 0 0 55 0 50 0 20 15 3420 29360 ba4 ba4 ba5 bhm ba4 ba9 bae 0 0 2 2 1 3 1 flpba5 invba4 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 5 8 0 xxx xxx 0 0 1 +Avenger Guard 100 0 2 1 35 50 0 0 65 0 55 0 24 18 5785 49280 ba5 ba5 ba5 bhm ba5 baa baf 0 0 2 2 1 3 1 flpba5 invba5 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 8 0 xxx xxx 0 0 1 +Targe 100 0 2 1 8 12 0 0 16 10 20 0 4 3 384 6317 pa1 pa1 304 pa1 spk pa1 pa6 pab 0 7 2 2 1 4 2 flppa1 invpa1 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 1 0 0 0 1 0 2 6 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 0 0 xxx xxx 0 0 1 +Rondache 100 0 2 1 10 18 0 0 26 15 30 0 8 6 982 10517 pa2 pa2 304 pa1 spk pa2 pa7 pac 0 7 2 2 1 4 2 flppa1 invpa2 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 2 0 0 0 1 0 3 9 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 0 0 xxx xxx 0 0 1 +Heraldic Shield 100 0 2 1 16 26 0 0 40 20 40 0 16 12 2816 21240 pa3 pa3 304 pa3 spk pa3 pa8 pad 0 7 2 4 1 4 2 flppa3 invpa3 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 3 0 0 0 1 0 4 12 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 0 0 xxx xxx 0 0 1 +Aerin Shield 100 0 2 1 26 36 0 0 50 22 50 0 20 15 5158 43557 pa4 pa4 304 pa3 spk pa4 pa9 pae 0 7 2 4 1 4 2 flppa3 invpa4 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 4 0 0 0 1 0 7 16 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 0 0 xxx xxx 0 0 1 +Crown Shield 100 0 2 1 30 40 0 0 65 25 60 0 24 18 6935 82075 pa5 pa5 304 pa5 spk pa5 paa paf 0 7 2 2 1 4 2 flppa5 invpa5 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 5 0 0 0 1 0 7 20 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Preserved Head 100 0 1 1 2 5 0 0 12 3 20 0 4 3 128 4628 ne1 ne1 305 ne1 dr1 ne1 ne6 neb 0 10 2 2 1 2 2 flpne1 invne1 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 2 0 xxx xxx 0 0 1 +Zombie Head 100 0 1 1 4 8 0 0 14 5 20 0 8 6 418 7336 ne2 ne2 305 ne2 bhm ne2 ne7 neg 0 10 2 2 1 2 2 flpne2 invne2 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 2 0 xxx xxx 0 0 1 +Unraveller Head 100 0 1 1 6 10 0 0 18 8 20 0 16 12 1070 14780 ne3 ne3 305 ne3 bhm ne3 ne8 ned 0 10 2 2 1 2 2 flpne3 invne3 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 2 0 xxx xxx 0 0 1 +Gargoyle Head 100 0 1 1 10 16 0 0 20 10 20 0 20 15 2164 23320 ne4 ne4 305 ne3 bhm ne4 ne9 nee 0 10 2 2 1 2 2 flpne3 invne4 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 8 2 0 xxx xxx 0 0 1 +Demon Head 100 0 1 1 15 20 0 0 25 12 20 0 24 18 3475 35350 ne5 ne5 305 ne2 bhm ne5 nea nef 0 10 2 2 1 2 2 flpne2 invne5 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Circlet 100 0 1 1 20 30 0 0 0 0 35 0 24 16 12000 85625 ci0 ci0 3 lit lit ci0 ci1 0 0 2 2 1 2 1 flpci0 invci0 0 0 0 0 0 circ item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 1 2 0 xxx xxx 0 0 1 +Coronet 100 0 1 1 30 40 0 0 0 0 30 0 52 39 23000 171250 ci1 ci1 8 lit lit ci1 ci2 ci3 0 0 2 2 1 2 1 flpci1 invci1 0 0 0 0 0 circ item_helm 12 item_helm 0 0 5 0 1 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 255 1 2 0 xxx xxx 0 0 1 +Tiara 100 0 1 1 40 50 0 0 0 0 25 0 70 52 35000 700000 ci2 ci2 13 lit lit ci1 ci2 ci3 0 0 2 2 1 3 1 flpci1 invci2 0 0 0 0 0 circ item_helm 12 item_helm 0 0 5 0 2 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1 2 0 xxx xxx 0 0 1 +Diadem 100 0 1 1 50 60 0 0 0 0 20 0 85 64 58000 1382500 ci3 ci3 18 lit lit ci1 ci2 ci3 0 0 2 2 1 3 1 flpci2 invci3 0 0 0 0 0 circ item_helm 12 item_helm 0 0 5 0 3 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1 2 0 xxx xxx 0 0 1 +Shako 100 0 1 1 98 141 0 0 50 0 12 0 58 43 56307 503591 uap uap cap cap cap xap uap 0 0 2 2 1 2 1 flpcap invcap 0 0 0 0 0 helm item_cap 12 item_cap 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Hydraskull 100 0 4 1 101 145 0 0 84 0 18 0 63 47 62739 568276 ukp ukp skp skp skp xkp ukp 0 0 2 2 1 2 1 flpskp invskp 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Armet 100 0 4 1 105 149 0 0 109 0 24 0 68 51 69940 671703 ulm ulm hlm hlm hlm xlm ulm 0 0 2 2 1 2 1 flphlm invhlm invhlmu invhlmu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 8 0 xxx xxx 0 0 1 +Giant Conch 100 0 4 1 110 154 0 0 142 0 30 0 54 40 57806 757863 uhl uhl fhl fhl fhl xhl uhl 0 0 2 2 1 2 1 flpfhl invfhl invfhlu invfhlu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Spired Helm 100 0 4 1 114 159 0 0 192 0 40 0 79 59 87168 920880 uhm uhm ghm ghm ghm xhm uhm 0 0 2 2 1 3 1 flpghm invghm invuhms 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 7 8 0 xxx xxx 0 0 1 +Corona 100 0 4 1 111 165 0 0 174 0 50 0 85 66 94770 1042170 urn urn crn crn crn xrn urn 0 0 2 2 1 3 1 flpcrn invcrn 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Demonhead 100 0 4 1 101 154 0 0 102 0 20 0 74 55 76578 799703 usk usk msk msk msk xsk usk 0 0 2 2 1 3 1 flpmsk invmsk 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1 2 0 xxx xxx 0 0 1 +Dusk Shroud 100 0 1 1 270 302 0 0 77 0 20 0 65 49 218357 1685148 uui uui qlt qlt qui xui uui 0 1 2 3 1 4 1 flpqlt invqlt 0 0 0 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Wyrmhide 100 0 2 1 287 322 0 0 84 0 24 0 67 50 226927 1785276 uea uea lea lea lea xea uea 0 1 2 3 1 4 1 flplea invlea 0 0 1 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Scarab Husk 100 0 3 1 309 349 0 0 95 0 28 0 68 51 232573 1891607 ula ula hla hla hla xla ula 0 1 2 3 1 4 1 flphla invhla 1 1 1 0 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Wire Fleece 100 0 4 1 343 391 0 0 111 0 32 0 70 53 243050 2059887 utu utu stu stu stu xtu utu 0 1 2 3 1 4 1 flpstu invstu 1 0 0 1 1 1 0 0 0 0 0 tors item_lightarmor 12 item_lightarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Diamond Mail 100 0 4 1 388 445 0 0 131 0 26 0 72 54 254435 2243423 ung ung rng rng rng xng ung 0 1 2 3 1 4 1 flprng invrng 0 0 1 1 1 1 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Loricated Mail 100 0 4 1 428 495 0 0 149 0 36 0 73 55 262166 2382039 ucl ucl scl scl scl xcl ucl 0 1 2 3 1 4 1 flpscl invscl 1 1 1 1 1 1 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Boneweave 100 0 4 1 419 489 0 0 158 0 45 0 62 47 227700 2536340 uhn uhn chn chn chn xhn uhn 0 1 2 3 1 4 1 flpchn invchn 1 1 1 1 2 2 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Great Hauberk 100 0 4 1 371 420 1 0 118 0 50 0 75 56 272206 2676189 urs urs brs brs brs xrs urs 0 1 2 3 1 4 1 flpbrs invbrs 0 0 2 0 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Balrog Skin 100 0 4 1 469 541 0 0 165 0 30 0 76 57 285351 2882894 upl upl spl spl spl xpl upl 0 1 2 3 1 4 1 flpspl invspl 1 1 2 1 1 1 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2 8 0 xxx xxx 0 0 1 +Hellforged Plate 100 0 4 1 536 625 0 0 196 0 60 0 78 59 300130 3197721 ult ult plt plt plt xlt ult 0 1 2 3 1 4 1 flpplt invplt 2 2 2 2 1 1 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Kraken Shell 100 0 4 1 501 576 2 0 174 0 48 0 81 61 308015 3411990 uld uld fld fld fld xld uld 0 1 2 3 1 4 1 flpfld invfld 1 1 2 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Lacquered Plate 100 0 4 1 573 664 0 0 208 0 55 0 82 62 323094 3803464 uth uth gth gth gth xth uth 0 1 2 3 1 4 1 flpgth invgth 2 2 1 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Shadow Plate 100 0 4 1 599 696 2 0 220 0 70 0 83 64 336644 4274953 uul uul ful ful ful xul uul 0 1 2 3 1 4 1 flpful invful 2 2 2 2 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Sacred Armor 100 0 4 1 633 730 5 0 232 0 60 0 85 66 373558 4872212 uar uar aar aar aar xar uar 0 1 2 3 1 4 1 flpaar invaar invaaru invaaru 1 2 2 2 2 0 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Archon Plate 100 0 4 1 364 407 1 0 103 0 60 0 84 63 317526 3851372 utp utp ltp ltp ltp xtp utp 0 1 2 3 1 4 1 flpltp invltp 2 0 1 1 2 2 0 0 0 0 0 tors item_platearmor 12 item_platearmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 7 8 0 xxx xxx 0 0 1 +Heater 100 0 2 1 95 110 0 0 77 22 88 0 58 43 48303 385227 uuc uuc buc buc buc xuc uuc 0 7 2 2 1 2 2 flpbuc invbuc invbucu invbucu 0 0 0 0 0 shie item_woodshield 12 item_woodshield 0 0 5 0 0 0 0 0 1 0 29 54 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Luna 100 0 3 1 108 123 0 0 100 20 84 0 61 45 57189 436543 uml uml buc buc sml xml uml 0 7 2 2 1 2 2 flpsml invsml invsmlu invsmlu 0 0 0 0 0 shie item_woodshield 12 item_woodshield 0 0 5 0 0 0 0 0 1 0 31 53 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 5 0 xxx xxx 0 0 1 +Hyperion 100 0 4 1 119 135 0 0 127 24 82 0 64 48 65914 514278 urg urg lrg lrg lrg xrg urg 0 7 2 3 1 3 2 flplrg invlrg invlrgu invlrgu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 26 59 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Monarch 100 0 4 1 133 148 0 0 156 22 86 0 72 54 81896 576154 uit uit kit kit kit xit uit 0 7 2 3 1 4 2 flpkit invkit invkitu invkitu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 22 63 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Aegis 100 0 4 1 215 241 1 0 219 46 92 0 79 59 97701 693568 uow uow tow tow tow xow uow 0 7 2 3 1 4 2 flptow invtow invtowu invtowu 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 37 57 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Ward 100 0 4 1 183 207 0 0 185 32 100 0 84 63 109635 856602 uts uts kit kit gts xts uts 0 7 2 4 1 4 2 flpgts invgts invgtsu invutss 0 0 0 0 0 shie item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 21 68 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Bramble Mitts 100 0 1 1 54 62 0 0 50 0 12 0 57 42 26920 269938 ulg ulg lgl lgl lgl xlg ulg 0 16 2 2 0 0 0 flplgl invlgl 0 0 0 0 0 glov item_gloves 12 item_gloves 0 0 5 0 0 0 0 0 5 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Vampirebone Gloves 100 0 1 1 56 65 0 0 50 0 14 0 63 47 30862 306103 uvg uvg vgl vgl vgl xvg uvg 0 16 2 2 0 0 0 flpvgl invvgl 0 0 0 0 0 glov item_gloves 12 item_gloves 0 0 5 0 0 0 0 0 5 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Vambraces 100 0 2 1 59 67 0 0 106 0 16 0 69 51 34964 352152 umg umg mgl mgl mgl xmg umg 0 16 2 2 0 0 0 flpmgl invmgl 0 0 0 0 0 glov item_gloveschain 12 item_gloveschain 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Crusader Gauntlets 100 0 3 1 59 68 0 0 151 0 18 0 76 57 39119 420620 utg utg mgl mgl tgl xtg utg 0 16 2 2 0 0 0 flptgl invtgl 0 0 0 0 0 glov item_glovesmetal 12 item_glovesmetal 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Ogre Gauntlets 100 0 4 1 62 71 0 0 185 0 24 0 85 64 45481 498191 uhg uhg hgl hgl hgl xhg uhg 0 16 2 2 0 0 0 flphgl invhgl 0 0 0 0 0 glov item_glovesmetal 12 item_glovesmetal 0 0 5 0 0 0 0 0 5 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Wyrmhide Boots 100 0 1 1 54 62 0 0 50 0 12 0 60 45 28315 269938 ulb ulb lbt lbt lbt xlb ulb 0 16 2 2 0 0 0 flplbt invlbt 0 0 0 0 0 boot item_boots 12 item_boots 0 0 5 0 0 0 0 0 6 0 75 100 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Scarabshell Boots 100 0 1 1 56 65 0 0 91 0 14 0 66 49 32271 305620 uvb uvb vbt vbt vbt xvb uvb 0 16 2 2 0 0 0 flpvbt invvbt 0 0 0 0 0 boot item_boots 12 item_boots 0 0 5 0 0 0 0 0 6 0 70 110 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Boneweave Boots 100 0 2 1 59 67 0 0 118 0 16 0 72 54 36456 352010 umb umb mbt mbt mbt xmb umb 0 16 2 2 0 0 0 flpmbt invmbt 0 0 0 0 0 boot item_bootschain 12 item_bootschain 0 0 5 0 0 0 0 0 6 0 80 125 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Mirrored Boots 100 0 3 1 59 68 0 0 163 0 18 0 81 60 41658 420465 utb utb mbt mbt tbt xtb utb 0 16 2 2 0 0 0 flptbt invtbt 0 0 0 0 0 boot item_bootsmetal 12 item_bootsmetal 0 0 5 0 0 0 0 0 6 0 69 147 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Myrmidon Greaves 100 0 4 1 62 71 0 0 208 0 24 0 85 65 45459 497859 uhb uhb hbt hbt hbt xhb uhb 0 16 2 2 0 0 0 flphbt invhbt 0 0 0 0 0 boot item_bootsmetal 12 item_bootsmetal 0 0 5 0 0 0 0 0 6 0 83 155 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Spiderweb Sash 100 0 1 1 55 62 0 0 50 0 12 0 61 46 28842 270466 ulc ulc lbl lbl lbl zlb ulc 0 16 2 1 0 0 0 flplbl invlbl 0 0 0 0 0 belt item_lightarmor 12 item_lightarmor 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Vampirefang Belt 100 0 1 1 56 63 0 0 50 0 14 0 68 51 32656 300879 uvc uvc vbl vbl vbl zvb uvc 0 16 2 1 0 0 0 flpvbl invvbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Mithril Coil 100 0 2 1 58 65 0 0 106 0 16 0 75 56 37134 345000 umc umc mbl mbl mbl zmb umc 0 16 2 1 0 0 0 flpmbl invmbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Troll Belt 100 0 2 1 59 66 0 0 151 0 18 0 82 62 41183 411380 utc utc mbl mbl tbl ztb utc 0 16 2 1 0 0 0 flptbl invtbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Colossus Girdle 100 0 3 1 61 71 0 0 185 0 24 0 85 67 45051 493775 uhc uhc hbl hbl hbl zhb uhc 0 16 2 1 0 0 0 flphbl invhbl 0 0 0 0 0 belt item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 +Bone Visage 100 0 2 1 100 157 0 0 106 0 40 0 84 63 87274 598161 uh9 uh9 bhm bhm bhm xh9 uh9 0 0 2 2 1 3 1 flpbhm invbhm invbhmu invbhmu 0 0 0 0 0 helm item_helm 12 item_helm 0 0 5 0 2 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 7 8 0 xxx xxx 0 0 1 +Troll Nest 100 0 2 1 158 173 0 0 106 17 74 0 76 57 101842 586580 ush ush 320 bsh bsh bsh xsh ush 0 7 2 3 1 3 2 flpbsh invbsh invbshu invbshu 0 0 0 0 0 shie bshi item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 35 55 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Blade Barrier 100 0 3 1 147 163 0 0 118 18 83 0 68 51 85443 413914 upk upk 317 spk spk spk xpk upk 0 7 2 3 1 3 2 flpspk invspk invspku invspku 0 0 0 0 0 shie sshi item_metalshield 12 item_metalshield 0 0 5 0 0 0 0 0 1 0 40 60 100 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Alpha Helm 100 0 1 1 52 62 0 0 44 0 20 0 35 26 16300 82061 dr6 dr6 dr1 dr1 dr1 dr6 drb 0 0 2 2 1 3 1 flpdr1 invdr1 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 8 8 0 xxx xxx 0 0 1 +Griffon Headress 100 0 1 1 46 68 0 0 50 0 20 0 40 30 18564 82062 dr7 dr7 dr4 dr4 dr2 dr7 drc 0 0 2 2 1 3 1 flpdr4 invdr2 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 8 8 0 xxx xxx 0 0 1 +Hunter's Guise 100 0 1 1 67 81 0 0 56 0 20 0 46 29 27768 82063 dr8 dr8 dr3 dr3 dr3 dr8 drd 0 0 2 2 1 3 1 flpdr3 invdr3 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Sacred Feathers 100 0 1 1 58 87 0 0 62 0 20 0 50 32 29518 82064 dr9 dr9 dr4 dr4 dr4 dr9 dre 0 0 2 2 1 3 1 flpdr4 invdr4 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Totemic Mask 100 0 1 1 73 98 0 0 65 0 20 0 55 41 38127 82065 dra dra dr1 dr1 dr5 dra drf 0 0 2 2 1 3 1 flpdr1 invdr5 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Jawbone Visor 100 0 2 1 55 68 0 0 58 0 25 0 33 25 16603 82061 ba6 ba6 ba1 dr1 ba1 ba6 bab 0 0 2 2 1 3 1 flpba1 invba1 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 5 0 0 xxx xxx 0 0 1 +Lion Helm 100 0 2 1 63 75 0 0 73 0 35 0 38 29 21378 82062 ba7 ba7 ba1 bhm ba2 ba7 bac 0 0 2 2 1 3 1 flpba1 invba2 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 5 0 0 xxx xxx 0 0 1 +Rage Mask 100 0 2 1 78 90 0 0 88 0 45 0 44 29 30063 82063 ba8 ba8 ba3 bhm ba3 ba8 bad 0 0 2 2 1 3 1 flpba3 invba3 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Savage Helmet 100 0 2 1 85 98 0 0 103 0 50 0 49 32 36398 82064 ba9 ba9 ba5 bhm ba4 ba9 bae 0 0 2 2 1 3 1 flpba5 invba4 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Slayer Guard 100 0 2 1 93 120 0 0 118 0 55 0 54 40 46633 82065 baa baa ba5 bhm ba5 baa baf 0 0 2 2 1 3 1 flpba5 invba5 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Akaran Targe 100 0 2 1 101 125 0 0 44 10 20 0 35 26 32500 82065 pa6 pa6 304 pa1 spk pa1 pa6 pab 0 7 2 2 1 4 2 flppa1 invpa1 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 1 0 0 0 1 0 13 17 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 8 0 0 xxx xxx 0 0 1 +Akaran Rondache 100 0 2 1 113 137 0 0 59 15 30 0 40 30 40941 82066 pa7 pa7 304 pa1 spk pa2 pa7 pac 0 7 2 2 1 4 2 flppa1 invpa2 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 2 0 0 0 1 0 17 22 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 8 0 0 xxx xxx 0 0 1 +Protector Shield 100 0 2 1 129 153 0 0 69 20 40 0 46 34 52947 82067 pa8 pa8 304 pa3 spk pa3 pa8 pad 0 7 2 4 1 4 2 flppa3 invpa3 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 3 0 0 0 1 0 20 26 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Guilded Shield 100 0 2 1 144 168 0 0 89 22 50 0 51 38 64807 82068 pa9 pa9 304 pa3 spk pa4 pa9 pae 0 7 2 4 1 4 2 flppa3 invpa4 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 4 0 0 0 1 0 21 30 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Royal Shield 100 0 2 1 156 181 0 0 114 23 60 0 55 41 75374 82069 paa paa 304 pa5 spk pa5 paa paf 0 7 2 2 1 4 2 flppa5 invpa5 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 5 0 0 0 1 0 25 34 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Mummified Trophy 100 0 1 1 38 48 0 0 38 3 20 0 33 24 11590 82069 ne6 ne6 305 ne1 dr1 ne1 ne6 neb 0 10 2 2 1 3 2 flpne1 invne1 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 8 2 0 xxx xxx 0 0 1 +Fetish Trophy 100 0 1 1 41 52 0 0 41 5 20 0 39 29 14839 82070 ne7 ne7 305 ne2 bhm ne2 ne7 neg 0 10 2 2 1 3 2 flpne2 invne2 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 20 8 2 0 xxx xxx 0 0 1 +Sexton Trophy 100 0 1 1 44 55 0 0 47 8 20 0 45 33 18169 82071 ne8 ne8 305 ne3 bhm ne3 ne8 ned 0 10 2 2 1 3 2 flpne3 invne3 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Cantor Trophy 100 0 1 1 50 64 0 0 50 10 20 0 49 36 22750 82072 ne9 ne9 305 ne3 bhm ne4 ne9 nee 0 10 2 2 1 3 2 flpne3 invne4 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Heirophant Trophy 100 0 1 1 58 70 0 0 58 12 20 0 54 40 27993 82073 nea nea 305 ne2 bhm ne5 nea nef 0 10 2 2 1 3 2 flpne2 invne5 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Blood Spirt 100 0 1 1 101 145 0 0 86 0 20 0 62 46 61755 413914 drb drb dr1 dr1 dr1 dr6 drb 0 0 2 2 1 3 1 flpdr1 invdr1 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Sun Spirit 100 0 1 1 98 147 0 0 95 0 20 0 69 51 68617 413915 drc drc dr4 dr4 dr2 dr7 drc 0 0 2 2 1 3 1 flpdr4 invdr2 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Earth Spirit 100 0 1 1 107 152 0 0 104 0 20 0 76 57 79730 413916 drd drd dr3 dr3 dr3 dr8 drd 0 0 2 2 1 3 1 flpdr3 invdr3 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Sky Spirit 100 0 1 1 103 155 0 0 113 0 20 0 83 62 86575 413917 dre dre dr4 dr4 dr4 dr9 dre 0 0 2 2 1 3 1 flpdr4 invdr4 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Dream Spirit 100 0 1 1 109 159 0 0 118 0 20 0 85 66 92143 413918 drf drf dr1 dr1 dr5 dra drf 0 0 2 2 1 3 1 flpdr1 invdr5 0 0 0 0 0 pelt item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Carnage Helm 100 0 2 1 102 147 0 0 106 0 25 0 60 45 60650 413918 bab bab ba1 dr1 ba1 ba6 bab 0 0 2 2 1 3 1 flpba1 invba1 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Fury Visor 100 0 2 1 105 150 0 0 129 0 35 0 66 49 68211 413919 bac bac ba1 bhm ba2 ba7 bac 0 0 2 2 1 3 1 flpba1 invba2 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Destroyer Helm 100 0 2 1 111 156 0 0 151 0 45 0 73 54 78881 413920 bad bad ba3 bhm ba3 ba8 bad 0 0 2 2 1 3 1 flpba3 invba3 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Conquerer Crown 100 0 2 1 114 159 0 0 174 0 50 0 80 60 88278 413921 bae bae ba5 bhm ba4 ba9 bae 0 0 2 2 1 3 1 flpba5 invba4 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Guardian Crown 100 0 2 1 117 168 0 0 196 0 55 0 85 65 97844 413922 baf baf ba5 bhm ba5 baa baf 0 0 2 2 1 3 1 flpba5 invba5 0 0 0 0 0 phlm item_helm 12 item_helm 0 0 5 0 0 0 0 0 3 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 5 0 0 xxx xxx 0 0 1 +Sacred Targe 100 0 2 1 109 136 0 0 86 25 45 0 63 47 72618 82065 pab pab 304 pa1 spk pa1 pa6 pab 0 7 2 2 1 4 2 flppa1 invpa1 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 1 0 0 0 1 0 22 70 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Sacred Rondache 100 0 2 1 130 155 0 0 109 27 68 0 70 52 85659 82066 pac pac 304 pa1 spk pa2 pa7 pac 0 7 2 2 1 4 2 flppa1 invpa2 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 2 0 0 0 1 0 35 58 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Ancient Shield 100 0 2 1 166 185 0 0 124 29 55 0 74 55 97676 82067 pad pad 304 pa3 spk pa3 pa8 pad 0 7 2 4 1 4 2 flppa3 invpa3 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 3 0 0 0 1 0 10 82 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Zakarum Shield 100 0 2 1 185 214 0 0 142 31 65 0 82 61 120042 82068 pae pae 304 pa3 spk pa4 pa9 pae 0 7 2 4 1 4 2 flppa3 invpa4 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 4 0 0 0 1 0 46 46 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Vortex Shield 100 0 2 1 205 243 0 0 148 32 90 0 85 66 139860 82069 paf paf 304 pa5 spk pa5 paa paf 0 7 2 2 1 4 2 flppa5 invpa5 0 0 0 0 0 ashd item_metalshield 12 item_metalshield 0 0 5 0 5 0 0 0 1 0 5 87 100 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 0 0 xxx xxx 0 0 1 +Minion Skull 100 0 1 1 95 139 0 0 77 3 20 0 59 44 56131 82069 neb neb 305 ne1 dr1 ne1 ne6 neb 0 10 2 2 1 3 2 flpne1 invne1 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Hellspawn Skull 100 0 1 1 96 141 0 0 82 5 20 0 67 50 64437 82070 neg neg 305 ne2 bhm ne2 ne7 neg 0 10 2 2 1 3 2 flpne2 invne2 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Overseer Skull 100 0 1 1 98 142 0 0 91 8 20 0 66 49 64122 82071 ned ned 305 ne3 bhm ne3 ne8 ned 0 10 2 2 1 3 2 flpne3 invne3 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Succubae Skull 100 0 1 1 100 146 0 0 95 10 20 0 81 60 80462 82072 nee nee 305 ne3 bhm ne4 ne9 nee 0 10 2 2 1 3 2 flpne3 invne4 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Bloodlord Skull 100 0 1 1 103 148 0 0 106 12 20 0 85 65 86238 82073 nef nef 305 ne2 bhm ne5 nea nef 0 10 2 2 1 3 2 flpne2 invne5 0 0 0 0 0 head item_head 12 item_head 0 0 5 0 0 0 0 0 3 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 2 0 xxx xxx 0 0 1 +Boneweave [S] 100 0 0 0 399 505 0 0 158 0 45 0 62 47 227700 2536340 rar uhn chn chn rxx rxx rar 0 1 2 3 1 6 1 flpchn invchn 1 1 1 1 2 2 0 0 0 0 0 tors item_chainarmor 12 item_chainarmor 0 0 5 0 0 0 0 0 2 0 0 0 0 3 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 8 8 0 xxx xxx 0 0 1 +Troll Belt [S] 100 0 0 0 59 66 0 0 151 0 18 0 82 62 41183 411380 rbe utc mbl mbl rxx rxx rbe 0 16 2 1 1 1 1 flptbl invtbl 0 0 0 0 0 bels item_belt 12 item_belt 0 0 5 0 0 6 0 0 4 0 0 0 0 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 8 0 xxx xxx 0 0 1 diff --git a/api/src/game-data/pd2/season-13/Missiles.txt b/api/src/game-data/pd2/season-13/Missiles.txt new file mode 100644 index 0000000..5bb9fcb --- /dev/null +++ b/api/src/game-data/pd2/season-13/Missiles.txt @@ -0,0 +1,1058 @@ +Missile Id pCltDoFunc pCltHitFunc pSrvDoFunc pSrvHitFunc pSrvDmgFunc SrvCalc1 *srv calc 1 desc Param1 *param1 desc Param2 *param2 desc Param3 *param3 desc Param4 *param4 desc Param5 *param5 desc CltCalc1 *client calc 1 desc CltParam1 *client param1 desc CltParam2 *client param2 desc CltParam3 *client param3 desc CltParam4 *client param4 desc CltParam5 *client param5 desc SHitCalc1 *server hit calc 1 desc sHitPar1 *server hit param1 desc sHitPar2 *server hit param2 desc sHitPar3 *server hit param3 desc CHitCalc1 *client hit calc1 desc cHitPar1 *client hit param1 desc cHitPar2 *client hit param2 desc cHitPar3 *client hit param3 desc DmgCalc1 *damage calc 1 dParam1 *damage param1 desc dParam2 *damage param2 desc Vel MaxVel VelLev Accel Range LevRange Light Flicker Red Green Blue InitSteps Activate LoopAnim CelFile animrate AnimLen AnimSpeed RandStart SubLoop SubStart SubStop CollideType CollideKill CollideFriend LastCollide Collision ClientCol ClientSend NextHit NextDelay xoffset yoffset zoffset Size SrcTown CltSrcTown CanDestroy ToHit AlwaysExplode Explosion Town NoUniqueMod NoMultiShot Holy CanSlow ReturnFire GetHit SoftHit KnockBack Trans Qty Pierce SpecialSetup MissileSkill Skill ResultFlags HitFlags HitShift ApplyMastery SrcDamage Half2HSrc SrcMissDmg MinDamage MinLevDam1 MinLevDam2 MinLevDam3 MinLevDam4 MinLevDam5 MaxDamage MaxLevDam1 MaxLevDam2 MaxLevDam3 MaxLevDam4 MaxLevDam5 DmgSymPerCalc EType EMin MinELev1 MinELev2 MinELev3 MinELev4 MinELev5 Emax MaxELev1 MaxELev2 MaxELev3 MaxELev4 MaxELev5 EDmgSymPerCalc ELen ELevLen1 ELevLen2 ELevLen3 HitClass NumDirections LocalBlood DamageRate TravelSound HitSound ProgSound ProgOverlay ExplosionMissile SubMissile1 SubMissile2 SubMissile3 HitSubMissile1 HitSubMissile2 HitSubMissile3 HitSubMissile4 CltSubMissile1 CltSubMissile2 CltSubMissile3 CltHitSubMissile1 CltHitSubMissile2 CltHitSubMissile3 CltHitSubMissile4 EOL +arrow 0 1 1 24 24 40 255 255 255 1 0 0 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +javelin 1 1 1 24 24 40 255 255 255 0 0 0 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +bighead1 2 1 1 8 8 40 5 143 143 255 3 0 1 BigheadLightningMissile 1024 3 16 3 1 1 1 1 1 1 1 1 4 8 128 ltng 1 monster_fireball sorceress_firebolt_impact_1 bigheadexp 0 +bighead2 3 1 1 12 12 40 5 143 143 255 3 0 1 BigheadLightningMissile 1024 3 16 3 1 1 1 1 1 1 1 1 4 8 128 ltng 1 monster_fireball sorceress_firebolt_impact_1 bigheadexp 0 +bighead3 4 1 1 14 14 40 5 143 143 255 3 0 1 BigheadLightningMissile 1024 3 16 3 1 1 1 1 1 1 1 1 4 8 128 ltng 1 monster_fireball sorceress_firebolt_impact_1 bigheadexp 0 +bighead4 5 1 1 10 10 40 5 143 143 255 3 0 1 BigheadLightningMissile 1024 3 16 3 1 1 1 1 1 1 1 1 4 8 128 ltng 1 monster_fireball sorceress_firebolt_impact_1 bigheadexp 0 +bighead5 6 1 1 16 16 40 5 143 143 255 3 0 1 BigheadLightningMissile 1024 3 16 3 1 1 1 1 1 1 1 1 4 8 128 ltng 1 monster_fireball sorceress_firebolt_impact_1 bigheadexp 0 +spike1 7 1 1 10 10 8 40 255 255 255 1 0 1 SpikeFiendMissle 1024 2 16 3 1 1 1 1 1 1 1 1 4 8 128 1 3 3 3 3 3 2 3 3 3 3 3 10 32 0 +spike2 8 1 1 13 13 7 40 255 255 255 1 0 1 SpikeFiendMissle 1024 2 16 3 1 1 1 1 1 1 1 1 4 8 128 1 3 3 3 3 3 3 3 3 3 3 3 10 32 0 +spike3 9 1 1 16 16 6 40 255 255 255 1 0 1 SpikeFiendMissle 1024 2 16 3 1 1 1 1 1 1 1 1 4 8 128 1 3 3 3 3 3 4 3 3 3 3 3 10 32 0 +spike4 10 1 1 20 20 4 40 255 255 255 1 0 1 SpikeFiendMissle 1024 2 16 3 1 1 1 1 1 1 1 1 4 8 128 1 4 4 4 4 4 4 4 4 4 4 4 10 32 0 +spike5 11 1 1 24 24 40 255 255 255 1 0 1 SpikeFiendMissle 1024 2 16 3 1 1 1 1 1 1 1 1 4 8 128 2 5 5 5 5 5 7 5 5 5 5 5 10 32 0 +firearrow 12 1 1 1 63 1 2 explosions radius 0 explosions density dl12 convert to elemental% 50 base conversion 0 conversion/lvl 30 30 15 5 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 2 1 1 1 1 1 1 1 1 1 Fire Arrow 4 fire 32 amazon_firearrow_1 firearrow firewall firearrow firewall firearrow firewall immolationarrow firewall 0 +cr_arrow1 13 1 1 14 14 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +cr_arrow2 14 1 1 16 16 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +cr_arrow3 15 1 1 18 18 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +cr_arrow4 16 1 1 20 20 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +cr_arrow5 17 1 1 24 24 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +blood1 18 2 3 3 128 255 255 255 0 0 0 BloodSmall01 1024 9 16 1 1 1 1 1 8 8 1 0 +blood2 19 2 4 4 128 255 255 255 0 0 0 BloodSmall02 1024 9 16 1 1 1 1 1 8 8 1 0 +bigblood1 20 2 3 3 128 255 255 255 0 0 0 BloodLarge01 1024 9 16 1 1 1 1 1 8 8 1 0 +bigblood2 21 2 4 4 128 255 255 255 0 0 0 BloodLarge02 1024 9 16 1 1 1 1 1 8 8 1 0 +shafire1 22 1 1 8 8 40 5 255 178 64 1 0 1 ShamanFireball 1024 3 16 3 1 1 1 1 1 1 1 1 1 4 8 fire 1 10 10 10 10 10 4 10 10 10 10 10 16 monster_fireball sorceress_firebolt_impact_1 shamanexp 0 +shafire2 23 1 1 10 10 40 5 255 178 64 1 0 1 ShamanFireball 1024 3 16 3 1 1 1 1 1 1 1 1 1 4 8 fire 2 10 10 10 10 10 6 10 10 10 10 10 16 monster_fireball sorceress_firebolt_impact_1 shamanexp 0 +shafire3 24 1 1 12 12 40 5 255 178 64 1 0 1 ShamanFireball 1024 3 16 3 1 1 1 1 1 1 1 1 1 4 8 fire 2 10 10 10 10 10 7 10 10 10 10 10 16 monster_fireball sorceress_firebolt_impact_1 shamanexp 0 +shafire4 25 1 1 16 16 40 5 255 178 64 1 0 1 ShamanFireball 1024 3 16 3 1 1 1 1 1 1 1 1 1 4 8 fire 2 10 10 10 10 10 8 10 10 10 10 10 16 monster_fireball sorceress_firebolt_impact_1 shamanexp 0 +shafire5 26 1 1 20 20 40 5 255 178 64 1 0 1 ShamanFireball 1024 3 16 3 1 1 1 1 1 1 1 1 1 4 8 fire 8 5 5 5 5 5 14 5 5 5 5 5 16 monster_fireball sorceress_firebolt_impact_1 shamanexp 0 +magicarrow 27 1 1 1 dl12 convert to elemental% 50 base conversion 0 conversion/lvl 24 24 25 3 255 255 255 1 0 1 SafeArrow 1024 1 16 3 1 1 1 4 2 1 1 1 1 1 Magic Arrow 4 mag 10 32 amazon_magicarrow_1 teethexplode 0 +icearrow 28 1 1 2 100 convert cold len to freeze 40 40 12 5 81 81 255 1 0 1 IceArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 1 Ice Arrow 4 32 amazon_coldarrow_1 impact_cold_1 iceexplode 0 +fireexplode 29 1 12 13 255 178 64 0 0 0 FireArrowExplode2 1024 12 16 5 1 1 1 1 1 1 1 4 8 1 0 +iceexplode 30 1 16 11 81 81 255 0 0 0 IceArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 0 +bolt 31 1 1 24 24 50 255 255 255 1 0 0 XBowBolt 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_xbow_1 0 +andarielspray 32 1 1 193 103 15 15 40 255 255 255 3 0 1 AndarielSpell 1024 24 16 3 1 1 1 1 1 1 1 1 1 4 1792 1280 1280 1280 1280 1280 2560 1280 1280 1280 1280 1280 pois 32 32 32 32 32 32 64 32 32 32 32 32 400 10 10 10 1 andariel_cast_large 0 +bigheadexp 33 1 6 8 143 143 255 0 0 0 BigheadLightningExplosion 1024 7 16 1 1 1 1 1 1 1 4 8 1 0 +shamanexp 34 1 11 8 255 178 64 0 0 0 ShamanFireballExplodeFinal 1024 12 16 1 1 1 1 1 1 1 4 8 1 0 +throwaxe 35 1 1 30 30 40 255 255 255 1 0 1 MissileHandAxe 1024 8 16 3 1 1 1 1 1 1 1 1 1 4 8 128 2 32 weapon_throw_1 0 +throwknife 36 1 1 30 30 40 255 255 255 1 0 0 MissileDagger 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +glaive 37 1 1 24 24 40 255 255 255 0 0 0 Glaive 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +poisonjav 38 3 2 0 #subloops 0 #subloops 30 30 22 128 255 128 0 0 0 Javelin 1024 1 16 3 1 1 1 2 1 1 1 1 1 1 Poison Javelin 4 6 32 weapon_throw_1 poisonjavcloud poisonjavcloud 0 +poisonjavcloud 39 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 2 1 1 Poison Javelin -1 8 object_poison_loop poisonpuff 0 +coldarrow 40 1 1 1 dl12 convert to elemental% 50 base conversion 0 conversion/lvl 22 22 23 5 81 81 255 1 0 1 IceArrow 1024 8 16 3 1 1 1 1 2 1 1 1 1 1 1 1 1 1 Cold Arrow 4 cold 32 amazon_coldarrow_1 impact_cold_1 iceexplode 0 +explodingarrow 41 1 1 1 63 2 explosions radius 0 explosions density 24 24 30 5 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 2 1 1 1 1 1 1 1 Exploding Arrow 128 fire 32 amazon_firearrow_1 explodingarrowexp explodingarrowexp2 fireexplosion3 0 +explodingarrowexp 42 1 16 15 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 1 explosion_medium_1 0 +plaguejavelin 43 3 2 2 2 1 ring 2 density 2 ring 1 density 3 subloops 1 ring 2 density 2 ring 1 density 3 subloops 30 30 17 4 128 255 128 0 0 0 Javelin 1024 1 16 3 1 1 1 3 1 1 1 1 1 1 1 Plague Javelin 4 6 32 weapon_throw_1 explosion_large_1 plaguejavcloud plaguejavcloud plaguejavcloud plaguejavcloud 0 +oilpotion 44 1 3 1 3 2 damage radius 16 16 30 255 128 128 0 0 0 mslops 1024 8 16 6 1 1 1 1 1 1 1 1 1 5 2 8 2 7 fire 3 8 1 weapon_throw_1 explosion_small_1 fireexplode 0 +explosivepotion 45 1 3 1 3 3 damage radius 16 16 30 255 128 128 0 0 0 mslopm 1024 8 16 6 1 1 1 1 1 1 1 1 1 5 2 8 8 12 fire 8 18 1 weapon_throw_1 explosion_medium_1 explodingarrowexp 0 +fulminatingpotion 46 1 3 1 3 6 damage radius 16 16 30 255 128 128 0 0 0 mslopl 1024 8 16 6 1 1 1 1 1 1 1 1 1 5 2 8 13 30 fire 13 34 1 weapon_throw_1 explosion_large_1 explosivepotionexp explosivepotiondebris1 explosivepotiondebris3 0 +rancidgasepotion 47 1 2 1 2 30 Poison Length 0 ring 2 density 2 ring 1 density 3 subloops 0 ring 2 density 2 ring 1 density 3 subloops 16 16 30 128 255 128 0 0 0 mslgps 1024 8 16 6 1 1 1 1 1 1 1 1 1 4 8 pois 38 38 50 1 weapon_throw_1 explosion_medium_1 rancidgascloud rancidgascloud 0 +chokinggaspoition 48 1 2 1 2 60 Poison Length 2 ring 2 density 2 ring 1 density 3 subloops 2 ring 2 density 2 ring 1 density 3 subloops 16 16 30 128 255 128 0 0 0 mslgpm 1024 8 16 6 1 1 1 1 1 1 1 1 1 4 8 pois 144 144 50 1 weapon_throw_1 explosion_medium_1 chokinggascloud chokinggascloud 0 +stranglinggaspotion 49 1 2 1 2 90 Poison Length 1 ring 2 density 2 ring 1 density 3 subloops 1 ring 2 density 2 ring 1 density 3 subloops 16 16 30 128 255 128 0 0 0 mslgpl 1024 8 16 6 1 1 1 1 1 1 1 1 1 4 8 pois 192 192 50 1 weapon_throw_1 explosion_medium_1 stranglinggascloud stranglinggascloud 0 +notused50 50 1 0 acid (destroys AC or dur) 255 255 255 0 0 0 null 1024 2 16 3 1 1 1 1 1 1 1 4 1 weapon_throw_1 explosion_medium_1 0 +explosivepotionexp 51 1 2 12 13 255 178 64 0 0 0 PotionExplode 1024 29 16 1 1 1 1 1 1 4 8 1 0 +explosivepotiondebris1 52 1 255 255 255 0 0 0 PotionExplodeDebris01 1024 29 16 1 1 1 1 1 4 8 1 0 +explosivepotiondebris2 53 1 255 255 255 0 0 0 PotionExplodeDebris02 1024 29 16 1 1 1 1 1 4 8 1 0 +explosivepotiondebris3 54 1 255 255 255 0 0 0 PotionExplodeDebris03 1024 29 16 1 1 1 1 1 4 8 1 0 +holybolt 55 1 9 1 7 1 heals allies? 0 "0 = all, 1 = undead, 2 = demons" 1 heals allies? 0 "0 = all, 1 = undead, 2 = demons" 20 20 30 7 222 222 255 1 0 1 HolyBoltMissile 1024 16 16 3 1 1 1 3 2 1 1 1 1 Holy Bolt 4 1 paladin_holybolt_1 paladin_holybolt_impact_1 healing teethexplode 0 +chargedbolt 56 1 10 1 12 45 2 40 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 Charged Bolt 4 64 16 sorceress_chargedbolt_1 lightning 0 +sanctuarybolt 57 1 1 14 222 222 255 0 0 1 Gleam 1024 8 16 1 1 1 1 0 +firebolt 58 1 1 62 3 AOE radius 20 20 30 7 255 178 64 1 0 1 Firebolt 1024 5 16 3 1 1 1 1 1 1 1 1 Fire Bolt 4 16 sorceress_firebolt_1 sorceress_firebolt_impact_1 fireexplode 0 +icebolt 59 1 1 62 3 AOE radius 18 18 30 7 81 81 255 1 0 1 Icebolt 1024 6 16 3 1 1 1 1 1 1 1 1 Ice Bolt 4 16 sorceress_icebolt_1 impact_cold_1 iceexplode 0 +infernoflame1 60 1 1 8 "Mana Use, 16ths." 7 Minimum range 20 20 30 5 255 178 64 1 0 0 Flamethrower 1024 15 16 3 1 1 1 1 1 Inferno 4 32 1 82 sorceress_inferno 0 +infernoflame2 61 1 1 8 "Mana Use, 16ths." 7 Minimum range 20 20 30 5 255 178 64 1 0 0 Flamethrower2 1024 15 16 3 1 1 1 1 1 Inferno 4 32 1 82 sorceress_inferno 0 +fireball 62 1 1 1 1 5 damage radius 4 explosions radius 1 explosions density 20 20 50 7 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 1 1 1 1 1 Fire Ball 5 2 fire 16 sorceress_fireball_1 sorceress_fireball_impact_1 explodingarrowexp fireexplosion2 0 +mummy1 63 1 1 5 5 24 255 255 255 0 0 0 GreaterMummyBreath 1024 24 16 3 1 1 2 1 1 1 4 1 pois 9 4 4 4 4 4 9 4 4 4 4 4 100 8 0 +mummy2 64 1 1 5 5 24 255 255 255 0 0 0 GreaterMummyBreath 1024 24 16 3 1 1 2 1 1 1 4 1 pois 9 4 4 4 4 4 9 4 4 4 4 4 200 8 0 +mummy3 65 1 1 5 5 24 255 255 255 0 0 0 GreaterMummyBreath 1024 24 16 3 1 1 2 1 1 1 4 1 pois 9 5 5 5 5 5 9 5 5 5 5 5 300 8 0 +mummy4 66 1 1 5 5 24 255 255 255 0 0 0 GreaterMummyBreath 1024 24 16 3 1 1 2 1 1 1 4 1 pois 9 5 5 5 5 5 9 5 5 5 5 5 400 8 0 +blaze 67 5 5 8 3 19 softhit chance (128) 19 hit sound chance (128) 90 25 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 1 12 1 1 Blaze 32 1 object_fire_loop_magic 0 +firewallmaker 68 6 6 4 no light freq 12 12 7 2 8 255 178 64 0 0 1 groundFireBig 1024 2 16 1 1 2 8 1 1 1 1 1 8 32 1 firewall firewall firesmall firemedium 0 +firewall 69 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 75 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 2 1 12 1 Fire Wall 32 1 41 object_fire_loop_magic 0 +goospit1 70 1 1 10 10 24 255 255 255 3 0 0 SandMaggotGooSpit 1024 24 16 3 1 1 1 1 1 1 1 4 1 1 3 3 3 3 3 3 3 3 3 3 3 pois 4 3 3 3 3 3 4 3 3 3 3 3 200 176 16 tentaclehead_missile_1 goosplat 0 +goospit2 71 1 1 10 10 24 255 255 255 3 0 0 SandMaggotGooSpit 1024 24 16 3 1 1 1 1 1 1 1 4 1 2 3 3 3 3 3 3 3 3 3 3 3 pois 5 3 3 3 3 3 5 3 3 3 3 3 300 176 16 tentaclehead_missile_1 goosplat 0 +goospit3 72 1 1 10 10 24 255 255 255 3 0 0 SandMaggotGooSpit 1024 24 16 3 1 1 1 1 1 1 1 4 1 2 3 3 3 3 3 4 3 3 3 3 3 pois 6 3 3 3 3 3 6 3 3 3 3 3 400 176 16 tentaclehead_missile_1 goosplat 0 +goospit4 73 1 1 10 10 24 255 255 255 3 0 0 SandMaggotGooSpit 1024 24 16 3 1 1 1 1 1 1 1 4 1 2 4 4 4 4 4 5 4 4 4 4 4 pois 7 3 3 3 3 3 7 3 3 3 3 3 500 176 16 tentaclehead_missile_1 goosplat 0 +goospit5 74 1 1 10 10 24 255 255 255 3 0 0 SandMaggotGooSpit 1024 24 16 3 1 1 1 1 1 1 1 4 1 3 4 4 4 4 4 5 4 4 4 4 4 pois 8 3 3 3 3 3 8 3 3 3 3 3 600 176 16 tentaclehead_missile_1 goosplat 0 +goosplat 75 1 15 255 255 255 0 0 0 GooHit 1024 15 16 1 1 1 1 1 1 4 8 1 0 +sand pile 76 2 128 255 255 255 0 0 0 SandMaggotSandPile 1024 1 16 1 1 1 8 8 0 +unholybolt1 77 1 1 12 12 40 5 0 0 0 1 0 1 UnholyBolt 1024 16 16 3 1 1 1 1 1 1 1 2 4 8 mag 3 9 9 9 9 9 6 9 9 9 9 9 1 greatermummy_unholybolt_1 0 +unholybolt2 78 1 1 12 12 40 5 0 0 0 1 0 1 UnholyBolt 1024 16 16 3 1 1 1 1 1 1 1 2 4 8 mag 3 9 9 9 9 9 7 9 9 9 9 9 1 greatermummy_unholybolt_1 0 +unholybolt3 79 1 1 12 12 40 5 0 0 0 1 0 1 UnholyBolt 1024 16 16 3 1 1 1 1 1 1 1 2 4 8 mag 4 9 9 9 9 9 8 9 9 9 9 9 1 greatermummy_unholybolt_1 0 +unholybolt4 80 1 1 12 12 40 5 0 0 0 1 0 1 UnholyBolt 1024 16 16 3 1 1 1 1 1 1 1 2 4 8 mag 4 9 9 9 9 9 9 9 9 9 9 9 1 greatermummy_unholybolt_1 0 +sanctuarycenter 81 1 1 125 0 0 0 0 0 1 sanctuary 1024 40 16 1 10 30 1 1 1 1 1 1 0 +fireexplosion 82 1 1 15 255 178 64 0 0 0 FireArrowExplode2 1024 12 16 3 1 1 2 2 1 1 4 8 fire 8 2 2 2 2 2 16 2 2 2 2 2 1 explosion_medium_1 0 +stuckarrow 83 1 1 128 0 0 0 0 0 0 ArrowInGround 1024 1 16 1 1 1 1 8 32 0 +footprint 84 128 0 0 0 0 0 0 Footsteps01 1024 2 16 1 1 1 1 8 32 0 +immolationarrow 85 6 12 6 9 3 ??? Radius 50 fire duration 0 disc radius (0 = skill) 0 damage radius (0 = skill) 50 fire duration 0 disc radius (0 = skill) 100 disc density 24 24 30 9 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 1 Immolation Arrow 5 2 fire 10 32 amazon_firearrow_1 explosion_medium_1 immolationarrow firewall firesmall firemedium immolationarrow fire immolationarrow firewall firesmall firemedium firewall firesmall firemedium 0 +guidedarrow 86 7 13 7 10 1 4 retarget frame 8 retarget radius 4 Retarget Frame skill('Magic Arrow'.blvl) / 2 magic dmg conversion 24 24 40 3 255 255 255 1 0 1 SafeArrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 Guided Arrow 4 mag 10 32 amazon_magicarrow_1 0 +freezingarrow 87 1 14 1 4 0 damage radius (0 = skill) 0 hit radius 1 density 24 24 20 5 81 81 255 1 0 1 IceArrow 1024 8 16 3 1 1 1 2 1 1 1 1 1 1 1 1 4 5 8 128 32 amazon_coldarrow_1 sorceress_iceblast_impact_1 freezingarrowexp3 freezingarrowexp1 freezingarrowexp2 0 +freezingarrowexp1 88 1 1 16 11 81 81 255 0 0 0 FreezeExplodeCenter 1024 15 16 1 1 1 1 1 1 1 4 8 1 0 +freezingarrowexp2 89 1 1 16 81 81 255 0 0 0 FreezeExplodeEjecta 1024 15 16 1 1 1 1 1 1 1 4 8 8 0 +nova 90 1 10 1 24 24 -1000 12 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 1 Nova 4 64 16 sorceress_nova lightning 0 +iceblast 91 1 1 4 4 Radius 18 18 35 7 81 81 255 1 0 1 IceBlast 1024 5 16 3 1 1 2 1 1 1 1 Ice Blast 4 16 sorceress_icebolt_1 sorceress_iceblast_impact_1 freezingarrowexp1 0 +blessedhammer 92 1 1 5 bonus dmg% undead bonus dmg% demon 34 40 250 90 5 222 222 255 6 0 1 blessedhammer 1024 6 16 3 1 2 1 8 1 1 1 1 Blessed Hammer 4 mag 16 paladin_blessedhammer_1 paladin_holybolt_impact_1 0 +chainlightning 93 8 16 1 12 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 30 30 25 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 1 1 4 2 1 1 1 1 Chain Lightning 4 64 32 sorceress_lightning_1 lightning lightninghit 0 +fistofares 94 1 1 12 12 128 3 255 255 255 0 0 1 FOAorbiter 1024 9 16 1 1 1 1 8 1 0 +chillblood 95 1 1 8 8 128 4 81 81 255 1 0 1 ChillBlood 1024 16 16 3 1 1 1 1 1 1 1 4 8 48 1 0 +glacialspike 96 1 14 1 13 0 damage radius (0 = skill) 0 freeze length (0 = skill) 16 16 30 5 81 81 255 1 0 1 GlacialSpike 1024 6 16 3 1 1 1 1 1 1 1 1 Glacial Spike 5 2 frze 16 sorceress_glacialspike_1 sorceress_iceblast_impact_1 freezingarrowexp1 freezingarrowexp2 0 +teleport 97 1 1 18 6 255 255 255 0 0 0 Teleport 1024 18 16 1 1 1 1 1 8 1 0 +lightningbolt 98 8 1 3 Subloops 30 30 25 4 255 255 255 0 0 2 null 1024 2 16 3 1 1 3 1 1 1 1 Lightning 4 64 1 sorceress_lightning_1 lightninghit 0 +lightninghit 99 1 10 1 16 Z Range 12 3 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 8 ltng 2 2 2 2 2 2 5 2 2 2 2 2 64 32 lightning 0 +meteor 100 1 15 0 0 0 0 0 1 Meteor 1024 12 16 1 1 1 1 0 +meteorcenter 101 9 18 1 14 15 frames 25 fallrate 15 sliderate 0 range (0 = skill) 1 flames increment 5 # submissile1 3 # submissile3 15 # submissile4 15 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 1 Meteor 5 2 8 1 sorceress_meteor_impact meteorfire meteor meteortail meteorexplode whitelightmissile firemediummeteor firesmallmeteor 0 +meteortail 102 1 15 0 0 0 0 0 1 MeteorTail 1024 12 16 1 1 1 8 1 0 +meteorexplode 103 1 1 2 none 16 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 0 +firesmall 104 5 1 90 25 2 2 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 12 1 fire 1 1 1 1 1 1 1 1 1 1 1 1 32 1 object_fire_loop_magic 0 +firemedium 105 5 1 90 25 3 2 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 1 12 1 fire 2 2 2 2 2 2 2 2 2 2 2 2 32 1 object_fire_loop_magic 0 +monblizcenter 106 10 8 5 base radius 8 base freq 4 level divisor 5 base radius 8 base freq 4 level divisor 25 15 9 81 81 255 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 sorceress_blizzard_loop monbliz1 monbliz1 monbliz4 0 +monbliz1 107 1 19 3 120 fall distance 5 fall rate 9 0 0 0 0 0 1 icestormfallvar01 1024 6 16 3 1 2 1 1 1 1 1 4 8 1 4 4 4 4 4 2 4 4 4 4 4 cold 4 12 12 12 12 12 9 12 12 12 12 12 200 25 25 25 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 monblizexplode1 monblizexplode3 0 +monbliz2 108 1 19 3 120 fall distance 5 fall rate 9 0 0 0 0 0 1 icestormfallvar02 1024 6 16 3 1 2 1 1 1 1 1 4 8 1 4 4 4 4 4 2 4 4 4 4 4 cold 4 12 12 12 12 12 9 12 12 12 12 12 200 25 25 25 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 monblizexplode1 monblizexplode3 0 +monbliz3 109 1 19 3 120 fall distance 5 fall rate 9 0 0 0 0 0 1 icestormfallvar03 1024 6 16 3 1 2 1 1 1 1 1 4 8 1 4 4 4 4 4 2 4 4 4 4 4 cold 4 12 12 12 12 12 9 12 12 12 12 12 200 25 25 25 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 monblizexplode1 monblizexplode3 0 +monbliz4 110 1 19 3 120 fall distance 5 fall rate 9 0 0 0 0 0 1 icestormfallvar04 1024 6 16 3 1 2 1 1 1 1 1 4 8 1 4 4 4 4 4 2 4 4 4 4 4 cold 4 12 12 12 12 12 9 12 12 12 12 12 200 25 25 25 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 monblizexplode1 monblizexplode3 0 +monblizexplode1 111 1 1 6 0 0 0 0 0 0 icestormimpactvar01 1024 6 16 1 1 1 1 1 1 1 4 8 1 0 +monblizexplode2 112 1 1 6 0 0 0 0 0 0 icestormimpactvar02 1024 6 16 1 1 1 1 1 1 1 4 8 1 0 +monblizexplode3 113 1 1 6 0 0 0 0 0 0 icestormimpactvar02 1024 6 16 1 1 1 1 1 1 1 4 8 1 0 +teeth 114 1 1 16 16 50 3 255 255 255 1 0 0 teethMissile 1024 30 16 1 15 3 1 1 1 1 4 1 1 1 1 1 Teeth 4 32 necromancer_teeth_1 paladin_holybolt_impact_1 teethexplode 0 +corpseexplosion 115 11 1 13 5 255 178 64 0 0 0 CorpseExplodeGuts 1024 13 16 1 1 1 1 1 1 Corpse Explosion 4 8 4 1 bigblood1 bigblood2 0 +poisoncorpseexplosion 116 11 1 13 5 255 178 64 0 0 0 CorpseExplodeGutsPoison 1024 13 16 1 1 1 1 1 8 4 0 +monstercorpseexplode 117 11 1 13 5 255 178 64 0 0 0 CorpseExplodeGuts 1024 13 16 1 1 10 1 1 1 1 8 4 1 0 +poisonnova 118 1 1 12 12 30 0 0 0 0 0 0 poisonNova 1024 30 16 3 1 1 1 1 4 1 1 1 Poison Nova 8 80 32 necromancer_poisonnova 0 +frostnova 119 1 10 1 24 24 -1000 10 81 81 255 0 0 0 FrostNova 1024 14 16 3 1 1 1 4 1 1 1 1 Frost Nova 4 48 16 sorceress_frostnova ice_explode 0 +rogue1 120 1 1 24 24 40 255 255 255 1 0 0 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 1 1 10 32 weapon_bow_1 0 +rogue2 121 1 1 24 24 40 5 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 1 4 8 128 1 1 fire 2 4 10 32 amazon_firearrow_1 sorceress_firebolt_impact_1 fireexplode 0 +rogue3 122 1 1 24 24 40 5 81 81 255 1 0 1 IceArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 1 4 8 128 1 1 cold 2 4 50 10 32 amazon_coldarrow_1 impact_cold_1 iceexplode 0 +bat lightning bolt 123 8 9 3 Subloops 16 16 16 4 255 255 255 1 0 2 null 1024 2 16 3 1 1 2 1 1 1 1 Lightning 4 1 bat lightning trail lightninghit 0 +bat lightning trail 124 1 1 10 3 4 255 255 255 1 0 0 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 4 8 ltng 2 3 3 3 3 3 5 3 3 3 3 3 16 0 +skmage1 125 1 1 9 9 40 5 255 255 255 2 0 0 poisonNova 1024 30 16 3 1 1 1 1 1 1 1 1 4 8 128 32 monster_poisonbolt 0 +skmage2 126 1 1 12 12 40 5 255 255 255 2 0 1 Icebolt 1024 6 16 3 1 1 1 1 1 1 1 1 4 8 128 16 monster_icebolt_1 iceexplode 0 +skmage3 127 1 1 14 14 40 5 255 255 255 2 0 1 Firebolt 1024 5 16 3 1 1 1 1 1 1 1 1 4 8 128 16 monster_firebolt_1 sorceress_firebolt_impact_1 fireexplode 0 +skmage4 128 1 1 14 14 40 5 255 255 255 2 0 1 ChargedBolt 1024 10 16 3 1 1 1 1 1 1 1 1 4 8 128 16 monster_chargedbolt_1 0 +vampirefireball 129 1 1 1 1 3 damage radius 3 explosions radius 1 explosions density 14 14 30 8 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 1 1 1 1 1 5 2 8 fire 3 12 12 12 12 12 6 12 12 12 12 12 16 monster_fireball sorceress_fireball_impact_1 explodingarrowexp fireexplosion2 0 +vampirefirewallmaker 130 6 6 4 no light freq 12 12 10 8 255 178 64 0 0 1 groundFireBig 1024 2 16 1 1 2 8 1 1 1 1 1 8 32 1 vampirefirewall vampirefirewall firesmall firemedium 0 +vampirefirewall 131 5 5 3 19 hit sound chance (128) 90 2 4 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 1 2 fire 2 2 3 3 3 3 3 2 3 3 3 3 32 1 41 object_fire_loop_magic 0 +vampiremeteor 132 1 60 0 0 0 0 0 1 Meteor 1024 12 16 1 1 1 1 0 +vampiremeteorcenter 133 9 18 1 14 59 frames 25 fallrate 15 sliderate 0 range (0 = skill) 1 flames increment 5 # submissile1 3 # submissile3 15 # submissile4 60 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 VampireMeteor 5 2 8 1 vampiremeteorfire vampiremeteor meteortail meteorexplode whitelightmissile firemedium firesmall 0 +vampiremeteorexp 134 1 1 2 none 16 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 0 +raven1 135 1 1 16 16 50 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +raven2 136 1 1 16 16 50 9 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 4 8 1 6 6 6 6 6 3 6 6 6 6 6 fire 5 12 12 12 12 12 11 12 12 12 12 12 10 32 amazon_firearrow_1 sorceress_firebolt_impact_1 fireexplode 0 +amphibiangoo1 137 1 1 12 12 15 2 64 255 64 1 0 1 FrogPoisonMissile 1024 7 16 3 1 1 1 1 1 1 1 33 1 4 fire 9 5 5 5 5 5 9 5 5 5 5 5 500 176 16 0 +amphibiangoo2 138 1 1 12 12 18 2 64 255 64 1 0 1 FrogPoisonMissile 1024 7 16 3 1 1 1 1 1 1 1 33 1 4 fire 9 5 5 5 5 5 9 5 5 5 5 5 700 176 16 0 +tentaclegoo 139 1 1 12 12 40 2 64 255 64 8 0 1 FrogPoisonMissile 1024 7 16 3 1 1 1 1 1 1 1 1 33 1 4 pois 11 18 800 176 16 tentaclehead_missile_1 amphibianexplode 0 +amphibianexplode 140 1 1 15 255 255 255 0 0 0 GooHit 1024 15 16 1 1 1 1 1 4 8 1 0 +poisonpuff 141 1 1 1 15 25 255 255 255 0 0 0 PoisonSmokePuff 1024 26 16 1 1 1 1 1 4 8 4 object_poison_loop 0 +curseeffectred 142 1 1 20 1 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +spidergoolay 143 1 1 15 1 1 16 0 0 0 0 0 0 Spider_Goo_Missile 1024 17 16 1 1 1 1 1 1 1 8 spidergoo spidergoo 0 +fetishinferno1 144 1 1 7 Minimum range 12 12 30 4 255 178 64 3 0 0 Flamethrower 1024 15 16 3 1 1 1 1 1 8 fire 2 4 4 4 4 4 4 4 4 4 4 4 32 1 82 sorceress_inferno 0 +fetishinferno2 145 1 1 7 Minimum range 12 12 30 4 255 178 64 3 0 0 Flamethrower2 1024 15 16 3 1 1 1 1 1 8 fire 2 4 4 4 4 4 4 4 4 4 4 4 32 1 sorceress_inferno 0 +spidergoo 146 1 1 16 200 0 0 0 0 0 1 Spider_Goo_Disappear 1024 9 16 1 1 3 1 1 1 1 3 1 1 8 0 +cursecast 147 1 1 3 5 20 1 255 0 0 6 0 0 CurseCast 1024 25 16 1 1 1 1 8 1 0 +howl 148 1 1 17 16 16 -1000 12 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 3 1 1 4 1 1 32 barbarian_circle_1 0 +shout 149 1 1 18 2 Vel / level increase 30 30 -500 15 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 3 1 1 4 1 1 1 32 barbarian_circle_1 0 +dust 150 1 1 4 4 100 255 255 255 0 0 0 FireSmoke 1024 26 16 1 1 4 0 +redlightmissile 151 1 1 10 10 5 255 178 64 0 0 0 null 1024 2 16 1 1 1 1 0 +greenlightmissile 152 1 1 10 10 5 128 255 128 0 0 0 null 1024 2 16 1 1 1 1 0 +bluelightmissile 153 1 1 10 10 5 81 81 255 0 0 0 null 1024 2 16 1 1 1 1 0 +whitelightmissile 154 1 1 10 10 5 255 255 255 0 0 0 null 1024 2 16 1 1 1 1 0 +corpsepoisoncloud 155 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 80 2 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 1 1 1 pois 2 1 1 1 1 1 2 1 1 1 1 1 175 8 object_poison_loop poisonpuff 0 +chillbloodcloud 156 4 1 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 6 spawn rate 2 number 6 radius 4 4 80 3 81 81 255 1 0 0 null 1024 2 16 3 1 1 1 1 1 1 Chilling Armor 8 48 1 chillbloodpuff 0 +chillbloodpuff 157 1 1 1 15 25 3 81 81 255 0 0 0 ChillBloodPuff 1024 26 16 1 1 1 1 1 4 8 48 1 0 +blizzardcenter 158 13 10 50 9 81 81 255 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 sorceress_blizzard_loop blizzard1 blizzard1 blizzard4 0 +blizzard1 159 1 19 3 62 140 fall distance 4 fall rate 4 Hit AOE range 9 0 0 0 0 0 1 icestormfallvar01 1024 6 16 3 1 1 1 1 1 1 1 Blizzard 4 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 blizzardexplode1 blizzardexplode3 0 +blizzard2 160 1 19 3 62 140 fall distance 5 fall rate 4 Hit AOE range 9 0 0 0 0 0 1 icestormfallvar02 1024 6 16 3 1 1 1 1 1 1 1 Blizzard 4 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 blizzardexplode1 blizzardexplode3 0 +blizzard3 161 1 19 3 62 140 fall distance 4 fall rate 4 Hit AOE range 9 0 0 0 0 0 1 Blizzard 1024 8 16 3 1 1 1 1 1 1 1 Blizzard 4 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 blizzardexplode1 blizzardexplode3 0 +blizzard4 162 1 19 3 62 140 fall distance 5 fall rate 4 Hit AOE range 9 0 0 0 0 0 1 Blizzard 1024 8 16 3 1 1 1 1 1 1 1 Blizzard 4 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 blizzardexplode1 blizzardexplode3 0 +blizzardexplode1 163 1 1 6 0 0 0 0 0 0 icestormimpactvar01 1024 6 16 1 1 3 1 1 1 1 4 8 1 0 +blizzardexplode2 164 1 1 6 0 0 0 0 0 0 icestormimpactvar02 1024 6 16 1 1 3 1 1 1 1 4 8 1 0 +blizzardexplode3 165 1 1 6 0 0 0 0 0 0 icestormimpactvar02 1024 6 16 1 1 3 1 1 1 1 4 8 1 0 +thunderstorm1 166 1 4 3 5 2 2 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 3 1 1 1 1 Thunder Storm 4 1 sorceress_thunder_bolt thunderstormnova thunderstormnova 0 +thunderstorm2 167 1 3 2 2 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 3 1 1 1 1 Thunder Storm 4 1 sorceress_thunder_bolt 0 +thunderstorm3 168 1 3 2 2 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 3 1 1 1 1 Thunder Storm 4 1 sorceress_thunder_bolt 0 +thunderstorm4 169 1 3 2 2 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 3 1 1 1 1 Thunder Storm 4 1 sorceress_thunder_bolt 0 +monsterlight 170 8 10 1 3 Subloops 30 30 25 4 255 255 255 2 0 2 null 1024 2 16 3 1 1 1 2 1 1 8 ltng 15 0 0 0 0 0 30 30 30 30 30 30 1 monster_lightning_1 lightning lightninghit 0 +poisonball 171 1 1 12 12 30 255 255 255 0 0 0 poisonNova 1024 30 16 3 1 1 1 1 1 1 pois 6 6 6 6 6 6 6 6 6 6 6 6 400 32 0 +diablight 172 1 10 1 30 Minimum range 20 20 30 3 255 255 255 1 0 0 DiabloLightning 1024 15 16 3 1 1 3 2 1 1 1 1 6 7 10 10 10 10 10 15 10 10 10 10 10 ltng 25 16 16 16 16 16 66 16 16 16 16 16 8 82 diablo_laser fingermage_bolt_impact_1 diablolightning 0 +redemption 173 1 1 18 6 255 255 255 0 0 0 RedemptionGhost 1024 16 16 1 1 1 1 1 1 8 1 0 +redemptionfail 174 1 1 13 5 255 178 64 0 0 0 CorpseExplodeGuts 1024 13 16 1 1 1 1 1 8 4 0 +handofgod 175 1 3 2 2 9 10 255 255 255 0 0 1 LightningBolt 1024 8 16 3 1 1 1 1 1 1 1 Fist of the Heavens 4 1 0 +diabfire 176 1 1 30 30 50 3 255 255 255 1 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 4 2 1 1 1 8 fire 20 8 8 8 8 8 50 8 8 8 8 8 32 1 diablo_firecircle 0 +fingermagespider 177 15 10 11 19 5 repath frame 20 activation dist 2 delta 3 spawn frame 20 spawn life 5 repath frame 20 activation dist 2 delta 6 6 80 255 178 178 1 0 1 FingerMageSpider 1024 5 16 3 1 1 1 1 1 1 1 1 4 7 3 2 2 2 2 2 9 2 2 2 2 2 fire 6 6 7 8 8 8 12 6 7 8 8 8 16 fingermage_bolt fingermage_bolt_impact_1 fingermagespiderexplode fingermagespider 0 +electric throwaxe 178 1 10 1 24 24 20 4 255 255 255 1 0 1 MissileHandAxe 1024 8 16 3 1 1 1 1 1 1 1 1 1 4 8 ltng 5 4 4 4 4 4 10 4 4 4 4 4 32 lightning 0 +diabwallmaker 179 6 6 20 20 80 3 255 178 64 2 0 1 groundFireMedium 1024 2 16 1 1 2 3 1 1 1 1 1 1 1 1 4 8 1 diabwall diabwall 0 +diabwall 180 5 1 36 3 4 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 2 1 1 1 3 4 2 2 2 2 2 12 2 2 2 2 2 fire 12 5 5 5 5 5 25 5 5 5 5 5 1 41 diablo_firewall 0 +curseamplifydamage 181 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +cursedimvision 182 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +curseweaken 183 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +curseironmaiden 184 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +curseterror 185 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +curseattract 186 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +cursereversevampire 187 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +curseconfuse 188 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +cursedecrepify 189 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +curselowerresist 190 1 1 20 255 0 0 1 0 0 CurseArea 1024 20 16 1 1 1 1 8 16 0 +cursecenter 191 17 1 7 active frames 20 255 0 0 0 0 0 null 1024 2 16 1 1 1 1 0 +bonespear 192 18 24 1 3 Subloops 24 24 40 3 255 255 255 0 0 1 BoneSpear 1024 6 16 3 1 1 1 5 3 1 1 1 1 Bone Spear 4 8 6 16 necromancer_bonespear_1 paladin_holybolt_impact_1 bonespearexplode bonespeartrail teethexplode 0 +bonespirit 193 7 13 7 10 5 Retarget Frame 15 retarget radius 5 Retarget Frame 4 range 18 18 -100 115 3 255 255 255 1 0 1 BoneSpirit 1024 8 16 3 1 1 1 -30 1 1 1 1 1 1 Bone Spirit 4 8 8 necromancer_bonespirit_1 paladin_holybolt_impact_1 bonespiritexplode 0 +coldunique 194 1 1 24 24 -1000 14 81 81 255 0 0 0 FrostNova 1024 14 16 3 1 1 1 3 1 1 1 1 1 8 cold 6 4 5 6 8 10 8 4 5 6 8 10 75 25 25 25 16 sorceress_frostnova 0 +lightunique 195 1 10 1 12 12 98 3 4 255 255 255 1 3 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 4 1 1 1 1 1 1 4 8 ltng 1 2 2 2 2 2 1 2 2 2 2 2 64 16 sorceress_chargedbolt_1 0 +skbowarrow1 196 1 1 24 24 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +skbowarrow2 197 1 1 24 24 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +skbowarrow3 198 1 1 24 24 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +skbowarrow4 199 1 1 24 24 40 5 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 32 amazon_firearrow_1 sorceress_firebolt_impact_1 0 +skbowarrow5 200 1 1 24 24 40 5 255 255 255 1 0 1 SafeArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 32 amazon_magicarrow_1 0 +nova1 201 1 10 1 24 24 -1000 13 255 255 255 0 0 0 null 1024 2 16 3 1 1 4 1 1 1 1 1 Nova 4 64 1 sorceress_nova lightning 0 +nova2 202 1 10 1 24 24 -1000 13 255 255 255 0 0 0 null 1024 2 16 3 1 1 4 1 1 1 1 1 Nova 4 64 1 sorceress_nova lightning 0 +andypoisonbolt 203 1 1 20 20 50 5 255 255 255 3 0 0 poisonNova 1024 30 16 3 1 1 1 1 1 1 1 1 4 1280 1280 1280 1280 1280 1280 1792 1280 1280 1280 1280 1280 pois 32 38 44 40 46 52 64 38 44 40 46 52 800 10 10 10 32 andariel_cast_small 0 +teethexplode 204 1 1 13 0 0 0 0 0 0 teethexplode 1024 13 16 1 1 1 1 0 +lightningjavelin 205 1 10 1 12 dl12 convert to elemental% 100 base conversion 0 conversion/lvl 30 30 25 6 255 255 255 0 0 1 LightningJavelin 1024 5 16 3 1 1 1 2 1 1 1 1 1 1 Lightning Bolt 4 ltng 64 16 amazon_lightning_1 lightning 0 +lightningfury 206 1 25 1 20 0 range (0=skill) 0 max (0 = skill) 0 range (0=skill) 0 max (0 = skill) 30 30 25 6 255 255 255 0 0 1 LightningJavelin 1024 5 16 3 1 1 1 2 1 1 1 1 1 1 Lightning Fury 4 64 16 amazon_lightning_1 furylightning furylightning 0 +bonewallmaker 207 1 13 12 12 7 2 3 255 255 255 0 0 0 null 1024 2 16 8 1 1 1 1 1 1 8 1 0 +necromage1 208 1 1 24 24 30 5 255 255 255 1 0 0 poisonNova 1024 30 16 3 1 1 2 1 1 1 1 4 4 1 pois 6 3 5 8 12 16 6 3 5 8 12 16 12 32 monster_poisonbolt 0 +necromage2 209 1 1 22 22 30 5 255 255 255 1 0 1 Icebolt 1024 6 16 3 1 1 2 1 1 1 1 4 8 1 cold 4 3 4 7 11 15 7 3 5 8 12 15 25 25 16 monster_icebolt_1 0 +necromage3 210 1 1 14 14 30 5 255 255 255 1 0 1 Firebolt 1024 5 16 3 1 1 2 1 1 1 1 4 8 1 fire 4 4 5 8 12 16 10 4 6 9 13 17 16 monster_fireball sorceress_firebolt_impact_1 shamanexp 0 +necromage4 211 1 1 14 14 30 5 255 255 255 1 0 1 ChargedBolt 1024 10 16 3 1 1 2 1 1 1 1 4 8 1 ltng 1 1 1 1 1 1 12 9 12 17 24 33 16 monster_chargedbolt_1 0 +sparkle 212 1 1 4 4 30 255 255 255 1 0 1 Gleam 1024 8 16 3 1 1 1 1 1 1 1 4 8 pois 2 2 2 2 2 2 6 2 2 2 2 2 1 0 +multipleshotarrow 213 1 1 17 24 24 27 255 255 255 1 0 0 Arrow 1024 1 16 3 1 1 1 1 2 1 1 1 1 1 1 Multiple Shot 4 8 128 10 32 amazon_multi_arrow_1 0 +multipleshotbolt 214 1 1 17 24 24 27 255 255 255 1 0 0 XBowBolt 1024 1 16 3 1 1 1 1 2 1 1 1 1 1 1 Multiple Shot 4 8 128 10 32 weapon_xbow_1 0 +chargedstrikebolt 215 1 10 1 10 10 150 40 3 4 255 255 255 1 3 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 Charged Strike 4 8 16 sorceress_chargedbolt_1 0 +bonespearexplode 216 1 1 13 0 0 0 0 0 0 teethexplode 1024 13 16 1 1 1 8 1 0 +poisonexplosioncloud 217 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 2 2 60 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 3 1 1 Desecrate 8 8 object_poison_loop poisonpuff 0 +bonecast 218 1 20 255 255 255 0 0 0 BoneCast 1024 16 16 1 1 8 16 0 +battlecry 219 1 1 21 28 28 -1000 12 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 3 1 1 4 1 1 32 barbarian_circle_1 0 +primepoisoncloud 220 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 255 255 255 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 2 1 1 pois 10 5 5 5 5 5 10 5 5 5 5 5 300 20 20 20 8 object_poison_loop poisonpuff 0 +plaguejavcloud 221 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 255 255 255 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 2 1 1 Plague Javelin -1 8 object_poison_loop poisonpuff 0 +rancidgascloud 222 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 255 255 255 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 2 1 1 pois 123 123 50 8 object_poison_loop poisonpuff 0 +chokinggascloud 223 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 255 255 255 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 2 1 1 pois 246 246 50 8 object_poison_loop poisonpuff 0 +stranglinggascloud 224 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 255 255 255 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 2 1 1 pois 369 369 50 8 object_poison_loop poisonpuff 0 +buglightning 225 1 10 1 12 12 98 3 4 255 255 255 1 3 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 4 1 1 1 1 1 4 ltng 256 128 128 128 128 128 256 128 128 128 128 128 64 16 sorceress_chargedbolt_1 0 +pantherjav1 226 1 1 20 20 80 255 255 255 1 0 1 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +pantherjav2 227 1 1 20 20 80 255 255 255 1 0 1 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +pantherjav3 228 1 1 20 20 80 255 255 255 1 0 1 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +pantherjav4 229 1 1 20 20 80 255 255 255 1 0 1 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +immolationfire 230 5 5 3 19 softhit chance (128) 100 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 1 12 1 1 2 fire 7 5 5 5 5 5 9 5 5 5 5 5 skill('Magic Arrow'.blvl) * 12 32 1 41 object_fire_loop_magic 0 +furylightning 231 1 1 30 30 25 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 3 1 1 2 1 1 1 1 Lightning Fury 4 -1 64 32 sorceress_lightning_1 0 +lightningstrike 232 8 16 1 12 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 30 30 25 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 1 1 4 2 1 1 1 1 Lightning Strike 4 8 ltng 8 64 32 sorceress_lightning_1 lightning lightninghit 0 +fistoftheheavensdelay 233 1 26 1 22 0 range (0 = skill) 0 max bolts (0 = skill) 0 range (0 = skill) 0 max bolts (0 = skill) 10 0 0 0 0 0 0 null 1024 2 16 1 1 1 1 Fist of the Heavens 4 8 1 paladin_handofgod_bolt fistoftheheavensbolt fistoftheheavensbolt 0 +fistoftheheavensbolt 234 1 9 1 7 1 heals allies? 0 "0 = all, 1 = undead, 2 = demons" 0 heals allies? 3 "0 = all, 1 = undead, 2 = demons" 20 20 250 25 8 222 222 255 1 2 1 HolyBoltMissile 1024 16 16 3 1 1 1 4 2 1 1 1 1 4 8 1 mag 10 2 5 8 14 23 12 3 6 9 15 24 (skill('Holy Bolt'.blvl) + skill('Holy Nova'.blvl) + skill('Holy Light'.blvl)) * 11 1 paladin_holybolt_1 paladin_holybolt_impact_1 teethexplode teethexplode 0 +warcry 235 1 10 1 10 10 -50 19 192 192 192 1 0 0 WarcryShockwave 1024 16 16 3 1 1 6 1 1 1 War Cry 4 32 barbarian_warcry_circle doubledamage1 0 +battlecommand 236 1 1 18 30 30 -500 15 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 3 1 1 1 4 1 1 1 32 barbarian_circle_1 0 +battleorders 237 1 1 18 30 30 -500 15 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 3 1 1 1 4 1 1 1 32 barbarian_circle_1 0 +pantherpotorange 238 1 3 1 24 16 16 128 255 128 128 0 0 0 mslops 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 5 8 3 5 5 5 5 5 5 5 5 5 5 5 fire 2 7 7 7 7 7 5 7 7 7 7 7 1 weapon_throw_1 explosion_medium_1 explodingarrowexp 0 +pantherpotgreen 239 1 28 1 25 40 Poison Length 1 increment 16 16 128 128 255 128 0 0 0 mslgps 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 4 1 pois 9 6 6 6 6 6 12 6 6 6 6 6 400 1 weapon_throw_1 explosion_medium_1 rancidgascloud rancidgascloud 0 +meteorfire 240 5 5 3 19 softhit chance (128) 90 3 2 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 2 1 12 1 2 1 fire 15 2 3 4 5 6 20 2 3 4 5 6 (skill('Fire Ball'.blvl) + skill('Fire Wall'.blvl) + skill('blaze'.blvl))*6 32 1 41 object_fire_loop_magic 0 +trap spike right 241 1 1 9 9 50 255 255 255 1 0 1 SpikeRight 1024 12 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 1 object_trap_release 0 +trap spike left 242 1 1 9 9 50 255 255 255 1 0 1 SpikeLeft 1024 12 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 1 object_trap_release 0 +trap cursed skull right 243 1 1 6 6 50 255 255 255 1 0 1 SkullRight 1024 12 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 1 object_trap_release 0 +trap cursed skull left 244 1 1 6 6 50 255 255 255 1 0 1 SkullLeft 1024 12 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 1 object_trap_release 0 +trap poison ball right 245 3 2 lvl*2 #subloops lvl*2 #subloops 6 6 50 255 255 255 1 0 1 PoisonRight 1024 12 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 1 object_trap_release plaguejavcloud 0 +trap poison ball left 246 3 2 lvl*2 #subloops lvl*2 #subloops 6 6 50 255 255 255 1 0 1 PoisonLeft 1024 12 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 10 1 object_trap_release plaguejavcloud 0 +hydra 247 1 1 16 16 30 5 255 255 255 2 0 1 Firebolt 1024 5 16 3 1 1 1 1 1 1 1 1 1 1 Lesser Hydra 4 8 16 monster_firebolt_1 sorceress_firebolt_impact_1 fireexplode 0 +bonespeartrail 248 1 8 255 255 255 0 0 0 BoneSpearTrail 1024 9 16 1 1 8 32 0 +grimwardsmallstart 249 1 29 1 26 0 duration (0=skill) 5 0 0 0 0 0 0 GrimWardSmallStart 1024 5 16 1 1 1 1 1 8 4 1 grimwardsmall grimwardsmall 0 +grimwardsmall 250 1 29 14 27 0 repeat frame 65 skill func -1 no duration 200 0 0 0 0 0 1 GrimWardSmall 1024 1 16 1 1 1 1 1 1 8 4 1 grimwardsmallstop 0 +grimwardsmallstop 251 11 1 9 0 0 0 0 0 0 GrimWardSmallStop 1024 9 16 1 1 1 1 1 1 8 4 1 0 +grimwardmediumstart 252 1 29 1 26 0 duration (0=skill) 8 0 0 0 0 0 0 GrimWardMediumStart 1024 8 16 1 1 1 1 1 8 4 1 grimwardmedium grimwardmedium 0 +grimwardmedium 253 1 29 14 27 0 repeat frame 65 skill func -1 no duration 200 0 0 0 0 0 1 GrimWardMedium 1024 1 16 1 1 1 1 1 1 8 4 1 grimwardmediumstop 0 +grimwardmediumstop 254 11 1 9 0 0 0 0 0 0 GrimWardMediumStop 1024 9 16 1 1 1 1 1 1 8 4 1 0 +grimwardlargestart 255 1 29 1 26 0 duration (0=skill) 8 0 0 0 0 0 0 GrimWardLargeStart 1024 8 16 1 1 1 1 1 8 4 1 grimwardlarge grimwardlarge 0 +grimwardlarge 256 1 29 14 27 0 repeat frame 65 skill func 200 0 0 0 0 0 1 GrimWardLarge 1024 1 16 1 1 1 1 1 1 8 4 1 grimwardlargestop 0 +grimwardlargestop 257 11 1 9 0 0 0 0 0 0 GrimWardLargeStop 1024 9 16 1 1 1 1 1 1 8 4 1 0 +zakarumlight 258 1 1 12 3 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 1 8 64 32 monster_lightning_1 0 +grimwardscare 259 1 1 28 2 2 24 12 0 0 0 0 0 0 null 1024 2 16 3 1 1 1 6 2 1 1 1 0 +frozenorb 260 19 30 15 29 1 frequency 19 direction increment 1 frequency 19 direction increment 4 increment 4 increment 10 10 45 6 81 81 255 1 0 1 IceOrb 1024 16 16 3 1 1 1 1 1 1 1 4 8 1 frozenorbexplode frozenorbbolt frozenorbnova frozenorbbolt frozenorbnova 0 +frozenorbbolt 261 1 1 18 18 25 4 81 81 255 0 0 1 IceBolt 1024 6 16 3 1 1 1 1 1 1 1 Frozen Orb 4 8 16 sorceress_glacialspike_1 0 +frozenorbnova 262 20 16 6 frames 2 frequency 6 frames 2 frequency 24 24 25 4 81 81 255 0 0 1 IceBolt 1024 6 16 3 1 1 1 1 1 1 1 Frozen Orb 4 8 16 0 +frozenorbexplode 263 1 1 16 6 81 81 255 0 0 0 IceOrbExplode 1024 16 16 1 1 1 8 1 0 +chillingarmorbolt 264 1 19 3 240 fall distance 4 fall rate 9 0 0 0 0 0 1 icestormfallvar01 1024 6 16 3 1 1 4 2 1 1 1 1 1 Chilling Armor 4 1 sorceress_blizzard_loop sorceress_blizzard_impact_1 blizzardexplode1 blizzardexplode3 0 +fireexplosion2 265 1 1 12 0 0 0 0 0 0 FireArrowExplode2 1024 12 16 5 1 1 1 1 1 1 1 4 8 1 0 +blowgun 266 1 1 20 20 90 255 255 255 1 0 1 Blowdart 1024 8 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 16 0 +chainlightning2 267 8 16 1 12 3 Subloops 10 range (0 = skill) 10 range (0 = skill) 30 30 25 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 1 4 2 1 1 1 1 1 Chain Lightning 4 64 32 monster_lightning_1 lightning lightninghit 0 +revivesmall 268 1 25 5 255 178 64 0 0 0 Revive 1024 25 16 1 1 8 1 0 +revivemedium 269 1 25 5 255 178 64 0 0 0 Revive 1024 25 16 1 1 8 1 0 +revivelarge 270 1 25 5 255 178 64 0 0 0 Revive 1024 25 16 1 1 8 1 0 +monglacialspike 271 1 14 1 13 0 damage radius (0 = skill) 0 freeze length (0 = skill) 18 18 40 5 81 81 255 1 0 1 GlacialSpike 1024 6 16 3 1 1 1 1 1 1 1 1 5 8 frze 2 2 2 2 2 2 4 2 2 2 2 2 16 monster_icebolt_1 sorceress_iceblast_impact_1 freezingarrowexp1 freezingarrowexp2 0 +icebreaksmall 272 1 31 30 255 255 255 0 0 0 IceBreakSmall 1024 15 16 1 1 1 8 4 impact_shatter_1 0 +icebreakmedium 273 1 31 30 255 255 255 0 0 0 IceBreakLarge 1024 15 16 1 1 1 8 4 impact_shatter_1 0 +icebreaklarge 274 1 31 30 255 255 255 0 0 0 IceBreakLarge 1024 15 16 1 1 1 8 4 impact_shatter_1 0 +icebreaksmoke 275 1 15 255 255 255 0 0 0 IceBreakSmoke 1024 15 16 1 1 8 1 0 +mephisto 276 1 1 24 24 40 9 255 255 255 0 0 1 MephistoMissile 1024 10 16 3 1 1 1 2 1 1 1 1 4 8 12 8 10 12 12 12 16 8 10 12 12 12 cold 12 18 24 24 24 24 18 20 28 28 28 28 75 25 25 25 16 mephisto_orb sorceress_fireball_impact_1 mephistoexplosion 0 +firehead 277 1 32 1 31 1 radius 2 density 14 14 40 8 255 178 64 1 0 1 VampireMissile 1024 19 16 3 1 1 1 1 1 1 1 1 1 8 fire 3 12 12 12 12 12 6 12 12 12 12 12 16 monster_fireball sorceress_fireball_impact_1 vampiresteal explodingarrowexp fireexplosion2 0 +whilrwind 278 1 1 12 12 3 0 0 0 0 0 0 null 1024 2 16 3 1 2 1 1 Whirlwind 4 8 1 0 +arcanelightningbolt 279 8 1 3 Subloops 32 32 40 8 178 178 255 1 0 2 null 1024 2 16 1 1 1 2 1 1 1 1 4 8 128 ltng 7 9 9 9 9 9 14 11 11 11 11 11 600 64 1 monster_lightning_1 lightninghit 0 +frogfire 280 1 1 15 15 40 4 255 64 64 1 0 1 Fireball 1024 5 16 3 1 1 1 1 1 1 1 33 1 4 8 fire 9 6 6 6 6 6 18 6 6 6 6 6 16 monster_fireball sorceress_firebolt_impact_1 shamanexp 0 +frogcold 281 1 1 12 12 35 4 64 64 255 1 0 1 Icebolt 1024 6 16 3 1 1 1 1 1 1 1 33 1 4 8 cold 6 5 5 5 5 5 12 5 5 5 5 5 600 16 monster_icebolt_1 sorceress_iceblast_impact_1 iceexplode 0 +frogpois 282 1 1 12 12 30 4 64 255 64 1 0 1 FrogPoisonMissile 1024 7 16 3 1 1 1 1 1 1 1 33 1 4 pois 6 5 5 5 5 5 12 5 5 5 5 5 600 16 tentaclehead_missile_1 0 +desertfireball 283 1 11 1 1 2 damage radius 16 16 40 6 255 64 64 1 0 1 Fireball 1024 5 16 1 1 1 1 1 1 1 1 1 5 8 fire 6 10 10 10 10 10 9 11 11 11 11 11 600 16 monster_fireball sorceress_fireball_impact_1 explodingarrowexp 0 +brdeathcontrol 284 21 1 20 radius 375 6 255 255 255 25 0 0 null 1024 2 16 1 1 1 8 1 brdeathlightningbolt 0 +brdeathlightningbolt 285 22 1 3 retarget frame 32 32 20 4 255 255 255 0 0 2 null 1024 2 16 1 1 2 1 1 1 1 4 8 64 1 amazon_lightning_1 brdeathlightninghit 0 +brdeathlightninghit 286 1 1 12 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 8 ltng 2 4 4 4 4 4 5 4 4 4 4 4 64 32 0 +denofevillight 287 23 1 300 10 255 255 255 0 0 1 LightBeams 1024 21 16 1 1 8 4 0 +cairnstones 288 24 17 32 40 Fade frames 2 Lightning delay 17 radius 38 destination level 100 portal delay 40 Fade frames 2 Lightning delay 17 radius 300 255 255 255 0 0 1 null 1024 2 16 1 1 1 1 1 8 64 1 cairnstonessky cairn stones bolt cairnstonesground 0 +cairnstonessky 289 1 1 5 255 255 255 0 0 1 null 1024 2 16 3 1 1 2 1 1 1 1 8 ltng 1 6 64 1 0 +cairnstonesground 290 8 1 3 Subloops 20 20 30 255 255 255 0 0 1 null 1024 2 16 1 1 1 8 64 1 lightninghit 0 +towermist 291 25 1 10 dest radius 3 init radius 1 frequency 2 2 400 2 255 255 255 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 countess_mist_loop towermisttrail 0 +towermisttrail 292 1 1 3 3 50 2 255 255 255 0 0 1 mist 1024 14 16 1 1 8 1 countess_mist_loop towermistfade 0 +brdeathsmokes1 293 1 1 60 0 0 0 40 0 1 BRSmokeS1 1024 20 16 1 1 1 1 1 8 1 brdeathsmokenu 0 +brdeathsmokenu 294 1 1 340 0 0 0 0 0 1 BRSmokeNU 1024 20 16 1 1 1 1 1 8 1 brdeathsmokedt 0 +brdeathsmokedt 295 1 1 20 0 0 0 0 0 1 BRSmokeDT 1024 20 16 1 1 1 1 1 8 1 0 +brdeathspirits1 296 1 1 60 4 255 255 255 40 0 1 BRSpiritS1 1024 20 16 1 1 1 1 1 8 1 bloodraven_mist_begin brdeathspiritnu 0 +brdeathspiritnu 297 1 1 340 4 255 255 255 0 0 1 BRSpiritNU 1024 20 16 1 1 1 1 1 8 1 bloodraven_mist_loop brdeathspiritdt 0 +brdeathspiritdt 298 1 1 20 4 255 255 255 0 0 1 BRSpiritDT 1024 20 16 1 1 1 1 1 8 1 bloodraven_mist_end 0 +mephistodeathcontrol 299 26 1 16 firewall frequency 4 rock frequency 20 radius 275 6 255 255 255 0 0 0 null 1024 2 16 1 1 1 1 8 1 mephistofirewallmaker mephistoflyingrocksbig 0 +mephistofirewallmaker 300 27 1 4 retarget frame 8 8 50 5 255 178 64 0 0 1 groundFireSmall 1024 2 16 1 1 2 1 1 1 1 1 1 8 32 1 mephistofirewall 0 +mephistofirewall 301 5 1 25 5 4 255 178 64 0 0 0 groundFireSmall 1024 37 16 1 12 36 1 1 1 1 1 8 32 1 object_fire_loop_magic 0 +mephistoflyingrocksbig 302 1 33 1 20 radius 12 12 10 3 0 0 0 0 0 1 ExplosionSpark 1024 16 16 1 1 1 8 1 sorceress_firebolt_1 mephistoexplosionbig mephistoflyingrockssmall 0 +mephistoexplosionbig 303 1 1 12 13 255 178 64 0 0 0 FireArrowExplode2 1024 12 16 5 1 1 1 8 1 sorceress_fireball_impact_1 0 +mephistoflyingrockssmall 304 1 1 12 12 5 3 0 0 0 0 0 1 ExplosionSparkSmall 1024 16 16 1 1 1 8 1 mephistoexplosionsmall 0 +mephistoexplosionsmall 305 1 1 12 13 255 178 64 0 0 0 FireArrowExplode2 1024 12 16 5 1 1 1 8 1 sorceress_firebolt_impact_1 0 +mephistodonotdraw 306 28 34 1 15 active frame 70 0 0 0 0 0 0 null 1024 2 16 1 1 1 8 1 corpseexplosion 0 +andycontrol0 307 29 1 25 firewall frequency 7 screen shake seconds 350 0 0 0 0 0 0 null 1024 2 16 1 1 1 1 8 1 andycolumnfirebase andyfirewallmaker andyfallingdebris1 0 +andyfirewallmaker 308 27 1 4 retarget frame 8 8 50 8 255 178 64 0 0 1 groundFireSmall 1024 2 16 1 1 2 1 1 1 1 1 1 8 32 1 andyfirewall 0 +andyfirewall 309 5 1 25 5 4 255 178 64 0 0 0 groundFireSmall 1024 37 16 1 12 36 1 1 1 1 1 8 32 1 0 +andycolumnfirebase 310 5 1 25 5 4 255 178 64 0 0 0 groundFireMedium 1024 37 16 1 12 36 1 1 1 1 1 8 32 1 andariel_fire_loop andariel_fire_end andycolumnfire 0 +andycolumnfire 311 1 1 -30 z offset 6 z vel max 3 z accel 15 192 128 128 0 0 0 AndarielFlameDeath 1024 15 16 1 1 1 1 8 1 andariel_fire_loop 0 +andyfallingdebris1 312 1 19 1 200 fall distance 25 fall speed 8 0 0 0 0 0 0 CeilingChunkFall01 1024 1 16 1 1 1 8 1 andyfallingdebris3 andydebrisexplosion1 andydebrisexplosion5 0 +andyfallingdebris2 313 1 19 1 200 fall distance 25 fall speed 8 0 0 0 0 0 0 CeilingChunkFall02 1024 1 16 1 1 1 8 1 andydebrisexplosion1 andydebrisexplosion5 0 +andyfallingdebris3 314 1 19 1 200 fall distance 25 fall speed 8 0 0 0 0 0 0 CeilingChunkFall03 1024 1 16 1 1 1 8 1 andydebrisexplosion1 andydebrisexplosion5 0 +andydebrisexplosion1 315 1 1 11 0 0 0 0 0 0 CeilingChunkVanish01 1024 11 16 1 1 1 8 1 andariel_rock_1 0 +andydebrisexplosion2 316 1 1 11 0 0 0 0 0 0 CeilingChunkVanish02 1024 11 16 1 1 1 8 1 andariel_rock_1 0 +andydebrisexplosion3 317 11 1 11 0 0 0 0 0 0 CeilingChunkRemain01 1024 11 16 1 1 1 8 1 andariel_rock_1 0 +andydebrisexplosion4 318 11 1 11 0 0 0 0 0 0 CeilingChunkRemain02 1024 11 16 1 1 1 8 1 andariel_rock_1 0 +andydebrisexplosion5 319 11 1 11 0 0 0 0 0 0 CeilingChunkRemain03 1024 11 16 1 1 1 8 1 andariel_rock_1 0 +willowisplightningbolt 320 8 1 3 Subloops 32 32 40 8 178 178 255 1 0 2 null 1024 2 16 3 1 1 2 1 1 1 1 4 8 128 ltng 64 1 monster_lightning_1 lightninghit 0 +queenpoisoncloud 321 1 1 8 64 1 92 4 64 255 64 16 0 0 poisonNova 1024 30 16 3 1 1 1 1 1 1 1 1 1 4 pois 6 6 6 6 6 6 16 6 6 6 6 6 800 32 object_poison_loop 0 +dirt pile 322 2 128 255 255 255 0 0 0 SandMaggotDirtPile 1024 1 16 1 1 1 8 8 0 +undeadmissile1 323 1 1 20 20 40 9 255 255 255 1 0 1 SkullPoison 1024 12 16 3 1 1 1 1 1 1 1 1 4 pois 10 12 14 14 14 650 10 12 14 14 14 650 350 16 monster_poisonbolt 0 +undeadmissile2 324 1 1 20 20 40 9 255 255 255 1 0 1 SkullFire 1024 12 16 3 1 1 1 1 1 1 1 1 4 8 fire 9 12 14 16 16 340 18 12 14 16 16 340 8 monster_firebolt_1 sorceress_fireball_impact_1 0 +undeadmissile3 325 1 1 20 20 40 9 255 255 255 1 0 1 SkullIce 1024 12 16 3 1 1 1 1 1 1 1 1 4 8 cold 7 12 14 16 16 470 14 12 14 16 16 470 40 16 monster_icebolt_1 sorceress_iceblast_impact_1 0 +undeadmissile4 326 1 1 20 20 40 9 255 255 255 1 0 1 SkullUnholy 1024 12 16 3 1 1 1 1 1 1 1 1 4 8 7 10 10 11 11 75 11 10 10 11 11 75 16 monster_poisonbolt 0 +bonespiritexplode 327 1 10 1 1 12 255 255 255 0 0 0 BoneSpiritExplode 1024 13 16 1 1 1 1 0 +dopplezonexplode 328 1 1 25 255 255 255 0 0 0 DopplezonExplode 1024 25 16 1 1 1 1 0 +monbonespirit 329 7 13 7 10 5 Retarget Frame 5 Retarget Frame 12 12 128 3 255 255 255 1 0 1 BoneSpirit 1024 8 16 3 1 1 1 1 -30 1 1 1 1 1 1 4 8 mag 10 9 9 9 9 9 15 9 9 9 9 9 8 monster_bonespirit paladin_holybolt_impact_1 bonespiritexplode 0 +towermistfade 330 1 1 128 1 255 255 255 0 0 0 Mist_fade 1024 14 16 1 1 8 1 0 +countessfirewall 331 5 5 1000 1 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 1 fire 3 4 4 4 4 4 5 4 4 4 4 4 1 41 object_fire_loop_magic 0 +towerchestspawner 332 30 18 33 150 start delay 2 spawn interval divisor 5 radius 150 start delay 2 spawn interval divisor 5 radius 400 1 15 192 192 255 0 0 0 null 1024 2 16 1 1 1 8 1 towermisttrail 0 +hellmeteorlaunch1 333 1 1 22 255 255 255 0 0 0 meteorlavaburst 1024 11 16 8 1 0 +hellmeteorlaunch2 334 1 1 22 255 255 255 0 0 0 meteorlavaburst2 1024 11 16 1 8 1 0 +hellmeteorup 335 1 1 50 255 255 255 0 0 1 meteorlavaup 1024 9 16 1 8 1 0 +hellmeteordown 336 1 36 1 13 5 radius 1 length (does nothing) 5 radius 25 variable duration 75 density 225 5 255 255 255 0 0 1 meteorlavadown 1024 9 16 1 1 1 9 8 fire 5 5 5 5 5 5 15 5 5 5 5 5 1 firewall firesmall firemedium 0 +hellmeteorball 337 1 1 225 5 255 255 255 0 0 1 meteorlavarock 1024 9 16 8 1 0 +horadricstaff 338 31 1 440 255 255 255 0 0 1 HoradricStaff 1024 8 16 1 1 8 1 quest_horadric_staff_spin 0 +horadriclightning 339 1 1 20 20 30 3 255 255 255 0 0 1 LightningStrike 1024 8 16 1 1 8 64 32 monster_lightning_1 0 +horadriclight 340 1 1 225 2 255 255 255 0 0 1 HoradricLightBeamstreaks 1024 1 16 1 1 8 32 quest_horadric_staff_light 0 +regurgitatorcorpse 341 1 1 14 14 200 2 255 64 64 1 0 1 SlugMissile 1024 12 16 3 1 1 1 1 1 1 1 1 1 4 8 25 15 15 15 15 15 55 15 15 15 15 15 176 8 1 tentaclehead_missile_1 regurgitatorcorpseexpl 0 +regurgitatorcorpseexpl 342 1 1 12 13 255 64 64 0 0 0 Slug Missile Explode 1024 12 16 1 1 1 1 1 1 1 4 8 1 1 0 +highpriestlightning 343 1 1 20 20 15 1 255 64 64 0 0 0 HighPriestLightning 1024 9 16 3 1 1 1 1 1 1 1 4 8 ltng 8 12 12 12 12 12 30 14 14 14 14 14 8 monster_lightning_1 0 +icebreaksmallmelt 344 1 1 150 255 255 255 0 0 0 IceBreakSmallMelt 1024 12 16 1 1 8 4 0 +icebreaklargemelt 345 1 1 150 255 255 255 0 0 0 IceBreakLargeMelt 1024 12 16 1 1 8 4 0 +leapknockback 346 1 1 2 0 0 0 0 0 0 null 1024 2 16 3 1 2 1 1 8 8 1 0 +radamentdeath 347 32 19 400 15 255 255 255 0 0 0 null 1024 2 16 3 1 1 8 1 0 +radamenthandofgod 348 1 37 1 21 0 0 0 0 0 0 HandOfGod 1024 21 16 3 1 1 1 8 1 paladin_handofgod_bolt 0 +radamentholybolt 349 1 1 12 12 50 255 255 255 0 0 1 HolyBoltMissile 1024 16 16 3 1 1 1 1 1 1 8 8 1 quest_radament_holybolt_1 0 +taintedsuncontrol 350 33 1 300 255 255 255 0 0 1 null 1024 2 16 1 8 1 0 +taintedsunflash 351 1 38 1 12 4 255 255 255 0 0 1 yellowBallGlowIntro 1024 12 16 1 1 1 8 1 quest_tainted_sun_flash_1 0 +taintedsunball 352 34 1 12 12 300 255 255 255 0 0 1 yellowBallGlow2 1024 10 16 1 1 8 1 quest_tainted_sun_ball_1 0 +queendeathcenter 353 35 1 100 255 255 255 0 0 1 null 1024 2 16 1 8 1 0 +queendeathglob 354 1 39 1 6 6 20 255 255 255 0 0 0 QueenDeathGuts 1024 11 16 1 1 1 8 4 sandmaggotmama_goo_1 0 +queendeathsplat1 355 11 1 50 255 255 255 0 0 0 QueenDeathPuddle 1024 5 16 1 8 4 sandmaggotmama_goo_hit_1 0 +queendeathsplat2 356 11 1 50 255 255 255 0 0 0 QueenDeathPuddle2 1024 5 16 1 8 4 sandmaggotmama_goo_hit_1 0 +healingbolt 357 1 40 1 14 14 30 2 222 222 255 1 0 1 HolyBoltMissile 1024 16 16 3 1 1 1 1 1 1 8 1 0 +mephistoholedelay 358 1 1 50 0 0 0 0 0 0 null 1024 2 16 1 1 8 1 mephistoholebirth 0 +mephistoholebirth 359 1 1 25 0 0 0 0 0 0 smithholebirth 1024 21 16 1 1 1 8 1 mephistoholeneutral 0 +mephistoholeneutral 360 1 1 225 0 0 0 0 0 1 smithholeneutral 1024 21 16 1 1 1 8 1 mephistoholedeath 0 +mephistoholedeath 361 1 1 25 0 0 0 0 0 0 smithholedeath 1024 21 16 1 1 1 8 1 mephistoholedead 0 +mephistoholedead 362 11 1 400 0 0 0 0 0 1 smithholedead 1024 1 16 1 1 1 8 1 0 +durieldeathcontrol 363 36 1 400 0 0 0 0 0 1 null 1024 2 16 1 8 1 0 +durieldeathrock 364 1 41 1 40 0 0 0 0 0 1 Rock_large 1024 5 16 1 1 8 4 andariel_rock_1 0 +durieldeathdebris 365 1 1 12 12 40 0 0 0 0 0 1 Rock_small 1024 5 16 1 1 8 4 0 +durieldeathsmoke 366 1 1 25 0 0 0 0 0 0 FireSmoke 1024 26 16 1 1 1 8 4 0 +mephistoexplosion 367 1 1 12 255 255 255 0 0 0 MephistoMissileExplosion 1024 12 16 1 1 1 0 +orbmist 368 25 1 35 10 dest radius 3 init radius 1 frequency 2 2 400 2 255 125 125 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 compellingorb_mist_loop orbmisttrail 0 +orbmisttrail 369 1 1 3 3 50 2 255 125 125 0 0 1 mist_Fade_Orb_Loop 1024 14 16 1 1 1 1 8 1 compellingorb_mist_loop orbmistfade 0 +orbmistfade 370 1 1 3 3 15 2 255 125 125 0 0 0 mist_Fade_Orb 1024 14 16 1 1 8 1 0 +pilum 371 1 1 24 24 40 255 255 255 0 0 0 Pilum 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +diablo appears 372 37 1 300 255 255 255 0 0 0 null 1024 1 16 1 1 0 +hfcontrol 373 38 1 200 8 255 255 255 0 0 0 null 1024 1 16 1 1 1 1 1 0 +hffragment1 374 39 42 1 6 6 16 255 255 255 0 0 1 SoulForgeShard 1024 47 16 1 8 30 1 1 1 1 1 quest_hellforge_flash_1 0 +hffragment2 375 39 43 1 25 255 255 255 0 0 1 SoulForgeShard 1024 47 16 1 8 30 1 1 1 1 1 quest_hellforge_flash_1 0 +hffragment3 376 40 1 10 255 255 255 0 0 1 SoulForgeShard 1024 47 16 1 8 30 1 1 1 1 1 quest_hellforge_flash_1 0 +hfspirit1 377 41 1 8 4 55 255 255 255 0 0 1 SoulForgeRisingSoul 1024 33 16 1 8 19 1 1 1 1 1 quest_hellforge_soul_1 0 +hfreserved3 378 1 1 255 255 255 0 0 0 null 1024 1 16 1 1 1 1 1 0 +izual control 379 42 1 25 Lightning Start 150 Lightning Stop 200 255 255 255 0 0 0 null 1024 1 16 1 1 0 +izual mist loop 380 1 1 4 4 50 2 255 255 255 0 0 0 IzualDeathClouds 1024 16 16 1 1 1 1 1 8 1 izual_mist_loop izual mist fade 0 +izual mist fade 381 1 1 15 255 255 255 0 0 0 null 1024 1 16 1 1 8 1 0 +izual lightning 382 1 1 3 3 50 2 255 255 255 0 0 0 IzualDeathParticles 1024 25 16 3 1 1 1 1 1 1 8 8 1 0 +izual lightning trail 383 1 1 3 3 50 255 255 255 0 0 0 null 1024 1 16 3 1 1 1 1 1 1 8 8 1 0 +cairn stones bolt 384 1 1 280 drop height 70 drop speed 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 3 1 1 1 1 1 4 1 amazon_lightning_1 0 +bomb in air 385 1 44 1 36 16 16 50 255 255 255 1 0 1 expansion\FireTraumaMissile 1024 20 16 6 1 1 1 1 1 8 1 bomb on ground bomb on ground 0 +bomb on ground 386 1 1 3 4 radius (0 = aurarng calc from skill) 5 255 255 255 0 0 0 expansion\FireTraumaGround 1024 1 16 6 1 1 1 1 1 1 1 1 1 1 Fire Trauma 5 2 8 1 bomb explosion 0 +bomb explosion 387 1 1 20 5 255 178 64 0 0 0 expansion\FireTraumaXplosion 1024 20 16 3 1 1 1 1 1 1 1 5 2 8 1 sorceress_firebolt_impact_1 0 +shock field in air 388 1 44 1 36 12 12 50 255 255 255 1 0 0 expansion\caltrops 1024 8 16 1 7 6 1 1 1 1 1 8 32 shock field on ground shock field on ground 0 +shock field on ground 389 1 1 90 3 255 255 255 0 0 1 Expansion\ShockField 1024 10 16 1 3 1 1 1 2 1 1 1 Shock Field 8 8 41 assassin_staticfield 0 +throwingstar 390 1 1 24 24 100 50 255 255 255 1 0 1 expansion\ThrowingStarMissile 1024 7 16 1 4 7 3 1 1 1 1 1 1 1 1 Tiger Strike 4 8 32 0 +acidspray 391 1 1 60 frames that acid lasts 12 12 6 2 255 255 255 1 0 1 frogpoisonmissile 1024 7 16 3 1 1 1 1 1 1 1 1 1 Cobra Strike 4 8 16 0 +blade creeper 392 43 20 37 10 5 255 255 255 1 0 0 null 1024 2 16 3 1 5 3 1 1 1 1 Blade Sentinel 4 8 1 bladecreeper_emerge_1 0 +distraction 393 44 21 100 255 255 255 1 0 1 BigheadLightningMissile 1024 3 16 1 1 1 1 1 distraction fog distraction fog 0 +distraction fog 394 45 1 36 spawn rate 1 number 6 radius 10 5 255 255 255 1 0 1 null 1024 2 16 3 3 1 1 Quickness 1 distraction puff 0 +distraction puff 395 1 1 25 255 255 255 0 0 0 FireSmoke 1024 26 16 1 1 1 1 1 4 8 4 0 +distraction start 396 1 1 11 255 255 255 1 0 0 ExpArrowExplode 1024 11 16 3 1 3 1 1 1 4 8 1 0 +distraction end 397 1 1 11 255 255 255 1 0 0 ExpArrowExplode 1024 11 16 3 1 3 1 1 1 4 8 1 0 +impinfernoflame1 398 1 1 8 "Mana Use, 16ths." 16 Minimum range 20 20 80 255 178 64 1 0 0 Flamethrower 1024 15 16 3 1 1 1 1 Imp Inferno 32 1 sorceress_inferno 0 +impinfernoflame2 399 1 1 8 "Mana Use, 16ths." 16 Minimum range 20 20 80 255 178 64 1 0 0 Flamethrower2 1024 15 16 3 1 1 1 1 Imp Inferno 32 1 sorceress_inferno 0 +baallightningbolt 400 1 1 25 255 255 255 2 0 2 null 1024 2 16 6 1 1 1 1 1 1 1 Lightning 4 1 0 +baallightningtrail 401 1 5 255 255 255 2 0 2 expansion\lightningpiece 1024 1 16 6 1 1 1 1 1 1 Lightning 8 monster_lightning_1 0 +baallightningbolt2 402 1 25 255 255 255 2 0 2 null 1024 2 16 6 1 1 1 1 1 1 1 Lightning 4 1 monster_lightning_1 0 +baallightningtrail2 403 1 5 255 255 255 2 0 2 expansion\lightningpiece 1024 1 16 6 1 1 1 1 1 1 Lightning 8 monster_lightning_1 0 +impfireball 404 1 1 1 5 damage radius 18 18 50 255 178 64 1 0 1 expansion\ImpFireball 1024 20 16 6 1 1 1 1 1 1 1 1 5 2 8 fire 15 5 10 15 15 15 35 5 10 15 15 15 1 imp_missile_1 sorceress_fireball_impact_1 impfireballexplode 0 +impfireballexplode 405 1 12 255 178 64 0 0 0 ExpArrowExplode 1024 11 16 1 1 1 1 1 1 1 1 5 2 8 1 0 +catapultchargedball on 406 43 10 255 255 255 0 0 1 BigheadLightningMissile 1024 3 16 1 1 1 1 8 1 0 +catapultchargedball 407 1 46 1 38 4 Charged bolts 2 Charged bolts per level 4 Charged bolts 2 Charged bolts per level 25 5 143 143 255 5 0 1 BigheadLightningMissile 1024 3 16 6 1 1 1 1 1 1 1 8 1 amazon_lightning_1 catapultchargedballbolt catapultchargedballbolt 0 +catapultchargedballbolt 408 1 10 1 12 12 20 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 1 Charged Bolt 4 ltng 9 4 3 3 3 3 14 4 3 3 3 3 16 sorceress_chargedbolt_1 lightning 0 +imp spawn monsters 409 1 1 39 12 255 178 64 0 0 0 ExpArrowExplode 1024 11 16 1 1 1 1 1 1 1 1 4 8 1 0 +catapult spike ball on 410 43 50 255 255 255 1 0 0 Meteor 1024 12 16 1 1 8 1 0 +catapult spike ball 411 1 47 1 40 0 spikes (0 = skill) 0 spikes per lvl 0 spikes (0 = skill) 0 spikes per lvl 25 255 255 255 1 0 0 Meteor 1024 12 16 1 7 6 1 1 1 8 1 sorceress_fireball_impact_1 catapult spike in air catapult spike in air fireexplode 0 +catapult spike in air 412 1 44 1 36 12 12 50 255 255 255 1 0 0 expansion\FireSpikes 1024 8 16 1 7 6 1 1 1 1 1 8 32 catapult spike on ground catapult spike on ground 0 +catapult spike on ground 413 1 1 180 255 255 255 0 0 1 expansion\FireSpikesGround 1024 8 16 1 1 1 1 1 1 1 1 8 fire 10 1 1 1 1 1 21 1 1 1 1 1 32 catapult spike explosion 0 +catapult spike explosion 414 1 36 255 255 255 0 0 0 expansion\FireSpikeExplode 1024 14 16 1 1 1 1 1 1 1 1 8 1 sorceress_firebolt_impact_1 0 +catapult cold ball on 415 43 1 50 255 255 255 1 0 1 IceOrb 1024 16 16 1 1 1 8 1 0 +catapult cold ball 416 1 48 1 1 3 damage radius 25 5 143 143 255 5 0 1 IceOrb 1024 16 16 6 1 1 1 1 1 1 1 8 cold 8 5 5 5 5 5 14 5 5 5 5 5 100 25 25 25 1 sorceress_glacialspike_1 sorceress_iceblast_impact_1 0 +catapult cold explosion 417 1 31 1 6 6 15 255 255 255 0 0 0 IceBreakLarge 1024 15 16 6 1 1 1 1 1 1 1 1 4 8 1 0 +catapult plague ball on 418 43 1 50 255 255 255 0 0 1 expansion\catapultpoisonbomb 1024 10 16 1 1 1 8 1 0 +catapult plague ball 419 1 2 1 2 2 ring 2 density 2 ring 1 density 3 subloops 2 ring 2 density 2 ring 1 density 3 subloops 25 5 143 143 255 0 0 1 expansion\catapultpoisonbomb 1024 10 16 6 1 1 1 1 1 1 1 8 1 weapon_throw_1 sandmaggotmama_goo_1 catapult plague cloud catapult plague cloud 0 +catapult plague cloud 420 4 1 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 80 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 2 1 1 3 pois 8 1 1 1 1 1 13 1 1 1 1 1 600 1 poisonpuff 0 +catapult meteor ball on 421 43 1 50 255 255 255 1 0 0 Meteor 1024 12 16 1 1 1 8 1 0 +catapult meteor ball 422 1 50 1 14 1 increment 10 # rocks 15 lob velocity 25 5 143 143 255 5 0 1 Meteor 1024 12 16 6 1 1 1 1 1 1 1 5 2 8 fire 10 2 2 2 2 2 11 2 2 2 2 2 1 sorceress_fireball_impact_1 catapult meteor fire moltenboulder-flyingrocks catapult meteor fire 0 +catapult meteor fire 423 5 5 90 25 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 2 1 4 fire 7 2 1 1 1 1 16 2 1 1 1 1 32 1 41 0 +tower death 424 11 1 255 255 255 0 0 0 expansion\TowerDebris 1024 1 16 1 8 1 0 +healing vortex 425 1 1 12 12 100 25 5 255 178 64 4 0 1 expansion\overseer_missile 1024 8 16 3 1 1 1 1 1 1 1 Healing Vortex 8 8 overseer_healmissile paladin_holybolt_1 healing 0 +suicidecorpseexplode 426 1 1 13 255 178 64 0 0 0 CorpseExplodeGuts 1024 13 16 1 1 1 1 1 8 4 1 0 +suicidefireexplode 427 1 1 13 255 178 64 0 0 0 Fsexplode 1024 15 16 1 1 1 1 1 1 8 16 0 +suicideiceexplode 428 1 1 13 255 178 64 0 0 0 FreezeExplodeCenter 1024 15 16 1 1 1 1 1 1 8 1 0 +explodingjavalin 429 1 1 44 2 damage radius 24 24 40 255 255 255 1 0 0 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 1 4 2 8 128 fire 8 16 6 32 explodingjavalinexp 0 +explodingjavalinexp 430 1 1 25 25 12 15 255 178 64 0 0 0 ExpArrowExplode 1024 11 16 1 1 1 1 1 1 5 2 8 1 0 +lightingtrailingjavalin 431 46 51 22 45 3 subloops 3 subloops 10 bolts 1 random path 10 bolts 1 random path 24 24 40 255 255 255 1 0 0 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 6 32 lightjavalinexplosion lightjavalintrail lightjavalinexplosion lightjavalintrail lightjavalinexplosion 0 +lightjavalintrail 432 1 1 12 12 20 3 4 255 255 255 2 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 1 4 64 16 0 +lightjavalinexplosion 433 1 1 12 12 20 3 4 255 255 255 2 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 1 5 2 64 16 0 +icejavalin 434 1 1 44 1 damage radius 24 24 40 255 255 255 1 0 0 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 1 8 128 6 32 icejavalinexplode 0 +icejavalinexplode 435 1 1 16 11 81 81 255 0 0 0 IceArrowExplode 1024 16 16 1 1 1 1 1 1 1 5 2 8 1 0 +plaguejavelin2 436 1 2 1 2 1 ring 2 density 2 ring 1 density 3 subloops 1 ring 2 density 2 ring 1 density 3 subloops 24 24 40 255 255 255 1 0 0 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 1 8 128 6 32 plaguejavlinexplode plaguejavlinexplode plaguejavlinexplode 0 +plaguejavlinexplode 437 4 1 24 spawn rate 1 number 6 radius 15 25 255 255 255 0 0 0 PoisonSmokePuff 1024 26 16 1 1 1 1 1 1 5 2 8 4 poisonpuff 0 +advlighttrailingjav 438 46 51 22 45 3 subloops 3 subloops 18 bolts 1 random path 18 bolts 1 random path 24 24 40 255 255 255 1 0 0 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 8 128 6 32 advlightjavexplode advlighttrailingjav2 advlightjavexplode advlighttrailingjav2 advlightjavexplode 0 +advlighttrailingjav2 439 1 1 12 12 20 3 4 255 255 255 2 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 4 64 16 0 +advlightjavexplode 440 1 1 12 12 20 3 4 255 255 255 2 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 5 2 64 16 0 +sucfireball 441 68 23 1 3 subloops 3 subloops 3 damage radius 18 18 50 10 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 1 1 1 1 1 Fire Ball 4 fire 16 sucfireballtrail 0 +sucfireballexplode 442 1 1 12 13 255 178 64 0 0 0 FireArrowExplode2 1024 12 16 5 1 1 1 1 1 1 1 4 8 1 0 +sucfireballtrail 443 1 1 36 5 4 255 178 64 0 0 1 groundFiresmall 1024 37 16 1 12 36 3 1 1 1 1 1 1 Firestorm 4 32 1 0 +sucshockfieldmissile 444 1 1 30 30 25 6 255 255 255 0 0 1 LightningJavelin 1024 5 16 3 1 1 1 2 1 1 1 1 1 Lightning Bolt 4 64 16 0 +sucshockfieldmissileexp 445 1 1 13 0 0 0 0 0 0 teethexplode 1024 13 16 1 1 1 8 1 0 +sucshockfield 446 1 1 36 5 255 178 64 0 0 0 expansion\FireSpikeExplode 1024 14 16 3 1 1 1 1 1 8 1 0 +hellfiremissile 447 1 1 60 0 0 0 0 0 1 MeteorTail 1024 12 16 1 1 1 1 8 1 0 +hellfireexa 448 1 1 12 255 255 255 0 0 0 BoneSpiritExplode 1024 13 16 1 1 1 0 +hellfireexb 449 1 1 25 255 255 255 0 0 0 DopplezonExplode 1024 25 16 1 1 1 0 +imp charged bolt 450 1 1 12 12 98 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 4 ltng 10 3 3 3 3 3 20 3 3 3 3 3 16 sorceress_chargedbolt_1 0 +imp teleport 451 1 1 1 15 14 255 255 255 0 0 0 expansion\impteleport 768 13 16 1 1 1 1 8 1 0 +moltenboulder 452 47 52 6 47 14 3 explosion radius 4 no light freq 0 radius (0 = skill) 1 increment 10 # rocks 15 lob velocity 1 size 50 knockback% 8 8 1 85 -1 255 178 64 0 0 1 expansion\MoltenBoulderRoll 1024 10 16 8 1 1 2 1 1 1 1 1 Molten Boulder 5 2 32 8 druid_boulderloop sorceress_fireball_1 moltenboulderfirepath moltenboulderfirepath firewall firesmall firemedium moltenboulderexplode moltenboulder-flyingrocks moltenboulderfirepath 0 +moltenboulderemerge 453 1 53 1 48 3 explosion radius 2 bounces 50 damping 10 lob 3 3 5 255 178 64 5 0 0 expansion\MoltenBoulderEmerge 1024 6 16 8 1 1 2 1 1 1 32 8 druid_bouldereremerge moltenboulder moltenboulder 0 +moltenboulderexplode 454 1 13 255 178 64 0 0 0 null 1024 1 16 2 1 1 1 1 32 1 druid_boulderexplode_1 0 +moltenboulderfirepath 455 5 5 37 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 2 1 1 2 fire 2 1 2 6 10 12 4 1 2 6 10 12 (skill('Volcano'.blvl)+skill('Eruption'.blvl)+skill('Armageddon'.blvl))*12 32 1 41 object_fire_loop_house 0 +moltenboulder-flyingrocks 456 1 16 255 178 64 0 0 1 expansion\MoltenFragmentD 1024 16 16 8 1 1 1 1 1 32 8 impact_fire_1 0 +firestorm 457 5 1 15 5 4 255 178 64 0 0 1 groundFiresmall 1024 37 16 1 12 36 3 2 1 1 1 Firestorm 32 1 41 object_fire_loop_house 0 +firestormmaker 458 6 6 4 no light freq 15 15 20 1 3 255 178 64 2 0 1 groundFireMedium 1024 2 16 1 1 2 3 1 1 2 1 1 1 object_fire_loop_house firestorm firestorm firesmall firemedium 0 +arcticblast1 459 8 1 8 "Mana Use, 16ths." 7 Minimum range 3 Subloops 20 20 30 255 255 255 1 0 2 null 1024 2 16 3 1 1 2 1 1 Arctic Blast 4 32 16 41 druid_arcticblast arcticblasttrail 0 +arcticblast2 460 8 1 8 "Mana Use, 16ths." 7 Minimum range 3 Subloops 20 20 30 255 255 255 1 0 2 null 1024 2 16 3 1 2 1 1 Arctic Blast 4 32 16 41 druid_arcticblast arcticblasttrail 0 +erruption center 461 48 25 55 255 255 255 0 0 1 null 1024 2 16 1 1 1 1 1 1 1 erruption crack 1 erruption crack 1 erruption smoke 1 0 +erruption crack 1 462 1 1 8 84 5 255 178 64 0 0 1 expansion\EruptionCrack 512 41 16 3 1 1 1 3 25 1 1 Eruption 32 4 sorceress_inferno fire_hit 0 +erruption crack 2 463 1 1 8 84 5 255 178 64 0 0 1 null 1024 2 16 3 1 1 1 3 1 1 Eruption 32 1 sorceress_inferno fire_hit 0 +erruption smoke 1 464 1 1 84 255 255 255 0 0 1 expansion\EruptionSmoke 512 41 16 25 1 1 0 +erruption smoke 2 465 1 1 84 255 255 255 0 0 1 null 1024 2 16 1 1 0 +vine beast walk 1 466 1 1 Mana added min 3 Mana added max 200 255 255 255 0 0 0 expansion\Pod_walk_1 1024 31 16 1 1 2 1 1 1 1 32 8 druidpod_walk1_1 vine beast walk 1 fade 0 +vine beast walk 2 467 1 1 Mana added min 3 Mana added max 200 255 255 255 0 0 0 expansion\Pod_walk_2 1024 31 16 1 1 2 1 1 1 1 32 8 druidpod_walk2_1 vine beast walk 2 fade 0 +vine beast neutral 468 1 1 Mana added min 3 Mana added max 200 255 255 255 0 0 0 expansion\Pod_neutral_1 1024 31 16 1 1 2 1 1 1 1 32 1 druidpod_neutral_1 vine beast neutral fade 0 +vine beast attack 469 11 1 Mana added min 3 Mana added max 75 255 255 255 0 0 0 expansion\Pod_attack_1 768 51 16 1 1 2 1 1 1 32 4 0 +vine beast death 470 11 1 Mana added min 3 Mana added max 51 255 255 255 0 0 0 expansion\Pod_death_1 1024 21 16 1 1 2 1 1 1 32 4 0 +vines 471 49 26 9 Drop Trail delay 9 Drop Trail delay 7 7 20 255 255 255 0 0 1 null 1024 1 16 1 1 vines trail vines trail 0 +vines trail 472 1 54 1 16 100 255 255 255 0 0 0 Expansion\vines 128 12 16 3 1 1 3 1 1 8 vines wither 0 +vines wither 473 1 1 16 100 255 255 255 0 0 0 Expansion\Vines_Death 128 12 16 1 1 0 +plague vines 474 49 26 9 Drop Trail delay 9 Drop Trail delay 7 7 20 255 255 255 0 0 1 null 1024 1 16 1 1 plague vines trail plague vines trail 0 +plague vines trail 475 1 54 1 50 15 Hit delay 100 255 255 255 0 0 0 Expansion\vines 128 12 16 3 1 1 1 3 1 1 Plague Poppy 8 plague vines wither 0 +plague vines wither 476 1 1 100 255 255 255 0 0 0 Expansion\Vines_Death 128 12 16 1 8 0 +twister 477 1 1 9 0 stun len (0 = skill) 24 24 -400 40 255 255 255 0 0 1 expansion\twister 1024 40 16 1 18 36 3 1 1 10 2 1 1 1 1 1 Twister 4 32 4 druid_twister sorceress_blizzard_impact_1 0 +tornado 478 1 27 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 8 8 75 255 255 255 0 0 1 expansion\tornado 1024 40 16 1 12 36 3 1 1 1 25 3 1 1 1 1 1 Tornado 5 2 32 1 druid_tornado sorceress_blizzard_impact_1 0 +volcano 479 50 28 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 2 start frame 128 end frame 30 lob 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 2 start frame 128 end frame 30 lob 150 0 0 0 0 0 1 Expansion\volcano_base 1024 30 16 1 17 18 3 1 1 1 6 3 1 25 1 1 1 Volcano 4 1 druid_volcano volcano debris 2 volcano debris 2 0 +volcano overlay fire 480 1 1 150 10 255 64 64 0 0 1 Expansion\volcano_Fire 1024 30 16 1 6 14 3 3 25 1 1 1 sorceress_inferno 0 +volcano debris 2 481 1 55 1 51 14 14 16 0 0 0 0 0 1 expansion\volcano_rock 1024 15 16 1 1 1 1 1 1 1 1 volcano small fire volcano explosion volcano small fire 0 +volcano explosion 482 1 1 18 0 0 0 0 0 0 Expansion\rock_lava_explosion 1024 18 16 1 1 1 1 0 +volcano small fire 483 1 1 18 0 0 0 0 0 0 Expansion\rock_lava_pool 1024 18 16 3 1 1 4 2 1 1 1 Volcano 4 8 32 1 andariel_fire_loop 0 +dragonbreath missile 484 1 1 12 12 15 255 255 255 1 0 1 Expansion\firenova 1024 11 16 1 6 7 3 1 1 1 5 1 1 1 1 Dragon Flight 8 32 16 sorceress_fireball_1 0 +lureprojectile 485 1 1 12 12 50 255 255 255 1 0 0 expansion\FireSpikes 1024 8 16 1 7 6 1 1 1 1 8 32 0 +lurecenter 486 1 1 25 3 81 81 255 0 0 0 Expansion\LureCloud 1024 26 16 1 1 1 1 8 48 4 0 +lurecloud 487 1 1 25 0 0 0 0 0 0 Expansion\LureCloud 1024 26 16 1 1 1 1 8 48 4 0 +impmiss1 488 1 1 10 10 80 5 255 64 64 1 0 1 Expansion\impmissile01 1024 10 16 3 1 1 1 1 1 1 1 1 4 8 fire 10 12 12 12 12 12 15 12 12 12 12 12 16 succubus_msissile_1 succubus_msissile_impact shamanexp 0 +impmiss2 489 1 1 12 12 80 5 255 64 64 1 0 1 Expansion\impmissile01 1024 10 16 3 1 1 1 1 1 1 1 1 4 8 fire 12 12 12 12 12 12 17 12 12 12 12 12 16 succubus_msissile_1 succubus_msissile_impact shamanexp 0 +impmiss3 490 1 1 14 14 80 5 255 64 64 1 0 1 Expansion\impmissile01 1024 10 16 3 1 1 1 1 1 1 1 1 4 8 fire 14 12 12 12 12 12 22 12 12 12 12 12 16 succubus_msissile_1 succubus_msissile_impact shamanexp 0 +impmiss4 491 1 1 16 16 80 5 255 64 64 1 0 1 Expansion\impmissile01 1024 10 16 3 1 1 1 1 1 1 1 1 4 8 fire 20 12 12 12 12 12 25 12 12 12 12 12 16 succubus_msissile_1 succubus_msissile_impact shamanexp 0 +impmiss5 492 1 1 20 20 80 5 255 64 64 1 0 1 Expansion\impmissile01 1024 10 16 3 1 1 1 1 1 1 1 1 4 8 fire 23 12 12 12 12 12 33 12 12 12 12 12 16 succubus_msissile_1 succubus_msissile_impact shamanexp 0 +frozenhorror arcticblast1 493 1 1 8 "Mana Use, 16ths." 7 Minimum range 12 12 30 255 255 255 3 0 0 expansion\ArcticBlastIce 1024 16 16 3 1 1 1 1 1 7 cold 3 3 3 3 3 3 4 4 4 4 4 4 100 10 10 10 32 16 druid_arcticblast 0 +frozenhorror arcticblast2 494 1 1 8 "Mana Use, 16ths." 7 Minimum range 12 12 30 255 255 255 3 0 0 expansion\ArcticBlastIce_2 1024 16 16 3 1 1 1 1 1 16 druid_arcticblast 0 +sentrychargedbolt 495 1 10 1 12 45 2 32 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 1 1 1 1 Charged Bolt Sentry 4 64 16 sorceress_chargedbolt_1 0 +sentryspikeinair 496 1 44 1 36 12 12 50 255 255 255 1 0 0 expansion\FireSpikes 1024 8 16 1 7 6 1 1 1 1 1 8 16 sentryspikeonground sentryspikeonground 0 +sentryspikeonground 497 1 1 180 60 255 255 255 0 0 1 expansion\FireSpikesGround 1024 8 16 3 1 1 1 1 1 1 1 1 1 Wake of Fire Sentry 8 16 bomb explosion 0 +recycler delay 498 51 29 45 active frame 10 launch vines frame 23 active frame 3 extra vines 1 vine radius 47 0 0 0 0 0 0 null 1024 1 16 1 1 necromancer_corpseexp_1 steallife recycler vine recycler explosion 0 +recycler vine 499 1 56 1 100 Slow percent 15 Frames 60 255 255 255 0 0 0 Expansion\vines 256 12 16 1 1 8 recycler fade 0 +recycler fade 500 1 1 100 255 255 255 0 0 0 Expansion\Vines_Death 256 12 16 1 1 0 +recycler explosion 501 11 1 13 5 255 178 64 0 0 0 CorpseExplodeGuts 1024 13 16 1 1 1 1 1 1 8 4 1 0 +death mauler 502 1 1 60 255 255 255 0 30 0 expansion\deathmaulerfingers 384 8 16 3 1 1 1 1 10 2 1 1 1 DeathMaul 4 8 16 deathmauler_spikes_1 0 +death mauler trail 503 1 44 1 6 spacing 4 Draw delay 36 255 255 255 0 0 0 expansion\deathmaulermissile 4096 31 16 3 1 1 1 2 1 1 DeathMaul 4 8 16 death mauler trail fade 0 +death mauler trail fade 504 1 1 6 spacing 4 Draw delay 36 255 255 255 0 0 0 expansion\deathmaulerfadeout 1024 31 16 3 1 1 1 2 1 1 DeathMaul 8 16 0 +bladefury1 505 1 1 1 increment 1 24 24 22 0 0 0 1 0 0 null 1024 1 16 3 1 2 1 1 1 1 1 Blade Fury 4 10 1 assassin_bladefury_throw_1 assassin_bladefury_hit bladefragment1 0 +bladefragment1 506 1 6 1 34 19 50 Chance to bounce on enemy hit 3 missile split count 5 missile split angle 2 missile frame reduction on split (min 1) 10 original wall bounce min frames 5 min bounce frames 3 max additional bounces 20 Bounce 'on hit effects' chance 75 leech effect % 34 34 28 0 0 0 1 0 1 Expansion\bladefury_B 1024 7 16 3 1 1 1 1 2 1 1 1 1 1 1 1 Blade Fury 4 10 1 assassin_bladefury_throw_1 assassin_bladefury_hit bladefragment1 bladefragment1 0 +bladefury2 507 1 1 1 increment 1 24 24 22 0 0 0 1 0 0 null 1024 1 16 3 1 1 1 1 1 1 1 Blade Fury 4 10 1 assassin_bladefury_throw_1 assassin_bladefury_hit bladefragment2 0 +bladefragment2 508 1 1 34 34 20 0 0 0 1 0 1 Expansion\bladefury 1024 7 32 3 1 1 2 2 1 1 1 1 1 Blade Fury 4 10 1 assassin_bladefury_throw_1 assassin_bladefury_hit bladefragment2 0 +bladefury3 509 1 1 1 increment 1 24 24 22 0 0 0 1 0 0 null 1024 1 16 3 1 1 1 1 1 1 1 Blade Fury 4 10 1 assassin_bladefury_throw_1 assassin_bladefury_hit bladefragment3 0 +bladefragment3 510 1 1 34 34 20 0 0 0 1 0 1 Expansion\bladefury_C 1024 7 32 3 1 2 1 1 1 1 1 Blade Fury 4 8 10 1 assassin_bladefury_throw_1 assassin_bladefury_hit bladefragment3 0 +shockwave 511 1 1 7 28 28 16 255 255 255 0 0 0 expansion\shockwave 1024 7 8 3 1 1 1 4 3 1 1 1 1 Shock Wave 4 64 8 druid_shockwave 0 +lightningtalons 512 1 1 30 30 25 4 255 255 255 0 0 0 null 1024 1 16 3 1 1 2 1 1 1 1 Feral Rage 4 64 1 0 +lightningtalonstrail 513 1 1 12 3 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 Feral Rage 8 ltng 2 2 2 2 2 2 5 2 2 2 2 2 64 32 0 +phoenixtrail 514 1 1 90 25 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 1 Hunger 32 1 0 +rabiesplague 515 1 30 1 freq 7 radius 30 5 0 0 0 1 0 0 null 1024 2 16 3 20 1 8 1 rabiescontagion 0 +rabiescontagion 516 1 1 53 11 7 7 25 0 0 0 0 2 0 null 1024 1 16 3 1 1 1 1 Rabies 8 1 0 +wake of destruction maker 517 52 31 10 10 50 8 255 178 64 0 0 1 groundFireSmall 1024 2 16 1 1 2 8 1 1 1 1 4 2 1 1 1 Wake of Fire Sentry 4 8 32 1 205 wake of destruction wake of destruction 0 +wake of destruction 518 1 1 8 8 20 5 4 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 1 4 1 1 1 1 Wake of Fire Sentry 4 32 1 205 0 +deathsentryexplode 519 1 1 24 0 0 0 0 0 0 Expansion\dethsentry02 1024 12 16 1 1 1 weapon_throw_1 0 +tigerfury 520 53 32 5 retarget frame 5 retarget frame 12 12 128 3 255 255 255 1 0 1 BoneSpirit 1024 8 16 3 1 1 1 1 1 1 1 1 Royal Strike 8 8 tigerfurytrail2 tigerfurytrail tigerfurytrail 0 +tigerfurytrail 521 5 1 20 5 4 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 1 1 1 1 fire 5 5 5 5 5 5 10 5 5 5 5 5 100 10 10 10 32 1 0 +tigerfurytrail2 522 1 1 12 255 255 255 0 0 0 BoneSpiritExplode 1024 13 16 1 1 1 Royal Strike 1 0 +inferno sentry 1 523 1 1 8 "Mana Use, 16ths." 12 Minimum range 18 18 40 5 255 178 64 1 0 0 Flamethrower 1024 15 16 3 1 2 1 1 1 Inferno Sentry 4 32 1 82 sorceress_inferno 0 +inferno sentry 2 524 1 1 8 "Mana Use, 16ths." 12 Minimum range 18 18 40 5 255 178 64 1 0 0 Flamethrower2 1024 15 16 3 1 2 1 1 1 Inferno Sentry 4 32 1 82 sorceress_inferno 0 +ancient throwing axe 525 1 1 24 24 20 255 255 255 1 0 1 MissileHandAxe 1024 8 16 3 1 1 1 1 1 1 1 1 1 4 8 128 2 32 0 +sentrychainlightningbolt 526 8 16 1 12 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 30 30 25 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 1 1 4 2 1 1 1 1 Chain Lightning Sentry 4 64 32 sorceress_lightning_1 lightning sentrychainlightninghit 0 +sentrychainlightninghit 527 1 10 1 12 3 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 Chain Lightning Sentry 8 ltng 2 2 2 2 2 2 5 2 2 2 2 2 64 32 lightning 0 +anya center 528 54 300 0 0 0 0 0 0 null 1024 1 16 1 1 0 +anya icicle 529 1 1 0 0 0 0 0 0 expansion\icicle 1024 10 16 1 1 1 1 1 sorceress_glacialspike_1 anya iceimpact 0 +anya iceimpact 530 1 10 0 0 0 0 0 0 expansion\iceimpact 1024 10 16 1 1 1 0 +anya icesteam 531 1 30 0 0 0 0 0 0 expansion\icecavequest_steam 1024 30 16 1 1 1 0 +anya icemagic 532 1 30 0 0 0 0 0 0 expansion\icecavequest_magic 1024 30 16 1 1 1 quest_anyasteam 0 +dragontail missile 533 1 1 16 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 8 1 0 +dragonflight 534 1 1 15 255 255 255 0 0 1 expansion\FirestormEmitter 1024 16 16 3 1 1 1 1 1 1 1 Dragon Tail 1 0 +dragonflightmaker 535 1 1 8 8 20 255 255 255 0 0 1 expansion\FirestormEmitter 1024 16 16 3 1 1 1 1 1 1 1 burn 20 4 4 4 4 4 10 4 4 4 4 4 100 20 20 20 1 0 +progressive radius damage 536 1 1 8 8 20 255 255 255 0 0 1 null 1024 1 16 3 1 1 1 1 1 1 1 4 1 0 +vine beast walk 1 fade 537 1 1 11 255 255 255 0 0 0 expansion\Pod_Jump_FadeOut 1024 11 16 3 1 1 1 1 1 1 0 +vine beast walk 2 fade 538 1 1 31 255 255 255 0 0 0 expansion\deathmaulerfadeout 1024 31 16 3 1 1 1 1 1 1 0 +vine beast neutral fade 539 1 1 11 255 255 255 0 0 0 expansion\Pod_Neutral_FadeOut 1024 11 16 3 1 1 1 1 1 1 0 +vine recycler delay 540 51 33 45 activate frame 20 launch vines frame 45 active frame 47 0 0 0 0 0 0 null 1024 1 16 1 1 stealmana recycler vine recycler explosion 0 +ancient death center 541 55 1 3 3 400 2 255 125 125 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 0 +ancient death cloud 542 1 1 3 3 50 2 255 125 125 0 0 1 expansion\AncientDeathMissile 1024 16 16 1 4 12 1 1 1 1 8 1 quest_ancients_cloud 0 +lightning charge up nova 543 1 1 24 24 -1000 13 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 1 4 1 1 1 1 Nova 4 64 16 0 +chainlightningcharge up 544 1 1 30 30 25 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 1 1 4 2 1 1 1 1 Chain Lightning 4 64 32 0 +pain worm appear 545 1 1 25 5 255 178 64 0 0 0 Revive 1024 25 16 1 1 8 1 0 +baal taunt control 546 56 34 25 initial delay 3 missile 1 delay 45 missile 2 delay 0 missile 3 delay 25 initial delay 3 missile 1 delay 45 missile 2 delay 0 missile 3 delay 75 255 255 255 0 0 1 null 1024 1 16 3 1 1 1 1 1 1 baal taunt lightning control baal taunt poison control baal taunt lightning control baal taunt poison control 0 +baal taunt lightning 547 8 1 10 Random range 3 Subloops 30 30 10 2 255 255 255 0 0 2 null 1024 2 16 3 1 1 1 10 2 1 1 1 1 4 8 ltng 15 20 20 20 20 20 45 20 20 20 20 20 64 1 lightninghit 0 +baal taunt lightning trail 548 1 1 30 30 25 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 1 10 2 1 1 1 1 1 4 64 32 0 +baal taunt poison 549 4 1 4 "Slow drift speed, fourths." 8 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 255 255 255 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 2 1 1 4 pois 14 4 5 8 8 8 25 4 5 8 8 8 50 8 poisonpuff 0 +baal spawn monsters 550 1 57 1 54 10 radius 20 density 12 12 60 5 81 81 255 1 0 1 Expansion\baalsummonmissile2 1024 8 8 6 1 1 1 1 1 4 1 baal spawn monsters exp 0 +mindblast hit 551 1 1 10 255 255 255 0 0 0 Expansion\Mindblast 1024 10 16 1 1 1 1 1 0 +blade shield missile 552 1 1 18 30 250 100 5 255 255 255 3 0 1 Expansion\blade_shield_missile 1024 5 16 3 1 3 1 1 1 1 Blade Shield 5 1 1 0 +blade shield attachment 553 57 1 500 100 0 0 0 0 0 0 null 1024 1 16 3 1 1 1 blade shield missile 0 +baal inferno 554 1 1 55 12 Minimum range 50 mana drain % 20 40 250 2048 5 255 255 255 1 0 0 Expansion\baalmissile 1024 14 12 3 1 1 4 3 1 1 1 1 Baal Inferno 4 1 baal_missile_1 0 +baal nova 555 1 1 20 20 40 5 255 255 255 0 0 0 Expansion\baalsummonmissile 1024 8 12 3 1 1 1 1 4 2 1 1 1 Baal Nova 4 8 baal_novacast shamanexp 0 +fistsoffireexplode 556 69 1 16 15 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 1 4 8 1 1 fistsoffirefirewall 0 +fistsoffirefirewall 557 5 1 64 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 2 1 1 3 1 fire 1 1 2 3 4 5 2 1 3 4 5 6 (skill('Royal Strike'.blvl)) * 26 32 1 0 +clawsofthunderbolt 558 1 67 1 4 280 z height offset 0 x movement offset ( * 256) 0 y movement offset ( * 256) -81920 z movement offset ( * 256) 18 18 32 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 4 2 1 1 1 1 4 8 1 ltng 5 3 5 8 10 13 20 10 20 30 40 50 skill('Dragon Claw'.blvl) * 16 64 16 cotthunderstorm cotthunderstorm 0 +clawsofthundernova 559 1 1 24 24 -1000 13 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 1 4 8 1 ltng 5 5 20 35 50 65 30 10 30 50 70 90 skill('Dragon Claw'.blvl) * 16 64 16 0 +bladesoficeexplode 560 1 1 16 11 81 81 255 0 0 0 IceArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 1 impact_cold_layer_1 0 +bladesoficecubes 561 69 1 10 30 255 255 255 0 0 0 IceBreakSmall 1024 15 16 3 1 1 1 1 8 1 frze 1 0 0 0 0 0 1 0 0 0 0 0 250 4 impact_cold_1 bladesoficeexplode 0 +bladesoficecubesmelt 562 1 1 150 255 255 255 0 0 0 IceBreakSmallMelt 1024 12 16 1 8 1 4 0 +royalstrikemeteor 563 1 14 6 radius 1 flame increment 15 0 0 0 0 0 1 Meteor 1024 12 16 1 1 1 5 2 8 1 fire 20 10 19 29 38 46 40 10 21 33 42 50 (skill('Fists of Fire'.blvl)) * 14 1 royalstrikemeteorfire 0 +royalstrikemeteorcenter 564 9 18 1 4 15 frames 25 fallrate 15 sliderate 1 explode immediately 5 # submissile1 3 # submissile3 15 # submissile4 15 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 8 1 sorceress_meteor royalstrikemeteor royalstrikemeteor royalstrikemeteor royalstrikemeteortail royalstrikemeteorexplode whitelightmissile firemedium firesmall 0 +royalstrikemeteortail 565 1 15 0 0 0 0 0 1 MeteorTail 1024 12 16 1 1 1 8 1 0 +royalstrikemeteorexplode 566 1 1 2 none 16 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 1 0 +royalstrikemeteorfire 567 5 1 37 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 2 1 3 1 fire 6 5 8 11 14 17 10 6 9 12 15 18 (skill('Fists of Fire'.blvl)) * 10 32 1 0 +royalstrikechainlightning 568 8 *16 1 *12 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 30 30 45 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 4 2 1 1 1 1 4 8 1 ltng 1 0 0 0 0 0 60 40 70 100 130 160 (skill('Claws of Thunder'.blvl))*10 64 32 sorceress_lightning_1 lightning lightninghit 0 +royalstrikechaosice 569 58 35 2 repath freq 2 repath freq 100 cold len -> freeze len 16 16 50 4 81 81 255 0 0 1 IceBolt 1024 6 16 3 1 1 2 1 1 1 1 1 4 8 1 cold 16 4 8 12 20 28 32 4 8 13 21 29 (skill('Blades of Ice'.blvl))*10 100 16 sorceress_glacialspike_1 sorceress_iceblast_impact_1 0 +world stone chip 1 570 59 1 1 1 500 255 255 255 0 0 1 expansion\wstonechips1 1024 25 12 1 1 8 1 0 +world stone chip 2 571 59 1 1 1 500 255 255 255 0 0 1 expansion\wstonechips2 1024 33 12 1 1 8 1 0 0 0 0 0 40 20 40 60 80 100 1 0 +world stone chip 3 572 59 1 1 1 500 255 255 255 0 0 1 expansion\wstonechips3 1024 25 12 1 1 8 1 0 +world stone chip 4 573 59 1 1 1 500 255 255 255 0 0 1 expansion\wstonechips4 1024 17 12 1 1 8 1 0 +highpriestlightning2 574 1 1 8 8 16 12 255 64 64 0 0 0 HighPriestLightning 1024 9 16 3 1 1 1 1 1 1 1 1 8 ltng 8 12 12 12 12 12 30 14 14 14 14 14 8 0 +infernoflame3 575 1 1 8 "Mana Use, 16ths." 7 Minimum range 12 12 30 5 255 178 64 1 0 0 Flamethrower 1024 15 16 3 1 1 1 1 Inferno 4 32 1 0 +mindblast center 576 17 1 10 active frames 20 density 10 255 255 255 0 0 0 Expansion\Mindblast 1024 10 16 1 1 1 1 1 mindblast hit 0 +armageddoncontrol 577 1 1 56 6 damage radius 20 0 0 0 0 0 0 null 1024 1 16 1 1 Armageddon 5 2 8 fire 1 armageddonfire 0 +armageddonrock 578 1 55 1 20 0 0 0 1 0 1 expansion\armageddon_rock 1024 16 16 1 1 1 1 8 1 andariel_fire_loop armageddonexplosion armageddonfire 0 +armageddontail 579 1 1 20 0 0 0 1 0 1 expansion\armageddon_fire 1024 16 16 1 1 1 8 1 0 +armageddonexplosion 580 1 1 5 Damage radius 16 5 255 255 255 0 0 0 ExpArrowExplode 1024 16 16 3 1 3 1 1 1 4 8 1 druid_meteor_explode_1 0 +hurricaneswoosh 581 60 1 20 20 22 0 0 0 1 0 0 expansion\hurricane_swoosh 1024 11 8 1 1 8 8 druid_hurricane 0 +hurricanecart 582 60 1 18 18 20 0 0 0 1 0 0 expansion\hurricane_cart 1024 20 16 1 8 1 druid_hurricane 0 +hurricanerock 583 60 1 18 18 20 0 0 0 1 0 0 expansion\hurricane_rocks 1024 20 16 1 8 1 druid_hurricane 0 +hurricanesack 584 60 1 18 18 20 0 0 0 1 0 0 expansion\hurricane_sack 1024 20 16 1 8 1 druid_hurricane 0 +hurricanetree 585 60 1 18 18 20 0 0 0 1 0 0 expansion\hurricane_tree 1024 20 16 1 8 1 druid_hurricane 0 +hurricanevase 586 60 1 18 18 20 0 0 0 1 0 0 expansion\hurricane_vase 1024 20 16 1 8 1 druid_hurricane 0 +baalcorpseexplodedelay 587 1 1 10 5 255 178 64 0 0 0 null 1024 1 16 1 1 1 1 1 1 1 8 4 1 baalcorpseexplodeexpl 0 +baalcorpseexplodeexpl 588 1 44 1 16 5 255 178 64 0 0 0 expansion\CEBaal 1024 16 16 1 1 1 1 1 1 1 4 8 4 1 baalcorpseexplodefade 0 +baal cold maker 589 52 31 20 20 50 5 143 143 255 0 0 0 BlueNovaB 1024 8 8 3 1 4 2 1 1 1 75 1 Baal Cold Missiles 4 8 32 1 baal_coldtrail baal cold trail baal cold trail 0 +baal cold trail 590 1 1 13 13 20 5 143 143 255 0 0 0 BlueNovaB 1024 8 8 3 1 4 2 1 1 1 75 1 Baal Cold Missiles 4 8 32 1 0 +baal spawn monsters exp 591 1 1 20 5 81 81 255 1 0 0 Expansion\baalsummonsmall 1024 11 15 1 1 1 1 1 4 1 0 +impmiss21 592 1 1 20 20 80 5 255 64 64 1 0 1 Expansion\impmissile2 1024 8 16 3 1 1 1 1 1 1 1 1 4 8 128 16 imp_missile_1 sorceress_firebolt_impact_1 shamanexp 0 +impmiss22 593 1 1 20 20 80 5 255 64 64 1 0 1 Expansion\impmissile2 1024 8 16 3 1 1 1 1 1 1 1 1 4 8 128 16 imp_missile_1 sorceress_firebolt_impact_1 shamanexp 0 +impmiss23 594 1 1 20 20 80 5 255 64 64 1 0 1 Expansion\impmissile2 1024 8 16 3 1 1 1 1 1 1 1 1 4 8 128 16 imp_missile_1 sorceress_firebolt_impact_1 shamanexp 0 +impmiss24 595 1 1 20 20 80 5 255 64 64 1 0 1 Expansion\impmissile2 1024 8 16 3 1 1 1 1 1 1 1 1 4 8 128 16 imp_missile_1 sorceress_firebolt_impact_1 shamanexp 0 +impmiss25 596 1 1 20 20 80 5 255 64 64 1 0 1 Expansion\impmissile2 1024 8 16 3 1 1 1 1 1 1 1 1 4 8 128 16 imp_missile_1 sorceress_firebolt_impact_1 shamanexp 0 +anyasteam1 597 1 1 26 0 0 0 0 0 0 ChillBloodPuff 1024 26 16 1 1 0 +anyasteam2 598 1 1 26 0 0 0 0 0 0 ChillBloodPuff 1024 26 16 1 1 0 +ancientsguide 599 1 1 0 0 0 0 0 0 null 1024 1 16 1 0 +ancientsmarker 600 1 1 0 0 0 0 0 0 null 1024 1 16 1 0 +ancientscontrol 601 1 1 0 0 0 0 0 0 null 1024 1 16 1 0 +overseercontrol 602 61 1 500 0 0 0 0 0 0 null 1024 1 16 1 0 +nihlithak1 603 1 60 1 85 zoffset of missile 2 32 0 0 0 0 0 0 expansion\Nihlathak A 1024 16 8 1 1 quest_nihlathakdeath nihlithak2 nehlithakbonechips 0 +nihlithak2 604 1 1 192 0 0 0 0 0 1 expansion\Nihlathak B 1024 8 8 1 1 quest_nihlathakdeath nihlithak3 0 +nihlithak3 605 1 1 34 0 0 0 0 0 0 expansion\Nihlathak C 1024 17 8 1 1 8 quest_nihlathakdeath 0 +nehlithakcontrol 606 62 1 224 0 0 0 0 0 0 null 1024 1 16 1 0 +nehlithakswoosh 607 63 1 20 20 22 0 0 0 1 0 0 expansion\nehlthak_Swoosh 1024 11 8 1 1 8 8 0 +nehlithakdebris1 608 63 1 18 18 16 0 0 0 0 0 1 expansion\Skeleton_pieces_A 1024 16 16 1 1 0 +nehlithakdebris2 609 63 1 18 18 16 0 0 0 0 0 1 expansion\Skeleton_pieces_B 1024 16 16 1 1 0 +nehlithakdebris3 610 63 1 18 18 16 0 0 0 0 0 1 expansion\Skeleton_pieces_C 1024 16 16 1 1 0 +nehlithakdebris4 611 63 1 18 18 16 0 0 0 0 0 1 expansion\Skeleton_pieces_D 1024 16 16 1 1 0 +nehlithakglow 612 1 1 0 0 0 0 0 0 null 1024 1 16 1 0 +baalteleport 613 1 1 20 3 128 64 64 0 0 0 Expansion\Baalsummonoverlay 1024 20 24 1 1 8 1 baal_summonflash 0 +baalclonedeath 614 1 1 20 3 128 64 64 0 0 0 Expansion\Baalteleport 1024 20 24 1 1 8 1 baal_teleport 0 +anyasteamvent 615 1 1 82 0 0 0 0 0 0 expansion\IceCaveEruption 1024 41 8 1 1 8 4 quest_anyaicevent 0 +anyasteam 616 1 1 82 0 0 0 0 0 0 expansion\Ice_Smoke 1024 41 8 1 1 8 4 0 +nehlithakhole 617 1 1 250 0 0 0 0 0 1 expansion\nehlthak_Hole 1024 41 16 1 25 29 1 8 1 sorceress_inferno 0 +nehlithakholelight 618 1 1 250 0 0 0 0 0 1 expansion\nehlthak_Hole_light 1024 41 16 1 25 29 1 1 8 1 0 +volcanofiretrail 619 1 1 12 12 0 0 0 0 0 1 expansion\wallfire_low_Tiny 1024 25 16 1 1 8 1 0 +nehlithakglow2 620 1 1 192 0 0 0 0 0 1 expansion\NehlithakGlow 1024 16 16 1 1 1 0 +nehlithakbonechips 621 1 1 192 0 0 0 0 0 1 expansion\BonePieces 1024 16 16 1 1 0 +baalcorpseexplodefade 622 1 1 443 0 0 0 0 0 1 expansion\CEBaalFade 1024 11 4 1 4 1 0 +armageddonfire 623 1 1 37 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 2 1 1 2 fire 10 6 7 8 9 10 14 6 7 8 9 10 (skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*10 + (skill('Fire Claws'.blvl))*5 32 1 41 0 +icesparkle 624 1 1 250 2 255 178 64 0 0 1 expansion\iceglint 1024 6 12 1 1 1 2 1 0 +baalfx control 625 64 36 57 650 10 255 178 64 0 0 1 null 1024 1 16 1 1 1 0 +baalfx spirit 1 626 65 1 10 10 250 0 0 0 0 0 1 expansion\baaldeathghostie02 1024 8 6 1 1 8 quest_hellforge_soul_1 0 +baalfx spirit 2 627 65 1 10 10 250 0 0 0 0 0 1 expansion\baaldeathghostie01 1024 8 6 1 1 8 quest_hellforge_soul_1 0 +baalfx spirit 3 628 65 1 10 10 250 0 0 0 0 0 1 null 1024 1 8 1 1 1 quest_hellforge_soul_1 0 +baalfx spirit 4 629 65 1 10 10 250 0 0 0 0 0 1 null 1024 1 8 1 1 1 quest_hellforge_soul_1 0 +baalfx spirit 5 630 65 1 10 10 250 0 0 0 0 0 1 null 1024 1 8 1 1 1 quest_hellforge_soul_1 0 +baalfx baal head appear 631 1 1 455 0 0 0 0 0 0 expansion\baaldeathswirl 1024 36 16 1 1 1 0 +baalfx baal head 1 632 1 1 390 5 255 178 64 0 0 0 expansion\baaldeathhead01 1024 42 12 1 1 1 baal_deathhead_1 0 +baalfx baal head 2 633 1 1 390 5 255 178 64 0 0 0 expansion\baaldeathhead02 1024 42 12 1 1 1 baal_deathhead_2 0 +baalfx baal head 3 634 1 1 390 5 255 178 64 0 0 0 expansion\baaldeathhead03 1024 42 12 1 1 1 baal_deathhead_3 0 +baalfx tyreal debris 1 635 1 1 40 0 0 0 0 0 1 expansion\BCeilingChunkFall1 1024 1 16 1 1 1 baalfx tyreal debris break 0 +baalfx tyreal debris 2 636 1 1 40 0 0 0 0 0 1 expansion\BCeilingChunkFall2 1024 1 16 1 1 1 baalfx tyreal debris break 0 +baalfx tyreal debris 3 637 1 1 40 0 0 0 0 0 1 expansion\BCeilingChunkFall3 1024 1 16 1 1 1 baalfx tyreal debris break 0 +baalfx tyreal debris break 638 1 1 1365 0 0 0 0 0 0 expansion\BCeilingChunkBreak 1024 12 12 1 1 0 +worldstone shake 639 66 61 1 200 0 0 0 0 0 1 null 1024 1 12 1 1 1 0 +blessedhammerex 640 1 1 13 50 bonus vs undead 0 bonus vs demons 18 30 250 120 5 222 222 255 6 0 1 blessedhammer 1024 6 16 3 1 1 1 8 1 1 1 4 8 12 8 8 8 8 8 16 8 8 8 8 8 16 paladin_blessedhammer_1 paladin_holybolt_impact_1 0 +sentrylightningbolt2 641 8 1 3 Subloops 30 30 10 2 4 255 255 255 0 0 2 null 1024 2 16 3 1 1 2 1 1 1 1 1 Death Sentry 4 64 1 sorceress_lightning_1 lightninghit 0 +sentrylightninghit2 642 1 10 1 4 Rand Light Radius Add 12 3 1 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 8 ltng 2 2 2 2 2 2 5 2 2 2 2 2 (skill('Lightning Sentry'.blvl)*12 64 32 lightning 0 +lightningtowernova 643 1 10 1 24 24 -1000 13 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 1 4 8 ltng 12 12 12 12 12 12 14 14 14 14 14 14 64 16 sorceress_nova 0 +skbowarrow6 644 1 1 24 24 40 2 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 4 128 10 32 amazon_firearrow_1 sorceress_firebolt_impact_1 0 +skbowarrow7 645 1 1 24 24 40 2 81 81 255 1 0 1 IceArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 4 128 10 32 amazon_coldarrow_1 impact_cold_1 0 +skbowarrow8 646 1 1 24 24 40 2 255 178 64 1 0 1 SafeArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 4 128 10 32 amazon_magicarrow_1 0 +bighead6 647 1 1 16 16 40 3 143 143 255 3 0 1 BigheadLightningMissile 1024 3 16 3 1 1 1 1 1 1 1 1 4 128 1 monster_fireball sorceress_firebolt_impact_1 bigheadexp 0 +viper_poisjav 648 3 2 3 # subloops 3 # subloops 24 24 15 255 255 255 3 0 0 poisonNova 1024 30 16 3 1 1 1 1 1 1 1 1 1 1 4 32 monster_poisonbolt viper_poisjavcloud viper_poisjavcloud 0 +viper_poisjavcloud 649 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 1 2 2 1 1 1 4 pois 30 8 9 10 11 12 30 8 9 10 11 12 400 8 object_poison_loop poisonpuff 0 +viper_fire 650 8 1 24 24 15 3 255 255 255 4 0 1 Firebolt 1024 5 16 3 1 1 1 1 1 1 1 4 128 16 monster_fireball sorceress_firebolt_impact_1 shamanexp viper_firecloud 0 +viper_firecloud 651 1 1 10 255 178 64 0 0 1 Flamethrower 1024 15 7 3 1 1 4 1 1 1 32 1 82 sorceress_inferno 0 +viper_bonespear 652 18 24 1 3 Subloops 24 24 40 3 255 255 255 3 0 1 BoneSpear 1024 6 16 3 1 1 1 1 1 1 1 4 128 6 16 necromancer_bonespear_1 paladin_holybolt_impact_1 bonespearexplode bonespeartrail teethexplode bonespeartrail teethexplode 0 +countessfirewallmaker 653 6 6 4 no light freq 12 12 7 8 255 178 64 0 0 1 groundFireBig 1024 2 16 1 1 2 8 1 1 1 1 1 1 8 32 1 countessfirewall countessfirewall firesmall firemedium 0 +baal taunt lightning control 654 1 62 3 58 10 range 10 range 1 null 1024 1 16 1 1 baal taunt lightning baal taunt lightning 0 +baal taunt poison control 655 1 63 3 59 2 increment 2 increment 1 null 1024 1 16 1 1 baal taunt poison baal taunt poison 0 +explodingarrowexp2 656 1 1 1 5 damage radius 1 null 1024 16 16 3 1 1 3 1 1 1 Exploding Arrow 5 2 8 fire 1 0 +freezingarrowexp3 657 1 1 1 0 damage radius 1 null 1024 16 16 3 1 1 1 1 1 1 Freezing Arrow 5 2 8 frze 1 0 +pantherjav5 658 1 1 20 20 80 255 255 255 1 0 1 Javelin 1024 1 16 3 1 1 1 1 1 1 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +spike6 659 1 1 30 30 40 255 255 255 1 0 1 SpikeFiendMissle 1024 2 16 3 1 1 1 1 1 1 1 1 4 8 128 10 32 0 +cr_arrow6 660 1 1 26 26 40 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +skmagepois 661 1 1 12 12 40 2 255 255 255 2 0 0 poisonNova 1024 30 16 3 1 1 1 1 1 1 1 1 4 8 128 pois 32 monster_poisonbolt 0 +skmagecold 662 1 1 14 14 40 2 255 255 255 2 0 1 Icebolt 1024 6 16 3 1 1 1 1 1 1 1 1 4 8 128 cold 16 monster_icebolt_1 iceexplode 0 +skmagefire 663 1 1 18 18 40 2 255 255 255 2 0 1 Firebolt 1024 5 16 3 1 1 1 1 1 1 1 1 4 8 128 fire 16 monster_firebolt_1 sorceress_firebolt_impact_1 fireexplode 0 +skmageltng 664 1 1 20 20 40 2 255 255 255 2 0 1 ChargedBolt 1024 10 16 3 1 1 1 -10 1 1 1 1 1 4 8 128 ltng 16 monster_chargedbolt_1 0 +succubusmiss 665 1 1 10 10 80 2 255 64 64 1 0 1 Expansion\impmissile01 1024 10 16 3 1 1 1 -15 1 1 1 1 1 4 8 128 mag 16 succubus_msissile_1 succubus_msissile_impact teethexplode 0 +willowisplightningbolt2 666 8 1 3 Subloops 32 32 40 8 178 178 255 1 0 2 null 1024 2 16 3 1 1 2 1 1 1 1 4 8 128 ltng 64 1 monster_lightning_1 lightninghit 0 +mummyex 667 1 1 5 5 24 255 255 255 0 0 0 GreaterMummyBreath 1024 24 16 3 1 1 2 1 1 1 4 1 pois 30 8 9 10 11 12 30 8 9 10 11 12 400 8 0 +goospitex 668 1 1 10 10 24 255 255 255 3 0 0 SandMaggotGooSpit 1024 24 16 3 1 1 1 1 1 1 1 4 1 3 4 4 4 4 4 5 4 4 4 4 4 pois 8 3 3 3 3 3 8 3 3 3 3 3 300 176 16 tentaclehead_missile_1 goosplat 0 +impmissex 669 1 1 20 20 80 5 255 64 64 1 0 1 Expansion\impmissile2 1024 8 16 3 1 1 1 1 1 1 1 1 4 8 fire 23 5 5 5 5 5 33 5 5 5 5 5 16 imp_missile_1 sorceress_firebolt_impact_1 shamanexp 0 +diablogeddoncontrol 670 1 1 56 3 damage radius 25 0 0 0 0 0 0 null 1024 1 16 1 1 Diablogeddon 5 2 8 fire 1 diablogeddonfire 0 +diablogeddonrock 671 1 55 1 25 0 0 0 1 0 1 expansion\armageddon_rock 1024 16 16 1 1 1 1 8 1 andariel_fire_loop diablogeddonexplosion diablogeddonfire 0 +diablogeddontail 672 1 1 25 0 0 0 1 0 1 expansion\armageddon_fire 1024 16 16 1 1 1 8 1 0 +diablogeddonexplosion 673 1 1 5 Damage radius 16 5 255 255 255 0 0 0 ExpArrowExplode 1024 16 16 3 1 3 1 1 1 4 8 1 druid_meteor_explode_1 0 +diablogeddonfire 674 1 1 37 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 2 1 1 2 fire 10 6 7 8 8 8 14 6 7 8 8 8 32 1 41 0 +megademoninferno 675 1 1 7 Minimum range 12 12 30 4 255 178 64 3 0 0 Flamethrower 1024 15 16 3 1 1 1 1 1 8 fire 3 3 3 3 3 3 6 4 4 4 4 4 32 1 82 sorceress_inferno 0 +trapfirebolt 676 1 1 20 20 50 7 255 178 64 1 0 1 Firebolt 1024 5 16 3 1 1 1 1 1 1 1 1 4 8 fire 4 13 13 13 13 13 16 14 14 14 14 14 16 sorceress_firebolt_1 sorceress_firebolt_impact_1 fireexplode 0 +trappoisonjavcloud 677 4 3 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 60 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 2 1 1 pois 30 12 12 12 12 12 30 12 12 12 12 12 500 8 object_poison_loop poisonpuff 0 +trapnova 678 1 10 1 24 24 -1000 13 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 1 4 8 ltng 1 11 11 11 11 11 20 13 13 13 13 13 64 16 sorceress_nova lightning 0 +mephfrostnova 679 1 10 1 24 24 -1000 14 81 81 255 0 0 0 FrostNova 1024 14 16 3 1 1 1 4 1 1 1 1 MephFrostNova 4 48 16 sorceress_frostnova ice_explode 0 +mephlight 680 8 10 1 3 Subloops 30 30 25 4 255 255 255 2 0 2 null 1024 2 16 3 1 1 1 2 1 1 PrimeLightning 8 ltng 15 0 0 0 0 0 30 30 50 50 50 50 1 monster_lightning_1 lightning lightninghit 0 +vampiremeteorfire 681 5 5 3 19 softhit chance (128) 90 3 2 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 2 1 12 1 3 1 fire 10 3 5 6 6 6 14 2 5 6 6 6 32 1 41 object_fire_loop_magic 0 +strafearrow 682 1 1 30 30 40 255 255 255 1 0 0 Arrow 1024 1 16 3 1 1 1 2 1 1 1 1 1 4 8 128 10 32 amazon_multi_arrow_1 0 +strafebolt 683 1 1 30 30 40 255 255 255 1 0 0 XBowBolt 1024 1 16 3 1 1 1 2 1 1 1 1 1 4 8 128 10 32 weapon_xbow_1 0 +siege beast stomp missile 684 12 1 8 intensity 1 duration (sec.) 75 75 25 255 255 255 0 0 0 null 1024 1 16 3 1 1 4 1 1 1 1 Fixed Siege Beast Stomp 4 1 siegebeast_stomp_1 0 +unused2 685 1 1 3 5 damage radius 45 45 1 255 255 255 0 0 0 null 1024 1 16 3 1 1 1 1 1 1 1 1 5 2 8 128 32 0 +bloodravenimmolationarrow 686 6 12 6 9 3 ??? Radius 50 fire duration 0 disc radius (0 = skill) 0 damage radius (0 = skill) 50 fire duration 0 disc radius (0 = skill) 100 disc density 24 24 40 9 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 4 1 1 1 1 1 1 1 1 1 BloodRavenImmo 5 2 fire 10 32 amazon_firearrow_1 explosion_medium_1 firewall Bloodraven firesmall firemedium immolationfire firewall Bloodraven firesmall firemedium firewall Bloodraven firesmall firemedium 0 +dollmeteor 687 1 60 0 0 0 0 0 1 null 1024 1 16 1 1 1 1 0 +dollmeteorcenter 688 9 18 1 14 59 frames 25 fallrate 15 sliderate 0 range (0 = skill) 1 flames increment 1 # submissile1 3 # submissile3 15 # submissile4 25 0 0 0 0 0 1 GrimWardSmall 1024 1 16 1 1 1 1 1 1 DollMeteor 5 2 8 1 dollmeteor dollmeteortail dollmeteorexplode 0 +dollmeteortail 689 1 60 0 0 0 0 0 1 null 1024 12 16 1 1 1 8 1 0 +dollmeteorexplode 690 1 1 2 none 16 4 0 0 0 0 0 0 CorpseExplodeGuts 1024 13 16 1 1 1 1 1 1 1 4 8 1 necromancer_corpseexp_1 0 +dollmeteorfire 691 5 5 3 19 softhit chance (128) 90 3 2 255 178 64 0 0 1 null 1024 37 16 1 12 36 3 1 1 2 1 12 1 3 1 fire 15 4 5 6 6 6 25 4 5 6 6 6 32 1 41 0 +powerstrikenova1 692 1 4 3 5 12 12 1 255 255 255 0 0 0 null 1024 1 16 3 1 1 1 1 1 Power Strike 8 8 1 powerstrikenova2 powerstrikenova2 0 +powerstrikenova2 693 1 10 1 16 16 -1000 15 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 4 8 1 ltng 1 0 0 0 0 0 3 4 8 28 45 62 (skill('Lightning Strike'.blvl)*20) + (skill('Lightning Bolt'.blvl)*20) 64 16 sorceress_nova lightning 0 +holynova 694 1 9 1 7 1 heals allies? 0 "0 = all, 1 = undead, 2 = demons" 1 heals allies? 0 "0 = all, 1 = undead, 2 = demons" 32 32 18 255 255 255 1 0 1 holylight001 1024 41 16 1 25 29 3 1 1 1 1 4 -60 -121 1 3 1 1 1 1 Holy Nova 4 16 paladin_holybolt_1 paladin_holybolt_impact_1 healing teethexplode 0 +holylightdelay 695 1 66 1 0 range (0 = skill) 0 max bolts (0 = skill) 6 range (0 = skill) 20 max bolts (0 = skill) 10 0 0 0 0 0 0 null 1024 2 16 1 1 1 1 Holy Light 1 paladin_handofgod_bolt 0 +icebarrage 696 1 14 1 13 0 damage radius (0 = skill) freeze length (0 = skill) 22 22 24 5 81 81 255 1 0 1 IceBolt 1024 6 16 3 1 1 1 1 1 1 1 1 Ice Barrage 5 2 cold 32 sorceress_glacialspike_1 sorceress_iceblast_impact_1 freezingarrowexp1 freezingarrowexp2 0 +shatteringarrow 697 1 4 1 5 20 20 24 24 14 5 81 81 255 1 0 1 IceArrow 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 1 10 32 amazon_coldarrow_1 impact_shatter_1 shatteringarrowexp shatteringarrowexp shatteringarrowexp 0 +shatteringarrowexp 698 1 44 1 36 10 10 6 6 81 81 255 1 0 1 IceOrb 1024 16 16 3 1 1 1 1 1 5 2 8 1 sorceress_iceblast_impact_1 shatteringarrowexp2 shatteringarrowexp2 0 +shatteringarrowexp2 699 1 1 3 3 radius (0 = aurarng calc from skill) 16 6 81 81 255 0 0 0 IceOrbExplode 1024 16 16 3 1 1 1 1 1 1 1 1 1 Shattering Arrow 5 2 8 cold 1 0 +leapattacknova 700 1 1 10 10 -200 7 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 1 1 8 128 1 doubledamage1 0 +fireexplosion3 701 1 1 16 15 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 1 4 8 1 0 +doublethrowaxe 702 1 16 1 30 16 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 24 24 40 255 255 255 1 0 1 MissileHandAxe 1024 8 16 3 1 1 1 1 1 2 1 1 1 1 4 8 128 2 32 weapon_throw_1 0 +doublethrowknife 703 1 16 1 30 16 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 24 24 40 255 255 255 1 0 0 MissileDagger 1024 1 16 3 1 1 1 1 1 2 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +doublethrowjav 704 1 16 1 30 16 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 24 24 40 255 255 255 0 0 0 Javelin 1024 1 16 3 1 1 1 1 1 2 1 1 1 1 4 8 128 6 32 weapon_throw_1 0 +gust 705 1 1 6 255 255 255 0 0 0 null 1024 2 16 3 1 1 1 1 1 1 1 1 Gust 4 32 0 +bashknockback 706 1 1 3 3 2 0 0 0 0 0 0 null 1024 2 16 3 1 1 1 2 1 1 8 8 1 0 +ravensplash 707 1 10 1 3 3 damage radius 1 explosions radius 1 explosions density 3 0 0 0 1 0 1 null 1024 5 16 3 1 1 1 1 1 1 1 1 1 Raven 5 2 8 16 ravensplash2 ravensplash2 0 +ravensplash2 708 1 10 1 1 16 4 81 81 255 0 0 0 null 1024 15 16 1 1 1 1 1 1 1 1 sorceress_iceblast_impact_1 0 +combustion 709 1 1 1 1 4 damage radius 3 explosions radius 1 explosions density 20 20 38 7 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 1 2 1 1 1 1 1 Combustion 5 2 fire 16 sorceress_fireball_1 sorceress_fireball_impact_1 explodingarrowexp fireexplosion2 0 +hydrafireball 710 1 1 1 1 3 damage radius 3 explosions radius 1 explosions density 20 20 50 7 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 3 1 1 1 1 1 1 1 Hydra 5 2 fire 16 sorceress_fireball_1 sorceress_fireball_impact_1 explodingarrowexp fireexplosion2 0 +golemsplash 711 1 10 1 3 4 damage radius 4 explosions radius 1 explosions density 3 0 0 0 1 0 1 null 1024 5 16 3 1 1 1 1 1 1 1 1 1 Golem Splash 5 2 8 128 16 golemsplash2 golemsplash2 0 +golemsplash2 712 1 10 1 1 16 4 81 81 255 0 0 0 null 1024 15 16 1 1 1 1 1 1 1 5 2 8 128 1 0 +darkpactaoe 713 1 1 1 0 0 0 0 0 0 null 1024 1 16 1 1 Dark Pact 8 1 0 +poisondaggercloud 714 4 3 61 2 "Slow drift speed, fourths." 6 "Fast drift speed, fourths." 12 spawn rate 1 number 4 radius 236 auratargetstate id 52 auraduration -1 aurastat1 id -1 aurastat1 value 4 4 30 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 1 4 2 1 1 Poison Dagger -1 8 object_poison_loop poisonpuff 0 +sentrylightningbolt 715 8 1 3 Subloops 30 30 10 2 4 255 255 255 0 0 2 null 1024 2 16 3 1 1 2 1 1 1 1 Lightning Sentry 4 64 1 sorceress_lightning_1 lightninghit 0 +sentrylightninghit 716 1 10 1 12 3 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 8 ltng 2 2 2 2 2 2 5 2 2 2 2 2 64 32 lightning 0 +thunderstormnova 717 1 10 1 20 20 -1000 15 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 3 1 1 1 4 8 1 ltng 1 2 3 4 5 6 100 4 5 6 7 8 (skill('Charged Bolt'.blvl) + skill('Nova'.blvl)) * 8 64 16 lightning 0 +fingermagebossshockwave 718 1 1 7 15 15 15 255 255 255 0 0 0 expansion\shockwave 1024 7 8 3 1 1 1 4 1 1 1 1 1 FingermageBossShockWave 4 64 8 druid_shockwave 0 +unravelershout 719 1 1 18 2 Vel / level increase 35 35 -500 25 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 3 1 1 1 32 barbarian_circle_1 0 +unravelerbossmultishot 720 1 1 12 12 40 5 0 0 0 1 0 1 UnholyBolt 1024 16 16 3 1 1 1 1 2 1 1 1 1 1 2 1 UnravelerBossMultiShot 4 8 128 10 32 greatermummy_unholybolt_1 0 +baalminionbossnova 721 1 1 10 10 200 5 255 255 255 0 0 0 Expansion\baalsummonmissile 1024 8 12 3 1 1 1 1 4 2 1 1 1 Baal Nova 4 8 baal_novacast shamanexp 0 +psychichammer 722 1 16 1 12 15 0 range (0 = skill) 0 range (0 = skill) 70 70 8 222 222 255 0 0 1 null 1024 6 16 3 1 1 1 1 4 2 1 1 1 25 1 Psychic Hammer 9 mag 16 paladin_blessedhammer_1 paladin_holybolt_impact_1 psychic_hammer_hit 0 +megademoninfernoMapBoss 723 1 1 7 Minimum range 12 12 30 4 255 178 64 3 0 0 Flamethrower 1024 15 16 3 1 1 1 1 1 4 8 fire 375 3 3 3 3 3 450 4 4 4 4 4 32 1 82 sorceress_inferno 0 +megademonblazeMapBoss 724 5 5 8 3 128 softhit chance (128) 128 hit sound chance (128) 90 25 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 3 1 12 1 1 MegademonBlazeBoss 4 32 1 object_fire_loop_magic 0 +fistoftheheavensbolt2 725 1 1 0 heals allies? 0 "0 = all, 1 = undead, 2 = demons" 0 heals allies? 0 "0 = all, 1 = undead, 2 = demons" 16 16 50 8 222 222 255 1 2 1 HolyBoltMissile 1024 16 16 3 1 1 1 1 4 2 1 1 1 1 4 8 mag 13 2 3 5 10 15 16 3 4 6 12 16 skill('Holy Bolt'.blvl) * 15 1 paladin_holybolt_1 paladin_holybolt_impact_1 teethexplode teethexplode 0 +uberimmolationarrow 726 7 7 64 5 Retarget frame delay 15 5 250 fire duration 0 disc radius (0 = skill) 0 damage radius (0 = skill) 7 7 400 3 255 255 255 1 0 1 BoneSpirit 1024 8 16 3 1 1 1 1 -30 2 1 1 1 1 UberDiabloBoulder 5 2 fire 8 82 necromancer_bonespirit_1 paladin_holybolt_impact_1 bonespiritexplode uberimmolationfire 0 +uberimmolationfire 727 5 5 3 19 softhit chance (128) 19 softhit chance (128) 250 5 4 0 0 255 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 4 1 1 12 1 1 4 8 mag 65 0 10 10 10 10 90 0 16 16 16 16 32 1 82 object_fire_loop_magic 0 +uberfirewall - UNUSED 728 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 5 5 4 0 0 255 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 1 4 1 1 12 1 4 8 mag 29 0 4 4 4 4 54 0 13 13 13 13 32 1 82 object_fire_loop_magic 0 +uberfiresmall - UNUSED 729 5 1 5 2 2 0 0 255 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 4 1 1 12 1 4 8 mag 33 0 4 4 4 4 58 0 14 14 14 14 32 1 82 object_fire_loop_magic 0 +uberfiremedium - UNUSED 730 5 1 5 3 2 0 0 255 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 1 4 1 1 12 1 4 8 mag 33 0 4 4 4 4 58 0 14 14 14 14 32 1 82 object_fire_loop_magic 0 +ubernova 731 1 1 20 20 45 5 255 255 255 0 0 0 Expansion\baalsummonmissile 1024 8 12 3 1 1 1 1 12 1 1 1 1 UberDiabSuperFire 4 1 8 82 baal_novacast shamanexp 0 +firesmallmeteor 732 5 1 90 25 2 2 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 12 1 4 70 0 0 0 0 0 100 0 0 0 0 0 fire 1 1 1 1 1 1 1 1 1 1 1 1 (skill('Fire Ball'.blvl) + skill('Fire Wall'.blvl) + skill('Inferno'.blvl))*5+(stat('passive_fire_mastery'.accr)) 32 1 82 object_fire_loop_magic 0 +firemediummeteor 733 5 1 90 25 3 2 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 1 12 1 4 70 0 0 0 0 0 100 0 0 0 0 0 fire 2 2 2 2 2 2 2 2 2 2 2 2 (skill('Fire Ball'.blvl) + skill('Fire Wall'.blvl) + skill('Inferno'.blvl))*5+(stat('passive_fire_mastery'.accr)) 32 1 82 object_fire_loop_magic 0 +ubermeteor 734 1 60 0 0 0 0 0 1 Meteor 1024 12 16 1 1 1 4 1 82 0 +ubermeteorcenter 735 9 18 1 14 60 frames 25 fallrate 15 sliderate 0 range (0 = skill) 1 flames increment 5 # submissile1 3 # submissile3 15 # submissile4 60 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 UberDiabloMeteor 5 2 8 1 82 ubermeteor meteortail ubermeteorexp whitelightmissile 0 +ubermeteorexp 736 1 1 2 none 16 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 82 0 +wispbosschainlightning 737 8 16 1 12 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 30 30 45 4 255 255 255 0 0 1 LightningStrike 1024 8 16 3 1 1 1 1 4 2 1 1 1 1 WispBossChainLightning 4 8 1 64 32 sorceress_lightning_1 lightning lightninghit 0 +wispminionlightningbolt 738 8 1 3 Subloops 30 30 45 4 255 255 255 0 0 2 null 1024 2 16 3 1 1 2 1 1 1 1 WispMinionLightning 4 1 64 1 sorceress_lightning_1 lightninghit 0 +fingermagebossteeth 739 1 1 16 16 90 3 255 255 255 1 0 0 teethMissile 1024 30 16 1 15 3 1 1 1 1 6 2 1 1 1 1 FingermageBossNova 4 32 necromancer_teeth_1 paladin_holybolt_impact_1 teethexplode 0 +fingermagebossspider 740 15 10 11 19 5 repath frame 20 activation dist 2 delta 3 spawn frame 20 spawn life 5 repath frame 20 activation dist 2 delta 6 6 80 255 178 178 1 0 1 FingerMageSpider 1024 5 16 3 1 1 1 1 1 1 1 1 4 7 150 2 2 2 2 2 250 2 2 2 2 2 fire 1000 6 7 8 8 8 1000 6 7 8 8 8 16 fingermage_bolt fingermage_bolt_impact_1 fingermagespiderexplode fingermagespider 0 +fingermagebosswallmaker 741 6 6 20 20 80 3 255 178 64 2 0 1 groundFireMedium 1024 2 16 1 1 2 3 1 1 1 1 1 1 1 4 8 1 fingermagebosswall fingermagebosswall 0 +fingermagebosswall 742 5 1 36 3 4 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 2 1 1 1 4 3 25 2 2 2 2 2 35 2 2 2 2 2 fire 200 0 0 0 0 0 250 0 0 0 0 0 1 41 diablo_firewall 0 +uberwallmaker 743 6 6 20 20 80 3 255 178 64 2 0 1 groundFireMedium 1024 2 16 1 1 2 3 1 1 1 1 1 1 1 4 8 1 82 uberwall uberwall 0 +uberwall 744 5 1 36 3 4 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 1 1 3 2 1 1 1 4 8 35 0 8 8 8 8 45 0 11 11 11 11 fire 350 0 87 87 87 87 400 0 100 100 100 100 1 100 diablo_firewall 0 +uberdiablight 745 1 10 1 30 Minimum range 20 20 50 3 255 255 255 1 0 0 DiabloLightning 1024 15 16 3 1 1 1 1 3 2 1 1 1 1 4 8 75 0 18 18 18 18 175 0 43 43 43 43 ltng 300 0 75 75 75 75 325 0 81 81 81 81 8 82 diablo_laser fingermage_bolt_impact_1 diablolightning 0 +uberdiabfire 746 1 1 30 30 50 3 255 255 255 1 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 1 4 2 1 1 1 4 8 fire 1500 0 375 375 375 375 1750 0 437 437 437 437 32 1 82 diablo_firecircle 0 +cobrastrikepoisonbolt 747 1 1 14 14 28 5 255 255 255 3 0 0 poisonNova 1024 30 16 3 1 1 4 1 1 1 4 5 1 pois 1 2 6 10 25 50 4 2 6 10 25 50 skill('Venom'.blvl) * 20 25 0 0 0 32 andariel_cast_small 0 +cobrastrikepoisoncloud 748 4 3 2 "Slow drift speed, fourths." 6 "Fast drift speed, fourths." 24 spawn rate 1 number 6 radius 10 10 18 128 255 128 0 0 1 null 1024 31 16 1 10 19 3 1 1 1 1 1 4 2 1 1 4 5 1 pois 2 3 8 12 30 66 6 3 8 12 30 66 skill('Venom'.blvl) * 20 25 0 0 0 8 object_poison_loop poisonpuff 0 +clawfirestorm 749 5 1 12 5 4 255 178 64 0 0 1 groundFiresmall 1024 37 16 1 12 36 3 2 1 1 1 Fire Claws 32 1 41 object_fire_loop_house 0 +clawfirestormmaker 750 6 6 4 no light freq 20 20 30 3 255 178 64 0 0 1 groundFireMedium 1024 2 16 1 1 2 3 1 1 2 1 1 1 object_fire_loop_house clawfirestorm clawfirestorm firesmall firemedium 0 +taunt 751 1 1 35 35 8 192 192 192 1 0 0 BAYellShockWave01 1024 15 16 3 1 1 1 32 barbarian_circle_1 0 +skbowarrow1Dclone 752 1 1 36 36 40 255 255 255 1 0 1 SafeArrow 1024 1 16 3 1 1 1 1 1 1 1 1 1 4 8 128 10 32 weapon_bow_1 0 +skmagepoisDclone 753 1 1 24 24 40 2 255 255 255 2 0 0 poisonNova 1024 30 16 3 1 1 1 1 1 1 1 1 4 8 128 pois 32 monster_poisonbolt 0 +skmagecoldDclone 754 1 1 28 28 40 2 255 255 255 2 0 1 Icebolt 1024 6 16 3 1 1 1 1 1 1 1 1 4 8 128 cold 16 monster_icebolt_1 iceexplode 0 +skmagefireDclone 755 1 1 36 36 40 2 255 255 255 2 0 1 Firebolt 1024 5 16 3 1 1 1 1 1 1 1 1 4 8 128 fire 16 monster_firebolt_1 sorceress_firebolt_impact_1 fireexplode 0 +skmageltngDclone 756 1 1 40 40 40 2 255 255 255 2 0 1 ChargedBolt 1024 10 16 3 1 1 1 -10 1 1 1 1 1 4 8 128 ltng 16 monster_chargedbolt_1 0 +A3 Merc meteorcenter 757 9 18 1 14 15 frames 25 fallrate 15 sliderate 0 range (0 = skill) 1 flames increment 5 # submissile1 3 # submissile3 15 # submissile4 15 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 1 A3 Merc Meteor 5 2 8 1 sorceress_meteor_impact A3 Merc meteorfire meteor meteortail meteorexplode whitelightmissile firemediummeteor firesmallmeteor 0 +A3 Merc meteorfire 758 5 5 3 19 softhit chance (128) 90 3 2 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 2 1 12 1 3 1 fire 2 1 1 1 1 1 3 1 1 1 1 1 (skill('Fire Ball'.blvl) + skill('Fire Wall'.blvl) + skill('Inferno'.blvl))*8 32 1 41 object_fire_loop_magic 0 +A3 Merc fireball 759 1 1 1 1 10 damage radius 10 explosions radius 1 explosions density 25 25 50 7 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 2 1 1 1 1 A3 Merc Fire Ball 5 2 fire 16 sorceress_fireball_1 sorceress_fireball_impact_1 explodingarrowexp fireexplosion2 0 +traitorbossconejavelin 760 1 1 1 10 500 50 255 255 255 10 0 0 Javelin 1024 1 16 3 1 1 1 50 1 1 1 1 1 100 1 1 4 8 128 6 32 weapon_throw_1 0 +traitorbossstunspear 761 18 24 1 21 14 3 Subloops 3 100 48 48 50 3 255 255 255 0 0 1 BoneSpear 1024 6 16 3 1 1 1 2 1 1 100 1 5 2 8 128 32 necromancer_bonespear_1 paladin_holybolt_impact_1 bonespeartrail 0 +archerbossarrowraincenter 762 13 10 250 9 81 81 255 0 0 1 null 1024 2 16 1 1 3 1 1 8 1 archerbossarrowrainarrow archerbossarrowrainarrow archerbossarrowrainarrow 0 +archerbossarrowrainarrow 763 1 19 3 140 fall distance 15 fall rate 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 3 1 1 1 1 1 ArcherBossArrowRain 4 1 sorceress_thunder_bolt archerbossteethexplode 0 +archerbossteethexplode 764 1 1 13 0 0 0 0 0 0 teethexplode 1024 13 16 1 1 1 1 0 +archerbossmultipleshot 765 1 53 1 48 5 5 15 255 255 255 1 0 0 Arrow 1024 1 16 3 1 1 1 1 2 1 1 1 1 1 1 1 ArcherBossBoomerShot 4 8 128 10 32 amazon_multi_arrow_1 archerbossmultipleshot2 archerbossmultipleshot2 0 +archerbossmultipleshot2 766 1 1 24 24 40 3 255 255 255 1 0 1 SafeArrow 1024 1 16 3 1 1 1 2 1 1 1 1 1 1 1 ArcherBossBoomerShot 4 8 128 10 32 amazon_multi_arrow_1 0 +archerbosscageshot 767 1 30 1 29 16 16 5 5 15 255 255 255 1 0 0 Arrow 1024 1 16 3 1 1 1 1 2 1 1 1 1 1 1 ArcherBossCageShot 4 8 128 10 32 amazon_multi_arrow_1 archerbosscageshot2 archerbosscageshot2 0 +archerbosscageshot2 768 1 30 1 29 4 no light freq 16 16 24 24 15 5 255 178 64 1 0 1 FireArrow 1024 8 16 8 1 1 1 1 1 1 8 32 1 archerbosscagewall archerbosscageshot3 archerbosscagewall firesmall firemedium archerbosscageshot3 0 +archerbosscagewall 769 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 150 5 4 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 1 4 1 1 12 1 8 fire 80 0 0 0 0 0 100 0 0 0 0 0 32 1 41 object_fire_loop_magic 0 +archerbosscageshot3 770 6 6 4 no light freq 24 24 15 8 255 178 64 0 0 1 groundFireSmall 1024 2 16 1 1 2 8 1 1 1 1 1 8 32 1 archerbosscagewall archerbosscagewall 0 +immolationarrow firewall 771 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 37 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 1 12 1 immolationarrow fire 10 5 11 17 23 29 10 6 12 18 24 30 (skill('Exploding Arrow'.blvl)+skill('Fire Arrow'.blvl)+skill('Magic Arrow'.blvl))*5 32 1 41 object_fire_loop_magic 0 +immolationarrow fire 772 5 5 3 19 softhit chance (128) 50 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 1 12 1 1 2 fire 10 5 11 17 23 29 10 6 12 18 24 30 (skill('Exploding Arrow'.blvl)+skill('Fire Arrow'.blvl)+skill('Magic Arrow'.blvl))*5 32 1 41 object_fire_loop_magic 0 +poisondaggercloud spiderboss 773 4 3 6 "Slow drift speed, fourths." 18 "Fast drift speed, fourths." 24 spawn rate 1 number 14 radius 4 4 30 128 255 128 0 0 1 PoisonSparks 1024 31 16 1 10 19 3 1 1 1 1 3 1 1 Poison Dagger Spider Boss -1 16 object_poison_loop poisonpuff 0 +andypoisonbolt spiderboss 774 1 1 35 35 50 5 255 255 255 3 0 0 poisonNova 1024 30 16 3 1 1 1 2 1 1 1 1 4 1280 1280 1280 1280 1280 1280 1792 1280 1280 1280 1280 1280 pois 32 38 44 40 46 52 64 38 44 40 46 52 25 32 andariel_cast_small 0 +armageddoncontrol lavaboss 775 1 1 56 3 damage radius 20 0 0 0 0 0 0 null 1024 1 16 1 1 MegademonArmaBoss 5 2 8 fire 1 armageddonfire 0 +tornado arcaneboss 776 1 27 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 12 12 75 255 255 255 0 0 1 expansion\tornado 1024 40 16 1 12 36 3 1 1 1 50 3 1 1 1 1 1 Tornado Arcane Boss 5 2 32 1 druid_tornado sorceress_blizzard_impact_1 0 +necroarcher 777 1 1 24 24 25 255 255 255 1 0 1 Arrow 1024 1 16 3 1 1 1 1 1 1 1 Raise Skeleton Archer 4 8 128 10 32 weapon_bow_1 0 +blaze2trail 778 6 12 6 9 4 ??? Radius 60 fire duration 1 disc radius (0 = skill) 3 damage radius (0 = skill) 60 fire duration 1 disc radius (0 = skill) 10 disc density 1 9 255 178 64 1 0 1 null 1024 2 16 3 1 1 1 2 1 1 1 1 1 1 5 2 10 32 blaze2dotfiremedium blaze2dotfiresmall blaze2dotfiremedium blaze2dotfiresmall blaze2dotfiremedium blaze2dotfiresmall blaze2dotfiremedium blaze2dotfiresmall 0 +blaze2dotfiremedium 779 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 90 1 5 4 255 178 64 0 0 1 groundFireMedium 1024 37 16 1 12 36 3 1 1 2 1 12 1 Blaze fire 32 1 41 object_fire_loop_magic 0 +blaze2dotfiresmall 780 5 5 3 19 softhit chance (128) 90 1 5 4 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 2 1 12 1 Blaze fire 32 1 41 object_fire_loop_magic 0 +blaze2ignite 781 6 12 6 9 4 ??? Radius 35 fire duration 4 disc radius (0 = skill) 5 damage radius (0 = skill) 40 fire duration 4 disc radius (0 = skill) 40 disc density 1 9 255 178 64 1 0 1 null 1024 2 16 3 1 1 1 2 1 1 1 1 1 1 5 4 1 fire 1 1 1 5 8 8 2 1 2 6 9 9 (skill('Warmth'.blvl)+skill('Fire Wall'.blvl))*3 32 32 blaze2dotfiremedium blaze2dotfiresmall blaze2dotfiremedium blaze2dotfiresmall blaze2ignitegfx blaze2dotfiremedium blaze2dotfiresmall blaze2dotfiremedium blaze2dotfiresmall blaze2ignitegfx 0 +blaze2ignitegfx 782 1 1 2 none 20 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 2 1 1 1 1 1 4 8 1 0 +rathmacenter 783 9 18 3 frames 25 fallrate 15 sliderate 1 range (0 = skill) 1 flames increment 1 # submissile1 5 # submissile3 15 # submissile4 10 0 0 0 0 0 1 null 1024 1 16 1 1 1 1 1 1 5 2 8 1 rathmadeathorb rathmafireexplode 0 +rathmadeathorb 784 19 30 15 29 6 frequency 20 direction increment 6 frequency 20 direction increment 4 increment 5 increment 1 1 25 6 81 81 255 1 0 1 null 1024 16 16 3 1 1 1 1 1 1 1 4 8 1 rathmamist rathmamist 0 +rathmamist 785 25 1 4 dest radius 2 init radius 2 frequency 10 6 -100 25 2 255 255 255 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 countess_mist_loop towermistfade 0 +rathmafireexplode 786 6 12 6 5 ??? Radius 600 fire duration 5 disc radius (0 = skill) 5 damage radius (0 = skill) 600 fire duration 5 disc radius (0 = skill) 14 disc density 1 9 255 178 64 1 0 1 null 1024 2 16 3 1 1 1 1 1 1 1 1 1 1 5 2 10 32 rathmafiremedium rathmafiresmall rathmafiremedium rathmafiresmall 0 +rathmafiremedium 787 5 5 19 softhit chance (128) 19 hit sound chance (128) 800 1 5 4 64 178 255 0 0 1 necroFireMedium 1024 37 16 1 12 36 3 1 1 1 1 12 1 2 mag 32 1 41 object_fire_loop_magic 0 +rathmafiresmall 788 5 5 19 softhit chance (128) 600 1 5 4 64 178 255 0 0 1 necroFireSmall 1024 37 16 1 12 36 3 1 1 1 1 12 1 2 mag 32 1 41 object_fire_loop_magic 0 +dopplestrafearrow 789 1 1 30 30 33 255 255 255 0 0 0 Arrow 1024 1 16 3 1 1 1 2 1 1 1 1 1 Dopplezon 4 8 128 10 32 amazon_multi_arrow_1 0 +rathmabonespear 790 18 24 1 18 3 Subloops 20 + ((lvl/4) * 6) %hp damage 5 30 1600 30 3 255 255 255 0 0 1 BoneSpear 1024 6 16 3 1 1 2 1 1 1 1 RathmaBoneSpear 4 8 6 16 necromancer_bonespear_1 paladin_holybolt_impact_1 bonespearexplode bonespeartrail teethexplode 0 +rathmabonespeartrail 791 6 12 6 9 4 ??? Radius 75 fire duration 4 disc radius (0 = skill) 4 damage radius (0 = skill) 25 fire duration 4 disc radius (0 = skill) 30 disc density 4 30 1600 30 9 64 178 255 0 0 1 null 1024 1 16 3 1 1 2 1 1 1 1 1 1 RathmaBoneSpear 5 2 fire 10 32 explosion_medium_1 rathmafiredot rathmafiresmall rathmafiremedium rathmafiredot rathmafiredot rathmafiresmall rathmafiremedium rathmafiredot rathmafiresmall rathmafiremedium 0 +rathmafiredot 792 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 90 1 5 4 64 178 255 0 0 1 necroFireMedium 1024 37 16 1 12 36 3 1 1 1 2 2 1 12 1 4 mag 425 0 55 55 55 55 475 0 65 65 65 65 32 1 41 object_fire_loop_magic 0 +rathmateethnova 793 1 12 1 9 2 ??? Radius 50 fire duration 2 disc radius (0 = skill) 2 damage radius (0 = skill) 40 fire duration 2 disc radius (0 = skill) 30 disc density 14 20 10 25 3 255 255 255 1 0 0 teethMissile 1024 30 16 2 15 3 1 1 1 1 4 2 1 1 1 1 1 RathmaTeethNova 4 32 necromancer_teeth_1 paladin_holybolt_impact_1 teethexplode rathmafiredot rathmafiredot rathmafiresmall rathmafiremedium 0 +voidbolt 794 1 4 1 5 4 damage radius 8 nova missile count 3 20 700 30 7 255 178 64 1 0 1 Extra\curseMissle 1024 8 16 3 1 1 1 1 1 1 1 1 1 VoidBolt 5 2 mag 16 imp_missile_1 succubus_msissile_impact teethexplode voidbolthitmissile voidbolthitmissile 0 +voidbolthitmissile 795 1 10 1 14 14 -700 25 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 2 1 1 1 1 1 4 ltng 12 8 6 6 6 6 14 9 7 7 7 7 16 sorceress_chargedbolt_1 lightning 0 +rathmapoisonorb 796 1 4 1 5 4 damage radius 4 nova missile count (64 / x) 16 20 200 20 7 255 178 64 1 0 1 Expansion\catapultpoisonbomb 1024 8 16 3 1 1 1 1 1 1 1 1 1 RathmaPoisonOrb 5 2 pois 16 succubus_msissile_1 succubus_msissile_impact plaguejavlinexplode rathmapoisonorbhitmissile rathmapoisonorbhitmissile 0 +rathmapoisonorbhitmissile 797 1 1 14 14 -200 50 3 4 255 255 255 3 0 0 poisonNova 1024 30 16 3 1 1 1 3 3 1 1 1 1 RathmaPoisonOrb 4 7 pois 170 0 50 50 50 50 170 0 50 50 50 50 50 16 object_poison_loop 0 +unused1 798 1 1 1 0 +rathmafiremedium_short 799 5 5 19 softhit chance (128) 19 hit sound chance (128) 200 1 5 4 64 178 255 0 0 1 necroFireMedium 1024 37 16 1 12 36 3 1 1 1 1 12 1 2 32 1 41 object_fire_loop_magic 0 +rathma_fissurecenter 800 48 25 55 255 255 255 0 0 1 null 1024 2 16 1 1 1 1 1 1 1 rathma_fissurecrack_1 rathma_fissurecrack_1 rathma_fissuresmoke_1 0 +rathma_fissurecrack_1 801 1 1 8 84 5 64 178 255 0 0 1 necroFissureCrack 512 41 16 3 1 1 1 3 25 1 1 RathmaFissure 32 4 sorceress_inferno fire_hit 0 +rathma_fissurecrack_2 802 1 1 8 84 5 64 178 255 0 0 1 null 1024 2 16 3 1 1 1 3 1 1 RathmaFissure 32 1 sorceress_inferno fire_hit 0 +rathma_fissuresmoke_1 803 1 1 84 255 255 255 0 0 1 necroFissureSmoke 512 41 16 25 1 1 0 +rathma_fissuresmoke_2 804 1 1 84 255 255 255 0 0 1 null 1024 2 16 1 1 0 +stunsplash 805 1 1 44 3 damage radius 45 45 3 255 178 64 0 0 0 null 1024 1 16 3 1 1 1 1 1 1 1 1 1 Stun 5 2 8 stun 40 5 0 0 32 0 +voidfrogwave 806 1 1 20 20 10 3 255 255 255 1 0 0 FrostNova 1024 30 16 1 15 3 1 1 1 1 4 1 1 1 1 1 4 8 cold 500 4 8 12 20 28 600 4 8 13 21 29 25 32 sorceress_glacialspike_1 sorceress_iceblast_impact_1 iceexplode 0 +rathma_outernova_travel 807 19 12 15 9 26 frequency 12 direction increment 26 frequency 12 direction increment 100 fire duration 12 disc radius (0 = skill) 10 damage radius (0 = skill) 100 fire duration 10 disc radius (0 = skill) 10 disc density 7 7 82 255 255 255 1 0 1 null 1024 10 16 6 1 1 1 1 1 1 1 RathmaOuterNova 4 8 16 rathma_outernova_trail rathma_outernova_end_dmg rathma_outernova_trail rathma_outernova_end_dmg 0 +rathma_outernova_trail 808 1 44 1 6 spacing 4 Draw delay 36 255 255 255 0 0 0 Expansion\vines 128 12 16 3 1 1 1 2 1 1 RathmaOuterNova 4 8 16 rathma_outernova_trail_fade 0 +rathma_outernova_trail_fade 809 1 1 6 spacing 4 Draw delay 36 255 255 255 0 0 0 Expansion\Vines_Death 128 12 16 3 1 1 1 2 1 1 RathmaOuterNova 8 16 0 +rathma_outernova_end_dmg 810 5 5 3 19 softhit chance (128) 30 255 255 255 0 0 1 PoisonSmokePuff 1024 26 16 3 1 1 3 1 12 1 1 2 pois 0 0 0 0 0 0 0 0 0 0 0 0 50 32 1 41 0 +rathmabonespeardelay 811 1 53 1 48 1 1 13 7 255 255 255 0 0 1 BoneCast 1024 16 16 6 1 1 2 1 1 1 1 RathmaBoneSpear 4 16 rathmabonespear rathmabonespear rathmabonespear 0 +rathmabonespeartraildelay 812 1 53 1 48 1 1 13 7 255 255 255 0 0 0 null 1024 1 16 6 1 1 2 1 1 1 1 RathmaBoneSpear 4 16 rathmabonespeartrail rathmabonespeartrail rathmabonespeartrail 0 +frozenhorror arcticblast1 boss 813 1 1 8 "Mana Use, 16ths." 7 Minimum range 15 15 35 255 255 255 3 0 0 expansion\ArcticBlastIce 1024 16 16 3 1 2 1 1 1 7 cold 320 3 3 3 3 3 400 4 4 4 4 4 100 10 10 10 32 16 druid_arcticblast 0 +frostnova boss 814 1 10 1 35 35 -800 24 81 81 255 0 0 0 FrostNova 1024 14 16 3 1 1 1 4 1 1 1 1 Frost Nova Horror Boss 4 48 16 sorceress_frostnova ice_explode 0 +rathmapacmanstart 815 1 53 1 48 15 15 -500 22 255 255 255 1 0 1 PoisonLeft 1024 12 16 6 1 1 1 1 1 1 1 4 16 rathmapacmanbolt rathmapacmanbolt 0 +rathmapacmanbolt 816 1 1 22 increment 22 increment 20 20 50 2 64 255 64 1 0 1 FrogPoisonMissile 1024 7 16 3 1 1 1 1 12 3 1 1 1 1 RathmaPacman 4 8 16 object_poison_loop rathmapacmanbolt2 rathmapacmanbolt2 0 +rathmapacmanbolt2 817 1 1 18 18 60 2 64 255 64 1 0 1 FrogPoisonMissile 1024 7 16 3 1 1 1 1 12 3 1 1 1 RathmaPacman 4 8 16 object_poison_loop 0 +shockwave boss 818 1 1 7 24 24 25 255 255 255 0 0 0 expansion\shockwave 1024 7 8 3 1 1 1 4 3 1 1 1 1 Shock Wave 4 64 8 druid_shockwave 0 +rathmacoldmaker 819 52 31 11 11 40 5 143 143 255 0 0 0 BlueNovaB 1024 8 8 3 1 4 2 1 1 1 75 1 RathmaColdMissiles 4 8 cold 32 1 baal_coldtrail rathmacoldtrail rathmacoldtrail 0 +rathmacoldtrail 820 1 1 13 13 20 5 143 143 255 0 0 0 BlueNovaB 1024 8 8 3 1 4 2 1 1 1 75 1 RathmaColdMissiles 4 8 cold 32 1 0 +glacialspikeSpire 821 1 14 1 13 0 damage radius (0 = skill) 0 freeze length (0 = skill) 15 15 60 5 81 81 255 1 0 1 GlacialSpike 1024 6 16 3 1 1 1 1 1 1 1 1 Glacial Spike Spire 5 2 frze 16 sorceress_fireball_1 sorceress_iceblast_impact_1 freezingarrowexp1 freezingarrowexp2 0 +poisonnovaRathma 822 1 1 12 12 45 0 0 0 0 0 0 poisonNova 1024 30 16 3 1 1 1 1 4 1 1 1 Poison Nova Rathma 8 80 32 necromancer_poisonnova 0 +teethRathma 823 1 1 16 16 450 50 3 255 255 255 1 0 0 teethMissile 1024 30 16 1 15 3 1 1 1 1 4 1 1 1 1 1 Teeth Rathma 4 32 necromancer_teeth_1 paladin_holybolt_impact_1 teethexplode 0 +mercfirearrow 824 1 1 1 dl12 convert to elemental% 50 base conversion 0 conversion/lvl 30 30 20 5 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 2 1 1 1 1 1 1 1 1 1 Merc Fire Arrow 4 fire 32 amazon_firearrow_1 sorceress_firebolt_impact_1 fireexplode 0 +merccoldarrow 825 1 1 1 dl12 convert to elemental% 50 base conversion 0 conversion/lvl 22 22 23 5 81 81 255 1 0 1 IceArrow 1024 8 16 3 1 1 1 1 2 1 1 1 1 1 1 1 1 1 Merc Cold Arrow 4 cold 32 amazon_coldarrow_1 impact_cold_1 iceexplode 0 +fistsoffirenova 826 1 1 24 24 -1000 13 255 255 255 0 0 0 FireNova 1024 13 16 3 1 1 4 1 1 1 1 4 8 1 fire 1 1 2 15 29 44 2 1 3 18 34 51 (skill('Tiger Strike'.blvl) + skill('Dragon Flight'.blvl)) * 26 64 16 sorceress_fireball_1 fire_hit 0 +fistsoffireorb 827 19 15 5 frequency 0 direction increment 5 frequency 0 direction increment 0 increment 0 increment 20 14 12 6 81 81 255 1 30 1 null 1024 1 16 1 1 1 1 1 1 1 4 8 1 fofmeteorcenter fofmeteorcenter 0 +fofmeteor 828 1 14 7 radius 1 flame increment 15 0 0 0 0 0 1 Meteor 1024 12 16 1 1 1 1 4 5 2 8 1 1 1 1 9 18 28 2 1 2 10 19 29 (skill('Tiger Strike'.blvl) + skill('Dragon Flight'.blvl)) * 26 fire 1 1 1 9 17 25 2 1 2 10 18 26 (skill('Tiger Strike'.blvl) + skill('Dragon Flight'.blvl)) * 26 1 fistsoffirefirewall 0 +fofmeteorcenter 829 9 18 1 4 15 frames 25 fallrate 15 sliderate 1 explode immediately 3 # submissile1 2 # submissile3 8 # submissile4 15 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 8 1 sorceress_meteor fofmeteor fofmeteor fofmeteor fofmeteortail fofmeteorexplode whitelightmissile fofmeteorfire fofmeteorfire 0 +fofmeteortail 830 1 15 0 0 0 0 0 1 MeteorTail 1024 12 16 1 1 1 8 1 0 +fofmeteorexplode 831 1 1 2 none 16 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 1 0 +fofmeteorfire 832 5 1 20 5 4 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 1 1 3 1 fire 1 1 2 8 14 20 2 1 3 12 21 30 (skill('Tiger Strike'.blvl) + skill('Dragon Flight'.blvl)) * 26 32 1 0 +fistsoffireorbdelay 833 1 53 1 48 7 7 5 7 255 255 255 0 0 1 null 1024 1 16 6 1 1 2 1 1 1 1 4 16 fistsoffireorb fistsoffireorb 0 +ubermadawccursedaxe 834 1 1 21 24 24 20 5 3 255 255 255 1 0 1 Expansion\ProjectionMissile 1024 5 16 3 1 1 1 1 6 1 1 1 1 1 1 1 UberMadawcCursedAxe 4 6 6 32 weapon_throw_1 necromancer_curse_cast 0 +ubermadawccurseapply 835 1 54 1 50 5 Hit delay 100 25 255 255 255 0 0 0 null 128 1 16 3 1 1 1 3 1 1 UberMadawcCursedAxe 8 1 8 41 0 +ubermadawcowaxe 836 1 1 21 24 24 20 5 3 255 255 255 1 0 1 Expansion\ProjectionMissile 1024 5 16 3 1 1 1 1 6 1 1 1 1 1 1 1 UberMadawcOWAxe 4 6 6 32 weapon_throw_1 necromancer_curse_cast 0 +ubermadawcowapply 837 2 54 1 50 5 Hit delay 100 25 255 255 255 0 0 0 null 128 1 16 3 1 1 1 3 1 1 UberMadawcOWAxe 8 1 8 41 0 +powerstrikenova1valk 838 1 4 3 5 12 12 1 255 255 255 0 0 0 null 1024 1 16 3 1 1 1 1 1 Valk Power Strike 8 8 1 powerstrikenova2valk powerstrikenova2valk 0 +powerstrikenova2valk 839 1 10 1 16 16 -1000 15 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 4 8 1 ltng 1 0 0 0 0 0 3 4 8 28 45 62 (skill('Lightning Strike'.blvl)*20) + (skill('Lightning Bolt'.blvl)*20) 64 16 sorceress_nova lightning 0 +ubertalictargetindicator 840 9 18 1 4 15 frames 25 fallrate 15 sliderate 1 explode immediately 3 # submissile1 2 # submissile3 8 # submissile4 15 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 1 ubertalictargetindicatordelay 0 +ubertalictargetindicatordelay 841 1 14 4 radius 1 flame increment 15 0 0 0 0 0 1 null 1024 1 16 1 1 1 1 0 +bruteSlamCenter 842 19 30 15 29 2 frequency 4 direction increment 2 frequency 4 direction increment 64 increment 32 increment 50 81 81 255 1 0 1 null 1024 16 16 0 1 1 1 1 1 1 1 4 8 1 druid_boulderloop bruteSlamFire bruteSlamHit bruteSlamFire bruteSlamHit 0 +bruteSlamFire 843 5 5 19 softhit chance (128) 5 5 30 3 2 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 2 1 12 1 2 1 fire 100 1 2 6 10 12 100 1 2 6 10 12 32 1 41 0 +bruteSlamHit 844 1 52 1 47 6 explosion radius 4 no light freq 8 radius (0 = skill) 1 increment 10 # rocks 15 lob velocity 1 size 0 knockback% 0 0 0 1 255 178 64 0 0 1 expansion\MoltenBoulderRoll 1024 10 16 8 1 1 2 1 1 1 1 1 5 2 8 fire 1800 0 0 0 0 0 2200 32 8 druid_boulderloop sorceress_fireball_1 firewall firesmall firemedium bruteSlamExplode bruteSlamFlyingRocks 0 +bruteSlamExplode 845 1 13 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 3 1 1 1 1 1 32 1 druid_boulderexplode_1 0 +bruteSlamFlyingRocks 846 1 16 255 178 64 0 0 1 expansion\MoltenFragmentD 1024 16 16 8 1 1 1 1 1 32 8 impact_fire_1 0 +brutemoltenboulder 847 47 52 6 47 14 3 explosion radius 4 no light freq 0 radius (0 = skill) 1 increment 10 # rocks 15 lob velocity 1 size 60 knockback% 8 8 1 60 -1 255 178 64 0 0 1 expansion\MoltenBoulderRoll 1024 10 16 8 1 1 1 4 2 1 1 1 1 1 BruteMoltenBoulder 5 2 32 8 druid_boulderloop sorceress_fireball_1 brutemoltenboulderfirepath brutemoltenboulderfirepath firewall firesmall firemedium brutemoltenboulderexplode brutemoltenboulder-flyingrocks brutemoltenboulderfirepath 0 +brutemoltenboulderemerge 848 1 53 1 48 3 explosion radius 2 bounces 50 damping 10 lob 3 3 10 255 178 64 5 0 0 expansion\MoltenBoulderEmerge 1024 6 16 8 1 1 2 1 1 1 32 8 druid_bouldereremerge brutemoltenboulder brutemoltenboulder 0 +brutemoltenboulderexplode 849 1 13 255 178 64 0 0 0 null 1024 1 16 2 1 1 1 1 32 1 druid_boulderexplode_1 0 +brutemoltenboulderfirepath 850 5 5 37 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 8 1 2 1 1 2 fire 2 1 2 6 10 12 4 1 2 6 10 12 32 1 41 object_fire_loop_house 0 +brutemoltenboulder-flyingrocks 851 1 16 255 178 64 0 0 1 expansion\MoltenFragmentD 1024 16 16 8 1 1 1 1 1 32 8 impact_fire_1 0 +bruteshockwave 852 1 1 21 14 100 28 28 8 255 255 255 0 0 0 expansion\shockwave 1024 7 8 3 1 1 1 4 1 1 1 1 1 BruteShockWave 4 64 8 druid_shockwave 0 +ubermadawcchargedaxe 853 1 12 1 9 3 ??? Radius 50 fire duration 3 disc radius (0 = skill) 3 damage radius (0 = skill) 50 fire duration 3 disc radius (0 = skill) 10 disc density 24 24 20 5 3 255 255 255 0 0 1 Expansion\ProjectionMissile 1024 5 16 3 1 1 1 1 4 1 1 1 1 1 1 1 UberMadawcDoubleThrow 4 6 32 weapon_throw_1 fingermage_bolt_impact_1 bigheadexp ubermadawcchargedground ubermadawcchargedground ubermadawcchargedground ubermadawcchargedground 0 +ubermadawcchargedground 854 1 1 90 3 255 255 255 0 0 1 Expansion\ShockField 1024 10 16 1 3 1 1 1 1 4 2 1 1 8 ltng 60 140 8 41 assassin_staticfield 0 +ubermadawclightningstormcenter 855 13 10 200 9 81 81 255 0 0 1 null 1024 2 16 1 1 3 1 1 8 1 ubermadawclightningstormbolt ubermadawclightningstormbolt ubermadawclightningstormbolt 0 +ubermadawclightningstormbolt 856 1 19 3 120 fall distance 15 fall rate 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 3 1 1 1 1 1 UberMadawcLightningStorm 4 1 sorceress_thunder_bolt archerbossteethexplode 0 +leoricsummonnova 857 1 4 1 5 90 90 / sHitPar missile count 90 360 / cHitPar missile count 8 8 45 4 128 255 128 1 0 1 BoneSpirit 1024 8 16 3 1 1 1 1 8 2 1 1 1 1 1 LeoricSummonNova 8 necromancer_bonespirit_1 paladin_holybolt_impact_1 bonespiritexplode leoricsummonorb leoricsummonorb 0 +leoricsummonorb 858 19 15 20 frequency 17 direction increment 20 frequency 17 direction increment 3 3 41 6 81 81 255 0 0 1 null 1024 1 16 3 1 1 1 1 1 1 LeoricSummonNova 4 8 1 leoricsummonorbbolt leoricsummonorbbolt 0 +leoricsummonorbbolt 859 1 1 6 999 summon mon id 8 summon mon mode 67239936 summon mon flags (no treasure/exp) 3 3 10 4 81 81 255 0 0 1 null 1024 1 16 3 1 1 1 1 1 1 1 1 LeoricSummonNova 4 8 16 0 +siegebeastvolcano 860 50 28 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 2 start frame 78 end frame 40 lob 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 2 start frame 78 end frame 40 lob 82 0 0 0 0 0 1 Expansion\EruptionCrack 1024 41 16 3 1 1 1 6 3 1 25 1 1 100 SiegeBeastClusterbomb 4 1 druid_volcano siegebeastvolcano debris 2 siegebeastvolcano debris 2 0 +siegebeastvolcano overlay fire 861 1 1 78 10 255 64 64 0 0 1 Expansion\FirestormEmitter 1024 16 16 3 3 25 1 1 1 sorceress_inferno 0 +siegebeastvolcano debris 2 862 1 55 1 51 14 14 16 0 0 0 0 0 1 Expansion\impfireball 1024 20 16 1 1 1 1 1 1 1 1 siegebeastvolcano small fire siegebeastvolcano explosion siegebeastvolcano small fire 0 +siegebeastvolcano explosion 863 1 1 18 0 0 0 0 0 0 PotionExplode 1024 29 16 1 1 1 1 0 +siegebeastvolcano small fire 864 1 1 6 1001 summon mon id 8 summon mon mode 67239936 summon mon flags (no treasure/exp) 2 0 0 0 0 0 0 PotionExplodeDebris01 1024 29 16 3 1 1 4 2 1 1 1 SiegeBeastClusterbomb 4 8 32 1 andariel_fire_loop 0 +siegebeastfirenova 865 1 10 1 24 24 -500 28 255 255 255 0 0 0 FSExplode 1024 15 16 3 1 1 4 1 1 1 100 1 SiegeBeastFireNova 4 32 16 sorceress_fireball_1 fire_hit 0 +siegebeastbuffnova 866 1 1 18 2 Vel / level increase 35 35 -400 28 192 192 192 1 0 0 Extra\BAYellShockWave02 1024 15 16 3 1 1 1 SiegeBeastBuffNova 32 barbarian_circle_1 0 +siegebeastorb 867 19 30 15 29 100 frequency 19 direction increment 100 frequency 19 direction increment 4 increment 4 increment 22 22 16 6 81 81 255 0 0 1 Expansion\BaalMissile 1024 15 16 6 1 1 1 1 1 1 1 SiegeBeastOrb 4 8 8 siegebeastorbexplode siegebeastorbbolt siegebeastorbnova siegebeastorbbolt siegebeastorbnova 0 +siegebeastorbbolt 868 1 1 0 0 11 4 81 81 255 0 0 1 Expansion\baalsummonsmall 1024 11 16 3 1 1 1 1 1 1 1 1 imp_missile_1 0 +siegebeastorbnova 869 20 16 6 frames 2 frequency 6 frames 2 frequency 22 22 -800 22 4 81 81 255 0 0 1 Expansion\pdteleportmissile 1024 10 16 3 1 1 2 1 1 1 SiegeBeastOrb 4 8 16 0 +siegebeastorbexplode 870 1 1 13 6 81 81 255 0 0 0 Expansion\impteleport 1024 13 16 1 1 1 8 1 0 +blaze2igniteUberTalic 871 6 12 6 9 4 ??? Radius 35 fire duration 4 disc radius (0 = skill) 5 damage radius (0 = skill) 40 fire duration 4 disc radius (0 = skill) 40 disc density 1 9 255 178 64 1 0 1 null 1024 2 16 3 1 1 1 2 1 1 1 1 1 1 5 4 1 fire 1000 1000 (skill('Warmth'.blvl)+skill('Fire Wall'.blvl))*3 32 32 blaze2dotfiremedium blaze2dotfiresmall blaze2dotfiremedium blaze2dotfiresmall blaze2ignitegfx blaze2dotfiremedium blaze2dotfiresmall blaze2dotfiremedium blaze2dotfiresmall blaze2ignitegfx 0 +infernodebuff 872 8 54 1 50 4 "Mana Use, 16ths." 8 Minimum range 1 Subloops 5 % chance to spawn trail 6 /4 extra chance per frame 3 Hit delay 28 28 -800 16 3 255 178 64 1 0 1 Flamethrower 1024 15 24 3 1 1 1 1 1 1 1 Inferno 5 8 32 16 82 sorceress_inferno sorceress_firebolt_impact_1 fire_hit infernotrail 0 +infernodebuff2 873 8 54 1 50 4 "Mana Use, 16ths." 8 Minimum range 1 Subloops 5 % chance to spawn trail 6 /4 extra chance per frame 3 Hit delay 28 28 -800 16 3 255 178 64 1 0 1 Flamethrower2 1024 15 24 3 1 1 1 1 1 1 1 Inferno 5 8 32 16 82 sorceress_inferno fire_hit infernotrail 0 +infernodebuffapply_unused 874 1 54 1 50 3 Hit delay 8 2 255 255 255 0 0 0 FireArrowExplode2 1024 12 16 3 1 1 1 2 1 1 1 Inferno 4 2 1 0 +arcticblastdebuff 875 8 54 1 50 8 "Mana Use, 16ths." 8 Minimum range 1 Subloops 15 % chance to spawn trail 4 /4 extra chance per frame 3 Hit delay 26 26 -500 18 2 255 255 255 1 0 0 expansion\ArcticBlastIce 1024 16 16 3 1 1 1 1 1 1 1 1 Arctic Blast 5 8 48 16 41 druid_arcticblast arcticblasttrail 0 +arcticblastdebuff2 876 8 54 1 50 8 "Mana Use, 16ths." 8 Minimum range 1 Subloops 15 % chance to spawn trail 4 /4 extra chance per frame 3 Hit delay 26 26 -500 18 2 255 255 255 1 0 0 expansion\ArcticBlastIce 1024 16 16 3 1 1 1 1 1 1 1 1 Arctic Blast 5 8 48 16 41 druid_arcticblast arcticblasttrail 0 +arcticblastdebuffapply_unused 877 1 54 1 50 3 Hit delay 8 2 255 255 255 0 0 0 ChillBloodPuff 1024 26 24 3 1 1 1 2 1 1 1 Arctic Blast 4 2 1 0 +serpentfireball 878 6 12 6 9 3 ??? Radius 50 fire duration 0 disc radius (0 = skill) 0 damage radius (0 = skill) 50 fire duration 0 disc radius (0 = skill) 100 disc density 20 24 100 9 255 178 64 1 0 1 null 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 1 Immolation Arrow 5 2 fire 10 32 amazon_firearrow_1 explosion_medium_1 serpentfiretrailwall firesmall firemedium serpentfiretrail serpentfiretrailwall firesmall firemedium firewall firesmall firemedium 0 +serpentspear 879 18 24 1 3 Subloops 35 10 175 3 255 255 255 0 0 1 null 1024 6 16 3 1 1 2 1 1 1 75 1 Bone Spear Serpent 4 8 6 16 necromancer_bonespear_1 paladin_holybolt_impact_1 bonespearexplode bonespeartrailCisternBoss teethexplode 0 +bonespeartrailCisternBoss 880 1 8 255 255 255 0 0 0 GreenBoneSpearTrail 1024 9 16 1 1 8 32 0 +serpentfiretrail 881 5 5 3 19 softhit chance (128) 50 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 4 2 1 12 1 1 2 fire 10000 10000 32 1 41 object_fire_loop_magic 0 +serpentfiretrailwall 882 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 37 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 4 2 1 12 1 immolationarrow fire 10000 10000 32 1 41 object_fire_loop_magic 0 +Fire Nova 883 1 1 30 30 -1500 18 255 255 255 0 0 0 FireNova 1024 13 16 3 1 1 8 1 1 1 100 1 Fire Nova 4 8 1 fire (skill('Tiger Strike'.blvl) + skill('Royal Strike'.blvl)) * 26 64 16 sorceress_fireball_1 fire_hit 0 +fireball Ashen Boss 884 1 1 1 1 5 damage radius 4 explosions radius 1 explosions density 20 20 50 7 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 1 4 1 1 1 1 10 1 Fire Ball Ashen Boss 5 2 fire 16 sorceress_fireball_1 sorceress_fireball_impact_1 explodingarrowexp fireexplosion2 0 +ZharUnused 885 1 14 1 13 0 damage radius (0 = skill) freeze length (0 = skill) 22 22 30 5 200 81 255 1 0 1 ZharBolts 1024 6 16 3 1 1 1 1 1 1 1 1 5 2 mag 32 succubus_msissile_1 succubus_msissile_impact teethexplode freezingarrowexp1 freezingarrowexp2 0 +ZharBolts 886 1 1 10 10 120 2 255 64 64 1 0 1 ZharBolt 1024 10 16 3 1 1 1 1 4 -15 1 1 1 1 1 ZharBarrage 4 8 mag 16 succubus_msissile_1 succubus_msissile_impact teethexplode 0 +ZharFireball 887 1 1 1 1 4 damage radius 3 explosions radius 1 explosions density 14 14 5 8 255 178 64 1 0 1 Fireball 1024 5 16 3 1 1 1 1 1 1 1 1 5 2 8 fire 375 625 16 monster_fireball sorceress_fireball_impact_1 Zharexplodingarrowexp fireexplosion2 0 +ZharNovaOrb 888 1 4 1 5 nova missile count (64 / x) 0 0 0 0 7 255 178 64 1 0 1 null 1024 8 16 3 1 1 1 1 1 1 4 8 ltng 250 375 1 succubus_msissile_1 succubus_msissile_impact fireexplode ZharNovaOrbHitMissile ZharNovaOrbHitMissile 0 +ZharNovaOrbHitMissile 889 1 1 24 24 -1000 13 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 1 4 8 ltng 250 375 64 16 sorceress_fireball_1 lightning 0 +Zhararmageddoncontrol 890 1 1 56 6 damage radius 20 0 0 0 0 0 0 null 1024 1 16 1 1 ZharArmageddon 5 2 8 ltng 1 ZharNovaOrb 0 +Zhararmageddonrock 891 1 55 1 20 0 0 0 1 0 1 ZharArmageddonRock 1024 16 16 1 1 1 1 8 1 andariel_fire_loop ZharNovaOrb Zhararmageddonexplosion 0 +Zhararmageddontail 892 1 1 20 0 0 0 1 0 1 ZharArmageddonFire 1024 16 16 1 1 1 8 1 0 +Zhararmageddonexplosion 893 1 1 5 Damage radius 16 5 255 255 255 0 0 0 ZharExplode 1024 16 16 3 1 3 1 1 1 4 8 1 druid_meteor_explode_1 0 +Zharexplodingarrowexp 894 1 16 15 255 178 64 0 0 0 ZharExplode 1024 16 16 1 1 1 1 1 1 1 4 1 explosion_medium_1 0 +demonpillarfireball 895 6 12 6 9 3 ??? Radius 25 fire duration 0 disc radius (0 = skill) 0 damage radius (0 = skill) 50 fire duration 0 disc radius (0 = skill) 100 disc density 16 24 200 30 255 178 64 1 0 1 expansion\ImpFireball 1024 20 16 3 1 1 1 -30 1 1 1 1 1 1 DemonPillar Fireball 5 2 fire 1 imp_missile_1 sorceress_fireball_impact_1 demonpillarfireballexplode immolationarrow firewall firesmall firemedium immolationarrow fire immolationarrow firewall firesmall firemedium firewall firesmall firemedium 0 +demonpillarfireballexplode 896 1 12 255 178 64 0 0 0 ExpArrowExplode 1024 11 16 1 1 1 1 1 1 1 1 5 2 8 1 0 +sacrificecorpseexplosion 897 11 13 5 255 178 64 0 0 0 CorpseExplodeGuts 1024 13 16 3 1 1 1 1 1 1 1 1 1 Sacrifice 4 8 4 1 necromancer_corpseexp_1 bigblood1 bigblood2 0 +ZharMiniBossBigHeadMissile 898 1 1 12 12 40 5 255 143 143 3 0 1 BigHeadRedLightningMissile 1024 3 16 3 1 1 1 1 1 1 1 1 4 8 128 ltng 1 monster_fireball sorceress_firebolt_impact_1 ZharMiniBossBigHeadExp 0 +ZharMiniBossBigHeadExp 899 1 6 8 255 143 143 0 0 0 BigheadLightningExplosion 1024 7 16 1 1 1 1 1 1 1 4 8 1 0 +ZharMiniBossMeteorBlizzardCenter 900 10 8 3 base radius 2 base freq 2 level divisor 3 base radius 2 base freq 2 level divisor 75 9 255 81 81 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 sorceress_inferno ZharMiniBossMeteorBlizzard1 ZharMiniBossMeteorBlizzard1 ZharMiniBossMeteorBlizzard4 0 +ZharMiniBossMeteorBlizzard1 901 1 19 3 180 fall distance 7 fall rate 8 0 0 0 0 0 1 meteorlavadown 1024 9 16 3 1 2 1 1 1 1 1 ZharMiniBossMeteorBlizzard 4 8 1 sorceress_inferno sorceress_firebolt_impact_1 ZharMiniBossMeteorBlizzardexplode1 ZharMiniBossMeteorBlizzardexplode1 0 +ZharMiniBossMeteorBlizzard2 902 1 19 3 180 fall distance 8 fall rate 8 0 0 0 0 0 1 meteorlavadown 1024 9 16 3 1 2 1 1 1 1 1 ZharMiniBossMeteorBlizzard 4 8 1 sorceress_inferno sorceress_firebolt_impact_1 ZharMiniBossMeteorBlizzardexplode1 ZharMiniBossMeteorBlizzardexplode1 0 +ZharMiniBossMeteorBlizzard3 903 1 19 3 180 fall distance 7 fall rate 8 0 0 0 0 0 1 meteorlavadown 1024 9 16 5 3 1 2 1 1 1 1 1 ZharMiniBossMeteorBlizzard 4 8 1 sorceress_inferno sorceress_fireball_impact_1 ZharMiniBossMeteorBlizzardexplode1 ZharMiniBossMeteorBlizzardexplode1 0 +ZharMiniBossMeteorBlizzard4 904 1 19 3 180 fall distance 8 fall rate 8 0 0 0 0 0 1 meteorlavadown 1024 9 16 5 3 1 2 1 1 1 1 1 ZharMiniBossMeteorBlizzard 4 8 1 sorceress_inferno sorceress_fireball_impact_1 ZharMiniBossMeteorBlizzardexplode1 ZharMiniBossMeteorBlizzardexplode1 0 +ZharMiniBossMeteorBlizzardexplode1 905 1 1 6 0 0 0 0 0 0 Expansion\FireSpikeExplode 1024 14 16 1 1 2 1 1 1 1 4 8 1 0 +demonpillarlightmaker 906 52 31 24 24 -700 30 10 255 255 255 0 0 0 Expansion\Shockfield 1024 10 8 3 1 4 1 1 1 1 1 DemonPillar Lightning 4 8 ltng 8 1 demonpillarlighttrail demonpillarlighttrail 0 +demonpillarlighttrail 907 1 1 17 17 -300 20 10 255 255 255 0 0 0 Expansion\Shockfield 1024 10 8 3 1 4 2 1 1 1 1 DemonPillar Lightning 4 8 ltng 8 1 0 +GuardianOfFateSummonOrb 908 19 15 16 frequency 19 direction increment 16 frequency 19 direction increment increment increment 10 10 25 6 81 81 255 1 0 1 IceOrb 1024 16 16 1 1 1 1 1 1 GuardianOfFateSummon 4 8 1 GuardianOfFateSummonHit GuardianOfFateSummonHit 0 +GuardianOfFateSummonHit 909 1 1 6 1065 summon mon id 1 summon mon mode 67239936 summon mon flags (no treasure/exp) 3 3 5 0 0 0 0 0 1 null 1024 1 16 1 1 1 1 1 1 GuardianOfFateSummon 4 8 1 0 +warlordminiboss1baalmaker 910 52 31 20 20 50 5 255 143 143 1 0 1 Flamethrower2 1024 15 24 3 1 4 2 1 1 1 40 1 WarlordMiniBoss1BaalFire 4 8 32 1 sorceress_inferno warlordminiboss1baaltrail warlordminiboss1baaltrail 0 +warlordminiboss1baaltrail 911 1 1 17 17 -700 20 5 255 143 143 0 0 1 Flamethrower2 1024 15 24 3 1 4 2 1 1 1 40 1 WarlordMiniBoss1BaalFire 4 8 32 1 0 +tpot_fire_small 912 1 65 1 60 16 nova missile count 0 submissiles skilllevel bonus 16 nova missile count 16 16 30 255 255 255 0 0 1 mslops 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 2 7 fire 3 8 32 1 weapon_throw_1 explosion_medium_1 tpot_fire_small_explode tpot_fire_small_nova tpot_fire_small_explode tpot_fire_small_nova 0 +tpot_fire_small_explode 913 1 3 1 3 4 damage radius 1 255 178 64 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 5 8 2 7 32 1 fireexplode 0 +tpot_fire_small_nova 914 1 10 1 61 229 auratargetstate id 100 auraduration 39 aurastat1 id -3 aurastat1 value aurastat2 id aurastat2 value 12 12 -900 12 2 255 178 64 0 0 0 null 1024 1 16 3 1 1 2 1 1 1 1 1 4 8 fire 3 8 32 16 sorceress_fireball_1 fireexplode 0 +tpot_fire_medium 915 1 65 1 60 16 nova missile count 1 submissiles skilllevel bonus 16 nova missile count 16 16 30 255 255 255 0 0 1 mslopm 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 8 12 fire 8 18 32 1 weapon_throw_1 explosion_medium_1 tpot_fire_medium_explode tpot_fire_medium_nova tpot_fire_medium_explode tpot_fire_medium_nova 0 +tpot_fire_medium_explode 916 1 3 1 3 5 damage radius 1 255 178 64 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 5 8 8 12 32 1 explosivepotionexp 0 +tpot_fire_medium_nova 917 1 10 1 61 229 auratargetstate id 100 auraduration 39 aurastat1 id -6 aurastat1 value aurastat2 id aurastat2 value 12 12 -800 14 2 255 178 64 0 0 0 null 1024 1 16 3 1 1 2 1 1 1 1 1 4 8 fire 8 18 32 16 sorceress_fireball_1 fireexplode 0 +tpot_fire_large 918 1 65 1 60 16 nova missile count 2 submissiles skilllevel bonus 16 nova missile count 16 16 30 255 255 255 0 0 1 mslopl 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 13 30 fire 13 34 32 1 weapon_throw_1 explosion_medium_1 tpot_fire_large_explode tpot_fire_large_nova tpot_fire_large_explode tpot_fire_large_nova 0 +tpot_fire_large_explode 919 1 3 1 3 6 damage radius 1 255 178 64 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 5 8 13 30 32 1 explodingarrowexp explosivepotiondebris1 explosivepotiondebris3 0 +tpot_fire_large_nova 920 1 10 1 61 229 auratargetstate id 100 auraduration 39 aurastat1 id -10 aurastat1 value aurastat2 id aurastat2 value 12 12 -700 16 2 255 178 64 0 0 0 null 1024 1 16 3 1 1 2 1 1 1 1 1 4 8 fire 13 34 32 16 sorceress_fireball_1 fireexplode 0 +tpot_gas_small 921 1 65 1 60 16 nova missile count 0 submissiles skilllevel bonus 16 nova missile count 16 16 30 255 255 255 0 0 1 mslgps 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 pois 38 38 50 80 1 weapon_throw_1 explosion_medium_1 tpot_gas_small_explode tpot_gas_small_nova tpot_gas_small_explode tpot_gas_small_nova 0 +tpot_gas_small_explode 922 1 2 1 2 0 ring 2 density 2 ring 1 density 3 subloops 0 ring 2 density 2 ring 1 density 3 subloops 1 128 255 128 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 1 4 8 pois 38 38 50 80 1 rancidgascloud rancidgascloud 0 +tpot_gas_small_nova 923 1 10 1 61 230 auratargetstate id 100 auraduration 45 aurastat1 id -3 aurastat1 value aurastat2 id aurastat2 value 1 1 80 2 128 255 128 0 0 0 null 1024 1 16 3 1 1 2 1 1 1 1 1 4 8 80 16 0 +tpot_gas_medium 924 1 65 1 60 16 nova missile count 1 submissiles skilllevel bonus 16 nova missile count 16 16 30 255 255 255 0 0 1 mslgpm 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 pois 144 144 50 80 1 weapon_throw_1 explosion_medium_1 tpot_gas_medium_explode tpot_gas_medium_nova tpot_gas_medium_explode tpot_gas_medium_nova 0 +tpot_gas_medium_explode 925 1 2 1 2 2 ring 2 density 2 ring 1 density 3 subloops 2 ring 2 density 2 ring 1 density 3 subloops 1 128 255 128 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 1 4 8 pois 144 144 50 80 1 chokinggascloud stranglinggascloud 0 +tpot_gas_medium_nova 926 1 10 1 61 230 auratargetstate id 100 auraduration 45 aurastat1 id -6 aurastat1 value aurastat2 id aurastat2 value 2 2 80 2 128 255 128 0 0 0 null 1024 1 16 3 1 1 2 1 1 1 1 1 4 8 80 16 0 +tpot_gas_large 927 1 65 1 60 16 nova missile count 2 submissiles skilllevel bonus 16 nova missile count 16 16 30 255 255 255 0 0 1 mslgpl 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 pois 192 192 50 80 1 weapon_throw_1 explosion_medium_1 tpot_gas_large_explode tpot_gas_large_nova tpot_gas_large_explode tpot_gas_large_nova 0 +tpot_gas_large_explode 928 1 2 1 2 1 ring 2 density 2 ring 1 density 3 subloops 1 ring 2 density 2 ring 1 density 3 subloops 1 128 255 128 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 1 4 8 pois 192 192 50 80 1 stranglinggascloud stranglinggascloud 0 +tpot_gas_large_nova 929 1 10 1 61 230 auratargetstate id 100 auraduration 45 aurastat1 id -10 aurastat1 value aurastat2 id aurastat2 value 2 2 80 2 128 255 128 0 0 0 null 1024 1 16 3 1 1 2 1 1 1 1 1 4 8 80 16 0 +tpot_cold_small 930 1 65 1 60 1 nova missile count 0 submissiles skilllevel bonus 1 nova missile count 16 16 30 255 255 255 0 0 1 mslcps 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 cold 3 6 50 48 1 weapon_throw_1 explosion_medium_1 tpot_cold_small_explode tpot_cold_small_explode blizzardexplode1 0 +tpot_cold_small_explode 931 1 2 1 2 1 ring 2 density 1 ring 1 density 3 subloops 1 ring 2 density 1 ring 1 density 3 subloops 1 128 128 255 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 1 4 8 50 48 1 tpot_cold_small_cloud tpot_cold_small_cloud 0 +tpot_cold_small_cloud 932 4 10 3 61 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 30 spawn rate 1 number 6 radius 231 auratargetstate id 100 auraduration 43 aurastat1 id -3 aurastat1 value aurastat2 id aurastat2 value 26 2 128 128 255 1 0 1 Extra\ColdSmokePuff 1024 26 16 25 3 1 1 2 20 1 1 1 1 4 8 cold 3 6 50 48 4 sorceress_frostnova chillbloodpuff 0 +tpot_cold_medium 933 1 65 1 60 1 nova missile count 1 submissiles skilllevel bonus 1 nova missile count 16 16 30 255 255 255 0 0 1 mslcpm 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 cold 10 22 50 48 1 weapon_throw_1 explosion_medium_1 tpot_cold_medium_explode tpot_cold_medium_explode freezingarrowexp1 0 +tpot_cold_medium_explode 934 1 2 1 2 1 ring 2 density 1 ring 1 density 4 subloops 1 ring 2 density 1 ring 1 density 4 subloops 1 128 128 255 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 1 4 8 50 48 1 tpot_cold_medium_cloud tpot_cold_medium_cloud 0 +tpot_cold_medium_cloud 935 4 10 3 61 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 30 spawn rate 1 number 6 radius 231 auratargetstate id 100 auraduration 43 aurastat1 id -6 aurastat1 value aurastat2 id aurastat2 value 52 2 128 128 255 1 0 1 Extra\ColdSmokePuff 1024 26 16 25 3 1 1 2 20 1 1 1 1 4 8 cold 10 22 50 48 4 sorceress_frostnova chillbloodpuff 0 +tpot_cold_large 936 1 65 1 60 1 nova missile count 2 submissiles skilllevel bonus 1 nova missile count 16 16 30 255 255 255 0 0 1 mslcpl 1024 8 16 6 1 1 1 1 1 1 1 1 5 2 8 cold 20 42 50 48 1 weapon_throw_1 explosion_medium_1 tpot_cold_large_explode tpot_cold_large_explode frozenorbexplode 0 +tpot_cold_large_explode 937 1 2 1 2 1 ring 2 density 1 ring 1 density 4 subloops 1 ring 2 density 1 ring 1 density 4 subloops 1 128 128 255 0 0 0 null 1024 1 16 6 1 1 1 1 1 1 1 4 8 50 48 1 tpot_cold_large_cloud tpot_cold_large_cloud 0 +tpot_cold_large_cloud 938 4 10 3 61 2 "Slow drift speed, fourths." 4 "Fast drift speed, fourths." 30 spawn rate 1 number 6 radius 231 auratargetstate id 100 auraduration 43 aurastat1 id -10 aurastat1 value aurastat2 id aurastat2 value 52 2 128 128 255 1 0 1 Extra\ColdSmokePuff 1024 26 16 25 3 1 1 2 20 1 1 1 1 4 8 cold 20 42 50 48 4 sorceress_frostnova chillbloodpuff 0 +tpot_light_small 939 1 65 1 60 8 nova missile count 0 submissiles skilllevel bonus 8 nova missile count 16 16 30 255 255 255 0 0 1 msllps 1024 8 16 6 1 1 1 1 1 1 1 1 Attack 5 2 8 ltng 1 14 64 1 weapon_throw_1 explosion_medium_1 tpot_light_small_explode tpot_light_small_bolt tpot_light_small_explode tpot_light_small_bolt 0 +tpot_light_small_explode 940 1 1 8 range (0=skill) 4 max (0 = skill) 8 range (0=skill) 4 max (0 = skill) 13 255 255 255 0 0 0 teethexplode 1024 13 16 6 1 1 1 1 1 1 1 1 1 4 8 64 1 tpot_light_small_bolt tpot_light_small_bolt 0 +tpot_light_small_bolt 941 1 10 1 61 232 auratargetstate id 100 auraduration 41 aurastat1 id -3 aurastat1 value aurastat2 id aurastat2 value 14 14 8 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 2 1 1 1 4 8 ltng 1 14 64 16 sorceress_chargedbolt_1 lightning 0 +tpot_light_medium 942 1 65 1 60 8 nova missile count 1 submissiles skilllevel bonus 8 nova missile count 16 16 30 255 255 255 0 0 1 msllpm 1024 8 16 6 1 1 1 1 1 1 1 1 Attack 5 2 8 ltng 1 46 64 1 weapon_throw_1 explosion_medium_1 tpot_light_medium_explode tpot_light_medium_bolt tpot_light_medium_explode tpot_light_medium_bolt 0 +tpot_light_medium_explode 943 1 1 10 range (0=skill) 6 max (0 = skill) 10 range (0=skill) 6 max (0 = skill) 13 255 255 255 0 0 0 teethexplode 1024 13 16 6 1 1 1 1 1 1 1 1 1 4 8 64 1 tpot_light_medium_bolt tpot_light_medium_bolt 0 +tpot_light_medium_bolt 944 1 10 1 61 232 auratargetstate id 100 auraduration 41 aurastat1 id -6 aurastat1 value aurastat2 id aurastat2 value 14 14 10 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 2 1 1 1 4 8 ltng 1 46 64 16 sorceress_chargedbolt_1 lightning 0 +tpot_light_large 945 1 65 1 60 8 nova missile count 2 submissiles skilllevel bonus 8 nova missile count 16 16 30 255 255 255 0 0 1 msllpl 1024 8 16 6 1 1 1 1 1 1 1 1 Attack 5 2 8 ltng 1 88 64 1 weapon_throw_1 explosion_medium_1 tpot_light_large_explode tpot_light_large_bolt tpot_light_large_explode tpot_light_large_bolt 0 +tpot_light_large_explode 946 1 1 12 range (0=skill) 8 max (0 = skill) 12 range (0=skill) 8 max (0 = skill) 13 255 255 255 0 0 0 teethexplode 1024 13 16 6 1 1 1 1 1 1 1 1 1 4 8 64 1 tpot_light_large_bolt tpot_light_large_bolt 0 +tpot_light_large_bolt 947 1 10 1 61 232 auratargetstate id 100 auraduration 41 aurastat1 id -10 aurastat1 value aurastat2 id aurastat2 value 14 14 12 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 2 1 1 1 4 8 ltng 1 88 64 16 sorceress_chargedbolt_1 lightning 0 +IskatuMagicOrb 948 1 4 1 5 5 Retarget Frame 5 Retarget Frame 4 damage radius 8 nova missile count (16 / x) 18 18 30 7 255 178 64 1 0 1 iskatuMagicOrb 1024 8 16 3 1 1 1 1 1 1 1 1 1 5 2 mag 400 500 16 succubus_msissile_1 succubus_msissile_impact bonespiritexplode IskatuNovaOrbHitMissile IskatuNovaOrbHitMissile 0 +IskatuNovaOrbHitMissile 949 1 1 1 18 700 60 255 255 255 0 0 0 iskatuLighningMissile 1024 13 16 3 1 1 4 1 1 1 1 4 8 ltng 400 500 64 16 sorceress_fireball_1 lightning 0 +iskatublizcenter 950 10 8 5 base radius 8 base freq 4 level divisor 15 base radius 4 base freq 4 level divisor 25 15 9 81 81 255 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 object_poison_loop iskatubliz3 iskatubliz2 iskatubliz3 0 +iskatubliz1 951 1 19 3 200 fall distance 7 fall rate 9 0 0 0 0 0 1 iskatubliz 1024 6 16 3 1 2 1 1 1 1 1 4 8 1 4 4 4 4 4 2 4 4 4 4 4 pois 900 12 12 12 12 12 1000 12 12 12 12 12 75 1 object_poison_loop iskatublizexplode1 iskatublizexplode1 iskatublizexplode1 0 +iskatubliz2 952 1 19 3 50 fall distance 5 fall rate 9 0 0 0 0 0 1 iskatubliz 1024 6 16 3 1 2 1 1 1 1 1 4 8 1 4 4 4 4 4 2 4 4 4 4 4 pois 900 12 12 12 12 12 1000 12 12 12 12 12 75 1 object_poison_loop stranglinggascloud iskatublizexplode1 iskatublizexplode1 iskatublizexplode1 0 +iskatubliz3 953 1 19 1 6 150 fall distance 6 fall rate 1095 summon mon id 1 summon mon mode 67239936 summon mon flags (no treasure/exp) 9 0 0 0 0 0 1 iskatubliz 1024 6 16 3 1 2 1 1 1 1 1 4 8 1 4 4 4 4 4 2 4 4 4 4 4 pois 900 12 12 12 12 12 1000 12 12 12 12 12 75 1 object_poison_loop iskatublizexplode1 iskatublizexplode1 iskatublizexplode1 0 +iskatublizexplode1 954 1 1 6 0 0 0 0 0 0 iskatublizimpact 1024 6 16 1 1 1 1 1 1 IskatuBlizzard 4 8 1 0 +iskatuhurricaneswoosh 955 60 1 16 16 10 0 0 0 1 0 0 null 1024 11 8 1 1 8 8 druid_hurricane 0 +iskatuhurricanerock 956 60 1 10 10 18 0 0 0 1 0 0 iskatu_hurricane_rocks2 1024 20 16 1 8 1 druid_hurricane 0 +iskatuhurricanetree 957 60 1 1 6 250 15 0 0 0 1 0 0 iskatu_hurricane_rocks1 1024 20 16 1 8 1 druid_hurricane 0 +arcticblastexplode 958 1 10 1 20 20 -1400 36 81 81 255 0 0 0 FrostNova 1024 14 16 3 1 1 1 1 2 1 1 1 1 Arctic Blast 4 8 48 16 sorceress_frostnova ice_explode 0 +arcticblasttrail 959 1 1 16 Z Range 16 180 200 255 0 0 0 expansion\ArcticBlastIce 1024 16 16 1 16 1 1 8 32 16 0 +infernotrail 960 1 1 16 Z Range 14 255 178 64 0 0 0 InfernoTrail 1024 15 16 1 -30 1 1 0 32 16 0 +kanemithblaze2trail 961 6 12 6 9 4 ??? Radius 200 fire duration 1 disc radius (0 = skill) 3 damage radius (0 = skill) 180 fire duration 2 disc radius (0 = skill) 10 disc density 1 9 255 178 64 1 0 1 null 1024 2 16 3 1 1 1 1 4 2 1 1 1 1 1 1 5 2 48 32 kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall 0 +kanemithblaze2dotfiremedium 962 5 10 1 61 44 auratargetstate id 150 auraduration 67 aurastat1 id -60 aurastat1 value 68 aurastat2 id -60 aurastat2 value 90 1 5 4 255 178 64 0 0 1 necroFireMedium 1024 37 16 1 12 36 3 1 1 1 4 2 1 12 1 KanemithBossBlaze cold 125 48 1 41 object_fire_loop_magic 0 +kanemithblaze2dotfiresmall 963 5 10 1 61 44 auratargetstate id 150 auraduration 67 aurastat1 id -60 aurastat1 value 68 aurastat2 id -60 aurastat2 value 90 1 5 4 255 178 64 0 0 1 necroFireSmall 1024 37 16 1 12 36 3 1 1 1 4 2 1 12 1 KanemithBossBlaze cold 125 48 1 41 object_fire_loop_magic 0 +kanemithblaze2ignite 964 6 12 6 9 4 ??? Radius 35 fire duration 4 disc radius (0 = skill) 5 damage radius (0 = skill) 180 fire duration 4 disc radius (0 = skill) 40 disc density 1 9 255 178 64 1 0 1 null 1024 2 16 3 1 1 1 1 4 2 1 1 1 1 1 1 5 4 1 cold 100 0 0 0 0 0 200 0 0 0 0 0 125 48 32 kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall kanemithblaze2ignitegfx kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium kanemithblaze2dotfiresmall kanemithblaze2ignitegfx 0 +kanemithblaze2ignitegfx 965 1 1 2 none 20 13 255 178 64 0 0 0 FreezeExplodeCenter 1024 16 16 1 2 1 1 1 1 1 4 8 48 1 0 +kanemithfirestorm 966 5 1 50 5 4 255 178 64 0 0 1 necroFireSmall 1024 37 16 1 12 36 3 2 1 1 1 KanemithFirestorm 48 1 41 object_fire_loop_magic 0 +kanemithfirestormmaker 967 6 6 4 no light freq 24 24 50 0 3 255 178 64 2 0 1 necroFireMedium 1024 2 16 1 1 2 3 1 1 2 1 1 1 object_fire_loop_magic kanemithfirestorm kanemithfirestorm kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium 0 +kanemithshock field in air 968 1 44 1 36 16 16 25 255 255 255 1 0 1 Volcano_rock_white 1024 15 16 6 1 1 1 1 1 1 8 1 kanemithshock field on ground kanemithshock field on ground 0 +kanemithshock field on ground 969 1 1 150 3 255 255 255 0 0 1 Expansion\ShockField 1024 10 16 1 3 1 1 1 2 1 1 1 KanemithShockWeb 8 64 8 41 assassin_staticfield 0 +sharptoothunholyorb 970 19 30 15 29 5 frequency 19 direction increment 5 frequency 19 direction increment 8 increment 8 increment 1 4 200 100 5 0 0 0 1 0 1 UnholyBolt 1024 16 16 3 1 1 1 1 1 1 2 4 8 1 sharptoothunholyorbexplode sharptoothunholyorbbolt sharptoothunholyorbnova sharptoothunholyorbbolt sharptoothunholyorbnova 0 +sharptoothunholyorbbolt 971 1 1 8 8 -600 15 4 0 0 0 1 0 0 UnholyBolt 1024 16 16 1 15 3 1 1 1 1 1 1 2 RadamentUnholyOrb 4 8 32 druid_hurricane 0 +sharptoothunholyorbnova 972 20 16 6 frames 2 frequency 6 frames 2 frequency 14 14 -800 15 4 0 0 0 1 0 0 UnholyBolt 1024 16 16 1 15 3 1 1 1 1 1 1 2 RadamentUnholyOrb 4 8 32 0 +sharptoothunholyorbexplode 973 1 1 16 6 255 255 255 0 0 0 Extra\LightningGenerator 1024 13 16 1 1 1 8 1 0 +sharptoothchainpoison 974 8 16 1 12 3 Subloops 60 % chance to spawn trail 8 /4 extra chance per frame 0 range (0 = skill) 0 range (0 = skill) 20 20 40 7 80 255 80 0 0 1 Expansion\catapultpoisonbomb 1024 10 16 3 1 1 1 1 4 2 1 1 1 1 SharptoothChainPoison 4 80 1 andariel_cast_large sharptoothchainpoisontrail sharptoothchainpoisontrail 0 +sharptoothchainpoisontrail 975 1 1 0 0 25 80 255 80 0 0 1 PoisonSmokePuff 1024 26 16 3 1 1 1 4 1 1 1 1 1 4 100 4 0 +sharptootharmageddoncontrol 976 1 65 1 60 5 nova missile count 1 submissiles skilllevel bonus 1108 summon mon id 5 nova missile count 20 0 0 0 0 0 1 expansion\MoltenBoulderRoll 1024 10 16 1 1 1 SharptoothArmageddon 5 8 fire 4 sharptootharmageddonexplosion sharptootharmageddonfire sharptootharmageddonexplosion sharptootharmageddonfire 0 +sharptootharmageddonrock 977 1 65 1 60 5 nova missile count 1 submissiles skilllevel bonus 5 nova missile count 20 0 0 0 0 0 1 expansion\MoltenBoulderRoll 1024 10 16 1 1 1 SharptoothArmageddon 5 8 4 andariel_fire_loop sharptootharmageddonexplosion sharptootharmageddonfire sharptootharmageddonexplosion sharptootharmageddonfire 0 +sharptootharmageddontail 978 1 1 20 0 0 0 0 0 1 expansion\MoltenBoulderRoll 1024 10 16 1 8 4 explosion_medium_1 immolationarrow firewall firesmall firemedium immolationarrow fire immolationarrow firewall firesmall firemedium firewall firesmall firemedium 0 +sharptootharmageddonexplosion 979 1 1 6 5 Damage radius 1108 summon mon id 1 summon mon mode 67239966 summon mon flags (no treasure/exp+new) 1 1 2 5 255 255 255 0 0 0 Expansion\MoltenBoulderExplode04 1024 13 16 1 1 3 1 1 1 8 1 druid_meteor_explode_1 0 +sharptootharmageddonfire 980 1 1 8 8 -3000 50 5 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 2 1 1 1 2 fire 10 6 7 8 9 10 14 6 7 8 9 10 32 1 41 0 +radamentbossroyalfiremaker 981 6 6 4 no light freq 30 30 45 4 255 255 255 2 0 1 groundFireMedium 1024 2 16 1 1 2 3 1 1 1 4 2 1 1 4 8 1 1 object_fire_loop_house radamentbossroyalfire radamentbossroyalfire firesmall firemedium 0 +radamentbossroyalfire 982 5 1 15 5 4 255 178 64 0 0 1 groundFiresmall 1024 37 16 1 12 36 3 1 4 2 1 1 1 RadamentBossRoyalFire 32 1 41 object_fire_loop_house 0 +willowispbossnova 983 58 35 2 repath freq 2 repath freq 100 cold len -> freeze len 16 16 50 4 81 81 255 0 6 1 LightningStrike 1024 8 16 1 7 3 1 1 1 1 1 1 1 WispBossNova 4 64 64 sorceress_lightning_1 lightninghit 0 +Radamentmeteorcenter 984 9 18 1 14 59 frames 25 fallrate 15 sliderate 0 range (0 = skill) 1 flames increment 5 # submissile1 3 # submissile3 15 # submissile4 60 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 RadamentBossMeteor 5 2 8 1 vampiremeteorfire vampiremeteor meteortail meteorexplode whitelightmissile firemedium firesmall 0 +boiwavemaker 985 52 31 18 18 -100 20 10 255 255 255 0 0 0 BlueNovaB 1024 8 8 3 1 6 2 1 1 1 20 1 4 8 1 cold 15 8 12 27 43 58 35 10 14 29 44 59 skill('Tiger Strike'.blvl) * 17 100 8 1 boiwavetrail boiwavetrail 0 +boiwavetrail 986 1 1 14 14 -65 10 10 255 255 255 0 0 0 BlueNovaB 1024 8 8 3 1 6 2 1 1 1 20 1 4 8 1 cold 15 8 12 27 43 58 35 10 14 29 44 59 skill('Tiger Strike'.blvl) * 17 100 8 1 0 +boichaosice 987 8 *16 1 *12 3 Subloops 0 range (0 = skill) 0 range (0 = skill) 30 30 35 4 255 255 255 0 0 1 IceBolt 1024 6 16 3 1 1 4 2 1 1 1 1 4 8 1 cold 24 8 13 27 33 44 32 12 17 36 44 59 skill('Tiger Strike'.blvl) * 17 100 16 sorceress_icebolt_1 impact_cold_1 ice_explode boichillpuff 0 +boichillpuff 988 1 1 1 15 7 3 81 81 255 0 0 0 ChillBloodPuff 1024 26 16 1 1 1 1 1 4 8 48 1 0 +cotthunderstorm 989 1 3 2 2 9 10 255 255 255 0 0 1 LightningboltBig 1024 8 16 3 1 1 1 3 3 1 1 1 1 4 8 1 ltng 5 3 5 8 10 13 20 10 20 30 40 50 skill('Dragon Claw'.blvl) * 16 64 1 sorceress_thunder_bolt 0 +lucionnovaslow 990 8 1 3 Subloops 8 8 100 4 255 255 255 0 0 2 null 1024 2 16 3 1 1 1 1 2 2 1 1 1 1 5 8 ltng 900 0 0 0 0 100 900 0 0 0 0 100 64 1 sorceress_lightning_1 lucionnovaslowhit 0 +lucionnovaslowhit 991 1 10 1 16 Z Range 12 3 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 5 8 64 32 lightning 0 +lucionnovafast 992 8 1 3 Subloops 30 30 35 4 255 255 255 0 0 2 null 1024 2 16 3 1 1 1 1 4 2 1 1 1 1 5 8 ltng 13260 0 0 0 0 340 13260 0 0 0 0 340 64 1 sorceress_lightning_1 lucionnovafasthit 0 +lucionnovafasthit 993 1 10 1 16 Z Range 12 3 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 5 8 64 32 lightning 0 +lucionbonefingers 994 8 1 3 Subloops 34 34 25 255 255 255 0 0 2 null 1024 2 16 3 1 1 1 1 4 2 1 1 1 1 5 8 380 60 420 60 112 1 deathmauler_spikes_1 lucionbonefingershit 0 +lucionbonefingershit 995 1 10 1 16 Z Range 7 255 255 255 0 0 0 bonefingers 384 7 16 1 4 2 1 1 8 380 60 420 60 112 16 0 +lucionblinknova 996 1 10 1 24 24 -1200 13 255 255 255 0 0 0 ElectricNova_Red 1024 13 16 3 1 1 4 1 1 1 1 4 stun 75 0 0 0 64 16 sorceress_nova lightning 0 +lucionroyalfiremaker 997 6 6 4 no light freq 6 6 200 3 4 255 255 255 0 0 2 null 1024 2 16 6 1 1 4 8 1 lucionroyalfiredelay lucionroyalfiredelay 0 +lucionroyalfiredelay 998 1 53 1 48 0 0 20 255 255 255 0 0 1 FingerMageSpider 1024 5 16 6 1 1 16 lucionroyalfire lucionroyalfire lucionroyalfire 0 +lucionroyalfire 999 5 1 0 0 12 255 178 178 0 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 4 2 1 1 1 LucionRoyalFire 4 ltng 64 1 41 sorceress_chargedbolt_1 0 +lucionpunishtargetindicator 1000 1 53 1 48 20 4 255 255 255 0 0 1 FingerMageSpider 1024 5 16 6 1 1 1 1 1 1 5 2 8 1 lucionpunishdelay lucionpunishdelay 0 +lucionpunishdelay 1001 1 1 9 10 255 178 178 0 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 3 3 1 1 1 1 5 8 1 ltng 1400 0 0 0 0 200 1400 0 0 0 0 200 64 1 41 sorceress_chargedbolt_1 sorceress_chargedbolt_1 0 +meteor2 1002 1 15 0 0 0 0 0 1 Meteor 1024 12 16 1 1 1 1 0 +meteorcenter2 1003 9 18 1 14 15 frames 25 fallrate 15 sliderate 0 range (0 = skill) 1 flames increment 5 # submissile1 3 # submissile3 15 # submissile4 15 4 255 64 64 0 0 1 MeteorTargetIndicator 1024 17 16 1 1 1 1 1 1 Meteor 5 2 8 1 sorceress_meteor_impact meteorfire meteor meteortail meteorexplode whitelightmissile firemediummeteor firesmallmeteor 0 +meteortail2 1004 1 15 0 0 0 0 0 1 MeteorTail 1024 12 16 1 1 1 8 1 0 +meteorexplode2 1005 1 1 2 none 16 13 255 178 64 0 0 0 ExpArrowExplode 1024 16 16 1 1 1 1 1 1 1 4 8 1 0 +erruption center demon road boss 1006 48 25 55 255 255 255 0 0 1 null 1024 2 16 1 1 1 1 1 1 1 erruption crack 1 demon road boss erruption crack 1 demon road boss bigblood1 0 +erruption crack 1 demon road boss 1007 1 1 8 84 5 255 178 64 0 0 1 expansion\deathmaulerfingers 512 41 16 3 1 1 1 1 4 3 25 1 1 EruptionDemonRoadBoss 32 4 deathmauler_spikes_1 0 +lucioncenter 1008 9 18 3 frames 25 fallrate 15 sliderate 1 range (0 = skill) 1 flames increment 1 # submissile1 5 # submissile3 15 # submissile4 10 0 0 0 0 0 1 null 1024 1 16 1 1 1 1 1 1 5 2 8 1 luciondeathorb 0 +luciondeathorb 1009 19 30 15 29 6 frequency 20 direction increment 6 frequency 20 direction increment 4 increment 5 increment 1 1 15 6 81 81 255 1 0 1 null 1024 16 16 3 1 1 1 1 1 1 1 4 8 1 lucionmist 0 +lucionmist 1010 25 1 10 dest radius 3 init radius 1 frequency 2 2 70 2 255 255 255 0 0 1 null 1024 2 16 1 1 1 1 1 8 1 countess_mist_loop lucionmisttrail 0 +lucionmisttrail 1011 1 1 3 3 8 4 100 100 100 0 0 1 mist 1024 14 16 1 1 8 1 countess_mist_loop towermistfade 0 +luciondeathcontrol 1012 21 1 20 radius 70 6 255 255 255 25 0 0 null 1024 2 16 1 1 1 8 1 luciondeathlightningbolt 0 +luciondeathlightningbolt 1013 22 1 3 retarget frame 32 32 15 4 255 255 255 0 0 2 null 1024 2 16 1 1 2 1 1 1 1 4 8 64 1 amazon_lightning_1 luciondeathlightninghit 0 +luciondeathlightninghit 1014 1 1 12 4 255 255 255 0 0 1 LightningStrike 1024 8 16 1 7 1 1 1 8 ltng 2 4 4 4 4 4 5 4 4 4 4 4 64 32 0 +luciondashtrail 1015 1 1 15 255 178 64 0 0 0 null 1024 2 16 3 1 1 1 4 6 40 5 40 5 32 1 object_fire_loop_magic 0 +luciondashnova 1016 1 10 1 14 14 -1200 14 255 255 255 0 0 0 ElectricNova_Red 1024 13 16 3 1 1 4 1 1 1 1 4 8 380 60 420 60 64 16 sorceress_nova lightning 0 +putriddefilerdungeonspear 1017 18 24 1 3 Subloops 35 10 30 3 255 255 255 0 0 1 null 1024 6 16 3 1 1 2 1 1 1 75 1 Bone Spear Serpent 4 8 6 16 necromancer_bonespear_1 paladin_holybolt_impact_1 bonespearexplode bonespeartrailCisternBoss teethexplode 0 +chargedboltImperialMiniBoss 1018 1 1 25 25 25 255 255 255 0 0 1 PoisonSmokePuff 1024 26 16 3 1 1 4 2 1 1 1 ChargedBoltImperialMiniBoss 4 8 4 object_poison_loop 0 +ImperialMiniBossArcticBlast 1019 1 1 8 "Mana Use, 16ths." 15 Minimum range 14 14 200 65 255 255 255 3 0 0 expansion\ArcticBlastIce 1024 16 16 3 1 3 1 1 1 7 cold 900 1450 150 32 16 druid_arcticblast 0 +hurricanerocktortureboss 1020 60 1 18 18 20 0 0 0 1 0 0 CorpseExplodeGuts 1024 20 16 1 8 1 druid_hurricane 0 +immolationarrowBloodraven 1021 6 12 6 9 3 ??? Radius 25 fire duration 0 disc radius (0 = skill) 0 damage radius (0 = skill) 25 fire duration 0 disc radius (0 = skill) 100 disc density 24 24 30 9 255 178 64 1 0 1 FireArrow 1024 8 16 3 1 1 1 1 4 1 1 1 1 1 1 1 1 BloodRavenImmo 5 2 fire 10 32 amazon_firearrow_1 explosion_medium_1 immolationarrow firewallBloodraven firesmall firemedium immolationarrow fire immolationarrow firewallBloodraven firesmall firemedium firewall Bloodraven firesmall firemedium 0 +immolationarrow firewallBloodraven 1022 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 37 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 4 1 1 12 1 BloodRavenImmo fire 1 50 100 4 6 8 2 50 100 4 6 8 32 1 41 object_fire_loop_magic 0 +firewall Bloodraven 1023 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 25 5 4 255 178 64 0 0 1 groundFireBig 1024 37 16 1 12 36 3 1 1 1 4 2 1 12 1 BloodRavenImmo 32 1 41 object_fire_loop_magic 0 +explodingarrowexp3 1024 1 1 1 3 damage radius 1 null 1024 16 16 3 1 1 3 1 1 1 1 Exploding Arrow 5 2 8 fire 1 explosion_medium_1 0 +urehSerpentFireball 1025 6 12 6 9 3 ??? Radius 50 fire duration 0 disc radius (0 = skill) 0 damage radius (0 = skill) 50 fire duration 0 disc radius (0 = skill) 100 disc density 20 24 35 9 255 178 64 1 0 1 null 1024 8 16 3 1 1 1 1 1 1 1 1 1 1 1 5 2 fire 300 550 10 32 sorceress_fireball_1 explosion_medium_1 serpentfiretrailwall firesmall firemedium serpentfiretrail serpentfiretrailwall firesmall firemedium firewall firesmall firemedium 0 +urehArcherBolt 1026 1 12 1 9 3 ??? Radius 10 fire duration 3 disc radius (0 = skill) 3 damage radius (0 = skill) 50 fire duration 4 disc radius (0 = skill) 10 disc density 24 24 75 5 3 255 255 255 0 0 1 Expansion\ProjectionMissile 1024 5 16 3 1 1 1 1 4 1 1 1 1 1 1 1 UberMadawcDoubleThrow 4 6 32 amazon_lightning_1 fingermage_bolt_impact_1 bigheadexp urehChargedGround urehChargedGround urehChargedGround urehChargedGround 0 +urehChargedGround 1027 1 1 90 3 255 255 255 0 0 1 Expansion\ShockField 1024 10 16 1 3 1 1 1 1 4 2 1 1 8 ltng 400 700 8 20 assassin_staticfield 0 +shock field in air Ureh Boss 1028 1 44 1 36 12 12 50 255 255 255 1 0 0 expansion\caltrops 1024 8 16 1 7 6 1 1 1 1 1 8 32 shock field on ground Ureh Boss shock field on ground Ureh Boss 0 +shock field on ground Ureh Boss 1029 1 1 90 3 255 255 255 0 0 1 Expansion\ShockField 1024 10 16 1 3 1 1 1 2 1 1 1 Shock Field Ureh Boss 8 8 41 assassin_staticfield 0 +bomb in air Ureh Boss 1030 1 44 1 36 16 16 50 255 255 255 1 0 1 expansion\FireTraumaMissile 1024 20 16 6 1 1 1 1 1 8 1 bomb on ground bomb on ground 0 +bomb on ground Ureh Boss 1031 1 1 3 4 radius (0 = aurarng calc from skill) 5 255 255 255 0 0 0 expansion\FireTraumaGround 1024 1 16 6 1 1 1 1 1 1 1 1 1 1 Fire Trauma Ureh Boss 5 2 8 1 bomb explosion 0 +bomb explosion Ureh Boss 1032 1 1 20 5 255 178 64 0 0 0 expansion\FireTraumaXplosion 1024 20 16 3 1 1 1 1 1 1 1 5 2 8 1 sorceress_firebolt_impact_1 0 +splitthrowaxe 1033 1 1 65 36 36 -1064 29 255 255 255 1 0 1 MissileHandAxe 1024 8 16 3 1 1 1 1 1 3 2 1 1 1 1 1 1 Split Throw 4 8 128 2 32 weapon_throw_1 splitthrowaxereturn 0 +splitthrowknife 1034 1 1 65 36 36 -1064 29 255 255 255 1 0 0 MissileDagger 1024 1 16 3 1 1 1 1 1 3 2 1 1 1 1 1 1 Split Throw 4 8 128 6 32 weapon_throw_1 splitthrowknifereturn 0 +splitthrowjav 1035 1 1 65 36 36 -1064 29 255 255 255 0 0 0 Javelin 1024 1 16 3 1 1 1 1 1 3 2 1 1 1 1 1 1 Split Throw 4 8 128 6 32 weapon_throw_1 splitthrowjavreturn 0 +splitthrowglaive 1036 1 1 65 36 36 -1064 29 255 255 255 0 0 0 Glaive 1024 1 16 3 1 1 1 1 1 3 2 1 1 1 1 1 1 Split Throw 4 8 128 6 32 weapon_throw_1 splitthrowglaivereturn 0 +splitthrowpilum 1037 1 1 65 36 36 -1064 29 255 255 255 0 0 0 Pilum 1024 1 16 3 1 1 1 1 1 3 2 1 1 1 1 1 1 Split Throw 4 8 128 6 32 weapon_throw_1 splitthrowpilumreturn 0 +splitthrowaxereturn 1038 70 38 4 36 1600 80 255 255 255 1 0 1 MissileHandAxe 1024 8 16 3 1 1 1 2 1 1 1 1 1 Split Throw 4 8 38 2 32 0 +splitthrowknifereturn 1039 70 38 4 36 1600 80 255 255 255 1 0 0 MissileDagger 1024 1 16 3 1 1 1 2 1 1 1 1 1 Split Throw 4 8 38 6 32 0 +splitthrowjavreturn 1040 70 38 4 36 1600 80 255 255 255 0 0 0 Javelin 1024 1 16 3 1 1 1 2 1 1 1 1 1 Split Throw 4 8 38 6 32 0 +splitthrowglaivereturn 1041 70 38 4 36 1600 80 255 255 255 0 0 0 Glaive 1024 1 16 3 1 1 1 2 1 1 1 1 1 Split Throw 4 8 38 6 32 0 +splitthrowpilumreturn 1042 70 38 4 36 1600 80 255 255 255 0 0 0 Pilum 1024 1 16 3 1 1 1 2 1 1 1 1 1 Split Throw 4 8 38 6 32 0 +temp1 1043 71 39 6 frequency 0 sync with client 6 frequency 10 10 255 null 1024 16 16 3 1 1 1 1 1 1 1 4 8 1 temp2 temp2 temp3 0 +temp2 1044 1 1 41 0 0 0 0 0 1 expansion\EruptionCrack 512 41 16 3 1 1 1 1 12 1 1 1 1 4 8 128 16 explosion_medium_1 0 +temp3 1045 1 1 41 0 0 0 0 0 1 expansion\EruptionSmoke 512 41 16 1 1 25 1 1 0 +firearrow firewall 1046 5 5 3 19 softhit chance (128) 19 hit sound chance (128) 37 5 4 255 178 64 0 0 1 groundFireSmall 1024 37 16 1 12 36 3 1 1 3 1 12 1 3 1 fire 2 1 3 7 14 21 3 2 4 8 16 24 (skill('Immolation Arrow'.blvl))*par7 + (skill('Magic Arrow'.blvl))*18 32 1 24 object_fire_loop_magic 0 +corruptednecrobonespear 1047 18 24 1 3 Subloops 24 24 40 3 255 255 255 0 0 1 BoneSpear 1024 6 16 3 1 1 1 5 3 1 1 1 1 4 8 mag 250 300 6 16 necromancer_bonespear_1 paladin_holybolt_impact_1 bonespearexplode bonespeartrail teethexplode 0 +volcano invaderdruid 1048 50 28 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 2 start frame 128 end frame 30 lob 0 damage freq (0 = look at skill) 0 radius (0 = look at skill) 2 start frame 128 end frame 30 lob 150 0 0 0 0 0 1 Expansion\volcano_base 1024 30 16 1 17 18 3 1 1 1 6 3 1 25 1 1 1 VolcanoInvaderDruid 4 1 druid_volcano volcano debris 2 invaderdruid volcano debris 2 invaderdruid 0 +volcano debris 2 invaderdruid 1049 1 55 1 51 14 14 16 0 0 0 0 0 1 expansion\volcano_rock 1024 15 16 1 1 1 1 1 1 1 1 volcano small fire invaderdruid volcano explosion volcano small fire invaderdruid 0 +volcano small fire invaderdruid 1050 1 1 18 0 0 0 0 0 0 Expansion\rock_lava_pool 1024 18 16 3 1 1 4 2 1 1 1 VolcanoInvaderDruid 4 8 32 1 andariel_fire_loop 0 +frozenorb light 1051 19 30 15 29 6 frequency 19 direction increment 6 frequency 19 direction increment 4 increment 4 increment 2 2 150 6 81 81 255 1 0 1 BigheadLightningMissile 1024 16 16 3 1 1 1 1 1 1 1 4 8 1 lightning frozenorbnova light frozenorbbolt light frozenorbnova light frozenorbbolt light frozenorbnova light 0 +frozenorbbolt light 1052 1 1 8 8 50 250 4 81 81 255 0 0 1 BigheadLightningMissile 1024 6 16 3 1 1 1 2 1 1 1 Frozen Orb Light 4 8 16 amazon_lightning_1 lightning frozenorbnova light frozenorbnova light frozenorbnova light 0 +frozenorbnova light 1053 1 10 1 8 8 -1000 12 255 255 255 0 0 0 ElectricNova 1024 13 16 3 1 1 4 1 1 1 1 4 64 16 sorceress_nova lightning 0 +chargedbolt Djinnboss 1054 1 10 1 12 45 2 75 3 4 255 255 255 1 0 1 ChargedBolt 1024 10 16 1 2 8 3 1 1 1 4 1 1 1 1 1 Charged Bolt Djinnboss 4 64 16 sorceress_chargedbolt_1 lightning 0 +poisonbolt Djinboss 1055 1 1 16 16 100 45 4 64 255 64 1 0 1 FrogPoisonMissile 1024 7 16 3 1 1 1 1 1 1 1 33 1 4 pois 600 600 600 16 tentaclehead_missile_1 0 +unholybolt Djinboss 1056 1 1 18 18 40 5 0 0 0 1 0 1 UnholyBolt 1024 16 16 3 1 1 1 1 1 1 1 2 4 8 mag 150 250 1 greatermummy_unholybolt_1 0 diff --git a/api/src/game-data/pd2/season-13/MonStats.txt b/api/src/game-data/pd2/season-13/MonStats.txt new file mode 100644 index 0000000..572fa6f --- /dev/null +++ b/api/src/game-data/pd2/season-13/MonStats.txt @@ -0,0 +1,1242 @@ +Id hcIdx BaseId NextInClass TransLvl NameStr MonStatsEx MonProp MonType AI DescStr Code enabled rangedtype placespawn spawn spawnx spawny spawnmode minion1 minion2 SetBoss BossXfer PartyMin PartyMax MinGrp MaxGrp sparsePopulate Velocity Run Rarity Level Level(N) Level(H) MonSound UMonSound threat aidel aidel(N) aidel(H) aidist aidist(N) aidist(H) aip1 aip1(N) aip1(H) aip2 aip2(N) aip2(H) aip3 aip3(N) aip3(H) aip4 aip4(N) aip4(H) aip5 aip5(N) aip5(H) aip6 aip6(N) aip6(H) aip7 aip7(N) aip7(H) aip8 aip8(N) aip8(H) MissA1 MissA2 MissS1 MissS2 MissS3 MissS4 MissC MissSQ Align isSpawn isMelee npc interact inventory inTown lUndead hUndead demon flying opendoors boss primeevil killable switchai noAura nomultishot neverCount petIgnore deathDmg genericSpawn zoo SendSkills Skill1 Sk1mode Sk1lvl Skill2 Sk2mode Sk2lvl Skill3 Sk3mode Sk3lvl Skill4 Sk4mode Sk4lvl Skill5 Sk5mode Sk5lvl Skill6 Sk6mode Sk6lvl Skill7 Sk7mode Sk7lvl Skill8 Sk8mode Sk8lvl Drain Drain(N) Drain(H) coldeffect coldeffect(N) coldeffect(H) ResDm ResMa ResFi ResLi ResCo ResPo ResDm(N) ResMa(N) ResFi(N) ResLi(N) ResCo(N) ResPo(N) ResDm(H) ResMa(H) ResFi(H) ResLi(H) ResCo(H) ResPo(H) DamageRegen SkillDamage noRatio NoShldBlock ToBlock ToBlock(N) ToBlock(H) Crit minHP maxHP AC Exp A1MinD A1MaxD A1TH A2MinD A2MaxD A2TH S1MinD S1MaxD S1TH MinHP(N) MaxHP(N) AC(N) Exp(N) A1MinD(N) A1MaxD(N) A1TH(N) A2MinD(N) A2MaxD(N) A2TH(N) S1MinD(N) S1MaxD(N) S1TH(N) MinHP(H) MaxHP(H) AC(H) Exp(H) A1MinD(H) A1MaxD(H) A1TH(H) A2MinD(H) A2MaxD(H) A2TH(H) S1MinD(H) S1MaxD(H) S1TH(H) El1Mode El1Type El1Pct El1MinD El1MaxD El1Dur El1Pct(N) El1MinD(N) El1MaxD(N) El1Dur(N) El1Pct(H) El1MinD(H) El1MaxD(H) El1Dur(H) El2Mode El2Type El2Pct El2MinD El2MaxD El2Dur El2Pct(N) El2MinD(N) El2MaxD(N) El2Dur(N) El2Pct(H) El2MinD(H) El2MaxD(H) El2Dur(H) El3Mode El3Type El3Pct El3MinD El3MaxD El3Dur El3Pct(N) El3MinD(N) El3MaxD(N) El3Dur(N) El3Pct(H) El3MinD(H) El3MaxD(H) El3Dur(H) TreasureClass1 TreasureClass2 TreasureClass3 TreasureClass4 TreasureClass1(N) TreasureClass2(N) TreasureClass3(N) TreasureClass4(N) TreasureClass1(H) TreasureClass2(H) TreasureClass3(H) TreasureClass4(H) TCQuestId TCQuestCP SplEndDeath SplGetModeChart SplEndGeneric SplClientEnd *eol +skeleton1 0 skeleton1 skeleton2 0 Skeleton skeleton1 skeleton Skeleton SK 1 1 3 3 3 2 2 37 68 skeleton skeleton 10 15 14 13 60 65 70 15 12 10 75 80 85 75 75 75 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 75 33 100 75 2 10 10 10 5 86 129 84 86 34 101 101 34 101 101 70 100 100 85 40 100 120 40 105 125 70 100 100 85 40 100 120 40 105 125 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +skeleton2 1 skeleton1 skeleton3 1 Returned skeleton2 skeleton Skeleton SK 1 2 3 4 4 2 6 38 69 skeleton skeleton 10 15 14 13 70 75 80 12 10 7 80 85 90 25 25 25 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 75 33 100 2 15 15 15 5 87 127 84 86 41 101 93 41 101 93 70 100 100 85 40 100 120 40 105 125 70 100 100 85 40 100 120 40 105 125 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +skeleton3 2 skeleton1 skeleton4 2 BoneWarrior skeleton3 skeleton Skeleton SK 1 2 4 4 4 2 7 39 85 skeleton skeleton 10 15 14 13 80 85 90 9 8 7 85 90 95 50 50 50 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 40 50 60 75 33 110 75 2 20 20 20 5 89 124 84 85 41 121 94 41 121 94 70 100 100 85 40 100 120 40 105 125 70 100 100 85 40 100 120 40 105 125 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +skeleton4 3 skeleton1 skeleton5 3 BurningDead skeleton4 skeleton Skeleton SK 1 2 4 5 5 2 13 43 74 skeleton skeleton 10 15 14 13 90 95 95 7 6 5 90 95 99 66 66 66 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 50 75 75 33 100 75 2 25 25 25 5 93 133 84 85 45 101 93 34 101 93 70 100 100 85 40 100 120 40 105 125 70 100 100 85 40 90 110 40 105 125 A1 fire 50 22 55 50 25 55 50 25 55 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +skeleton5 4 skeleton1 skeleton6 4 Horror skeleton5 skeleton Skeleton SK 1 2 4 5 5 2 14 44 78 skeleton skeleton 10 15 14 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 20 60 50 40 80 75 33 70 120 75 2 30 30 30 5 94 131 84 85 41 101 94 31 101 94 70 100 100 85 40 100 120 40 105 125 70 100 100 85 40 100 120 40 95 115 A2 ltng 60 30 60 60 30 50 60 30 50 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +zombie1 5 zombie1 zombie2 0 Zombie zombie1 zombie Zombie ZM 1 1 2 1 3 2 1 36 67 zombie zombieunique 10 15 14 13 30 40 50 10 15 20 20 25 30 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 50 120 75 2 3 3 3 5 101 181 84 111 51 151 101 101 151 101 105 150 80 105 60 140 105 70 150 110 105 150 80 105 60 140 105 70 150 110 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +zombie2 6 zombie1 zombie3 1 HungryDead zombie2 zombie Zombie ZM 1 1 3 1 4 2 2 37 68 zombie zombieunique 10 15 14 13 40 50 60 15 20 25 25 30 35 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 50 110 75 2 4 4 4 5 101 186 84 111 34 101 101 101 134 101 105 150 80 105 60 140 105 70 150 110 105 150 80 105 60 140 105 70 150 110 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +zombie3 7 zombie1 zombie4 2 Ghoul zombie3 zombie Zombie ZM 1 2 3 1 4 2 12 43 73 zombie zombieunique 10 15 14 13 50 60 70 20 25 30 30 35 40 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 50 100 75 2 13 13 13 5 108 197 84 109 51 138 93 113 163 93 105 150 80 105 60 140 105 70 150 110 105 150 80 105 60 140 105 70 150 110 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +zombie4 8 zombie1 zombie5 3 DrownedCarcass zombie4 zombie Zombie ZM 1 2 4 1 5 2 22 50 80 zombie zombieunique 10 15 14 13 100 100 100 30 30 30 35 40 45 1 1 1 1 1 1 100 75 50 -50 -40 -25 20 50 50 50 75 75 50 110 75 2 22 22 22 5 107 192 85 109 51 136 94 108 165 94 105 150 80 105 60 140 105 70 150 110 105 150 80 105 55 135 105 70 150 110 A1 cold 75 21 42 25 75 20 40 75 75 20 40 100 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +zombie5 9 zombie1 4 PlagueBearer zombie5 zombie Zombie ZM 1 3 4 1 5 2 17 46 77 zombie zombieunique 10 15 14 13 60 70 80 25 30 30 40 45 50 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 50 75 75 50 100 75 2 17 17 17 5 109 192 84 109 55 137 92 101 164 92 105 150 80 105 60 140 105 70 150 110 105 150 80 105 55 135 105 70 150 110 A1 pois 50 27 54 400 50 25 25 400 50 25 25 400 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +bighead1 10 bighead1 bighead2 0 Afflicted bighead1 bighead Bighead BH 1 1 2 3 6 6 1 12 43 73 bighead bighead 10 15 14 13 88 75 75 40 30 30 0 20 30 60 70 80 bighead1 1 1 1 1 1 100 85 75 -50 -40 -33 70 85 75 25 100 2 11 11 11 5 66 127 63 81 76 113 77 65 120 90 125 50 100 110 65 120 90 125 50 100 110 A2 ltng 100 75 110 100 140 180 100 160 200 A1 ltng 15 10 20 35 10 20 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 0 +bighead2 11 bighead1 bighead3 1 Tainted bighead2 bighead Bighead BH 1 1 2 4 6 6 1 11 42 72 bighead bighead 10 15 14 13 86 100 100 40 40 40 0 30 40 60 70 80 bighead2 1 1 1 1 1 100 85 75 -50 -40 -33 60 80 75 25 105 2 10 10 10 5 67 130 63 81 63 101 74 65 120 90 125 50 100 110 65 120 90 125 50 100 110 A2 ltng 100 75 110 100 140 180 100 160 200 A1 ltng 15 10 20 35 10 20 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 0 +bighead3 12 bighead1 bighead4 2 Misshapen bighead3 bighead Bighead BH 1 1 1 2 5 5 1 5 37 69 bighead bighead 10 15 14 13 80 50 50 40 50 50 0 40 50 60 70 80 bighead3 1 1 1 1 1 100 85 75 -50 -40 -33 40 70 25 110 2 5 5 5 5 62 124 64 81 76 101 73 65 120 90 125 50 100 110 65 120 90 125 50 100 110 A2 ltng 100 75 110 100 140 180 100 160 200 A1 ltng 15 10 20 35 10 20 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +bighead4 13 bighead1 bighead5 3 Disfigured bighead4 bighead Bighead BH 1 1 1 3 5 5 1 8 40 70 bighead bighead 10 15 14 13 83 0 0 40 40 40 0 50 65 60 70 80 bighead4 1 1 1 1 1 100 85 75 -50 -40 -33 50 75 25 115 2 8 8 8 5 67 128 63 81 67 101 77 65 120 90 125 50 100 110 65 120 90 125 50 100 110 A2 ltng 100 75 110 100 140 180 100 160 200 A1 ltng 15 10 20 35 10 20 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +bighead5 14 bighead1 bighead6 4 Damned bighead5 bighead Bighead BH 1 1 3 4 7 7 2 27 57 84 bighead bighead 10 15 14 13 90 33 33 40 30 30 0 60 80 60 70 80 bighead5 1 1 1 1 1 100 85 75 -50 -40 -33 80 100 25 120 2 22 22 22 5 65 126 63 88 71 106 75 65 120 90 125 50 100 110 65 120 90 125 50 100 110 A2 ltng 100 75 110 100 140 180 100 160 200 A1 ltng 15 10 20 35 10 20 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +foulcrow1 15 foulcrow1 foulcrow2 0 FoulCrow foulcrow1 foulcrow BloodHawk BK 1 2 4 4 4 2 4 37 68 foulcrow foulcrow 10 15 14 13 30 45 65 90 90 90 5 10 10 50 60 70 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 25 100 2 5 5 5 5 19 46 13 37 26 51 89 20 45 120 40 70 110 115 20 45 120 40 70 110 115 A1 pois 15 10 33 100 25 10 33 100 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) Cast A Act 1 (H) Champ A Act 1 (H) Unique A 0 +foulcrow2 16 foulcrow1 foulcrow3 1 BloodHawk foulcrow2 foulcrow BloodHawk BK 1 3 4 4 4 2 6 38 69 foulcrow foulcrow 10 15 14 13 30 50 65 90 90 90 5 10 10 50 60 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 25 105 2 7 7 7 5 21 41 14 37 41 61 93 20 45 120 40 70 110 115 20 45 120 40 70 110 115 A1 pois 15 10 33 100 25 10 33 100 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +foulcrow3 17 foulcrow1 foulcrow4 2 BlackRaptor foulcrow3 foulcrow BloodHawk BK 1 3 5 5 5 2 16 45 76 foulcrow foulcrow 10 15 14 13 30 55 65 90 90 90 5 10 10 50 60 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 60 80 25 110 2 17 17 17 5 21 45 13 37 37 64 94 20 45 120 40 70 110 115 20 45 120 40 70 110 115 A1 pois 15 10 33 100 25 10 33 100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +foulcrow4 18 foulcrow1 foulcrow5 3 CloudStalker foulcrow4 foulcrow BloodHawk BK 1 4 5 6 6 2 22 49 79 foulcrow foulcrow 10 15 14 13 30 60 65 90 90 90 5 10 10 50 60 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 30 20 60 40 50 80 50 100 2 22 22 22 5 22 44 13 36 36 72 94 20 45 120 40 70 110 115 20 45 120 40 70 110 115 A1 pois 15 10 33 100 25 10 33 100 Act 3 Cast A Act 3 Champ A Act 3 Unique A Act 3 (N) Cast A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) Cast A Act 3 (H) Champ A Act 3 (H) Unique A 0 +fallen1 19 fallen1 fallen2 0 Fallen fallen1 fallen Fallen FA 1 fallen1 1 1 2 3 2 3 5 5 2 1 36 67 fallen fallen 10 15 14 13 30 40 50 10 15 20 50 60 70 20 25 30 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 100 40 2 9 9 9 5 21 61 84 61 51 101 101 51 101 101 25 55 70 65 45 90 90 50 100 85 25 55 70 65 45 90 90 50 100 85 A1 fire 10 20 30 20 20 30 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +fallen2 20 fallen1 fallen3 1 Carver fallen2 fallen Fallen FA 1 fallen2 1 1 2 4 2 4 5 5 2 5 38 68 fallen fallen 10 15 14 13 45 50 55 15 18 24 60 70 80 25 30 35 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 110 40 2 16 16 16 5 24 54 84 61 51 101 91 51 101 91 25 55 70 65 45 90 90 50 100 85 25 55 70 65 45 90 90 50 100 85 A1 cold 10 15 20 150 20 15 20 200 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +fallen3 21 fallen1 fallen4 2 Devilkin fallen3 fallen Fallen FA 1 fallen3 1 1 3 4 3 4 6 6 2 7 39 85 fallen fallen 10 15 14 13 55 60 60 20 22 30 70 80 90 30 35 40 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 120 40 2 25 25 25 5 18 53 84 59 41 101 94 41 101 94 25 55 70 65 45 90 90 50 100 85 25 55 70 65 45 90 90 50 100 85 A1 ltng 10 1 50 20 1 80 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +fallen4 22 fallen1 fallen5 3 DarkOne fallen4 fallen Fallen FA 1 fallen4 1 1 3 5 3 5 6 6 2 10 41 71 fallen fallen 10 15 14 13 65 70 70 25 26 30 80 90 95 35 40 45 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 125 40 2 36 36 36 5 23 55 84 60 43 101 91 43 101 91 25 55 70 65 45 90 90 50 100 85 25 55 70 65 45 90 90 50 100 85 A1 pois 10 10 15 50 20 10 15 75 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +fallen5 23 fallen1 fallen6 4 WarpedFallen fallen5 fallen Fallen FA 1 fallen5 1 1 1 1 1 1 8 8 2 40 55 83 fallen fallen 10 15 14 13 75 80 80 30 30 30 90 95 99 40 45 50 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 50 50 50 50 50 50 66 66 66 66 66 66 25 75 75 75 75 75 2 49 49 49 5 21 55 84 93 45 93 93 45 97 93 25 55 70 65 45 90 90 50 100 85 25 55 70 65 45 90 90 50 100 85 A1 cold 10 20 25 175 10 20 25 225 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +brute2 24 brute2 brute3 0 Brute brute2 brute Brute YE 1 1 2 4 4 1 5 38 69 brute brute 10 15 14 13 0 0 0 75 75 80 100 100 90 1 1 1 1 1 1 100 100 100 -50 -40 -33 50 120 2 6 6 6 5 139 224 84 121 76 101 91 126 151 91 145 210 85 120 70 120 95 110 140 100 145 210 85 120 70 120 95 110 140 100 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +brute3 25 brute2 brute4 1 Yeti brute3 brute Brute YE 1 2 2 4 4 1 9 40 70 brute brute 10 15 14 13 0 0 0 80 80 85 85 85 75 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 60 50 130 2 10 10 10 5 146 236 84 121 58 101 95 115 129 95 145 210 85 120 70 120 95 110 140 100 145 210 85 120 70 120 95 110 140 100 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +brute4 26 brute2 brute5 2 Crusher brute4 brute Brute YE 1 2 3 5 5 2 19 48 79 brute brute 10 15 14 13 0 0 0 85 85 90 75 75 65 1 1 1 1 1 1 100 100 100 -50 -40 -33 60 50 50 140 2 19 19 19 5 143 231 84 120 62 101 93 108 139 93 145 210 85 120 70 120 95 110 140 100 145 210 85 120 70 120 95 110 140 100 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +brute5 27 brute2 brute1 3 WailingBeast brute5 brute Brute YE 1 3 4 5 5 1 23 53 84 brute brute 10 15 14 13 0 0 0 90 90 95 60 60 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 60 20 80 50 50 100 75 2 23 23 23 5 142 230 85 121 61 107 92 114 141 92 145 210 85 120 70 120 95 110 140 100 145 210 85 120 70 120 95 110 140 100 A1 fire 15 15 35 15 30 50 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +brute1 28 brute2 4 GargantuanBeast brute1 brute Brute YE 1 1 1 3 3 1 2 36 68 brute brute 10 15 14 13 0 0 0 100 100 100 45 45 35 1 1 1 1 1 1 100 100 100 -50 -40 -33 50 100 2 4 4 4 5 129 215 84 121 67 101 101 101 134 101 145 210 85 120 70 120 95 110 140 100 145 210 85 120 70 120 95 110 140 100 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +sandraider1 29 sandraider1 sandraider2 0 SandRaider sandraider1 sandraider SandRaider SR 1 2 3 5 5 1 13 43 74 sandraider sandraider 10 15 14 13 70 70 40 75 80 85 70 75 85 18 12 9 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 1 100 75 66 -50 -45 -40 25 100 50 33 2 25 25 25 5 136 211 84 117 67 101 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 S1 fire 100 100 130 100 120 150 100 140 180 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +sandraider2 30 sandraider1 sandraider3 1 Marauder sandraider2 sandraider SandRaider SR 1 2 4 5 5 1 17 46 77 sandraider sandraider 10 15 14 13 70 60 20 80 85 90 70 75 85 15 10 7 1 1 1 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 2 100 75 66 -50 -45 -40 25 50 100 33 2 32 32 32 5 134 212 84 117 64 101 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 S1 cold 100 100 130 75 100 120 150 75 100 140 180 75 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +sandraider3 31 sandraider1 sandraider4 2 Invader sandraider3 sandraider SandRaider SR 1 3 4 6 6 1 18 47 78 sandraider sandraider 10 15 14 13 70 50 10 85 90 95 70 80 90 13 9 6 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 3 100 75 66 -50 -45 -40 25 110 50 33 2 34 34 34 5 135 211 84 117 67 92 176 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 S1 fire 100 100 130 100 120 150 100 140 180 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +sandraider4 32 sandraider1 sandraider5 3 Infidel sandraider4 sandraider SandRaider SR 1 3 5 6 6 1 24 53 81 sandraider sandraider 10 15 14 13 70 40 10 88 95 99 70 80 90 10 7 5 1 1 1 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 4 100 75 66 -50 -45 -40 25 50 110 33 2 44 44 44 5 135 211 85 116 63 94 176 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 S1 cold 100 100 130 75 100 120 150 75 100 140 180 75 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +sandraider5 33 sandraider1 sandraider6 4 Assailant sandraider5 sandraider SandRaider SR 1 4 5 7 7 1 26 59 84 sandraider sandraider 10 15 14 13 70 30 10 90 99 100 70 80 90 7 5 4 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 5 100 75 66 -50 -45 -40 25 120 50 33 2 48 48 48 5 134 210 84 123 65 95 176 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 S1 fire 100 100 130 100 120 150 100 140 180 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +gorgon1 34 gorgon1 gorgon2 0 unused gorgon1 Idle GO 1 15 14 13 2 0 +gorgon2 35 gorgon1 gorgon3 1 unused gorgon2 Idle GO 1 15 14 13 2 0 +gorgon3 36 gorgon1 gorgon4 2 unused gorgon3 Idle GO 1 15 14 13 2 0 +gorgon4 37 gorgon1 3 unused gorgon4 Idle GO 1 15 14 13 2 0 +wraith1 38 wraith1 wraith2 0 Ghost wraith1 wraith Wraith drains mana WR 1 1 2 5 5 1 7 38 75 wraith wraith 10 15 14 13 50 60 60 12 10 8 70 75 80 1 1 1 1 1 1 1 100 66 33 -50 -33 0 20 50 30 60 100 50 50 75 2 8 8 8 5 83 165 84 93 61 121 94 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 40 60 100 40 100 200 40 200 300 Act 1 Wraith B Act 1 Champ B Act 1 Unique B Act 1 (N) Wraith B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Wraith B Act 1 (H) Champ B Act 1 (H) Unique B 0 +wraith2 39 wraith1 wraith3 1 Wraith wraith2 wraith Wraith drains mana WR 1 1 3 6 6 1 10 41 71 wraith wraith 10 15 14 13 60 70 70 10 8 6 75 80 85 1 1 1 1 1 1 1 100 66 33 -50 -33 0 30 50 40 60 100 50 60 75 2 11 11 11 5 87 173 84 92 58 115 91 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 45 57 100 45 100 200 45 200 300 Act 1 Wraith C Act 1 Champ C Act 1 Unique C Act 1 (N) Wraith C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Wraith C Act 1 (H) Champ C Act 1 (H) Unique C 0 +wraith3 40 wraith1 wraith4 2 Specter wraith3 wraith Wraith drains mana WR 1 2 3 6 6 1 19 48 79 wraith wraith 10 15 14 13 70 80 80 8 6 4 80 85 90 1 1 1 1 1 1 1 100 66 33 -50 -33 0 40 50 50 60 100 50 70 75 2 19 19 19 5 86 173 84 92 62 101 93 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 50 38 69 50 100 200 50 200 300 Act 2 Wraith C Act 2 Champ C Act 2 Unique C Act 2 (N) Wraith C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) Wraith C Act 2 (H) Champ C Act 2 (H) Unique C 0 +wraith4 41 wraith1 wraith5 3 Apparition wraith4 wraith Wraith drains mana WR 1 2 4 7 7 1 20 49 80 wraith wraith 10 15 14 13 80 90 90 6 4 4 85 90 95 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 50 60 60 100 50 75 75 2 20 20 20 5 86 172 85 93 62 108 93 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 60 46 84 60 100 200 60 200 300 Act 2 Wraith C Act 2 Champ C Act 2 Unique C Act 2 (N) Wraith C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) Wraith C Act 2 (H) Champ C Act 2 (H) Unique C 0 +wraith5 42 wraith1 wraith6 4 DarkShape wraith5 wraith Wraith drains mana WR 1 3 4 8 8 1 22 51 81 wraith wraith 10 15 14 13 90 100 100 4 4 4 90 95 99 1 1 1 1 1 1 1 100 66 33 -50 -33 0 60 50 75 60 100 50 80 75 2 22 22 22 5 85 172 85 93 65 108 94 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 70 50 107 70 100 200 70 200 300 Act 3 Wraith A Act 3 Champ A Act 3 Unique A Act 3 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) Wraith A Act 3 (H) Champ A Act 3 (H) Unique A 0 +corruptrogue1 43 corruptrogue1 corruptrogue2 0 DarkHunter corruptrogue1 corruptrogue CorruptRogue CR 1 2 3 5 5 2 2 36 67 corruptrogue corruptrogue 10 15 14 13 60 70 80 15 10 7 75 80 85 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 33 33 100 20 2 12 12 12 5 58 101 84 78 34 101 101 60 100 95 95 55 110 130 60 100 95 95 55 110 130 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +corruptrogue2 44 corruptrogue1 corruptrogue3 1 VileHunter corruptrogue2 corruptrogue CorruptRogue CR 1 2 4 6 8 2 5 38 68 corruptrogue corruptrogue 10 15 14 13 70 80 90 12 9 7 80 85 90 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 33 33 120 20 2 18 18 18 5 62 101 84 78 51 126 91 60 100 95 95 55 110 130 60 100 95 95 55 110 130 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +corruptrogue3 45 corruptrogue1 corruptrogue4 2 DarkStalker corruptrogue3 corruptrogue CorruptRogue CR 1 3 4 6 10 2 8 39 69 corruptrogue corruptrogue 10 15 14 13 80 85 90 9 7 5 85 90 95 100 100 100 20 50 75 1 1 1 1 1 1 1 CountessFirewall A1 10 100 100 100 -50 -40 -33 20 20 33 33 130 20 2 25 25 25 5 67 112 84 79 51 117 95 60 100 95 95 55 110 130 60 100 95 95 55 110 130 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +corruptrogue4 46 corruptrogue1 corruptrogue5 3 BlackRogue corruptrogue4 corruptrogue CorruptRogue CR 1 3 5 7 12 2 9 40 70 corruptrogue corruptrogue 10 15 14 13 90 95 95 7 5 5 88 95 95 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 33 33 140 20 2 33 33 33 5 66 111 84 79 43 115 95 60 100 95 95 55 110 130 60 100 95 95 55 110 130 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +corruptrogue5 47 corruptrogue1 corruptrogue6 4 FleshHunter corruptrogue5 corruptrogue CorruptRogue CR 1 4 5 8 12 1 23 53 84 corruptrogue corruptrogue 10 15 14 13 99 99 99 5 5 5 90 99 100 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 40 20 33 33 150 20 2 40 40 40 5 65 107 85 78 47 121 92 60 100 95 95 55 110 130 60 100 95 95 55 110 130 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +baboon1 48 baboon1 baboon2 0 DuneBeast baboon1 baboon Baboon BB 1 1 2 7 12 1 18 47 78 baboon baboon 10 15 14 13 33 33 33 20 30 35 55 60 65 0 0 0 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 33 100 50 25 2 18 18 18 5 108 151 84 96 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 90 135 110 110 50 130 120 50 110 130 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +baboon2 49 baboon1 baboon3 1 RockDweller baboon2 baboon Baboon BB 1 1 3 7 12 1 18 55 83 baboon baboon 10 15 14 13 33 33 33 20 30 35 60 65 70 15 15 15 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 33 100 50 25 2 18 18 18 5 108 151 84 96 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 90 135 110 110 50 130 120 50 110 130 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +baboon3 50 baboon1 baboon4 2 JungleHunter baboon3 baboon Baboon BB 1 2 3 7 13 1 21 49 79 baboon baboon 10 15 14 13 33 33 33 20 30 35 65 70 75 25 25 25 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 105 50 25 2 21 21 21 5 107 151 85 97 51 151 94 51 151 94 90 135 110 110 50 130 120 50 110 130 90 135 110 110 50 130 120 50 110 130 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +baboon4 51 baboon1 baboon5 3 DoomApe baboon4 baboon Baboon BB 1 2 4 7 13 1 22 52 80 baboon baboon 10 15 14 13 33 33 33 20 30 35 70 75 80 40 40 40 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 105 50 25 2 22 22 22 5 107 151 85 96 51 158 94 51 158 94 90 135 110 110 50 130 120 50 110 130 90 135 110 110 50 130 120 50 110 130 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +baboon5 52 baboon1 baboon7 4 TempleGuard baboon5 baboon Baboon BB 1 3 4 7 14 1 24 53 81 baboon baboon 10 15 14 13 33 33 33 20 30 35 75 80 85 50 50 50 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 50 110 50 25 2 24 24 24 5 107 151 85 97 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 90 135 110 110 50 130 120 50 110 130 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +goatman1 53 goatman1 goatman2 0 MoonClan goatman1 goatman Goatman GM 1 1 2 5 5 1 4 37 68 goatman goatman 10 15 14 13 75 75 80 10 10 9 80 80 80 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 50 100 2 5 5 5 5 110 137 51 91 76 126 89 100 130 60 90 75 130 85 100 130 60 90 75 130 85 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +goatman2 54 goatman1 goatman3 1 NightClan goatman2 goatman Goatman GM 1 1 3 6 6 1 6 38 69 goatman goatman 10 15 14 13 75 75 80 10 10 8 80 80 85 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 50 110 2 7 7 7 5 114 141 51 91 81 141 93 100 130 60 90 70 125 85 100 130 60 90 70 125 85 A1 ltng 15 10 75 20 15 85 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +goatman3 55 goatman1 goatman4 2 BloodClan goatman3 goatman Goatman GM 1 2 3 7 7 1 7 38 75 goatman goatman 10 15 14 13 75 80 85 10 9 7 80 85 90 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 50 100 2 8 8 8 5 112 136 51 91 81 161 94 100 130 60 90 65 120 85 100 130 60 90 65 120 85 A1 fire 20 30 50 25 40 70 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +goatman4 56 goatman1 goatman5 3 HellClan goatman4 goatman Goatman GM 1 3 4 9 9 1 19 48 79 goatman goatman 10 15 14 13 75 80 85 10 8 7 80 85 95 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 40 70 50 110 2 19 19 19 5 116 143 51 90 70 147 93 100 130 60 90 65 120 85 100 130 60 90 65 120 85 A1 fire 25 30 50 30 40 70 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +goatman5 57 goatman1 goatman6 4 DeathClan goatman5 goatman Goatman GM 1 2 4 8 8 1 10 40 70 goatman goatman 10 15 14 13 75 85 90 10 7 7 80 90 99 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 30 20 50 50 50 50 75 2 11 11 11 5 119 146 51 91 72 158 91 100 130 60 90 75 130 85 100 130 60 90 75 130 85 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +fallenshaman1 58 fallenshaman1 fallenshaman2 0 FallenShaman fallenshaman1 fallen FallenShaman raises Fallen FS 1 fallen1 1 2 6 1 1 4 4 2 2 36 68 fallenshaman fallenshaman 12 15 14 13 45 50 55 60 65 70 100 90 80 24 24 26 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanFire seq_shamanresurrect 1 100 75 66 -50 -40 -33 25 50 15 100 2 4 4 4 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 55 90 75 150 45 90 105 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) Cast A Act 1 (H) Champ A Act 1 (H) Unique A 0 +fallenshaman2 59 fallenshaman1 fallenshaman3 1 CarverShaman fallenshaman2 fallen FallenShaman raises Carvers FS 1 fallen2 1 2 6 1 1 4 4 2 6 38 69 fallenshaman fallenshaman 12 15 14 13 55 60 65 70 75 75 100 90 80 24 24 26 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanFire seq_shamanresurrect 1 100 75 66 -50 -40 -33 30 60 15 105 2 7 7 7 5 61 101 84 81 41 121 93 55 90 75 150 45 90 105 55 90 75 150 45 90 105 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +fallenshaman3 60 fallenshaman1 fallenshaman4 2 DevilkinShaman fallenshaman3 fallen FallenShaman raises Devilkin FS 1 fallen3 1 2 6 1 1 5 5 2 9 40 70 fallenshaman fallenshaman 12 15 14 13 65 70 75 80 85 85 100 90 80 24 26 28 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanFire seq_shamanresurrect 1 100 75 66 -50 -40 -33 35 70 15 110 2 10 10 10 5 66 111 84 81 43 115 95 55 90 75 150 45 90 105 55 90 75 150 45 90 105 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 0 +fallenshaman4 61 fallenshaman1 fallenshaman5 3 DarkShaman fallenshaman4 fallen FallenShaman raises Dark Ones FS 1 fallen4 1 2 6 1 1 5 5 2 11 42 72 fallenshaman fallenshaman 12 15 14 13 70 80 85 85 90 90 100 90 80 24 26 30 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanFire seq_shamanresurrect 1 100 75 66 -50 -40 -33 40 80 15 115 2 12 12 12 5 67 109 84 81 51 113 92 55 90 75 150 45 90 105 55 90 75 150 45 90 105 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 0 +fallenshaman5 62 fallenshaman1 fallenshaman6 4 WarpedShaman fallenshaman5 fallen FallenShaman raises Warped Fallen FS 1 fallen5 1 2 6 1 3 6 6 1 40 55 83 fallenshaman fallenshaman 12 15 14 13 75 85 90 90 90 95 100 90 80 24 28 30 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanFire seq_shamanresurrect 1 100 75 66 -50 -40 -33 20 70 50 100 25 50 120 2 39 39 39 5 65 107 84 125 53 121 93 55 90 75 150 45 90 105 55 90 75 150 45 90 105 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) Cast C Act 5 (H) Champ C Act 5 (H) Unique C 0 +quillrat1 63 quillrat1 quillrat2 0 QuillRat quillrat1 quillrat QuillRat SI 1 1 1 2 3 3 2 1 36 67 quillrat quillrat 10 15 14 13 10 15 20 35 45 50 2 2 2 spike1 1 1 1 100 100 100 -50 -40 -33 50 50 2 3 3 3 5 21 81 84 71 51 101 101 15 25 134 20 70 80 70 30 75 65 30 50 100 20 70 80 70 30 75 65 30 50 100 A2 pois 15 10 15 50 20 20 25 75 Quill 1 Act 1 Champ A Act 1 Unique A Quill 1 (N) Act 1 (N) Champ A Act 1 (N) Unique A Quill 1 (H) Act 1 (H) Champ A Act 1 (H) Unique A 0 +quillrat2 64 quillrat1 quillrat3 1 SpikeFiend quillrat2 quillrat QuillRat SI 1 1 1 3 3 3 2 5 38 68 quillrat quillrat 10 15 14 13 15 17 20 45 55 55 2 2 2 spike2 1 1 1 100 100 100 -50 -40 -33 50 50 2 6 6 6 5 24 85 84 71 26 126 91 15 25 128 20 70 80 70 30 75 65 30 50 100 20 70 80 70 30 75 65 30 50 100 A2 cold 5 25 40 100 15 35 60 150 Quill 2 Act 1 Champ A Act 1 Unique A Quill 2 (N) Act 1 (N) Champ A Act 1 (N) Unique A Quill 2 (H) Act 1 (H) Champ A Act 1 (H) Unique A 0 +quillrat3 65 quillrat1 quillrat4 2 ThornBeast quillrat3 quillrat QuillRat SI 1 1 2 3 4 4 2 8 39 69 quillrat quillrat 10 15 14 13 20 20 22 55 60 65 1 1 1 spike3 1 1 1 100 100 100 -50 -40 -33 50 50 2 9 9 9 5 23 89 84 71 34 117 95 15 25 124 20 70 80 70 30 75 65 30 50 100 20 70 80 70 30 75 65 30 50 100 A2 cold 5 25 40 100 15 35 60 150 Quill 3 Act 1 Champ B Act 1 Unique B Quill 3 (N) Act 1 (N) Champ B Act 1 (N) Unique B Quill 3 (H) Act 1 (H) Champ B Act 1 (H) Unique B 0 +quillrat4 66 quillrat1 quillrat5 3 RazorSpine quillrat4 quillrat QuillRat SI 1 1 2 4 4 4 2 9 40 70 quillrat quillrat 10 15 14 13 23 23 23 65 65 70 1 1 1 spike4 1 1 1 100 100 100 -50 -40 -33 50 50 2 10 10 10 5 21 86 84 71 29 115 95 15 25 127 20 70 80 70 30 75 65 30 50 100 20 70 80 70 30 75 65 30 50 100 A2 fire 5 30 45 15 45 75 Quill 4 Act 1 Champ C Act 1 Unique C Quill 4 (N) Act 1 (N) Champ C Act 1 (N) Unique C Quill 4 (H) Act 1 (H) Champ C Act 1 (H) Unique C 0 +quillrat5 67 quillrat1 quillrat6 4 JungleUrchin quillrat5 quillrat QuillRat SI 1 1 3 4 5 5 1 18 48 79 quillrat quillrat 10 15 14 13 25 25 27 75 75 75 1 1 1 spike5 1 1 1 100 100 100 -50 -40 -33 50 50 2 18 18 18 5 22 87 84 71 34 117 92 15 25 125 20 70 80 70 30 75 65 30 50 100 20 70 80 70 30 75 65 30 50 100 A2 ltng 5 5 75 15 5 120 Quill 5 Act 3 Champ A Act 3 Unique A Quill 5 (N) Act 3 (N) Champ A Act 3 (N) Unique A Quill 5 (H) Act 3 (H) Champ A Act 3 (H) Unique A 0 +sandmaggot1 68 sandmaggot1 sandmaggot2 0 SandMaggot sandmaggot1 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg1 0 0 S1 1 1 4 4 1 16 45 76 sandmaggot sandmaggot 10 15 14 13 35 35 35 35 35 35 2 2 2 75 75 75 120 120 120 goospit1 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 66 33 105 2 17 17 17 5 139 174 84 117 82 182 94 110 150 115 125 70 110 75 110 150 115 125 70 110 75 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +sandmaggot2 69 sandmaggot1 sandmaggot3 1 RockWorm sandmaggot2 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg2 0 0 S1 1 1 4 4 1 17 45 84 sandmaggot sandmaggot 10 15 14 13 40 40 40 40 45 40 2 2 2 80 80 80 110 110 110 goospit2 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 66 33 110 2 17 17 17 5 139 173 84 117 91 191 92 110 150 115 125 70 110 75 110 150 115 125 70 110 75 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +sandmaggot3 70 sandmaggot1 sandmaggot4 2 Devourer sandmaggot3 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg3 0 0 S1 1 2 4 4 1 19 48 79 sandmaggot sandmaggot 10 15 14 13 45 45 45 50 50 50 2 2 2 85 85 85 100 100 100 goospit3 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 66 33 115 2 19 19 19 5 141 173 84 116 85 177 93 110 150 115 125 70 110 75 110 150 115 125 70 110 75 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +sandmaggot4 71 sandmaggot1 sandmaggot5 3 GiantLamprey sandmaggot4 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg4 0 0 S1 2 2 4 4 1 21 50 79 sandmaggot sandmaggot 10 15 14 13 50 50 50 60 60 60 2 2 2 88 88 88 90 90 90 goospit4 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 66 33 120 2 21 21 21 5 139 171 85 117 86 186 94 110 150 115 125 70 110 75 110 150 115 125 70 110 75 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +sandmaggot5 72 sandmaggot1 sandmaggot6 4 WorldKiller sandmaggot5 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg5 0 0 S1 2 3 4 4 1 27 57 85 sandmaggot sandmaggot 10 15 14 13 55 55 55 70 70 70 2 2 2 90 90 90 80 80 80 goospit5 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 66 33 125 2 27 27 27 5 140 172 84 127 89 189 93 110 150 115 125 70 110 75 110 150 115 125 70 110 75 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +clawviper1 73 clawviper1 clawviper2 0 TombViper clawviper1 clawviper ClawViper SD 1 1 2 4 4 1 11 43 75 clawviper clawviper 10 15 14 13 40 45 45 8 10 12 75 75 75 50 50 50 15 10 10 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 40 33 100 2 12 12 12 5 67 109 84 78 51 88 92 63 101 92 75 110 125 100 60 80 135 60 105 135 75 110 125 100 60 80 135 60 105 135 A1 fire 100 50 87 100 60 70 100 60 70 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +clawviper2 74 clawviper1 clawviper3 1 ClawViper clawviper2 clawviper ClawViper SD 1 1 3 4 10 1 15 45 76 clawviper clawviper 10 15 14 13 45 50 50 8 10 12 80 80 80 60 60 60 12 12 9 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 20 40 40 33 120 2 16 16 16 5 66 107 84 78 61 101 94 61 101 94 75 110 125 100 60 80 135 60 105 135 75 110 125 100 60 80 135 60 105 135 A1 ltng 100 5 120 100 5 120 100 5 120 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +clawviper3 75 clawviper1 clawviper4 2 Salamander clawviper3 clawviper ClawViper SD 1 2 3 5 12 1 18 46 77 clawviper clawviper 10 15 14 13 50 55 55 8 10 12 85 85 85 70 70 70 9 9 8 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 40 70 40 33 110 2 18 18 18 5 66 108 84 78 51 92 92 59 101 92 75 110 125 100 60 80 135 60 105 135 75 110 125 100 60 80 135 60 105 135 A1 fire 100 50 91 100 60 70 100 60 70 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +clawviper4 76 clawviper1 clawviper5 3 PitViper clawviper4 clawviper ClawViper SD 1 2 4 5 12 1 22 51 82 clawviper clawviper 10 15 14 13 55 60 60 8 10 12 88 88 88 75 75 75 7 7 7 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 60 60 80 60 40 33 130 60 2 22 22 22 5 66 107 85 78 58 101 94 65 108 94 75 110 125 100 60 80 135 60 105 135 75 110 125 100 60 80 135 60 105 135 A1 pois 100 15 15 200 100 25 25 200 100 33 33 200 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +clawviper5 77 clawviper1 clawviper6 4 SerpentMagus clawviper5 clawviper ClawViper SD 1 3 4 6 14 1 24 54 85 clawviper clawviper 10 15 14 13 60 65 65 8 10 12 90 90 90 80 80 80 5 5 5 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 40 80 20 70 80 60 40 70 33 120 60 2 24 24 24 5 65 107 85 78 51 94 92 57 101 92 75 110 125 100 60 80 135 60 105 135 75 110 125 100 60 80 135 60 105 135 A1 cold 100 50 93 100 100 60 80 100 100 60 100 100 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +sandleaper1 78 sandleaper1 sandleaper2 0 SandLeaper sandleaper1 sandleaper SandLeaper SL 1 1 3 10 10 1 14 43 75 sandleaper sandleaper 10 15 14 13 20 21 23 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 1 100 85 75 -50 -40 -33 50 100 2 15 15 15 5 67 194 84 94 61 121 94 61 121 94 40 80 130 95 65 120 100 55 100 90 40 80 130 95 65 120 100 55 100 90 A1 pois 5 10 10 50 10 15 15 75 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +sandleaper2 79 sandleaper1 sandleaper3 1 CaveLeaper sandleaper2 sandleaper SandLeaper SL 1 2 3 8 8 1 15 44 76 sandleaper sandleaper 10 15 14 13 20 21 23 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 2 100 85 75 -50 -40 -33 50 100 2 16 16 16 5 66 194 84 94 61 121 94 61 121 94 40 80 130 95 65 120 100 55 100 90 40 80 130 95 65 120 100 55 100 90 A1 pois 5 10 10 50 10 15 15 75 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +sandleaper3 80 sandleaper1 sandleaper4 2 TombCreeper sandleaper3 sandleaper SandLeaper SL 1 2 4 8 8 1 17 46 77 sandleaper sandleaper 10 15 14 13 20 21 24 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 3 100 85 75 -50 -40 -33 40 60 105 2 17 17 17 5 64 192 84 94 64 128 92 64 128 92 40 80 130 95 65 120 100 55 100 90 40 80 130 95 65 120 100 55 100 90 A1 pois 5 10 10 50 10 15 15 75 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +sandleaper4 81 sandleaper1 sandleaper5 3 TreeLurker sandleaper4 sandleaper SandLeaper SL 1 3 4 8 8 1 22 52 80 sandleaper sandleaper 10 15 14 13 20 22 24 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 4 100 85 75 -50 -40 -33 20 40 70 70 80 100 2 22 22 22 5 66 192 85 94 65 122 94 65 122 94 40 80 130 95 65 120 100 55 100 90 40 80 130 95 65 120 100 55 100 90 A1 pois 5 10 10 50 10 15 15 75 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +sandleaper5 82 sandleaper1 sandleaper6 4 RazorPitDemon sandleaper5 sandleaper SandLeaper SL 1 3 5 8 8 1 26 56 82 sandleaper sandleaper 10 15 14 13 20 22 25 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 5 100 85 75 -50 -40 -33 20 60 40 20 80 70 25 80 100 2 26 26 26 5 65 193 84 99 59 118 93 59 118 93 40 80 130 95 65 120 100 55 100 90 40 80 130 95 65 120 100 55 100 90 A1 pois 5 10 10 50 10 15 15 75 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +pantherwoman1 83 pantherwoman1 pantherwoman2 0 Huntress pantherwoman1 pantherwoman PantherWoman PW 1 1 3 5 10 1 14 43 75 pantherwoman pantherwoman 10 15 14 13 70 70 70 70 75 80 8 8 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 15 100 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 60 100 105 80 50 90 200 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +pantherwoman2 84 pantherwoman1 pantherwoman3 1 SaberCat pantherwoman2 pantherwoman PantherWoman PW 1 2 3 6 11 1 15 44 76 pantherwoman pantherwoman 10 15 14 13 80 80 80 80 80 85 12 12 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 15 100 2 20 20 20 5 57 97 63 70 51 121 94 60 100 105 80 50 90 200 60 100 105 80 50 90 200 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +pantherwoman3 85 pantherwoman1 pantherwoman4 2 NightTiger pantherwoman3 pantherwoman PantherWoman PW 1 2 4 7 12 1 17 46 77 pantherwoman pantherwoman 10 15 14 13 90 90 90 90 90 90 16 12 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 15 100 2 25 25 25 5 59 95 63 71 55 128 92 60 100 105 80 50 90 200 60 100 105 80 45 80 200 A1 cold 15 40 75 150 50 45 100 250 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +pantherwoman4 86 pantherwoman1 pantherwoman5 3 HellCat pantherwoman4 pantherwoman PantherWoman PW 1 3 4 8 13 1 19 48 79 pantherwoman pantherwoman 10 15 14 13 90 90 90 90 90 95 24 12 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 15 120 2 30 30 30 5 58 96 63 70 47 116 93 60 100 105 80 50 90 200 60 100 105 80 45 80 200 A1 fire 15 50 80 50 50 120 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +swarm1 87 swarm1 swarm2 0 Itchies swarm1 swarm Swarm drains stamina SW 1 4 8 5 5 1 16 45 76 swarm swarm 10 15 14 13 60 60 60 20 20 18 50 55 65 1 1 1 1 Swarm Move seq_swarmmove 1 -50 -40 -33 60 70 100 2 17 17 17 5 21 45 84 61 73 91 94 20 40 120 60 45 60 70 20 40 120 60 45 65 70 A1 stam 40 72 90 100 100 200 100 100 200 Swarm 1 Act 2 Champ B Act 2 Unique B Swarm 1 (N) Act 2 (N) Champ B Act 2 (N) Unique B Swarm 1 (H) Act 2 (H) Champ B Act 2 (H) Unique B 0 +swarm2 88 swarm1 swarm3 1 BlackLocusts swarm2 swarm Swarm drains stamina SW 1 5 8 6 6 1 17 45 84 swarm swarm 10 15 14 13 60 60 60 20 18 15 50 55 65 1 1 1 1 Swarm Move seq_swarmmove 1 -50 -40 -33 70 80 100 2 17 17 17 5 23 45 84 61 73 91 92 20 40 120 60 45 60 70 20 40 120 60 45 65 70 A1 stam 60 72 90 100 100 200 100 100 200 Swarm 1 Act 2 Champ B Act 2 Unique B Swarm 1 (N) Act 2 (N) Champ B Act 2 (N) Unique B Swarm 1 (H) Act 2 (H) Champ B Act 2 (H) Unique B 0 +swarm3 89 swarm1 swarm4 2 PlagueBugs swarm3 swarm Swarm drains stamina SW 1 6 8 7 7 1 21 48 79 swarm swarm 10 15 14 13 60 60 60 20 18 13 50 60 70 1 1 1 1 Swarm Move seq_swarmmove 1 -50 -40 -33 80 90 100 2 21 21 21 5 21 44 85 61 72 86 94 20 40 120 60 45 60 70 20 40 120 60 45 65 70 A1 stam 80 71 85 100 100 200 100 100 200 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 0 +swarm4 90 swarm1 swarm5 3 HellSwarm swarm4 swarm Swarm drains stamina SW 1 7 9 8 8 1 22 52 81 swarm swarm 10 15 14 13 60 60 60 20 16 12 50 60 70 1 1 1 1 Swarm Move seq_swarmmove 1 -50 -40 -33 90 40 90 70 100 70 2 22 22 22 5 22 44 85 61 79 93 94 20 40 120 60 45 60 70 20 40 120 60 45 65 70 A1 stam 90 78 92 100 100 200 100 100 200 A1 fire 25 30 50 40 40 60 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 0 +scarab1 91 scarab1 scarab2 0 DungSoldier scarab1 scarab Scarab SC 1 scarab1 1 1 2 4 2 4 4 4 1 14 43 75 scarab scarab 10 15 14 13 75 80 84 50 50 50 15 13 12 35 45 55 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 1 100 75 50 -50 -40 -25 50 100 2 15 15 15 5 67 111 84 125 51 151 94 51 121 94 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 70 110 145 125 55 110 120 55 110 140 40 70 95 A1 ltng 20 10 20 20 15 30 20 15 30 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +scarab2 92 scarab1 scarab3 1 SandWarrior scarab2 scarab Scarab SC 1 scarab2 1 1 3 4 3 4 5 5 1 16 45 76 scarab scarab 10 15 14 13 80 85 88 60 60 60 12 11 10 45 55 65 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 2 100 75 50 -50 -40 -25 50 105 3 17 17 17 5 68 112 84 125 55 155 94 55 119 94 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 70 110 145 125 55 110 120 55 110 140 40 70 95 A1 ltng 20 9 27 20 15 30 20 15 30 A1 pois 10 10 10 50 20 15 15 50 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +scarab3 93 scarab1 scarab4 2 Scarab scarab3 scarab Scarab SC 1 scarab3 1 1 3 5 3 5 5 5 1 17 45 84 scarab scarab 10 15 14 13 85 88 92 70 70 70 9 9 9 55 65 70 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 3 100 75 50 -50 -40 -25 50 110 4 17 17 17 5 67 112 84 125 55 155 92 55 128 92 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 70 110 145 125 55 110 120 55 110 140 40 70 95 A1 ltng 25 18 27 25 15 30 25 15 30 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +scarab4 94 scarab1 scarab5 3 SteelWeevil scarab4 scarab Scarab SC 1 scarab4 1 1 4 5 4 5 6 6 1 19 48 79 scarab scarab 10 15 14 13 88 91 94 75 75 75 7 7 7 65 70 75 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 4 100 75 50 -50 -40 -25 50 115 5 19 19 19 5 68 111 84 125 47 147 93 47 116 93 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 70 110 145 125 55 110 120 55 110 140 40 70 95 A1 ltng 25 15 30 25 15 30 25 15 30 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +scarab5 95 scarab1 scarab6 4 AlbinoRoach scarab5 scarab Scarab SC 1 scarab5 1 1 4 5 4 5 6 6 1 24 54 85 scarab scarab 10 15 14 13 90 94 96 70 70 70 70 70 70 70 75 80 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 5 100 75 50 -50 -40 -25 50 120 6 24 24 24 5 67 111 85 125 51 151 92 51 119 92 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 70 110 145 125 55 110 120 55 110 140 40 70 95 A1 ltng 30 18 25 30 15 30 30 15 30 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +mummy1 96 mummy1 mummy2 0 DriedCorpse mummy1 mummy Mummy MM 1 2 4 3 3 1 13 43 74 mummy mummy 10 15 14 13 5 9 15 60 60 60 100 100 100 65 65 65 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 50 33 33 100 2 14 14 14 5 68 158 84 86 56 112 93 56 112 93 100 140 95 100 60 105 105 100 140 95 100 60 105 105 A1 pois 10 33 33 200 25 33 33 300 25 33 33 400 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +mummy2 97 mummy1 mummy3 1 Decayed mummy2 mummy Mummy MM 1 3 4 3 3 1 15 44 79 mummy mummy 10 15 14 13 10 12 18 50 50 50 100 100 100 60 60 60 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 50 33 33 100 2 16 16 16 5 69 157 84 87 61 111 94 61 111 94 100 140 95 100 60 105 105 100 140 95 100 60 105 105 A1 pois 10 33 33 200 25 33 33 300 25 33 33 400 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +mummy3 98 mummy1 mummy4 2 Embalmed mummy3 mummy Mummy MM 1 3 5 3 3 1 18 46 77 mummy mummy 10 15 14 13 15 16 21 30 30 30 100 100 100 50 50 50 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 50 33 33 105 2 18 18 18 5 69 156 84 86 51 109 92 51 109 92 100 140 95 100 60 105 105 100 140 95 100 60 105 105 A1 pois 10 33 33 200 30 33 33 300 30 33 33 400 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +mummy4 99 mummy1 mummy5 3 PreservedDead mummy4 mummy Mummy MM 1 4 5 3 3 1 23 49 80 mummy mummy 10 15 14 13 20 22 23 40 40 40 100 100 100 55 55 55 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 50 33 33 105 2 23 23 23 5 69 155 85 86 54 107 92 54 107 92 100 140 95 100 60 105 105 100 140 95 100 60 105 105 A1 pois 10 33 33 200 30 33 33 300 30 33 33 400 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +mummy5 100 mummy1 mummy6 4 Cadaver mummy5 mummy Mummy MM 1 4 5 3 3 1 25 55 83 mummy mummy 10 15 14 13 25 25 25 50 50 50 100 100 100 55 55 55 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 50 33 33 110 2 25 25 25 5 70 154 85 89 57 107 93 57 107 93 100 140 95 100 60 105 105 100 140 95 100 60 105 105 A1 pois 10 33 33 200 35 33 33 800 35 33 33 400 Act 3 H2H C Act 3 Champ C Act 3 Unique C Act 3 (N) H2H C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) H2H C Act 3 (H) Champ C Act 3 (H) Unique C 0 +unraveler1 101 unraveler1 unraveler2 0 HollowOne unraveler1 unraveler GreaterMummy raises undead GY 1 skeleton2 2 8 1 1 2 2 1 15 44 79 unraveler unraveler 12 15 14 13 70 70 70 30 35 40 40 45 50 60 70 80 24 27 31 mummy1 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 1 100 66 33 -50 -33 -25 50 50 33 20 20 100 20 50 3 1 15 33 5 194 238 84 136 121 161 94 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 15 120 160 1000 15 33 33 1000 15 33 33 1000 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Cast A Act 2 (H) Champ A Act 2 (H) Unique A 0 +unraveler2 102 unraveler1 unraveler3 1 Guardian unraveler2 unraveler GreaterMummy raises undead GY 1 skeleton3 2 8 1 1 2 2 1 18 46 77 unraveler unraveler 12 15 14 13 75 75 75 35 40 45 45 50 50 70 75 85 24 27 31 mummy2 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 2 100 66 33 -50 -33 -25 50 50 33 100 100 20 20 50 3 1 15 33 5 193 237 84 136 117 151 92 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 20 116 150 1100 20 33 33 1100 20 33 33 1100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +unraveler3 103 unraveler1 unraveler4 2 Unraveler unraveler3 unraveler GreaterMummy raises undead GY 1 skeleton4 2 8 1 1 3 3 1 20 49 80 unraveler unraveler 12 15 14 13 80 80 80 40 45 50 50 55 50 80 85 90 24 27 31 mummy3 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 3 100 66 33 -50 -33 -25 50 50 50 33 100 20 20 100 50 3 1 15 33 5 193 236 85 136 124 154 93 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 25 123 153 1200 25 33 33 1200 25 33 33 1200 Act 2 Cast C Act 2 Champ C Act 2 Unique C Act 2 (N) Cast C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) Cast C Act 2 (H) Champ C Act 2 (H) Unique C 0 +unraveler4 104 unraveler1 unraveler5 3 Horadrim Ancient unraveler4 unraveler GreaterMummy raises undead GY 1 skeleton5 2 8 1 1 4 4 1 23 52 84 unraveler unraveler 12 15 14 13 85 85 85 45 50 55 55 55 55 85 85 90 24 27 31 mummy4 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 4 100 66 33 -50 -33 -25 50 25 25 25 25 50 33 100 50 50 50 50 3 1 15 33 5 192 236 85 136 121 154 92 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 30 120 153 1500 30 33 33 1500 30 33 33 1500 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +unraveler5 105 unraveler1 unraveler6 4 Baal Subject Mummy unraveler5 unraveler GreaterMummy raises undead GY 1 1 1 5 5 1 40 64 85 unraveler unraveler 12 15 14 13 85 85 85 45 50 55 55 55 55 85 90 95 24 27 31 mummy4 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 5 100 66 33 -50 -33 -25 50 25 25 25 25 50 33 100 66 66 66 50 3 1 15 33 5 192 235 84 211 121 153 93 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 30 120 152 1500 30 33 33 1500 30 33 33 1500 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +chaoshorde1 106 chaoshorde1 chaoshorde2 0 unused chaoshorde1 Idle CH 0 0 3 3 1 2 5 0 +chaoshorde2 107 chaoshorde1 chaoshorde3 1 unused chaoshorde2 Idle CH 0 0 3 3 1 2 5 0 +chaoshorde3 108 chaoshorde1 chaoshorde4 2 unused chaoshorde3 Idle CH 0 0 3 3 1 2 5 0 +chaoshorde4 109 chaoshorde1 3 unused chaoshorde4 Idle CH 0 0 3 3 1 2 5 0 +vulture1 110 vulture1 vulture2 0 CarrionBird vulture1 vulture Vulture VD 1 1 3 4 4 1 14 43 75 vulture vulture 10 15 14 13 70 75 80 8 8 8 75 65 50 30 30 30 40 40 40 1 1 1 100 100 100 -50 -40 -33 25 110 2 15 15 15 5 67 107 84 83 91 121 94 60 90 85 80 80 110 85 60 90 85 80 80 110 85 Swarm 1 Act 2 Champ A Act 2 Unique A Swarm 1 (N) Act 2 (N) Champ A Act 2 (N) Unique A Swarm 1 (H) Act 2 (H) Champ A Act 2 (H) Unique A 1 1 0 +vulture2 111 vulture1 vulture3 1 UndeadScavenger vulture2 vulture Vulture VD 1 2 3 4 4 1 15 44 76 vulture vulture 10 15 14 13 80 80 85 8 8 8 75 65 50 30 30 30 50 50 50 1 1 1 1 100 100 100 -50 -40 -33 25 100 25 2 16 16 16 5 66 107 84 83 91 121 94 60 90 85 80 80 110 85 60 90 85 80 80 110 85 Swarm 1 Act 2 Champ A Act 2 Unique A Swarm 1 (N) Act 2 (N) Champ A Act 2 (N) Unique A Swarm 1 (H) Act 2 (H) Champ A Act 2 (H) Unique A 1 1 0 +vulture3 112 vulture1 vulture4 2 HellBuzzard vulture3 vulture Vulture VD 1 2 4 5 5 1 22 52 80 vulture vulture 10 15 14 13 85 85 90 8 8 8 75 65 50 30 30 30 60 60 60 1 1 1 1 100 100 100 -50 -40 -33 100 25 2 22 22 22 5 66 107 85 83 93 122 94 60 90 85 80 80 110 85 60 90 85 80 80 110 85 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 1 1 0 +vulture4 113 vulture1 vulture5 3 WingedNightmare vulture4 vulture Vulture VD 1 3 4 5 5 1 23 50 81 vulture vulture 10 15 14 13 90 90 95 8 8 8 75 65 50 30 30 30 70 70 70 1 1 1 100 100 100 -50 -40 -33 25 100 25 2 23 23 23 5 65 107 85 83 94 121 92 60 90 85 80 80 110 85 60 90 85 80 80 110 85 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 1 1 0 +mosquito1 114 mosquito1 mosquito2 0 Sucker mosquito1 mosquito Mosquito drains mana and stamina MO 1 1 3 6 12 1 21 49 79 mosquito mosquito 10 15 14 13 40 45 55 40 45 55 5 5 5 1 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 33 105 2 21 21 21 5 21 107 85 74 51 122 94 20 100 95 75 50 95 90 20 100 95 75 50 95 90 A1 stam 60 357 428 100 500 600 100 500 600 Swarm 2 Act 3 Champ A Act 3 Unique A Swarm 2 (N) Act 3 (N) Champ A Act 3 (N) Unique A Swarm 2 (H) Act 3 (H) Champ A Act 3 (H) Unique A 0 +mosquito2 115 mosquito1 mosquito3 0 Feeder mosquito2 mosquito Mosquito drains mana and stamina MO 1 2 3 6 12 1 23 51 82 mosquito mosquito 10 15 14 13 40 45 55 40 45 55 5 5 5 1 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 33 110 2 23 23 23 5 21 107 85 74 54 121 92 20 100 95 75 50 95 90 20 100 95 75 50 95 90 A1 stam 70 400 466 100 500 600 100 500 600 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 0 +mosquito3 116 mosquito1 mosquito4 0 BloodHook mosquito3 mosquito Mosquito drains mana and stamina MO 1 2 4 6 12 1 22 50 81 mosquito mosquito 10 15 14 13 40 50 55 40 50 60 5 5 5 1 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 33 115 2 22 22 22 5 22 107 85 74 51 122 94 20 100 95 75 50 95 90 20 100 95 75 50 95 90 A1 stam 80 500 571 100 500 600 100 500 600 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 0 +mosquito4 117 mosquito1 0 BloodWing mosquito4 mosquito Mosquito drains mana and stamina MO 1 3 4 6 12 1 24 53 85 mosquito mosquito 10 15 14 13 40 50 55 40 50 60 5 5 5 1 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 33 120 2 24 24 24 5 21 107 85 74 51 119 92 20 100 95 75 50 95 90 20 100 95 75 50 95 90 A1 stam 90 500 562 100 500 600 100 500 600 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 0 +willowisp1 118 willowisp1 willowisp2 0 Gloam willowisp1 willowisp WillOWisp drains mana WW 1 1 2 3 15 15 1 21 50 80 willowisp willowisp 10 15 14 13 40 50 60 70 70 70 50 50 50 willowisplightningbolt 1 1 1 1 1 1 Chain Lightning SC 1 -50 -33 0 40 50 40 70 60 100 2 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 40 14 64 40 100 200 40 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 3 Wraith A Act 3 Champ A Act 3 Unique A Act 3 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) Wraith A Act 3 (H) Champ A Act 3 (H) Unique A 1 1 0 +willowisp2 119 willowisp1 willowisp3 1 SwampGhost willowisp2 willowisp WillOWisp drains mana WW 1 1 2 4 15 15 1 23 53 81 willowisp willowisp 10 15 14 13 50 60 65 80 80 80 40 40 40 willowisplightningbolt 1 1 1 1 1 1 Chain Lightning SC 2 -50 -33 0 50 60 50 80 70 105 2 23 23 23 5 44 86 85 74 34 154 92 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 60 13 66 60 100 200 60 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 3 Wraith B Act 3 Champ B Act 3 Unique B Act 3 (N) Wraith B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Wraith B Act 3 (H) Champ B Act 3 (H) Unique B 1 1 0 +willowisp3 120 willowisp1 willowisp4 2 BurningSoul willowisp3 willowisp WillOWisp drains mana WW 1 1 3 4 15 15 1 26 56 83 willowisp willowisp 10 15 14 13 60 70 70 85 85 85 35 35 35 willowisplightningbolt 1 1 1 1 1 1 Chain Lightning SC 3 -50 -33 0 60 70 60 85 80 110 2 26 26 26 5 45 86 84 78 36 153 93 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 80 17 70 80 100 200 80 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 4 Wraith A Act 3 Champ A Act 3 Unique A Act 4 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Act 4 (H) Wraith A Act 3 (H) Champ A Act 3 (H) Unique A 1 1 0 +willowisp4 121 willowisp1 willowisp5 3 BlackSoul willowisp4 willowisp WillOWisp drains mana WW 1 1 3 5 15 15 1 28 58 85 willowisp willowisp 10 15 14 13 70 70 75 90 90 90 30 30 30 willowisplightningbolt 1 1 1 1 1 1 Chain Lightning SC 4 -50 -33 0 70 80 70 100 90 115 2 28 28 28 5 44 87 84 82 34 151 93 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 90 16 72 90 100 200 90 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 4 Wraith B Act 3 Champ B Act 3 Unique B Act 4 (N) Wraith B Act 3 (N) Champ B Act 3 (N) Unique B Act 4 (H) Wraith B Act 3 (H) Champ B Act 3 (H) Unique B 1 1 0 +arach1 122 arach1 arach2 0 Arach arach1 arach Arach SP 1 2 3 6 6 1 11 42 73 arach arach 10 15 14 13 45 55 60 33 33 33 15 20 25 8 8 8 25 25 25 1 1 1 1 1 SpiderLay A2 1 100 75 50 -50 -40 -25 50 110 50 3 12 12 12 5 155 192 84 114 88 138 92 150 190 135 110 80 120 100 150 190 135 110 80 120 100 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +arach2 123 arach1 arach3 1 SandFisher arach2 arach Arach SP 1 3 3 7 7 1 15 45 75 arach arach 10 15 14 13 55 65 70 40 40 40 15 20 25 8 10 10 30 30 30 1 1 1 1 1 SpiderLay A2 2 100 75 50 -50 -40 -25 50 105 55 3 16 16 16 5 151 191 84 113 91 151 94 150 190 135 110 80 120 100 150 190 135 110 80 120 100 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +arach3 124 arach1 arach4 2 PoisonSpinner arach3 arach Arach SP 1 3 4 8 8 1 21 49 78 arach arach 10 15 14 13 65 75 75 45 45 45 20 25 30 8 12 12 35 35 35 1 1 1 1 1 SpiderLay A2 3 100 75 50 -50 -40 -25 50 110 3 21 21 21 5 151 191 85 113 86 143 94 150 190 135 110 70 105 100 150 190 135 110 70 105 100 A1 pois 33 21 35 1200 33 40 100 1200 33 40 100 1200 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +arach4 125 arach1 arach5 3 FlameSpider arach4 arach Arach SP 1 4 4 8 9 1 22 50 79 arach arach 10 15 14 13 75 75 75 50 50 50 33 35 40 8 10 10 40 40 40 1 1 1 1 1 SpiderLay A2 4 100 75 50 -50 -40 -25 50 115 60 3 22 22 22 5 151 192 85 113 93 151 94 150 190 135 110 70 105 100 150 190 135 110 70 105 100 A1 fire 40 21 42 40 25 50 40 25 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +arach5 126 arach1 arach6 4 SpiderMagus arach5 arach Arach SP 1 4 5 8 11 1 23 53 84 arach arach 10 15 14 13 75 75 75 55 55 55 20 25 30 8 8 8 45 45 45 1 1 1 1 1 SpiderLay A2 5 100 75 50 -50 -40 -25 50 120 65 3 23 23 23 5 151 190 85 114 94 147 92 150 190 135 110 70 105 100 150 190 135 110 70 105 100 A1 pois 50 26 40 3000 50 50 120 3000 50 50 120 3000 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +thornhulk1 127 thornhulk1 thornhulk2 0 ThornedHulk thornhulk1 thornhulk ThornHulk TH 1 1 3 3 3 1 21 49 79 thornhulk thornhulk 10 15 14 13 80 80 80 15 15 15 10 10 10 30 30 30 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 1 100 85 75 -50 -40 -33 25 120 4 21 21 21 5 153 248 85 123 86 143 94 72 143 94 190 230 140 130 90 160 105 75 150 120 190 230 140 130 90 160 105 75 150 120 A2 stun 100 7 100 7 100 7 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +thornhulk2 128 thornhulk1 thornhulk3 1 BrambleHulk thornhulk2 thornhulk ThornHulk TH 1 2 3 3 3 1 22 50 80 thornhulk thornhulk 10 15 14 13 85 85 85 25 25 25 10 10 10 40 40 40 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 2 100 85 75 -50 -40 -33 25 130 4 22 22 22 5 153 248 85 123 93 151 94 79 151 94 190 230 140 130 90 160 105 75 150 120 190 230 140 130 90 160 105 75 150 120 A2 stun 100 7 100 7 100 7 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +thornhulk3 129 thornhulk1 thornhulk4 2 Thrasher thornhulk3 thornhulk ThornHulk TH 1 2 4 3 3 1 23 52 81 thornhulk thornhulk 10 15 14 13 90 90 90 40 40 40 10 10 10 50 50 50 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 3 100 85 75 -50 -40 -33 25 140 4 23 23 23 5 153 248 85 123 87 147 92 74 147 92 190 230 140 130 90 160 105 75 150 120 190 230 140 130 90 160 105 75 150 120 A2 stun 100 7 100 7 100 7 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +thornhulk4 130 thornhulk1 thornhulk5 3 Spikefist thornhulk4 thornhulk ThornHulk TH 1 3 5 3 3 1 27 57 84 thornhulk thornhulk 10 15 14 13 100 100 100 50 50 50 10 10 10 55 55 55 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 4 100 85 75 -50 -40 -33 25 150 4 27 27 27 5 152 247 84 133 89 148 93 77 148 93 190 230 140 130 90 160 105 75 150 120 190 230 140 130 90 160 105 75 150 120 A2 stun 100 7 100 7 100 7 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +vampire1 131 vampire1 vampire2 0 GhoulLord vampire1 vampire Vampire steals life VA 1 1 1 2 6 6 1 19 49 80 vampire vampire 11 15 14 13 55 55 55 20 40 50 24 25 25 25 25 35 3 3 3 1 1 1 1 1 1 VampireFireball SC 2 VampireFirewall SC 2 VampireMeteor SC 2 VampireMissile SC 2 100 85 75 -50 -40 -25 30 50 30 50 50 30 33 25 110 50 3 19 19 19 5 153 211 84 110 47 116 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 60 38 115 25 60 50 100 50 60 50 100 75 Act 2 Cast C Act 2 Champ C Act 2 Unique C Act 2 (N) Cast C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) Cast C Act 2 (H) Champ C Act 2 (H) Unique C 0 +vampire2 132 vampire1 vampire3 1 NightLord vampire2 vampire Vampire steals life VA 1 1 1 2 7 7 1 23 54 82 vampire vampire 11 15 14 13 65 65 65 25 50 60 25 26 26 25 28 39 5 5 5 1 1 1 1 1 1 VampireFireball SC 3 VampireFirewall SC 3 VampireMeteor SC 3 VampireMissile SC 3 100 85 75 -50 -40 -25 40 50 35 50 50 35 33 25 120 50 3 23 23 23 5 153 209 85 110 54 121 92 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 65 40 60 25 65 50 100 50 65 50 100 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +vampire3 133 vampire1 vampire4 2 DarkLord vampire3 vampire Vampire steals life VA 1 1 1 3 7 7 1 24 55 83 vampire vampire 11 15 14 13 76 76 76 30 60 70 26 27 27 25 31 43 7 7 7 1 1 1 1 1 1 VampireFireball SC 4 VampireFirewall SC 4 VampireMeteor SC 4 VampireMissile SC 4 100 85 75 -50 -40 -25 50 50 40 50 50 40 33 25 130 50 3 24 24 24 5 153 211 85 110 51 119 92 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 70 43 62 25 70 50 100 50 70 50 100 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +vampire4 134 vampire1 vampire5 3 BloodLord vampire4 vampire Vampire steals life VA 1 1 2 3 8 8 1 25 55 83 vampire vampire 11 15 14 13 85 85 85 35 40 45 24 24 24 25 34 47 7 7 7 1 1 1 1 1 1 VampireFireball SC 5 VampireFirewall SC 5 VampireMeteor SC 5 VampireMissile SC 5 100 85 75 -50 -40 -25 60 50 45 50 50 45 33 25 140 50 3 25 25 25 5 152 210 85 113 51 119 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 75 50 68 25 75 50 100 50 75 50 100 75 Act 3 Cast C Act 3 Champ C Act 3 Unique C Act 3 (N) Cast C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) Cast C Act 3 (H) Champ C Act 3 (H) Unique C 0 +vampire5 135 vampire1 vampire6 4 Banished vampire5 vampire Vampire steals life VA 1 1 1 1 9 9 1 12 43 73 vampire vampire 11 15 14 13 85 85 85 40 70 80 28 28 28 25 37 51 1 1 1 1 1 1 1 1 1 VampireFireball SC 1 VampireFirewall SC 1 VampireMeteor SC 1 VampireMissile SC 1 100 85 75 -50 -40 -25 20 50 20 50 50 50 33 25 150 50 3 13 13 13 5 154 212 84 111 51 126 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 55 50 87 25 55 50 100 50 55 50 100 75 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) Cast A Act 1 (H) Champ A Act 1 (H) Unique A 0 +batdemon1 136 batdemon1 batdemon2 0 DesertWing batdemon1 batdemon BatDemon shocking hit BT 1 1 3 7 7 1 15 44 79 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 60 65 70 50 55 60 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 15 25 100 2 16 16 16 5 44 151 84 82 71 101 94 51 101 194 70 110 110 80 65 70 100 80 115 200 70 110 110 80 65 70 100 80 115 200 A2 ltng 65 70 100 65 5 180 65 5 240 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 1 1 0 +batdemon2 137 batdemon1 batdemon3 1 Fiend batdemon2 batdemon BatDemon shocking hit BT 1 2 3 8 8 1 19 50 79 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 65 70 75 50 56 62 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 15 25 110 2 19 19 19 5 46 151 84 82 62 93 93 62 93 167 70 110 110 80 65 70 100 80 115 200 70 110 110 80 65 70 100 80 115 200 A2 ltng 70 61 92 70 5 180 70 5 240 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 1 1 0 +batdemon3 138 batdemon1 batdemon4 2 Gloombat batdemon3 batdemon BatDemon shocking hit BT 1 2 3 9 9 1 22 51 81 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 70 75 80 50 57 64 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 15 25 100 2 22 22 22 5 44 151 85 82 65 101 94 79 122 156 70 110 110 80 65 70 100 80 115 200 70 110 110 80 65 70 100 80 115 200 A2 ltng 75 64 100 75 5 180 75 5 240 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 1 1 0 +batdemon4 139 batdemon1 batdemon5 3 BloodDiver batdemon4 batdemon BatDemon shocking hit BT 1 2 4 10 10 1 24 54 85 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 75 80 85 50 58 66 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 15 25 105 2 24 24 24 5 45 151 85 82 63 94 92 88 138 154 70 110 110 80 65 70 100 80 115 200 70 110 110 80 65 70 100 80 115 200 A2 ltng 80 62 93 80 5 180 80 5 240 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 1 1 0 +batdemon5 140 batdemon1 batdemon6 4 DarkFamiliar batdemon5 batdemon BatDemon shocking hit BT 1 3 4 12 12 1 27 57 84 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 80 85 90 50 59 68 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 15 25 120 2 27 27 27 5 43 151 84 89 65 101 93 106 165 146 70 110 110 80 65 70 100 80 115 200 70 110 110 80 65 70 100 80 115 200 A2 ltng 85 64 100 85 5 180 85 5 240 Act 3 H2H C Act 3 Champ C Act 3 Unique C Act 3 (N) H2H C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) H2H C Act 3 (H) Champ C Act 3 (H) Unique C 1 1 0 +fetish1 141 fetish1 fetish2 0 RatMan fetish1 fetish Fetish FE 1 fetish1 1 1 1 1 1 1 6 6 1 10 42 72 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 100 33 33 50 2 11 11 11 5 64 110 84 80 72 115 91 55 80 125 75 60 95 95 55 80 125 75 60 95 95 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +fetish2 142 fetish1 fetish3 1 Fetish fetish2 fetish Fetish FE 1 fetish2 1 1 1 2 1 2 7 7 1 21 49 79 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 33 100 33 50 2 21 21 21 5 64 107 85 79 65 101 94 55 80 125 75 60 95 95 55 80 125 75 60 95 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +fetish3 143 fetish1 fetish4 2 Flayer fetish3 fetish Fetish FE 1 fetish3 1 1 1 3 1 3 8 8 1 22 50 80 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 33 33 100 50 2 22 22 22 5 66 107 85 79 72 108 94 55 80 125 75 60 95 95 55 80 125 75 60 95 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +fetish4 144 fetish1 fetish5 3 SoulKiller fetish4 fetish Fetish FE 1 fetish4 1 1 2 3 2 3 9 9 1 23 51 81 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 33 110 33 50 2 23 23 23 5 65 107 85 79 67 107 92 55 80 125 75 60 95 95 55 80 125 75 60 95 95 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetish5 145 fetish1 fetish6 4 StygianDoll fetish5 fetish Fetish FE 1 fetish5 1 1 2 4 2 4 10 10 1 24 54 83 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 100 33 33 50 2 24 24 24 5 65 107 85 79 69 101 92 55 80 125 75 60 95 95 55 80 125 75 60 95 95 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cain1 146 cain1 0 DeckardCain cain1 human NpcOutOfTown DC 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +gheed 147 gheed 0 Gheed gheed human Npc GH 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +akara 148 akara 0 Akara akara human Npc PS 1 1 1 1 1 0 lightnpc lightnpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +chicken 149 chicken 0 dummy chicken Idle CK 1 3 3 2 2 0 chicken chicken 15 15 15 1 1 1 2 0 +kashya 150 kashya 0 Kashya kashya human Npc RC 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +rat 151 rat 0 dummy rat Idle RT 1 4 4 5 5 0 rat rat 15 15 15 1 1 1 1 1 2 0 +rogue1 152 rogue1 0 Dummy rogue1 human Idle RG 1 1 1 8 8 0 act1hire act1hire 10 15 15 15 rogue1 1 1 1 1 1 1 100 100 100 -50 -50 -50 2 75 75 75 5 142 284 84 180 210 150 180 210 150 0 +hellmeteor 153 hellmeteor 0 Dummy hellmeteor HellMeteor K9 1 1 1 0 0 0 0 33 66 15 15 15 50 60 70 50 50 50 10 10 10 1 HellMeteor A1 1 2 0 +charsi 154 charsi 0 Charsi charsi human Npc CI 1 1 1 4 4 0 charsi charsi 15 15 15 1 1 1 1 1 1 1 1 2 0 +warriv1 155 warriv1 0 Warriv warriv1 human Npc WA 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +andariel 156 andariel uberandariel 0 Andariel andariel demon Andariel AN 1 1 1 8 8 0 12 49 85 andariel andariel 14 15 11 9 30 35 35 10 8 6 30 32 34 50 55 60 1 1 1 1 AndrialSpray seq_andarielspray 1 AndyPoisonBolt A1 1 100 66 33 -25 -15 0 -50 50 50 80 -50 50 50 50 66 -50 66 66 66 0 1 0 20 40 5 2562 2562 84 916 76 238 153 2562 2562 110 1492 180 220 200 1471 1471 110 1492 200 240 470 A1 pois 100 33 33 30 100 60 33 33 100 33 33 225 Andariel Andariel Andariel Andarielq Andariel (N) Andariel (N) Andariel (N) Andarielq (N) Andariel (H) Andariel (H) Andariel (H) Andarielq (H) 6 1 0 +bird1 157 bird1 0 dummy bird1 Idle BS 1 1 1 7 7 1 15 15 15 1 1 1 1 1 2 0 +bird2 158 bird2 0 dummy bird2 Idle BL 1 1 1 4 4 1 15 15 15 1 1 1 1 1 2 0 +bat 159 bat 0 dummy bat Idle B9 1 1 3 7 7 1 bat bat 15 15 15 1 1 1 1 2 0 +cr_archer1 160 cr_archer1 cr_archer2 0 DarkRanger cr_archer1 corruptrogue CorruptArcher CR 1 1 1 2 4 4 1 4 37 68 cr_archer cr_archer 10 15 14 13 60 65 70 70 85 88 14 11 9 20 30 40 20 20 20 12 12 12 cr_arrow1 1 1 1 1 1 100 100 100 -50 -40 -33 15 25 100 25 25 2 13 13 13 5 91 128 84 91 60 90 256 55 95 90 100 60 90 150 55 95 90 100 60 90 150 Act 1 Miss A Act 1 Champ A Act 1 Unique A Act 1 (N) Miss A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) Miss A Act 1 (H) Champ A Act 1 (H) Unique A 0 +cr_archer2 161 cr_archer1 cr_archer3 1 VileArcher cr_archer2 corruptrogue CorruptArcher CR 1 1 1 3 5 6 1 5 38 69 cr_archer cr_archer 10 15 14 13 70 75 80 75 88 91 12 10 9 25 35 45 20 20 20 12 12 12 cr_arrow2 1 1 1 1 1 100 100 100 -50 -40 -33 15 110 25 25 25 2 15 15 15 5 93 131 84 91 60 90 255 55 95 90 100 60 90 150 55 95 90 100 60 90 150 A1 pois 10 20 20 100 20 25 25 100 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Miss B Act 1 (H) Champ B Act 1 (H) Unique B 0 +cr_archer3 162 cr_archer1 cr_archer4 2 DarkArcher cr_archer3 corruptrogue CorruptArcher CR 1 1 2 3 5 8 1 7 39 83 cr_archer cr_archer 10 15 14 13 80 85 90 80 91 94 10 9 8 30 40 50 20 20 20 12 12 12 cr_arrow3 1 1 1 1 1 100 100 100 -50 -40 -33 15 25 110 25 25 2 20 20 20 5 95 136 84 91 60 90 254 55 95 90 100 60 90 150 55 95 90 100 60 90 150 A1 cold 10 40 60 150 20 40 60 175 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Miss B Act 1 (H) Champ B Act 1 (H) Unique B 0 +cr_archer4 163 cr_archer1 cr_archer5 3 BlackArcher cr_archer4 corruptrogue CorruptArcher CR 1 1 2 4 6 9 1 10 41 72 cr_archer cr_archer 10 15 14 13 90 90 95 80 94 97 8 8 7 35 45 55 20 20 20 12 12 12 cr_arrow4 1 1 1 1 1 100 100 100 -50 -40 -33 15 25 115 25 25 2 28 28 28 5 96 141 84 91 60 90 253 55 95 90 100 60 90 150 55 95 90 100 60 90 150 A1 ltng 10 5 120 20 5 140 Act 1 Miss C Act 1 Champ C Act 1 Unique C Act 1 (N) Miss C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Miss C Act 1 (H) Champ C Act 1 (H) Unique C 0 +cr_archer5 164 cr_archer1 cr_archer6 4 FleshArcher cr_archer5 corruptrogue CorruptArcher CR 1 1 3 4 7 10 1 24 54 85 cr_archer cr_archer 10 15 14 13 99 99 99 85 97 99 6 6 6 40 50 60 20 20 20 12 12 12 cr_arrow5 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 15 25 25 130 25 2 45 45 45 5 97 137 85 91 60 90 252 55 95 90 100 60 90 150 55 95 90 100 60 90 150 A1 fire 10 50 70 20 60 80 Act 3 Miss B Act 3 Champ B Act 3 Unique B Act 3 (N) Miss B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Miss B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cr_lancer1 165 cr_lancer1 cr_lancer2 0 DarkSpearwoman cr_lancer1 corruptrogue CorruptLancer CR 1 1 2 4 4 1 2 36 67 cr_lancer cr_lancer 10 15 14 13 60 60 60 75 80 85 9 8 7 0 40 55 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 25 100 25 25 2 4 4 4 5 86 129 84 91 67 134 101 80 115 95 85 65 130 140 80 115 95 85 65 130 140 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +cr_lancer2 166 cr_lancer1 cr_lancer3 1 VileLancer cr_lancer2 corruptrogue CorruptLancer CR 1 1 3 5 6 1 5 38 68 cr_lancer cr_lancer 10 15 14 13 70 70 70 80 85 90 8 7 6 0 45 60 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 110 25 25 25 2 6 6 6 5 85 124 84 91 76 151 91 80 115 95 85 65 130 140 80 115 95 85 65 130 140 A1 pois 10 25 25 100 20 33 33 100 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +cr_lancer3 167 cr_lancer1 cr_lancer4 2 DarkLancer cr_lancer3 corruptrogue CorruptLancer CR 1 2 3 5 8 1 8 39 69 cr_lancer cr_lancer 10 15 14 13 80 80 80 85 90 95 7 6 5 0 50 65 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 25 110 25 25 2 9 9 9 5 89 134 84 91 67 151 95 80 115 95 85 65 130 140 80 115 95 85 65 130 140 A1 cold 10 60 80 175 20 60 80 175 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +cr_lancer4 168 cr_lancer1 cr_lancer5 3 BlackLancer cr_lancer4 corruptrogue CorruptLancer CR 1 2 4 6 10 1 9 40 71 cr_lancer cr_lancer 10 15 14 13 90 90 90 88 95 97 6 5 5 0 55 70 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 25 115 25 25 2 10 10 10 5 86 131 84 91 58 143 95 80 115 95 85 65 130 140 80 115 95 85 65 130 140 A1 ltng 10 5 140 20 5 160 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +cr_lancer5 169 cr_lancer1 cr_lancer6 4 FleshLancer cr_lancer5 corruptrogue CorruptLancer CR 1 3 4 7 12 1 24 53 84 cr_lancer cr_lancer 10 15 14 13 99 99 99 90 99 99 5 5 5 0 60 75 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 45 25 25 130 25 2 24 24 24 5 87 131 85 90 57 144 92 80 115 95 85 65 130 140 80 115 95 85 65 130 140 A1 fire 10 70 90 20 70 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +sk_archer1 170 sk_archer1 sk_archer2 0 SkeletonArcher sk_archer1 skeleton SkeletonBow SK 1 1 1 2 4 4 2 5 38 68 sk_archer sk_archer 10 15 14 13 75 80 85 15 14 13 50 50 50 5 5 5 6 6 6 skbowarrow1 1 1 1 1 1 -50 -40 -25 50 60 40 33 33 100 2 15 15 15 5 70 147 84 89 65 90 255 70 100 100 95 35 50 115 70 100 100 95 35 50 115 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Miss B Act 1 (H) Champ B Act 1 (H) Unique B 0 +sk_archer2 171 sk_archer1 sk_archer3 1 ReturnedArcher sk_archer2 skeleton SkeletonBow SK 1 1 1 3 4 4 2 8 39 69 sk_archer sk_archer 10 15 14 13 75 80 85 15 14 12 50 50 50 5 5 5 6 6 6 skbowarrow2 1 1 1 1 1 -50 -40 -25 50 60 40 33 33 105 2 23 23 23 5 78 156 84 90 65 90 253 70 100 100 95 35 50 115 70 100 100 95 35 50 115 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Miss B Act 1 (H) Champ B Act 1 (H) Unique B 0 +sk_archer3 172 sk_archer1 sk_archer4 2 BoneArcher sk_archer3 skeleton SkeletonBow SK 1 1 2 3 5 5 2 9 40 70 sk_archer sk_archer 10 15 14 13 80 85 90 15 13 12 50 50 50 5 5 5 6 6 6 skbowarrow3 1 1 1 1 1 -50 -40 -25 20 50 50 60 45 33 75 105 2 25 25 25 5 76 156 84 90 65 90 253 70 100 100 95 35 50 115 70 100 100 95 35 50 115 Act 1 Miss C Act 1 Champ C Act 1 Unique C Act 1 (N) Miss C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Miss C Act 1 (H) Champ C Act 1 (H) Unique C 0 +sk_archer4 173 sk_archer1 sk_archer5 3 BurningDeadArcher sk_archer4 skeleton SkeletonBow SK 1 1 2 4 5 5 2 13 43 74 sk_archer sk_archer 10 15 14 13 80 85 90 15 13 11 50 50 50 5 5 5 6 6 6 skbowarrow4 1 1 1 1 1 -50 -40 -25 30 50 50 60 45 75 33 110 2 35 35 35 5 76 151 84 89 45 70 252 70 100 100 95 35 50 115 70 100 100 95 35 50 115 A1 fire 100 25 55 100 25 55 100 25 55 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Miss A Act 2 (H) Champ A Act 2 (H) Unique A 0 +sk_archer5 174 sk_archer1 sk_archer6 4 HorrorArcher sk_archer5 skeleton SkeletonBow SK 1 1 2 4 5 5 2 18 47 78 sk_archer sk_archer 10 15 14 13 90 90 95 15 12 11 50 50 50 5 5 5 6 6 6 skbowarrow5 1 1 1 1 1 -50 -40 -25 20 40 50 50 70 60 50 75 75 110 2 45 45 45 5 74 151 84 90 45 70 252 70 100 100 95 35 50 115 70 100 100 95 35 50 115 A1 ltng 100 5 80 100 5 80 100 5 120 Act 2 Miss B Act 2 Champ B Act 2 Unique B Act 2 (N) Miss B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Miss B Act 2 (H) Champ B Act 2 (H) Unique B 0 +warriv2 175 warriv2 0 Warriv warriv2 human Npc WX 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +atma 176 atma 0 Atma atma human Npc AS 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +drognan 177 drognan 0 Drognan drognan human Npc DR 1 1 1 3 3 0 drognan drognan 15 15 15 1 1 1 1 1 1 1 1 2 0 +fara 178 fara 0 Fara fara human Npc OF 1 1 1 3 3 0 fara fara 15 15 15 1 1 1 1 1 1 1 1 2 0 +cow 179 cow 0 dummy cow Idle CW 1 1 1 2 2 0 cow cow 15 15 15 2 1 1 1 1 2 0 +maggotbaby1 180 maggotbaby1 maggotbaby2 0 SandMaggotYoung maggotbaby1 sandmaggot MaggotLarva SB 1 1 1 4 4 1 16 45 76 maggotbaby maggotbaby 9 15 14 13 75 78 80 20 17 14 60 60 60 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 100 2 17 17 17 5 21 65 84 55 28 46 94 20 45 50 30 25 45 70 20 45 50 30 25 45 70 A1 pois 5 15 15 50 5 15 15 50 0 +maggotbaby2 181 maggotbaby1 maggotbaby3 1 RockWormYoung maggotbaby2 sandmaggot MaggotLarva SB 1 1 1 4 4 1 17 45 84 maggotbaby maggotbaby 9 15 14 13 80 83 85 19 16 13 70 70 70 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 100 2 17 17 17 5 23 64 84 55 28 46 92 20 45 50 30 25 45 70 20 45 50 30 25 45 70 A1 pois 5 15 15 50 5 15 15 50 0 +maggotbaby3 182 maggotbaby1 maggotbaby4 2 DevourerYoung maggotbaby3 sandmaggot MaggotLarva SB 1 1 1 5 5 1 19 48 79 maggotbaby maggotbaby 9 15 14 13 85 88 90 18 15 12 80 80 80 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 100 2 19 19 19 5 21 66 84 54 24 47 93 20 45 50 30 25 45 70 20 45 50 30 25 45 70 A1 pois 5 15 15 50 5 15 15 50 0 +maggotbaby4 183 maggotbaby1 maggotbaby5 3 GiantLampreyYoung maggotbaby4 sandmaggot MaggotLarva SB 1 1 1 5 5 1 21 50 79 maggotbaby maggotbaby 9 15 14 13 88 91 93 17 14 11 85 85 85 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 100 2 21 21 21 5 21 64 85 54 29 43 94 20 45 50 30 25 45 70 20 45 50 30 25 45 70 A1 pois 5 15 15 50 5 15 15 50 0 +maggotbaby5 184 maggotbaby1 maggotbaby6 4 WorldKillerYoung maggotbaby5 sandmaggot MaggotLarva SB 1 1 1 6 6 1 24 57 85 maggotbaby maggotbaby 9 15 14 13 90 93 95 16 13 10 90 90 90 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 100 2 24 24 24 5 21 65 85 55 26 44 92 20 45 50 30 25 45 70 20 45 50 30 25 45 70 A1 pois 5 15 15 50 5 15 15 50 0 +camel 185 camel 0 dummy camel Idle CM 1 1 1 5 5 0 15 15 15 2 1 1 1 1 1 2 0 +blunderbore1 186 blunderbore1 blunderbore2 0 Blunderbore blunderbore1 blunderbore blunderbore PinHead stun attack PN 1 1 2 3 3 1 18 47 78 pinhead pinhead 10 15 14 13 75 80 85 15 12 10 60 70 70 12 12 12 40 50 55 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 55 115 50 50 4 24 24 24 5 160 200 84 114 76 134 125 117 151 92 180 220 80 130 90 140 110 120 155 100 180 220 80 130 90 140 110 120 155 100 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +blunderbore2 187 blunderbore1 blunderbore3 1 Gorbelly blunderbore2 blunderbore blunderbore PinHead stun attack PN 1 1 3 4 4 1 20 49 80 pinhead pinhead 10 15 14 13 80 85 90 12 9 7 80 80 80 9 9 9 50 60 65 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 55 50 50 140 4 27 27 27 5 160 200 85 114 77 139 125 124 154 93 180 220 80 130 90 140 110 120 155 100 180 220 80 130 90 140 110 120 155 100 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +blunderbore3 188 blunderbore1 blunderbore4 2 Mauler blunderbore3 blunderbore blunderbore PinHead stun attack PN 1 2 3 6 6 1 25 55 83 pinhead pinhead 10 15 14 13 85 90 95 9 7 7 90 90 90 7 7 7 60 65 65 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 55 50 100 50 4 33 33 33 5 160 200 85 118 76 138 126 119 151 93 180 220 80 130 90 140 110 120 155 100 180 220 80 130 90 140 110 120 155 100 Act 3 H2H C Act 2 Champ C Act 2 Unique C Act 3 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 3 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +blunderbore4 189 blunderbore1 blunderbore5 3 Urdar blunderbore4 blunderbore blunderbore PinHead stun attack PN 1 2 4 8 8 1 32 57 85 pinhead pinhead 10 15 14 13 90 95 97 7 7 7 95 95 95 5 5 5 65 65 70 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 25 25 50 25 50 50 50 50 55 75 75 75 4 42 42 42 5 160 200 84 142 76 136 125 121 151 93 180 220 80 130 90 140 110 120 155 100 180 220 80 130 90 140 110 120 155 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +maggotegg1 190 maggotegg1 maggotegg2 0 SandMaggotEgg maggotegg1 MaggotEgg SE 1 maggotbaby1 0 0 S1 1 1 1 1 1 16 45 76 maggotegg maggotegg 8 15 15 15 250 200 200 18 18 18 1 1 MaggotEgg seq_maggotegg 2 100 66 33 -50 -50 -50 2 77 98 84 50 60 80 25 25 60 80 25 25 0 +maggotegg2 191 maggotegg1 maggotegg3 1 RockWormEgg maggotegg2 MaggotEgg SE 1 maggotbaby2 0 0 S1 1 1 1 1 1 17 45 84 maggotegg maggotegg 8 15 15 15 240 200 200 22 22 22 1 1 MaggotEgg seq_maggotegg 3 100 66 33 -50 -50 -50 2 78 95 84 50 60 80 25 25 60 80 25 25 0 +maggotegg3 192 maggotegg1 maggotegg4 2 DevourerEgg maggotegg3 MaggotEgg SE 1 maggotbaby3 0 0 S1 1 1 1 1 1 19 48 79 maggotegg maggotegg 8 15 15 15 210 200 200 26 26 26 1 1 MaggotEgg seq_maggotegg 4 100 66 33 -50 -50 -50 2 78 96 84 50 60 80 25 25 60 80 25 25 0 +maggotegg4 193 maggotegg1 maggotegg5 3 GiantLampreyEgg maggotegg4 MaggotEgg SE 1 maggotbaby4 0 0 S1 1 1 1 1 1 21 50 79 maggotegg maggotegg 8 15 15 15 180 200 200 30 30 30 1 1 MaggotEgg seq_maggotegg 4 100 66 33 -50 -50 -50 2 78 96 85 50 60 80 25 25 60 80 25 25 0 +maggotegg5 194 maggotegg1 maggotegg6 4 WorldKillerEgg maggotegg5 MaggotEgg SE 1 maggotbaby5 0 0 S1 1 1 1 1 1 27 57 85 maggotegg maggotegg 8 15 15 15 150 200 200 34 34 34 1 1 MaggotEgg seq_maggotegg 5 100 66 33 -50 -50 -50 2 77 95 84 54 60 80 25 25 60 80 25 25 0 +act2male 195 act2male 0 dummy act2male human Towner 2M 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 2 0 +act2female 196 act2female 0 Dummy act2female human Towner 2F 1 1 1 2 2 0 lightnpc lightnpc 15 15 15 1 1 1 1 1 2 0 +act2child 197 act2child 0 dummy act2child human Towner 2C 1 1 1 2 2 0 lightnpc lightnpc 15 15 15 1 1 1 1 1 2 0 +greiz 198 greiz 0 Greiz greiz human Npc GR 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +elzix 199 elzix 0 Elzix elzix human Npc EL 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +geglash 200 geglash 0 Geglash geglash human Npc GE 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +jerhyn 201 jerhyn 0 Jerhyn jerhyn human Npc JE 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +lysander 202 lysander 0 Lysander lysander human Npc LY 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +act2guard1 203 act2guard1 0 Dummy act2guard1 human Towner GU 1 1 1 4 7 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 2 0 +act2vendor1 204 act2vendor1 0 dummy act2vendor1 human Vendor M1 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +act2vendor2 205 act2vendor2 0 dummy act2vendor2 human Vendor M2 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +crownest1 206 crownest1 crownest2 0 FoulCrowNest crownest1 FoulCrowNest BN 1 1 foulcrow1 0 3 NU 1 1 0 0 2 3 37 68 crownest crownest 10 15 15 15 100 80 70 6 12 15 1 1 1 Nest seq_nestlay 1 100 75 50 -50 -40 -33 2 456 545 17 177 450 575 30 300 450 575 30 300 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) Cast A Act 1 (H) Champ A Act 1 (H) Unique A 0 +crownest2 207 crownest1 crownest3 1 BloodHawkNest crownest2 FoulCrowNest BN 1 1 foulcrow2 0 3 NU 1 1 0 0 2 8 38 69 crownest crownest 10 15 15 15 100 80 70 8 15 18 1 1 1 Nest seq_nestlay 1 100 75 50 -50 -40 -33 2 489 584 19 178 450 575 30 300 450 575 30 300 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +crownest3 208 crownest1 crownest4 2 BlackVultureNest crownest3 FoulCrowNest BN 1 1 foulcrow3 0 3 NU 1 1 0 0 2 15 45 76 crownest crownest 10 15 15 15 100 80 70 10 17 21 1 1 1 Nest seq_nestlay 1 100 75 50 -50 -40 -33 2 479 576 19 177 450 575 30 300 450 575 30 300 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Cast A Act 2 (H) Champ A Act 2 (H) Unique A 0 +crownest4 209 crownest1 3 CloudStalkerNest crownest4 FoulCrowNest BN 1 1 foulcrow4 0 3 NU 1 1 0 0 2 22 48 79 crownest crownest 10 15 15 15 100 80 70 15 19 24 1 1 1 Nest seq_nestlay 1 100 75 50 -50 -40 -33 2 477 572 19 177 450 575 30 300 450 575 30 300 Act 3 Cast A Act 3 Champ A Act 3 Unique A Act 3 (N) Cast A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) Cast A Act 3 (H) Champ A Act 3 (H) Unique A 0 +meshif1 210 meshif1 0 Meshif meshif1 human Npc MS 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +duriel 211 duriel uberduriel 0 Duriel duriel demon Duriel DU 1 1 1 10 15 0 22 55 88 duriel duriel 15 15 15 5 5 6 33 33 33 50 50 50 1 1 1 1 MonCharge seq_durielcharge 5 MonJab seq_durieljab 15 MonSmite seq_durielsmite 7 MonHolyFreeze NU 1 100 100 100 -20 -20 -20 20 20 50 20 50 50 75 50 50 33 75 75 95 75 0 1 0 25 50 5 4757 4757 85 1655 140 180 201 140 160 252 1 2 200 4757 4757 120 1655 140 190 110 115 165 150 40 50 135 1295 1295 120 1655 140 190 110 115 165 150 40 50 135 A2 stun 100 15 100 20 100 30 Duriel Duriel Duriel Durielq Duriel (N) Duriel (N) Duriel (N) Durielq (N) Duriel (H) Duriel (H) Duriel (H) Durielq (H) 14 5 0 +bonefetish1 212 bonefetish1 bonefetish2 0 Undead RatMan bonefetish1 stygian undeadfetish Fetish FK 1 1 1 6 6 1 10 41 73 bonefetish bonefetish 10 15 14 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 25 33 75 100 2 11 11 11 5 64 110 84 80 72 115 91 65 105 135 125 65 105 90 65 105 135 125 65 105 90 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +bonefetish2 213 bonefetish1 bonefetish3 1 Undead Fetish bonefetish2 stygian undeadfetish Fetish FK 1 1 2 7 7 1 21 50 80 bonefetish bonefetish 10 15 14 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 25 33 75 105 2 21 21 21 5 64 107 85 79 65 101 94 65 105 135 125 65 105 90 65 105 135 125 65 105 90 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +bonefetish3 214 bonefetish1 bonefetish4 2 Undead Flayer bonefetish3 stygian undeadfetish Fetish FK 1 1 3 8 8 1 22 51 81 bonefetish bonefetish 10 15 14 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 25 33 75 110 2 22 22 22 5 66 107 85 79 72 108 94 65 105 135 125 65 105 90 65 105 135 125 65 105 90 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +bonefetish4 215 bonefetish1 bonefetish5 3 Undead SoulKiller bonefetish4 stygian undeadfetish Fetish FK 1 2 3 9 9 1 23 52 82 bonefetish bonefetish 10 15 14 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 25 33 75 115 2 23 23 23 5 65 107 85 79 67 107 92 65 105 135 125 65 105 90 65 105 135 125 65 105 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +bonefetish5 216 bonefetish1 bonefetish6 4 Undead StygianDoll bonefetish5 stygian undeadfetish Fetish FK 1 2 4 10 10 1 24 53 83 bonefetish bonefetish 10 15 14 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 25 33 75 120 2 24 24 24 5 65 107 85 79 69 101 92 65 105 135 125 65 105 90 65 105 135 125 65 105 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +darkguard1 217 darkguard1 darkguard2 0 unused darkguard1 Idle xx 1 2 4 4 0 1 2 0 +darkguard2 218 darkguard1 darkguard3 1 unused darkguard2 Idle xx 1 3 4 4 0 1 2 0 +darkguard3 219 darkguard1 darkguard4 2 unused darkguard3 Idle xx 2 3 5 5 0 1 2 0 +darkguard4 220 darkguard1 darkguard5 3 unused darkguard4 Idle xx 2 4 5 5 0 1 2 0 +darkguard5 221 darkguard1 4 unused darkguard5 Idle xx 3 4 5 5 0 1 2 0 +bloodmage1 222 bloodmage1 bloodmage2 0 unused bloodmage1 Idle xx 1 2 3 3 0 1 2 0 +bloodmage2 223 bloodmage1 bloodmage3 1 unused bloodmage2 Idle xx 1 3 3 3 0 1 2 0 +bloodmage3 224 bloodmage1 bloodmage4 2 unused bloodmage3 Idle xx 2 3 4 4 0 1 2 0 +bloodmage4 225 bloodmage1 bloodmage5 3 unused bloodmage4 Idle xx 2 4 4 4 0 1 2 0 +bloodmage5 226 bloodmage1 4 unused bloodmage5 Idle xx 3 4 4 4 0 1 2 0 +maggot 227 maggot 0 Maggot maggot Idle MA 1 1 1 1 1 0 bug bug 15 15 15 1 1 1 1 2 0 +sarcophagus 228 sarcophagus 0 MummyGenerator sarcophagus construct Sarcophagus MG 1 mummy1 0 2 NU 1 1 0 0 1 15 49 79 sarcophagus sarcophagus 10 15 15 15 125 110 90 16 20 24 1 1 1 Nest seq_mummyspawn 1 0 0 0 50 50 50 50 25 25 150 50 2 957 957 56 327 950 950 5 340 950 950 5 340 0 +radament 229 radament 0 Radament radament demon GreaterMummy RD 1 skeleton4 1 1 2 2 0 16 49 83 radament radament 14 15 14 13 85 85 85 45 50 55 55 55 55 85 90 95 24 27 31 mummy4 1 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 1 100 75 50 -50 -40 -33 40 50 60 60 50 60 80 0 17 17 17 5 498 498 63 218 73 155 94 73 155 125 500 500 120 315 100 150 130 70 155 160 500 500 120 315 100 150 130 70 155 160 A1 pois 25 181 272 1000 25 180 270 1000 25 180 270 1000 Radament Radament Radament Radament (N) Radament (N) Radament (N) Radament (H) Radament (H) Radament (H) 0 +firebeast 230 firebeast 0 unused firebeast ElementalBeast FM 3 6 4 4 1 15 15 15 20 20 20 16 20 24 20 20 20 1 1 70 70 2 1 1 0 +iceglobe 231 iceglobe 0 unused iceglobe ElementalBeast IM 3 6 4 4 1 15 15 15 20 20 20 16 20 24 20 20 20 1 1 1 70 70 2 1 1 0 +lightningbeast 232 lightningbeast 0 unused lightningbeast ElementalBeast LM 3 6 4 4 1 15 15 15 20 20 20 16 20 24 20 20 20 1 1 1 70 70 2 0 +poisonorb 233 poisonorb 0 unused poisonorb ElementalBeast PM 3 6 4 4 1 15 15 15 20 20 20 16 20 24 20 20 20 1 1 1 70 70 2 0 +flyingscimitar 234 flyingscimitar 0 FlyingScimitar flyingscimitar construct FlyingScimitar ST 1 3 6 4 4 1 12 45 78 flyingscimitar flyingscimitar 10 15 13 10 90 90 90 90 95 99 8 8 8 40 50 60 1 1 1 1 1 1 MonCharge seq_pinheadsmite 1 -50 -25 70 100 25 100 100 2 13 13 13 5 97 131 84 83 38 113 93 100 135 150 140 75 120 150 100 135 150 140 75 120 150 Flying Scimitar Flying Scimitar Flying Scimitar Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (H) Flying Scimitar (H) Flying Scimitar (H) 0 +zealot1 235 zealot1 zealot2 0 Zakarumite zealot1 zakarum ZakarumZealot ZZ 1 1 2 6 8 1 20 50 80 zealot zealot 10 15 14 13 65 75 85 50 50 50 35 35 35 50 60 70 1 1 1 1 1 100 100 100 -50 -40 -33 10 100 33 33 20 2 20 20 20 5 129 172 85 100 62 108 93 62 108 93 120 150 80 80 60 100 100 60 105 115 120 150 80 80 60 100 100 60 105 115 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +zealot2 236 zealot1 zealot3 1 Faithful zealot2 zakarum ZakarumZealot ZZ 1 1 3 6 9 1 22 51 81 zealot zealot 10 15 14 13 76 85 90 60 60 60 40 40 40 60 70 80 1 1 1 1 1 100 100 100 -50 -40 -33 10 25 33 140 20 2 22 22 22 5 131 172 85 100 65 108 94 65 108 94 120 150 80 80 60 100 100 60 105 115 120 150 80 80 60 100 100 60 105 115 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +zealot3 237 zealot1 zealot4 2 Zealot zealot3 zakarum ZakarumZealot ZZ 1 2 3 6 11 1 24 53 82 zealot zealot 10 15 14 13 85 90 95 65 65 65 50 50 50 70 80 90 1 1 1 1 1 100 100 100 -50 -40 -33 10 25 100 33 20 2 24 24 24 5 131 173 85 100 57 101 92 57 101 92 120 150 80 80 60 100 100 60 105 115 120 150 80 80 60 100 100 60 105 115 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cantor1 238 cantor1 cantor2 0 Sexton cantor1 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealot1 2 4 1 1 6 6 1 22 50 80 cantor cantor 10 15 14 13 25 25 25 5 10 15 50 60 70 25 40 60 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 1 ZakarumLightning S1 1 MonTeleport S1 1 MonBlizzard S1 1 100 100 100 -50 -40 -33 50 10 25 33 140 20 2 22 22 22 5 131 172 85 105 72 158 94 90 130 75 130 40 85 90 90 130 75 130 40 85 90 A1 ltng 45 28 57 45 30 60 45 30 60 Act 3 Cast A Act 3 Champ A Act 3 Unique A Act 3 (N) Cast A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) Cast A Act 3 (H) Champ A Act 3 (H) Unique A 0 +cantor2 239 cantor1 cantor3 1 Cantor cantor2 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealot2 2 4 1 1 6 6 1 23 51 81 cantor cantor 10 15 14 13 30 30 30 6 12 18 55 65 75 30 45 65 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 2 ZakarumLightning S1 1 MonTeleport S1 1 MonBlizzard S1 1 100 100 100 -50 -40 -33 50 50 10 25 100 75 20 2 23 23 23 5 130 171 85 106 67 154 92 90 130 75 130 40 85 90 90 130 75 130 40 85 90 A1 cold 55 33 60 25 55 30 60 50 55 30 60 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cantor3 240 cantor1 cantor4 2 Heirophant cantor3 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealot3 2 4 1 2 6 6 1 24 53 82 cantor cantor 10 15 14 13 35 35 35 8 14 22 60 70 80 35 50 70 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 3 ZakarumLightning S1 1 MonTeleport S1 1 MonBlizzard S1 1 100 100 100 -50 -40 -33 50 75 10 25 33 160 20 2 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 90 130 75 130 40 85 90 A1 cold 65 31 62 25 65 30 60 50 65 30 60 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cantor4 241 cantor1 cantor5 3 Heirophant cantor4 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealot3 2 4 1 2 6 6 1 24 57 84 cantor cantor 10 15 14 13 40 40 40 10 16 25 65 75 85 40 55 75 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 3 ZakarumLightning S1 1 MonTeleport S1 1 MonBlizzard S1 1 100 100 100 -50 -40 -33 10 33 75 75 20 2 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 90 130 75 130 40 85 90 A1 cold 75 31 68 25 75 30 60 50 75 30 60 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +mephisto 242 mephisto ubermephisto 0 Mephisto mephisto mephisto demon Mephisto MP 1 1 1 8 8 0 26 59 87 mephisto mephisto 14 15 10 6 40 46 15 20 25 25 33 33 25 33 33 1 1 1 1 1 1 PrimeLightning A2 6 PrimeBolt A2 6 PrimePoisonNova A2 7 MephistoMissile A2 5 MephFrostNova A2 1 MonBlizzard A2 5 100 -25 -15 -10 33 33 25 50 50 50 25 50 20 50 75 75 75 75 0 1 20 40 50 5 4556 4556 124 2131 295 442 251 5695 5695 160 2131 160 220 200 1471 1471 160 2131 160 220 200 Mephisto Mephisto Mephisto Mephistoq Mephisto (N) Mephisto (N) Mephisto (N) Mephistoq (N) Mephisto (H) Mephisto (H) Mephisto (H) Mephistoq (H) 22 0 0 +diablo 243 diablo diabloclone 0 Diablo diablo demon Diablo DI 1 1 1 6 6 0 40 62 94 diablo diablo 14 15 13 12 1 1 1 1 1 DiabLight SC 3 DiabCold S2 4 DiabFire S1 5 DiabWall S3 3 DiabRun seq_diablorun 5 PrimeFirewall S3 8 DiabPrison S3 1 100 50 20 -25 -15 -10 33 33 33 50 50 50 50 50 45 50 50 50 50 0 1 25 40 50 5 5784 5784 87 3462 77 197 313 113 257 251 6427 6427 140 3462 180 220 215 190 250 200 2500 2500 140 3462 180 220 215 190 250 200 Diablo Diablo Diablo Diabloq Diablo (N) Diablo (N) Diablo (N) Diabloq (N) Diablo (H) Diablo (H) Diablo (H) Diabloq (H) 26 0 1 0 +cain2 244 cain2 0 DeckardCain cain2 human Npc DC 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +cain3 245 cain3 0 DeckardCain cain3 human Npc DC 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +cain4 246 cain4 0 DeckardCain cain4 human Npc DC 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +frogdemon1 247 frogdemon1 frogdemon2 0 Swamp Dweller frogdemon1 frogdemon FrogDemon FD 1 1 1 2 9 9 1 21 49 79 frogdemon frogdemon 10 15 14 13 65 70 85 20 25 30 50 55 75 50 55 65 20 35 50 12 12 12 15 13 10 9 9 9 frogfire 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 15 100 25 50 2 21 21 21 5 130 171 85 110 65 151 94 110 140 95 90 65 95 100 110 140 95 90 65 95 100 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 1 1 0 +frogdemon2 248 frogdemon1 frogdemon3 1 Bog Creature frogdemon2 frogdemon FrogDemon FD 1 1 1 3 10 10 1 22 50 80 frogdemon frogdemon 10 15 14 13 70 75 90 20 25 30 50 65 80 50 60 70 25 40 55 12 12 12 14 12 9 9 9 9 frogfire 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 15 120 50 2 22 22 22 5 131 172 85 110 72 158 94 110 140 95 90 65 95 100 110 140 95 90 65 95 100 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 1 1 0 +frogdemon3 249 frogdemon1 2 Slime Prince frogdemon3 frogdemon FrogDemon FD 1 1 2 3 11 11 1 24 51 81 frogdemon frogdemon 10 15 14 13 75 80 95 20 25 30 50 70 85 50 65 75 30 45 60 12 12 12 13 11 8 9 9 9 frogpois 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 15 25 110 2 24 24 24 5 131 173 85 110 69 151 92 110 140 95 90 65 95 100 110 140 95 90 65 95 100 A1 pois 10 100 100 600 10 100 100 600 10 100 100 600 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 1 1 0 +summoner 250 summoner 0 Summoner summoner human Summoner SU 1 1 1 5 5 0 18 55 80 summoner summoner 14 15 13 10 85 93 98 5 5 5 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 MonGlacialSpike SC 6 MonFrostNova SC 5 MonFireBall SC 5 VampireFirewall SC 7 MonWeaken SC 4 100 75 50 -50 -40 -33 50 50 50 50 50 50 75 75 75 0 18 18 18 5 1032 1376 153 123 880 1120 85 293 880 1120 85 293 Summoner Summoner Summoner Summoner (N) Summoner (N) Summoner (N) Summoner (H) Summoner (H) Summoner (H) 0 +tyrael1 251 tyrael1 0 tyrael tyrael1 NpcStationary TX 1 1 1 0 0 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +asheara 252 asheara 0 asheara asheara human Npc AH 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +hratli 253 hratli 0 hratli hratli human Npc HR 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +alkor 254 alkor 0 alkor alkor human Npc AL 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +ormus 255 ormus 0 ormus ormus human Npc OR 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +izual 256 izual uberizual 0 izual izual demon Izual 22 1 1 1 10 16 0 29 60 86 izual izual 14 15 12 8 45 50 50 50 50 50 66 66 66 0 75 100 20 5 0 3 4 4 1 1 1 1 MonFrostNova SC 8 100 75 50 -50 -33 -25 30 30 30 30 75 30 30 30 30 30 75 30 30 30 30 30 75 30 0 50 50 50 5 6636 6636 84 3695 132 237 251 3111 3111 120 1987 120 160 200 911 911 120 1987 120 160 200 A1 cold 100 42 84 50 100 50 80 75 100 50 80 100 Izual Izual Izual Izual (N) Izual (N) Izual (N) Izual (H) Izual (H) Izual (H) 0 +halbu 257 halbu 0 halbu halbu human Npc 20 1 1 1 2 2 0 halbu halbu 15 15 15 1 1 1 1 1 1 1 2 0 +tentacle1 258 tentacle1 tentacle2 0 WaterWatcherLimb tentacle1 tentacle Tentacle TN 1 1 1 0 0 0 18 48 75 tentacle tentacle 8 15 15 15 70 75 80 5 8 10 16 16 16 12 12 12 20 15 15 12 12 12 1 Submerge seq_tentaclesubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 15 50 100 2 18 18 18 5 129 172 84 107 76 151 92 70 100 100 75 70 120 90 70 100 100 75 70 120 90 0 +tentacle2 259 tentacle1 tentacle3 1 RiverStalkerLimb tentacle2 tentacle Tentacle TN 1 1 1 0 0 0 20 50 78 tentacle tentacle 8 15 15 15 80 85 90 10 10 15 14 14 14 14 14 14 16 15 15 12 12 12 1 Submerge seq_tentaclesubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 15 50 105 2 20 20 20 5 129 172 85 107 77 154 93 70 100 100 75 70 120 90 70 100 100 75 70 120 90 0 +tentacle3 260 tentacle1 2 StygianWatcherLimb tentacle3 tentacle Tentacle TN 1 1 1 0 0 0 22 53 80 tentacle tentacle 8 15 15 15 90 95 95 15 15 17 12 12 12 16 16 16 12 12 12 12 12 12 1 Submerge seq_tentaclesubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 15 50 110 2 22 22 22 5 131 172 85 107 79 158 94 70 100 100 75 70 120 90 70 100 100 75 70 120 90 0 +tentaclehead1 261 tentaclehead1 tentaclehead2 0 WaterWatcherHead tentaclehead1 tentacle TentacleHead TE 1 tentacle1 1 4 6 1 1 0 0 0 18 48 75 tentaclehead tentaclehead 8 15 15 15 70 75 80 5 8 10 16 16 16 12 12 12 20 15 15 12 14 14 tentaclegoo 1 1 Submerge seq_tentheadsubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 15 50 100 2 24 24 24 5 129 172 84 86 90 120 100 130 90 120 100 130 0 +tentaclehead2 262 tentaclehead1 tentaclehead3 1 RiverStalkerHead tentaclehead2 tentacle TentacleHead TE 1 tentacle2 1 4 6 1 1 0 0 0 20 50 78 tentaclehead tentaclehead 8 15 15 15 80 85 90 10 10 15 14 14 14 14 14 14 16 15 15 12 14 14 tentaclegoo 1 1 Submerge seq_tentheadsubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 15 50 105 2 27 27 27 5 129 172 85 87 90 120 100 130 90 120 100 130 0 +tentaclehead3 263 tentaclehead1 2 StygianWatcherHead tentaclehead3 tentacle TentacleHead TE 1 tentacle3 1 4 6 1 1 0 0 0 22 53 80 tentaclehead tentaclehead 8 15 15 15 90 90 95 15 15 17 12 12 12 16 16 16 12 12 12 12 14 14 tentaclegoo 1 1 Submerge seq_tentheadsubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 15 50 110 2 29 29 29 5 131 172 85 86 90 120 100 130 90 120 100 130 0 +meshif2 264 meshif2 0 meshif meshif2 human Npc M3 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +cain5 265 cain5 0 DeckardCain cain5 human Npc 1D 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +navi 266 navi 0 navi navi human Navi RG 1 1 1 8 8 0 1 34 67 act1hire act1hire 15 15 15 rogue1 1 1 1 1 1 1 1 -50 -50 -50 0 9981 9981 217 0 101 4281 4281 150 0 0 100 1075 1075 150 0 0 100 0 +bloodraven 267 bloodraven 0 Bloodraven bloodraven bloodraven corruptrogue BloodRaven CR 1 bloodravenzombie 0 0 S1 bloodravenzombie sk_archer1 12 24 1 1 6 8 0 10 43 88 bloodraven bloodraven 13 15 13 10 raven1 bloodravenimmolationarrow 1 1 1 1 Nest seq_bloodravencast 1 BloodRavenImmo seq_bloodravencast 1 100 85 75 -50 -40 -33 50 50 50 50 50 25 50 50 50 50 50 50 50 50 50 50 50 0 28 28 28 5 323 323 64 151 60 95 253 1287 1287 150 977 60 100 200 1772 1772 150 977 60 100 200 Blood Raven Blood Raven Blood Raven Blood Raven (N) Blood Raven (N) Blood Raven (N) Blood Raven (H) Blood Raven (H) Blood Raven (H) 0 +bug 268 bug 0 Dummy bug Idle BG 1 3 3 2 2 1 15 15 15 1 1 1 1 1 1 2 0 +scorpion 269 scorpion 0 Dummy scorpion Idle DS 1 4 4 5 5 1 bug bug 15 15 15 1 1 1 1 1 1 2 0 +rogue2 270 rogue2 0 RogueScout rogue2 human GoodNpcRanged RG 1 1 1 8 8 0 5 38 71 act1hire act1hire 10 15 15 15 rogue1 1 1 1 1 1 1 100 100 100 -50 -50 -50 0 15 15 15 5 93 231 84 0 255 180 210 150 0 0 150 180 210 150 0 0 150 0 +roguehire 271 roguehire 0 Dummy roguehire human Hireable RG 1 1 1 9 15 0 1 34 67 act1hire act1hire 10 1 1 1 1 1 1 1 1 1 RogueMissile A1 1 RoguePierce A1 1 100 100 100 -50 -50 -50 4 0 +rogue3 272 rogue3 0 Dummy rogue3 human TownRogue RG 1 1 1 8 8 0 5 38 71 act1hire act1hire 10 15 15 15 rogue1 1 1 1 1 1 100 100 100 -50 -50 -50 2 75 75 75 5 189 331 84 0 93 180 210 150 0 0 150 180 210 150 0 0 150 0 +gargoyletrap 273 gargoyletrap 0 GargoyleTrap gargoyletrap construct GargoyleTrap GT 1 1 1 0 0 0 15 40 79 gargoyletrap gargoyletrap 9 15 15 15 24 26 28 20 50 80 12 10 8 15 7 0 1 1 1 GargoyleTrap seq_gargoyletrap 1 -50 0 0 70 100 1000 0 16 16 16 5 132 172 84 106 140 190 35 250 140 190 35 250 0 +skmage_pois1 274 skmage_pois1 skmage_pois2 1 ReturnedMage skmage_pois1 skeleton SkeletonMage SK 1 1 1 2 4 4 2 8 39 71 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 60 33 15 75 2 9 9 9 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 pois 100 33 33 100 100 33 33 100 100 33 33 100 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +skmage_pois2 275 skmage_pois1 skmage_pois3 2 BoneMage skmage_pois2 skeleton SkeletonMage SK 1 1 1 3 4 4 2 10 41 75 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 60 33 15 75 2 11 11 11 5 55 82 84 56 55 80 90 110 55 80 90 110 A1 pois 100 33 33 100 100 33 33 100 100 33 33 100 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 0 +skmage_pois3 276 skmage_pois1 skmage_pois4 3 BurningDeadMage skmage_pois3 skeleton SkeletonMage SK 1 1 2 3 5 5 2 14 44 79 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 60 33 15 75 2 15 15 15 5 57 81 84 56 55 80 90 110 55 80 90 110 A1 pois 100 33 33 100 100 33 33 100 100 33 33 100 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Cast A Act 2 (H) Champ A Act 2 (H) Unique A 0 +skmage_pois4 277 skmage_pois1 skmage_pois5 4 HorrorMage skmage_pois4 skeleton SkeletonMage SK 1 1 2 4 5 5 2 17 47 78 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 60 33 15 75 2 17 17 17 5 56 81 84 55 55 80 90 110 55 80 90 110 A1 pois 100 33 33 100 100 33 33 100 100 33 33 100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +fetishshaman1 278 fetishshaman1 fetishshaman2 0 RatManShaman fetishshaman1 fetish FetishShaman raises Ratmen FW 1 fetish1 fetishblow1 1 1 2 7 1 1 6 6 1 11 39 72 fetishshaman fetishshaman 12 15 14 13 40 45 45 0 1 2 15 16 18 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 7 FetishAura A1 1 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 25 25 105 25 50 2 12 12 12 5 67 109 84 77 65 105 100 260 65 105 100 260 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 1 0 +fetishshaman2 279 fetishshaman1 fetishshaman3 1 FetishShaman fetishshaman2 fetish FetishShaman raises Fetishes FW 1 fetish2 fetishblow2 1 1 2 7 1 1 7 7 1 22 49 80 fetishshaman fetishshaman 12 15 14 13 40 45 45 0 1 2 15 16 19 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 8 FetishAura A1 2 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 25 25 110 25 50 2 22 22 22 5 66 107 85 77 65 105 100 260 65 105 100 260 Act 3 Cast A Act 3 Champ A Act 3 Unique A Act 3 (N) Cast A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) Cast A Act 3 (H) Champ A Act 3 (H) Unique A 1 0 +fetishshaman3 280 fetishshaman1 fetishshaman4 2 FlayerShaman fetishshaman3 fetish FetishShaman raises Flayers FW 1 fetish3 fetishblow3 1 1 2 7 1 1 8 8 1 23 50 81 fetishshaman fetishshaman 12 15 14 13 40 45 45 0 2 2 15 17 20 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 9 FetishAura A1 3 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 25 25 115 25 50 2 23 23 23 5 65 107 85 76 65 105 100 260 65 105 100 260 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 1 0 +fetishshaman4 281 fetishshaman1 fetishshaman5 3 SoulKillerShaman fetishshaman4 fetish FetishShaman raises Soul Killers FW 1 fetish4 fetishblow4 1 1 2 7 1 1 9 9 1 24 51 82 fetishshaman fetishshaman 12 15 14 13 40 45 45 0 2 3 15 17 21 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 10 FetishAura A1 4 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 25 25 120 25 50 2 24 24 24 5 65 107 85 77 65 105 100 260 65 105 100 260 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 1 0 +fetishshaman5 282 fetishshaman1 fetishshaman6 4 StygianDollShaman fetishshaman5 fetish FetishShaman raises Stygian Dolls FW 1 fetish5 fetishblow5 1 1 2 7 1 1 10 10 1 24 53 84 fetishshaman fetishshaman 12 15 14 13 40 45 45 0 2 3 15 18 22 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 11 FetishAura A1 5 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 25 25 125 25 50 2 24 24 24 5 65 107 85 77 65 105 100 260 65 105 100 260 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 1 0 +larva 283 larva 0 larva larva Idle LV 1 4 4 1 1 0 larva larva 15 15 15 1 1 1 1 2 0 +maggotqueen1 284 maggotqueen1 maggotqueen2 0 SandMaggotQueen maggotqueen1 sandmaggot SandMaggotQueen MQ 1 sandmaggot1 8 0 S1 1 1 4 4 1 11 46 81 maggotqueen maggotqueen 10 15 15 15 7 8 9 12 12 12 goospit1 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 QueenDeath seq_queendeath 1 100 75 50 -50 -40 -33 50 120 2 12 12 12 5 159 259 84 134 220 270 70 185 220 270 70 185 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 1 0 +maggotqueen2 285 maggotqueen1 maggotqueen3 1 RockWormQueen maggotqueen2 sandmaggot SandMaggotQueen MQ 1 sandmaggot2 8 0 S1 1 1 4 4 1 14 47 82 maggotqueen maggotqueen 10 15 15 15 8 9 10 10 10 10 goospit2 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 QueenDeath seq_queendeath 1 100 75 50 -50 -40 -33 50 120 2 15 15 15 5 161 261 84 134 220 270 70 185 220 270 70 185 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 1 0 +maggotqueen3 286 maggotqueen1 maggotqueen4 2 DevourerQueen maggotqueen3 sandmaggot SandMaggotQueen MQ 1 sandmaggot3 8 0 S1 1 1 4 4 1 17 48 83 maggotqueen maggotqueen 10 15 15 15 9 10 11 8 8 8 goospit3 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 QueenDeath seq_queendeath 1 100 75 50 -50 -40 -33 50 120 2 17 17 17 5 159 259 84 134 220 270 70 185 220 270 70 185 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 1 0 +maggotqueen4 287 maggotqueen1 maggotqueen5 3 GiantLampreyQueen maggotqueen4 sandmaggot SandMaggotQueen MQ 1 sandmaggot4 8 0 S1 1 1 4 4 1 21 49 84 maggotqueen maggotqueen 10 15 15 15 10 11 12 6 6 6 goospit4 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 QueenDeath seq_queendeath 1 100 75 50 -50 -40 -33 50 120 2 21 21 21 5 160 257 85 134 220 270 70 185 220 270 70 185 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 1 0 +maggotqueen5 288 maggotqueen1 4 WorldKillerQueen maggotqueen5 sandmaggot SandMaggotQueen MQ 1 sandmaggot5 8 0 S1 1 1 4 4 1 29 50 85 maggotqueen maggotqueen 10 15 15 15 11 12 13 4 4 4 goospit5 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 QueenDeath seq_queendeath 1 100 75 50 -50 -40 -33 50 120 2 29 29 29 5 157 257 84 153 220 270 70 185 220 270 70 185 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 1 0 +claygolem 289 claygolem 0 ClayGolem claygolem claygolem golem NecroPet G1 1 1 1 8 8 0 claygolem claygolem 11 8 8 8 85 85 85 1 1 1 1 1 1 -75 -75 -75 25 60 60 60 60 25 75 75 75 75 25 90 90 90 90 3 1 21 21 21 5 100 100 100 11 15 40 16 21 40 300 300 100 42 60 66 68 84 66 500 500 100 84 120 92 128 168 92 0 +bloodgolem 290 bloodgolem 0 BloodGolem bloodgolem bloodgolemow golem NecroPet G2 1 1 1 9 9 0 bloodgolem bloodgolem 11 9 9 9 90 90 90 1 1 1 1 1 1 BloodGolem NU 0 100 100 100 -75 -75 -75 10 60 60 60 60 10 75 75 75 75 10 90 90 90 90 3 1 31 31 31 5 201 201 120 27 48 60 36 72 60 388 388 120 27 96 118 51 130 104 637 637 120 60 188 148 120 242 148 0 +irongolem 291 irongolem 0 IronGolem irongolem golem NecroPet G4 1 1 1 9 9 0 irongolem irongolem 11 10 10 10 90 90 90 1 1 1 1 1 1 1 -75 -75 -75 10 60 60 60 100 10 75 75 75 100 10 90 90 90 100 3 1 41 41 41 5 306 306 140 7 19 80 15 29 80 595 595 140 11 30 138 23 45 138 980 980 140 12 33 197 25 49 197 0 +firegolem 292 firegolem 0 FireGolem firegolem firegolem golem NecroPet G3 1 1 1 10 10 0 firegolem firegolem 11 10 10 10 90 90 90 1 1 1 1 1 1 -50 -50 -50 10 90 60 60 60 10 90 75 75 75 10 90 90 90 90 3 1 50 50 50 5 157 157 200 10 27 120 21 41 120 280 280 200 15 39 209 30 60 209 440 440 200 18 47 298 35 71 298 A1 fire 80 5 10 80 80 0 +familiar 293 familiar 0 Dummy familiar Idle FI 1 1 12 6 0 15 15 15 90 90 90 1 1 1 0 0 +act3male 294 act3male 0 Dummy act3male human Towner N4 1 1 1 3 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +baboon6 295 baboon6 0 NightMarauder baboon6 baboon6 baboon Baboon BB 1 2 3 10 16 1 24 59 85 baboon baboon 10 15 14 13 33 33 33 20 30 35 50 50 50 50 50 50 1 2 3 1 1 1 1 1 -50 -25 100 33 105 2 24 24 24 5 107 151 85 97 51 151 92 51 151 92 80 125 140 135 60 110 115 50 150 125 80 125 140 135 60 110 115 50 150 135 A1 cold 85 31 68 25 85 30 80 50 85 40 80 75 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +act3female 296 act3female 0 Dummy act3female human Towner N3 1 1 1 3 2 0 lightnpc lightnpc 15 15 15 1 1 1 1 1 2 0 +natalya 297 natalya 0 Natalya natalya human Npc TZ 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +vilemother1 298 vilemother1 vilemother2 0 FleshSpawner vilemother1 vilekind VileMother VM 1 vilechild1 0 0 NU 1 2 7 7 1 24 56 82 vilemother vilemother 10 15 14 13 16 17 20 5 5 6 30 35 40 80 85 90 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 66 140 2 24 24 24 5 229 295 63 142 82 182 92 200 250 80 130 80 130 110 200 250 80 130 80 130 110 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +vilemother2 299 vilemother1 vilemother3 1 StygianHag vilemother2 vilekind VileMother VM 1 vilechild2 0 0 NU 1 3 7 7 1 27 57 84 vilemother vilemother 10 15 14 13 16 18 21 5 5 6 30 35 40 80 90 95 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 25 50 66 150 2 27 27 27 5 229 295 63 154 89 189 93 200 250 80 130 80 130 110 200 250 80 130 80 130 110 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +vilemother3 300 vilemother1 vilemother4 2 Grotesque vilemother3 vilekind VileMother VM 1 vilechild3 0 0 NU 2 3 7 7 1 30 57 85 vilemother vilemother 10 15 14 13 16 19 22 5 6 6 30 35 40 80 90 95 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 40 70 66 160 2 29 29 29 5 228 294 63 168 90 190 92 200 250 80 130 80 130 110 200 250 80 130 80 130 110 Act 4 Cast B Act 4 Champ B Act 4 Unique B Act 4 (N) Cast B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) Cast B Act 4 (H) Champ B Act 4 (H) Unique B 0 +vilechild1 301 vilechild1 vilechild2 0 FleshBeast vilechild1 vilekind VileDog VC 1 1 2 8 10 1 24 56 82 vilechild vilechild 9 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 25 140 2 38 38 38 5 57 85 85 76 44 76 152 50 70 70 40 40 70 85 50 70 70 40 40 70 85 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +vilechild2 302 vilechild1 vilechild3 1 StygianDog vilechild2 vilekind VileDog VC 1 1 3 9 11 1 27 57 84 vilechild vilechild 9 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 25 50 25 150 2 43 43 43 5 56 84 84 82 48 77 151 50 70 70 40 40 70 85 50 70 70 40 40 70 85 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +vilechild3 303 vilechild1 vilechild4 2 GrotesqueWyrm vilechild3 vilekind VileDog VC 1 2 3 10 12 1 30 57 85 vilechild vilechild 9 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 40 70 25 160 2 47 47 47 5 55 84 84 89 48 74 151 50 70 70 40 40 70 85 50 70 70 40 40 70 85 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +fingermage1 304 fingermage1 fingermage2 0 Groper fingermage1 fingermage FingerMage homing missiles FR 1 1 2 10 16 1 24 56 82 fingermage fingermage 10 15 14 13 40 40 40 40 60 70 50 50 50 30 30 30 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 1 FingerMageSpider S1 3 100 66 33 -50 -40 -25 40 40 50 50 50 100 2 24 24 24 5 153 211 85 110 51 119 92 80 110 120 135 55 120 120 80 110 120 135 55 120 120 Act 4 Wraith A Act 4 Champ A Act 4 Unique A Act 4 (N) Wraith A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Wraith A Act 4 (H) Champ A Act 4 (H) Unique A 0 +fingermage2 305 fingermage1 fingermage3 1 Strangler fingermage2 fingermage FingerMage homing missiles FR 1 1 3 10 16 1 27 57 84 fingermage fingermage 10 15 14 13 60 60 60 60 75 85 60 60 60 40 40 40 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 1 FingerMageSpider S1 4 100 66 33 -50 -40 -25 50 50 60 60 50 100 2 27 27 27 5 152 209 84 120 53 124 93 80 110 120 135 55 120 120 80 110 120 135 55 120 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) Wraith B Act 4 (H) Champ B Act 4 (H) Unique B 0 +fingermage3 306 fingermage1 fingermage4 2 StormCaster fingermage3 fingermage FingerMage homing missiles FR 1 2 3 10 16 1 30 58 85 fingermage fingermage 10 15 14 13 80 60 60 80 85 95 70 70 70 50 50 50 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 1 FingerMageSpider S1 5 100 66 33 -50 -40 -25 60 60 75 75 50 100 2 29 29 29 5 152 209 84 130 53 122 92 80 110 120 135 55 120 120 80 110 120 135 55 120 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) Wraith B Act 4 (H) Champ B Act 4 (H) Unique B 0 +regurgitator1 307 regurgitator1 regurgitator2 0 Corpulent regurgitator1 regurgitator Regurgitator eats and spits corpses CS 1 1 2 6 12 1 24 56 82 regurgitator regurgitator 10 15 14 13 70 75 75 20 20 20 40 50 50 10 20 30 3 5 5 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 1 100 85 75 -50 -40 -33 50 100 2 24 24 24 5 211 285 85 138 82 138 92 240 320 95 140 85 145 105 240 320 95 140 85 145 105 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +regurgitator2 308 regurgitator1 regurgitator3 1 CorpseSpitter regurgitator2 regurgitator Regurgitator eats and spits corpses CS 1 1 3 7 12 1 27 57 84 regurgitator regurgitator 10 15 14 13 80 80 80 20 20 20 50 50 50 10 20 30 6 6 7 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 2 100 85 75 -50 -40 -33 50 105 2 27 27 27 5 209 283 84 150 89 148 93 240 320 95 140 85 145 105 240 320 95 140 85 145 105 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +regurgitator3 309 regurgitator1 regurgitator4 2 MawFiend regurgitator3 regurgitator Regurgitator eats and spits corpses CS 1 2 3 8 12 1 30 57 85 regurgitator regurgitator 10 15 14 13 90 90 90 20 20 20 60 60 60 10 20 30 9 9 9 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 3 100 85 75 -50 -40 -33 50 110 2 29 29 29 5 209 283 84 163 90 148 92 240 320 95 140 85 145 105 240 320 95 140 85 145 105 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +doomknight1 310 doomknight1 dkfig1 0 DoomKnight doomknight1 doomknight DoomKnight Fighter UM 1 2 3 6 7 1 24 56 82 doomknight doomknight 10 15 14 13 90 95 100 10 5 5 80 85 90 10 10 10 1 1 1 1 1 1 1 100 75 33 -50 -33 -25 80 20 20 40 100 20 20 40 33 110 20 20 50 2 1 24 24 24 5 131 173 107 111 69 151 92 120 150 115 100 70 150 180 120 150 115 100 70 150 180 A1 rand 60 31 62 50 60 30 60 75 60 30 60 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +doomknight2 311 doomknight2 0 AbyssKnight doomknight2 doomknight AbyssKnight Fighter Mage UM 1 1 1 3 7 7 1 27 57 84 doomknight doomknight 10 15 14 13 40 75 100 80 80 80 90 94 97 10 5 5 6 6 5 1 1 0 70 65 50 40 40 40 1 1 1 1 1 DoomKnightMissile S1 3 MonBoneArmor S1 5 MonBoneSpirit S1 2 100 75 33 -50 -33 -25 40 80 40 40 40 80 40 40 33 40 100 40 50 2 27 27 27 5 129 172 107 121 71 153 93 120 150 115 140 90 140 170 120 150 115 140 90 140 170 A1 rand 40 29 58 50 40 30 60 75 40 30 60 100 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +doomknight3 312 doomknight3 dkmag1 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 doomknight1 2 4 1 2 8 7 1 30 58 85 doomknight doomknight 10 15 14 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 3 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 33 25 60 60 180 75 2 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 120 150 115 210 60 135 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +quillbear1 313 quillbear1 quillbear2 0 QuillBear quillbear1 quillrat QuillMother S7 1 1 1 4 4 1 15 15 15 60 70 80 50 60 60 16 12 10 15 15 15 1 1 1 1 2 0 +quillbear2 314 quillbear1 quillbear3 1 SpikeGiant quillbear2 quillrat QuillMother S7 1 1 2 4 4 1 15 15 15 70 75 85 60 70 70 14 10 9 15 15 15 1 1 1 1 1 2 0 +quillbear3 315 quillbear1 quillbear4 2 ThornBrute quillbear3 quillrat QuillMother S7 1 1 3 5 5 1 15 15 15 80 80 90 70 80 80 12 8 8 15 15 15 1 1 1 1 2 0 +quillbear4 316 quillbear1 quillbear5 3 RazorBeast quillbear4 quillrat QuillMother S7 1 2 3 5 5 1 15 15 15 90 90 95 80 80 85 8 7 7 15 15 15 1 1 1 1 2 0 +quillbear5 317 quillbear1 4 GiantUrchin quillbear5 quillrat QuillMother S7 1 2 4 6 6 1 15 15 15 95 95 95 90 90 90 6 6 6 15 15 15 1 1 1 1 2 0 +snake 318 snake 0 Dummy snake Idle CO 1 1 1 2 2 1 15 15 15 1 1 1 1 1 2 0 +parrot 319 parrot 0 Dummy parrot Idle PR 1 1 1 5 5 1 15 15 15 1 1 1 1 1 1 2 0 +fish 320 fish 0 Dummy fish Idle FJ 1 1 1 5 5 1 15 15 15 1 1 1 1 1 1 2 0 +evilhole1 321 evilhole1 evilhole2 0 Dummy evilhole1 EvilHole EH 1 fallen1 0 0 NU 1 1 0 0 1 1 34 67 smithdeath smithdeath 9 15 15 15 10 10 10 50 50 50 1 1 Nest S4 1 -50 2 0 +evilhole2 322 evilhole1 evilhole3 1 Dummy evilhole2 EvilHole EH fallen1 0 0 NU 1 1 0 0 1 4 37 70 smithdeath smithdeath 9 15 15 15 10 10 10 50 50 50 1 1 Nest S4 1 -50 2 0 +evilhole3 323 evilhole1 evilhole4 2 Dummy evilhole3 EvilHole EH fallen1 0 0 NU 1 1 0 0 1 7 40 73 smithdeath smithdeath 9 15 15 15 10 10 10 50 50 50 1 1 Nest S4 1 -50 2 0 +evilhole4 324 evilhole1 evilhole5 3 Dummy evilhole4 EvilHole EH fallen1 0 0 NU 1 1 0 0 1 9 42 75 smithdeath smithdeath 9 15 15 15 10 10 10 50 50 50 1 1 Nest S4 1 -50 2 0 +evilhole5 325 evilhole1 demonhole 4 Dummy evilhole5 EvilHole EH fallen1 0 0 NU 1 1 0 0 1 22 55 83 smithdeath smithdeath 9 15 15 15 10 10 10 50 50 50 1 1 Nest S4 1 -50 2 0 +trap-firebolt 326 trap-firebolt 0 a trap trap-firebolt Trap-Missile 9A 1 1 1 0 0 1 15 15 15 25 30 32 1 1 1 15 15 15 trapfirebolt 1 1 2 0 +trap-horzmissile 327 trap-horzmissile 0 a trap trap-horzmissile Trap-RightArrow 9A 1 1 1 0 0 1 1 34 67 sk_archer sk_archer 15 15 15 5 5 5 15 15 15 30 23 18 200 200 200 trap spike right trap poison ball right trap cursed skull right 1 1 PoisonBallTrap S1 1 CursedBallTrapRight S1 1 2 51 151 3001 50 150 5000 50 150 5000 S1 pois 100 33 33 150 100 33 33 150 100 33 33 150 0 +trap-vertmissile 328 trap-vertmissile 0 a trap trap-vertmissile Trap-LeftArrow 9A 1 1 1 0 0 1 1 34 67 sk_archer sk_archer 15 15 15 5 5 5 15 15 15 30 23 18 200 200 200 trap spike left trap poison ball left trap cursed skull left 1 1 PoisonBallTrap S1 1 CursedBallTrapLeft S1 1 2 51 151 3001 50 150 5000 50 150 5000 S1 pois 100 33 33 150 100 33 33 150 100 33 33 150 0 +trap-poisoncloud 329 trap-poisoncloud 0 a trap trap-poisoncloud Trap-Poison 9A 1 1 1 0 0 1 15 15 15 20 20 20 1 1 1 15 15 15 trappoisonjavcloud 1 1 PrimePoisonNova A1 1 2 0 +trap-lightning 330 trap-lightning 0 a trap trap-lightning Trap-Missile 9A 1 1 1 0 0 1 15 15 15 25 30 32 1 1 1 15 15 15 chainlightning 1 1 2 0 +act2guard2 331 act2guard2 0 Kaelan act2guard2 human JarJar GU 1 1 1 6 6 0 act3hire act3hire 11 15 15 15 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 2 0 +invisospawner 332 invisospawner 0 Dummy invisospawner InvisoSpawner K9 1 1 1 0 0 0 15 15 15 4 4 4 5 5 5 125 125 125 1 1 1 2 0 +diabloclone 333 diablo uberdiablo 0 Diablo diablo demon Diablo DI 1 1 1 8 8 0 110 110 110 diablo diablo 14 15 13 12 1 1 1 1 DiabLight SC 2 DiabCold S2 2 DiabFire S1 4 DiabWall S3 2 DiabRun seq_diablorun 5 PrimeFirewall S3 8 DiabPrison S3 1 Diablogeddon S3 5 15 15 15 -10 -10 -10 50 50 75 75 75 75 50 50 75 75 75 75 50 50 95 95 95 95 2 1 50 50 50 5 6427 6427 87 3462 77 197 313 113 257 251 6427 6427 140 3462 100 190 215 110 230 200 6427 6427 140 3462 100 190 215 110 230 200 1 0 +suckernest1 334 suckernest1 suckernest2 0 SuckerNest suckernest1 MosquitoNest DH mosquito1 -2 -2 NU 1 1 0 0 1 15 15 15 16 17 21 25 26 27 200 180 175 1 1 1 Nest seq_mosquitonest 1 2 207 550 84 196 400 550 65 350 400 550 65 350 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +suckernest2 335 suckernest1 suckernest3 1 FeederNest suckernest2 MosquitoNest DH mosquito2 -2 -2 NU 1 1 0 0 1 15 15 15 16 18 22 25 26 27 200 180 175 1 1 1 Nest seq_mosquitonest 1 2 216 550 84 196 400 550 65 350 400 550 65 350 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) H2H B Act 1 (H) Champ B Act 1 (H) Unique B 0 +suckernest3 336 suckernest1 suckernest4 2 BloodHookNest suckernest3 MosquitoNest DH mosquito3 -2 -2 NU 1 1 0 0 1 15 15 15 16 19 23 25 26 27 200 180 175 1 1 1 Nest seq_mosquitonest 1 2 214 550 84 196 400 550 65 350 400 550 65 350 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 1 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Act 1 (H) H2H B Act 2 (H) Champ B Act 2 (H) Unique B 0 +suckernest4 337 suckernest1 3 BloodWingNest suckernest4 MosquitoNest DH mosquito4 -2 -2 NU 1 1 0 0 1 15 15 15 16 20 24 25 26 27 200 180 175 1 1 1 Nest seq_mosquitonest 1 2 214 550 85 201 400 550 65 350 400 550 65 350 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 1 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 1 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +act2hire 338 act2hire 0 Guard act2hire human Hireable GU 1 1 1 8 14 0 1 34 67 act2hire act2hire 11 1 1 1 1 1 1 1 1 1 1 1 Jab seq_act2guardjab 1 100 100 100 -50 -50 -50 4 0 +minispider 339 minispider 0 Dummy minispider Idle LS 1 1 1 1 2 1 spider spider 15 15 15 1 1 1 1 2 0 +boneprison1 340 boneprison1 0 BonePrison boneprison1 construct Idle 67 1 1 1 0 0 0 12 45 78 boneprison boneprison 1 15 15 15 1 1 1 1 1 0 193 385 84 250 250 35 100 100 35 0 +boneprison2 341 boneprison2 0 BonePrison boneprison2 construct Idle 66 1 1 1 0 0 0 12 45 78 boneprison boneprison 1 15 15 15 1 1 1 1 1 0 193 385 84 250 250 35 100 100 35 0 +boneprison3 342 boneprison3 0 BonePrison boneprison3 construct Idle 69 1 1 1 0 0 0 12 45 78 boneprison boneprison 1 15 15 15 1 1 1 1 1 0 193 385 84 250 250 35 100 100 35 0 +boneprison4 343 boneprison4 0 BonePrison boneprison4 construct Idle 68 1 1 1 0 0 0 12 45 78 boneprison boneprison 1 15 15 15 1 1 1 1 1 0 193 385 84 250 250 35 100 100 35 0 +bonewall 344 bonewall 0 Dummy bonewall construct BoneWall BW 1 1 1 0 0 0 7 40 73 bonewall bonewall 1 15 15 15 1 1 1 1 1 1 Bone Wall NU 0 70 70 90 200 50 90 200 2 1 19 19 35 147 147 174 431 431 334 0 +councilmember1 345 councilmember1 councilmember2 0 Council Member councilmember1 councilmember1 councilmember HighPriest HP 1 1 1 6 12 1 25 56 88 councilmember councilmember 11 15 13 12 75 75 75 25 25 15 125 100 75 40 45 45 70 75 75 8 8 8 15 15 15 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 2 ZakarumHeal S1 2 100 85 66 -50 -33 -25 50 120 33 33 33 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 200 350 110 150 50 120 140 Council Council Council Council (N) Council (N) Council (N) Council (H) Council (H) Council (H) 0 +councilmember2 346 councilmember1 councilmember3 0 Council Member councilmember2 councilmember2 councilmember HighPriest HP 1 1 1 8 12 1 25 56 88 councilmember councilmember 11 15 13 12 60 60 60 30 30 15 125 100 75 35 40 40 75 75 75 11 11 11 13 13 13 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 3 ZakarumHeal S1 3 100 85 66 -50 -33 -25 50 33 100 33 33 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 200 350 110 150 50 120 140 Council Council Council Council (N) Council (N) Council (N) Council (H) Council (H) Council (H) 0 +councilmember3 347 councilmember1 0 Council Member councilmember3 councilmember3 councilmember HighPriest HP 1 1 1 10 12 1 25 56 88 councilmember councilmember 11 15 13 12 65 65 65 20 20 15 125 100 75 45 50 50 80 80 80 9 9 9 12 12 12 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 4 ZakarumHeal S1 4 100 85 66 -50 -33 -25 50 33 100 33 33 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 200 350 110 150 50 120 140 Council Council Council Council (N) Council (N) Council (N) Council (H) Council (H) Council (H) 0 +turret1 348 turret1 turret2 0 Turret turret1 construct DesertTurret PB 1 1 1 0 0 1 10 43 76 turret turret 9 15 15 15 10 7 3 5 6 7 120 100 80 30 30 30 5 5 5 1 1 DesertTurret seq_desertturret 1 -50 50 95 50 85 1000 50 99 50 85 1000 25 50 99 50 85 1000 0 291 387 39 95 400 450 35 400 400 450 35 400 0 +turret2 349 turret1 turret3 1 Turret turret2 construct DesertTurret PB 1 1 1 0 0 1 10 43 76 turret turret 9 15 15 15 10 7 3 6 7 8 120 100 80 30 30 30 5 5 5 1 1 DesertTurret seq_desertturret 1 -50 50 95 50 85 1000 50 99 50 85 1000 25 50 99 50 85 1000 0 291 387 39 95 400 450 35 400 400 450 35 400 0 +turret3 350 turret1 2 Turret turret3 construct DesertTurret PB 1 1 1 0 0 1 10 43 76 turret turret 9 15 15 15 10 7 3 7 8 9 120 100 80 30 30 30 5 5 5 1 1 DesertTurret seq_desertturret 1 -50 50 95 50 85 1000 50 99 50 85 1000 25 50 99 50 85 1000 0 291 387 39 95 400 450 35 400 400 450 35 400 0 +hydra1 351 hydra1 0 Hydra hydra1 Hydra HX 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 1 HydraFireball A1 1 2 0 +hydra2 352 hydra2 0 Hydra hydra2 Hydra 21 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 1 HydraFireball A1 1 2 0 +hydra3 353 hydra3 0 Hydra hydra3 Hydra HZ 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 1 HydraFireball A1 1 2 0 +trap-melee 354 trap-melee 0 a trap trap-melee construct Trap-Melee M4 1 1 1 0 0 1 skeleton skeleton 15 15 15 70 70 70 15 15 15 1 1 2 5 284 379 38 75 150 180 35 75 150 180 35 75 150 180 0 +seventombs 355 seventombs 0 Dummy seventombs 7TIllusion 9A 1 1 1 0 0 0 clawviper clawviper 15 15 15 chainlightning 1 2 0 +dopplezon 356 dopplezon 0 Dopplezon dopplezon Idle VK 1 1 1 9 9 0 dopplezon dopplezon 11 12 12 12 1 1 1 1 -50 -50 -50 15 1 28 28 28 5 10 10 141 10 10 152 10 10 164 0 +valkyrie 357 valkyrie 0 Valkyrie valkyrie ShadowMaster VK 1 1 1 60 66 0 valkyrie valkyrie 11 6 6 6 20 10 5 30 24 13 100 100 100 32 1 1 1 1 1 1 Valk Power Strike A1 1 -75 -75 -75 2 1 28 28 28 5 200 280 141 9 24 250 18 37 250 300 380 152 13 35 300 26 53 300 900 980 164 16 41 350 31 62 350 0 +act2guard3 358 act2guard3 0 Dummy act2guard3 human Idle SK 1 1 1 8 8 0 mednpc mednpc 11 15 15 15 rogue1 1 1 1 1 1 1 1 Jab seq_act2guardjab 1 100 100 100 -50 -50 -50 70 70 70 0 17 17 17 5 577 770 84 120 170 125 0 +act3hire 359 act3hire 0 Iron Wolf act3hire human Hireable IW 1 1 1 8 14 0 1 34 67 act3hire act3hire 11 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 10 0 +megademon1 360 megademon1 megademon2 0 Balrog megademon1 megademon Megademon DM 1 1 2 10 16 1 24 55 82 megademon megademon 10 15 13 11 50 65 80 40 50 55 80 85 90 70 70 70 50 50 50 75 60 45 1 1 1 1 1 MegademonInferno S1 6 100 85 66 -50 -40 -33 70 80 50 110 75 50 75 2 32 32 32 5 191 229 101 129 51 94 125 210 250 115 130 100 160 160 210 250 115 130 100 160 160 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +megademon2 361 megademon1 megademon3 1 PitLord megademon2 megademon Megademon DM 1 1 3 10 16 1 27 56 83 megademon megademon 10 15 13 11 55 70 85 45 55 60 80 90 95 70 70 70 60 60 60 75 60 45 1 1 1 1 1 MegademonInferno S1 7 100 85 66 -50 -40 -33 70 80 50 120 75 50 75 2 36 36 36 5 190 229 101 140 53 101 126 210 250 115 130 100 160 160 210 250 115 130 100 160 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +megademon3 362 megademon1 megademon4 2 VenomLord megademon3 megademon Megademon DM 1 2 3 10 16 1 30 57 84 megademon megademon 10 15 13 11 60 75 90 50 60 65 80 95 97 70 70 70 70 70 70 75 60 45 1 1 1 1 1 MegademonInferno S1 8 100 85 66 -50 -40 -33 70 70 80 100 50 130 75 50 75 2 39 39 39 5 191 228 101 152 53 95 125 210 250 115 130 100 160 160 210 250 115 130 100 160 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +necroskeleton 363 necroskeleton 0 NecroSkeleton necroskeleton necroskeleton skeleton NecroPet SK 1 1 1 13 15 1 necroskeleton necroskeleton 10 10 10 10 60 60 60 75 75 75 15 15 15 50 50 50 0 0 0 1 1 1 1 1 1 1 -75 -75 -75 10 45 45 45 45 10 60 60 60 60 10 75 75 75 75 4 1 3 3 3 5 21 21 5 1 2 5 1 2 5 30 30 5 1 2 4 1 2 4 42 42 6 1 2 6 1 2 6 0 +necromage 364 necromage 0 NecroMage necromage skeleton NecroPet SK 1 1 1 12 14 1 necromage necromage 10 10 10 10 80 80 80 75 75 75 15 15 15 50 50 50 0 0 0 1 1 1 1 1 1 1 NecromageMissile A1 1 -75 -75 -75 45 45 45 45 60 60 60 60 75 75 75 75 4 1 3 3 3 5 61 61 24 1 2 5 1 2 5 88 88 26 1 2 4 1 2 4 123 123 28 1 2 6 1 2 6 0 +griswold 365 griswold 0 Griswold griswold undead Griswold GZ 1 1 1 3 4 0 5 39 84 zombie zombie 11 15 13 10 1 1 1 1 1 100 85 66 -50 -40 -33 50 50 50 50 120 2 6 6 6 5 608 608 84 273 51 151 91 608 608 80 273 50 150 100 608 608 80 273 50 150 100 Griswold Griswold Griswold Griswold (N) Griswold (N) Griswold (N) Griswold (H) Griswold (H) Griswold (H) 0 +compellingorb 366 compellingorb 0 compellingorb compellingorb construct Idle 9a 1 1 1 0 0 0 40 55 80 compellingorb compellingorb 15 15 15 1 1000 1000 1000 2 152 303 84 303 303 5 1010 303 303 5 1010 0 +tyrael2 367 tyrael2 0 tyrael tyrael2 NpcStationary TY 1 1 1 0 0 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +darkwanderer 368 darkwanderer 0 youngdiablo darkwanderer DarkWanderer 1Z 1 1 1 2 2 0 darkwanderer darkwanderer 15 15 15 1 1 2 0 +trap-nova 369 trap-nova 0 a trap trap-nova Trap-Nova 9A 1 1 1 0 0 1 15 15 15 20 20 20 1 1 1 15 15 15 firebolt nova 1 1 Trap Nova S1 1 90 90 90 90 90 90 90 90 90 90 90 90 50 90 90 90 90 90 2 0 +spiritmummy 370 spiritmummy 0 Dummy spiritmummy mummy Idle xx 2 3 10 16 1 24 57 85 10 1 1 1 1 1 -50 -25 2 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) H2H C Act 2 (H) Champ C Act 2 (H) Unique C 0 +lightningspire 371 lightningspire 0 LightningSpire lightningspire construct ArcaneTower AE 1 1 1 0 0 1 1 48 79 lightningorb lightningorb 9 15 15 15 1 1 1 150 125 75 33 25 15 4 4 4 150 125 75 50 33 25 arcanelightningbolt 1 1 1 ArcaneTower seq_arcanetower 1 MonLightning seq_arcanetower 6 90 90 90 70 1000 90 90 100 1000 90 90 100 1000 0 46 46 46 1001 2021 34 944 500 600 5 944 500 600 5 944 0 +firetower 372 firetower 0 FireTower firetower construct DesertTurret PB 1 1 1 0 0 1 1 46 77 turret turret 9 15 15 15 10 7 3 5 6 7 120 100 80 30 30 30 5 5 5 1 1 1 DesertTurret seq_desertturret 1 90 90 90 70 90 90 90 90 40 50 99 50 85 1000 0 46 46 46 1001 2021 34 944 1400 1700 5 944 1400 1700 5 944 0 +slinger1 373 slinger1 slinger2 0 Slinger slinger1 pantherwoman PantherJavelin PW 1 1 1 3 5 10 1 14 43 75 slinger slinger 10 15 14 13 70 70 70 70 70 70 12 12 12 10 10 10 15 15 15 20 21 25 pantherjav1 1 1 1 1 100 100 100 -50 -40 -33 10 25 120 2 15 15 15 5 54 87 58 67 51 121 94 55 85 95 80 50 85 145 55 85 95 80 50 85 145 A1 cold 5 20 40 15 30 60 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Miss A Act 2 (H) Champ A Act 2 (H) Unique A 0 +slinger2 374 slinger1 slinger3 1 SpearCat slinger2 pantherwoman PantherJavelin PW 1 1 2 3 5 10 1 15 44 77 slinger slinger 10 15 14 13 70 70 70 75 75 75 11 11 11 15 15 15 14 14 14 20 22 26 pantherjav2 1 1 1 1 100 100 100 -50 -40 -33 10 25 140 2 16 16 16 5 54 88 58 67 51 121 94 55 85 95 80 50 85 145 55 85 95 80 50 85 145 A1 cold 5 20 40 15 30 60 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Miss A Act 2 (H) Champ A Act 2 (H) Unique A 0 +slinger3 375 slinger1 slinger4 2 NightSlinger slinger3 pantherwoman PantherJavelin PW 1 1 2 4 5 10 1 17 46 79 slinger slinger 10 15 14 13 70 70 70 80 80 80 10 10 10 20 20 20 13 13 13 20 23 27 pantherjav3 1 1 1 1 100 100 100 -50 -40 -33 10 25 100 2 17 17 17 5 53 87 58 67 55 128 92 55 85 95 80 50 85 145 55 85 95 80 50 85 145 A1 ltng 5 5 80 15 5 110 Act 2 Miss B Act 2 Champ B Act 2 Unique B Act 2 (N) Miss B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Miss B Act 2 (H) Champ B Act 2 (H) Unique B 0 +slinger4 376 slinger1 slinger7 3 HellSlinger slinger4 pantherwoman PantherJavelin PW 1 1 3 4 5 10 1 19 48 80 slinger slinger 10 15 14 13 70 70 70 85 85 85 9 9 9 25 25 25 12 12 12 20 24 28 pantherjav4 1 1 1 1 100 100 100 -50 -40 -33 10 105 2 19 19 19 5 53 86 58 67 47 116 93 55 85 95 80 50 85 145 55 85 95 80 50 85 145 A1 fire 5 30 55 15 40 75 Act 2 Miss C Act 2 Champ C Act 2 Unique C Act 2 (N) Miss C Act 2 (N) Champ C Act 2 (N) Unique C Act 2 (H) Miss C Act 2 (H) Champ C Act 2 (H) Unique C 0 +act2guard4 377 act2guard4 0 Dummy act2guard4 human Idle GU 1 1 1 6 6 0 act3hire act3hire 11 15 15 15 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 2 0 +act2guard5 378 act2guard5 0 Dummy act2guard5 human Idle GU 1 1 1 6 6 0 act3hire act3hire 11 15 15 15 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 2 0 +skmage_cold1 379 skmage_cold1 skmage_cold2 1 ReturnedMage skmage_cold1 skeleton SkeletonMage SK 1 1 1 2 4 4 2 8 39 69 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage2 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 140 75 2 9 9 9 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 cold 100 60 110 100 100 60 150 150 100 60 150 200 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +skmage_cold2 380 skmage_cold1 skmage_cold3 2 BoneMage skmage_cold2 skeleton SkeletonMage SK 1 1 1 3 4 4 2 10 40 70 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage2 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 150 75 2 11 11 11 5 55 82 84 56 55 80 90 110 55 80 90 110 A1 cold 100 60 110 100 100 60 150 150 100 60 150 200 Act 1 Cast C Act 1 Champ B Act 1 Unique B Act 1 (N) Cast C Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast C Act 1 (H) Champ B Act 1 (H) Unique B 0 +skmage_cold3 381 skmage_cold1 skmage_cold4 3 BaalColdMage skmage_cold3 skeleton SkeletonMage SK 1 1 2 3 5 5 2 14 43 74 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage2 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 30 50 50 50 60 33 75 160 75 2 15 15 15 5 57 81 84 56 55 80 90 110 55 80 90 110 A1 cold 100 60 110 100 100 60 150 150 100 60 150 200 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skmage_cold4 382 skmage_cold1 skmage_cold5 4 HorrorMage skmage_cold4 skeleton SkeletonMage SK 1 1 2 4 5 5 2 17 47 78 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage2 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 170 75 2 17 17 17 5 56 81 84 55 55 80 90 110 55 80 90 110 A1 cold 100 60 110 100 100 60 150 150 100 60 150 200 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +skmage_fire1 383 skmage_fire1 skmage_fire2 1 ReturnedMage skmage_fire1 skeleton SkeletonMage SK 1 1 1 2 4 4 2 8 39 69 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 100 75 2 9 9 9 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 fire 100 70 120 100 70 170 100 70 170 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +skmage_fire2 384 skmage_fire1 skmage_fire3 2 BoneMage skmage_fire2 skeleton SkeletonMage SK 1 1 1 3 4 4 2 10 40 70 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 105 75 2 11 11 11 5 55 82 84 56 55 80 90 110 55 80 90 110 A1 fire 100 70 120 100 70 170 100 70 170 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 0 +skmage_fire3 385 skmage_fire1 skmage_fire4 3 BurningDeadMage skmage_fire3 skeleton SkeletonMage SK 1 1 2 3 5 5 2 14 44 75 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 50 100 60 33 110 75 2 15 15 15 5 57 81 84 56 55 80 90 110 55 80 90 110 A1 fire 100 70 120 100 70 170 100 70 170 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Cast A Act 2 (H) Champ A Act 2 (H) Unique A 0 +skmage_fire4 386 skmage_fire1 skmage_fire5 4 HorrorMage skmage_fire4 skeleton SkeletonMage SK 1 1 2 4 5 5 2 17 47 78 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 115 75 2 17 17 17 5 56 81 84 55 55 80 90 110 55 80 90 110 A1 fire 100 70 120 100 70 170 100 70 170 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +skmage_ltng1 387 skmage_ltng1 skmage_ltng2 1 ReturnedMage skmage_ltng1 skeleton SkeletonMage SK 1 1 1 2 4 4 2 8 40 70 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage4 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 100 75 2 9 9 9 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 ltng 100 40 150 100 40 200 100 40 200 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Act 1 (H) Cast B Act 1 (H) Champ B Act 1 (H) Unique B 0 +skmage_ltng2 388 skmage_ltng1 skmage_ltng3 2 BoneMage skmage_ltng2 skeleton SkeletonMage SK 1 1 1 3 4 4 2 10 41 71 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage4 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 105 75 2 11 11 11 5 55 82 84 56 55 80 90 110 55 80 90 110 A1 ltng 100 40 150 100 40 200 100 40 200 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) Cast C Act 1 (H) Champ C Act 1 (H) Unique C 0 +skmage_ltng3 389 skmage_ltng1 skmage_ltng4 3 BurningDeadMage skmage_ltng3 skeleton SkeletonMage SK 1 1 2 3 5 5 2 14 44 78 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage4 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 30 50 50 50 60 33 110 75 2 15 15 15 5 57 81 84 56 55 80 90 110 55 80 90 110 A1 ltng 100 40 150 100 40 200 100 40 200 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Cast A Act 2 (H) Champ A Act 2 (H) Unique A 0 +skmage_ltng4 390 skmage_ltng1 skmage_ltng5 4 HorrorMage skmage_ltng4 skeleton SkeletonMage SK 1 1 2 4 5 5 2 17 48 79 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage4 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 33 115 75 2 17 17 17 5 56 81 84 55 55 80 90 110 55 80 90 110 A1 ltng 100 40 150 100 40 200 100 40 200 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +hellbovine 391 hellbovine 0 Hell Bovine hellbovine bovine Skeleton EC 1 5 10 5 5 1 28 61 81 hellbovine hellbovine 10 15 14 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 100 75 66 -50 -40 -33 33 15 25 25 25 25 50 33 50 50 50 33 2 28 28 28 5 133 285 88 140 151 223 93 178 239 101 220 270 80 80 130 180 130 120 170 155 220 270 80 80 130 180 130 120 170 130 Cow Act 4 Champ B Act 4 Unique B Cow (N) Act 4 (N) Champ B Act 4 (N) Unique B Cow (H) Act 4 (H) Champ B Act 4 (H) Unique B 0 +window1 392 window1 0 window1 Idle VH 1 1 1 0 0 0 1 1 1 stainedglass stainedglass 1 15 15 15 1 1 1 1 1 90 90 90 90 90 70 90 90 90 90 90 90 40 90 90 90 90 90 2 46 46 46 100 84 491 50 50 10 15 50 50 10 15 0 +window2 393 window2 0 window2 Idle VJ 1 1 1 0 0 0 1 1 1 stainedglass stainedglass 1 15 15 15 1 1 1 1 1 90 90 90 90 90 70 90 90 90 90 90 90 40 90 90 90 90 90 2 46 46 46 100 84 491 50 50 10 15 50 50 10 15 0 +slinger5 394 slinger5 slinger6 0 SpearCat slinger5 pantherwoman PantherJavelin PW 1 1 3 5 10 1 15 44 76 slinger slinger 10 15 14 13 70 70 70 70 70 70 12 12 12 10 10 10 15 15 15 20 21 25 pantherpotorange 1 1 1 1 1 100 100 100 -50 -40 -33 15 75 50 2 16 16 16 5 47 82 53 64 55 85 95 100 55 85 95 100 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) Miss A Act 2 (H) Champ A Act 2 (H) Unique A 0 +slinger6 395 slinger5 1 NightSlinger slinger6 pantherwoman PantherJavelin PW 1 2 3 5 10 1 17 46 77 slinger slinger 10 15 14 13 70 70 70 75 75 75 11 11 11 15 15 15 14 14 14 20 22 26 pantherpotgreen 1 1 1 1 1 100 100 100 -50 -40 -33 15 75 50 2 17 17 17 5 48 81 53 64 55 85 95 100 55 85 95 100 Act 2 Miss B Act 2 Champ B Act 2 Unique B Act 2 (N) Miss B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Miss B Act 2 (H) Champ B Act 2 (H) Unique B 0 +fetishblow1 396 fetishblow1 fetishblow2 0 RatMan fetishblow1 fetish FetishBlowgun FC 1 1 fetishblow1 1 1 1 1 1 1 6 6 1 9 39 72 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 100 50 2 13 13 13 5 66 111 84 65 15 33 127 45 75 110 90 20 33 110 45 75 110 90 20 33 110 A1 pois 7 10 10 25 12 25 25 50 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +fetishblow2 397 fetishblow1 fetishblow3 1 Fetish fetishblow2 fetish FetishBlowgun FC 1 1 fetishblow2 1 1 1 2 1 2 7 7 1 21 49 79 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 100 50 2 28 28 28 5 64 107 85 65 15 33 126 45 75 110 90 20 33 110 45 75 110 90 20 33 110 A1 pois 7 10 10 25 12 25 25 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +fetishblow3 398 fetishblow1 fetishblow4 2 Flayer fetishblow3 fetish FetishBlowgun FC 1 1 fetishblow3 1 1 2 2 2 2 8 8 1 22 50 80 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 140 50 2 29 29 29 5 66 107 85 65 15 33 125 45 75 110 90 20 33 110 45 75 110 90 20 33 110 A1 pois 7 10 10 25 12 25 25 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Act 3 (H) H2H A Act 3 (H) Champ A Act 3 (H) Unique A 0 +fetishblow4 399 fetishblow1 fetishblow5 3 SoulKiller fetishblow4 fetish FetishBlowgun FC 1 1 fetishblow4 1 1 2 3 2 3 9 9 1 23 52 82 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 110 2 31 31 31 5 65 107 85 65 15 33 126 45 75 110 90 20 33 110 45 75 110 90 20 33 110 A1 pois 7 10 10 25 12 25 25 50 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetishblow5 400 fetishblow1 fetishblow6 4 StygianDoll fetishblow5 fetish FetishBlowgun FC 1 1 fetishblow5 1 1 3 3 3 3 10 10 1 24 53 83 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 100 50 2 32 32 32 5 65 107 85 65 15 33 125 45 75 110 90 20 33 110 45 75 110 90 20 33 110 A1 pois 7 10 10 25 12 25 25 50 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +mephistospirit 401 mephistospirit 0 Dummy mephistospirit undead Spirit M6 1 1 1 0 0 0 24 55 85 15 15 15 1 1 -50 -40 -33 90 90 90 90 90 70 90 90 90 90 90 90 40 90 90 90 90 90 2 5 1267 503 144 219 125 140 200 125 140 200 125 Trapped Soul Trapped Soul Trapped Soul Trapped Soul (N) Trapped Soul (N) Trapped Soul (N) Trapped Soul (H) Trapped Soul (H) Trapped Soul (H) 0 +smith 402 smith 0 The Smith smith demon Smith 5P 1 1 1 7 7 0 10 42 79 smith smith 11 15 13 12 1 1 1 1 100 85 66 -50 -40 -33 -50 10 25 -50 25 50 -50 0 13 13 13 5 291 291 84 151 101 129 115 400 450 80 227 90 110 146 400 450 80 227 90 110 146 A1 fire 15 30 60 30 40 80 Smith Smith Smith Smith (N) Smith (N) Smith (N) Smith (H) Smith (H) Smith (H) 0 +trappedsoul1 403 trappedsoul1 0 TrappedSoul trappedsoul1 TrappedSoul 10 1 1 3 0 0 1 30 57 75 trappedsoul1 trappedsoul1 4 15 15 15 1 1 1 100 100 100 70 70 100 90 150 90 2 5 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 30 60 180 30 60 180 Trapped Soul Trapped Soul Trapped Soul Trapped Soul (N) Trapped Soul (N) Trapped Soul (N) Trapped Soul (H) Trapped Soul (H) Trapped Soul (H) 1 1 1 0 +trappedsoul2 404 trappedsoul2 0 TrappedSoul trappedsoul2 TrappedSoul 13 1 1 3 0 0 1 30 57 75 trappedsoul2 trappedsoul2 4 15 15 15 1 1 1 100 100 100 70 70 100 90 150 90 2 5 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 30 60 180 30 60 180 Trapped Soul Trapped Soul Trapped Soul Trapped Soul (N) Trapped Soul (N) Trapped Soul (N) Trapped Soul (H) Trapped Soul (H) Trapped Soul (H) 1 1 1 0 +jamella 405 jamella 0 Jamella jamella human Npc ja 1 1 1 2 2 0 jamella jamella 15 15 15 1 1 1 1 1 1 1 2 0 +izualghost 406 izualghost 0 Izual izualghost NpcStationary 17 1 1 1 0 0 0 izualspirit izualspirit 15 15 15 1 1 1 1 2 0 +fetish11 407 fetish11 0 RatMan fetish11 fetish Fetish FE 1 fetish3 fetishblow3 1 1 2 7 1 1 6 6 0 10 43 76 fetish fetish 10 15 15 15 0 0 0 55 55 55 20 20 20 0 0 0 0 0 0 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 2 11 11 11 5 64 110 84 76 29 86 125 50 80 110 85 40 90 125 50 80 110 85 40 90 125 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +malachai 408 malachai 0 Malachai malachai human Buffy 36 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +hephasto 409 hephasto 0 The Feature Creep hephasto demon Smith 5P 1 1 1 8 8 0 25 60 88 smithdemon smithdemon 12 15 13 12 1 1 1 1 100 85 75 -50 -40 -33 -50 -50 50 75 25 25 0 30 30 30 5 760 760 107 339 151 226 112 760 760 100 339 140 170 110 760 760 100 339 140 170 110 A1 fire 25 30 60 50 40 80 Haphesto Haphesto Haphesto Haphesto (N) Haphesto (N) Haphesto (N) Haphesto (H) Haphesto (H) Haphesto (H) 0 +Expansion 0 +wakeofdestruction 410 wakeofdestruction 0 Wake of Destruction wakeofdestruction construct AssassinSentry e9 1 1 1 0 0 0 15 15 15 100 100 100 10 10 10 15 15 15 15 15 15 0 0 0 1 1 1 1 1 Wake Of Destruction Sentry S2 1 -50 -50 -50 2 1 100 100 100 100 100 100 100 100 100 5 10 0 +chargeboltsentry 411 chargeboltsentry 0 Charged Bolt Sentry chargeboltsentry construct AssassinSentry lg 1 1 1 0 0 0 lightningsentry lightningsentry 15 15 15 100 100 100 10 10 10 15 15 15 25 25 25 0 0 0 1 1 1 1 1 2 BoltSentry seq_chargesentry 1 Shock Field S1 0 -50 -50 -50 2 1 100 100 100 100 100 100 100 100 100 0 +lightningsentry 412 lightningsentry 0 Lightning Sentry lightningsentry construct AssassinSentry lg 1 1 1 0 0 0 lightningsentry lightningsentry 15 15 15 100 100 100 10 10 10 15 15 15 25 25 25 0 0 0 1 1 1 1 1 Sentry Lightning seq_chargesentry 1 -50 -50 -50 2 1 100 100 100 100 100 100 100 100 100 0 +bladecreeper 413 bladecreeper 0 Blade Creeper bladecreeper construct BladeCreeper b8 1 1 1 24 24 0 bladecreeper bladecreeper 5 5 5 1 1 1 1 1 1 Blade Sentinel A1 1 2 1 100 100 100 100 100 100 100 100 100 0 +invisopet 414 invisopet 0 Invis Pet invisopet InvisoPet k9 1 1 1 0 0 0 15 15 15 16 16 16 15 15 15 0 0 0 0 0 0 0 0 0 1 1 1 1 -50 -50 -50 2 1 0 +infernosentry 415 infernosentry 0 Inferno Sentry infernosentry construct AssassinSentry e9 1 1 1 0 0 0 15 15 15 100 100 100 10 10 10 15 15 15 13 13 13 0 0 0 1 1 1 1 1 2 Mon Inferno Sentry seq_infernosentry 1 Wake of Fire Sentry S1 0 -50 -50 -50 2 1 100 100 100 100 100 100 100 100 100 0 +deathsentry 416 deathsentry 0 Death Sentry deathsentry construct DeathSentry lg 1 1 1 0 0 0 lightningsentry lightningsentry 15 15 15 30 30 30 0 0 0 50 50 50 16 16 16 0 0 0 1 1 1 1 1 Mon Death Sentry seq_chargesentry 1 -50 -50 -50 2 1 100 100 100 100 100 100 100 100 100 0 +shadowwarrior 417 shadowwarrior 0 Shadow Warrior shadowwarrior ShadowWarrior k9 1 1 1 1 0 0 shadow shadow 11 10 10 10 40 40 40 30 30 30 60 60 60 1 1 1 268 5 64 1 1 1 1 1 1 1 1 1 Fists of Fire A2 1 Blade Fury A2 1 Blades of Ice A2 1 Dragon Claw seq_swtigerfist 1 Dragon Flight seq_swdragonflight 1 Claws of Thunder A2 1 Attack A2 1 -50 -50 -50 40 40 40 3 1 600 600 196 0 0 163 0 0 163 800 800 196 0 0 243 0 0 243 1000 1000 196 0 0 323 0 0 323 1 0 +shadowmaster 418 shadowmaster 0 Shadow Master shadowmaster ShadowMaster k9 1 1 1 1 0 0 shadow shadow 11 10 10 10 20 10 5 20 24 13 100 100 100 279 1 1 1 1 1 1 1 1 1 Fists of Fire A2 1 Blade Fury A2 1 Blades of Ice A2 1 Dragon Claw seq_swtigerfist 1 Dragon Flight seq_swdragonflight 1 Claws of Thunder A2 1 -50 -50 -50 40 40 40 2 1 600 600 196 0 0 163 0 0 163 800 800 196 0 0 243 0 0 243 1000 1000 196 0 0 323 0 0 323 1 0 +druidhawk 419 druidhawk 0 Druid Hawk druidhawk druidhawk Raven hk 1 1 1 10 20 0 raven raven 10 10 10 10 10 10 6 6 6 5 5 5 75 75 75 35 35 35 1 1 1 1 1 1 1 1 Raven NU 0 -50 -50 -50 2 Raven 1 5 20 32 25 20 32 25 20 32 25 0 +spiritwolf 420 spiritwolf fenris 0 Druid Spirit Wolf spiritwolf fenris DruidWolf wf 1 1 1 10 13 0 wolf wolf 10 10 10 10 22 22 22 20 20 20 14 14 14 20 20 20 26 26 26 1 1 1 1 1 1 1 1 Teleport 2 S1 1 100 100 100 -75 -75 -75 4 Summon Spirit Wolf 1 5 60 82 67 50 105 127 67 50 120 154 67 50 0 +fenris 421 spiritwolf 1 Druid Fenris fenris fenris DruidWolf wf 1 1 1 10 13 0 wolf wolf 10 10 10 10 22 22 22 20 20 20 25 25 25 24 24 24 30 30 30 1 1 1 1 1 1 1 1 fenris rage A1 1 Teleport 2 S1 1 100 100 100 -75 -75 -75 4 Summon Fenris 1 5 98 130 116 150 113 145 116 150 128 160 116 150 0 +spiritofbarbs 422 spiritofbarbs heartofwolverine 0 Spirit of Barbs spiritofbarbs Totem x4 1 1 1 6 6 0 druidspirit druidspirit 8 10 10 10 20 20 20 30 30 30 30 30 30 20 20 20 0 0 0 1 1 1 1 1 1 1 -50 -50 -50 25 25 25 25 70 25 25 25 25 25 100 25 25 25 25 25 100 3 1 200 226 196 400 426 196 1000 1052 196 0 +heartofwolverine 423 spiritofbarbs oaksage 1 Heart of Wolverine heartofwolverine Totem x3 1 1 1 6 6 0 druidspirit druidspirit 8 10 10 10 20 20 20 30 30 30 30 30 30 20 20 20 0 0 0 1 1 1 1 1 1 1 -50 -50 -50 25 25 25 25 70 25 25 25 25 25 100 25 25 25 25 25 100 3 1 128 144 123 328 344 123 856 888 123 0 +oaksage 424 spiritofbarbs 2 Oak Sage oaksage Totem xw 1 1 1 6 6 0 druidspirit druidspirit 8 10 10 10 20 20 20 30 30 30 30 30 30 20 20 20 0 0 0 1 1 1 1 1 1 1 -50 -50 -50 25 25 25 25 70 25 25 25 25 25 100 25 25 25 25 25 100 3 1 112 128 49 412 428 49 1224 1256 49 0 +plaguepoppy 425 plaguepoppy 0 Druid Plague Poppy plaguepoppy Vines k9 1 1 1 40 40 0 8 8 8 50 50 50 20 20 20 15 15 15 10 10 10 35 35 35 1 1 1 1 1 1 Vine Attack S1 1 -50 -50 -50 3 1 42 58 25 63 87 25 84 116 25 0 +cycleoflife 426 cycleoflife 0 Druid Cycle of Life cycleoflife CycleOfLife k9 1 1 1 40 40 0 8 8 8 35 35 35 20 20 20 15 15 15 10 10 10 35 35 35 1 1 1 1 1 1 CorpseCycler S1 1 -50 -50 -50 3 1 5 80 110 92 120 165 92 160 220 92 0 +vinecreature 427 vinecreature 0 Vine Creature vinecreature CycleOfLife k9 1 1 1 40 40 0 8 8 8 35 35 35 20 20 20 15 15 15 10 10 10 35 35 35 1 1 1 1 1 1 VineCycler S1 1 -50 -50 -50 3 1 5 138 192 165 207 291 165 276 384 165 0 +druidbear 428 druidbear 0 Druid Bear druidbear druidbear DruidBear b7 1 1 1 7 9 0 bear bear 11 10 10 10 15 15 15 40 40 40 50 50 50 0 0 0 0 0 0 1 1 1 1 1 1 1 BearSmite seq_bearsmite 1 100 100 100 -75 -75 -75 5 Summon Grizzly 1 5 550 750 245 300 1100 1500 245 300 1650 2250 245 300 0 +eagle 429 eagle 0 Eagle eagle Idle eg 1 1 1 6 6 0 foulcrow foulcrow 15 15 15 1 1 1 1 1 1 100 100 100 -50 -50 -50 2 1 48 48 48 5 36 58 95 4 14 93 115 184 102 4 15 138 199 319 110 5 20 183 0 +wolf 430 wolf 0 Wolf wolf NecroPet 40 1 1 1 6 6 0 werewolf werewolf 14 10 10 10 1 1 1 1 1 100 100 100 -50 -50 -50 2 1 8 8 8 5 16 25 37 2 6 14 2 6 14 46 74 40 2 6 20 2 6 20 79 127 43 2 7 27 2 7 27 0 +bear 431 bear 0 Bear bear NecroPet TG 1 1 1 6 6 0 werebear werebear 14 10 10 10 1 1 1 1 1 100 100 100 -50 -50 -50 2 1 12 19 30 1 5 28 34 54 33 1 5 40 57 92 35 2 7 53 0 +barricadedoor1 432 barricadedoor1 barricadedoor2 0 Barricade Door barricadedoor1 Idle AJ 1 1 1 0 0 0 26 35 67 barricadedoor barricadedoor 6 15 15 15 1 1 1 50 1000 50 1000 50 66 1000 95 152 88 150 200 35 150 200 35 0 +barricadedoor2 433 barricadedoor1 1 Barricade Door barricadedoor2 Idle AG 1 1 1 0 0 0 26 35 67 barricadedoor barricadedoor 6 15 15 15 1 1 1 50 1000 50 1000 50 66 1000 95 152 88 150 200 35 150 200 35 0 +prisondoor 434 prisondoor 0 Prison Door prisondoor Idle 2Q 1 1 1 0 0 0 26 35 67 6 15 15 15 1 1 1 25 25 25 25 25 1000 25 25 25 25 25 1000 25 25 25 25 66 1000 49 95 88 50 95 30 50 95 30 0 +barricadetower 435 barricadetower 0 Barricade Tower barricadetower construct SiegeTower ac 1 1 1 0 0 0 15 35 67 guardtower guardtower 6 15 15 15 40 40 40 1 1 50 1000 50 1000 75 110 66 1000 385 576 88 700 800 35 700 800 35 2 0 +reanimatedhorde1 436 reanimatedhorde1 reanimatedhorde2 0 RotWalker reanimatedhorde1 zombie ReanimatedHorde re 1 2 4 1 5 2 31 61 81 reanimatedhorde reanimatedhorde 10 15 14 13 30 45 55 20 15 12 12 15 18 20 25 30 20 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 70 70 50 33 130 70 2 45 45 45 5 115 171 107 128 31 86 139 31 86 93 110 135 70 105 70 110 135 60 120 100 110 135 70 105 70 110 135 60 120 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +reanimatedhorde2 437 reanimatedhorde1 reanimatedhorde3 0 ReanimatedHorde reanimatedhorde2 zombie ReanimatedHorde re 1 2 4 1 5 2 33 62 82 reanimatedhorde reanimatedhorde 10 15 14 13 40 55 65 20 15 12 12 15 18 25 30 35 25 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 80 80 50 33 150 80 2 47 47 47 5 114 171 107 135 34 86 138 34 86 93 110 135 70 105 70 110 135 60 120 100 110 135 70 105 70 110 135 60 120 100 Act 5 H2H B Act 5 Champ A Act 5 Unique A Act 5 (N) H2H B Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +reanimatedhorde3 438 reanimatedhorde1 reanimatedhorde4 0 ProwlingDead reanimatedhorde3 zombie ReanimatedHorde re 1 2 4 2 5 2 35 63 83 reanimatedhorde reanimatedhorde 10 15 14 13 50 65 70 20 15 12 12 15 18 25 35 40 25 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 90 90 50 33 170 90 2 50 50 50 5 114 171 107 143 32 87 139 32 87 93 110 135 70 105 70 110 135 60 120 100 110 135 70 105 70 110 135 60 120 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +reanimatedhorde4 439 reanimatedhorde1 reanimatedhorde5 0 UnholyCorpse reanimatedhorde4 zombie ReanimatedHorde re 1 2 4 2 5 2 40 64 84 reanimatedhorde reanimatedhorde 10 15 14 13 60 70 80 20 15 12 12 15 18 30 40 40 30 30 30 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 20 50 70 20 50 100 50 50 33 50 100 2 50 50 50 5 114 171 107 164 33 89 138 33 89 93 110 135 70 105 70 110 135 60 120 100 110 135 70 105 70 110 135 60 120 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +reanimatedhorde5 440 reanimatedhorde1 reanimatedhorde6 0 DefiledWarrior reanimatedhorde5 zombie ReanimatedHorde re 1 2 4 3 5 2 42 65 85 reanimatedhorde reanimatedhorde 10 15 14 13 70 80 85 20 15 12 12 15 18 35 45 45 35 35 35 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 50 70 50 100 50 50 33 50 100 2 50 50 50 5 114 170 107 173 35 89 138 35 89 93 110 135 70 105 70 110 135 60 120 100 110 135 70 105 70 110 135 60 120 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +siegebeast1 441 siegebeast1 siegebeast2 0 Siege Beast siegebeast1 siegebeast SiegeBeast ox 1 imp1 1 3 4 1 1 3 7 1 37 59 81 siegebeast siegebeast 10 15 14 13 25 25 25 50 60 65 1 2 3 15 15 15 1 2 3 50 50 50 100 100 100 1 1 1 1 1 Fixed Siege Beast Stomp A2 1 MonCharge seq_siegebeastcharge 1 100 100 100 -50 -40 -33 50 110 33 50 2 50 50 50 5 379 379 88 287 92 122 251 360 420 90 260 140 220 170 360 420 90 260 140 220 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +siegebeast2 442 siegebeast1 siegebeast3 0 CrushBiest siegebeast2 siegebeast SiegeBeast ox 1 imp2 1 3 4 1 1 3 8 1 38 60 81 siegebeast siegebeast 10 15 14 13 25 25 25 50 65 70 1 2 4 15 15 15 1 2 4 50 50 50 100 100 100 1 1 1 1 1 Fixed Siege Beast Stomp A2 2 MonCharge seq_siegebeastcharge 2 100 100 100 -50 -40 -33 50 120 33 50 2 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 360 420 90 260 140 220 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +siegebeast3 443 siegebeast1 siegebeast4 0 BloodBringer siegebeast3 siegebeast SiegeBeast ox 1 imp3 1 3 4 1 1 4 9 1 38 60 81 siegebeast siegebeast 10 15 14 13 25 25 25 50 70 75 1 3 4 15 15 15 1 2 4 50 50 50 100 100 100 1 1 1 1 1 Fixed Siege Beast Stomp A2 3 MonCharge seq_siegebeastcharge 3 100 100 100 -50 -40 -33 50 75 33 120 2 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 360 420 90 260 140 220 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +siegebeast4 444 siegebeast1 siegebeast5 0 GoreBearer siegebeast4 siegebeast SiegeBeast ox 1 imp4 1 3 4 1 1 5 10 1 38 63 84 siegebeast siegebeast 10 15 14 13 25 25 25 50 75 80 1 3 5 15 15 15 1 3 4 50 50 50 100 100 100 1 1 1 1 1 Fixed Siege Beast Stomp A2 4 MonCharge seq_siegebeastcharge 5 100 100 100 -50 -40 -33 50 75 33 130 2 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 360 420 90 260 140 220 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +siegebeast5 445 siegebeast1 0 DeamonSteed siegebeast5 siegebeast SiegeBeast ox 1 imp5 1 3 4 1 1 6 11 1 38 64 85 siegebeast siegebeast 10 15 14 13 25 25 25 50 80 85 1 3 5 15 15 15 1 3 5 50 50 50 100 100 100 1 1 1 1 Fixed Siege Beast Stomp A2 5 MonCharge seq_siegebeastcharge 7 100 100 100 -50 -40 -33 50 75 33 140 2 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 360 420 90 260 140 220 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +snowyeti1 446 snowyeti1 snowyeti2 0 SnowYeti1 snowyeti1 snowyeti Brute io 1 3 4 5 8 1 40 61 82 brute brute 10 15 14 13 0 0 0 90 90 94 40 50 50 1 1 1 1 100 100 100 -20 -15 -10 20 75 25 85 40 25 150 2 50 50 50 5 190 227 107 198 33 89 138 45 97 93 155 210 85 110 65 115 95 75 110 85 155 210 85 110 65 115 95 75 110 85 A1 stun 100 32 48 50 100 75 100 50 100 75 100 50 A2 cold 33 33 33 55 50 33 33 55 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +snowyeti2 447 snowyeti1 snowyeti3 0 SnowYeti2 snowyeti2 snowyeti Brute io 1 3 4 6 6 1 41 61 83 brute brute 10 15 14 13 0 0 0 90 91 95 40 40 40 1 1 1 1 100 100 100 -20 -15 -10 30 75 25 85 40 25 170 2 50 50 50 5 190 228 107 204 31 85 138 43 97 93 155 210 85 110 65 115 95 75 110 85 155 210 85 110 65 115 95 75 110 85 A1 stun 100 46 61 100 100 75 100 100 100 75 100 100 A2 cold 33 33 33 55 50 33 33 55 75 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +snowyeti3 448 snowyeti1 snowyeti4 0 SnowYeti3 snowyeti3 snowyeti Brute io 1 3 4 7 7 1 42 62 84 brute brute 10 15 14 13 0 0 0 90 92 96 40 30 30 1 1 1 1 100 100 100 -15 -10 -5 75 85 40 25 190 2 50 50 50 5 190 227 107 209 35 89 138 43 97 93 155 210 85 110 65 115 95 75 110 85 155 210 85 110 65 115 95 75 110 85 A1 stun 100 61 76 150 100 75 100 150 100 75 100 150 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +snowyeti4 449 snowyeti1 0 SnowYeti4 snowyeti4 snowyeti Brute io 1 3 4 7 7 1 43 63 85 brute brute 10 15 14 13 0 0 0 90 93 97 40 60 60 1 1 1 1 100 100 100 -15 -10 -5 75 85 40 25 210 2 50 50 50 5 189 228 107 215 34 86 138 41 97 92 155 210 85 110 65 115 95 75 110 85 155 210 85 110 65 115 95 75 110 85 A1 stun 100 74 88 200 100 75 100 200 100 75 100 200 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +wolfrider1 450 wolfrider1 wolfrider2 0 WolfRider1 wolfrider1 Idle wr 3 4 1 1 2 2 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +wolfrider2 451 wolfrider1 wolfrider3 1 WolfRider2 wolfrider2 Idle wr 3 4 1 1 2 2 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +wolfrider3 452 wolfrider1 2 WolfRider3 wolfrider3 Idle wr 3 4 1 1 2 2 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +minion1 453 minion1 minion2 0 Minionexp minion1 minion Minion xx 1 2 4 7 10 2 31 58 79 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 50 50 1 1 1 1 1 100 85 75 -50 -40 -33 25 50 25 25 66 15 130 15 2 50 50 50 5 190 238 101 167 76 96 151 91 111 162 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +minion2 454 minion1 minion3 2 Slayerexp minion2 minion Minion xx 1 2 4 7 10 2 33 59 81 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 45 45 1 1 1 1 1 100 85 75 -50 -40 -33 25 105 15 33 15 2 50 50 50 5 190 237 101 176 77 96 151 91 115 163 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +minion3 455 minion1 minion4 1 IceBoar minion3 minion Minion xx 1 2 4 7 10 2 35 60 80 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 40 40 1 1 1 1 1 100 85 75 -50 -40 -33 25 33 15 140 15 2 50 50 50 5 189 237 101 186 78 96 151 91 114 162 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minion4 456 minion1 minion5 3 FireBoar minion4 minion Minion xx 1 2 4 7 10 2 36 60 81 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 35 35 1 1 1 1 1 100 85 75 -50 -40 -33 25 110 15 33 15 2 50 50 50 5 190 237 101 191 74 96 151 87 114 164 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minion5 457 minion1 minion6 4 HellSpawn minion5 minion Minion xx 1 2 4 7 10 2 37 62 81 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 60 60 1 1 1 1 1 1 100 85 75 -50 -40 -33 33 115 15 33 15 2 50 50 50 5 190 237 101 197 74 96 151 92 114 163 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minion6 458 minion1 minion7 5 IceSpawn minion6 minion Minion xx 1 2 4 7 10 2 40 64 81 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 45 45 1 1 1 1 1 100 85 75 -50 -40 -33 33 33 15 150 15 2 50 50 50 5 190 237 101 214 77 97 151 93 117 163 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minion7 459 minion1 minion8 6 GreaterHellSpawn minion7 minion Minion xx 1 3 5 7 10 2 41 65 82 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 50 50 1 1 1 1 1 1 100 85 75 -50 -40 -33 33 120 15 33 15 2 50 50 50 5 190 236 101 220 74 97 151 89 112 163 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +minion8 460 minion1 minion9 7 GreaterIceSpawn minion8 minion Minion xx 1 3 5 7 10 2 42 66 82 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 55 55 1 1 1 1 1 100 85 75 -50 -40 -33 33 33 15 160 15 2 50 50 50 5 190 237 101 226 77 97 151 93 116 163 100 125 100 80 75 100 100 70 115 110 100 125 100 80 75 100 100 70 115 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +suicideminion1 461 suicideminion1 suicideminion2 0 FanaticMinion suicideminion1 minion SuicideMinion xy 1 1 1 10 10 2 31 58 79 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 100 85 75 -50 -40 -33 25 25 25 66 15 130 15 2 50 50 50 5 38 57 84 178 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +suicideminion2 462 suicideminion1 suicideminion3 1 BerserkSlayer suicideminion2 minion SuicideMinion xy 1 1 1 10 10 2 33 59 79 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 100 85 75 -50 -40 -33 30 30 25 105 15 33 15 2 50 50 50 5 39 58 84 188 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +suicideminion3 463 suicideminion1 suicideminion4 2 ConsumedIceBoar suicideminion3 minion SuicideMinion xy 1 1 1 10 10 2 35 60 80 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 100 85 75 -50 -40 -33 35 35 25 33 15 140 15 2 50 50 50 5 38 57 84 198 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +suicideminion4 464 suicideminion1 suicideminion5 3 ConsumedFireBoar suicideminion4 minion SuicideMinion xy 1 1 1 10 10 2 36 61 80 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 100 85 75 -50 -40 -33 40 40 25 110 15 33 15 2 50 50 50 5 38 57 84 204 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +suicideminion5 465 suicideminion1 suicideminion6 4 FrenziedHellSpawn suicideminion5 minion SuicideMinion xy 1 1 1 10 10 2 37 62 81 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 1 100 85 75 -50 -40 -33 20 70 20 100 33 20 115 15 33 15 2 50 50 50 5 39 57 84 210 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +suicideminion6 466 suicideminion1 suicideminion7 5 FrenziedIceSpawn suicideminion6 minion SuicideMinion xy 1 1 1 10 10 2 40 64 81 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 100 85 75 -50 -40 -33 35 35 33 33 15 150 15 2 50 50 50 5 38 58 84 228 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +suicideminion7 467 suicideminion1 suicideminion8 6 InsaneHellSpawn suicideminion7 minion SuicideMinion xy 1 1 1 10 10 2 41 65 82 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 1 100 85 75 -50 -40 -33 40 40 33 120 15 33 15 2 50 50 50 5 39 58 84 234 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +suicideminion8 468 suicideminion1 7 InsaneIceSpawn suicideminion8 minion SuicideMinion xy 1 1 1 10 10 1 42 66 82 suicideminion suicideminion 11 15 14 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 100 85 75 -50 -40 -33 20 70 20 100 33 20 33 15 160 15 2 50 50 50 5 39 57 84 241 100 150 20 40 85 70 100 150 20 40 85 70 100 150 0 +succubus1 469 succubus1 succubus2 0 Succubusexp succubus1 succubus Succubus 0B 1 1 2 3 10 10 1 32 61 82 succubus succubus 10 15 14 13 90 91 93 50 25 10 50 50 50 15 20 20 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 1 Blood Mana S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 10 120 50 50 25 2 42 42 42 5 96 152 107 121 46 86 125 60 90 115 90 50 90 155 60 90 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubus2 470 succubus1 succubus3 1 VileTemptress succubus2 succubus Succubus 0B 1 1 2 4 11 11 1 34 61 82 succubus succubus 10 15 14 13 90 91 94 50 25 10 50 50 50 20 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 1 Blood Mana S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 10 66 50 50 110 2 44 44 44 5 95 152 107 127 46 82 125 60 90 115 90 50 90 155 60 90 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubus3 471 succubus1 succubus4 2 StygianHarlot succubus3 succubus Succubus 0B 1 1 3 4 12 12 1 35 62 83 succubus succubus 10 15 14 13 90 92 94 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 2 Blood Mana S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 10 66 100 50 25 2 46 46 46 5 95 152 107 131 46 87 126 60 90 115 90 50 90 155 60 90 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +succubus4 472 succubus1 succubus5 3 Hell Temptress succubus4 succubus Succubus 0B 1 1 3 5 13 13 1 40 63 84 succubus succubus 10 15 14 13 90 92 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 2 Blood Mana S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 100 66 50 50 25 2 50 50 50 5 96 152 107 150 45 85 125 60 90 115 90 50 90 155 60 90 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +succubus5 473 succubus1 succubus6 4 Blood Temptress succubus5 succubus Succubus 0B 1 1 4 5 14 14 1 42 64 85 succubus succubus 10 15 14 13 90 93 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 1 100 85 75 -50 -40 -33 25 66 50 50 120 2 50 50 50 5 95 152 107 159 47 85 125 60 90 115 90 50 90 155 60 90 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +succubuswitch1 474 succubuswitch1 succubuswitch2 0 Dominus succubuswitch1 succubus SuccubusWitch 0C 1 1 2 3 7 7 1 32 60 81 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 0 0 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 1 Blood Mana S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 10 66 66 140 25 2 46 46 46 5 96 152 107 122 46 86 137 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubuswitch2 475 succubuswitch1 succubuswitch3 1 VileWitch succubuswitch2 succubus SuccubusWitch 0C 1 1 2 4 8 8 1 34 61 82 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 25 35 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 1 Blood Mana S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 10 110 66 50 25 2 49 49 49 5 95 152 107 130 46 82 138 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubuswitch3 476 succubuswitch1 succubuswitch4 2 StygianFury succubuswitch3 succubus SuccubusWitch 0C 1 1 3 4 9 9 1 35 62 83 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 40 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 2 Blood Mana S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 100 25 66 50 25 2 50 50 50 5 95 152 107 133 46 87 139 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +succubuswitch4 477 succubuswitch1 succubuswitch5 3 Blood Witch succubuswitch4 succubus SuccubusWitch 0C 1 1 3 5 10 10 1 40 63 84 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 50 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 2 Blood Mana S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 10 120 66 50 25 2 50 50 50 5 96 152 107 153 45 85 138 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +succubuswitch5 478 succubuswitch1 succubuswitch6 4 Hell Witch succubuswitch5 succubus SuccubusWitch 0C 1 1 4 5 12 12 1 42 64 85 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 50 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 1 100 85 75 -50 -40 -33 80 100 25 25 66 160 25 2 50 50 50 5 95 152 107 161 47 85 138 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) Cast C Act 5 (H) Champ C Act 5 (H) Unique C 0 +overseer1 479 overseer1 overseer2 0 OverSeer overseer1 overseer Overseer os 1 minion1 1 2 4 1 2 4 4 1 33 58 80 overseer overseer 10 15 14 13 250 250 250 50 50 50 50 50 50 17 17 17 7 7 7 100 100 100 50 30 30 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 33 20 120 3 43 43 43 5 380 380 84 121 62 120 126 101 205 93 150 190 90 125 60 110 135 90 160 105 150 190 90 125 60 110 135 90 160 334 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +overseer2 480 overseer1 overseer3 1 Lasher overseer2 overseer Overseer os 1 minion2 1 2 4 1 2 4 4 1 34 59 81 overseer overseer 10 15 14 13 250 250 250 55 55 55 50 50 50 17 17 17 7 7 7 100 100 100 50 40 40 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 33 20 130 3 44 44 44 5 379 379 84 124 60 119 125 101 201 93 150 190 90 125 60 110 135 90 160 105 150 190 90 125 60 110 135 90 160 334 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +overseer3 481 overseer1 overseer4 2 OverLord overseer3 overseer Overseer os 1 minion3 1 2 4 1 2 5 5 1 36 61 82 overseer overseer 10 15 14 13 250 250 250 60 60 60 50 50 50 17 17 17 7 7 7 100 100 100 50 50 50 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 33 20 140 3 47 47 47 5 379 379 84 131 61 118 125 101 201 94 150 190 90 125 60 110 135 90 160 105 150 190 90 125 60 110 135 90 160 334 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +overseer4 482 overseer1 overseer5 3 BloodBoss overseer4 overseer Overseer os 1 minion4 1 2 4 1 2 5 5 1 37 62 83 overseer overseer 10 15 14 13 250 250 250 65 65 65 50 50 50 17 17 17 7 7 7 100 100 100 50 45 45 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 33 20 150 3 48 48 48 5 379 379 84 135 61 122 126 105 205 93 150 190 90 125 60 110 135 90 160 105 150 190 90 125 60 110 135 90 160 334 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +overseer5 483 overseer1 overseer6 4 HellWhip overseer5 overseer Overseer os 1 minion5 1 2 4 2 3 6 6 1 39 60 81 overseer overseer 10 15 14 13 250 250 250 70 70 70 50 50 50 17 17 17 7 7 7 100 100 100 50 55 55 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 33 20 160 2 50 50 50 5 379 379 84 142 61 117 126 101 201 93 150 190 90 125 60 110 135 90 160 105 150 190 90 125 60 110 135 90 160 334 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +minionspawner1 484 minionspawner1 minionspawner2 0 MinionSpawner minionspawner1 MinionSpawner xa 1 minion1 0 3 NU 1 1 0 0 1 14 58 79 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 151 106 84 93 50 90 75 100 50 90 75 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +minionspawner2 485 minionspawner1 minionspawner3 1 MinionSlayerSpawner minionspawner2 MinionSpawner xa 1 minion2 0 3 NU 1 1 0 0 1 14 59 79 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 50 90 75 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +minionspawner3 486 minionspawner1 minionspawner4 2 MinionIce/fireBoarSpawner minionspawner3 MinionSpawner xa 1 minion3 0 3 NU 1 1 0 0 1 14 60 80 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 50 90 75 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minionspawner4 487 minionspawner1 minionspawner5 3 MinionIce/fireBoarSpawner minionspawner4 MinionSpawner xa 1 minion4 0 3 NU 1 1 0 0 1 14 61 80 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 50 90 75 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minionspawner5 488 minionspawner1 minionspawner6 4 Minionice/hellSpawnSpawner minionspawner5 MinionSpawner xa 1 minion5 0 3 NU 1 1 0 0 1 14 62 81 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 50 90 75 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minionspawner6 489 minionspawner1 minionspawner7 5 MinionIce/fireBoarSpawner minionspawner6 MinionSpawner xa 1 minion6 0 3 NU 1 1 0 0 1 14 64 81 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 50 90 75 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minionspawner7 490 minionspawner1 minionspawner8 6 MinionIce/fireBoarSpawner minionspawner7 MinionSpawner xa 1 minion7 0 3 NU 1 1 0 0 1 14 65 82 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 50 90 75 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +minionspawner8 491 minionspawner1 demonspawner 7 Minionice/hellSpawnSpawner minionspawner8 MinionSpawner xa 1 minion8 0 3 NU 1 1 0 0 1 14 66 82 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 50 90 75 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +imp1 492 imp1 imp2 0 Imp1 imp1 imp Imp ip 1 1 3 4 7 7 1 31 58 80 imp imp 11 15 14 13 25 25 25 14 14 14 10 10 10 12 12 12 impmiss21 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 1 Imp Fire Missile A1 1 Imp Inferno SC 1 100 100 100 -50 -40 -33 25 100 25 33 2 30 30 30 5 45 65 84 113 45 65 110 120 45 65 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +imp2 493 imp1 imp3 1 Imp2 imp2 imp Imp ip 1 1 3 4 7 7 1 33 60 83 imp imp 10 15 14 13 5 5 5 25 25 25 45 55 65 7 7 7 impmiss22 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 1 Imp Fire Missile A1 1 Imp Inferno SC 2 100 100 100 -50 -40 -33 25 105 25 33 2 32 32 32 5 45 65 84 119 45 65 110 120 45 65 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +imp3 494 imp1 imp4 2 Imp3 imp3 imp Imp ip 1 1 3 4 7 7 1 34 59 81 imp imp 10 15 14 13 10 10 10 40 40 40 22 22 22 25 30 35 impmiss23 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 2 Imp Fire Missile A1 1 Imp Inferno SC 3 100 100 100 -50 -40 -33 25 110 25 33 2 33 33 33 5 45 65 84 122 45 65 110 120 45 65 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +imp4 495 imp1 imp5 3 Imp4 imp4 imp Imp ip 1 1 3 4 7 7 1 36 62 84 imp imp 10 15 14 13 13 13 13 60 65 70 impmiss24 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 3 Imp Fire Missile A1 1 Imp Inferno SC 4 100 100 100 -50 -40 -33 25 115 25 33 2 35 35 35 5 45 65 84 129 45 65 110 120 45 65 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +imp5 496 imp1 imp6 4 Imp5 imp5 imp Imp ip 1 1 3 4 7 7 1 38 63 85 imp imp 10 15 14 13 impmiss25 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 3 Imp Fire Missile A1 1 Imp Inferno SC 5 100 100 100 -50 -40 -33 25 120 25 33 2 37 37 37 5 45 65 84 137 45 65 110 120 45 65 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) Cast C Act 5 (H) Champ C Act 5 (H) Unique C 0 +catapult1 497 catapult1 catapult2 0 CatapultS catapult1 Catapult 65 1 1 1 0 0 0 34 60 80 catapult catapult 7 15 15 15 20 22 25 catapultchargedball on 1 1 1000 1000 33 20 1000 191 379 19 130 300 350 35 200 300 350 35 200 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 1 0 +catapult2 498 catapult1 catapult3 1 CatapultE catapult2 Catapult 64 1 1 1 0 0 0 34 60 80 catapult catapult 7 15 15 15 20 22 25 catapultchargedball on 1 1 1000 1000 33 20 1000 191 379 19 130 300 350 35 200 300 350 35 200 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 1 0 +catapult3 499 catapult1 catapult4 2 CatapultSiege catapult3 Catapult 64 1 1 1 0 0 0 32 60 80 catapult catapult 7 15 15 15 20 22 25 catapultchargedball on 1 1 1000 1000 33 20 1000 190 379 19 123 300 350 35 200 300 350 35 200 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 1 0 +catapult4 500 catapult1 3 CatapultW catapult4 Catapult ua 1 1 1 0 0 0 34 60 80 catapult catapult 7 15 15 15 20 22 25 catapultchargedball on 1 1 1000 1000 33 20 1000 191 379 19 130 300 350 35 200 300 350 35 200 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 1 0 +frozenhorror1 501 frozenhorror1 frozenhorror2 0 Frozen Horror1 frozenhorror1 frozenhorror FrozenHorror f0 1 2 3 3 3 1 37 61 82 frozenhorror frozenhorror 10 15 14 13 60 65 70 40 45 50 60 60 60 10 10 10 1 1 1 1 Horror Arctic Blast seq_horrorarcticblast 4 100 85 75 -25 0 33 75 100 25 33 150 33 2 48 48 48 5 285 379 101 242 61 96 126 190 230 100 120 60 110 100 190 230 100 120 60 110 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +frozenhorror2 502 frozenhorror1 frozenhorror3 1 Frozen Horror2 frozenhorror2 frozenhorror FrozenHorror f0 1 2 3 3 3 1 38 61 83 frozenhorror frozenhorror 10 15 14 13 60 70 75 40 45 50 65 65 65 10 10 10 1 1 1 1 1 Horror Arctic Blast seq_horrorarcticblast 4 100 85 75 -15 0 33 75 100 25 33 160 33 2 49 49 49 5 284 379 101 249 59 96 125 190 230 100 120 60 110 100 190 230 100 120 60 110 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +frozenhorror3 503 frozenhorror1 frozenhorror4 2 Frozen Horror3 frozenhorror3 frozenhorror FrozenHorror f0 1 2 3 3 3 1 39 61 84 frozenhorror frozenhorror 10 15 14 13 60 75 80 40 45 50 70 70 70 10 10 10 1 1 1 1 1 Horror Arctic Blast seq_horrorarcticblast 5 100 85 75 0 0 33 75 100 25 33 170 33 2 50 50 50 5 284 379 101 256 61 93 126 190 230 100 120 60 110 100 190 230 100 120 60 110 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H B Act 5 (H) Champ C Act 5 (H) Unique C 0 +frozenhorror4 504 frozenhorror1 frozenhorror5 3 Frozen Horror4 frozenhorror4 frozenhorror FrozenHorror f0 1 2 3 3 3 1 40 63 84 frozenhorror frozenhorror 10 15 14 13 60 80 85 40 45 50 75 75 75 10 10 10 1 1 1 1 1 Horror Arctic Blast seq_horrorarcticblast 5 100 85 75 0 0 33 75 100 25 33 180 33 2 50 50 50 5 285 379 101 263 61 97 125 190 230 100 120 60 110 100 190 230 100 120 60 110 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H B Act 5 (H) Champ C Act 5 (H) Unique C 0 +frozenhorror5 505 frozenhorror1 4 Frozen Horror5 frozenhorror5 frozenhorror FrozenHorror f0 1 2 3 3 3 1 41 64 85 frozenhorror frozenhorror 10 15 14 13 60 85 90 40 45 50 80 80 80 10 10 10 1 1 1 1 1 Horror Arctic Blast seq_horrorarcticblast 6 100 85 75 0 0 33 75 100 25 33 190 33 2 50 50 50 5 284 379 101 271 58 97 126 190 230 100 120 60 110 100 190 230 100 120 60 110 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +bloodlord1 506 bloodlord1 bloodlord2 0 Blood Lord1 bloodlord1 bloodlord BloodLord L3 1 1 2 9 9 1 33 61 82 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 50 55 60 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -50 -40 -30 66 33 110 33 33 33 2 50 50 50 5 284 380 126 240 67 148 189 67 148 189 240 300 130 210 80 150 180 80 150 180 240 300 130 210 80 150 180 80 150 180 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +bloodlord2 507 bloodlord1 bloodlord3 1 Blood Lord2 bloodlord2 bloodlord BloodLord L3 1 1 2 9 9 1 35 61 82 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 60 65 65 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -40 -30 -20 66 33 33 100 33 33 2 50 50 50 5 284 380 126 253 69 151 188 69 151 188 240 300 130 210 80 120 180 80 120 180 240 300 130 210 80 120 180 80 120 180 A1 ltng 33 60 90 33 60 90 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +bloodlord3 508 bloodlord1 bloodlord4 2 Blood Lord3 bloodlord3 bloodlord BloodLord L3 1 1 2 9 9 1 36 61 82 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 70 70 70 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -30 -20 -10 100 33 33 33 33 33 2 50 50 50 5 284 379 126 260 66 148 188 66 148 188 240 300 130 210 80 150 180 80 150 180 240 300 130 210 80 150 180 80 150 180 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +bloodlord4 509 bloodlord1 bloodlord5 3 Blood Lord4 bloodlord4 bloodlord BloodLord L3 1 1 2 9 9 1 40 63 84 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 75 75 75 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -20 -10 -5 66 33 33 33 135 33 2 50 50 50 5 285 379 126 291 69 153 188 69 153 188 240 300 130 210 80 120 180 80 120 180 240 300 130 210 80 120 180 80 120 180 A1 cold 33 30 60 125 33 30 60 175 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +bloodlord5 510 bloodlord1 bloodlord6 4 Blood Lord5 bloodlord5 bloodlord BloodLord L3 1 1 2 9 9 1 43 65 85 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 80 80 80 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 0 0 0 66 33 120 33 33 33 2 50 50 50 5 283 379 126 316 67 149 188 67 149 188 240 300 130 210 80 120 180 80 120 180 240 300 130 210 80 120 180 80 120 180 A1 fire 33 70 80 33 70 80 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +larzuk 511 larzuk 0 Larzuk larzuk human Npc XR 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +drehya 512 drehya 0 Drehya drehya human Npc XS 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +malah 513 malah 0 Malah malah human Npc XT 1 1 1 1 1 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +nihlathak 514 nihlathak 0 Nihlathak Town nihlathak human Npc 0J 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +qual-kehk 515 qual-kehk 0 Qual-Kehk qual-kehk human Npc XV 1 1 1 3 3 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 2 0 +catapultspotter1 516 catapultspotter1 catapultspotter2 0 Catapult Spotter S catapultspotter1 CatapultSpotter k9 1 1 1 0 0 0 15 15 15 8 12 16 25 25 25 25 25 25 10 10 10 10 10 10 1 1 1 Catapult Charged Ball A1 1 Catapult Spike Ball A1 1 CatapultBlizzard A1 1 CatapultPlague A1 1 CatapultMeteor A1 1 2 0 +catapultspotter2 517 catapultspotter1 catapultspotter3 1 Catapult Spotter E catapultspotter2 CatapultSpotter k9 1 1 1 0 0 0 15 15 15 8 12 16 25 25 25 25 25 25 10 10 10 10 10 10 1 1 1 Catapult Charged Ball A1 1 Catapult Spike Ball A1 1 CatapultBlizzard A1 1 CatapultPlague A1 1 CatapultMeteor A1 1 2 0 +catapultspotter3 518 catapultspotter1 catapultspotter4 2 Catapult Spotter Siege catapultspotter3 CatapultSpotter k9 1 1 1 0 0 0 15 15 15 8 12 16 25 25 25 25 25 25 10 10 10 10 10 10 1 1 1 Catapult Charged Ball A1 1 Catapult Spike Ball A1 1 CatapultBlizzard A1 1 CatapultPlague A1 1 CatapultMeteor A1 1 2 0 +catapultspotter4 519 catapultspotter1 3 Catapult Spotter W catapultspotter4 CatapultSpotter k9 1 1 1 0 0 0 15 15 15 8 12 16 25 25 25 25 25 25 10 10 10 10 10 10 1 1 1 Catapult Charged Ball A1 1 Catapult Spike Ball A1 1 CatapultBlizzard A1 1 CatapultPlague A1 1 CatapultMeteor A1 1 2 0 +cain6 520 cain6 0 DeckardCain cain6 human Npc DC 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +tyrael3 521 tyrael3 0 tyrael tyrael3 NpcStationary TY 1 1 1 0 0 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 2 0 +act5barb1 522 act5barb1 0 Act 5 Combatant act5barb1 human NpcBarb 0A 1 1 1 5 14 0 24 55 73 act2hire act2hire 11 15 15 15 15 15 15 85 85 85 15 15 15 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 70 70 70 2 50 50 50 5 571 761 251 32 57 252 60 80 120 50 150 140 30 50 120 50 150 140 0 +act5barb2 523 act5barb2 0 Act 5 Combatant act5barb2 human NpcBarb 0A 1 1 1 5 14 0 30 55 73 act2hire act2hire 11 15 15 15 15 15 15 85 85 85 15 15 15 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 70 70 70 2 50 50 50 5 226 355 212 90 122 251 60 80 120 50 150 140 30 50 120 50 150 140 0 +barricadewall1 524 barricadewall1 barricadewall2 0 Barricade Wall Right barricadewall1 Idle A6 1 1 1 0 0 0 26 59 75 gargoyletrap gargoyletrap 2 15 15 15 1 1 1 50 1000 50 1000 66 20 50 50 1000 0 95 152 88 250 300 35 250 300 35 0 +barricadewall2 525 barricadewall1 1 Barricade Wall Left barricadewall2 Idle AK 1 1 1 0 0 0 26 59 75 gargoyletrap gargoyletrap 2 15 15 15 1 1 1 50 1000 50 1000 66 20 50 50 1000 0 95 152 88 250 300 35 250 300 35 0 +nihlathakboss 526 nihlathakboss 0 Nihlathak nihlathakboss human Nihlathak XU 1 1 1 7 7 0 65 70 92 nihlathak nihlathak 14 15 15 15 30 30 30 20 20 20 80 80 80 75 75 75 8 8 8 1 1 1 1 Imp Teleport A1 1 Overseer Whip A2 1 NihlathakCorpseExplosion A1 1 Horror Arctic Blast seq_nihlathakarctic 20 MinionSpawner A1 1 100 100 100 -50 -40 -33 70 70 70 70 25 33 33 70 70 0 50 50 50 5 191 191 126 277 191 191 110 277 573 573 110 277 Nihlathak Nihlathak Nihlathak Nihlathak (N) Nihlathak (N) Nihlathak (N) Nihlathak (H) Nihlathak (H) Nihlathak (H) 0 +drehyaiced 527 drehyaiced 0 Drehya drehyaiced human NpcOutOfTown XS 1 1 1 2 2 0 mednpc mednpc 15 15 15 1 1 1 1 1 2 0 +evilhut 528 evilhut 0 Evil hut evilhut GenericSpawner 2T 1 imp1 2 5 NU 1 1 40 0 0 0 30 53 81 evilhut evilhut 10 15 15 15 80 80 80 0 0 0 15 15 15 1 1 1 Nest seq_genericspawner 1 50 70 70 70 70 70 70 70 70 0 284 475 63 123 330 400 50 123 330 400 50 123 1 0 +deathmauler1 529 deathmauler1 deathmauler2 0 Death Mauler1 deathmauler1 deathmauler DeathMauler m5 1 4 5 4 4 1 32 58 80 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 15 15 15 50 50 50 1 1 1 1 DeathMaul seq_deathmaulerdig 1 100 85 75 -50 -40 -33 25 50 25 33 50 100 50 2 50 50 50 5 123 152 126 153 51 76 251 115 145 95 105 75 140 115 115 145 95 105 75 140 115 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +deathmauler2 530 deathmauler1 deathmauler3 1 Death Mauler2 deathmauler2 deathmauler DeathMauler m5 1 4 5 4 4 1 35 59 81 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 18 18 18 60 60 60 1 1 1 1 DeathMaul seq_deathmaulerdig 2 100 85 75 -50 -40 -33 33 50 100 50 2 50 50 50 5 124 152 126 166 51 78 251 115 145 95 105 75 140 115 115 145 95 105 75 140 115 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +deathmauler3 531 deathmauler1 deathmauler4 2 Death Mauler3 deathmauler3 deathmauler DeathMauler m5 1 4 5 5 5 1 38 60 81 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 19 19 19 70 70 70 1 1 1 1 DeathMaul seq_deathmaulerdig 3 100 85 75 -50 -40 -33 33 50 50 135 2 50 50 50 5 124 152 126 180 51 76 251 115 145 95 105 75 140 115 115 145 95 105 75 140 115 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +deathmauler4 532 deathmauler1 deathmauler5 3 Death Mauler4 deathmauler4 deathmauler DeathMauler m5 1 4 5 5 5 1 40 61 82 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 20 20 20 80 80 80 1 1 1 1 DeathMaul seq_deathmaulerdig 4 100 85 75 -50 -40 -33 100 25 25 25 2 50 50 50 5 124 152 126 191 53 77 251 115 145 95 105 75 140 115 115 145 95 105 75 140 115 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +deathmauler5 533 deathmauler1 deathmauler6 4 Death Mauler5 deathmauler5 deathmauler DeathMauler m5 1 4 5 6 6 1 41 62 83 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 21 21 21 90 90 90 1 1 1 1 DeathMaul seq_deathmaulerdig 5 100 85 75 -50 -40 -33 33 50 50 145 2 50 50 50 5 123 152 126 196 51 74 251 115 145 95 105 75 140 115 115 145 95 105 75 140 115 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +act5pow 534 act5pow 0 POW act5pow human Wussie 0A 1 1 1 4 7 0 40 55 73 mednpc mednpc 1 15 15 15 1 1 1 1 1 1 100 100 100 -50 -50 -50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 3 5 946 1324 84 1100 1400 95 1100 1400 95 0 +act5barb3 535 act5barb3 act5barb4 0 Act 5 Townguard act5barb3 human Npc 0A 1 1 1 5 14 0 30 55 73 act2hire act2hire 11 15 15 15 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 70 0 5 0 +act5barb4 536 act5barb3 1 Act 5 Townguard act5barb4 human Npc 0A 1 1 1 5 14 0 30 55 73 act2hire act2hire 11 15 15 15 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 0 5 0 +ancientstatue1 537 ancientstatue1 ancientstatue2 0 Ancient Statue 1 ancientstatue1 AncientStatue 0G 1 ancientbarb1 0 2 NU 1 1 5 14 0 40 70 90 15 15 15 1 1 1 1 1 MinionSpawner A1 1 0 0 +ancientstatue2 538 ancientstatue1 ancientstatue3 1 Ancient Statue 2 ancientstatue2 AncientStatue 0H 1 ancientbarb2 0 2 NU 1 1 5 14 0 40 70 90 15 15 15 1 1 1 1 1 MinionSpawner A1 1 0 0 +ancientstatue3 539 ancientstatue1 2 Ancient Statue 3 ancientstatue3 AncientStatue 0I 1 ancientbarb3 0 2 NU 1 1 5 14 0 40 70 90 15 15 15 1 1 1 1 1 MinionSpawner A1 1 0 0 +ancientbarb1 540 ancientbarb1 ancientbarb2 0 Ancient Barbarian 1 ancientbarb1 human Ancient 0D 1 1 1 10 10 0 37 68 87 ancient ancient 10 15 13 11 15 15 15 25 25 25 75 75 75 8 8 8 1 1 MonWhirlwind seq_ancientwhirlwind 1 100 100 100 0 0 0 70 70 70 70 70 70 40 110 50 50 50 0 5 500 600 84 9 14 251 9 14 251 600 800 125 4 7 250 4 7 250 800 1000 125 4 7 250 4 7 250 0 +ancientbarb2 541 ancientbarb1 ancientbarb3 1 Ancient Barbarian 2 ancientbarb2 human Ancient 0F 1 1 1 10 10 0 37 68 87 ancient ancient 10 15 13 11 15 15 15 50 50 50 25 25 25 25 25 25 7 7 7 ancient throwing axe 1 1 MonShout SC 5 100 100 100 -25 -25 -15 70 70 70 70 40 50 100 70 50 0 5 500 600 84 9 14 251 600 800 125 4 7 250 800 1000 125 4 7 250 0 +ancientbarb3 542 ancientbarb1 2 Ancient Barbarian 3 ancientbarb3 human Ancient 0E 1 1 1 10 10 0 37 68 87 ancient ancient 10 15 13 11 15 15 15 50 50 50 75 75 75 1 1 Leap Attack Korlic seq_ancientleap 5 100 100 100 0 0 0 70 70 70 70 70 70 40 70 50 150 50 0 5 500 600 84 9 14 251 9 14 251 600 800 125 4 7 250 4 7 250 800 1000 125 4 7 250 4 7 250 0 +baalthrone 543 baalthrone 0 Baal Throne baalthrone demon BaalThrone 41 1 1 1 6 6 0 60 70 90 baal baal 15 15 15 25 25 25 1 MonDecrepify S3 5 Baal Corpse Explode S3 1 Defense Curse S3 3 Blood Mana S3 3 33 33 33 50 50 50 50 50 50 50 50 50 50 0 50 50 50 5 6336 6336 87 6333 76 111 125 111 179 101 6336 6336 150 6333 75 120 125 110 180 125 6336 6336 150 6333 75 120 125 110 180 125 1 0 +baalcrab 544 baalcrab uberbaal 0 Baal Crab baalcrab demon BaalCrab 42 1 1 1 6 6 0 60 75 99 baalcrab baalcrab 14 15 13 12 1 1 1 1 1 Baal Nova S3 1 Baal Inferno seq_baalinferno 1 Baal Tentacle S2 1 Baal Cold Missiles A1 1 Baal Teleport A1 1 Defense Curse S3 3 Blood Mana S3 3 100 50 20 -15 -15 -15 33 33 33 50 50 50 50 50 50 50 50 50 50 0 1 40 45 55 5 6336 6336 87 6460 106 179 251 136 271 376 6336 6336 150 6460 120 180 250 135 240 250 6336 6336 150 6460 150 190 250 165 240 250 A1 fire 0 100 100 150 100 120 200 A2 frze 0 100 100 160 500 100 120 160 1000 Baal Baal Baal Baalq Baal (N) Baal (N) Baal (N) Baalq (N) Baal (H) Baal (H) Baal (H) Baalq (H) 40 0 1 0 +baaltaunt 545 baaltaunt 0 Baal Taunt baaltaunt demon BaalTaunt K9 1 1 1 12 12 0 0 33 66 15 15 15 3 3 3 10 10 10 20 20 20 1 1 Baal Taunt A1 1 2 0 +putriddefiler1 546 putriddefiler1 putriddefiler2 0 Putrid Defiler1 putriddefiler1 putriddefiler PutridDefiler 45 1 1 1 6 6 1 35 61 80 putriddefiler putriddefiler 10 15 15 15 15 15 15 5 5 5 1 1 1 1 1 1 1 Impregnate S1 1 100 85 75 -50 -40 -33 33 33 33 50 50 50 50 50 50 50 50 100 2 50 50 50 5 114 189 126 149 32 91 126 80 130 65 110 30 90 110 80 130 65 110 30 90 110 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 1 0 +putriddefiler2 547 putriddefiler1 putriddefiler3 1 Putrid Defiler2 putriddefiler2 putriddefiler PutridDefiler 45 1 1 1 6 6 1 37 62 81 putriddefiler putriddefiler 10 15 15 15 15 15 15 5 5 5 1 1 1 1 1 1 1 Impregnate S1 1 100 85 75 -50 -40 -33 33 33 33 50 50 50 50 50 50 50 50 105 2 50 50 50 5 114 190 126 157 31 92 126 80 130 65 110 30 90 110 80 130 65 110 30 90 110 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 1 0 +putriddefiler3 548 putriddefiler1 putriddefiler4 2 Putrid Defiler3 putriddefiler3 putriddefiler PutridDefiler 45 1 1 1 6 6 1 38 63 82 putriddefiler putriddefiler 10 15 15 15 15 15 15 5 5 5 1 1 1 1 1 1 1 Impregnate S1 1 100 85 75 -50 -40 -33 33 33 33 50 50 50 50 50 50 50 50 110 2 50 50 50 5 115 190 126 162 30 88 125 80 130 65 110 30 90 110 80 130 65 110 30 90 110 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 1 0 +putriddefiler4 549 putriddefiler1 putriddefiler5 3 Putrid Defiler4 putriddefiler4 putriddefiler PutridDefiler 45 1 1 1 6 6 1 39 64 83 putriddefiler putriddefiler 10 15 15 15 15 15 15 5 5 5 1 1 1 1 1 1 1 Impregnate S1 1 100 85 75 -50 -40 -33 33 33 33 50 50 50 50 50 50 50 50 115 2 50 50 50 5 114 189 126 166 29 89 126 80 130 65 110 30 90 110 80 130 65 110 30 90 110 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 1 0 +putriddefiler5 550 putriddefiler1 4 Putrid Defiler5 putriddefiler5 putriddefiler PutridDefiler 45 1 1 1 6 6 1 40 65 84 putriddefiler putriddefiler 10 15 15 15 15 15 15 5 5 5 1 1 1 1 1 1 1 Impregnate S1 1 100 85 75 -50 -40 -33 33 33 33 50 50 50 50 50 50 50 50 120 2 50 50 50 5 114 190 126 171 33 93 125 80 130 65 110 30 90 110 80 130 65 110 30 90 110 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 1 0 +painworm1 551 painworm1 painworm2 0 Pain Worm1 painworm1 vilekind VileDog 46 1 2 2 8 10 1 34 61 80 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 100 50 2 44 44 44 5 65 106 84 5 28 60 125 35 65 85 5 30 60 80 35 65 85 5 30 60 80 0 +painworm2 552 painworm1 painworm3 1 Pain Worm2 painworm2 vilekind VileDog 46 1 2 2 8 10 1 35 62 81 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 100 50 2 46 46 46 5 64 106 84 5 32 60 126 35 65 85 5 30 60 80 35 65 85 5 30 60 80 0 +painworm3 553 painworm1 painworm4 2 Pain Worm3 painworm3 vilekind VileDog 46 1 2 2 8 10 1 36 63 82 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 140 2 47 47 47 5 65 106 84 5 31 61 125 35 65 85 5 30 60 80 35 65 85 5 30 60 80 0 +painworm4 554 painworm1 painworm5 3 Pain Worm4 painworm4 vilekind VileDog 46 1 2 2 8 10 1 37 64 83 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 50 100 2 48 48 48 5 65 107 84 5 31 61 126 35 65 85 5 30 60 80 35 65 85 5 30 60 80 0 +painworm5 555 painworm1 4 Pain Worm5 painworm5 vilekind VileDog 46 1 2 2 8 10 1 42 65 84 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 150 2 50 50 50 5 64 106 84 6 31 62 125 35 65 85 5 30 60 80 35 65 85 5 30 60 80 0 +bunny 556 bunny 0 dummy bunny Idle 48 1 3 3 2 2 1 bunny bunny 15 15 15 1 1 1 2 0 +baalhighpriest 557 baalhighpriest 0 Council Member baalhighpriest baalhighpriest councilmember HighPriest HP 1 1 1 10 12 0 40 68 93 councilmember councilmember 11 15 14 13 65 65 65 20 25 25 125 100 75 45 50 50 80 80 80 9 9 9 12 12 12 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 4 ZakarumHeal S1 4 100 75 50 -50 -40 -33 39 39 39 5 190 379 84 225 53 121 93 220 270 100 225 70 150 135 220 270 100 225 70 150 135 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H C Act 5 (H) Champ B Act 5 (H) Unique B 0 +venomlord 558 venomlord 0 VenomLord venomlord megademon Megademon DM 1 2 3 10 16 0 40 68 93 megademon megademon 10 15 14 13 60 75 90 50 60 65 80 95 97 70 70 70 70 70 70 75 60 45 infernoflame1 1 1 1 1 1 MegademonInferno S1 4 100 75 50 -50 -40 -33 70 70 80 100 95 120 2 50 50 50 5 190 379 101 239 57 97 125 300 350 100 239 100 180 200 300 350 100 239 100 180 200 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H C Act 5 (H) Champ B Act 5 (H) Unique B 0 +baalcrabstairs 559 baalcrabstairs 0 Baal Crab to Stairs baalcrabstairs demon BaalToStairs 42 1 1 1 6 6 0 60 70 96 baal baal 15 15 15 4 4 4 1 1 1 1 -50 -40 -33 33 33 33 50 50 50 50 50 50 50 50 50 1 0 +act5hire1 560 act5hire1 act5hire2 0 dummy act5hire1 human Hireable 0A 1 1 1 8 14 0 1 1 1 act2hire act2hire 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 70 70 70 10 5 0 +act5hire2 561 act5hire1 1 dummy act5hire2 human Hireable 0A 1 1 1 8 14 0 1 1 1 act2hire act2hire 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 MonWhirlwind seq_ancientwhirlwind 18 100 100 100 -50 -50 -50 70 70 70 10 5 0 +baaltentacle1 562 baaltentacle1 baaltentacle2 0 Baal Tentacle baaltentacle1 demon BaalTentacle 44 1 2 2 0 0 0 34 67 87 baaltentacle baaltentacle 10 15 15 15 70 70 70 24 24 24 10 10 10 1 1 1 1 100 100 100 -50 -40 -33 25 25 110 2 44 44 44 5 65 106 84 28 87 125 50 80 65 80 120 125 50 80 65 80 120 125 0 +baaltentacle2 563 baaltentacle1 baaltentacle3 1 Baal Tentacle baaltentacle2 demon BaalTentacle 44 1 2 2 0 0 0 35 67 87 baaltentacle baaltentacle 10 15 15 15 80 80 80 22 22 22 10 10 10 1 1 1 1 100 100 100 -50 -40 -33 25 25 115 2 46 46 46 5 64 106 84 32 91 126 50 80 65 80 120 125 50 80 65 80 120 125 0 +baaltentacle3 564 baaltentacle1 baaltentacle4 2 Baal Tentacle baaltentacle3 demon BaalTentacle 44 1 2 2 0 0 0 36 67 87 baaltentacle baaltentacle 10 15 15 15 90 90 90 20 20 20 10 10 10 1 1 1 1 100 100 100 -50 -40 -33 25 25 120 2 47 47 47 5 65 106 84 31 87 125 50 80 65 80 120 125 50 80 65 80 120 125 0 +baaltentacle4 565 baaltentacle1 baaltentacle5 3 Baal Tentacle baaltentacle4 demon BaalTentacle 44 1 2 2 0 0 0 37 67 87 baaltentacle baaltentacle 10 15 15 15 90 90 90 18 18 18 10 10 10 1 1 1 1 100 100 100 -50 -40 -33 25 25 125 2 48 48 48 5 65 107 84 31 92 126 50 80 65 80 120 125 50 80 65 80 120 125 0 +baaltentacle5 566 baaltentacle1 4 Baal Tentacle baaltentacle5 demon BaalTentacle 44 1 2 2 0 0 0 42 67 87 baaltentacle baaltentacle 10 15 15 15 90 90 90 16 16 16 10 10 10 1 1 1 1 100 100 100 -50 -40 -33 25 25 130 2 50 50 50 5 64 106 84 31 93 125 50 80 65 80 120 125 50 80 65 80 120 125 0 +injuredbarb1 567 injuredbarb1 0 dummy injuredbarb1 human Idle 6z 1 3 3 0 0 0 1 1 1 15 15 15 1 1 1 -50 -50 -50 2 0 +injuredbarb2 568 injuredbarb2 0 dummy injuredbarb2 human Idle 7j 1 3 3 0 0 0 1 1 1 15 15 15 1 1 1 -50 -50 -50 2 0 +injuredbarb3 569 injuredbarb3 0 dummy injuredbarb3 human Idle 7i 1 3 3 0 0 0 1 1 1 15 15 15 1 1 1 -50 -50 -50 2 0 +baalclone 570 baalclone 0 Baal Crab Clone baalclone demon BaalCrabClone 42 1 1 1 6 6 0 60 69 95 baal baal 14 15 14 12 1 1 1 1 1 Baal Nova S3 1 Baal Inferno seq_baalinferno 1 Baal Tentacle S2 1 Baal Cold Missiles A1 1 Baal Clone Teleport A1 1 Defense Curse S3 3 Blood Mana S3 3 100 50 20 -15 -15 -15 15 15 15 33 25 25 25 25 50 25 25 25 25 0 1 40 45 55 5 1901 1901 87 106 179 251 136 271 376 2801 2801 160 110 180 250 135 240 250 2801 2801 160 110 180 250 135 240 250 1 0 +baalminion1 571 baalminion1 baalminion2 0 Baals Minion baalminion1 demon BaalMinion 43 1 1 1 8 8 0 55 68 92 baalminion baalminion 10 15 14 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 50 120 33 50 95 2 50 50 50 5 472 660 87 634 30 92 251 15 165 238 430 480 135 247 80 130 210 80 140 210 430 480 135 247 80 130 210 80 140 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 1 0 +baalminion2 572 baalminion1 baalminion3 1 Baals Minion baalminion2 demon BaalMinion 43 1 1 1 8 8 0 57 68 92 baalminion baalminion 10 15 14 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 50 120 33 50 95 2 50 50 50 5 472 661 87 683 32 92 251 15 166 238 430 480 135 247 80 130 210 80 140 210 430 480 135 247 80 130 210 80 140 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 1 0 +baalminion3 573 baalminion1 2 Baals Minion baalminion3 demon BaalMinion 43 1 1 1 8 8 0 60 68 92 baalminion baalminion 10 15 14 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 50 120 33 50 95 2 50 50 50 5 476 666 87 763 30 90 251 17 165 238 430 480 135 247 80 130 210 80 140 210 430 480 135 247 80 130 210 80 140 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 1 0 +worldstoneeffect 574 worldstoneeffect 0 dummy worldstoneeffect Idle K9 1 1 1 12 12 0 15 15 15 1 1 Baal Taunt A1 1 100 100 100 2 0 +sk_archer6 575 sk_archer1 sk_archer7 3 BurningDeadArcher sk_archer6 skeleton SkeletonBow SK 1 1 3 6 4 4 2 32 58 80 sk_archer sk_archer 10 15 14 13 80 90 95 15 14 13 50 50 50 5 5 5 12 12 12 skbowarrow6 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 25 100 75 33 100 33 10 90 50 25 100 2 15 15 15 5 70 100 100 95 3 17 115 70 100 100 95 35 50 115 70 100 100 95 35 50 115 A1 fire 100 50 80 100 50 80 100 50 80 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +sk_archer7 576 sk_archer1 sk_archer8 2 BoneArcher sk_archer7 skeleton SkeletonBow SK 1 1 3 6 4 4 2 35 60 71 sk_archer sk_archer 10 15 14 13 80 92 96 15 14 12 50 50 50 5 5 5 12 12 12 skbowarrow7 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 25 50 110 33 75 110 33 10 25 50 90 110 2 23 23 23 5 70 100 100 95 3 17 115 70 100 100 95 35 50 115 70 100 100 95 35 50 115 A1 cold 100 50 80 25 100 50 80 50 100 50 80 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +sk_archer8 577 sk_archer1 sk_archer9 3 BurningDeadArcher sk_archer8 skeleton SkeletonBow SK 1 1 3 6 5 5 2 38 61 77 sk_archer sk_archer 10 15 14 13 85 94 97 15 13 12 50 50 50 5 5 5 12 12 12 skbowarrow6 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 25 120 75 33 120 33 10 90 50 25 120 2 25 25 25 5 70 100 100 95 3 17 115 70 100 100 95 35 50 115 70 100 100 95 35 50 115 A1 fire 100 50 80 100 50 80 100 50 80 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +sk_archer9 578 sk_archer1 sk_archer10 1 ReturnedArcher sk_archer9 skeleton SkeletonBow SK 1 1 3 6 5 5 2 40 62 83 sk_archer sk_archer 10 15 14 13 85 95 98 15 13 11 50 50 50 5 5 5 12 12 12 skbowarrow7 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 25 130 33 75 130 33 10 25 50 90 130 2 35 35 35 5 70 100 100 95 3 17 115 70 100 100 95 35 50 115 70 100 100 95 35 50 115 A1 cold 100 50 80 25 100 50 80 50 100 50 80 75 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +sk_archer10 579 sk_archer1 sk_archer11 4 HorrorArcher sk_archer10 skeleton SkeletonBow SK 1 1 3 6 5 5 2 41 63 85 sk_archer sk_archer 10 15 14 13 90 95 99 15 12 11 50 50 50 5 5 5 12 12 12 skbowarrow8 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 33 33 33 140 50 50 50 140 33 10 66 66 66 140 2 48 48 48 5 70 100 100 95 10 25 115 70 100 100 95 35 50 115 70 100 100 95 35 50 115 A1 rand 100 50 80 75 100 50 80 100 100 50 80 125 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +bighead6 580 bighead1 bighead7 4 Afflicted bighead6 bighead Bighead BH 1 1 2 3 9 9 1 32 58 70 bighead bighead 10 15 14 13 88 75 75 40 30 30 85 85 85 60 70 80 bighead6 1 1 1 1 1 100 85 75 -50 -40 -33 33 80 50 33 100 75 25 50 100 90 15 2 15 15 15 5 80 130 80 100 50 100 100 80 120 90 125 50 100 110 80 120 90 125 50 100 110 A2 ltng 100 160 200 100 160 200 100 160 200 A1 ltng 15 30 60 35 30 60 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +bighead7 581 bighead1 bighead8 1 Tainted bighead7 bighead Bighead BH 1 1 2 3 9 9 1 34 60 71 bighead bighead 10 15 14 13 86 100 100 40 40 40 85 85 85 60 70 80 bighead6 1 1 1 1 1 100 85 75 -50 -40 -33 50 80 33 75 100 33 25 90 100 50 15 2 15 15 15 5 80 130 80 100 50 100 100 80 120 90 125 50 100 110 80 120 90 125 50 100 110 A2 ltng 100 160 200 100 160 200 100 160 200 A1 ltng 15 30 60 35 30 60 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +bighead8 582 bighead1 bighead9 2 Misshapen bighead8 bighead Bighead BH 1 1 2 3 10 10 1 37 61 77 bighead bighead 10 15 14 13 80 50 50 40 50 50 85 85 85 60 70 80 bighead6 1 1 1 1 1 100 85 75 -50 -40 -33 50 80 50 50 100 50 25 75 100 75 15 2 15 15 15 5 80 130 80 100 50 100 100 80 120 90 125 50 100 110 80 120 90 125 50 100 110 A2 ltng 100 160 200 100 160 200 100 160 200 A1 ltng 15 30 60 35 30 60 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +bighead9 583 bighead1 bighead10 3 Disfigured bighead9 bighead Bighead BH 1 1 2 3 11 11 1 39 62 83 bighead bighead 10 15 14 13 83 0 0 40 40 40 85 85 85 60 70 80 bighead6 1 1 1 1 1 100 85 75 -50 -40 -33 75 80 50 75 100 50 25 90 100 50 15 2 15 15 15 5 80 130 80 100 50 100 100 80 120 90 125 50 100 110 80 120 90 125 50 100 110 A2 ltng 100 160 200 100 160 200 100 160 200 A1 ltng 15 30 60 35 30 60 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +bighead10 584 bighead1 0 Damned bighead10 bighead Bighead BH 1 1 2 3 12 12 1 41 63 85 bighead bighead 10 15 14 13 90 33 33 40 30 30 85 85 85 60 70 80 bighead6 1 1 1 1 1 100 85 75 -50 -40 -33 50 80 75 33 50 100 75 33 25 85 100 85 50 2 15 15 15 5 80 130 80 100 50 100 100 80 120 90 125 50 100 110 80 120 90 125 50 100 110 A2 ltng 100 160 200 100 160 200 100 160 200 A1 ltng 15 30 60 35 30 60 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +goatman6 585 goatman1 goatman7 0 MoonClan goatman6 goatman Goatman GM 1 2 4 10 10 1 32 59 81 goatman goatman 10 15 14 13 75 85 90 10 7 7 80 90 99 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 30 50 100 25 40 50 50 100 25 25 2 20 20 20 5 115 140 90 100 80 140 80 115 140 90 100 80 140 85 115 140 90 100 80 140 85 A1 mana 100 10 20 100 10 20 100 10 20 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +goatman7 586 goatman1 goatman8 1 NightClan goatman7 goatman Goatman GM 1 2 4 10 10 1 35 61 83 goatman goatman 10 15 14 13 75 85 90 10 7 7 80 90 99 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 30 50 100 25 40 50 25 50 135 25 2 20 20 20 5 115 140 90 100 80 140 80 115 140 90 100 80 140 85 115 140 90 100 80 140 85 A1 cold 50 25 50 75 50 25 50 150 50 25 50 225 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +goatman8 587 goatman1 goatman9 2 HellClan goatman8 goatman Goatman GM 1 2 4 10 10 1 38 61 84 goatman goatman 10 15 14 13 80 90 95 10 7 7 80 90 99 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 30 50 100 25 40 50 25 50 155 25 2 20 20 20 5 115 140 90 100 80 140 80 115 140 90 100 80 140 85 115 140 90 100 80 140 85 A1 cold 60 25 50 75 60 25 50 150 60 25 50 225 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +goatman9 588 goatman1 goatman10 3 BloodClan goatman9 goatman Goatman GM 1 2 4 11 11 1 40 62 81 goatman goatman 10 15 14 13 80 90 95 10 7 7 80 90 99 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 30 60 50 100 25 40 50 110 25 50 25 2 20 20 20 5 115 140 90 100 80 140 80 115 140 90 100 80 140 85 115 140 90 100 80 140 85 A1 fire 50 15 33 50 15 33 50 15 33 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +goatman10 589 goatman1 4 DeathClan goatman10 goatman Goatman GM 1 2 4 12 12 1 41 63 84 goatman goatman 10 15 14 13 80 90 95 10 7 7 80 90 99 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 30 30 50 100 50 40 50 33 33 165 50 2 20 20 20 5 115 140 90 100 80 140 80 115 140 90 100 80 140 85 115 140 90 100 80 140 85 A1 cold 50 15 33 25 50 15 33 50 50 15 33 75 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +foulcrow5 590 foulcrow1 foulcrow6 0 FoulCrow foulcrow5 foulcrow BloodHawk BK 1 3 4 9 9 1 32 58 80 foulcrow foulcrow 10 15 15 15 65 65 65 90 90 90 5 10 10 75 75 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 60 40 80 50 33 25 120 2 10 10 10 5 40 55 125 75 90 140 100 40 55 125 75 90 140 100 40 55 125 75 90 140 100 A1 pois 15 10 33 75 15 10 33 150 15 15 33 300 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +foulcrow6 591 foulcrow1 foulcrow7 1 BloodHawk foulcrow6 foulcrow BloodHawk BK 1 3 4 9 9 1 35 60 71 foulcrow foulcrow 10 15 15 15 65 65 65 90 90 90 5 10 10 75 75 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 60 40 80 50 100 25 15 2 10 10 10 5 40 55 125 75 90 140 100 40 55 125 75 90 140 100 40 55 125 75 90 140 100 A1 life 100 10 20 100 10 20 100 10 20 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +foulcrow7 592 foulcrow1 foulcrow8 2 BlackRaptor foulcrow7 foulcrow BloodHawk BK 1 3 4 10 10 1 38 61 77 foulcrow foulcrow 10 15 15 15 65 65 65 90 90 90 5 10 10 75 75 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 60 40 100 50 33 25 15 110 2 10 10 10 5 40 55 125 75 90 140 100 40 55 125 75 90 140 100 40 55 125 75 90 140 100 A1 mana 100 10 33 100 10 33 100 10 33 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +foulcrow8 593 foulcrow1 3 CloudStalker foulcrow8 foulcrow BloodHawk BK 1 3 4 12 12 1 40 62 82 foulcrow foulcrow 10 15 15 15 65 65 65 90 90 90 5 10 10 75 75 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 30 20 60 40 50 100 60 50 100 15 2 10 10 10 5 40 55 125 75 90 140 100 40 55 125 75 90 140 100 40 55 125 75 90 140 100 A1 ltng 50 20 50 50 20 50 50 20 50 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +clawviper6 594 clawviper1 clawviper7 4 ClawViper clawviper6 clawviper ClawViperEx SD 1 1 2 3 6 10 1 32 61 82 clawviper clawviper 10 15 14 13 60 65 65 10 13 15 90 90 90 85 90 90 5 5 5 1 1 1 18 18 18 50 50 50 viper_bonespear 1 1 1 1 1 1 MonCharge seq_serpentcharge 5 100 75 50 -50 -45 -40 50 50 50 75 75 75 25 25 25 90 90 90 2 20 20 20 5 70 95 115 100 30 60 120 65 90 150 100 130 150 70 95 115 100 30 60 120 65 90 150 100 130 150 70 95 115 100 30 60 120 65 90 150 100 130 150 A1 mag 100 50 100 100 50 100 100 50 100 A2 pois 50 33 33 75 50 33 33 100 50 33 33 125 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +clawviper7 595 clawviper1 clawviper8 4 PitViper clawviper7 clawviper ClawViperEx SD 1 1 2 3 6 10 1 35 61 83 clawviper clawviper 10 15 14 13 60 65 65 10 13 15 90 90 90 85 90 90 5 5 5 1 1 1 18 18 18 50 50 50 viper_bonespear 1 1 1 1 1 1 MonCharge seq_serpentcharge 5 100 75 50 -50 -45 -40 25 50 50 50 50 70 70 25 145 110 2 20 20 20 5 70 95 115 100 65 90 150 100 130 150 70 95 115 100 65 90 150 100 130 150 70 95 115 100 65 90 150 100 130 150 A1 mag 100 50 100 100 50 100 100 50 100 A2 pois 50 33 33 75 50 33 33 100 50 33 33 125 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +clawviper8 596 clawviper1 clawviper9 0 Salamander clawviper8 clawviper ClawViperEx SD 1 1 2 3 8 12 1 38 61 77 clawviper clawviper 10 15 14 13 60 65 65 10 13 15 90 90 90 80 80 80 5 5 5 0 0 0 18 18 18 50 50 50 viper_fire 1 1 1 1 1 1 MonCharge seq_serpentcharge 5 100 75 50 -50 -45 -40 75 60 100 75 25 115 25 50 2 20 20 20 5 70 95 115 100 65 90 150 100 130 150 70 95 115 100 45 60 65 90 150 100 130 150 70 95 115 100 45 60 65 90 150 100 130 150 A1 fire 100 100 150 100 100 150 100 100 150 A2 fire 50 30 50 50 30 50 50 30 50 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +clawviper9 597 clawviper1 clawviper10 1 TombViper clawviper9 clawviper ClawViperEx SD 1 1 2 3 8 12 1 40 62 81 clawviper clawviper 10 15 14 13 60 65 65 10 13 15 90 90 90 80 80 80 5 5 5 1 1 1 20 24 28 50 50 50 viper_poisjav 1 1 1 1 1 1 MonCharge seq_serpentcharge 5 100 75 50 -50 -45 -40 60 75 80 100 25 33 100 110 2 20 20 20 5 70 95 115 100 10 25 65 90 150 100 130 150 70 95 115 100 45 60 65 90 150 100 130 150 70 95 115 100 45 60 65 90 150 100 130 150 A1 pois 100 25 25 25 100 25 25 33 100 25 25 50 A2 pois 50 33 33 75 50 33 33 100 50 33 33 125 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +clawviper10 598 clawviper1 1 SerpentMagus clawviper10 clawviper ClawViperEx SD 1 1 2 3 9 14 1 41 63 85 clawviper clawviper 10 15 14 13 60 65 65 10 13 15 90 90 90 80 80 80 5 5 5 2 2 2 18 18 18 50 50 50 viper_bonespear 1 1 1 1 1 1 MonCharge seq_serpentcharge 5 100 75 50 -50 -45 -40 40 20 20 20 20 60 25 70 33 25 115 2 20 20 20 5 70 95 115 100 75 110 150 100 130 150 70 95 115 100 75 110 150 100 130 150 70 95 115 100 75 110 150 100 130 150 A1 mag 100 50 100 100 50 100 100 50 100 A2 mag 100 50 100 100 50 100 100 50 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +sandraider6 599 sandraider1 sandraider7 0 Marauder sandraider6 sandraider SandRaider SR 1 2 3 15 15 1 33 59 66 sandraider sandraider 10 15 9 7 10 10 10 95 95 95 80 80 80 5 5 5 50 50 50 1 1 1 1 1 1 Fire Hit seq_sandraiderflurry 6 100 75 66 -50 -45 -40 80 50 100 70 35 120 85 40 2 35 35 35 5 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 S1 fire 100 100 130 100 100 130 100 100 130 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +sandraider7 600 sandraider1 sandraider8 1 Infidel sandraider7 sandraider SandRaider SR 1 2 3 15 15 1 36 60 72 sandraider sandraider 10 15 9 7 10 10 10 95 95 95 80 80 80 5 5 5 1 1 1 50 50 50 1 1 1 1 1 1 Fire Hit seq_sandraiderflurry 7 100 75 66 -50 -45 -40 35 50 50 150 25 2 35 35 35 5 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 S1 cold 100 100 130 250 100 100 130 250 100 100 130 250 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +sandraider8 601 sandraider1 sandraider9 4 SandRaider sandraider8 sandraider SandRaider SR 1 2 3 15 15 1 39 61 78 sandraider sandraider 10 15 9 7 10 10 10 95 95 95 80 80 80 5 5 5 50 50 50 1 1 1 1 1 1 Fire Hit seq_sandraiderflurry 8 100 75 66 -50 -45 -40 35 125 50 50 25 2 35 35 35 5 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 S1 fire 100 100 130 100 100 130 100 100 130 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +sandraider9 602 sandraider1 sandraider10 3 Invader sandraider9 sandraider SandRaider SR 1 2 3 15 15 1 40 62 82 sandraider sandraider 10 15 9 7 10 10 10 95 95 95 80 80 80 5 5 5 1 1 1 50 50 50 1 1 1 1 1 1 Fire Hit seq_sandraiderflurry 9 100 75 66 -50 -45 -40 35 50 50 160 25 2 35 35 35 5 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 S1 cold 100 100 130 250 100 100 130 250 100 100 130 250 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H B Act 5 (H) Champ B Act 5 (H) Unique B 0 +sandraider10 603 sandraider1 2 Assailant sandraider10 sandraider SandRaider SR 1 2 3 15 15 1 41 63 84 sandraider sandraider 10 15 9 7 10 10 10 95 95 95 80 80 80 5 5 5 50 50 50 1 1 1 1 1 1 Fire Hit seq_sandraiderflurry 10 100 75 66 -50 -45 -40 35 130 50 50 25 2 35 35 35 5 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 120 150 100 120 80 110 150 110 140 180 80 100 250 S1 fire 100 100 130 100 100 130 100 100 130 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +deathmauler6 604 deathmauler1 0 Death Mauler1 deathmauler1 deathmauler DeathMauler m5 1 4 5 4 4 1 32 49 74 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 21 21 21 90 90 90 1 1 1 1 DeathMaul seq_deathmaulerdig 1 100 85 75 -50 -40 -33 25 15 100 15 15 2 50 50 50 5 123 152 126 153 51 76 251 115 145 95 105 75 140 115 115 145 95 105 75 140 115 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +quillrat6 605 quillrat1 quillrat7 0 QuillRat quillrat1 quillrat6 quillrat QuillRat SI 1 1 3 4 6 6 1 32 58 80 quillrat quillrat 10 15 12 9 15 20 26 60 85 95 3 3 3 spike6 1 1 1 100 100 100 -50 -40 -33 40 33 100 50 25 33 2 3 3 3 5 90 120 84 71 51 101 101 30 50 100 90 120 80 70 30 75 65 30 50 100 90 120 80 70 30 75 65 30 50 100 A2 pois 15 30 30 25 15 30 30 33 15 30 30 66 Quill 1 Act 1 Champ A Act 1 Unique A Quill 1 (N) Act 5 (N) Champ A Act 5 (N) Unique A Quill 1 (H) Act 5 (H) Champ A Act 5 (H) Unique A 0 +quillrat7 606 quillrat1 quillrat8 1 SpikeFiend quillrat1 quillrat7 quillrat QuillRat SI 1 1 3 4 6 6 1 32 58 80 quillrat quillrat 10 15 12 9 15 20 26 60 85 95 3 3 3 spike6 1 1 1 100 100 100 -50 -40 -33 50 33 25 50 100 33 2 3 3 3 5 90 120 84 71 51 101 101 30 50 100 90 120 80 70 30 75 65 30 50 100 90 120 80 70 30 75 65 30 50 100 A2 pois 15 30 30 25 15 30 30 33 15 30 30 66 Quill 1 Act 1 Champ A Act 1 Unique A Quill 1 (N) Act 5 (N) Champ A Act 5 (N) Unique A Quill 1 (H) Act 5 (H) Champ A Act 5 (H) Unique A 0 +quillrat8 607 quillrat1 4 RazorSpine quillrat1 quillrat8 quillrat QuillRat SI 1 1 3 4 6 6 1 32 58 80 quillrat quillrat 10 15 12 9 15 20 26 60 85 95 3 3 3 spike6 1 1 1 100 100 100 -50 -40 -33 50 33 25 100 75 33 2 3 3 3 5 90 120 84 71 51 101 101 30 50 100 90 120 80 70 30 75 65 30 50 100 90 120 80 70 30 75 65 30 50 100 A2 pois 15 30 30 25 15 30 30 33 15 30 30 66 Quill 1 Act 1 Champ A Act 1 Unique A Quill 1 (N) Act 5 (N) Champ A Act 5 (N) Unique A Quill 1 (H) Act 5 (H) Champ A Act 5 (H) Unique A 0 +vulture5 608 vulture1 0 CarrionBird vulture1 vulture Vulture VD 1 1 3 4 4 1 14 58 80 vulture vulture 10 15 13 11 90 90 95 8 8 8 75 65 50 30 30 30 70 70 70 1 1 1 100 100 100 -50 -40 -33 80 10 33 100 2 15 15 15 5 67 107 84 83 91 121 94 60 90 85 80 80 110 85 60 90 85 80 80 110 85 A1 pois 25 33 33 50 25 33 33 75 25 33 33 100 Swarm 1 Act 2 Champ A Act 2 Unique A Swarm 1 (N) Act 5 (N) Champ A Act 5 (N) Unique A Swarm 1 (H) Act 5 (H) Champ A Act 5 (H) Unique A 1 1 0 +thornhulk5 609 thornhulk1 0 ThornedHulk thornhulk1 thornhulk ThornHulk TH 1 1 2 6 6 1 27 58 80 thornhulk thornhulk 10 15 13 12 100 100 100 15 15 15 10 10 10 55 55 55 5 3 1 5 5 5 1 1 1 1 1 MonFrenzy A2 5 100 85 75 -50 -40 -33 66 100 40 66 4 27 27 27 5 152 247 84 133 89 148 93 77 148 93 190 250 140 130 90 160 140 75 150 180 190 250 140 130 90 160 140 75 150 180 A2 stun 100 7 100 7 100 7 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +slinger7 610 slinger1 slinger8 0 Slinger slinger1 pantherwoman PantherJavelin PW 1 1 3 4 12 16 1 19 58 80 slinger slinger 10 15 13 12 90 90 90 85 85 85 9 9 9 25 25 25 12 12 12 20 24 28 pantherjav5 1 1 1 1 100 100 100 -50 -40 -33 25 110 15 15 15 2 19 19 19 5 53 86 58 67 47 116 93 55 85 95 80 50 80 125 55 85 95 80 50 80 125 A1 ltng 100 40 60 100 40 60 100 40 60 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +slinger8 611 slinger1 slinger9 1 Slinger slinger1 pantherwoman PantherJavelin PW 1 1 3 4 12 16 1 19 59 81 slinger slinger 10 15 13 12 90 90 90 85 85 85 9 9 9 25 25 25 12 12 12 20 24 28 pantherjav5 1 1 1 1 100 100 100 -50 -40 -33 25 50 25 50 15 150 15 2 19 19 19 5 53 86 58 67 47 116 93 55 85 95 80 50 80 125 55 85 95 80 50 80 125 A1 cold 100 40 60 50 100 40 60 100 100 40 60 150 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +slinger9 612 slinger1 1 Slinger slinger1 pantherwoman PantherJavelin PW 1 1 3 4 12 16 1 19 60 81 slinger slinger 10 15 13 12 90 90 90 85 85 85 9 9 9 25 25 25 12 12 12 20 24 28 pantherjav5 1 1 1 1 100 100 100 -50 -40 -33 25 25 25 25 50 25 50 50 50 100 2 19 19 19 5 53 86 58 67 47 116 93 55 85 95 80 50 80 125 55 85 95 80 50 80 125 A1 fire 100 40 60 100 40 60 100 40 60 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +cr_archer6 613 cr_archer1 cr_archer7 1 VileArcher cr_archer1 corruptrogue CorruptArcher CR 1 1 3 4 8 12 1 5 59 81 cr_archer cr_archer 10 15 13 11 70 75 80 80 92 95 12 10 9 35 45 55 24 24 24 20 25 30 15 15 15 16 16 16 1 1 1 1 1 MonBow A1 1 MonFireArrow A1 9 MonExplodingArrow A1 7 100 100 100 -50 -40 -33 50 25 15 115 50 15 2 15 15 15 5 93 131 84 91 30 60 255 55 95 90 100 30 60 150 55 95 90 100 30 60 150 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +cr_archer7 614 cr_archer1 cr_archer8 2 DarkArcher cr_archer1 corruptrogue CorruptArcher CR 1 1 3 4 8 12 1 5 61 82 cr_archer cr_archer 10 15 13 11 70 75 80 80 92 95 12 10 9 35 45 55 24 24 24 20 25 30 15 15 15 16 16 16 1 1 1 1 1 MonBow A1 1 MonColdArrow A1 9 MonFreezingArrow A1 7 100 100 100 -50 -40 -33 25 25 50 15 50 50 140 15 2 15 15 15 5 93 131 84 91 30 60 255 55 95 90 100 30 60 150 55 95 90 100 30 60 150 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +cr_lancer6 615 cr_lancer1 cr_lancer7 1 VileLancer cr_lancer1 corruptrogue CorruptLancer CR 1 3 4 8 12 1 5 59 81 cr_lancer cr_lancer 10 15 13 12 70 70 70 80 85 90 8 7 6 0 45 60 15 12 10 20 25 30 20 20 20 1 1 1 1 1 1 MonJab seq_crlancerjab 3 MonPowerStrike A1 9 100 100 100 -50 -40 -33 50 25 33 25 100 50 15 2 6 6 6 5 85 124 84 91 76 151 91 60 90 120 80 115 95 85 65 130 140 60 90 120 80 115 95 85 65 130 140 60 90 120 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +cr_lancer7 616 cr_lancer1 cr_lancer8 2 DarkLancer cr_lancer1 corruptrogue CorruptLancer CR 1 3 4 8 12 1 5 59 81 cr_lancer cr_lancer 10 15 13 12 70 70 70 80 85 90 8 7 6 0 45 60 15 12 10 20 25 30 20 20 20 1 1 1 1 1 1 MonJab seq_crlancerjab 3 MonIceSpear A1 5 100 100 100 -50 -40 -33 50 25 33 25 100 50 15 2 6 6 6 5 85 124 84 91 76 151 91 60 90 120 80 115 95 85 65 130 140 60 90 120 80 115 95 85 65 130 140 60 90 120 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +cr_lancer8 617 cr_lancer1 cr_lancer9 3 BlackLancer cr_lancer1 corruptrogue CorruptLancer CR 1 3 4 8 12 1 5 59 81 cr_lancer cr_lancer 10 15 13 12 70 70 70 80 85 90 8 7 6 0 45 60 15 12 10 20 25 30 20 20 20 1 1 1 1 1 1 MonJab seq_crlancerjab 3 MonPowerStrike A1 9 100 100 100 -50 -40 -33 50 25 33 25 100 50 15 2 6 6 6 5 85 124 84 91 76 151 91 60 90 120 80 115 95 85 65 130 140 60 90 120 80 115 95 85 65 130 140 60 90 120 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +blunderbore5 618 blunderbore1 blunderbore6 0 Blunderbore blunderbore1 blunderbore blunderbore PinHead stun attack PN 1 1 2 6 6 1 18 59 81 pinhead pinhead 10 15 13 12 90 95 97 7 7 7 95 95 95 5 5 5 65 65 70 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 40 15 15 15 75 33 33 33 3 24 24 24 5 108 193 84 114 76 134 160 117 151 92 200 260 80 130 90 140 160 120 155 100 200 260 80 130 90 140 160 120 155 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +blunderbore6 619 blunderbore1 2 Mauler blunderbore1 blunderbore blunderbore PinHead stun attack PN 1 1 2 6 6 1 18 59 81 pinhead pinhead 10 15 13 12 90 95 97 7 7 7 95 95 95 5 5 5 65 65 70 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 40 15 15 15 75 33 33 33 3 24 24 24 5 108 193 84 114 76 134 160 117 151 92 200 260 80 130 90 140 160 120 155 100 200 260 80 130 90 140 160 120 155 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skmage_fire5 620 skmage_fire1 skmage_fire6 1 ReturnedMage skmage_fire1 skeleton SkeletonMage SK 1 1 2 3 6 6 1 8 59 81 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmagefire 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 125 50 110 2 15 15 15 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 fire 100 75 100 100 100 175 100 100 175 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skmage_fire6 621 skmage_fire1 skmage_fire7 3 BurningDeadMage skmage_fire1 skeleton SkeletonMage SK 1 1 2 3 6 6 1 8 59 81 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmagefire 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 130 50 110 2 15 15 15 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 fire 100 75 100 100 100 175 100 100 175 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skmage_ltng5 622 skmage_ltng1 skmage_ltng6 1 ReturnedMage skmage_ltng1 skeleton SkeletonMage SK 1 1 2 3 6 6 1 8 59 81 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmageltng 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 50 120 110 2 15 15 15 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 ltng 100 60 120 100 80 190 100 80 190 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skmage_ltng6 623 skmage_ltng1 skmage_ltng7 3 HorrorMage skmage_ltng1 skeleton SkeletonMage SK 1 1 2 3 6 6 1 8 59 81 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmageltng 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 50 130 110 2 15 15 15 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 ltng 100 60 120 100 80 190 100 80 190 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skmage_cold5 624 skmage_cold1 skmage_cold6 2 BoneMage skmage_cold1 skeleton SkeletonMage SK 1 1 2 3 6 6 1 15 61 82 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmagecold 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 50 160 110 2 15 15 15 5 56 84 84 56 55 80 90 110 55 80 90 110 A1 cold 100 50 80 50 100 90 150 100 100 90 150 150 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skmage_pois5 625 skmage_pois1 skmage_pois6 4 HorrorMage skmage_pois1 skeleton SkeletonMage SK 1 1 2 4 5 5 2 17 47 78 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmagepois 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 60 33 75 2 17 17 17 5 56 81 84 55 55 80 90 110 55 80 90 110 A1 pois 100 33 33 100 100 40 40 100 100 40 40 100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +skmage_pois6 626 skmage_pois1 skmage_pois7 0 HorrorMage skmage_pois1 skeleton SkeletonMage SK 1 1 2 4 5 5 2 17 47 78 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmagepois 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 60 33 75 2 17 17 17 5 56 81 84 55 55 80 90 110 55 80 90 110 A1 pois 100 33 33 100 100 40 40 100 100 40 40 100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Act 2 (H) Cast B Act 2 (H) Champ B Act 2 (H) Unique B 0 +pantherwoman5 627 pantherwoman1 pantherwoman6 0 Huntress pantherwoman1 pantherwoman PantherWoman PW 1 2 4 9 12 1 14 59 81 pantherwoman pantherwoman 10 15 13 12 90 90 90 90 90 95 24 12 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 33 25 25 25 50 50 50 50 50 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 60 100 105 80 50 90 200 A1 pois 5 25 25 100 15 25 25 150 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +pantherwoman6 628 pantherwoman1 1 SaberCat pantherwoman1 pantherwoman PantherWoman PW 1 2 4 9 12 1 14 60 81 pantherwoman pantherwoman 10 15 13 12 90 90 90 90 90 95 24 12 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 33 25 25 25 50 50 50 50 50 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 60 100 105 80 50 90 200 A1 cold 5 40 60 150 15 40 60 200 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +sandleaper6 629 sandleaper1 sandleaper7 1 CaveLeaper sandleaper1 sandleaper SandLeaper SL 1 2 3 8 8 1 15 61 82 sandleaper sandleaper 10 15 14 13 20 22 25 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 2 100 85 75 -50 -40 -33 25 50 25 33 100 15 2 16 16 16 5 66 194 84 94 61 121 94 61 121 94 40 80 130 95 65 120 100 55 100 90 40 80 130 95 65 120 100 55 100 90 A1 cold 100 33 66 25 100 33 66 75 100 33 66 100 A2 cold 100 33 66 25 100 33 66 75 100 33 66 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +sandleaper7 630 sandleaper1 3 TombCreeper sandleaper1 sandleaper SandLeaper SL 1 2 3 8 8 1 15 61 82 sandleaper sandleaper 10 15 14 13 20 22 25 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 2 100 85 75 -50 -40 -33 25 50 25 33 120 15 2 16 16 16 5 66 194 84 94 61 121 94 61 121 94 40 80 130 95 65 120 100 55 100 90 40 80 130 95 65 120 100 55 100 90 A1 cold 100 33 66 25 100 33 66 75 100 33 66 100 A2 cold 100 33 66 25 100 33 66 75 100 33 66 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +wraith6 631 wraith1 wraith7 0 Ghost wraith1 wraith Wraith drains mana WR 1 2 4 8 8 1 15 61 82 wraith wraith 10 15 14 13 90 100 100 4 4 4 90 95 99 1 1 1 1 1 1 1 -50 -33 0 20 50 30 60 100 50 50 100 2 8 8 8 5 83 165 84 93 61 121 94 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 40 60 100 45 100 200 50 200 300 Act 1 Wraith B Act 5 Champ A Act 5 Unique A Act 1 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A Act 1 (H) Wraith B Act 5 (H) Champ A Act 5 (H) Unique A 0 +wraith7 632 wraith1 wraith8 0 Wraith wraith1 wraith Wraith drains mana WR 1 2 4 8 8 1 15 61 82 wraith wraith 10 15 14 13 90 100 100 4 4 4 90 95 99 1 1 1 1 1 1 1 -50 -33 0 20 50 30 60 100 50 50 100 2 8 8 8 5 83 165 84 93 61 121 94 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 40 60 100 45 100 200 50 200 300 Act 1 Wraith B Act 5 Champ A Act 5 Unique A Act 1 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A Act 1 (H) Wraith B Act 5 (H) Champ A Act 5 (H) Unique A 0 +wraith8 633 wraith1 wraith9 0 Specter wraith1 wraith Wraith drains mana WR 1 2 4 8 8 1 15 61 82 wraith wraith 10 15 14 13 90 100 100 4 4 4 90 95 99 1 1 1 1 1 1 1 -50 -33 0 20 50 30 60 100 50 50 100 2 8 8 8 5 83 165 84 93 61 121 94 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 40 60 100 45 100 200 50 200 300 Act 1 Wraith B Act 5 Champ A Act 5 Unique A Act 1 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A Act 1 (H) Wraith B Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubus6 634 succubus1 succubus7 0 Succubusexp succubus1 succubus Succubus 0B 1 1 4 5 14 14 1 42 61 83 succubus succubus 10 15 14 13 90 93 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 1 100 85 75 -50 -40 -33 33 33 15 33 33 25 66 66 33 66 66 2 50 50 50 5 95 152 107 159 47 85 125 60 90 115 90 50 90 155 60 90 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubus7 635 succubus1 succubus8 2 Hell Temptress succubus1 succubus Succubus 0B 1 1 4 5 14 14 1 42 61 83 succubus succubus 10 15 14 13 90 93 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 1 100 85 75 -50 -40 -33 33 33 15 33 33 25 66 66 33 66 66 2 50 50 50 5 95 152 107 159 47 85 125 60 90 115 90 50 90 155 60 90 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubuswitch6 636 succubuswitch1 succubuswitch7 3 Dominus succubuswitch1 succubus SuccubusWitch 0C 1 1 4 5 12 12 1 42 61 83 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 50 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 3 100 85 75 -50 -40 -33 80 33 33 15 100 33 25 66 66 33 125 66 2 50 50 50 5 95 152 107 161 47 85 138 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubuswitch7 637 succubuswitch1 succubuswitch8 4 Hell Witch succubuswitch1 succubus SuccubusWitch 0C 1 1 4 5 12 12 1 42 61 83 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 50 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 3 100 85 75 -50 -40 -33 80 33 33 15 100 33 25 66 66 33 145 66 2 50 50 50 5 95 152 107 161 47 85 138 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubuswitch8 638 succubuswitch1 succubuswitch9 1 VileWitch succubuswitch1 succubus SuccubusWitch 0C 1 1 4 5 12 12 1 42 61 83 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 50 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 3 100 85 75 -50 -40 -33 80 33 33 15 100 33 25 66 66 33 155 66 2 50 50 50 5 95 152 107 161 47 85 138 60 90 115 145 50 90 120 60 90 115 145 50 90 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +willowisp5 639 willowisp1 willowisp6 0 Gloam willowisp1 willowisp WillOWisp drains mana WW 1 1 2 4 15 15 1 42 61 83 willowisp willowisp 10 15 14 13 70 70 75 90 90 90 30 30 30 willowisplightningbolt2 1 1 1 1 1 1 MonChainLightning SC 4 -50 -33 0 70 80 70 100 50 90 50 100 33 105 2 28 28 28 5 44 87 84 82 34 151 93 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 90 16 72 90 100 200 90 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 4 Wraith B Act 5 Champ A Act 5 Unique A Act 4 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A Act 4 (H) Wraith B Act 5 (H) Champ A Act 5 (H) Unique A 1 1 0 +willowisp6 640 willowisp1 willowisp7 3 BlackSoul willowisp1 willowisp WillOWisp drains mana WW 1 1 2 4 15 15 1 42 61 83 willowisp willowisp 10 15 14 13 70 70 75 90 90 90 30 30 30 willowisplightningbolt2 1 1 1 1 1 1 MonChainLightning SC 4 -50 -33 0 70 80 70 100 50 90 50 100 33 110 2 28 28 28 5 44 87 84 82 34 151 93 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 90 16 72 90 100 200 90 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 4 Wraith B Act 5 Champ A Act 5 Unique A Act 4 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A Act 4 (H) Wraith B Act 5 (H) Champ A Act 5 (H) Unique A 1 1 0 +willowisp7 641 willowisp1 willowisp8 0 BurningSoul willowisp1 willowisp WillOWisp drains mana WW 1 1 2 4 15 15 1 42 61 83 willowisp willowisp 10 15 14 13 70 70 75 90 90 90 30 30 30 willowisplightningbolt2 1 1 1 1 1 1 MonChainLightning SC 4 -50 -33 0 70 80 70 100 50 90 50 100 33 115 2 28 28 28 5 44 87 84 82 34 151 93 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 90 16 72 90 100 200 90 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 4 Wraith B Act 5 Champ A Act 5 Unique A Act 4 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A Act 4 (H) Wraith B Act 5 (H) Champ A Act 5 (H) Unique A 1 1 0 +fallen6 642 fallen1 fallen7 1 Carver fallen1 fallen Fallen FA 1 fallen6 1 1 1 1 2 4 10 10 1 40 61 83 fallen fallen 10 15 14 13 75 80 80 30 30 30 90 95 99 40 45 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 50 50 50 50 50 50 66 66 66 66 66 66 25 75 75 75 75 75 2 49 49 49 5 21 55 84 93 45 93 93 45 97 93 25 55 70 65 45 90 90 40 80 85 25 55 70 65 45 90 90 40 80 85 A2 cold 10 40 60 75 20 40 60 125 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +fallen7 643 fallen1 fallen8 2 Devilkin fallen1 fallen Fallen FA 1 fallen7 1 1 1 1 2 4 10 10 1 40 61 83 fallen fallen 10 15 14 13 75 80 80 30 30 30 90 95 99 40 45 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 50 50 50 50 50 50 66 66 66 66 66 66 25 75 75 75 75 75 2 49 49 49 5 21 55 84 93 45 93 93 45 97 93 25 55 70 65 45 90 90 40 80 85 25 55 70 65 45 90 90 40 80 85 A2 ltng 10 30 90 20 30 90 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +fallen8 644 fallen1 0 DarkOne fallen1 fallen Fallen FA 1 fallen8 1 1 1 1 2 4 10 10 1 40 61 83 fallen fallen 10 15 14 13 75 80 80 30 30 30 90 95 99 40 45 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 50 50 50 50 50 50 66 66 66 66 66 66 25 75 75 75 75 75 2 49 49 49 5 21 55 84 93 45 93 93 45 97 93 25 55 70 65 45 90 90 40 80 85 25 55 70 65 45 90 90 40 80 85 A2 fire 10 50 70 20 50 70 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +fallenshaman6 645 fallenshaman1 fallenshaman7 1 CarverShaman fallenshaman1 fallen FallenShaman raises Warped Fallen FS 1 fallen6 1 2 3 1 3 6 6 1 40 61 83 fallenshaman fallenshaman 10 15 14 13 75 85 90 90 90 95 100 90 80 24 28 30 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanIce seq_shamanresurrect 1 100 75 66 -50 -40 -33 20 70 50 25 50 25 50 66 50 75 2 39 39 39 5 65 107 84 125 53 121 93 55 90 75 150 45 90 105 55 90 75 150 45 90 105 A1 cold 10 40 60 75 20 40 60 125 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +fallenshaman7 646 fallenshaman1 fallenshaman8 2 DevilkinShaman fallenshaman1 fallen FallenShaman raises Warped Fallen FS 1 fallen7 1 2 3 1 3 6 6 1 40 61 83 fallenshaman fallenshaman 10 15 14 13 75 85 90 90 90 95 100 90 80 24 28 30 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanFireEx seq_shamanresurrect 1 100 75 66 -50 -40 -33 20 70 50 25 50 25 50 66 50 75 2 39 39 39 5 65 107 84 125 53 121 93 55 90 75 150 45 90 105 55 90 75 150 45 90 105 A1 ltng 10 30 90 20 30 90 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +fallenshaman8 647 fallenshaman1 0 DarkShaman fallenshaman1 fallen FallenShaman raises Warped Fallen FS 1 fallen8 1 2 3 1 3 6 6 1 40 61 83 fallenshaman fallenshaman 10 15 14 13 75 85 90 90 90 95 100 90 80 24 28 30 15 15 15 1 1 1 1 1 Resurrect seq_shamanresurrect 1 ShamanFireEx seq_shamanresurrect 1 100 75 66 -50 -40 -33 20 70 50 25 50 25 50 66 50 75 2 39 39 39 5 65 107 84 125 53 121 93 55 90 75 150 45 90 105 55 90 75 150 45 90 105 A1 fire 10 50 70 20 50 70 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +skeleton6 648 skeleton1 skeleton7 2 BoneWarrior skeleton1 skeleton Skeleton SK 1 4 5 5 5 2 14 61 83 skeleton skeleton 10 15 14 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 20 60 50 40 25 80 75 33 70 50 100 25 105 2 30 30 30 5 94 131 84 85 41 101 94 31 101 94 70 100 100 85 40 100 120 40 105 125 70 100 100 85 40 100 120 40 105 125 A1 cold 60 30 60 50 60 30 60 75 60 30 60 125 A2 ltng 60 30 60 60 30 60 60 30 60 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +skeleton7 649 skeleton1 skeleton8 1 Returned skeleton1 skeleton Skeleton SK 1 4 5 5 5 2 14 61 83 skeleton skeleton 10 15 14 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 20 60 50 40 25 80 75 33 70 50 100 25 110 2 30 30 30 5 94 131 84 85 41 101 94 31 101 94 70 100 100 85 40 100 120 40 105 125 70 100 100 85 40 100 120 40 105 125 A1 cold 60 30 60 50 60 30 60 75 60 30 60 125 A2 ltng 60 30 60 60 30 60 60 30 60 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +batdemon6 650 batdemon1 batdemon7 1 Gloombat batdemon1 batdemon BatDemon shocking hit BT 1 3 4 12 12 1 27 57 84 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 80 85 90 50 59 68 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 50 10 33 100 33 2 27 27 27 5 43 151 84 89 65 101 93 106 165 146 70 110 110 80 65 70 100 80 115 200 70 110 110 80 65 70 100 80 115 200 A2 ltng 85 64 100 85 5 180 85 5 240 Act 3 H2H C Act 3 Champ C Act 3 Unique C Act 3 (N) H2H C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) H2H C Act 3 (H) Champ C Act 3 (H) Unique C 1 1 0 +batdemon7 651 batdemon1 0 Fiend batdemon1 batdemon BatDemon shocking hit BT 1 3 4 12 12 1 27 57 84 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 80 85 90 50 59 68 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 50 10 33 100 33 2 27 27 27 5 43 151 84 89 65 101 93 106 165 146 70 110 110 80 65 70 100 80 115 200 70 110 110 80 65 70 100 80 115 200 A2 ltng 85 64 100 85 5 180 85 5 240 Act 3 H2H C Act 3 Champ C Act 3 Unique C Act 3 (N) H2H C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) H2H C Act 3 (H) Champ C Act 3 (H) Unique C 1 1 0 +bloodlord6 652 bloodlord1 bloodlord7 2 Blood Lord1 bloodlord1 bloodlord BloodLord L3 1 1 2 9 9 1 36 61 82 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 70 70 70 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -30 -20 -10 50 25 25 25 50 75 50 140 50 75 2 50 50 50 5 284 379 126 260 66 148 188 66 148 188 240 300 130 210 80 150 180 80 150 180 240 300 130 210 80 150 180 80 150 180 A1 cold 50 33 50 50 50 33 50 75 50 33 50 100 A2 fire 50 33 50 50 33 50 50 33 50 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +bloodlord7 653 bloodlord1 3 Blood Lord4 bloodlord1 bloodlord BloodLord L3 1 1 2 9 9 1 36 62 82 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 70 70 70 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -30 -20 -10 50 25 25 25 50 75 50 50 100 75 2 50 50 50 5 284 379 126 260 66 148 188 66 148 188 240 300 130 210 80 150 180 80 150 180 240 300 130 210 80 150 180 80 150 180 A1 ltng 50 33 50 50 50 33 70 50 33 70 A2 fire 50 33 50 50 33 50 50 33 50 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +scarab6 654 scarab1 scarab7 2 Scarab scarab1 scarab Scarab SC 1 scarab6 1 1 4 5 4 5 6 6 1 24 54 85 scarab scarab 10 15 14 13 90 94 96 70 70 70 70 70 70 70 75 80 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 5 100 75 50 -50 -40 -25 50 100 6 24 24 24 5 67 111 85 83 51 151 92 51 119 92 1 2 95 70 110 145 110 55 110 120 55 110 140 40 70 95 70 110 145 110 55 110 120 55 110 140 40 70 95 A1 ltng 30 18 25 30 15 30 30 15 30 A2 ltng 10 18 25 10 15 30 10 15 30 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +scarab7 655 scarab1 scarab8 0 SteelWeevil scarab1 scarab Scarab SC 1 scarab7 1 1 4 5 4 5 6 6 1 24 54 85 scarab scarab 10 15 14 13 90 94 96 70 70 70 70 70 70 70 75 80 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 5 100 75 50 -50 -40 -25 50 100 6 24 24 24 5 67 111 85 83 51 151 92 51 119 92 1 2 95 70 110 145 110 55 110 120 55 110 140 40 70 95 70 110 145 110 55 110 120 55 110 140 40 70 95 A1 ltng 30 18 25 30 15 30 30 15 30 A2 ltng 10 18 25 10 15 30 10 15 30 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetish6 656 fetish1 fetish7 1 Flayer fetish1 fetish Fetish FE 1 fetish6 1 1 2 4 2 4 10 10 1 24 54 83 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 15 105 25 25 33 2 24 24 24 5 65 107 85 79 69 101 92 55 80 125 75 60 95 95 55 80 125 75 60 95 95 A1 pois 7 20 20 50 10 33 33 75 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetish7 657 fetish1 fetish8 0 StygianDoll fetish1 fetish Fetish FE 1 fetish7 1 1 2 4 2 4 10 10 1 24 54 83 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 15 110 25 25 33 2 24 24 24 5 65 107 85 79 69 101 92 55 80 125 75 60 95 95 55 80 125 75 60 95 95 A1 pois 7 20 20 50 10 33 33 75 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetish8 658 fetish1 2 SoulKiller fetish1 fetish Fetish FE 1 fetish8 1 1 2 4 2 4 10 10 1 24 54 83 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 15 115 25 25 33 2 24 24 24 5 65 107 85 79 69 101 92 55 80 125 75 60 95 95 55 80 125 75 60 95 95 A1 pois 7 20 20 50 10 33 33 75 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetishblow6 659 fetishblow1 fetishblow7 1 Flayer fetishblow1 fetish FetishBlowgun FC 1 1 fetishblow6 1 1 3 3 3 3 10 10 1 24 53 83 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 15 105 25 25 33 2 32 32 32 5 65 107 85 65 125 45 75 110 90 0 0 110 45 75 110 90 0 0 110 A1 pois 7 20 20 50 10 33 33 75 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetishblow7 660 fetishblow1 fetishblow8 0 StygianDoll fetishblow1 fetish FetishBlowgun FC 1 1 fetishblow7 1 1 3 3 3 3 10 10 1 24 53 83 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 15 110 25 25 33 2 32 32 32 5 65 107 85 65 125 45 75 110 90 0 0 110 45 75 110 90 0 0 110 A1 pois 7 20 20 50 10 33 33 75 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetishblow8 661 fetishblow1 2 SoulKiller fetishblow1 fetish FetishBlowgun FC 1 1 fetishblow8 1 1 3 3 3 3 10 10 1 24 53 83 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 15 115 25 25 33 2 32 32 32 5 65 107 85 65 125 45 75 110 90 0 0 110 45 75 110 90 0 0 110 A1 pois 7 20 20 50 10 33 33 75 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fetishshaman6 662 fetishshaman1 fetishshaman7 1 FlayerShaman fetishshaman1 fetish FetishShaman raises Stygian Dolls FW 1 fetish6 fetishblow6 1 1 2 5 1 1 10 10 1 24 53 84 fetishshaman fetishshaman 10 15 14 13 40 45 45 0 2 3 15 18 22 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 11 FetishAura A1 5 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 15 10 120 25 25 33 2 24 24 24 5 65 107 85 77 65 105 100 260 65 105 100 260 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 1 0 +fetishshaman7 663 fetishshaman1 fetishshaman8 0 StygianDollShaman fetishshaman1 fetish FetishShaman raises Stygian Dolls FW 1 fetish7 fetishblow7 1 1 2 5 1 1 10 10 1 24 53 84 fetishshaman fetishshaman 10 15 14 13 40 45 45 0 2 3 15 18 22 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 11 FetishAura A1 5 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 15 10 125 25 25 33 2 24 24 24 5 65 107 85 77 65 105 100 260 65 105 100 260 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 1 0 +fetishshaman8 664 fetishshaman1 2 SoulKillerShaman fetishshaman1 fetish FetishShaman raises Stygian Dolls FW 1 fetish8 fetishblow8 1 1 2 5 1 1 10 10 1 24 53 84 fetishshaman fetishshaman 10 15 14 13 40 45 45 0 2 3 15 18 22 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 11 FetishAura A1 5 Resurrect2 seq_fetishres 1 100 100 100 -50 -40 -33 15 10 130 25 25 33 2 24 24 24 5 65 107 85 77 65 105 100 260 65 105 100 260 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 1 0 +baboon7 665 baboon1 baboon8 4 TempleGuard baboon1 baboon Baboon BB 1 3 4 7 14 1 24 53 81 baboon baboon 10 15 14 13 33 33 33 20 30 35 75 80 85 50 50 50 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 33 100 33 2 24 24 24 5 107 151 85 97 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 90 135 110 110 50 90 120 50 110 130 A1 ltng 50 30 90 50 30 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +baboon8 666 baboon1 3 TempleGuard baboon1 baboon Baboon BB 1 3 4 7 14 1 24 53 81 baboon baboon 10 15 14 13 33 33 33 20 30 35 75 80 85 50 50 50 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 33 100 33 2 24 24 24 5 107 151 85 97 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 90 135 110 110 50 90 120 50 110 130 A1 fire 50 30 90 50 30 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +unraveler6 667 unraveler1 unraveler7 4 Guardian unraveler1 unraveler GreaterMummy raises undead GY 1 1 1 5 5 1 40 64 85 unraveler unraveler 10 15 14 13 85 85 85 45 50 55 55 55 55 85 90 95 24 27 31 mummyex 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBoltEx seq_mummyres 1 100 66 33 -50 -40 -33 50 25 25 25 25 50 33 100 50 50 25 50 2 39 39 39 5 192 235 84 211 121 153 93 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 30 120 152 1500 30 120 150 1500 30 120 150 1500 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +unraveler7 668 unraveler1 unraveler8 2 Unraveler unraveler1 unraveler GreaterMummy raises undead GY 1 1 1 5 5 1 40 64 85 unraveler unraveler 10 15 14 13 85 85 85 45 50 55 55 55 55 85 90 95 24 27 31 mummyex 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBoltEx seq_mummyres 1 100 66 33 -50 -40 -33 50 25 25 25 25 50 33 100 50 25 50 50 2 39 39 39 5 192 235 84 211 121 153 93 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 30 120 152 1500 30 120 150 1500 30 120 150 1500 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +unraveler8 669 unraveler1 unraveler9 4 Horadrim Ancient unraveler1 unraveler GreaterMummy raises undead GY 1 1 1 5 5 1 40 64 85 unraveler unraveler 10 15 14 13 85 85 85 45 50 55 55 55 55 85 90 95 24 27 31 mummyex 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBoltEx seq_mummyres 1 100 66 33 -50 -40 -33 50 25 25 25 25 50 33 100 25 50 50 50 2 39 39 39 5 192 235 84 211 121 153 93 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 30 120 152 1500 30 120 150 1500 30 120 150 1500 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +unraveler9 670 unraveler1 2 Horadrim Ancient unraveler1 unraveler GreaterMummy raises undead GY 1 1 1 5 5 1 40 64 85 unraveler unraveler 10 15 14 13 85 85 85 45 50 55 55 55 55 85 90 95 24 27 31 mummyex 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBoltEx seq_mummyres 1 100 66 33 -50 -40 -33 50 25 25 25 25 50 33 100 50 50 50 25 2 39 39 39 5 192 235 84 211 121 153 93 170 210 120 300 110 140 160 170 210 120 300 110 140 160 A1 pois 30 120 152 1500 30 120 150 1500 30 120 150 1500 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) Cast B Act 5 (H) Champ B Act 5 (H) Unique B 0 +zealot4 671 zealot1 zealot5 1 Zealot zealot1 zakarum ZakarumZealot ZZ 1 2 3 6 11 1 24 53 82 zealot zealot 10 15 14 13 85 90 95 65 65 65 50 50 50 70 80 90 1 1 1 1 1 100 100 100 -50 -40 -33 15 20 100 50 2 24 24 24 5 131 173 85 100 57 101 92 57 101 92 120 150 80 80 60 100 100 60 105 115 120 150 80 80 60 100 100 60 105 115 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +zealot5 672 zealot1 2 Zealot zealot1 zakarum ZakarumZealot ZZ 1 2 3 6 11 1 24 53 82 zealot zealot 10 15 14 13 85 90 95 65 65 65 50 50 50 70 80 90 1 1 1 1 1 100 100 100 -50 -40 -33 15 20 100 50 2 24 24 24 5 131 173 85 100 57 101 92 57 101 92 120 150 80 80 60 100 100 60 105 115 120 150 80 80 60 100 100 60 105 115 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cantor5 673 cantor1 cantor6 1 Heirophant cantor1 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealot4 2 4 1 2 6 6 1 24 57 84 cantor cantor 10 15 14 13 40 40 40 10 16 25 65 75 85 40 55 75 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 3 ZakarumLightning S1 1 MonTeleport S1 1 MonBlizzard S1 1 100 100 100 -50 -40 -33 15 20 50 20 2 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 90 130 75 130 40 85 90 A1 cold 75 31 68 25 75 30 60 50 75 30 60 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cantor6 674 cantor1 2 Heirophant cantor1 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealot5 2 4 1 2 6 6 1 24 57 84 cantor cantor 10 15 14 13 40 40 40 10 16 25 65 75 85 40 55 75 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 3 ZakarumLightning S1 1 MonTeleport S1 1 MonBlizzard S1 1 100 100 100 -50 -40 -33 15 20 50 20 2 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 90 130 75 130 40 85 90 A1 cold 75 31 68 25 75 30 60 50 75 30 60 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) Cast B Act 3 (H) Champ B Act 3 (H) Unique B 0 +vilemother4 675 vilemother1 vilemother5 2 Grotesque vilemother1 vilekind VileMother VM 1 vilechild4 0 0 NU 2 3 7 7 1 30 57 85 vilemother vilemother 10 15 14 13 16 19 22 5 6 6 30 35 40 80 90 95 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 40 70 45 33 33 140 25 2 29 29 29 5 228 294 63 168 90 190 92 200 250 80 130 70 100 110 200 250 80 130 70 100 110 A1 pois 20 30 30 75 30 30 30 100 Act 4 Cast B Act 4 Champ B Act 4 Unique B Act 4 (N) Cast B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) Cast B Act 4 (H) Champ B Act 4 (H) Unique B 0 +vilemother5 676 vilemother1 0 FleshSpawner vilemother1 vilekind VileMother VM 1 vilechild5 0 0 NU 2 3 7 7 1 30 57 85 vilemother vilemother 10 15 14 13 16 19 22 5 6 6 30 35 40 80 90 95 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 40 70 45 33 33 145 25 2 29 29 29 5 228 294 63 168 90 190 92 200 250 80 130 70 100 110 200 250 80 130 70 100 110 A1 cold 20 40 50 100 30 40 50 125 Act 4 Cast B Act 4 Champ B Act 4 Unique B Act 4 (N) Cast B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) Cast B Act 4 (H) Champ B Act 4 (H) Unique B 0 +vilechild4 677 vilechild1 vilechild5 2 GrotesqueWyrm vilechild1 vilekind VileDog VC 1 2 3 10 12 1 30 57 85 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 40 70 33 33 140 25 2 47 47 47 5 55 84 84 89 48 74 151 50 70 70 40 40 70 85 50 70 70 40 40 70 85 A1 pois 5 20 20 50 9 20 20 75 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +vilechild5 678 vilechild1 0 FleshBeast vilechild1 vilekind VileDog VC 1 2 3 10 12 1 30 57 85 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 40 70 33 33 145 25 2 47 47 47 5 55 84 84 89 48 74 151 50 70 70 40 40 70 85 50 70 70 40 40 70 85 A1 cold 5 25 35 75 9 25 35 100 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 +sandmaggot6 679 sandmaggot1 sandmaggot7 4 WorldKiller sandmaggot1 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg6 0 0 S1 2 3 4 4 1 27 57 85 sandmaggot sandmaggot 10 15 14 13 55 55 55 70 70 70 2 3 4 90 90 90 80 80 80 goospitex 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 40 25 100 25 105 2 27 27 27 5 140 172 84 127 89 189 93 110 150 115 125 70 110 75 110 150 115 125 70 110 75 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +maggotbaby6 680 maggotbaby1 4 WorldKillerYoung maggotbaby1 sandmaggot MaggotLarva SB 1 1 1 6 6 1 24 57 85 maggotbaby maggotbaby 10 15 14 13 90 93 95 16 13 10 90 90 90 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 10 15 33 15 105 2 24 24 24 5 21 65 85 55 26 44 92 20 45 50 30 25 45 70 20 45 50 30 25 45 70 0 +maggotegg6 681 maggotegg1 4 WorldKillerEgg maggotegg1 MaggotEgg SE 1 maggotbaby6 0 0 S1 1 1 1 1 1 27 57 85 maggotegg maggotegg 10 15 14 13 150 200 200 34 34 34 1 1 MaggotEgg seq_maggotegg 5 100 66 33 -50 -50 -50 10 15 33 15 2 77 95 84 54 60 80 25 25 60 80 25 25 0 +minion9 682 minion1 minion10 2 Slayerexp minion1 minion Minion xx 1 3 5 7 10 2 42 66 82 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 55 55 1 1 1 1 1 100 85 75 -50 -40 -33 33 50 25 130 2 50 50 50 5 190 237 101 226 77 97 151 93 116 163 100 125 80 80 75 100 100 70 115 110 100 125 120 75 75 100 100 70 115 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +minion10 683 minion1 minion11 3 HellSpawn minion1 minion Minion xx 1 3 5 7 10 2 42 66 82 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 55 55 1 1 1 1 1 100 85 75 -50 -40 -33 33 110 25 50 2 50 50 50 5 190 237 101 226 77 97 151 93 116 163 100 125 80 80 75 100 100 70 115 110 100 125 120 75 75 100 100 70 115 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +minion11 684 minion1 2 GreaterHellSpawn minion1 minion Minion xx 1 3 5 7 10 2 42 66 82 minion minion 10 15 14 13 70 75 80 15 13 10 50 55 60 15 15 15 50 55 55 1 1 1 1 1 100 85 75 -50 -40 -33 33 50 25 135 2 50 50 50 5 190 237 101 226 77 97 151 93 116 163 100 125 80 80 75 100 100 70 115 110 100 125 120 75 75 100 100 70 115 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +arach6 685 arach1 arach7 0 Arach arach1 arach Arach SP 1 4 5 8 11 1 23 53 84 arach arach 10 15 14 13 75 85 90 55 55 55 20 20 20 8 8 8 45 45 45 1 1 1 1 1 SpiderLay A2 5 100 75 50 -50 -40 -25 50 120 25 50 6 23 23 23 5 151 190 85 114 94 147 92 150 190 135 110 80 120 100 150 190 135 110 80 120 100 A1 pois 50 26 40 3000 50 50 120 3000 50 50 120 3000 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +megademon4 686 megademon1 megademon5 0 Balrog megademon1 megademon Megademon DM 1 2 3 10 16 1 30 57 84 megademon megademon 10 15 13 11 60 75 90 50 60 65 80 95 97 70 70 70 70 70 70 75 60 45 1 1 1 1 1 MegademonInferno S1 9 100 85 66 -50 -40 -33 70 70 80 100 50 20 140 33 50 2 39 39 39 5 191 228 101 152 53 95 125 210 250 115 130 80 120 160 210 250 115 130 80 120 160 A1 fire 15 40 80 25 40 80 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +megademon5 687 megademon1 megademon6 0 PitLord megademon1 megademon Megademon DM 1 2 3 10 16 1 30 57 84 megademon megademon 10 15 13 11 60 75 90 50 60 65 80 95 97 70 70 70 70 70 70 75 60 45 1 1 1 1 1 MegademonInferno S1 9 100 85 66 -50 -40 -33 70 70 80 100 50 20 145 33 50 2 39 39 39 5 191 228 101 152 53 95 125 210 250 115 130 80 120 160 210 250 115 130 80 120 160 A1 fire 15 40 80 25 40 80 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +imp6 688 imp1 imp7 0 Imp1 imp1 imp Imp ip 1 1 3 4 7 7 1 38 63 85 imp imp 10 15 14 13 impmissex 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 3 Imp Fire Missile Ex A1 1 Imp Inferno seq_impinferno 5 100 100 100 -50 -40 -33 110 25 25 2 37 37 37 5 65 107 84 137 45 65 110 120 45 65 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) Cast C Act 5 (H) Champ C Act 5 (H) Unique C 0 +imp7 689 imp1 imp8 3 Imp4 imp1 imp Imp ip 1 1 3 4 7 7 1 38 63 85 imp imp 10 15 14 13 impmissex 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 3 Imp Fire Missile Ex A1 1 Imp Inferno seq_impinferno 5 100 100 100 -50 -40 -33 115 25 25 2 37 37 37 5 65 107 84 137 45 65 110 120 45 65 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) Cast C Act 5 (H) Champ C Act 5 (H) Unique C 0 +bonefetish6 690 bonefetish1 bonefetish7 2 Undead StygianDoll bonefetish1 stygian undeadfetish Fetish FK 1 2 4 10 10 1 24 53 83 bonefetish bonefetish 10 15 14 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 33 25 33 80 2 24 24 24 5 65 107 85 79 69 101 92 65 105 135 125 65 105 90 65 105 135 125 65 105 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +bonefetish7 691 bonefetish1 2 Undead SoulKiller bonefetish1 stygian undeadfetish Fetish FK 1 2 4 10 10 1 24 53 83 bonefetish bonefetish 10 15 14 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 33 25 33 80 2 24 24 24 5 65 107 85 79 69 101 92 65 105 135 125 65 105 90 65 105 135 125 65 105 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +fingermage4 692 fingermage1 fingermage5 1 Strangler fingermage1 fingermage FingerMage homing missiles FR 1 2 3 10 16 1 30 58 85 fingermage fingermage 10 15 14 13 80 60 60 80 85 95 70 70 70 50 50 50 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 1 FingerMageSpider S1 5 100 66 33 -50 -40 -25 60 60 75 75 40 66 100 25 25 2 29 29 29 5 152 209 84 130 53 122 92 80 110 120 135 55 120 120 80 110 120 135 55 120 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) Wraith B Act 4 (H) Champ B Act 4 (H) Unique B 0 +fingermage5 693 fingermage1 1 StormCaster fingermage1 fingermage FingerMage homing missiles FR 1 2 3 10 16 1 30 58 85 fingermage fingermage 10 15 14 13 80 60 60 80 85 95 70 70 70 50 50 50 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 1 FingerMageSpider S1 5 100 66 33 -50 -40 -25 60 60 75 75 40 66 100 25 25 2 29 29 29 5 152 209 84 130 53 122 92 80 110 120 135 55 120 120 80 110 120 135 55 120 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) Wraith B Act 4 (H) Champ B Act 4 (H) Unique B 0 +regurgitator4 694 regurgitator1 2 MawFiend regurgitator1 regurgitator Regurgitator eats and spits corpses CS 1 2 3 8 12 1 30 57 85 regurgitator regurgitator 10 15 14 13 90 90 90 20 20 20 60 60 60 10 20 30 9 9 9 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 3 100 85 75 -50 -40 -33 50 110 2 29 29 29 5 209 283 84 163 90 148 92 240 320 95 140 85 145 105 240 320 95 140 85 145 105 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +vampire6 695 vampire1 vampire7 3 BloodLord vampire1 vampire Vampire steals life VA 1 1 2 3 8 8 1 25 55 83 vampire vampire 10 15 14 13 85 85 85 35 40 45 24 24 24 25 34 47 7 7 7 1 1 1 1 1 1 VampireFireball SC 5 VampireFirewall SC 5 VampireMeteor SC 5 VampireMissile SC 1 100 85 75 -50 -40 -25 60 50 60 50 50 75 33 33 85 50 5 25 25 25 5 152 210 85 113 51 119 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 75 50 68 25 75 50 100 50 75 50 100 75 Act 3 Cast C Act 3 Champ C Act 3 Unique C Act 3 (N) Cast C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) Cast C Act 3 (H) Champ C Act 3 (H) Unique C 0 +vampire7 696 vampire1 vampire8 0 GhoulLord vampire1 vampire Vampire steals life VA 1 1 2 3 8 8 1 25 55 83 vampire vampire 10 15 14 13 85 85 85 35 40 45 24 24 24 25 34 47 7 7 7 1 1 1 1 1 1 VampireFireball SC 5 VampireFirewall SC 5 VampireMeteor SC 5 VampireMissile SC 1 100 85 75 -50 -40 -25 60 50 60 50 50 75 33 33 130 50 5 25 25 25 5 152 210 85 113 51 119 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 75 50 68 25 75 50 100 50 75 50 100 75 Act 3 Cast C Act 3 Champ C Act 3 Unique C Act 3 (N) Cast C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) Cast C Act 3 (H) Champ C Act 3 (H) Unique C 0 +vampire8 697 vampire1 vampire9 3 DarkLord vampire1 vampire Vampire steals life VA 1 1 2 3 8 8 1 25 55 83 vampire vampire 10 15 14 13 85 85 85 35 40 45 24 24 24 25 34 47 7 7 7 1 1 1 1 1 1 VampireFireball SC 5 VampireFirewall SC 5 VampireMeteor SC 5 VampireMissile SC 1 100 85 75 -50 -40 -25 60 50 60 50 50 75 33 33 135 50 5 25 25 25 5 152 210 85 113 51 119 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 75 50 68 25 75 50 100 50 75 50 100 75 Act 3 Cast C Act 3 Champ C Act 3 Unique C Act 3 (N) Cast C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) Cast C Act 3 (H) Champ C Act 3 (H) Unique C 0 +reanimatedhorde6 698 reanimatedhorde1 0 UnholyCorpse reanimatedhorde1 zombie ReanimatedHorde re 1 2 4 3 5 2 42 65 85 reanimatedhorde reanimatedhorde 10 15 14 13 70 80 85 70 70 70 10 12 14 35 45 45 35 35 35 65 65 65 25 22 19 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 50 70 50 100 50 50 75 80 2 50 50 50 5 114 170 107 173 35 89 138 35 89 93 110 135 70 105 70 110 135 60 120 100 110 135 70 105 70 110 135 60 120 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +dkfig1 699 doomknight1 dkfig2 0 DoomKnight doomknight1 doomknight DoomKnight Fighter UM 1 2 3 6 7 1 24 56 82 doomknight doomknight 10 15 14 13 90 95 100 10 5 5 80 85 90 10 10 10 1 1 1 1 1 1 1 100 75 33 -50 -33 -25 80 20 20 40 100 20 20 40 33 130 25 25 50 2 24 24 24 5 131 173 107 111 69 151 92 120 150 115 100 70 150 180 120 150 115 100 70 150 180 A1 rand 60 31 62 50 60 30 60 75 60 30 60 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +dkfig2 700 doomknight1 0 DoomKnight doomknight1 doomknight DoomKnight Fighter UM 1 2 3 6 7 1 24 56 82 doomknight doomknight 10 15 14 13 90 95 100 10 5 5 80 85 90 10 10 10 1 1 1 1 1 1 1 100 75 33 -50 -33 -25 80 20 20 40 100 20 20 40 33 140 25 25 50 2 24 24 24 5 131 173 107 111 69 151 92 120 150 115 100 70 150 180 120 150 115 100 70 150 180 A1 rand 60 31 62 50 60 30 60 75 60 30 60 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +dkmag1 701 doomknight3 dkmag2 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 dkfig1 2 4 1 2 8 7 1 30 58 85 doomknight doomknight 10 15 14 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 1 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 33 60 60 140 75 2 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 120 150 115 210 60 135 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +dkmag2 702 doomknight3 dkmag3 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 dkfig2 2 4 1 2 8 7 1 30 58 85 doomknight doomknight 10 15 14 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 1 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 33 60 60 145 75 2 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 120 150 115 210 60 135 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +mummy6 703 mummy1 3 Cadaver mummy1 mummy Mummy MM 1 4 5 3 3 1 25 55 83 mummy mummy 10 15 14 13 25 25 25 50 50 50 100 100 100 55 55 55 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 50 50 50 130 2 25 25 25 5 70 154 85 89 57 107 93 57 107 93 100 140 95 100 60 105 105 100 140 95 100 60 105 105 A1 pois 35 56 106 800 35 55 110 800 35 55 110 800 Act 3 H2H C Act 3 Champ C Act 3 Unique C Act 3 (N) H2H C Act 3 (N) Champ C Act 3 (N) Unique C Act 3 (H) H2H C Act 3 (H) Champ C Act 3 (H) Unique C 0 +ubermephisto 704 mephisto 0 UberMephisto mephisto mephisto demon Mephisto MP 1 1 1 8 8 0 111 111 120 mephisto mephisto 14 6 6 6 40 46 15 20 25 25 33 33 25 33 33 1 1 1 1 1 PrimeLightning A2 6 PrimeBolt A2 20 PrimePoisonNova A2 7 MephistoMissile A2 5 MephFrostNova A2 1 MonBlizzard A2 5 100 -25 -15 -10 33 33 25 50 50 50 25 50 40 40 60 60 60 60 0 1 20 40 50 5 5695 5695 124 2131 295 442 251 5695 5695 160 2131 160 220 200 5695 5695 60 2131 375 440 200 Uber Soul Uber Soul Uber Soul 0 +uberdiablo 705 diablo 0 UberDiablo diablo demon Diablo DI 1 1 1 8 8 0 111 111 120 diablo diablo 14 12 12 12 1 1 1 1 1 DiabLight SC 16 DiabCold S2 2 DiabFire S1 14 DiabWall S3 12 DiabRun seq_diablorun 5 PrimeFirewall S3 8 DiabPrison S3 1 Diablogeddon S3 10 15 15 15 -10 -10 -10 50 50 75 75 75 75 50 50 75 75 75 75 40 40 60 60 60 60 0 1 50 50 50 5 6427 6427 87 3462 77 197 313 113 257 251 6427 6427 140 3462 100 190 215 110 230 200 6427 6427 55 3462 370 380 215 110 230 200 Uber Soul Uber Soul Uber Soul 1 0 +uberizual 706 izual 0 UberIzual izual demon UberIzual 22 1 1 1 10 16 0 110 110 110 izual izual 14 8 8 8 45 50 50 50 50 50 66 66 66 0 75 100 20 5 0 3 4 4 1 1 1 1 1 Frost Nova SC 28 MonTeleport SC 1 100 75 50 -50 -33 -25 30 30 30 30 75 30 30 30 30 30 75 30 50 50 90 90 90 95 1 50 50 50 5 9481 9481 84 3695 132 237 251 3111 3111 120 1987 120 160 200 6500 6600 60 1987 350 400 200 A1 cold 100 42 84 50 100 50 80 75 100 50 80 100 Uber Izual Uber Izual Uber Izual 0 +uberandariel 707 andariel 0 Lilith andariel demon Andariel AN 1 1 1 8 8 0 110 110 110 andariel andariel 14 9 9 9 30 35 35 10 8 6 30 32 34 50 55 60 1 1 1 1 1 AndrialSpray seq_andarielspray 1 AndyPoisonBolt A1 1 100 66 33 -25 -15 0 -50 50 50 80 -50 50 50 50 50 50 90 90 90 90 1 1 0 20 40 5 2562 2562 84 916 76 238 153 2562 2562 110 1492 180 220 200 6500 6600 55 1492 400 440 470 A1 pois 100 33 33 30 100 60 33 33 100 33 33 225 Uber Andariel Uber Andariel Uber Andariel 0 +uberduriel 708 duriel 0 UberDuriel duriel demon Duriel DU 1 1 1 10 15 0 110 110 110 duriel duriel 14 15 15 15 5 5 24 33 33 33 50 50 50 1 1 1 1 1 MonCharge seq_durielcharge 5 MonJab seq_durieljab 15 MonSmite seq_durielsmite 7 MonHolyFreeze NU 1 100 100 100 -20 -20 -20 20 20 50 20 50 50 75 50 50 50 90 90 90 95 1 1 0 25 50 5 4757 4757 85 1655 140 180 201 140 160 252 1 2 200 4757 4757 120 1655 140 190 110 115 165 150 40 50 135 6500 6600 60 1655 360 380 110 115 165 150 40 50 135 A2 stun 100 15 100 20 100 30 A1 cold 100 42 84 50 100 42 84 50 100 42 84 100 Uber Duriel Uber Duriel Uber Duriel 0 +uberbaal 709 baalcrab 0 Baal Crab baalcrab demon BaalCrab 42 1 1 1 6 6 0 111 111 120 baalcrab baalcrab 14 12 12 12 1 1 1 1 1 Baal Nova S3 18 Baal Inferno seq_baalinferno 16 Baal Tentacle S2 15 Baal Cold Missiles A1 36 Baal Teleport A1 1 Baal Lowres S3 13 Blood Mana S3 3 100 50 20 -15 -15 -15 33 33 33 50 50 50 50 50 40 40 60 60 60 60 0 1 40 45 55 5 6336 6336 87 6460 106 179 251 136 271 376 6336 6336 150 6460 120 180 250 135 240 250 6336 6336 56 6460 500 550 250 330 480 250 A1 fire 0 100 100 150 100 120 200 A2 frze 0 100 100 160 500 100 120 160 1000 Uber Soul Uber Soul Uber Soul 1 0 +demonspawner 710 minionspawner1 7 Evil hut minionspawner8 MinionSpawner xa 1 megademon5 0 3 NU 1 1 0 0 1 14 66 82 11 15 15 15 100 100 100 25 25 25 100 100 100 20 22 25 25 25 25 1 MinionSpawner A1 1 -50 -40 -33 15 15 15 5 67 107 84 93 50 90 75 100 400 500 75 100 0 +demonhole 711 evilhole1 0 Dummy evilhole1 EvilHole EH 1 megademon6 0 0 NU 1 1 0 0 1 1 34 67 smithdeath smithdeath 9 15 15 15 3 3 3 25 25 25 1 1 Nest S4 1 -50 2 0 +megademon6 712 megademon1 0 PitLord uberdiablo_megademon megademon Megademon DM 1 2 3 10 16 1 30 57 84 megademon megademon 10 15 13 11 60 75 90 50 60 65 80 95 97 70 70 70 70 70 70 75 60 45 1 1 1 1 1 MegademonInferno S1 9 100 85 66 -50 -40 -33 70 70 80 100 50 90 90 90 90 90 2 39 39 39 5 191 228 101 152 53 95 125 400 500 115 130 80 120 160 400 500 230 260 160 240 160 A1 fire 15 40 80 25 40 80 Act 4 H2H B Act 4 Champ B Act 4 Unique B 0 +dkmag3 713 doomknight3 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 dkfig2 2 4 1 2 8 7 1 30 58 85 doomknight doomknight 10 15 14 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 1 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 33 60 60 90 75 2 29 29 29 5 130 171 107 131 69 153 92 400 500 115 210 60 135 160 400 500 230 420 120 270 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Act 4 (H) H2H B Act 4 (H) Champ B Act 4 (H) Unique B 0 +imp8 714 imp1 3 Imp4 imp1 imp Imp ip 1 1 3 4 7 7 1 38 63 85 imp imp 10 15 14 13 impmissex 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 3 Imp Fire Missile Ex A1 1 Imp Inferno seq_impinferno 5 100 100 100 -50 -40 -33 90 25 25 2 37 37 37 5 65 107 84 137 400 500 110 120 400 500 220 240 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) Cast C Act 5 (H) Champ C Act 5 (H) Unique C 0 +swarm5 715 swarm1 3 HellSwarm swarm4 swarm Swarm drains stamina SW 1 7 9 8 8 1 22 52 81 swarm swarm 10 15 14 13 60 60 60 20 16 12 50 60 70 1 1 1 1 1 Swarm Move seq_swarmmove 1 -50 -40 -33 90 40 90 70 75 70 2 22 22 22 5 22 44 85 61 79 93 94 400 500 120 60 90 120 70 400 500 240 120 90 130 70 A1 stam 90 78 92 100 100 200 100 100 200 A1 fire 25 30 50 40 40 60 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Swarm 2 (H) Act 3 (H) Champ B Act 3 (H) Unique B 0 +sandmaggot7 716 sandmaggot1 4 WorldKiller sandmaggot1 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg6 0 0 S1 2 3 4 4 1 27 57 85 sandmaggot sandmaggot 10 15 14 13 55 55 55 70 70 70 2 3 4 90 90 90 80 80 80 goospitex 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 40 25 90 25 90 2 27 27 27 5 140 172 84 127 89 189 93 400 500 115 125 140 220 75 400 500 230 250 140 220 75 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) H2H A Act 4 (H) Champ A Act 4 (H) Unique A 0 +arach7 717 arach1 0 Arach arach1 arach Arach SP 1 4 5 8 11 1 23 53 84 arach arach 10 15 14 13 75 85 90 55 55 55 20 20 20 8 8 8 45 45 45 1 1 1 1 1 SpiderLay A2 5 100 75 50 -50 -40 -25 50 90 25 50 6 23 23 23 5 151 190 85 114 94 147 92 400 500 135 110 160 240 100 400 500 270 220 160 240 100 A1 pois 50 26 40 3000 50 50 120 3000 50 50 120 3000 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +scarab8 718 scarab1 0 SteelWeevil scarab1 scarab Scarab SC 1 scarab7 1 1 4 5 4 5 6 6 1 24 54 85 scarab scarab 10 15 14 13 90 94 96 70 70 70 70 70 70 70 75 80 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 5 100 75 50 -50 -40 -25 50 90 6 24 24 24 5 67 111 85 83 51 151 92 51 119 92 1 2 95 400 500 145 110 110 220 120 110 220 140 80 140 95 400 500 190 220 110 220 120 110 220 140 80 140 95 A1 ltng 30 18 25 30 15 30 30 15 30 A2 ltng 10 18 25 10 15 30 10 15 30 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +succubus8 719 succubus1 2 Hell Temptress succubus1 succubus Succubus 0B 1 1 4 5 14 14 1 42 61 83 succubus succubus 10 15 14 13 90 93 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 1 100 85 75 -50 -40 -33 33 33 15 33 33 25 66 66 33 66 66 2 50 50 50 5 95 152 107 159 47 85 125 400 500 115 90 100 180 155 400 500 230 180 100 180 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +succubuswitch9 720 succubuswitch1 1 VileWitch succubuswitch1 succubus SuccubusWitch 0C 1 1 4 5 12 12 1 42 61 83 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 50 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 3 Blood Mana S2 3 SuccubusBolt S2 3 100 85 75 -50 -40 -33 80 33 33 15 100 33 25 66 66 33 90 66 2 50 50 50 5 95 152 107 161 47 85 138 400 500 115 145 100 180 120 400 500 230 290 100 180 120 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) Cast A Act 5 (H) Champ A Act 5 (H) Unique A 0 +corruptrogue6 721 corruptrogue1 4 FleshHunter corruptrogue5 corruptrogue CorruptRogue CR 1 4 5 8 12 1 23 53 84 corruptrogue corruptrogue 10 15 14 13 99 99 99 5 5 5 90 99 100 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 40 20 33 33 90 20 2 40 40 40 5 65 107 85 78 47 121 92 400 500 125 95 110 220 130 400 500 190 190 110 220 130 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Act 3 (H) H2H B Act 3 (H) Champ B Act 3 (H) Unique B 0 +cr_archer8 722 cr_archer1 2 DarkArcher cr_archer1 corruptrogue CorruptArcher CR 1 1 3 4 8 12 1 5 61 82 cr_archer cr_archer 10 15 13 11 70 75 80 80 92 95 12 10 9 35 45 55 24 24 24 20 25 30 15 15 15 16 16 16 1 1 1 1 1 MonBow A1 1 MonColdArrow A1 9 MonFreezingArrow A1 7 100 100 100 -50 -40 -33 25 25 50 15 50 50 90 15 2 15 15 15 5 93 131 84 91 30 60 255 400 500 125 100 60 120 150 400 500 180 200 60 120 150 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +cr_lancer9 723 cr_lancer1 3 BlackLancer cr_lancer1 corruptrogue CorruptLancer CR 1 3 4 8 12 1 5 59 81 cr_lancer cr_lancer 10 15 13 12 70 70 70 80 85 90 8 7 6 0 45 60 15 12 10 20 25 30 20 20 20 1 1 1 1 1 1 MonJab seq_crlancerjab 3 MonPowerStrike A1 9 100 100 100 -50 -40 -33 50 25 33 25 90 50 15 2 6 6 6 5 85 124 84 91 76 151 91 60 90 120 400 500 115 85 130 260 140 120 180 120 400 500 180 170 130 260 140 120 180 120 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Act 5 (H) H2H A Act 5 (H) Champ A Act 5 (H) Unique A 0 +overseer6 724 overseer1 4 HellWhip overseer5 overseer Overseer os 1 minion5 1 2 4 2 3 6 6 1 39 60 81 overseer overseer 10 15 14 13 250 250 250 70 70 70 50 50 50 17 17 17 7 7 7 100 100 100 50 55 55 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 33 20 90 2 50 50 50 5 379 379 84 142 61 117 126 101 201 93 400 500 110 125 120 220 135 180 320 105 400 500 180 250 120 220 135 180 320 334 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Act 5 (H) H2H C Act 5 (H) Champ C Act 5 (H) Unique C 0 +skeleton8 725 skeleton1 1 Returned ubermeph_sk skeleton Skeleton SK 1 4 5 5 5 2 14 61 83 skeleton skeleton 10 15 14 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 20 60 50 40 25 80 75 33 70 50 95 25 95 2 30 30 30 5 94 131 84 85 41 101 94 31 101 94 70 100 100 85 40 100 120 40 105 125 70 240 260 85 40 100 120 40 105 125 A1 cold 60 30 60 50 60 30 60 75 60 30 60 125 A2 ltng 60 30 60 60 30 60 60 30 60 Act 2 H2H A Act 2 Champ A Act 2 Unique A 0 +sk_archer11 726 sk_archer1 4 HorrorArcher ubermeph_skarcher skeleton SkeletonBow SK 1 1 3 6 5 5 2 41 63 85 sk_archer sk_archer 10 15 14 13 90 95 99 15 12 11 50 50 50 5 5 5 12 12 12 skbowarrow8 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 33 33 33 140 50 50 50 140 33 10 66 66 66 95 2 48 48 48 5 70 100 100 95 10 25 115 70 100 100 95 35 50 115 70 240 260 95 35 50 115 A1 rand 100 50 80 75 100 50 80 100 100 50 80 125 Act 5 H2H C Act 5 Champ C Act 5 Unique C 0 +skmage_fire7 727 skmage_fire1 3 BurningDeadMage ubermeph_skmage_fire skeleton SkeletonMage SK 1 1 2 3 6 6 1 8 59 81 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmagefire 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 95 50 95 2 15 15 15 5 56 84 84 56 55 80 90 110 55 200 220 110 A1 fire 100 75 100 100 100 175 100 100 175 0 +skmage_ltng7 728 skmage_ltng1 3 HorrorMage ubermeph_skmage_ltng skeleton SkeletonMage SK 1 1 2 3 6 6 1 8 59 81 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmageltng 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 50 95 95 2 15 15 15 5 56 84 84 56 55 80 90 110 55 200 220 110 A1 ltng 100 60 120 100 80 190 100 80 190 0 +skmage_cold6 729 skmage_cold1 2 BoneMage ubermeph_skmage_cold skeleton SkeletonMage SK 1 1 2 3 6 6 1 15 61 82 sk_mage sk_mage 10 15 13 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmagecold 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 33 50 95 95 2 15 15 15 5 56 84 84 56 55 80 90 110 55 200 220 110 A1 cold 100 50 80 50 100 90 150 100 100 90 150 150 0 +skmage_pois7 730 skmage_pois1 0 HorrorMage ubermeph_skmage_pois skeleton SkeletonMage SK 1 1 2 4 5 5 2 17 47 78 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmagepois 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 60 33 75 2 17 17 17 5 56 81 84 55 55 80 90 110 55 200 220 110 A1 pois 100 33 33 100 100 40 40 100 100 40 40 100 0 +vampire9 731 vampire1 3 DarkLord uberbaal_vampire vampire Vampire steals life VA 1 1 2 3 8 8 1 25 55 83 vampire vampire 10 15 14 13 85 85 85 35 40 45 24 24 24 25 34 47 7 7 7 1 1 1 1 1 1 VampireFireball SC 5 VampireFirewall SC 5 VampireMeteor SC 5 VampireMissile SC 1 100 85 75 -50 -40 -25 60 50 60 50 50 95 33 33 95 50 5 25 25 25 5 152 210 85 113 51 119 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 75 50 68 25 75 50 100 50 75 50 100 75 Act 1 Wraith B Act 5 Champ A Act 5 Unique A Act 1 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A 0 +wraith9 732 wraith1 0 Specter uberbaal_wraith wraith Wraith drains mana WR 1 2 4 8 8 1 15 61 82 wraith wraith 10 15 14 13 90 100 100 4 4 4 90 95 99 1 1 1 1 1 1 1 -50 -33 0 20 50 30 60 95 50 25 75 50 95 2 8 8 8 5 83 165 84 93 61 121 94 65 90 130 105 60 105 95 65 90 130 105 60 105 95 A1 mana 40 60 100 45 100 200 50 200 300 Act 1 Wraith B Act 5 Champ A Act 5 Unique A Act 1 (N) Wraith B Act 5 (N) Champ A Act 5 (N) Unique A 0 +willowisp8 733 willowisp1 0 BurningSoul willowisp1 willowisp WillOWisp drains mana WW 1 1 2 4 15 15 1 42 61 83 willowisp willowisp 10 15 14 13 70 70 75 90 90 90 30 30 30 willowisplightningbolt2 1 1 1 1 1 1 MonChainLightning SC 4 -50 -33 0 70 80 70 100 50 90 50 100 33 115 2 28 28 28 5 44 87 84 82 34 151 93 45 85 115 120 45 115 120 45 85 115 120 45 115 120 A1 mana 90 16 72 90 100 200 90 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 1 (H) Wraith B Act 5 (H) Champ A Act 5 (H) Unique A 1 1 0 +countess 734 countess 2 DarkStalker corruptrogue3 corruptrogue CorruptRogue CR 1 3 4 6 10 2 8 39 69 corruptrogue corruptrogue 10 15 14 13 80 85 90 9 7 5 85 90 95 100 100 100 20 50 75 1 1 1 1 1 1 1 1 CountessFirewall A1 10 100 100 100 -50 -40 -33 20 20 33 33 130 20 2 25 25 25 5 67 112 84 79 51 117 95 60 100 95 95 55 110 130 180 300 95 95 55 110 130 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Act 1 (H) H2H C Act 1 (H) Champ C Act 1 (H) Unique C 0 +tcextradrop 735 bonewall 0 Dummy bonewall construct Trap-Poison BW 1 1 1 0 0 0 7 40 73 bonewall bonewall 1 15 15 15 1 1 1 1 1 1 Bone Wall NU 0 70 70 90 200 50 90 200 2 1 19 19 35 147 147 174 431 431 334 Special Special Special Countess (N) Countess (N) Countess (N) Countess (H) Countess (H) Countess (H) 0 +bloodwitch 736 bloodwitch 0 Huntress pantherwoman1 pantherwoman PantherWoman PW 1 1 3 5 10 1 14 43 75 pantherwoman pantherwoman 10 15 14 13 70 70 70 70 75 80 8 8 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 15 100 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 540 900 105 80 50 90 200 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Act 2 (H) H2H A Act 2 (H) Champ A Act 2 (H) Unique A 0 +bloodravenzombie 737 zombie1 1 BloodRavenZombie zombie2 zombie Zombie ZM 1 1 3 3 8 2 3 43 88 zombie zombieunique 10 15 14 13 40 50 60 15 20 25 25 30 35 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 50 110 75 2 4 4 4 5 303 558 84 111 64 202 101 202 268 101 303 558 80 105 120 280 105 140 300 110 303 558 80 105 120 280 105 140 300 110 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Act 1 (H) H2H A Act 1 (H) Champ A Act 1 (H) Unique A 0 +lesserhydra1 738 lesserhydra1 0 Hydra hydra1 Hydra HX 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 1 HydraMissile A1 1 2 0 +lesserhydra2 739 lesserhydra2 0 Hydra hydra2 Hydra 21 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 1 HydraMissile A1 1 2 0 +lesserhydra3 740 lesserhydra3 0 Hydra hydra3 Hydra HZ 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 1 HydraMissile A1 1 2 0 +necroarcher 741 necroarcher 0 NecroArcher necroarcher skeleton NecroPet SK 1 1 1 1 12 14 1 sk_archer sk_archer 9 10 10 10 80 80 80 75 75 75 15 15 15 50 50 50 0 0 0 1 1 1 1 1 1 1 Skeleton Archer Bow A1 1 -50 -50 -50 45 45 45 45 60 60 60 60 75 75 75 75 4 1 3 3 3 5 40 40 18 1 1 1 72 72 22 1 1 1 101 101 26 1 1 1 0 +chainlightningsentry 742 lightningsentry 0 Chain Lightning Sentry chainlightningsentry construct AssassinSentry lg 1 1 1 0 0 0 lightningsentry lightningsentry 15 15 15 100 100 100 10 10 10 15 15 15 25 25 25 0 0 0 1 1 1 1 1 Sentry Chain Lightning seq_chargesentry 1 -50 -50 -50 2 1 100 100 100 100 100 100 100 100 100 0 +willowispboss 743 willowispboss 0 Wisp Boss willowispboss willowispboss willowisp WillOWisp WW 1 1 willowisptotem 0 0 NU willowispminion willowispminion2 2 2 1 1 25 25 1 21 50 92 willowisp willowisp 10 8 8 8 65 0 0 0 0 0 0 0 0 0 50 50 50 50 50 50 15 15 15 55 55 55 25 25 25 1 1 1 1 WispBossChainLightning SC 1 MinionSpawner S1 1 WispBossNova SC 1 Blink SC 1 20 0 0 0 40 50 40 70 50 50 90 90 90 90 4 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 16000 16000 115 2700 300 350 120 A1 mana 90 16 72 Map Boss T4 Map Boss T4 Map Boss T4 Map Boss T4 Map Boss T4 Map Boss T4 UberAncients UberAncients UberAncients 0 +willowispminion 744 willowispminion 2 Wisp Minion1 willowispboss willowispminion willowisp WillOWisp immune minion WW 1 1 1 1 20 22 1 21 50 92 willowisp willowisp 10 13 13 13 50 0 0 0 0 0 0 0 0 0 55 55 55 20 20 20 1 1 1 1 1 WispMinionLightning SC 1 Immune Passive NU 1 MonDecrepify SC 1 Blink SC 1 20 -50 -33 0 40 50 40 70 50 50 90 90 90 90 4 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 8000 8000 115 650 45 115 120 A1 mana 90 16 72 Act 3 Wraith A Act 3 Champ A Act 3 Unique A Act 3 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Map Wraith t3 Map Champ t3 Map Unique t3 0 +willowisptotem 745 willowisptotem 0 GargoyleTrap gargoyletrap willowisptotem construct Idle GT 1 1 1 0 0 0 15 40 92 gargoyletrap gargoyletrap 9 15 15 15 24 26 28 20 50 80 12 10 8 15 7 0 1 1 -50 0 0 70 100 50 50 75 75 75 75 0 16 16 16 5 132 172 84 106 140 190 35 250 2000 2000 35 0 0 +megademonboss 746 megademonboss 0 Megademon Boss megademonboss megademon Megademon DM 1 1 1 18 16 1 24 55 91 megademon megademon 10 11 11 11 50 50 65 80 40 50 55 80 85 90 70 70 70 50 50 50 75 60 45 1350 1350 1350 1350 1350 1350 1 1 1 1 1 1 1 MegademonInfernoBoss S1 14 MegademonBlazeBoss S1 17 MegademonArmaBoss S1 1 100 85 20 0 0 0 70 80 20 20 50 50 50 50 32 32 32 5 191 229 101 129 51 94 125 210 250 115 130 100 160 160 5500 5500 115 600 180 260 320 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map Boss T1 Map Boss T1 Map Boss T1 0 +fingermageboss 747 fingermageboss 2 Fingermage Boss fingermageboss fingermageboss fingermage Summoner FR 1 1 1 15 16 1 30 58 92 fingermage fingermage 10 10 10 10 50 100 100 100 25 25 0 50 50 50 100 100 100 200 200 200 33 20 10 25 25 25 5 5 5 1 1 1 1 1 1 1 1 FingerMageBossSpider S1 1 FingermageBossDiabWall S1 1 FingerMageBossSpider S1 1 FingermageBossShockWave A1 1 FingermageBossNova S1 1 100 66 20 0 0 0 60 60 75 75 50 50 90 90 90 90 4 29 29 29 5 152 209 84 130 53 122 92 80 110 120 135 55 120 120 12000 12000 120 4000 55 120 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B UberAncients UberAncients UberAncients 0 +cantorboss 748 cantorboss 2 Cantor Boss cantor3 zakarum ZakarumPriest ZP 1 1 cantorbossbear 0 0 NU 1 1 8 8 1 24 53 88 cantor cantor 10 13 13 13 0 0 0 90 90 90 90 90 90 90 90 90 75 75 75 25 25 25 66 66 66 1 1 1 1 1 1 ZakarumHeal S1 10 CantorBossTornado S1 5 MonTeleport S1 1 CantorBossEruption S1 10 MinionSpawner S1 1 100 100 100 0 0 0 50 75 20 20 50 50 50 50 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 5800 6000 75 130 40 85 90 A1 cold 65 31 62 25 65 30 60 50 65 30 60 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Boss T2 Map Boss T2 Map Boss T2 0 +cantorbossbear 749 cantorbossbear 0 Bear bear Brute TG 1 1 1 6 6 0 24 53 88 werebear werebear 14 11 11 11 0 0 0 90 90 90 90 90 90 90 90 90 75 75 75 25 25 25 66 66 66 1 1 1 1 1 Maul A1 10 100 100 100 -50 -40 -33 50 75 20 20 50 50 50 50 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 5800 6000 75 130 40 85 90 A1 cold 65 31 62 25 65 30 60 50 65 30 60 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Boss T2 Map Boss T2 Map Boss T2 0 +unravelerboss 750 unravelerboss 0 Unraveler Boss unravelerboss unravelerboss unraveler GreaterMummy raises undead GY 1 unravelerbossskeleton unravelerbossarcher 12 12 1 1 2 2 1 15 44 90 unraveler unraveler 12 13 13 13 100 100 100 30 35 40 40 45 50 60 70 80 24 27 31 mummy1 1 1 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnravelerBossMultiShot seq_mummyres 1 100 66 20 0 0 0 50 50 20 20 50 50 50 50 0 1 15 33 5 194 238 84 136 121 161 94 170 210 120 300 110 140 160 3400 3400 120 500 100 130 160 A1 pois 15 120 160 1000 15 33 33 1000 15 33 33 1000 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Map Boss T1 Map Boss T1 Map Boss T1 0 +unravelerbossskeleton 751 unravelerbossskeleton 3 BurningDead skeleton4 unravelerbossskeleton skeleton Skeleton SK 1 2 4 6 6 2 13 43 90 skeleton skeleton 10 13 13 13 90 95 100 7 6 0 90 95 100 66 66 66 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 50 75 75 20 20 50 50 50 50 2 25 25 25 5 93 133 84 85 45 101 93 34 101 93 70 100 100 85 40 100 120 40 105 125 300 300 100 72 60 90 110 40 105 125 A1 fire 50 22 55 50 25 55 50 25 55 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map Miss t1 Map Champ t1 Map Unique t1 0 +unravelerbossarcher 752 unravelerbossarcher 3 BurningDeadArcher sk_archer4 unravelerbossarcher skeleton SkeletonBow SK 1 1 2 4 5 5 2 13 43 90 sk_archer sk_archer 10 13 13 13 80 85 100 15 13 0 50 50 50 5 5 5 6 6 6 skbowarrow4 1 1 1 1 1 -50 -40 -25 30 50 50 60 20 20 50 50 50 50 2 35 35 35 5 76 151 84 89 45 70 252 70 100 100 95 35 50 115 200 200 100 81 44 80 115 A1 fire 100 25 55 100 25 55 100 25 55 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Map Miss t1 Map Champ t1 Map Unique t1 0 +griswoldmap 753 griswoldmap 0 StrAvunaos griswold griswoldmap undead Goatman GZ 1 griswoldgolem 2 2 1 1 5 5 0 5 39 89 zombie zombie 11 10 10 10 100 100 100 0 0 0 100 100 100 1 1 1 1 1 1 1 100 85 20 0 0 0 50 50 20 20 50 50 50 50 2 6 6 6 5 2400 2800 84 273 51 151 91 608 608 80 273 50 150 100 2800 3000 80 200 125 175 100 Griswold Griswold Griswold Griswold (N) Griswold (N) Griswold (N) Map Boss T3 Map Boss T3 Map Boss T3 0 +griswoldgolem 754 griswoldgolem 0 BloodGolem bloodgolem griswoldgolem golem Goatman G2 1 1 1 8 8 0 5 39 89 bloodgolem bloodgolem 11 15 15 15 100 100 100 0 0 0 100 100 100 1 1 1 1 1 1 1 100 85 20 -50 -40 -33 50 50 20 20 50 50 50 50 2 6 6 6 5 2200 2600 84 273 51 151 91 608 608 80 273 50 150 100 1800 2000 80 200 100 150 100 Map H2H t3 Map Champ t3 Map Unique t3 0 +baalminionboss 755 baalminionboss 0 StrBelial baalminionboss baalminionboss demon BaalMinion 43 1 1 1 12 12 0 55 68 91 baalminion baalminion 10 15 15 15 100 100 100 100 100 100 50 50 50 13 13 13 1 1 1 25 25 25 10 10 10 1 1 1 1 1 1 1 BaalMinionBossBerserk A1 1 BaalMinionBossRabies A2 1 BaalMinionBossCharge A2 1 BaalMinionBossNova A2 1 100 75 20 0 0 0 50 50 95 95 50 50 20 20 50 50 50 50 0 50 50 50 5 940 1040 87 634 30 92 251 15 165 238 430 480 135 247 80 130 210 80 140 210 6500 6500 135 500 90 145 210 90 145 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map Boss T3 Map Boss T3 Map Boss T3 1 0 +cr_lancermap 756 cr_lancer1 3 BlackLancer cr_lancer4 corruptrogue CorruptLancer CR 1 2 4 6 10 1 9 40 87 cr_lancer cr_lancer 10 13 13 13 90 90 90 88 95 97 6 5 5 0 55 70 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 0 35 25 75 75 25 2 10 10 10 5 86 131 84 91 58 143 95 80 115 95 85 65 130 140 128 148 95 72 106 186 140 A1 ltng 10 5 140 20 5 160 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +goatmanmap 757 goatman1 0 MoonClan goatman1 goatman Goatman GM 1 1 2 5 5 1 4 37 87 goatman goatman 10 13 13 13 75 75 80 10 10 9 80 80 80 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 50 35 60 25 50 50 2 5 5 5 5 110 137 51 91 76 126 89 100 130 60 90 75 130 85 138 169 60 77 122 186 85 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +cr_archermap 758 cr_archer1 0 DarkRanger cr_archer1 corruptrogue CorruptArcher CR 1 1 1 2 4 4 1 4 37 87 cr_archer cr_archer 10 13 13 13 60 65 70 70 85 88 14 11 9 20 30 40 20 20 20 12 12 12 cr_arrow1 1 1 1 1 1 100 100 100 -50 -40 -33 15 20 25 25 120 25 2 13 13 13 5 91 128 84 91 60 90 256 55 95 90 100 60 90 150 119 139 90 85 127 164 150 Act 1 Miss A Act 1 Champ A Act 1 Unique A Act 1 (N) Miss A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +bigheadmap 759 bighead1 3 Disfigured bighead4 bighead Bighead BH 1 1 1 3 5 5 1 8 40 87 bighead bighead 10 13 13 13 83 0 0 40 40 40 0 50 65 60 70 80 bighead4 1 1 1 1 1 100 85 75 -50 -40 -33 50 75 25 0 50 50 25 50 2 8 8 8 5 67 128 63 81 67 101 77 65 120 90 125 50 100 110 114 147 90 106 66 119 110 A2 ltng 100 75 110 100 140 180 100 220 260 A1 ltng 15 10 20 35 10 20 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +succubuswitchmap 760 succubuswitch1 1 VileWitch succubuswitch2 succubus SuccubusWitch 0C 1 1 2 4 8 8 1 34 61 87 succubus succubus 10 13 13 13 90 90 90 25 25 25 0 25 35 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 1 MonLowerRes S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 15 125 33 25 50 2 49 49 49 5 95 152 107 130 46 82 138 60 90 115 145 50 90 120 92 122 115 123 105 151 120 A2 mag 100 40 75 100 40 75 100 50 85 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t3 Map Champ t3 Map Unique t3 0 +unravelermap 761 unraveler1 0 HollowOne unraveler1 unraveler GreaterMummy raises undead GY 1 skeleton2ruins 2 8 1 1 2 2 1 15 44 87 unraveler unraveler 12 13 13 13 70 70 70 30 35 40 40 45 50 60 70 80 24 27 31 mummy1 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 1 100 66 33 -50 -33 -25 50 50 33 50 45 45 55 50 3 1 15 33 5 194 238 84 136 121 161 94 170 210 120 300 110 140 160 148 189 120 255 139 175 160 A1 pois 15 120 160 1000 15 33 33 1000 15 66 66 1000 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Map Cast t1 Map Champ t1 Map Unique t1 0 +arachmap 762 arach1 4 SpiderMagus arach5 arach Arach SP 1 4 5 8 11 1 23 53 87 arach arach 10 13 13 13 75 75 75 55 55 55 20 25 30 8 8 8 45 45 45 1 1 1 1 1 SpiderLay A2 5 100 75 50 -50 -40 -25 50 0 50 50 20 75 3 23 23 23 5 151 190 85 114 94 147 92 150 190 135 110 70 105 100 199 240 135 94 82 122 100 A1 pois 50 16 30 750 50 15 35 750 100 30 40 750 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +thornhulkmap 763 thornhulk1 0 ThornedHulk thornhulk1 thornhulk ThornHulk TH 1 1 3 3 3 1 21 49 87 thornhulk thornhulk 10 13 13 13 80 80 80 15 15 15 10 10 10 30 30 30 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 1 100 85 75 -50 -40 -33 115 0 0 75 45 75 4 21 21 21 5 153 248 85 123 86 143 94 72 143 94 190 230 140 130 90 160 105 75 150 120 163 205 140 111 139 246 105 139 246 120 A2 stun 100 7 100 7 100 7 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +sandleapermap 764 sandleaper1 3 TreeLurker sandleaper4 sandleaper SandLeaper SL 1 3 4 8 8 1 22 52 87 sandleaper sandleaper 10 13 13 13 20 22 24 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 4 100 85 75 -50 -40 -33 20 40 70 70 25 25 50 75 50 50 2 22 22 22 5 66 192 85 94 65 122 94 65 122 94 40 80 130 95 65 120 100 55 100 90 117 163 130 81 134 175 100 117 199 90 A1 pois 5 10 10 50 10 45 45 75 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +mosquitomap 765 mosquito1 0 Sucker mosquito1 mosquito Mosquito drains mana and stamina MO 1 1 3 6 12 1 21 49 87 mosquito mosquito 10 13 13 13 40 45 55 40 45 55 5 5 5 1 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 0 50 75 45 25 80 2 21 21 21 5 21 107 85 74 51 122 94 20 100 95 75 50 95 90 114 163 95 64 129 180 90 A1 stam 60 357 428 100 500 600 100 500 600 Swarm 2 Act 3 Champ A Act 3 Unique A Swarm 2 (N) Act 3 (N) Champ A Act 3 (N) Unique A Map Swarm t1 Map Champ t1 Map Unique t1 0 +fetishshamanmap 766 fetishshaman1 1 FetishShaman fetishshaman2 fetish FetishShaman raises Fetishes FW 1 fetish2ruins fetishblow2ruins 1 1 2 7 1 1 7 7 1 22 49 87 fetishshaman fetishshaman 12 13 13 13 40 45 45 0 1 2 15 16 19 66 66 66 50 50 50 1 1 1 1 1 1 FetishInferno A1 10 FetishAura A1 2 100 100 100 -50 -40 -33 25 25 75 45 45 50 2 22 22 22 5 66 107 85 77 65 105 100 260 148 189 100 221 Act 3 Cast A Act 3 Champ A Act 3 Unique A Act 3 (N) Cast A Act 3 (N) Champ A Act 3 (N) Unique A Map Cast t1 Map Champ t1 Map Unique t1 1 0 +cantormap 767 cantor1 2 Heirophant cantor3 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealotmap 2 4 1 2 6 6 1 24 53 87 cantor cantor 10 13 13 13 35 35 35 8 14 22 60 70 80 35 50 70 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 3 ZakarumLightning S1 1 MonTeleport S1 1 MonBlizzard S1 1 100 100 100 -50 -40 -33 50 75 10 33 50 50 75 20 2 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 148 212 75 111 40 85 130 A1 cold 65 31 62 25 65 30 60 50 65 45 90 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t1 Map Champ t1 Map Unique t1 0 +minionmap 768 minion1 4 HellSpawn minion5 minion Minion xx 1 2 4 7 10 2 37 62 88 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 60 60 1 1 1 1 1 1 100 85 75 -50 -40 -33 30 0 50 75 50 75 2 50 50 50 5 190 237 101 197 74 96 151 92 114 163 100 125 100 80 75 100 100 70 115 110 154 168 100 68 106 128 100 106 128 110 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +pantherwomanmap 769 pantherwoman1 3 HellCat pantherwoman4 pantherwoman PantherWoman PW 1 3 4 8 13 1 19 48 88 pantherwoman pantherwoman 10 13 13 13 90 90 90 90 90 95 24 12 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 15 25 25 50 75 25 2 30 30 30 5 58 96 63 70 47 116 93 60 100 105 80 70 110 200 126 156 105 68 72 102 200 A1 fire 15 50 80 50 114 137 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +fallenmap 770 fallen1 0 Fallen fallen1 fallen Fallen FA 1 fallenmap 1 1 2 3 2 3 10 10 2 1 36 88 fallen fallen 10 11 11 11 30 40 50 10 15 20 50 60 70 20 25 30 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 25 50 25 40 50 2 9 9 9 5 21 61 84 61 51 101 101 51 101 101 25 55 70 65 65 110 90 50 100 85 101 136 70 55 93 145 120 93 145 85 A1 fire 10 20 30 35 42 60 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +slingermap 771 slinger1 3 HellSlinger slinger4 pantherwoman PantherJavelin PW 1 1 3 4 5 10 1 19 48 88 slinger slinger 10 13 13 13 70 70 70 85 85 85 9 9 9 25 25 25 12 12 12 20 24 28 pantherjav4 1 1 1 1 100 100 100 -50 -40 -33 10 25 25 50 25 50 2 19 19 19 5 53 86 58 67 47 116 93 55 85 95 80 70 105 145 115 140 95 68 93 122 145 A1 fire 5 30 55 45 67 86 Act 2 Miss C Act 2 Champ C Act 2 Unique C Act 2 (N) Miss C Act 2 (N) Champ C Act 2 (N) Unique C Map Miss t1 Map Champ t1 Map Unique t1 0 +siegebeastmap 772 siegebeast1 0 Siege Beast siegebeast1 siegebeast SiegeBeast ox 1 imp1phlegethon 1 3 4 1 1 3 7 1 37 59 88 siegebeast siegebeast 10 13 13 13 25 25 25 50 60 65 1 2 3 15 15 15 1 2 3 50 50 50 100 100 100 1 1 1 1 1 MonCharge seq_siegebeastcharge 1 100 100 100 -50 -40 -33 50 0 120 33 50 25 2 50 50 50 5 379 379 88 287 92 122 251 360 420 90 260 160 240 170 174 192 90 238 154 222 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +bloodlordmap 773 bloodlord1 0 Blood Lord1 bloodlord1 bloodlord BloodLord L3 1 1 2 7 7 1 33 61 88 bloodlord bloodlord 10 13 13 13 90 90 90 85 85 85 50 55 60 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -50 -40 -30 50 50 50 50 50 50 2 50 50 50 5 284 380 126 240 67 148 189 67 148 189 240 300 130 210 80 150 180 80 150 180 150 174 130 179 102 161 180 102 161 180 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +councilmembermap 774 councilmember1 0 Council Member councilmember1 councilmember1 councilmember HighPriest HP 1 1 1 6 12 1 25 56 88 councilmember councilmember 11 12 12 12 75 75 75 25 25 15 125 100 75 40 45 45 70 75 75 8 8 8 15 15 15 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 4 100 85 66 -50 -33 -25 30 0 75 80 45 40 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 70 140 140 146 164 110 128 76 137 140 Council Council Council Council (N) Council (N) Council (N) Map Cast t1 Map Champ t1 Map Unique t1 0 +reanimatedhordemap 775 reanimatedhorde1 3 UnholyCorpse reanimatedhorde4 zombie ReanimatedHorde re 1 2 4 2 5 2 40 64 88 reanimatedhorde reanimatedhorde 10 13 13 13 60 70 80 20 15 12 12 15 18 30 40 40 30 30 30 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 20 50 70 20 50 100 50 50 25 25 75 120 2 50 50 50 5 114 171 107 164 33 89 138 33 89 93 110 135 70 105 70 110 135 60 120 100 115 132 70 89 84 119 135 108 152 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +fallenshamanmap 776 fallenshaman1 0 FallenShaman fallenshaman1 fallen FallenShaman raises Fallen FS 1 fallenmap 1 2 6 1 1 4 4 2 2 36 88 fallenshaman fallenshaman 12 13 13 13 45 50 55 60 65 70 100 90 80 24 24 26 15 15 15 1 1 1 1 1 ShamanFire seq_shamanresurrect 3 100 75 66 -50 -40 -33 25 50 15 25 75 75 45 50 2 4 4 4 5 58 101 84 81 34 101 101 55 90 75 150 90 180 105 188 220 75 128 102 145 105 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Map Cast t1 Map Champ t1 Map Unique t1 0 +doomknightmap 777 doomknight1 0 DoomKnight doomknight1 doomknight DoomKnight Fighter UM 1 2 3 6 7 1 24 56 89 doomknight doomknight 10 13 13 13 90 95 100 10 5 5 80 85 90 10 10 10 1 1 1 1 1 1 1 100 75 33 -50 -33 -25 80 20 20 40 100 20 20 40 33 0 75 20 25 50 2 1 24 24 24 5 131 173 107 111 69 151 92 120 150 115 100 70 150 180 201 235 115 85 116 188 180 A1 rand 60 31 62 50 60 30 60 75 60 57 91 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +vilemothermap 778 vilemother1 0 FleshSpawner vilemother1 vilekind VileMother VM 1 vilechild1Riverofblood 0 0 NU 1 2 7 7 1 24 56 89 vilemother vilemother 10 13 13 13 16 17 20 5 5 6 30 35 40 80 85 90 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 66 105 45 25 65 20 2 24 24 24 5 229 295 63 142 82 182 92 200 250 80 130 80 130 110 197 288 80 111 170 197 110 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Map Cast t3 Map Champ t3 Map Unique t3 0 +zealotmap 779 zealot1 2 Zealot zealot3 zakarum ZakarumZealot ZZ 1 2 3 6 11 1 24 53 89 zealot zealot 10 13 13 13 85 90 95 65 65 65 50 50 50 70 80 90 1 1 1 1 1 100 100 100 -50 -40 -33 10 0 25 80 35 20 2 24 24 24 5 131 173 85 100 57 101 92 57 101 92 120 150 80 80 60 100 100 60 105 115 207 227 80 68 121 161 100 68 120 115 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +oblivionknightmap 780 doomknight3 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 doomknightmap 2 4 1 2 8 7 1 30 58 89 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 3 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 33 25 50 60 75 75 2 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 207 227 115 179 121 188 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +deathmaulermap 781 deathmauler1 0 Death Mauler1 deathmauler1 deathmauler DeathMauler m5 1 4 5 4 4 1 32 58 89 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 15 15 15 50 50 50 1 1 1 1 DeathMaul seq_deathmaulerdig 1 100 85 75 -50 -40 -33 25 50 25 33 0 50 120 50 20 2 50 50 50 5 123 152 126 153 51 76 251 115 145 95 105 75 140 115 197 227 95 89 135 193 115 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +sk_archermap 782 sk_archer1 0 SkeletonArcher sk_archer1 skeleton SkeletonBow SK 1 1 1 2 4 4 2 5 38 89 sk_archer sk_archer 10 13 13 13 75 80 85 15 14 13 50 50 50 5 5 5 6 6 6 skbowarrow1 1 1 1 1 1 -50 -40 -25 50 60 40 50 33 40 33 120 2 15 15 15 5 70 147 84 89 65 90 255 70 100 100 95 35 50 115 159 193 100 81 116 161 115 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +baalminionmap 783 baalminion1 0 Baals Minion baalminion1 demon BaalMinion 43 1 1 1 8 8 0 55 68 89 baalminion baalminion 10 13 13 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 0 25 75 33 65 75 2 50 50 50 5 472 660 87 634 30 92 251 15 165 238 430 480 135 247 80 130 210 80 140 210 415 435 135 210 161 197 210 91 160 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 1 0 +regurgitatormap 784 regurgitator1 0 Corpulent regurgitator1 regurgitator Regurgitator eats and spits corpses CS 1 1 2 6 12 1 24 56 89 regurgitator regurgitator 10 13 13 13 70 75 75 20 20 20 40 50 50 10 20 30 3 5 5 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 1 100 85 75 -50 -40 -33 25 20 25 45 50 75 2 24 24 24 5 211 285 85 138 82 138 92 240 320 95 140 85 145 105 332 365 95 119 170 210 105 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +fetishmap 785 fetish1 1 Fetish fetish2 fetish Fetish FE 1 3 6 7 7 1 21 49 87 fetish fetish 10 13 13 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 25 25 50 50 50 50 2 21 21 21 5 64 107 85 79 65 101 94 55 80 125 75 60 95 95 126 145 125 64 109 137 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +monhydra1 786 hydra1 0 Hydra hydra1 Hydra HX 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 HydraMissile A1 1 2 0 +monhydra2 787 hydra2 0 Hydra hydra2 Hydra 21 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 HydraMissile A1 1 2 0 +monhydra3 788 hydra3 0 Hydra hydra3 Hydra HZ 1 1 1 0 0 0 hydra hydra 15 15 15 1 1 1 HydraMissile A1 1 2 0 +uberdiablonew 789 uberdiablonew 0 uberdiablonew uberdiablonew uberdiablonew demon Trap-Melee DI 1 1 1 4 8 0 110 110 110 diablo diablo 14 35 35 35 128 128 128 25 25 25 25 25 25 25 25 35 25 25 25 7 7 7 25 25 25 15 15 15 20 20 20 1 1 1 1 1 1 UberDiabWall S1 1 UberDiabCold S2 1 UberDiabFire S1 1 UberDiabLight SC 1 UberDiabSuperFire S1 1 UberDiabSummon S1 1 UberDiabRun seq_diablorun 1 MonTeleport S1 1 5 5 5 0 0 0 50 50 75 75 75 75 50 50 75 75 75 75 30 15 30 30 30 30 0 1 15 15 15 5 6427 6427 87 3462 77 197 313 113 257 251 6427 6427 140 3462 100 190 215 110 230 200 10530 10530 140 9000 370 380 215 110 230 200 1 0 +ubertrappedsoul1 790 trappedsoul1 0 TrappedSoul trappedsoul1 ubertrappedsoul TrappedSoul 10 1 1 1 0 0 1 110 110 110 trappedsoul1 trappedsoul1 0 40 40 40 128 128 128 100 100 100 60 60 60 25 25 25 100 100 100 10 10 10 20 20 20 1 1 1 1 1 UberDiabloMeteor A1 1 UberDiabloBoulder A2 1 100 100 100 200 200 200 200 200 200 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 500 600 180 500 600 180 1 1 1 0 +ubertrappedsoul2 791 trappedsoul1 0 TrappedSoul trappedsoul1 ubertrappedsoul TrappedSoul 10 1 1 1 0 0 1 110 110 110 trappedsoul1 trappedsoul1 0 35 35 35 128 128 128 100 100 100 60 60 60 25 25 25 80 80 80 10 10 10 20 20 20 1 1 1 1 1 UberDiabloMeteor A1 1 UberDiabloBoulder A2 1 100 100 100 200 200 200 200 200 200 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 30 60 180 230 260 180 1 1 1 0 +ubertrappedsoul3 792 trappedsoul1 0 TrappedSoul trappedsoul1 ubertrappedsoul TrappedSoul 10 1 1 1 0 0 1 110 110 110 trappedsoul1 trappedsoul1 0 60 60 60 128 128 128 100 100 100 60 60 60 25 25 25 40 40 40 10 10 10 20 20 20 2 1 1 1 1 1 UberDiabloMeteor A1 1 UberDiabloBoulder A2 1 100 100 100 200 200 200 200 200 200 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 30 60 180 230 260 180 1 1 1 0 +ubertrappedsoul4 793 trappedsoul1 0 TrappedSoul trappedsoul1 ubertrappedsoul TrappedSoul 10 1 1 1 0 0 1 110 110 110 trappedsoul1 trappedsoul1 0 55 55 55 128 128 128 100 100 100 100 100 100 50 50 50 60 60 60 10 10 10 20 20 20 1 1 1 1 1 UberDiabloMeteor A1 1 UberDiabloBoulder A2 1 100 100 100 200 200 200 200 200 200 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 30 60 180 230 260 180 1 1 1 0 +ubertrappedsoul5 794 trappedsoul1 0 TrappedSoul trappedsoul1 ubertrappedsoul TrappedSoul 10 1 1 1 0 0 1 110 110 110 trappedsoul1 trappedsoul1 0 50 50 50 128 128 128 100 100 100 60 60 60 25 25 25 20 20 20 10 10 10 20 20 20 3 1 1 1 1 1 UberDiabloMeteor A1 1 UberDiabloBoulder A2 1 100 100 100 200 200 200 200 200 200 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 30 60 180 230 260 180 1 1 1 0 +ancientbarbboss1 795 ancientbarbboss1 0 Ancient Barbarian 1 ancientbarb1 human Andariel 0D 1 1 1 10 10 0 37 68 87 ancient ancient 10 11 11 11 128 128 128 50 50 50 25 25 25 10 10 10 50 50 50 1 1 MonWhirlwind seq_ancientwhirlwind 18 MonShout SC 5 100 100 100 0 0 0 70 70 70 70 70 70 40 110 50 50 50 0 5 500 600 84 9 14 251 9 14 251 600 800 125 4 7 250 4 7 250 800 1000 125 4 7 250 4 7 250 0 +ancientbarbboss2 796 ancientbarbboss2 1 Ancient Barbarian 2 ancientbarb2 human BloodRaven 0F 1 1 1 10 10 0 37 68 87 ancient ancient 10 11 11 11 128 128 128 15 15 15 50 50 50 25 25 25 25 25 25 7 7 7 ancient throwing axe 1 1 MonShout SC 5 100 100 100 -25 -25 -15 70 70 70 70 40 50 100 70 50 0 5 500 600 84 9 14 251 600 800 125 4 7 250 800 1000 125 4 7 250 0 +ancientbarbboss3 797 ancientbarbboss3 2 Ancient Barbarian 3 ancientbarb3 human SandLeaper 0E 1 1 1 10 10 0 37 68 87 ancient ancient 10 11 11 11 128 128 128 50 50 50 50 50 50 75 75 75 50 50 50 1 1 MonLeapAttack seq_ancientleap 5 100 100 100 0 0 0 70 70 70 70 70 70 40 70 50 150 50 0 5 500 600 84 9 14 251 9 14 251 600 800 125 4 7 250 4 7 250 800 1000 125 4 7 250 4 7 250 0 +duntrappedsoul 798 trappedsoul1 0 TrappedSoul trappedsoul1 TrappedSoul 10 1 1 1 0 0 1 110 110 110 trappedsoul1 trappedsoul1 25 25 25 100 100 100 60 60 60 25 25 25 1 1 1 1 100 100 100 200 200 200 200 200 200 5 57 76 2 1 16 37 148 16 37 148 50 70 55 30 30 60 180 30 60 180 50 70 55 30 30 60 180 30 60 180 1 1 1 0 +willowispminion2 799 willowispminion2 2 Wisp Minion2 willowispboss willowispminion willowisp WillOWisp immune minion WW 1 1 1 1 20 22 1 21 50 87 willowisp willowisp 10 13 13 13 0 0 0 0 0 0 0 0 0 55 55 55 20 20 20 1 1 1 1 1 WispMinionLightning SC 1 Immune Passive NU 1 MonWeaken SC 1 Blink SC 1 -50 -33 0 40 50 40 70 20 20 50 50 50 50 2 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 100 100 115 120 45 115 120 Act 3 Wraith A Act 3 Champ A Act 3 Unique A Act 3 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Map Wraith t3 Map Champ t3 Map Unique t3 0 +ArcaneBoss 800 succubuswitch1 succubuswitch7 3 ArcaneBoss ArcaneBoss succubus Summoner 0C 1 1 4 5 12 12 1 42 61 89 succubus succubus 10 13 13 13 85 93 98 5 5 5 63 63 63 25 25 60 120 100 100 33 20 10 5 8 20 40 40 40 1 1 1 1 1 1 1 Twister S2 16 Tornado Arcane Boss S2 1 MonAmplifyDamage S2 10 100 85 20 0 0 0 80 33 33 15 100 33 20 20 50 50 50 50 2 50 50 50 5 95 152 107 161 47 85 138 60 90 115 145 50 90 120 5670 5670 115 400 120 180 360 A2 mag 100 40 75 100 40 75 100 70 105 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T2 Map Boss T2 Map Boss T2 0 +flyingscimitarArcane 801 flyingscimitar 0 FlyingScimitar flyingscimitar construct FlyingScimitar ST 1 3 6 4 4 1 12 45 87 flyingscimitar flyingscimitar 10 10 10 10 90 90 90 90 95 99 8 8 8 40 50 60 1 1 1 1 1 MonCharge seq_pinheadsmite 1 -50 -25 70 100 25 50 50 120 75 75 2 13 13 13 5 97 131 84 83 38 113 93 100 135 150 140 75 120 150 142 213 150 119 136 189 150 Flying Scimitar Flying Scimitar Flying Scimitar Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (N) Map H2H t2 Map Champ t2 Map Unique t2 0 +zealotArcane 802 zealot1 zealot2 0 Zakarumite zealot1 zakarum ZakarumZealot ZZ 1 1 2 6 8 1 20 50 87 zealot zealot 10 13 13 13 65 75 85 50 50 50 35 35 35 50 60 70 1 1 1 1 1 100 100 100 -50 -40 -33 10 0 25 25 35 20 2 20 20 20 5 129 172 85 100 62 108 93 62 108 93 120 150 80 80 60 100 100 60 105 115 163 227 80 68 119 166 100 96 168 115 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +painwormArcane 803 painworm1 painworm5 3 Pain Worm4 painworm4 vilekind VileDog 46 1 2 2 8 10 1 37 64 87 vilechild vilechild 10 13 13 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 0 25 75 75 50 50 2 48 48 48 5 65 107 84 5 31 61 126 35 65 85 5 30 60 80 128 185 85 4 82 119 80 Map H2H t2 Map Champ t2 Map Unique t2 0 +cantorArcane 804 cantor1 cantor3 1 Cantor cantor2 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealotArcane 2 4 1 1 6 6 1 23 51 87 cantor cantor 10 13 13 13 30 30 30 6 12 18 55 65 75 30 45 65 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 2 ZakarumLightning S1 3 MonTeleport S1 1 MonBlizzard S1 3 100 100 100 -50 -40 -33 50 50 10 20 45 50 50 45 2 23 23 23 5 130 171 85 106 67 154 92 90 130 75 130 40 85 90 142 213 75 111 95 149 90 A1 cold 55 33 60 25 55 30 60 50 55 81 162 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +doomknightArcane 805 doomknight3 dkmag1 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 doomknight1Arcane 1 3 1 2 8 7 1 30 58 87 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 3 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 33 25 75 60 25 75 2 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 163 227 115 179 119 208 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +snowyetiArcane 806 snowyeti1 0 SnowYeti4 snowyeti4 snowyeti Brute io 1 3 4 7 7 1 43 63 87 brute brute 10 13 13 13 0 0 0 90 93 97 40 60 60 1 1 1 1 100 100 100 -15 -10 -5 75 85 115 0 35 25 75 25 2 50 50 50 5 189 228 107 215 34 86 138 41 97 92 155 210 85 110 65 115 95 75 110 85 227 305 85 94 135 184 95 120 176 85 A1 stun 100 74 88 200 100 75 100 200 100 75 150 200 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +frozenhorrorArcane 807 frozenhorror1 4 Frozen Horror5 frozenhorror5 frozenhorror FrozenHorror f0 1 2 3 3 3 1 41 64 87 frozenhorror frozenhorror 10 13 13 13 60 85 90 40 45 50 80 80 80 10 10 10 1 1 1 1 1 Horror Arctic Blast seq_horrorarcticblast 8 100 85 75 0 0 33 75 100 25 25 15 40 75 35 2 50 50 50 5 284 379 101 271 58 97 126 190 230 100 120 60 110 100 255 327 100 102 119 178 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +wraithArcane 808 wraith1 wraith2 0 Ghost wraith1 wraith Wraith drains mana WR 1 1 2 5 5 1 7 38 87 wraith wraith 10 13 13 13 50 60 60 12 10 8 70 75 80 1 1 1 1 1 1 1 100 66 33 -50 -33 0 20 50 30 60 50 50 55 65 50 50 2 8 8 8 5 83 165 84 93 61 121 94 65 90 130 105 60 105 95 149 192 130 89 119 171 95 A1 mana 40 60 100 40 100 200 40 100 200 Act 1 Wraith B Act 1 Champ B Act 1 Unique B Act 1 (N) Wraith B Act 1 (N) Champ B Act 1 (N) Unique B Map Wraith t2 Map Champ t2 Map Unique t2 0 +BastionBoss 809 skmage_cold1 skmage_cold5 4 BastionBoss BastionBoss BastionBoss skeleton Summoner SK 1 1 2 4 5 5 2 17 47 90 sk_mage sk_mage 10 15 15 15 85 93 98 5 5 5 63 63 63 25 25 60 120 100 100 33 20 10 5 8 20 40 40 40 skmage2 1 1 1 1 1 1 1 Ice Barrage A1 30 Frozen Orb A1 14 5 Teleport A1 1 0 0 0 30 50 50 60 20 20 50 50 50 50 0 17 17 17 5 56 81 84 55 55 80 90 110 6000 6000 90 500 A1 cold 100 60 110 100 100 60 150 150 100 575 675 200 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T1 Map Boss T2 Map Boss T2 Map Boss T2 0 +fallenBastion 810 fallen1 fallen4 2 Devilkin fallen3 fallen Fallen FA 1 fallenBastion 1 1 3 4 3 4 6 6 2 7 39 87 fallen fallen 10 13 13 13 55 60 60 20 22 30 70 80 90 30 35 40 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 0 50 75 40 50 2 25 25 25 5 18 53 84 59 41 101 94 41 101 94 25 55 70 65 45 90 90 50 100 85 133 200 70 55 92 152 90 68 134 85 A1 ltng 10 1 50 20 1 108 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +goatmanBastion 811 goatman1 goatman2 0 MoonClan goatman1 goatman Goatman GM 1 1 2 5 5 1 4 37 87 goatman goatman 10 13 13 13 75 75 80 10 10 9 80 80 80 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 25 0 50 50 120 45 2 5 5 5 5 110 137 51 91 76 126 89 100 130 60 90 75 130 85 175 249 60 77 101 165 85 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +sandmaggotBastion 812 sandmaggot1 sandmaggot5 3 GiantLamprey sandmaggot4 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg4bastion 0 0 S1 2 2 4 4 1 21 50 87 sandmaggot sandmaggot 10 13 13 13 50 50 50 60 60 60 2 2 2 88 88 88 90 90 90 goospit4 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 0 25 33 25 35 85 2 21 21 21 5 139 171 85 117 86 186 94 110 150 115 125 70 110 75 216 274 115 106 128 176 75 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +fallenshamanBastion 813 fallenshaman1 fallenshaman4 2 DevilkinShaman fallenshaman3 fallen FallenShaman raises Devilkin FS 1 fallenBastion 1 2 6 1 1 5 5 2 9 40 87 fallenshaman fallenshaman 12 13 13 13 65 70 75 80 85 85 100 90 80 24 26 28 15 15 15 1 1 1 1 1 ShamanFire seq_shamanresurrect 1 100 75 66 -50 -40 -33 35 70 15 50 75 75 25 75 2 10 10 10 5 66 111 84 81 43 115 95 55 90 75 150 45 90 105 166 233 75 128 101 155 105 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Map Cast t2 Map Champ t2 Map Unique t2 0 +siegebeastBastion 814 siegebeast1 0 DeamonSteed siegebeast5 siegebeast SiegeBeast ox 1 imp5bastion 1 3 4 1 1 6 11 1 38 64 87 siegebeast siegebeast 10 13 13 13 25 25 25 50 80 85 1 3 5 15 15 15 1 3 5 50 50 50 100 100 100 1 1 1 1 Fixed Siege Beast Stomp A2 5 MonCharge seq_siegebeastcharge 7 100 100 100 -50 -40 -33 50 105 25 33 50 15 2 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 498 598 90 221 214 306 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +sandraiderBastion 815 sandraider1 sandraider2 0 SandRaider sandraider1 sandraider SandRaider SR 1 2 3 5 5 1 13 43 87 sandraider sandraider 10 13 13 13 70 70 40 75 80 85 70 75 85 18 12 9 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 1 100 75 66 -50 -45 -40 25 25 50 50 50 33 2 25 25 25 5 136 211 84 117 67 101 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 249 308 110 111 124 176 175 124 176 180 92 132 250 S1 fire 100 100 130 100 120 150 100 188 242 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +batdemonBastion 816 batdemon1 batdemon2 0 DesertWing batdemon1 batdemon BatDemon shocking hit BT 1 1 3 7 7 1 15 44 87 batdemon batdemon 10 13 13 13 60 60 60 33 33 33 20 20 20 60 65 70 50 55 60 8 8 8 1 1 1 1 100 85 75 -50 -40 -33 115 25 75 25 75 25 2 16 16 16 5 44 151 84 82 71 101 94 51 101 194 70 110 110 80 65 70 100 80 115 200 150 216 110 68 108 155 100 108 155 200 A2 ltng 65 70 100 65 5 180 65 7 322 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 1 1 0 +succubusBastion 817 succubus1 succubus5 3 Hell Temptress succubus4 succubus Succubus 0B 1 1 3 5 13 13 1 40 63 87 succubus succubus 10 13 13 13 90 92 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 Defense Curse S2 2 MonLowerRes S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 0 0 50 65 50 75 2 50 50 50 5 96 152 107 150 45 85 125 60 90 115 90 50 90 155 133 200 115 77 80 134 155 A2 mag 100 40 75 100 40 75 100 54 101 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +corruptrogueThrone 818 corruptrogue1 corruptrogue6 4 FleshHunter corruptrogue5 corruptrogue CorruptRogue CR 1 4 5 8 12 1 23 53 89 corruptrogue corruptrogue 10 13 13 13 99 99 99 5 5 5 90 99 100 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 25 20 65 65 75 40 2 40 40 40 5 65 107 85 78 47 121 92 60 100 95 95 55 110 130 176 216 95 81 127 144 165 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +cr_archerThrone 819 cr_archer1 cr_archer6 4 FleshArcher cr_archer5 corruptrogue CorruptArcher CR 1 1 3 4 7 10 1 24 54 89 cr_archer cr_archer 10 13 13 13 99 99 99 85 97 99 6 6 6 40 50 60 20 20 20 12 12 12 cr_arrow5 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 15 15 40 45 50 25 2 45 45 45 5 97 137 85 91 60 90 252 55 95 90 100 60 90 150 124 164 90 85 79 132 185 A1 ltng 10 50 70 20 130 160 Act 3 Miss B Act 3 Champ B Act 3 Unique B Act 3 (N) Miss B Act 3 (N) Champ B Act 3 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +cr_lancerThrone 820 cr_lancer1 cr_lancer6 4 FleshLancer cr_lancer5 corruptrogue CorruptLancer CR 1 3 4 7 12 1 24 53 89 cr_lancer cr_lancer 10 13 13 13 99 99 99 90 99 99 5 5 5 0 60 75 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 15 15 40 45 50 40 2 24 24 24 5 87 131 85 90 57 144 92 80 115 95 85 65 130 140 188 228 95 72 144 153 175 A1 cold 10 70 90 20 140 160 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +impThrone 821 imp1 imp3 1 Imp2 imp2 imp Imp ip 1 1 3 4 7 7 1 33 60 89 imp imp 10 13 13 13 5 5 5 25 25 25 45 55 65 7 7 7 impmiss22 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 3 Imp Fireball S2 3 Imp Fire Missile A1 3 Imp Inferno SC 4 100 100 100 -50 -40 -33 0 50 50 55 25 50 2 32 32 32 5 45 65 84 119 45 65 110 120 148 188 110 102 A1 fire 100 40 70 100 80 110 100 150 200 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t2 Map Champ t2 Map Unique t2 0 +overseerThrone 822 overseer1 overseer6 4 HellWhip overseer5 overseer Overseer os 1 minion5throne 1 2 4 2 3 6 6 1 39 60 89 overseer overseer 10 13 13 13 250 250 250 70 70 70 50 50 50 17 17 17 7 7 7 100 100 100 50 55 55 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 25 50 75 50 25 2 50 50 50 5 379 379 84 142 61 117 126 101 201 93 150 190 90 125 60 110 135 90 160 105 236 276 90 106 157 179 170 157 179 334 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +megademonThrone 823 megademon1 megademon2 0 Balrog megademon1 megademon Megademon DM 1 1 2 10 16 1 24 55 89 megademon megademon 10 11 11 11 50 65 80 40 50 55 80 85 90 70 70 70 50 50 50 75 60 45 1 1 1 1 1 MegademonInferno S1 6 100 85 66 -50 -40 -33 70 80 20 20 75 25 45 120 2 32 32 32 5 191 229 101 129 51 94 125 210 250 115 130 100 160 160 248 288 115 111 171 171 195 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +frogdemonThrone 824 frogdemon1 frogdemon2 0 Swamp Dweller frogdemon1 frogdemon FrogDemon FD 1 1 1 2 9 9 1 21 49 89 frogdemon frogdemon 10 13 13 13 65 70 85 20 25 30 50 55 75 50 55 65 20 35 50 12 12 12 15 13 10 9 9 9 frogfire 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 15 0 75 25 25 120 2 21 21 21 5 130 171 85 110 65 151 94 110 140 95 90 65 95 100 208 248 95 77 114 118 135 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map Miss t2 Map Champ t2 Map Unique t2 1 1 0 +fingermageThrone 825 fingermage1 fingermage2 0 Groper fingermage1 fingermage FingerMage homing missiles FR 1 1 2 10 16 1 24 56 89 fingermage fingermage 10 13 13 13 40 40 40 40 60 70 50 50 50 30 30 30 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 FingerMageSpider S1 3 100 66 33 -50 -40 -25 40 40 50 50 115 25 25 65 75 75 2 24 24 24 5 153 211 85 110 51 119 92 80 110 120 135 55 120 120 184 224 120 115 136 136 155 Act 4 Wraith A Act 4 Champ A Act 4 Unique A Act 4 (N) Wraith A Act 4 (N) Champ A Act 4 (N) Unique A Map Wraith t2 Map Champ t2 Map Unique t2 0 +CowBoss 826 bloodlord1 bloodlord5 3 CowBoss CowBoss bloodlord Duriel L3 1 1 2 9 9 1 40 63 91 bloodlord bloodlord 10 13 13 13 5 5 6 33 33 33 50 50 50 1 1 1 1 1 1 Joust A2 1 Lightning Strike Cowboss A2 1 BloodLordFrenzy A2 1 100 85 20 0 0 0 20 20 50 50 50 50 0 50 50 50 5 285 379 126 291 69 153 188 69 153 188 240 300 130 210 80 120 180 80 120 180 7000 7000 130 600 80 120 180 80 120 180 A1 cold 33 30 60 125 33 30 60 175 Map Boss T2 Map Boss T2 Map Boss T2 Map Boss T2 Map Boss T2 Map Boss T2 Map Boss T3 Map Boss T3 Map Boss T3 0 +hellbovineMap 827 hellbovine 0 Hell Bovine hellbovine bovine Skeleton EC 1 5 10 5 5 1 28 61 89 hellbovine hellbovine 10 13 13 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 100 75 66 -50 -40 -33 33 15 25 25 25 25 50 33 65 65 65 65 2 28 28 28 5 133 285 88 140 151 223 93 178 239 101 220 270 80 80 130 180 130 120 170 155 220 270 80 68 130 180 130 120 170 130 Cow Act 4 Champ B Act 4 Unique B Cow (N) Act 4 (N) Champ B Act 4 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +hellbovineMage 828 hellbovine 0 Hell Bovine hellbovine bovine Skeleton EC 1 5 10 5 5 1 28 61 89 hellbovine hellbovine 10 13 13 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 100 75 66 -50 -40 -33 33 15 25 25 25 25 50 33 65 65 65 65 2 28 28 28 5 133 285 88 140 151 223 93 178 239 101 220 270 80 80 130 180 130 120 170 155 220 270 80 80 130 180 130 120 170 130 Cow Act 4 Champ B Act 4 Unique B Cow (N) Act 4 (N) Champ B Act 4 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +foulcrowJungle 829 foulcrow1 foulcrow2 0 FoulCrow foulcrow1 foulcrow BloodHawk BK 1 2 4 4 4 2 4 37 88 foulcrow foulcrow 10 13 13 13 30 45 65 90 90 90 5 10 10 50 60 70 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 0 0 50 25 45 70 2 5 5 5 5 19 46 13 37 26 51 89 20 45 120 40 70 110 115 135 168 120 40 84 116 115 A1 pois 15 10 33 100 25 34 103 100 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Map Cast t1 Map Champ t1 Map Unique t1 0 +sandleaperJungle 830 sandleaper1 sandleaper5 3 TreeLurker sandleaper4 sandleaper SandLeaper SL 1 3 4 8 8 1 22 52 88 sandleaper sandleaper 10 13 13 13 20 22 24 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 4 100 85 75 -50 -40 -33 20 40 70 70 0 25 50 50 0 120 2 22 22 22 5 66 192 85 94 65 122 94 65 122 94 40 80 130 95 65 120 100 55 100 90 120 157 130 95 80 124 100 86 133 90 A1 pois 5 10 10 50 10 43 43 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +quillratJungle 831 quillrat1 quillrat2 0 QuillRat quillrat1 quillrat QuillRat SI 1 1 1 2 3 3 2 1 36 88 quillrat quillrat 10 13 13 13 10 15 20 35 45 50 2 2 2 spike1 1 1 1 100 100 100 -50 -40 -33 25 0 75 45 50 45 2 3 3 3 5 21 81 84 71 51 101 101 15 25 134 20 70 80 70 30 75 65 30 50 100 123 153 80 70 68 97 65 73 103 100 A2 cold 15 10 15 50 20 68 86 Quill 1 Act 1 Champ A Act 1 Unique A Quill 1 (N) Act 1 (N) Champ A Act 1 (N) Unique A Map Quill t1 Map Champ t1 Map Unique t1 0 +deathmaulerJungle 832 deathmauler1 deathmauler3 1 Death Mauler2 deathmauler2 deathmauler DeathMauler m5 1 4 5 4 4 1 35 59 88 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 18 18 18 60 60 60 1 1 1 1 DeathMaul seq_deathmaulerdig 2 100 85 75 -50 -40 -33 35 50 50 50 50 50 2 50 50 50 5 124 152 126 166 51 78 251 115 145 95 105 75 140 115 142 180 95 105 88 133 115 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +bruteJungle 833 brute2 brute5 2 Crusher brute4 brute Brute YE 1 2 3 5 5 2 19 48 88 brute brute 10 13 13 13 0 0 0 85 85 90 75 75 65 1 1 1 1 1 1 100 100 100 -50 -40 -33 60 50 25 35 35 120 50 2 19 19 19 5 143 231 84 120 62 101 93 108 139 93 145 210 85 120 70 120 95 110 140 100 180 217 85 120 84 124 95 90 133 100 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +baboonJungle 834 baboon1 baboon2 0 DuneBeast baboon1 baboon Baboon BB 1 1 2 7 12 1 18 47 88 baboon baboon 10 13 13 13 33 33 33 20 30 35 55 60 65 0 0 0 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 35 25 45 75 45 25 2 18 18 18 5 108 151 84 96 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 135 172 110 110 68 133 120 73 141 130 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +scarabJungle 835 scarab1 scarab3 1 SandWarrior scarab2 scarab Scarab SC 1 scarabJungle 1 3 4 3 4 5 5 1 16 45 88 scarab scarab 10 13 13 13 80 85 88 60 60 60 12 11 10 45 55 65 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 2 100 75 50 -50 -40 -25 50 25 25 75 75 0 3 17 17 17 5 68 112 84 125 55 155 94 55 119 94 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 127 165 145 125 72 116 120 47 94 140 70 125 95 A1 ltng 20 9 27 20 15 30 20 12 25 A1 pois 10 10 10 50 20 15 15 50 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +councilmemberJungle 836 councilmember1 councilmember3 0 Council Member councilmember2 councilmember2 councilmember HighPriest HP 1 1 1 8 12 1 25 56 88 councilmember councilmember 11 12 12 12 60 60 60 30 30 15 125 100 75 35 40 40 75 75 75 11 11 11 13 13 13 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 3 ZakarumHeal S1 3 100 85 66 -50 -33 -25 25 40 75 50 35 33 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 161 210 110 150 68 124 140 Council Council Council Council (N) Council (N) Council (N) Map Cast t1 Map Champ t1 Map Unique t1 0 +zombieSiege 837 zombie1 zombie2 0 Zombie zombie1 zombie Zombie ZM 1 1 2 1 3 2 1 36 88 zombie zombieunique 10 13 13 13 30 40 50 10 15 20 20 25 30 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 50 30 15 20 50 75 2 3 3 3 5 101 181 84 111 51 151 101 101 151 101 105 150 80 105 60 140 105 70 150 110 244 297 80 105 106 193 105 106 193 110 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +goatmanSiege 838 goatman1 goatman3 1 NightClan goatman2 goatman Goatman GM 1 1 3 6 6 1 6 38 88 goatman goatman 10 13 13 13 75 75 80 10 10 8 80 80 85 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 50 0 50 65 25 25 2 7 7 7 5 114 141 51 91 81 141 93 100 130 60 90 70 125 85 227 279 60 90 128 188 85 A1 ltng 15 10 75 20 51 130 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +quillratSiege 839 quillrat1 quillrat3 1 SpikeFiend quillrat2 quillrat QuillRat SI 1 1 1 3 3 3 2 5 38 88 quillrat quillrat 10 13 13 13 15 17 20 45 55 55 2 2 2 spike2 1 1 1 100 100 100 -50 -40 -33 50 20 50 50 75 40 2 6 6 6 5 24 85 84 71 26 126 91 15 25 128 20 70 80 70 30 75 65 30 50 100 187 237 80 70 73 122 65 80 130 100 A2 cold 5 25 40 100 15 45 90 150 Quill 2 Act 1 Champ A Act 1 Unique A Quill 2 (N) Act 1 (N) Champ A Act 1 (N) Unique A Map Quill t3 Map Champ t3 Map Unique t3 0 +bigheadSiege 840 bighead1 bighead2 0 Afflicted bighead1 bighead Bighead BH 1 1 2 3 6 6 1 12 43 88 bighead bighead 10 13 13 13 88 75 75 40 30 30 0 20 30 60 70 80 bighead1 1 1 1 1 1 100 85 75 -50 -40 -33 70 85 75 25 35 25 120 30 25 2 11 11 11 5 66 127 63 81 76 113 77 65 120 90 125 50 100 110 210 261 90 125 106 161 110 A2 ltng 100 75 110 100 140 180 100 182 229 A1 ltng 15 10 20 35 20 40 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Map Cast t3 Map Champ t3 Map Unique t3 0 +reanimatedSiege 841 reanimatedhorde1 reanimatedhorde5 3 UnholyCorpse reanimatedhorde4 zombie ReanimatedHorde re 1 2 4 2 5 2 40 64 88 reanimatedhorde reanimatedhorde 10 13 13 13 60 70 80 20 15 12 12 15 18 30 40 40 30 30 30 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 20 50 70 20 50 100 15 30 75 33 50 65 2 50 50 50 5 114 171 107 164 33 89 138 33 89 93 110 135 70 105 70 110 135 60 120 100 234 279 70 105 57 87 135 57 97 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +thornhulkSiege 842 thornhulk1 thornhulk3 1 BrambleHulk thornhulk2 thornhulk ThornHulk TH 1 2 3 3 3 1 22 50 88 thornhulk thornhulk 10 13 13 13 85 85 85 25 25 25 10 10 10 40 40 40 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 2 100 85 75 -50 -40 -33 25 0 75 50 75 45 4 22 22 22 5 153 248 85 123 93 151 94 79 151 94 190 230 140 130 90 160 105 75 150 120 284 344 140 130 149 225 105 149 225 120 A2 stun 100 7 100 7 100 7 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +vultureSiege 843 vulture1 vulture2 0 CarrionBird vulture1 vulture Vulture VD 1 1 3 4 4 1 14 43 88 vulture vulture 10 13 13 13 70 75 80 8 8 8 75 65 50 30 30 30 40 40 40 1 1 1 100 100 100 -50 -40 -33 0 25 35 75 50 120 2 15 15 15 5 67 107 84 83 91 121 94 60 90 85 80 80 110 85 197 234 85 80 138 172 85 Swarm 1 Act 2 Champ A Act 2 Unique A Swarm 1 (N) Act 2 (N) Champ A Act 2 (N) Unique A Map Swarm t3 Map Champ t3 Map Unique t3 1 1 0 +mosquitoSiege 844 mosquito1 3 BloodWing mosquito4 mosquito Mosquito drains mana and stamina MO 1 3 4 6 12 1 24 53 88 mosquito mosquito 10 13 13 13 40 50 55 40 50 60 5 5 5 1 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 0 105 75 33 45 50 2 24 24 24 5 21 107 85 74 51 119 92 20 100 95 75 50 95 90 220 274 95 75 106 164 90 A1 stam 90 500 562 100 500 600 100 430 516 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Map Swarm t3 Map Champ t3 Map Unique t3 0 +reanimatedMaus 845 reanimatedhorde1 reanimatedhorde5 3 UnholyCorpse reanimatedhorde4Maus cursereduction zombie ReanimatedHorde re 1 4 6 2 5 2 40 64 92 reanimatedhorde reanimatedhorde 10 13 13 13 60 70 80 20 15 12 12 15 18 30 40 40 30 30 30 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 1 100 75 66 -50 -33 -25 20 50 70 20 50 95 50 25 145 60 145 2 50 50 50 5 114 171 107 164 33 89 138 33 89 93 110 135 70 105 70 110 135 60 120 100 395 455 70 210 110 140 135 90 130 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +pantherwomanMaus 846 pantherwoman1 pantherwoman2 0 Huntress pantherwoman1Maus cursereduction pantherwoman PantherWoman PW 1 4 7 5 10 1 14 43 92 pantherwoman pantherwoman 10 13 13 13 70 70 70 70 75 80 8 8 12 6 6 6 0 25 50 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 120 20 145 145 75 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 385 435 105 160 170 210 200 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +slingerMaus 847 slinger1 slinger3 1 SpearCat slinger2Maus cursereduction pantherwoman PantherJavelin PW 1 1 3 4 5 10 1 15 44 92 slinger slinger 10 13 13 13 70 70 70 75 75 75 11 11 11 15 15 15 14 14 14 20 22 26 pantherjav2 1 1 1 1 1 100 100 100 -50 -40 -33 120 20 145 50 145 2 16 16 16 5 54 88 58 67 51 121 94 55 85 95 80 50 85 145 400 445 95 160 150 185 145 A1 cold 5 20 40 140 200 180 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Map Miss t3 Map Champ t3 Map Unique t3 0 +willowisp1Maus 848 willowisp1 willowisp2 0 Gloam willowisp1Maus cursereduction willowisp WillOWisp drains mana WW 1 1 2 3 15 15 1 21 50 92 willowisp willowisp 10 13 13 13 40 50 60 70 70 70 50 50 50 willowisplightningbolt 1 1 1 1 1 1 Chain Lightning SC 1 -50 -33 0 40 50 40 70 15 145 25 25 145 2 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 400 400 115 240 45 115 120 A1 mana 40 14 64 40 100 200 40 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 3 Wraith A Act 3 Champ A Act 3 Unique A Act 3 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Map Wraith t3 Map Champ t3 Map Unique t3 1 1 0 +bloodlordMaus 849 bloodlord1 bloodlord6 4 Blood Lord5 bloodlord5Maus cursereduction bloodlord BloodLord L3 1 1 2 9 9 1 43 65 92 bloodlord bloodlord 10 13 13 13 90 90 90 85 85 85 80 80 80 10 10 10 1 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 0 0 0 25 33 145 50 75 2 50 50 50 5 283 379 126 316 67 149 188 67 149 188 240 300 130 210 80 120 180 80 120 180 525 575 130 410 200 220 180 160 180 180 A1 fire 33 70 80 125 140 120 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +overseerMaus 850 overseer1 overseer5 3 BloodBoss overseer4Maus cursereduction overseer Overseer os 1 1 2 4 1 2 5 5 1 37 62 92 overseer overseer 10 13 13 13 250 250 250 65 65 65 50 50 50 17 17 17 7 7 7 100 100 100 50 45 45 1 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 40 145 33 20 145 3 48 48 48 5 379 379 84 135 61 122 126 105 205 93 150 190 90 125 60 110 135 90 160 105 500 555 90 250 210 270 135 170 230 334 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +succubusMaus 851 succubus1 succubus2 0 Succubusexp succubus1Maus cursereduction succubus Succubus 0B 1 1 2 3 10 10 1 32 61 92 succubus succubus 10 13 13 13 90 91 93 50 25 10 50 50 50 15 20 20 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonLowerRes S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 50 145 145 2 42 42 42 5 96 152 107 121 46 86 125 60 90 115 90 50 90 155 400 455 115 180 140 170 155 A2 mag 100 40 75 100 40 75 60 95 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t3 Map Champ t3 Map Unique t3 0 +bigheadMaus 852 bighead1 bighead4 2 Misshapen bighead3Maus cursereduction bighead Bighead BH 1 1 1 2 5 5 1 5 37 92 bighead bighead 10 13 13 13 80 50 50 40 50 50 0 40 50 60 70 80 bighead3 1 1 1 1 1 1 100 85 75 -50 -40 -33 40 70 120 25 145 50 25 2 5 5 5 5 62 124 64 81 76 101 73 65 120 90 125 50 100 110 460 510 90 250 170 220 110 A2 ltng 100 75 110 100 140 180 200 270 250 A1 ltng 15 10 20 35 10 20 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Map Miss t3 Map Champ t3 Map Unique t3 0 +fetish2Sewer 853 fetish1 fetish3 1 Fetish fetish2 fetish Fetish FE 1 fetish2Sewer 1 1 1 2 1 2 7 7 1 21 49 88 fetish fetish 10 13 13 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 25 15 120 45 20 80 2 21 21 21 5 64 107 85 79 65 101 94 55 80 125 75 60 95 95 125 144 125 75 80 113 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +minionSewer 854 minion1 minion2 0 Minionexp minion1 minion Minion xx 1 2 4 7 10 2 31 58 88 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 50 50 1 1 1 1 1 100 85 75 -50 -40 -33 25 50 25 25 35 50 35 35 20 2 50 50 50 5 190 238 101 167 76 96 151 91 111 162 100 125 100 80 75 100 100 70 115 110 117 181 100 80 143 179 100 152 189 110 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +vilechildSewer 855 vilechild1 vilechild4 2 GrotesqueWyrm vilechild3 vilekind VileDog VC 1 2 3 10 12 1 30 57 88 vilechild vilechild 9 13 13 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 40 70 25 50 65 75 65 50 2 47 47 47 5 55 84 84 89 48 74 151 50 70 70 40 40 70 85 136 151 70 40 108 137 85 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +fetishblowSewer 856 fetishblow1 fetishblow4 2 Flayer fetishblow3 fetish FetishBlowgun FC 1 1 fetishblowSewer 1 1 2 2 2 2 8 8 1 22 50 88 fetishblow fetishblow 10 13 13 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 15 25 0 75 50 45 2 29 29 29 5 66 107 85 65 15 33 125 45 75 110 90 20 33 110 102 140 110 90 99 108 110 A1 pois 7 10 10 25 12 26 114 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map Miss t2 Map Champ t2 Map Unique t2 0 +vampireSewer 857 vampire1 vampire2 0 GhoulLord vampire1 vampire Vampire steals life VA 1 1 1 2 6 6 1 19 49 88 vampire vampire 11 13 13 13 55 55 55 20 40 50 24 25 25 25 25 35 3 3 3 1 1 1 1 1 1 VampireFireball SC 2 VampireFirewall SC 2 VampireMeteor SC 2 VampireMissile SC 2 100 85 75 -50 -40 -25 30 50 30 50 50 30 25 75 25 80 50 3 19 19 19 5 153 211 84 110 47 116 93 150 200 100 150 50 100 120 170 197 100 150 117 168 120 A1 cold 60 38 115 25 60 50 100 50 60 140 184 75 Act 2 Cast C Act 2 Champ C Act 2 Unique C Act 2 (N) Cast C Act 2 (N) Champ C Act 2 (N) Unique C Map Cast t2 Map Champ t2 Map Unique t2 0 +sandmaggotSewer 858 sandmaggot1 sandmaggot2 0 SandMaggot sandmaggot1 sandmaggot SandMaggot Lays Eggs SM 1 maggotegg1sewer 0 0 S1 1 1 4 4 1 16 45 88 sandmaggot sandmaggot 10 13 13 13 35 35 35 35 35 35 2 2 2 75 75 75 120 120 120 goospit1 1 1 1 MagottUp seq_maggotup 1 MagottDown seq_maggotdown 1 MagottLay seq_maggotlay 1 100 75 50 -50 -40 -33 66 0 33 25 75 120 2 17 17 17 5 139 174 84 117 82 182 94 110 150 115 125 70 110 75 155 189 115 125 137 177 75 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map Cast t2 Map Champ t2 Map Unique t2 0 +sandraiderSewer 859 sandraider1 sandraider3 1 Marauder sandraider2 sandraider SandRaider SR 1 2 4 5 5 1 17 46 88 sandraider sandraider 10 13 13 13 70 60 20 80 85 90 70 75 85 15 10 7 1 1 1 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 2 100 75 66 -50 -45 -40 25 15 50 75 50 45 2 32 32 32 5 134 212 84 117 64 101 175 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 120 140 250 170 212 110 130 132 179 175 132 179 180 126 170 250 S1 cold 100 100 130 75 100 120 150 75 100 105 131 75 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +mosquitoSewer 860 mosquito1 3 BloodWing mosquito4 mosquito Mosquito drains mana and stamina MO 1 3 4 6 12 1 24 53 88 mosquito mosquito 10 13 13 13 40 50 55 40 50 60 5 5 5 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 10 25 50 45 25 30 2 24 24 24 5 21 107 85 74 51 119 92 20 100 95 75 50 95 90 121 155 95 75 117 162 90 A1 stam 90 500 562 100 500 600 100 560 672 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Map Swarm t2 Map Champ t2 Map Unique t2 0 +IceBoss 861 overseer1 overseer4 2 IceBoss IceBoss overseer Summoner os 1 skmage_coldIce skmage_coldIce 1 12 12 1 2 5 5 1 36 61 90 overseer overseer 10 13 13 13 85 93 98 5 5 5 63 63 63 25 25 60 120 100 100 33 20 10 5 8 50 20 40 35 1 1 1 1 1 1 Iceboss Freezing Arrow A1 8 Iceboss Blizzard S2 8 Decrepify S1 20 100 100 20 0 0 0 20 20 50 50 50 50 2 47 47 47 5 379 379 84 131 61 118 125 101 201 94 150 190 90 125 60 110 135 90 160 105 3500 3500 90 500 177 325 135 206 378 334 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map Boss T1 Map Boss T1 Map Boss T1 0 +mummyIce 862 mummy1 mummy5 3 PreservedDead mummy4 mummy Mummy MM 1 4 5 3 3 1 23 49 89 mummy mummy 10 13 13 13 20 22 23 40 40 40 100 100 100 55 55 55 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 20 50 120 50 50 50 2 23 23 23 5 69 155 85 86 54 107 92 54 107 92 100 140 95 100 100 145 105 153 181 95 85 85 114 105 A1 pois 10 33 33 200 30 33 33 300 30 88 88 200 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +skeletonIce 863 skeleton1 skeleton4 2 BoneWarrior skeleton3 skeleton Skeleton SK 1 2 4 8 8 2 7 39 89 skeleton skeleton 10 13 13 13 80 85 90 9 8 7 85 90 95 50 50 50 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 40 50 60 75 0 25 50 45 45 50 2 20 20 20 5 89 124 84 85 41 121 94 41 121 94 70 100 100 85 80 140 120 80 140 125 137 164 100 72 66 105 120 77 122 125 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +skmage_coldIce 864 skmage_cold1 skmage_cold3 2 BoneMage skmage_cold2 skeleton SkeletonMage SK 1 1 1 3 8 8 2 10 40 89 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage2 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 0 25 50 25 65 50 2 11 11 11 5 55 82 84 56 55 80 90 110 120 148 90 94 A1 cold 100 60 110 100 100 60 150 150 100 89 169 200 Act 1 Cast C Act 1 Champ B Act 1 Unique B Act 1 (N) Cast C Act 1 (N) Champ B Act 1 (N) Unique B Map Cast t1 Map Champ t1 Map Unique t1 0 +arach5Ice 865 arach1 arach6 4 SpiderMagus arach5 arach Arach SP 1 4 5 8 11 1 23 53 89 arach arach 10 13 13 13 75 75 75 55 55 55 20 25 30 8 8 8 45 45 45 1 1 1 1 1 SpiderLay A2 5 100 75 50 -50 -40 -25 25 0 25 30 75 75 3 23 23 23 5 151 190 85 114 94 147 92 150 190 135 110 110 145 100 158 186 135 94 98 114 100 A1 pois 50 26 40 3000 50 50 120 3000 50 89 213 250 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +megademon2Ice 866 megademon1 megademon3 1 PitLord megademon2 megademon Megademon DM 1 1 3 10 16 1 27 56 89 megademon megademon 10 11 11 11 55 70 85 45 55 60 80 90 95 70 70 70 60 60 60 75 60 45 1 1 1 1 1 MegademonInferno S1 7 100 85 66 -50 -40 -33 70 80 50 0 50 120 25 2 36 36 36 5 190 229 101 140 53 101 126 210 250 115 130 140 220 160 175 203 115 111 112 164 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +baalminion3Ice 867 baalminion1 2 Baals Minion baalminion3 demon BaalMinion 43 1 1 1 8 8 0 60 68 89 baalminion baalminion 10 13 13 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 2 50 50 50 5 476 666 87 763 30 90 251 17 165 238 430 480 135 247 120 170 210 120 170 210 197 223 135 210 98 132 210 114 153 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 1 0 +wraith3Ice 868 wraith1 wraith4 2 Specter wraith3 wraith Wraith drains mana WR 1 2 3 6 10 1 19 48 89 wraith wraith 10 13 13 13 70 80 80 8 6 4 80 85 90 1 1 1 1 1 1 1 100 66 33 -50 -33 0 40 50 50 60 50 50 75 35 50 75 2 19 19 19 5 86 173 84 92 62 101 93 65 90 130 105 100 145 95 120 148 130 89 85 114 95 A1 mana 50 38 69 50 100 200 50 44 133 Act 2 Wraith C Act 2 Champ C Act 2 Unique C Act 2 (N) Wraith C Act 2 (N) Champ C Act 2 (N) Unique C Map Wraith t1 Map Champ t1 Map Unique t1 0 +fingermage3Ice 869 fingermage1 fingermage4 2 StormCaster fingermage3 fingermage FingerMage homing missiles FR 1 2 3 10 16 1 30 58 89 fingermage fingermage 10 13 13 13 80 60 60 80 85 95 70 70 70 50 50 50 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 FingerMageSpider S1 5 100 66 33 -50 -40 -25 60 60 75 75 50 25 25 50 50 45 2 29 29 29 5 152 209 84 130 53 122 92 80 110 120 135 95 160 120 131 164 120 115 82 125 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Map Wraith t1 Map Champ t1 Map Unique t1 0 +TombBoss 870 clawviper1 clawviper4 2 TombBoss TombBoss clawviper Duriel SD 1 2 3 15 10 1 18 46 90 clawviper clawviper 10 13 13 13 5 5 6 33 33 33 50 50 50 1 1 1 1 1 1 1 1 MonSmite A1 1 Poison Nova Tomb Boss A1 12 MonSmite A1 1 100 75 20 0 0 0 40 70 20 20 50 50 50 50 2 18 18 18 5 66 108 84 78 51 92 92 59 101 92 75 110 125 100 60 80 135 60 105 135 5250 5250 125 500 103 155 135 52 90 135 A1 fire 100 50 91 100 60 70 100 40 50 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map Boss T1 Map Boss T1 Map Boss T1 0 +scarabTomb 871 scarab1 scarab4 2 Scarab scarab3 scarab Scarab SC 1 3 5 3 5 5 5 1 17 45 88 scarab scarab 10 13 13 13 85 88 92 70 70 70 9 9 9 55 65 70 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 3 100 75 50 -50 -40 -25 115 25 25 75 50 25 4 17 17 17 5 67 112 84 125 55 155 92 55 128 92 1 2 95 70 110 145 125 125 165 120 125 165 140 60 105 95 130 163 145 106 79 102 120 79 102 140 94 122 95 A1 ltng 25 18 27 25 15 30 25 14 29 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +painworm1Tomb 872 painworm1 painworm2 0 Pain Worm1 painworm1 vilekind VileDog 46 1 2 2 8 10 1 34 61 88 vilechild vilechild 10 13 13 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 0 50 50 50 75 120 2 44 44 44 5 65 106 84 5 28 60 125 35 65 85 5 100 130 80 122 159 85 25 75 99 80 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +quillrat4Tomb 873 quillrat1 quillrat5 3 RazorSpine quillrat4 quillrat QuillRat SI 1 1 2 4 4 4 2 9 40 88 quillrat quillrat 10 13 13 13 23 23 23 65 65 70 1 1 1 spike4 1 1 1 100 100 100 -50 -40 -33 25 0 75 35 50 25 2 10 10 10 5 21 86 84 71 29 115 95 15 25 127 20 70 80 70 100 145 65 100 145 100 104 137 80 60 42 58 65 42 58 100 A2 fire 5 20 30 15 25 44 Quill 4 Act 1 Champ C Act 1 Unique C Quill 4 (N) Act 1 (N) Champ C Act 1 (N) Unique C Map Miss t1 Map Champ t2 Map Unique t1 0 +skmage_ltng5Tomb 874 skmage_ltng1 skmage_ltng6 1 ReturnedMage skmage_ltng1 skeleton SkeletonMage SK 1 1 2 3 6 6 1 8 59 88 sk_mage sk_mage 10 12 12 12 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmageltng 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 75 100 25 50 25 75 45 75 2 15 15 15 5 56 84 84 56 55 80 90 110 104 145 90 94 0 96 A1 ltng 100 60 120 100 80 190 100 68 157 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t1 Map Champ t1 Map Unique t1 0 +baboon1Tomb 875 baboon1 baboon2 0 DuneBeast baboon1 baboon Baboon BB 1 1 2 7 12 1 18 47 88 baboon baboon 10 13 13 13 33 33 33 20 30 35 55 60 65 0 0 0 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 0 25 35 50 75 50 2 18 18 18 5 108 151 84 96 51 151 92 51 151 92 90 135 110 110 130 200 120 130 200 130 130 173 110 94 90 145 120 90 145 130 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +batdemon5Tomb 876 batdemon1 batdemon6 4 DarkFamiliar batdemon5 batdemon BatDemon shocking hit BT 1 3 4 12 12 1 27 57 88 batdemon batdemon 10 13 13 13 60 60 60 33 33 33 20 20 20 80 85 90 50 59 68 8 8 8 1 1 1 1 100 85 75 -50 -40 -33 15 25 75 50 25 25 2 27 27 27 5 43 151 84 89 65 101 93 106 165 146 70 110 110 80 135 140 100 135 140 200 130 163 110 68 88 96 100 88 96 200 A2 ltng 85 64 100 85 5 180 85 4 176 Act 3 H2H C Act 3 Champ C Act 3 Unique C Act 3 (N) H2H C Act 3 (N) Champ C Act 3 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 1 1 0 +arach1Tomb 877 arach1 arach2 0 Arach arach1 arach Arach SP 1 2 3 6 6 1 11 42 88 arach arach 10 13 13 13 45 55 60 33 33 33 15 20 25 8 8 8 25 25 25 1 1 1 1 1 SpiderLay A2 1 100 75 50 -50 -40 -25 50 25 75 0 50 50 3 12 12 12 5 155 192 84 114 88 138 92 150 190 135 110 150 190 100 163 202 135 94 106 138 100 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +baalminionTomb 878 baalminion1 0 Baals Minion baalminion1 demon BaalMinion 43 1 1 1 8 8 0 55 68 88 baalminion baalminion 10 13 13 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 0 0 50 75 30 75 2 50 50 50 5 472 660 87 634 30 92 251 15 165 238 430 480 135 247 120 180 210 120 180 210 195 224 135 210 82 130 210 82 130 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 1 0 +torajanBoss 879 maggotqueen5 4 torajanBoss maggotqueen5 sandmaggot GargoyleTrap MQ 1 torajanBossPoisonEgg 0 0 S1 torajanBossPoisonEgg 1 1 5 5 5 8 4 4 1 29 50 89 maggotqueen maggotqueen 10 10 10 10 200 200 200 70 70 70 25 25 25 15 15 15 1 1 1 1 1 TorajanBossNest seq_maggotlay 1 QueenDeath seq_queendeath 1 100 75 20 0 0 0 20 20 50 50 50 50 2 29 29 29 5 157 257 84 153 220 270 70 185 2800 2800 70 400 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map Boss T1 Map Boss T1 Map Boss T1 1 0 +torajanBossPoisonEgg 880 maggotegg1 maggotegg6 4 WorldKillerEgg maggotegg5 GargoyleTrap SE 1 torajanBossMaggot 0 0 S1 1 1 1 1 1 27 57 89 maggotegg maggotegg 8 15 15 15 60 60 60 50 50 50 50 50 50 50 50 50 25 25 25 1 1 1 1 PoisonEggSpawn seq_maggotegg 5 100 66 33 -50 -50 -50 180 180 180 180 180 2 77 95 84 0 60 80 25 0 180 180 25 0 0 +torajanBossMaggot 881 maggotbaby1 maggotbaby6 4 WorldKillerYoung maggotbaby5 torajanMaggot sandmaggot MaggotLarva SB 1 1 1 6 6 1 24 57 88 maggotbaby maggotbaby 9 13 13 13 90 93 95 16 13 10 90 90 90 15 15 15 20 20 20 1 1 1 1 1 1 100 75 50 -50 -40 -33 20 20 50 50 50 50 2 24 24 24 5 21 65 85 0 26 44 92 20 45 50 0 25 45 70 150 150 50 0 50 90 70 A1 pois 5 15 15 50 50 300 300 50 0 +ThroneBoss 882 vampire1 vampire6 4 ThroneBoss ThroneBoss vampire Vampire steals life VA 1 1 1 1 9 9 1 12 43 91 vampire vampire 11 6 6 6 5 5 5 40 70 80 85 85 85 25 37 51 1 1 1 1 1 1 1 1 1 1 1 Hydra Throne Boss SC 4 Hydra Throne Boss SC 4 Hydra Throne Boss SC 4 Hydra Throne Boss SC 4 100 85 20 0 0 0 20 50 20 50 50 20 20 50 50 50 50 2 13 13 13 5 154 212 84 111 51 126 93 150 200 100 150 50 100 120 6000 6000 100 600 50 100 120 A1 cold 55 50 87 25 55 50 100 50 55 150 300 75 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Map Boss T2 Map Boss T2 Map Boss T2 0 +SiegeBoss 883 hephasto 0 SiegeBoss SiegeBoss demon Duriel 5P 1 1 1 8 10 0 25 60 89 smithdemon smithdemon 12 10 10 10 1 1 1 35 35 45 0 0 0 0 0 0 20 20 40 1 1 1 1 1 1 Joust A1 1 Blessed Hammer A1 15 Vigor S1 1 100 85 20 0 0 0 -50 -50 20 20 50 50 50 0 30 30 30 5 760 760 107 339 151 226 112 760 760 100 339 140 170 110 6250 6250 100 400 190 250 1000 A1 fire 25 30 60 50 80 160 Haphesto Haphesto Haphesto Haphesto (N) Haphesto (N) Haphesto (N) Map Boss T3 Map Boss T3 Map Boss T3 0 +SewerBoss 884 councilmember1 councilmember3 0 SewerBoss SewerBoss councilmember2 councilmember Summoner HP 1 1 1 8 12 1 25 56 89 councilmember councilmember 11 12 12 12 60 60 60 0 0 0 80 80 80 200 200 200 30 30 75 0 0 0 20 20 20 30 30 30 1 1 1 1 1 1 1 Lightning Fury S1 13 Thunder Storm S1 6 Nova S1 26 Blink S1 1 100 85 20 0 0 0 20 20 50 50 50 33 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 3800 3800 110 400 85 155 140 Council Council Council Council (N) Council (N) Council (N) Map Boss T2 Map Boss T2 Map Boss T2 0 +succubusMod 885 succubus1 succubus5 3 Hell Temptress succubus4 succubus Succubus 0B 1 1 2 3 13 13 1 40 63 89 succubus succubus 10 13 13 13 90 92 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 3 MonLowerRes S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 50 50 50 50 2 50 50 50 5 96 152 107 150 45 85 125 60 90 115 90 50 90 155 90 140 115 77 60 80 155 A2 mag 100 40 75 100 40 75 100 36 67 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +dcloneskele 886 skeleton1 skeleton4 2 BoneWarrior dcloneskele dcloneminion skeleton Skeleton SK 1 2 4 12 22 2 7 39 110 skeleton skeleton 10 9 9 9 80 85 90 9 8 7 85 90 95 50 50 50 1 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 2 -50 -40 -25 40 50 60 75 30 20 30 30 30 30 1 20 20 20 5 89 124 84 85 41 121 94 41 121 94 70 100 100 85 80 140 120 80 140 125 900 900 140 3000 100 160 120 100 160 125 0 +dcloneskelearcher 887 sk_archer1 0 SkeletonArcher dcloneskelearcher dcloneminion skeleton SkeletonBow SK 1 1 1 2 10 14 2 5 38 110 sk_archer sk_archer 10 9 9 9 75 80 85 15 14 13 50 50 50 5 5 5 6 6 6 skbowarrow1Dclone 1 1 1 1 1 1 2 -50 -40 -25 50 60 30 20 30 30 30 30 1 15 15 15 5 70 147 84 89 65 90 255 70 100 100 95 35 50 115 450 450 100 3000 130 180 115 0 +dcloneskmage_fire 888 skmage_fire1 3 BurningDeadMage dcloneskmage_fire dcloneminion skeleton SkeletonMage SK 1 1 2 3 7 14 1 8 59 110 sk_mage sk_mage 10 8 8 8 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmagefireDclone 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 2 -50 -40 -25 30 50 75 100 30 20 30 30 30 30 1 15 15 15 5 56 84 84 56 55 80 90 110 350 350 100 3000 A1 fire 100 75 100 100 100 175 100 100 175 0 +dcloneskmage_ltng 889 skmage_ltng1 3 HorrorMage dcloneskmage_ltng dcloneminion skeleton SkeletonMage SK 1 1 2 3 7 14 1 8 59 110 sk_mage sk_mage 10 8 8 8 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmageltngDclone 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 2 -50 -40 -25 30 50 75 100 30 20 30 30 30 30 1 15 15 15 5 56 84 84 56 55 80 90 110 350 350 100 3000 A1 ltng 100 60 120 100 80 190 100 80 190 0 +dcloneskmage_cold 890 skmage_cold1 2 BoneMage dcloneskmage_cold dcloneminion skeleton SkeletonMage SK 1 1 2 3 7 14 1 15 61 110 sk_mage sk_mage 10 8 8 8 35 65 85 15 18 20 30 30 30 5 6 7 0 30 50 15 18 20 20 20 20 5 5 5 skmagecoldDclone 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 2 -50 -40 -25 30 50 75 100 30 20 30 30 30 30 1 15 15 15 5 56 84 84 56 55 80 90 110 350 350 100 3000 A1 cold 100 50 80 50 100 90 150 100 100 90 150 5000 0 +dcloneskmage_pois 891 skmage_pois1 0 HorrorMage dcloneskmage_pois dcloneminion skeleton SkeletonMage SK 1 1 2 4 7 14 2 17 47 110 sk_mage sk_mage 10 8 8 8 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmagepoisDclone 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 2 -50 -40 -25 70 60 30 20 30 30 30 30 1 17 17 17 5 56 81 84 55 55 80 90 110 350 350 100 3000 A1 pois 100 33 33 100 100 40 40 100 100 88 88 200 0 +dclonebloodlord 892 bloodlord1 bloodlord6 4 Blood Lord5 dclonebloodlord dcloneminion bloodlord BloodLord L3 1 1 2 9 9 1 43 65 92 bloodlord bloodlord 10 13 13 13 90 90 90 85 85 85 80 80 80 10 10 10 1 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 0 0 0 25 33 180 33 75 2 50 50 50 5 283 379 126 316 67 149 188 67 149 188 240 300 130 210 80 120 180 80 120 180 1000 1000 120 0 200 220 180 160 180 180 A1 fire 33 70 80 125 140 120 0 +act2hireTraitorBoss 893 act2hireTraitorBoss 0 act2hireTraitorBoss act2hireTraitorBoss human FlyingScimitar GU 1 1 1 13 11 1 1 34 89 act2hire act2hire 11 13 13 13 100 100 100 100 100 100 10 10 10 5 5 5 25 25 25 10 10 10 1 1 1 1 1 1 1 1 TraitorBossConeJab seq_act2guardjab 1 TraitorBossStunSpear seq_act2guardjab 1 TraitorBossBlessedAim seq_act2guardjab 15 TraitorBossVigor seq_act2guardjab 20 100 100 20 0 0 0 50 50 75 75 75 75 0 29 29 29 5 157 257 84 153 51 92 92 59 101 92 75 110 125 100 60 80 135 60 105 135 4100 4100 125 400 200 300 8000 200 300 8000 Map Boss T1 Map Boss T1 Map Boss T1 0 +archerBoss 894 archerBoss 0 PandemoniumBoss PandemoniumBoss corruptrogue CorruptArcher CR 1 1 1 1 12 13 1 24 54 91 cr_archer cr_archer 10 5 5 5 15 10 100 50 60 100 5 5 5 40 50 100 20 20 20 20 12 12 20 cr_arrow5 1 1 1 1 1 1 ArcherBossCageShot A1 1 ArcherBossBoomerShot A1 1 ArcherBossArrowRain A1 1 100 100 20 0 0 0 50 50 75 75 75 75 0 29 29 29 5 157 257 84 153 51 92 92 59 101 92 75 110 125 100 60 80 135 60 105 135 4500 4500 125 600 90 150 8000 90 150 8000 Map Boss T2 Map Boss T2 Map Boss T2 0 +zombieCaldeum 895 zombie1 zombie2 0 Zombie zombie1 zombie Zombie ZM 1 1 2 4 6 2 1 36 89 zombie zombieunique 10 13 13 13 30 40 50 10 15 20 20 25 30 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 0 0 50 25 75 45 2 3 3 3 5 101 181 84 111 51 151 101 101 151 101 105 150 80 105 60 140 105 70 150 110 163 188 84 115 95 122 105 95 122 110 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +pantherwoman1Caldeum 896 pantherwoman1 pantherwoman2 0 Huntress pantherwoman1 pantherwoman PantherWoman PW 1 3 8 5 10 1 14 43 89 pantherwoman pantherwoman 10 13 13 13 70 70 70 70 75 80 8 8 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 25 75 35 65 50 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 143 165 113 88 46 91 200 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +flyingscimitarCaldeum 897 flyingscimitar 0 FlyingScimitar flyingscimitar construct FlyingScimitar ST 1 3 6 8 8 1 12 45 89 flyingscimitar flyingscimitar 10 10 10 10 90 90 90 90 95 99 8 8 8 40 50 60 1 1 1 1 1 MonCharge seq_pinheadsmite 1 -50 -25 70 100 25 25 50 120 0 75 2 13 13 13 5 97 131 84 83 38 113 93 100 135 150 140 75 120 150 157 177 158 154 69 103 150 Flying Scimitar Flying Scimitar Flying Scimitar Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (N) Map H2H t1 Map Champ t1 Map Unique t1 0 +slinger1Caldeum 898 slinger1 slinger2 0 Slinger slinger1 pantherwoman PantherJavelin PW 1 1 1 3 5 12 1 14 43 89 slinger slinger 10 13 13 13 70 70 70 70 70 70 12 12 12 10 10 10 15 15 15 20 21 25 pantherjav1 1 1 1 1 100 100 100 -50 -40 -33 0 25 75 45 65 25 2 15 15 15 5 54 87 58 67 51 121 94 55 85 95 80 50 85 145 139 157 100 88 53 46 85 A1 cold 5 20 40 15 49 72 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Map Miss t1 Map Champ t1 Map Unique t1 0 +swarm4Caldeum 899 swarm1 swarm5 3 HellSwarm swarm4 swarm Swarm drains stamina SW 1 2 4 4 8 1 22 52 89 swarm swarm 10 13 13 13 60 60 60 20 16 12 50 60 70 1 1 1 1 Swarm Move seq_swarmmove 1 -50 -40 -33 90 40 90 70 115 0 25 70 25 80 2 22 22 22 5 22 44 85 61 79 93 94 20 40 120 60 45 60 70 114 137 126 83 77 114 70 A1 stam 90 78 92 100 100 200 100 89 178 A1 fire 25 26 44 40 26 44 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +cantor3Caldeum 900 cantor1 cantor4 2 Heirophant cantor3 zakarum ZakarumPriest ZP 1 1 1 2 6 6 1 24 53 89 cantor cantor 10 13 13 13 35 35 35 8 14 8 60 70 80 35 50 70 120 120 120 36 38 40 1 1 1 1 Fire Ball S1 8 MonTeleport S1 1 MonBlizzard S1 3 100 100 100 -50 -40 -33 50 75 15 105 25 33 75 25 2 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 129 151 80 143 30 65 90 A1 cold 65 31 62 25 65 30 60 50 65 111 133 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t1 Map Champ t1 Map Unique t1 0 +vampire3Pandemonium 901 vampire1 vampire4 2 DarkLord vampire3 vampire Vampire steals life VA 1 1 1 3 7 7 1 24 55 89 vampire vampire 11 13 13 13 76 76 76 30 60 70 26 27 27 25 31 43 7 7 7 1 1 1 1 1 1 VampireFireball SC 16 VampireFirewall SC 16 VampireMeteor SC 16 VampireMissile SC 4 100 85 75 -50 -40 -25 50 50 40 50 50 0 50 50 25 120 80 3 24 24 24 5 153 211 85 110 51 119 92 150 200 100 150 50 100 120 140 177 100 150 68 135 120 A1 cold 70 43 62 25 70 50 100 50 70 50 100 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +reanimatedhorde3Pandemonium 902 reanimatedhorde1 reanimatedhorde4 2 ProwlingDead reanimatedhorde3 zombie ReanimatedHorde re 1 2 4 2 5 2 35 63 89 reanimatedhorde reanimatedhorde 10 13 13 13 50 65 70 20 15 12 12 15 18 25 35 40 25 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 100 75 66 -50 -33 -25 90 90 25 15 50 50 65 75 2 50 50 50 5 114 171 107 143 32 87 139 32 87 93 110 135 70 105 70 110 135 60 120 100 177 194 70 105 95 135 135 60 130 190 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +fetish3Pandemonium 903 fetish1 fetish4 2 Flayer fetish3 fetish Fetish FE 1 fetish3Pandemonium 1 1 1 3 1 3 8 8 1 22 50 89 fetish fetish 10 13 13 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 0 25 75 50 75 50 2 22 22 22 5 66 107 85 79 72 108 94 55 80 125 75 60 95 95 114 133 125 75 81 128 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +bighead5Pandemonium 904 bighead1 bighead6 4 Damned bighead5 bighead Bighead BH 1 1 3 4 7 7 2 27 57 89 bighead bighead 10 13 13 13 90 33 33 40 30 30 0 60 80 60 70 80 bighead5 1 1 1 1 1 100 85 75 -50 -40 -33 80 100 25 0 25 75 0 25 2 22 22 22 5 65 126 63 88 71 106 75 65 120 90 125 50 100 110 136 177 90 125 88 128 110 A2 ltng 100 75 110 100 140 180 100 260 300 A1 ltng 15 10 20 35 30 60 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Map Miss t2 Map Champ t2 Map Unique t2 0 +succubuswitch3Pandemonium 905 succubuswitch1 succubuswitch4 2 StygianFury succubuswitch3 succubus SuccubusWitch 0C 1 1 3 4 9 9 1 35 62 89 succubus succubus 10 13 13 13 90 90 90 25 25 25 0 30 40 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 2 MonLowerRes S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 50 105 25 50 50 25 2 50 50 50 5 95 152 107 133 46 87 139 60 90 115 145 50 90 120 170 191 115 145 88 115 120 A2 mag 100 40 75 100 40 75 100 40 65 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +baboon5Pandemonium 906 baboon1 baboon7 4 TempleGuard baboon5 baboon Baboon BB 1 3 4 7 14 1 24 53 89 baboon baboon 10 13 13 13 33 33 33 20 30 35 75 80 85 50 50 50 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 25 20 50 75 25 45 2 24 24 24 5 107 151 85 97 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 195 228 110 110 108 189 120 50 80 260 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +siegebeast3Pandemonium 907 siegebeast1 siegebeast4 0 BloodBringer siegebeast3 siegebeast SiegeBeast ox 1 1 1 4 9 1 38 60 89 siegebeast siegebeast 10 13 13 13 25 25 25 50 70 75 1 3 4 15 15 15 1 2 4 50 50 50 100 100 100 1 1 1 1 1 Fixed Siege Beast Stomp A2 3 MonCharge seq_siegebeastcharge 3 100 100 100 -50 -40 -33 50 0 75 20 50 50 2 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 368 412 90 260 163 217 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +minionSpider 908 minion1 minion2 0 Minionexp minion1 minion Minion xx 1 3 5 7 10 2 31 58 89 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 50 50 1 1 1 1 1 100 85 75 -50 -40 -33 25 50 25 25 15 50 50 25 65 2 50 50 50 5 190 238 101 167 76 96 151 91 111 162 100 125 100 80 75 100 100 70 115 110 141 170 100 100 135 159 100 145 170 110 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +mosquito4Spider 909 mosquito1 3 BloodWing mosquito4 mosquito Mosquito drains mana and stamina MO 1 3 4 6 12 1 24 53 89 mosquito mosquito 10 13 13 13 40 50 55 40 50 60 5 5 5 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 25 25 15 40 25 45 2 24 24 24 5 21 107 85 74 51 119 92 20 100 95 75 50 95 90 109 139 95 95 75 116 90 A1 stam 90 500 562 100 500 600 100 375 450 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +batdemon6Spider 910 batdemon1 batdemon7 1 Gloombat batdemon1 batdemon BatDemon shocking hit BT 1 3 4 12 12 1 27 57 89 batdemon batdemon 10 13 13 13 60 60 60 33 33 33 20 20 20 80 85 90 50 59 68 8 8 8 1 1 1 1 100 85 75 -50 -40 -33 50 10 105 50 50 120 0 2 27 27 27 5 43 151 84 89 65 101 93 106 165 146 70 110 110 80 65 70 100 80 115 200 99 124 110 100 79 84 100 60 86 200 A2 ltng 85 64 100 85 5 180 85 6 246 Act 3 H2H C Act 3 Champ C Act 3 Unique C Act 3 (N) H2H C Act 3 (N) Champ C Act 3 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 1 1 0 +unraveler3Spider 911 unraveler1 unraveler4 2 Unraveler unraveler3 unraveler GreaterMummy GY 1 1 3 3 3 1 20 49 89 unraveler unraveler 12 13 13 13 80 80 80 40 45 50 50 55 50 80 85 90 24 27 31 mummy3 1 1 1 1 1 UnHolyBolt seq_mummyres 8 100 66 33 -50 -33 -25 50 50 50 35 50 35 20 50 80 3 1 15 33 5 193 236 85 136 124 154 93 170 210 120 300 110 140 160 149 174 120 250 121 150 160 A1 pois 25 123 153 1200 25 33 33 1200 25 57 57 250 Act 2 Cast C Act 2 Champ C Act 2 Unique C Act 2 (N) Cast C Act 2 (N) Champ C Act 2 (N) Unique C Map Cast t1 Map Champ t1 Map Unique t1 0 +willowisp1Spider 912 willowisp1 willowisp2 0 Gloam willowisp1 willowisp WillOWisp drains mana WW 1 1 1 1 15 15 1 21 50 89 willowisp willowisp 10 13 13 13 40 50 60 70 70 70 50 50 50 willowisplightningbolt 1 1 1 1 1 Chain Lightning SC 6 -50 -33 0 60 70 60 85 25 80 50 75 2 26 26 26 5 45 86 84 78 36 153 93 45 85 115 120 45 115 120 133 158 115 140 84 215 120 A1 mana 40 14 64 40 100 200 40 70 263 SC ltng 100 5 120 100 5 160 100 6 316 Act 4 Wraith A Act 3 Champ A Act 3 Unique A Act 4 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Map Wraith t1 Map Champ t1 Map Unique t1 1 1 0 +blunderbore2Spider 913 blunderbore1 blunderbore3 1 Gorbelly blunderbore2 blunderbore blunderbore PinHead stun attack PN 1 1 2 4 4 1 20 49 89 pinhead pinhead 10 13 13 13 80 85 90 12 9 7 80 80 80 9 9 9 50 60 65 1 1 1 1 1 1 100 100 100 -50 -40 -33 55 0 50 75 65 30 4 27 27 27 5 160 200 85 114 77 139 125 124 154 93 180 220 80 130 90 140 110 120 155 100 180 204 80 150 113 159 110 131 161 100 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +arach3Spider 914 arach1 arach4 2 PoisonSpinner arach3 arach Arach SP 1 3 4 8 8 1 21 49 89 arach arach 10 13 13 13 65 75 75 45 45 45 20 25 30 8 12 12 35 35 35 1 1 1 1 1 SpiderLay A2 3 100 75 50 -50 -40 -25 50 0 75 35 25 75 3 21 21 21 5 151 191 85 113 86 143 94 150 190 135 110 70 105 100 145 169 135 130 84 126 100 A1 pois 33 21 35 1200 33 40 100 1200 33 35 88 250 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +spiderboss 915 regurgitator1 regurgitator2 0 spiderboss spiderboss regurgitator Andariel CS 1 1 2 16 20 1 24 56 89 regurgitator regurgitator 14 9 9 9 30 35 40 10 8 6 30 32 65 50 55 0 1 1 1 1 1 1 1 1 Poison Dagger Spider Boss A2 10 AndyPoisonBolt Spider Boss A2 28 100 85 20 0 0 0 50 50 75 75 75 75 2 24 24 24 5 211 285 85 138 82 138 92 240 320 95 140 85 145 105 4125 4125 95 500 130 220 25000 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map Boss T1 Map Boss T1 Map Boss T1 0 +siegebeast3Maus 916 siegebeast1 siegebeast4 0 BloodBringer siegebeast3Maus cursereduction siegebeast SiegeBeast lethal damage ox 1 1 1 2 2 1 38 60 92 siegebeast siegebeast 10 20 20 20 25 25 25 50 70 75 1 3 4 15 15 15 1 2 4 50 50 50 100 100 100 1 1 1 1 1 1 Fixed Siege Beast Stomp A2 3 MonCharge seq_siegebeastcharge 3 100 100 100 -50 -40 -33 120 50 50 50 50 50 2 50 50 50 379 379 88 295 88 121 251 700 750 90 390 750 950 170 500 560 90 520 1000 1250 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +vampire2Maus 917 vampire1 vampire3 1 NightLord vampire2Maus cursereduction vampire Vampire steals life VA 1 1 1 2 7 7 1 23 54 92 vampire vampire 11 13 13 13 65 65 65 25 50 30 25 26 26 25 28 15 5 5 5 1 1 1 1 1 1 1 Frozen Orb SC 24 Frozen Orb SC 24 Blizzard SC 32 Frozen Orb SC 24 100 85 75 -50 -40 -25 40 50 35 50 50 35 33 25 145 145 3 23 23 23 5 153 209 85 110 54 121 92 150 200 100 150 50 100 120 300 350 100 300 50 100 120 A1 cold 65 40 60 25 65 50 100 50 65 500 600 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +willowisp1MapMod 918 willowisp1 willowisp4 2 BurningSoul willowisp3 willowisp WillOWisp drains mana WW 1 1 1 3 15 15 1 21 50 87 willowisp willowisp 10 13 13 13 40 50 60 70 70 70 50 50 50 willowisplightningbolt 1 1 1 1 1 Chain Lightning SC 6 -50 -33 0 60 70 60 85 25 80 50 75 2 26 26 26 5 45 86 84 78 36 153 93 45 85 115 120 45 115 120 215 255 115 120 45 115 120 A1 mana 90 16 72 90 100 200 90 200 300 SC ltng 100 5 120 100 5 160 100 5 142 Act 4 Wraith A Act 3 Champ A Act 3 Unique A Act 4 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Map Wraith t1 Map Champ t1 Map Unique t1 1 1 0 +summonerMap 919 summoner 0 SummonerMap summonerMap human Summoner SU 1 summonerMapMinion 1 1 8 10 1 1 5 5 0 18 55 90 summoner summoner 14 10 10 10 85 93 98 5 5 5 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 MonLightning SC 26 MonFrostNova SC 25 MonFireBall SC 28 Blink SC 7 Baal Lowres SC 7 100 75 20 0 0 0 50 50 50 50 50 50 25 25 50 50 50 50 0 18 18 18 5 1032 1376 153 123 880 1120 85 293 5500 5500 85 500 Summoner Summoner Summoner Summoner (N) Summoner (N) Summoner (N) Map Boss T3 Map Boss T3 Map Boss T3 0 +summonerMapMinion 920 minion1 minion11 3 HellSpawn minion1 minion Minion xx 1 3 5 8 15 2 42 66 90 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 55 55 1 1 1 1 1 100 85 20 -50 -40 -33 25 25 50 50 50 50 2 50 50 50 5 190 237 101 226 77 97 151 93 116 163 100 125 80 80 75 100 100 70 115 110 600 600 120 100 100 150 100 100 150 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +darkwandererMap 921 darkwanderer 0 youngdiablo darkwandererMap DarkWanderer 1Z 1 1 1 2 2 0 darkwandererMap darkwandererMap 15 15 15 1 1 2 0 +nihlathakMap 922 nihlathak 3 ShadowRathma nihlathakmap nihlathakmap human TrappedSoul XU 1 1 1 7 7 0 nihlathak nihlathak 15 15 15 20 15 10 8 1 0 6 3 0 4 2 3 40 40 40 4 1 1 1 NihlathakMapMobSpawn A2 1 RathmaDeath A1 1 MonCurseCast A2 3 50 25 50 50 50 50 1 0 +zombieNihlMinion 923 zombie1 zombie3 1 HungryDead zombie2 zombie Zombie ZM 1 1 3 1 6 2 2 37 90 zombie zombieunique 10 13 13 13 40 50 60 15 20 25 25 30 35 1 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 50 25 50 50 50 50 2 4 4 4 5 101 186 84 111 34 101 101 101 134 101 105 150 80 105 60 140 105 70 150 110 250 300 80 1000 60 115 105 60 115 110 0 +chargerNihlMinion 924 reanimatedhorde1 reanimatedhorde6 4 DefiledWarrior reanimatedhorde5 zombie ReanimatedHorde re 1 2 4 3 7 2 42 65 90 reanimatedhorde reanimatedhorde 10 13 13 13 70 80 85 20 15 12 12 15 18 35 45 45 35 35 35 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 50 70 50 100 50 25 50 50 50 50 2 50 50 50 5 114 170 107 173 35 89 138 35 89 93 110 135 70 105 70 110 135 60 120 100 200 250 70 1000 60 80 135 60 80 100 0 +vampNihlMinion 925 vampire1 vampire2 0 GhoulLord vampire1 vampire Vampire steals life VA 1 1 1 2 6 8 1 19 49 90 vampire vampire 11 13 13 13 55 55 55 20 40 50 24 25 25 25 25 35 3 3 3 1 1 1 1 1 1 1 VampireFireball SC 2 VampireFirewall SC 2 VampireMeteor SC 2 VampireMissile SC 2 100 85 75 -50 -40 -25 30 50 30 50 50 50 25 50 50 50 50 3 19 19 19 5 153 211 84 110 47 116 93 150 200 100 150 50 100 120 200 225 100 1000 50 100 120 A1 cold 60 38 115 25 60 50 100 50 60 100 150 75 0 +skeleNihlMinion 926 skeleton1 skeleton6 4 Horror skeleton5 skeleton Skeleton SK 1 2 4 5 6 2 14 44 90 skeleton skeleton 10 13 13 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 20 20 20 -50 -40 -25 20 60 50 40 80 75 50 25 50 50 50 50 2 30 30 30 5 94 131 84 85 41 101 94 31 101 94 70 100 100 85 40 100 120 40 105 125 200 250 100 1000 50 90 120 50 90 115 A2 ltng 60 30 60 60 30 50 60 30 50 0 +archerNihlMinion 927 sk_archer1 sk_archer11 4 HorrorArcher sk_archer10 skeleton SkeletonBow SK 1 1 3 6 5 6 2 41 63 90 sk_archer sk_archer 10 13 13 13 90 95 99 15 12 11 50 50 50 5 5 5 12 12 12 skbowarrow8 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 20 20 20 -50 -40 -25 33 33 33 140 50 50 50 140 50 25 50 50 50 50 2 48 48 48 5 70 100 100 95 10 25 115 70 100 100 95 35 50 115 140 180 100 1000 40 70 115 A1 rand 100 50 80 75 100 50 80 100 100 50 60 125 0 +mFireNihlMinion 928 skmage_fire1 skmage_fire5 4 HorrorMage skmage_fire4 skeleton SkeletonMage SK 1 1 2 4 5 6 2 17 47 90 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 20 20 20 -50 -40 -25 30 50 50 60 50 25 50 50 50 50 2 17 17 17 5 56 81 84 55 55 80 90 110 150 200 90 1000 A1 fire 100 70 120 100 70 170 100 70 140 0 +mLtngNihlMinion 929 skmage_ltng1 skmage_ltng5 4 HorrorMage skmage_ltng4 skeleton SkeletonMage SK 1 1 2 4 5 6 2 17 48 90 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage4 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 20 20 20 -50 -40 -25 30 50 50 60 50 25 50 50 50 50 2 17 17 17 5 56 81 84 55 55 80 90 110 150 200 90 1000 A1 ltng 100 40 150 100 40 200 100 40 170 0 +mColdNihlMinion 930 skmage_cold1 skmage_cold5 4 HorrorMage skmage_cold4 skeleton SkeletonMage SK 1 1 2 4 5 6 2 17 47 90 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage2 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 20 20 20 -50 -40 -25 30 50 50 60 50 25 50 50 50 50 2 17 17 17 5 56 81 84 55 55 80 90 110 150 200 90 1000 A1 cold 100 60 110 100 100 60 150 150 100 80 170 200 0 +mPoisNihlMinion 931 skmage_pois1 skmage_pois5 4 HorrorMage skmage_pois4 skeleton SkeletonMage SK 1 1 2 4 5 6 2 17 47 90 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 20 20 20 -50 -40 -25 70 60 50 25 50 50 50 50 2 17 17 17 5 56 81 84 55 55 80 90 110 150 200 90 1000 A1 pois 100 33 33 100 100 33 33 100 100 44 44 100 0 +dopplezonnew 932 dopplezonnew 0 DopplezonNew roguehire dopplezonnew ShadowMaster RG 1 1 1 0 0 0 dopplezon dopplezon 11 2 2 2 20 10 5 100 36 100 100 100 100 28 1 1 1 1 1 1 1 1 DoppleZonStrafe seq_dopplestrafe 1 -50 -50 -50 40 40 40 2 Dopplezon 1 50 50 50 0 300 300 200 1 1 300 300 300 200 1 1 300 300 300 200 1 1 300 1 0 +rathmaBone 933 nihlathak 0 Rathma rathma rathma vampire Summoner $1 1 1 1 6 8 0 110 110 110 mephisto mephisto 14 8 8 8 128 128 128 650 10 2 10 25 10 30 5 15 10 1 1 1 1 1 1 RathmaBoneSpear S1 1 RathmaTeethNova S2 1 RathmaPrison S2 3 Teeth Rathma A1 1 RathmaSummon S2 1 Blink S2 7 5 5 5 0 0 0 50 50 75 75 75 75 50 50 75 75 75 75 30 20 75 50 50 0 0 1 15 15 30 5 3500 3500 87 3462 77 197 313 113 257 251 3500 3500 70 2000 100 190 215 110 230 200 6975 6975 70 9000 370 380 215 110 230 200 0 +rathmaPoison 934 nihlathak 4 Mendeln nihlathakboss mendeln vampire Summoner XU 1 1 1 6 8 0 110 110 110 reanimatedhorde reanimatedhorde 14 9 9 9 128 128 128 650 35 20 10 10 25 10 15 20 1 1 1 1 1 1 RathmaPoisonOrb A1 1 RathmaColdMissiles A1 1 LowRes A1 8 Poison Nova Rathma A2 1 RathmaPacman A1 1 RathmaOuterNova A2 1 RathmaSummon A2 1 Blink A2 7 5 5 5 0 0 0 50 50 75 75 75 75 50 50 75 75 75 75 30 20 65 40 40 0 0 1 15 15 30 5 2800 2800 87 3462 77 197 313 113 257 251 3500 3500 140 2000 100 190 215 110 230 200 8550 8550 70 9000 370 380 215 110 230 200 0 +rathmaBoneClone 935 nihlathak 0 Rathma rathma rathma vampire Summoner $1 1 1 1 6 8 0 110 110 110 mephisto mephisto 14 8 8 8 128 128 128 650 10 2 10 25 10 30 5 15 10 1 1 1 1 1 1 RathmaBoneSpear S1 1 RathmaTeethNova S2 1 RathmaPrison S2 1 Teeth Rathma A1 1 RathmaSummon S2 1 Blink S2 7 5 5 5 0 0 0 50 50 75 75 75 75 50 50 75 75 75 75 30 20 75 50 50 0 0 1 15 15 30 5 3500 3500 87 3462 77 197 313 113 257 251 3500 3500 140 2000 100 190 215 110 230 200 3900 3900 70 9000 370 380 215 110 230 200 0 +rathmaPoisonClone 936 nihlathak 4 Mendeln nihlathakboss mendeln vampire Summoner XU 1 1 1 6 8 0 110 110 110 reanimatedhorde reanimatedhorde 14 9 9 9 128 128 128 650 35 20 10 10 25 10 15 20 1 1 1 1 1 1 RathmaPoisonOrb A1 1 RathmaColdMissiles A1 1 LowRes A1 8 Poison Nova Rathma A2 1 RathmaPacman A1 1 RathmaOuterNova A2 1 RathmaSummon A2 1 Blink A2 7 5 5 5 0 0 0 50 50 75 75 75 75 50 50 75 75 75 75 30 20 65 40 40 0 0 1 15 15 30 5 2800 2800 87 3462 77 197 313 113 257 251 2800 2800 140 2000 100 190 215 110 230 200 3900 3900 70 9000 370 380 215 110 230 200 0 +rathmaVoidGolem 937 bloodgolem 1 RathmaVoidGolem bloodgolem golem Brute G2 1 1 1 4 4 0 100 100 100 bloodgolem bloodgolem 11 15 15 15 128 128 128 5 5 5 85 85 85 100 100 100 1 1 1 1 1 BloodGolem NU 0 100 100 100 -75 -75 -75 70 30 200 50 50 30 70 30 200 50 50 30 30 20 30 30 30 50 3 31 31 31 5 800 800 120 60 70 120 60 70 120 800 800 120 27 96 118 400 400 120 200 240 140 A1 stun 100 120 160 25 100 120 160 25 100 120 160 25 0 +rathmaBloodGolem 938 bloodgolem 2 RathmaBloodGolem bloodgolem mendelnbloodgolem golem BaalMinion G2 1 1 1 1 1 0 100 100 100 bloodgolem bloodgolem 15 25 25 25 128 128 128 8 1 1 1 1 1 1 BloodGolem NU 0 100 100 10 -75 -75 -75 70 30 200 50 50 30 70 30 200 50 50 30 50 20 50 45 50 -20 3 31 31 31 5 900 900 120 60 70 100 60 70 100 900 900 120 27 96 118 450 450 120 9000 200 240 140 A1 fire 40 70 120 40 70 170 40 70 170 0 +rathmaTotem 939 skmage_fire1 2 RathmaTotem voidTotem rathmaminion construct GargoyleTrap SK 1 1 1 0 0 0 100 100 100 gargoyletrap gargoyletrap 9 50 50 50 128 128 128 40 40 40 70 70 70 25 25 25 10 10 10 1 1 1 1 1 RathmaFissure A1 1 -50 0 0 50 50 50 200 70 120 50 50 50 200 70 120 50 20 75 75 50 20 0 16 16 31 5 1500 1500 84 106 1500 1500 35 250 400 400 50 3000 0 +voidWatcher 940 tentacle1 1 VoidWatcher voidTentacleHead tentacle TentacleHead TE 1 voidWatcherLimb 1 1 3 1 1 0 0 1 90 90 90 tentaclehead tentaclehead 8 15 15 15 90 90 90 10 10 10 2 2 2 15 15 15 16 15 15 20 20 20 voidbolt 1 1 1 Submerge seq_tentheadsubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 27 27 27 5 129 172 85 87 90 120 100 130 700 740 100 3000 Map Void3 Map Void3 Map Void3 0 +voidWatcherLimb 941 tentaclehead1 1 VoidWatcher voidTentacle tentacle Tentacle TN 1 1 1 0 0 0 90 90 90 tentacle tentacle 8 15 15 15 90 90 90 10 10 10 2 2 2 15 15 15 16 15 15 20 20 20 1 Submerge seq_tentaclesubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 20 20 20 5 129 172 85 107 77 154 93 70 100 100 75 70 120 90 640 680 100 3000 80 200 140 Map Void3 Map Void3 Map Void3 0 +voidBeast 942 councilmember1 2 VoidBeast voidBeast councilmember3 councilmember HighPriest HP 1 1 1 7 9 1 90 90 90 councilmember councilmember 11 12 12 12 65 65 65 20 20 15 125 100 75 45 50 50 80 80 80 9 9 9 12 12 12 30 30 30 highpriestlightning 1 1 1 1 1 SummonVoidling S1 4 Ice Blast S1 20 100 85 66 -50 -33 -25 30 30 30 30 30 30 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 350 420 110 3000 100 140 180 Map Void3 Map Void3 Map Void3 0 +voidling 943 batdemon1 4 Voidling voidling batdemon Brute shocking hit BT 1 2 4 12 14 1 90 90 90 batdemon batdemon 10 13 13 13 0 0 0 90 90 95 60 60 50 1 1 1 1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 27 27 27 5 43 151 84 65 101 93 106 165 146 70 110 110 80 65 70 100 80 115 200 70 110 110 3000 65 70 120 80 115 200 A2 ltng 85 64 100 85 5 180 85 5 240 Map Void3 Map Void3 Map Void3 0 +butcherMap 944 griswold 0 MapEventButcher butchermap butchermapprop Smith MapEventButcherDesc BU 1 1 1 10 13 0 10 42 79 Butcher Butcher 12 12 12 1 1 1 1 -50 -40 -33 -50 10 25 -50 200 200 200 200 200 200 9 13 13 13 5 291 291 84 151 101 129 115 400 450 80 227 90 110 146 5000 5000 90000 227 180 220 25000 A1 fire 15 30 60 30 40 80 0 +treasurefallenMap 945 fallen1 fallen4 2 TreasureFallen treasureFallen treasurefallenprop fallen Fallen FA 1 1 1 10 10 0 20 50 90 treasurefallen treasurefallen 10 12 8 5 55 60 60 20 22 30 70 80 90 30 35 40 1 1 1 1 1 1 1 Blink A1 7 100 85 75 -50 -40 -33 20 20 20 20 20 20 20 40 40 40 40 40 40 60 60 60 60 60 0 1 2 2 2 5 130 130 84 59 41 101 94 41 101 94 400 400 70 65 45 90 90 50 100 85 1500 1500 70 200 45 90 90 50 100 85 A1 ltng 10 1 50 20 1 80 Treasure Fallen N Treasure Fallen N Treasure Fallen N Treasure Fallen NM Treasure Fallen NM Treasure Fallen NM Treasure Fallen H Treasure Fallen H Treasure Fallen H 0 +voidFrog 946 frogdemon1 3 VoidFrog voidFrog frogdemon FrogDemon FD 1 1 1 2 11 11 1 24 51 81 frogdemon frogdemon 10 13 13 13 75 80 95 20 25 30 50 70 85 50 65 75 30 45 60 12 12 12 13 11 8 9 9 9 voidfrogwave 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 24 24 24 5 131 173 85 110 69 151 92 110 140 95 90 65 95 100 300 300 95 90 65 95 100 A1 pois 10 100 100 200 10 100 100 200 10 100 100 200 Map Void3 Map Void3 Map Void3 1 1 0 +snowyeti4Frozen 947 snowyeti1 0 SnowYeti4 snowyeti4 snowyeti Brute io 1 3 4 7 7 1 43 63 89 brute brute 10 13 13 13 0 0 0 90 93 97 40 60 60 1 1 1 1 100 100 100 -15 -10 -5 75 85 0 25 0 25 80 50 2 50 50 50 5 189 228 107 215 34 86 138 41 97 92 155 210 85 110 65 115 95 75 110 85 205 254 85 80 95 145 95 95 145 85 A1 stun 100 74 88 200 100 75 100 200 100 75 100 25 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +sandleaper5Frozen 948 sandleaper1 sandleaper6 4 RazorPitDemon sandleaper5 sandleaper SandLeaper SL 1 3 5 8 8 1 26 56 89 sandleaper sandleaper 10 13 13 13 20 22 25 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 5 100 85 75 -50 -40 -33 20 60 40 20 80 70 25 15 120 75 40 25 2 26 26 26 5 65 193 84 99 59 118 93 59 118 93 40 80 130 95 65 120 100 55 100 90 148 213 130 69 105 160 100 105 160 90 A1 pois 5 10 10 50 10 35 35 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +doomknight1Frozen 949 doomknight1 dkfig1 0 DoomKnight doomknight1 doomknight DoomKnight Fighter UM 1 2 3 6 7 1 24 56 89 doomknight doomknight 10 13 13 13 90 95 100 10 5 5 80 85 90 10 10 10 1 1 1 1 1 1 1 100 75 33 -50 -33 -25 80 20 20 40 100 20 20 40 50 25 80 65 20 50 2 1 24 24 24 5 131 173 107 111 69 151 92 120 150 115 100 70 150 180 213 246 115 72 100 180 180 A1 rand 60 31 62 50 60 30 60 75 60 40 80 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +doomknight3Frozen 950 doomknight3 dkmag1 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 2 4 1 2 8 7 1 30 58 89 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 3 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 0 25 60 75 75 75 2 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 201 226 115 151 90 190 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +clawviper5Frozen 951 clawviper1 clawviper6 4 SerpentMagus clawviper5 clawviper ClawViper SD 1 3 4 6 14 1 24 54 89 clawviper clawviper 10 13 13 13 60 65 65 8 10 12 90 90 90 80 80 80 5 5 5 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 40 80 20 70 80 60 115 55 45 50 35 60 2 24 24 24 5 65 107 85 78 51 94 92 57 101 92 75 110 125 100 60 80 135 60 105 135 193 217 125 72 80 100 135 80 100 135 A1 cold 100 50 93 100 100 60 80 100 100 60 100 100 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +overseer3Frozen 952 overseer1 overseer4 2 OverLord overseer3 overseer Overseer os 1 1 2 4 1 2 5 5 1 36 61 89 overseer overseer 10 13 13 13 250 250 250 60 60 60 50 50 50 17 17 17 7 7 7 100 100 100 50 50 50 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 0 0 33 20 60 25 3 47 47 47 5 379 379 84 131 61 118 125 101 201 94 150 190 90 125 60 110 135 90 160 105 246 279 90 90 160 220 135 160 220 334 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +fetish4Frozen 953 fetish1 fetish5 3 SoulKiller fetish4 fetish Fetish FE 1 fetish4Frozen 1 1 2 3 2 3 9 9 1 23 51 89 fetish fetish 10 13 13 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 0 25 55 50 45 50 2 23 23 23 5 65 107 85 79 67 107 92 55 80 125 75 60 95 95 127 176 125 54 120 135 95 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +fetishblow4Frozen 954 fetishblow1 fetishblow5 3 SoulKiller fetishblow4 fetish FetishBlowgun FC 1 1 fetishblow4Frozen 1 1 2 3 2 3 9 9 1 23 52 89 fetishblow fetishblow 10 13 13 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 50 25 45 40 45 75 2 31 31 31 5 65 107 85 65 15 33 126 45 75 110 90 20 33 110 111 160 110 65 50 120 110 A1 pois 7 10 10 25 12 25 25 50 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +sandraider3Market 955 sandraider1 sandraider4 2 Invader sandraider3 sandraider SandRaider SR 1 3 4 6 6 1 18 47 89 sandraider sandraider 10 13 13 13 70 50 10 85 90 95 70 80 90 13 9 6 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 3 100 75 66 -50 -45 -40 0 0 50 65 20 30 2 34 34 34 5 135 211 84 117 67 92 176 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 248 331 110 95 115 160 175 135 180 180 120 140 250 S1 fire 100 100 130 100 120 150 100 190 210 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +flyingscimitarMarket 956 flyingscimitar 0 FlyingScimitar flyingscimitar construct FlyingScimitar ST 1 3 6 4 4 1 12 45 89 flyingscimitar flyingscimitar 10 10 10 10 90 90 90 90 95 99 8 8 8 40 50 60 1 1 1 1 1 MonCharge seq_pinheadsmite 1 -50 -25 70 100 25 35 75 50 30 75 2 13 13 13 5 97 131 84 83 38 113 93 100 135 150 140 75 120 150 221 276 150 102 115 160 150 Flying Scimitar Flying Scimitar Flying Scimitar Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (N) Map H2H t3 Map Champ t3 Map Unique t3 0 +corruptrogue2Market 957 corruptrogue1 corruptrogue3 1 VileHunter corruptrogue2 corruptrogue CorruptRogue CR 1 2 4 6 8 2 5 38 89 corruptrogue corruptrogue 10 13 13 13 70 80 90 12 9 7 80 85 90 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 45 33 75 20 2 18 18 18 5 62 101 84 78 51 126 91 60 100 95 95 55 110 130 110 184 95 69 110 165 130 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +mosquito2Market 958 mosquito1 mosquito3 1 Feeder mosquito2 mosquito Mosquito drains mana and stamina MO 1 2 3 6 12 1 23 51 89 mosquito mosquito 10 13 13 13 40 45 55 40 45 55 5 5 5 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 0 10 15 75 45 75 2 23 23 23 5 21 107 85 74 54 121 92 20 100 95 75 50 95 90 147 221 95 57 100 190 90 A1 stam 70 400 466 100 500 600 100 500 600 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +firetowerMarket 959 firetower 0 FireTower firetowerMap construct DesertTurret PB 1 1 1 0 0 1 1 46 89 turret turret 9 15 15 15 10 7 3 5 6 7 120 100 80 30 30 30 5 5 5 1 1 1 DesertTurret seq_desertturret 30 90 90 90 70 90 90 90 90 40 50 75 50 45 75 0 46 46 46 1001 2021 34 944 1400 1700 5 944 386 460 5 182 Map Miss t3 Map Champ t3 Map Unique t3 0 +vampire1Market 960 vampire1 vampire2 0 GhoulLord vampire1 vampire Vampire steals life VA 1 1 1 2 6 6 1 19 49 89 vampire vampire 11 13 13 13 55 55 55 20 40 50 24 25 25 25 25 35 3 3 3 1 1 1 1 1 1 VampireFireball SC 12 VampireFirewall SC 12 VampireMeteor SC 12 VampireMissile SC 12 100 85 75 -50 -40 -25 30 50 30 50 50 115 40 120 35 60 50 3 19 19 19 5 153 211 84 110 47 116 93 150 200 100 150 50 100 120 239 331 100 109 100 200 120 A1 cold 60 38 115 25 60 50 100 50 60 50 100 75 Act 2 Cast C Act 2 Champ C Act 2 Unique C Act 2 (N) Cast C Act 2 (N) Champ C Act 2 (N) Unique C Map Cast t3 Map Champ t3 Map Unique t3 0 +cr_archer2Market 961 cr_archer1 cr_archer3 1 VileArcher cr_archer2 corruptrogue CorruptArcher CR 1 1 1 3 5 6 1 5 38 89 cr_archer cr_archer 10 13 13 13 70 75 80 75 88 91 12 10 9 25 35 45 20 20 20 12 12 12 cr_arrow2 1 1 1 1 1 100 100 100 -50 -40 -33 15 15 35 75 75 25 2 15 15 15 5 93 131 84 91 60 90 255 55 95 90 100 60 90 150 138 212 90 73 90 120 150 A1 pois 10 20 20 100 20 35 35 100 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Map Miss t3 Map Champ t3 Map Unique t3 0 +unraveler3Market 962 unraveler1 unraveler4 2 Unraveler unraveler3 unraveler GreaterMummy raises undead GY 1 2 8 1 1 3 3 1 20 49 89 unraveler unraveler 12 13 13 13 80 80 80 40 45 50 50 55 50 80 85 90 24 27 31 mummy3 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 3 100 66 33 -50 -33 -25 50 50 50 33 40 35 20 50 50 3 1 15 33 5 193 236 85 136 124 154 93 170 210 120 300 110 140 160 248 322 120 158 130 170 160 A1 pois 25 123 153 1200 25 33 33 1200 25 50 50 125 Act 2 Cast C Act 2 Champ C Act 2 Unique C Act 2 (N) Cast C Act 2 (N) Champ C Act 2 (N) Unique C Map Cast t3 Map Champ t3 Map Unique t3 0 +CanyonBoss 963 frozenhorror1 4 CanyonBoss CanyonBoss frozenhorror Duriel f0 1 2 3 3 16 1 41 64 91 frozenhorror frozenhorror 10 20 20 20 5 5 10 35 35 35 35 35 35 70 70 70 1 1 1 1 1 1 1 Dragon Flight A1 1 Horror Arctic Blast Boss seq_horrorarcticblast 6 Frost Nova Horror Boss A1 3 Mon Holy Freeze Wide NU 8 100 85 0 0 33 75 100 50 50 75 75 75 75 0 50 50 50 5 284 379 101 271 58 97 126 190 230 100 120 60 110 100 4800 4800 100 600 90 110 10000 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map Boss T2 Map Boss T2 Map Boss T2 0 +MarketBoss 964 blunderbore1 blunderbore2 0 MarketBoss CanyonBoss blunderbore blunderbore Duriel PN 1 fallenMarketBoss 30 30 1 1 3 3 1 18 47 91 pinhead pinhead 11 5 5 5 5 5 10 90 90 90 45 45 45 70 70 70 1 1 1 1 1 1 1 1 Shock Wave Boss A1 15 Battle Command A1 15 Smite A1 15 100 100 20 0 0 0 50 50 75 75 75 75 0 15 15 15 160 200 84 114 76 134 125 117 151 92 180 220 80 130 90 140 110 120 155 100 6800 6800 80 600 90 140 30000 120 155 30000 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map Boss T3 Map Boss T3 Map Boss T3 0 +fallenMarketBoss 965 fallen1 fallen4 2 DevilkinSlave fallen3 fallen Fallen FA 1 fallenMarketBoss 1 1 3 4 3 4 6 6 2 7 39 91 fallen fallen 10 13 13 13 55 60 60 20 22 30 70 80 90 30 35 40 1 1 1 1 1 1 1 1 1 50 50 50 -50 -40 -33 50 50 75 75 75 75 2 25 25 25 5 18 53 84 59 41 101 94 41 101 94 25 55 70 65 45 90 90 50 100 85 1350 1350 70 55 65 110 400 60 90 400 A1 ltng 10 1 100 20 1 140 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +spireFire 966 lightningspire 0 Mendeln MendelnSpire construct ArcaneTower AE 1 1 1 0 0 1 1 48 79 lightningorb lightningorb 9 15 15 15 99 99 99 150 150 150 33 25 25 99 99 99 150 125 150 50 33 25 arcanelightningbolt 1 1 1 1 Glacial Spike Spire seq_arcanetower 1 Glacial Spike Spire seq_arcanetower 1 90 90 90 70 1000 90 90 100 1000 1000 1000 1000 1000 1000 1000 0 46 46 46 1001 2021 34 944 500 600 5 944 500 600 5 944 0 +TCStartDontUseOrChange 967 rat 0 dummy rat Idle RT 1 4 4 5 5 0 rat rat 15 15 15 1 1 1 1 1 2 Gold Gold Gold Gold Gold Gold Gold Gold Gold 0 +voidKnightPoison 968 doomknight3 2 VoidKnight voidknightPoison rathmaminion doomknight OblivionKnight Mage UM 1 1 1 1 8 7 1 30 58 85 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 100 100 100 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 1 DoomKnightMissile S1 21 DoomKnightMissile S1 21 DoomKnightMissile S1 21 MonCurseCast S2 3 -50 -33 -25 60 60 60 60 60 60 80 60 50 50 75 75 50 20 2 29 29 50 130 171 107 131 69 153 92 120 150 115 210 60 135 30000 500 500 115 3000 200 250 25000 0 +voidKnightFire 969 doomknight3 2 VoidKnight voidknightFire rathmaminion doomknight OblivionKnight Mage UM 1 1 1 1 8 7 1 30 58 85 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 100 100 100 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 1 DoomKnightMissile S1 21 DoomKnightMissile S1 21 DoomKnightMissile S1 21 MonCurseCast S2 3 -50 -33 -25 60 60 60 60 60 60 80 60 50 50 75 75 50 20 2 29 29 50 130 171 107 131 69 153 92 120 150 115 210 60 135 30000 500 500 115 3000 200 250 25000 0 +voidKnightCorridor 970 doomknight3 2 VoidKnight voidknight rathmaminion doomknight OblivionKnight Mage UM 1 1 1 1 8 7 1 30 58 85 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 100 100 100 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 22 DoomKnightMissile S1 22 DoomKnightMissile S1 22 MonCurseCast S2 3 -50 -33 -25 60 60 60 60 60 60 80 60 50 50 75 75 50 20 2 29 29 50 130 171 107 131 69 153 92 120 150 115 210 60 135 30000 300 350 115 3000 200 250 25000 Map Void3 Map Void3 Map Void3 0 +overseerRat 971 overseer1 overseer6 4 HellWhip necropolis_overseer overseer Overseer os 1 minion5Rat 1 2 4 2 3 6 6 1 39 60 92 overseer overseer 10 13 13 13 250 250 250 70 70 70 50 50 50 17 17 17 7 7 7 100 100 100 50 55 55 1 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 30 30 30 30 30 30 2 50 50 50 5 379 379 84 142 61 117 126 101 201 93 150 190 90 125 60 110 135 90 160 105 270 300 90 100 205 230 170 205 230 334 Map Void Map Void Map Void 0 +unraveler3Rat 972 unraveler1 unraveler4 2 Unraveler necropolis_unraveler unraveler GreaterMummy raises undead GY 1 skeleton4Rat 2 8 1 1 3 3 1 20 49 92 unraveler unraveler 12 13 13 13 80 80 80 40 45 50 50 55 50 80 85 90 24 27 31 mummy3 1 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 3 100 66 33 -50 -33 -25 50 50 50 30 30 30 30 30 30 3 1 15 33 5 193 236 85 136 124 154 93 170 210 120 300 110 140 160 150 180 120 100 140 170 160 A1 pois 25 123 153 1200 25 33 33 1200 25 99 99 100 Map Void Map Void Map Void 0 +skeleton4Rat 973 skeleton1 skeleton5 3 BurningDead necropolis_skeleton skeleton Skeleton SK 1 2 4 5 5 2 13 43 92 skeleton skeleton 10 13 13 13 90 95 95 7 6 5 90 95 99 66 66 66 1 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 50 75 75 30 30 30 30 30 30 2 25 25 25 5 93 133 84 85 45 101 93 34 101 93 70 100 100 85 40 100 120 40 105 125 210 240 100 100 140 190 110 140 190 125 A1 fire 50 22 55 50 25 55 50 50 110 Map Void Map Void Map Void 0 +bonefetish4Rat 974 bonefetish1 bonefetish5 3 Undead SoulKiller necropolis_bonefetish stygian undeadfetish Fetish FK 1 2 3 9 9 1 23 52 92 bonefetish bonefetish 10 13 13 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 30 30 30 30 30 30 2 23 23 23 5 65 107 85 79 67 107 92 65 105 135 125 65 105 90 120 150 135 100 95 165 90 Map Void Map Void Map Void 0 +mummy5Rat 975 mummy1 mummy6 4 Cadaver necropolis_mummy mummy Mummy MM 1 4 5 3 3 1 25 55 92 mummy mummy 10 13 13 13 25 25 25 50 50 50 100 100 100 55 55 55 10 10 10 1 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 30 30 30 30 30 30 2 25 25 25 5 70 154 85 89 57 107 93 57 107 93 100 140 95 100 60 105 105 180 220 95 100 120 185 105 A1 pois 10 33 33 200 35 33 33 800 35 50 50 100 Map Void Map Void Map Void 0 +willowisp1Rat 976 willowisp1 willowisp2 0 Gloam necropolis_willowisp willowisp WillOWisp drains mana WW 1 1 2 3 15 15 1 21 50 92 willowisp willowisp 10 13 13 13 40 50 60 70 70 70 50 50 50 willowisplightningbolt 1 1 1 1 1 1 Chain Lightning SC 1 -50 -33 0 40 50 40 70 30 30 30 30 30 30 2 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 250 280 115 100 45 115 120 A1 mana 40 14 64 40 100 200 40 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Map Void Map Void Map Void 1 1 0 +skmage_fire3Rat 977 skmage_fire1 skmage_fire4 3 BurningDeadMage necropolis_skmage_fire skeleton SkeletonMage SK 1 1 2 3 5 5 2 14 44 92 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 50 100 60 30 30 30 30 30 30 2 15 15 15 5 57 81 84 56 55 80 90 110 180 220 90 100 A1 fire 100 70 120 100 70 170 100 100 200 Map Void Map Void Map Void 0 +minion5Rat 978 minion1 minion6 4 HellSpawn necropolis_minion minion Minion xx 1 2 4 7 10 2 37 62 92 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 60 60 1 1 1 1 1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 50 50 50 5 190 237 101 197 74 96 151 92 114 163 100 125 100 80 75 100 100 70 115 110 200 225 100 100 95 120 100 70 115 110 Map Void Map Void Map Void 0 +overseerRat2 979 overseer1 overseer6 4 HellWhip necropolis_overseer overseer Overseer os 1 minion5Rat 1 2 4 2 3 6 6 1 39 60 92 overseer overseer 10 13 13 13 250 250 250 70 70 70 50 50 50 17 17 17 7 7 7 100 100 100 50 55 55 1 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 30 30 30 30 30 30 2 50 50 50 5 379 379 84 142 61 117 126 101 201 93 150 190 90 125 60 110 135 90 160 105 270 300 90 100 205 230 170 205 230 334 Map Void2 Map Void2 Map Void2 0 +unraveler3Rat2 980 unraveler1 unraveler4 2 Unraveler necropolis_unraveler unraveler GreaterMummy raises undead GY 1 skeleton4Rat 2 8 1 1 3 3 1 20 49 92 unraveler unraveler 12 13 13 13 80 80 80 40 45 50 50 55 50 80 85 90 24 27 31 mummy3 1 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 3 100 66 33 -50 -33 -25 50 50 50 30 30 30 30 30 30 3 1 15 33 5 193 236 85 136 124 154 93 170 210 120 300 110 140 160 150 180 120 100 140 170 160 A1 pois 25 123 153 1200 25 33 33 1200 25 99 99 100 Map Void2 Map Void2 Map Void2 0 +skeleton4Rat2 981 skeleton1 skeleton5 3 BurningDead necropolis_skeleton skeleton Skeleton SK 1 2 4 5 5 2 13 43 92 skeleton skeleton 10 13 13 13 90 95 95 7 6 5 90 95 99 66 66 66 1 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 50 75 75 30 30 30 30 30 30 2 25 25 25 5 93 133 84 85 45 101 93 34 101 93 70 100 100 85 40 100 120 40 105 125 210 240 100 100 140 190 110 140 190 125 A1 fire 50 22 55 50 25 55 50 50 110 Map Void2 Map Void2 Map Void2 0 +bonefetish4Rat2 982 bonefetish1 bonefetish5 3 Undead SoulKiller necropolis_bonefetish stygian undeadfetish Fetish FK 1 2 3 9 9 1 23 52 92 bonefetish bonefetish 10 13 13 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 30 30 30 30 30 30 2 23 23 23 5 65 107 85 79 67 107 92 65 105 135 125 65 105 90 120 150 135 100 95 165 90 Map Void2 Map Void2 Map Void2 0 +mummy5Rat2 983 mummy1 mummy6 4 Cadaver necropolis_mummy mummy Mummy MM 1 4 5 3 3 1 25 55 92 mummy mummy 10 13 13 13 25 25 25 50 50 50 100 100 100 55 55 55 10 10 10 1 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 30 30 30 30 30 30 2 25 25 25 5 70 154 85 89 57 107 93 57 107 93 100 140 95 100 60 105 105 180 220 95 100 120 185 105 A1 pois 10 33 33 200 35 33 33 800 35 50 50 100 Map Void2 Map Void2 Map Void2 0 +willowisp1Rat2 984 willowisp1 willowisp2 0 Gloam necropolis_willowisp willowisp WillOWisp drains mana WW 1 1 2 3 15 15 1 21 50 92 willowisp willowisp 10 13 13 13 40 50 60 70 70 70 50 50 50 willowisplightningbolt 1 1 1 1 1 1 Chain Lightning SC 1 -50 -33 0 40 50 40 70 30 30 30 30 30 30 2 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 250 280 115 100 45 115 120 A1 mana 40 14 64 40 100 200 40 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Map Void2 Map Void2 Map Void2 1 1 0 +skmage_fire3Rat2 985 skmage_fire1 skmage_fire4 3 BurningDeadMage necropolis_skmage_fire skeleton SkeletonMage SK 1 1 2 3 5 5 2 14 44 92 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 70 50 100 60 30 30 30 30 30 30 2 15 15 15 5 57 81 84 56 55 80 90 110 180 220 90 100 A1 fire 100 70 120 100 70 170 100 100 200 Map Void2 Map Void2 Map Void2 0 +minion5Rat2 986 minion1 minion6 4 HellSpawn necropolis_minion minion Minion xx 1 2 4 7 10 2 37 62 92 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 60 60 1 1 1 1 1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 50 50 50 5 190 237 101 197 74 96 151 92 114 163 100 125 100 80 75 100 100 70 115 110 200 225 100 100 95 120 100 70 115 110 Map Void2 Map Void2 Map Void2 0 +doomknight1Arcane 987 doomknight1 dkfig1 0 DoomKnight doomknight1 doomknight DoomKnight Fighter UM 1 2 3 6 7 1 24 56 87 doomknight doomknight 10 13 13 13 90 95 100 10 5 5 80 85 90 10 10 10 1 1 1 1 1 1 1 100 75 33 -50 -33 -25 80 20 20 40 100 20 20 40 33 25 75 40 25 65 2 1 24 24 24 5 131 173 107 111 69 151 92 120 150 115 100 70 150 180 162 203 115 85 88 190 180 A1 rand 60 31 62 50 60 30 60 75 60 41 81 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +BRArenaZombie 988 zombie1 zombie2 0 Zombie zombie1 zombie Zombie ZM 1 1 2 1 3 2 1 60 90 zombie zombieunique 10 13 13 13 30 40 50 10 15 20 20 25 30 1 1 1 1 1 1 100 100 100 -50 -50 -50 0 3 3 3 5 101 181 84 0 51 151 101 101 151 101 30 45 20 0 15 30 20 15 30 20 10 15 10 0 6 12 10 6 12 10 BR Arena Zomb N BR Arena Zomb N BR Arena Zomb N BR Arena Zomb NM BR Arena Zomb NM BR Arena Zomb NM BR Arena Zomb H BR Arena Zomb H BR Arena Zomb H 0 +uberancientbarb1 989 ancientbarbboss1 0 UberAncient1 uberancientbarb1 ubertalic human Ancient 0D 1 1 1 10 10 0 37 68 90 ancient ancient 10 8 8 8 600 25 500 2 43 10 5 45 40 1 1 1 1 1 UberTalicWhirlwind seq_ancientwhirlwind 8 UberTalicSmite A1 20 UberTalicBlaze seq_uberancient1_sc 20 UberTalicMeteor SC 10 100 100 0 0 0 70 70 70 70 70 70 20 20 50 50 50 50 0 500 600 84 9 14 251 9 14 251 600 800 125 4 7 250 4 7 250 7560 7560 125 9000 110 150 20000 110 150 20000 A1 fire 100 200 250 100 200 250 100 500 500 0 +uberancientbarb2 990 ancientbarbboss2 1 UberAncient2 uberancientbarb2 human Ancient 0F 1 1 1 12 12 0 37 68 90 ancient ancient 10 8 8 8 600 20 10 45 5 60 45 5 ubermadawcchargedaxe 1 1 1 1 1 UberMadawcDoubleThrow A1 5 UberMadawcLightningStorm SC 5 UberMadawcFakeBO SC 20 UberMadawcOWAxe seq_uberancient2_a2 5 UberMadawcCursedAxe seq_uberancient2_a2 5 100 100 -25 -25 0 70 70 70 70 20 20 50 50 50 50 0 500 600 84 9 14 251 600 800 125 4 7 250 6650 6650 125 9000 70 90 1000 0 +uberancientbarb3 991 ancientbarbboss3 2 UberAncient3 uberancientbarb3 uberkorlic human Ancient 0E 1 1 1 10 10 0 37 68 90 ancient ancient 10 8 8 8 600 50 15 25 25 15 100 0 0 1 1 1 1 1 Leap Attack seq_ancientleap 1 Stun A1 20 Battle Command seq_uberancient3_sc 13 Battle Cry seq_uberancient3_sc 3 Frost Nova seq_uberancient3_sc 5 100 100 0 0 0 70 70 70 70 70 70 20 20 50 50 50 50 0 500 600 84 9 14 251 9 14 251 600 800 125 4 7 250 4 7 250 6020 6020 125 9000 40 40 20000 40 40 20000 0 +targetdummy 992 crownest1 crownest2 0 TargetDummy crownest1 targetdummyprop Sarcophagus BN 1 1 1 0 0 1 45 75 95 catapult catapult 10 100 100 100 1 1 1 0 0 0 0 10000 10000 0 0 10000 10000 0 0 20000 20000 0 0 0 +shadowofhate 993 pantherwoman1 pantherwoman5 3 ShadowOfHate pantherwoman4 shadowmonprop PantherWoman PW 1 3 6 8 13 1 35 65 90 pantherwoman pantherwoman 10 13 13 13 90 90 90 90 90 95 24 12 12 6 6 6 0 25 50 1 1 1 1 1 100 75 50 -50 -45 -33 20 20 50 50 50 50 2 30 30 30 5 58 96 63 70 47 116 93 60 100 105 80 50 90 200 350 350 105 80 45 80 200 A1 fire 15 50 80 50 50 120 0 +shadowofterror 994 corruptrogue1 corruptrogue5 6 ShadowOfTerror corruptrogue4 shadowmonprop CorruptRogue CR 1 8 14 7 12 1 35 65 90 corruptrogue corruptrogue 10 13 13 13 90 95 95 7 5 5 88 95 95 100 100 100 20 50 75 1 1 1 1 1 100 66 50 -50 -33 -33 50 50 50 20 20 50 50 50 50 2 40 40 40 5 65 107 85 78 47 121 92 60 100 95 95 55 110 130 225 225 95 95 55 110 130 A1 pois 25 123 153 1200 25 33 33 1200 25 99 99 100 0 +shadowofdestruction 995 pantherwoman1 pantherwoman5 0 ShadowOfDestruction shadowofdestruction shadowmonprop Izual 22 1 1 1 10 16 1 35 65 90 izualnotaunt izualnotaunt 10 13 13 13 45 50 50 50 50 50 66 66 66 0 75 100 20 5 0 3 4 4 1 1 1 1 1 MonFrostNova SC 60 100 75 50 -50 -33 -25 30 30 30 30 75 30 30 30 30 30 75 30 20 20 50 50 50 50 2 50 50 50 5 6636 6636 84 3695 132 237 251 3111 3111 120 1987 120 160 200 800 800 120 1987 150 180 200 A1 cold 100 42 84 50 100 50 80 75 100 50 80 100 0 +westmarchMapBoss 996 brute2 3 WestmarchBoss bruteMapBoss brute BaalMinion YE 1 3 4 5 5 1 23 53 89 brute brute 10 20 20 20 70 0 0 0 90 90 95 60 60 50 35 35 1 1 1 1 1 1 1 1 BruteFireSlam A2 1 BruteMoltenBoulder A1 1 BruteVigor A2 1 BruteShockWave A1 1 100 20 20 0 0 0 20 20 50 50 50 50 0 29 29 29 5 157 257 84 153 220 270 70 185 4000 4000 70 400 Map Boss T1 Map Boss T1 Map Boss T1 0 +doomknight3LibraryBoss 997 doomknight3 dkmag1 0 LibraryBoss libraryboss libraryboss doomknight Summoner Mage UM 1 1 1 2 8 7 1 30 58 91 doomknight doomknight 10 13 13 13 85 93 98 5 5 5 55 55 55 250 250 250 75 75 75 33 20 10 20 20 20 40 40 40 1 1 1 1 1 1 Teeth S1 16 Cyclone ArmorMon S1 25 Bone Spear S1 3 Blink S2 3 MonBoneSpirit S1 7 100 20 20 0 0 0 60 60 60 60 60 60 80 60 20 20 50 50 50 50 0 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 6500 6500 115 600 60 135 160 Map Boss T2 Map Boss T2 Map Boss T2 0 +leoricMapBoss 998 skeleton1 0 LeoricBoss leoric skeleton ReanimatedHorde !9 1 1 1 4 4 2 2 37 89 leoric leoric 10 13 13 13 60 65 70 15 12 10 14 17 20 100 100 100 1 1 1 1 1 1 1 1 LeoricSummonNova SC 1 MonCharge seq_leoriccharge 1 Bone Armor SC 35 Joust A1 15 MonSmite A1 10 20 -50 -40 -25 50 75 20 20 50 50 50 50 0 10 10 10 5 86 129 84 86 34 101 101 34 101 101 70 100 100 85 40 100 120 40 105 125 6750 6750 140 400 160 200 20000 160 200 20000 Map Boss T3 Map Boss T3 Map Boss T3 0 +leoricGuards 999 reanimatedhorde1 reanimatedhorde2 2 LeoricGuards reanimatedhorde1 zombie ReanimatedHorde RE 1 2 4 2 6 2 31 61 89 reanimatedhorde reanimatedhorde 10 13 13 13 30 45 55 20 15 12 12 15 18 20 25 30 20 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 25 20 -50 -33 -25 70 70 20 20 50 50 50 50 2 45 45 45 5 115 171 107 128 31 86 139 31 86 93 110 135 70 105 70 110 135 60 120 100 450 600 70 0 70 80 135 70 80 100 0 +siegebeastMapBoss 1000 megademon1 3 SiegebeastMapBoss siegebeastMapBoss brute SiegeBeast OX 1 1 1 6 11 1 38 64 92 siegebeast siegebeast 10 13 13 13 25 25 25 50 80 85 1 3 5 15 15 15 1 3 5 50 50 50 100 100 100 1 1 1 1 1 1 1 1 SiegeBeastOrb A1 5 SiegeBeastClusterbomb A2 7 SiegeBeastFireNova A2 5 SiegeBeastBuffNova A2 2 100 20 20 -50 -40 -33 50 50 90 90 90 90 4 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 10000 10000 90 8000 200 250 20000 A1 ltng 100 40 150 100 40 200 100 40 170 UberAncients UberAncients UberAncients 0 +siegebeastMapBossFallen 1001 fallen1 3 SiegebeastMapBossFallen fallen1 fallen Fallen FA 1 1 1 10 10 1 40 61 92 fallen fallen 10 13 13 13 75 80 80 30 30 30 90 95 99 40 45 50 1 1 1 1 1 1 1 1 100 20 20 -50 -40 -33 50 50 50 50 50 50 66 66 66 66 66 66 50 50 90 90 90 90 4 49 49 49 5 21 55 84 93 45 93 93 45 97 93 25 55 70 65 45 90 90 40 80 85 800 800 70 0 125 150 20000 125 150 20000 A2 fire 10 50 70 20 50 70 0 +corruptrogue2Library 1002 corruptrogue1 corruptrogue3 1 VileHunter corruptrogue2 corruptrogue CorruptRogue CR 1 2 5 6 8 2 5 38 68 corruptrogue corruptrogue 10 13 13 13 70 80 90 12 9 7 80 85 90 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 15 35 45 65 45 2 18 18 18 5 62 101 84 78 51 126 91 60 100 95 95 55 110 130 138 179 95 86 90 148 130 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +cr_archer2Library 1003 cr_archer1 cr_archer3 1 VileArcher cr_archer2 corruptrogue CorruptArcher CR 1 1 3 5 5 6 1 5 38 69 cr_archer cr_archer 10 13 13 13 70 75 80 75 88 91 12 10 9 25 35 45 20 20 20 12 12 12 cr_arrow2 1 1 1 1 1 100 100 100 -50 -40 -33 15 15 75 25 40 40 2 15 15 15 5 93 131 84 91 60 90 255 55 95 90 100 60 90 150 124 158 90 91 105 138 150 A1 pois 10 20 20 100 20 65 65 100 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +cr_lancer2Library 1004 cr_lancer1 cr_lancer3 1 VileLancer cr_lancer2 corruptrogue CorruptLancer CR 1 2 3 5 6 1 5 38 68 cr_lancer cr_lancer 10 13 13 13 70 70 70 80 85 90 8 7 6 0 45 60 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 105 45 120 40 45 2 6 6 6 5 85 124 84 91 76 151 91 80 115 95 85 65 130 140 166 199 95 77 102 168 140 A1 pois 10 25 25 100 20 65 65 100 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +deathmauler3Library 1005 deathmauler1 deathmauler4 2 Death Mauler3 deathmauler3 deathmauler DeathMauler m5 1 2 4 5 5 1 38 60 81 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 19 19 19 70 70 70 1 1 1 1 DeathMaul seq_deathmaulerdig 3 100 85 75 -50 -40 -33 33 25 50 25 65 25 2 50 50 50 5 124 152 126 180 51 76 251 115 145 95 105 75 140 115 158 227 95 95 138 186 115 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +willowisp1Library 1006 willowisp1 willowisp2 0 Gloam willowisp1 willowisp WillOWisp drains mana WW 1 1 1 1 15 15 1 21 50 80 willowisp willowisp 10 13 13 13 40 50 60 70 70 70 50 50 50 willowisplightningbolt 1 1 1 1 1 Chain Lightning SC 1 -50 -33 0 40 50 40 70 60 0 25 75 25 75 2 21 21 21 5 44 87 85 74 36 151 94 45 85 115 120 45 115 120 110 144 115 109 90 138 120 A1 mana 40 14 64 40 100 200 40 262 393 SC ltng 100 5 120 100 5 160 100 5 190 Act 3 Wraith A Act 3 Champ A Act 3 Unique A Act 3 (N) Wraith A Act 3 (N) Champ A Act 3 (N) Unique A Map Wraith t2 Map Champ t2 Map Unique t2 1 1 0 +vampire1Library 1007 vampire1 vampire2 0 GhoulLord vampire1 vampire Vampire steals life VA 1 1 1 4 6 6 1 19 49 80 vampire vampire 11 13 13 13 55 55 55 20 40 50 24 25 25 25 25 35 3 3 3 1 1 1 1 1 1 VampireFireball SC 6 VampireFirewall SC 6 VampireMeteor SC 6 VampireMissile SC 2 100 85 75 -50 -40 -25 30 50 30 50 50 30 35 45 50 75 75 3 19 19 19 5 153 211 84 110 47 116 93 150 200 100 150 50 100 120 206 276 100 136 95 157 120 A1 cold 60 38 115 25 60 50 100 50 60 196 262 75 Act 2 Cast C Act 2 Champ C Act 2 Unique C Act 2 (N) Cast C Act 2 (N) Champ C Act 2 (N) Unique C Map Cast t2 Map Champ t2 Map Unique t2 0 +bloodlord5Library 1008 bloodlord1 bloodlord6 4 Blood Lord5 bloodlord5 bloodlord BloodLord L3 1 1 2 9 9 1 43 65 85 bloodlord bloodlord 10 13 13 13 90 90 90 85 85 85 80 80 80 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 0 0 0 0 25 75 50 40 50 2 50 50 50 5 283 379 126 316 67 149 188 67 149 188 240 300 130 210 80 120 180 80 120 180 331 414 130 190 114 158 180 95 166 180 A1 fire 33 70 80 33 104 157 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +skeleton3Crypt 1009 skeleton1 skeleton4 2 BoneWarrior skeleton3 skeleton Skeleton SK 1 2 4 6 8 2 7 39 85 skeleton skeleton 10 13 13 13 80 85 90 9 8 7 85 90 95 50 50 50 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 40 50 60 75 25 25 30 35 65 65 2 20 20 20 5 89 124 84 85 41 121 94 41 121 94 70 100 100 85 40 100 120 40 105 125 197 291 100 72 95 166 120 103 178 125 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +scarab3Crypt 1010 scarab1 scarab4 2 Scarab scarab3 scarab Scarab SC 1 scarab3Crypt 1 1 2 5 2 4 5 8 1 17 45 84 scarab scarab 10 13 13 13 85 88 92 70 70 70 9 9 9 55 65 70 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 3 100 75 50 -50 -40 -25 20 0 40 80 50 25 4 17 17 17 5 67 112 84 125 55 155 92 55 128 92 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 223 299 145 106 103 178 120 122 149 140 40 70 95 A1 ltng 25 18 27 25 15 30 25 20 41 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +batdemon3Crypt 1011 batdemon1 batdemon4 2 Gloombat batdemon3 batdemon BatDemon shocking hit BT 1 2 4 9 14 1 22 51 81 batdemon batdemon 10 13 13 13 60 60 60 33 33 33 20 20 20 70 75 80 50 57 64 8 8 8 1 1 1 1 100 85 75 -50 -40 -33 50 25 120 50 25 50 2 22 22 22 5 44 151 85 82 65 101 94 79 122 156 70 110 110 80 65 70 100 80 115 200 189 249 110 68 122 149 100 100 248 200 A2 fire 75 64 100 75 5 180 75 177 244 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 1 1 0 +sk_archer3Crypt 1012 sk_archer1 sk_archer4 2 BoneArcher sk_archer3 skeleton SkeletonBow SK 1 1 2 4 6 6 2 9 40 70 sk_archer sk_archer 10 13 13 13 80 85 90 15 13 12 50 50 50 5 5 5 6 6 6 skbowarrow3 1 1 1 1 1 -50 -40 -25 20 50 50 60 35 45 30 20 45 75 2 25 25 25 5 76 156 84 90 65 90 253 70 100 100 95 35 50 115 189 240 100 81 124 142 115 Act 1 Miss C Act 1 Champ C Act 1 Unique C Act 1 (N) Miss C Act 1 (N) Champ C Act 1 (N) Unique C Map Miss t3 Map Champ t3 Map Unique t3 0 +bighead1Crypt 1013 bighead1 bighead2 0 Afflicted bighead1 bighead Bighead BH 1 1 3 4 6 6 1 12 43 73 bighead bighead 10 13 13 13 88 75 75 40 30 30 0 20 30 60 70 80 bighead1 1 1 1 1 1 100 85 75 -50 -40 -33 70 85 75 0 30 55 75 65 40 2 11 11 11 5 66 127 63 81 76 113 77 65 120 90 125 50 100 110 197 291 90 106 108 170 110 119 220 A2 ltng 100 75 110 100 140 180 100 244 298 A1 ltng 15 10 20 35 40 53 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Map Miss t3 Map Champ t3 Map Unique t3 0 +baboon1Crypt 1014 baboon1 baboon2 0 DuneBeast baboon1 baboon Baboon BB 1 1 2 7 12 1 18 47 78 baboon baboon 10 13 13 13 33 33 33 20 30 35 55 60 65 0 0 0 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 25 0 60 45 120 25 2 18 18 18 5 108 151 84 96 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 258 336 110 94 119 220 120 95 136 130 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +clawviper2Crypt 1015 clawviper1 clawviper3 1 ClawViper clawviper2 clawviper ClawViper SD 1 1 3 4 10 1 15 45 76 clawviper clawviper 10 13 13 13 45 50 50 8 10 12 80 80 80 60 60 60 12 12 9 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 20 40 40 45 45 25 50 40 2 16 16 16 5 66 107 84 78 61 101 94 61 101 94 75 110 125 100 60 80 135 60 105 135 206 275 125 85 95 136 135 70 101 135 A1 cold 100 5 120 100 5 120 100 95 122 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +gargoyletrapCrypt 1016 gargoyletrap 0 GargoyleTrap gargoyletrap construct GargoyleTrap GT 1 20 20 0 0 0 15 40 79 gargoyletrap gargoyletrap 9 15 15 15 24 26 28 20 50 80 12 10 8 15 7 0 1 1 1 GargoyleTrap seq_gargoyletrap 1 -50 0 0 70 100 25 50 65 50 120 75 0 16 16 16 5 132 172 84 106 140 190 35 250 184 238 35 213 Map Champ t3 Map Unique t3 0 +flyingscimitarCrypt 1017 flyingscimitar 0 FlyingScimitar flyingscimitar construct FlyingScimitar ST 1 2 3 4 6 1 12 45 87 flyingscimitar flyingscimitar 10 10 10 10 90 90 90 90 95 99 8 8 8 40 50 60 1 1 1 1 1 MonCharge seq_pinheadsmite 1 -50 -25 70 100 25 20 50 75 20 75 2 13 13 13 5 97 131 84 83 38 113 93 100 135 150 140 75 120 150 258 310 150 119 136 204 150 Flying Scimitar Flying Scimitar Flying Scimitar Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (N) Map H2H t3 Map Champ t3 Map Unique t3 0 +minion4Westmarch 1018 minion1 minion5 3 FireBoar minion4 minion Minion xx 1 2 5 7 10 2 36 60 81 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 35 35 1 1 1 1 1 100 85 75 -50 -40 -33 25 0 65 70 25 65 2 50 50 50 5 190 237 101 191 74 96 151 87 114 164 100 125 100 80 75 100 100 70 115 110 130 147 100 68 109 129 100 109 129 110 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +goatmanBastionWestmarch 1019 goatman1 goatman2 0 MoonClan goatman1 goatman Goatman GM 1 1 3 5 5 1 4 37 87 goatman goatman 10 13 13 13 75 75 80 10 10 9 80 80 80 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 50 25 50 45 85 25 2 5 5 5 5 110 137 51 91 76 126 89 100 130 60 90 75 130 85 126 158 60 77 116 142 85 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +zombie1Westmarch 1020 zombie1 zombie2 0 Zombie zombie1 zombie Zombie ZM 1 2 4 1 3 2 1 36 67 zombie zombieunique 10 13 13 13 30 40 50 10 15 20 20 25 30 1 1 1 1 1 1 100 75 50 -50 -40 -25 50 75 50 50 50 65 50 75 2 3 3 3 5 101 181 84 111 51 151 101 101 151 101 105 150 80 105 60 140 105 70 150 110 140 172 80 89 96 162 105 96 162 110 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +slinger1Westmarch 1021 slinger1 slinger2 0 Slinger slinger1 pantherwoman PantherJavelin PW 1 1 2 4 5 10 1 14 43 75 slinger slinger 10 13 13 13 70 70 70 70 70 70 12 12 12 10 10 10 15 15 15 20 21 25 pantherjav1 1 1 1 1 100 100 100 -50 -40 -33 10 0 25 25 75 25 2 15 15 15 5 54 87 58 67 51 121 94 55 85 95 80 50 85 145 102 123 95 68 81 108 145 A1 cold 5 20 40 15 52 86 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Map Miss t1 Map Champ t1 Map Unique t1 0 +siegebeast1Westmarch 1022 siegebeast1 siegebeast2 0 Siege Beast siegebeast1 siegebeast SiegeBeast ox 1 1 1 3 7 1 37 59 81 siegebeast siegebeast 10 13 13 13 25 25 25 50 60 65 1 2 3 15 15 15 1 2 3 50 50 50 100 100 100 1 1 1 1 1 Fixed Siege Beast Stomp A2 1 MonCharge seq_siegebeastcharge 1 100 100 100 -50 -40 -33 50 20 25 75 25 40 2 50 50 50 5 379 379 88 287 92 122 251 360 420 90 260 140 220 170 243 284 90 221 146 206 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +overseer1Westmarch 1023 overseer1 overseer2 0 OverSeer overseer1 overseer Overseer os 1 minion4Westmarch 1 2 3 1 2 4 4 1 33 58 80 overseer overseer 10 13 13 13 250 250 250 50 50 50 50 50 50 17 17 17 7 7 7 100 100 100 50 30 30 1 1 1 1 Cry Help S1 1 Healing Vortex S2 1 Overseer Whip A2 1 MonSmite seq_genericspawner 1 100 100 100 -50 -40 -33 20 25 120 20 40 40 3 43 43 43 5 380 380 84 121 62 120 126 101 205 93 150 190 90 125 60 110 135 90 160 105 165 193 90 106 113 153 135 113 153 334 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +succubus1Westmarch 1024 succubus1 succubus2 0 Succubusexp succubus1 succubus Succubus 0B 1 1 1 3 10 10 1 32 61 82 succubus succubus 10 13 13 13 90 91 93 50 25 10 50 50 50 15 20 20 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 Defense Curse S2 1 MonLowerRes S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 0 105 50 50 50 75 2 42 42 42 5 96 152 107 121 46 86 125 60 90 115 90 50 90 155 98 133 115 77 73 105 155 A2 mag 100 40 75 100 40 75 100 52 82 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map Miss t1 Map Champ t1 Map Unique t1 0 +AshenBoss 1025 fingermage1 fingermage2 0 AshenBoss AshenBoss fingermage Summoner FR 1 1 2 10 16 1 24 56 91 fingermage fingermage 14 10 10 10 85 93 98 5 5 10 63 63 75 40 40 45 120 100 60 33 20 10 5 8 11 40 40 40 1 1 1 1 1 1 1 Fire Ball Ashen Boss S1 1 Fire Nova S1 1 DiabLight S1 8 Blink S1 7 Slow Movement S1 20 66 0 0 0 40 40 50 50 20 20 50 50 50 50 0 24 24 24 5 153 211 85 110 51 119 92 80 110 120 135 55 120 120 5800 5800 120 600 55 120 120 Act 4 Wraith A Act 4 Champ A Act 4 Unique A Act 4 (N) Wraith A Act 4 (N) Champ A Act 4 (N) Unique A Map Boss T2 Map Boss T2 Map Boss T2 0 +lernaeanhydra2 1026 tentaclehead2 0 CisternBoss lernaeanhydra2 tentacle TentacleHead TE 1 lernaeanhydra1 1 2 2 1 1 0 0 0 20 50 89 tentaclehead tentaclehead 8 15 15 15 128 128 128 50 50 50 10 80 15 14 14 14 14 14 14 16 15 15 12 14 14 serpentfireball 1 1 1 1 Emerge S1 1 10 85 20 0 0 0 20 20 50 50 50 50 1 27 27 27 5 129 172 85 87 90 120 100 130 5500 5500 100 400 5000 Map Boss T2 Map Boss T2 Map Boss T2 0 +DungeonTest3 1027 radament 0 Radament radament sanctuaryboss demon Summoner RD 1 6 6 0 16 49 92 radament radament 10 10 10 10 85 93 98 15 15 15 55 55 55 125 125 125 75 75 75 33 20 10 20 20 20 40 40 40 mummy4 1 1 1 1 1 1 1 Molten Boulder seq_mummyres 40 Combustion seq_mummyres 20 Combustion seq_mummyres 4 Blink seq_mummyres 3 Howl Monster seq_mummyres 40 100 75 50 -50 -40 -33 40 50 60 60 50 60 80 0 17 17 17 5 498 498 63 218 73 155 94 73 155 125 500 500 120 315 100 150 130 70 155 160 500 500 120 315 100 150 130 70 155 160 A1 pois 25 181 272 1000 25 180 270 1000 25 180 270 1000 Radament Radament Radament Radament (N) Radament (N) Radament (N) Radament (H) Radament (H) Radament (H) 0 +blunderbore2Cistern 1028 blunderbore1 blunderbore3 1 Gorbelly blunderbore2 blunderbore blunderbore PinHead stun attack PN 1 1 3 4 4 1 20 49 87 pinhead pinhead 10 13 13 13 80 85 90 12 9 7 80 80 80 9 9 9 50 60 65 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 0 25 30 50 60 45 4 27 27 27 5 160 200 85 114 77 139 125 124 154 93 180 220 80 130 90 140 110 120 155 100 314 388 80 111 151 245 110 188 259 100 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +clawviper3Cistern 1029 clawviper1 clawviper4 2 Salamander clawviper3 clawviper ClawViper SD 1 2 3 5 12 1 18 46 87 clawviper clawviper 10 13 13 13 50 55 55 8 10 12 85 85 85 70 70 70 9 9 8 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 40 70 25 0 55 45 75 65 2 18 18 18 5 66 108 84 78 51 92 92 59 101 92 75 110 125 100 60 80 135 60 105 135 138 202 125 85 101 134 135 101 176 135 A1 fire 100 50 91 100 60 70 100 104 121 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +corruptrogue2Cistern 1030 corruptrogue1 corruptrogue3 1 VileHunter corruptrogue2 corruptrogue CorruptRogue CR 1 2 4 6 8 2 5 38 87 corruptrogue corruptrogue 10 13 13 13 70 80 90 12 9 7 80 85 90 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 50 33 0 25 2 18 18 18 5 62 101 84 78 51 126 91 60 100 95 95 55 110 130 110 244 95 81 92 185 130 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +mummy1Cistern 1031 mummy1 mummy2 0 DriedCorpse mummy1 mummy Mummy MM 1 2 4 3 3 1 13 43 87 mummy mummy 10 13 13 13 5 9 15 60 60 60 100 100 100 65 65 65 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 50 35 25 50 65 120 2 14 14 14 5 68 158 84 86 56 112 93 56 112 93 100 140 95 100 60 105 105 184 257 95 85 101 176 105 A1 pois 10 33 33 200 25 33 33 300 25 115 115 400 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +skmage_ltng1Cistern 1032 skmage_ltng1 skmage_ltng2 1 ReturnedMage skmage_ltng1 skeleton SkeletonMage SK 1 1 1 2 4 4 2 8 40 87 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage4 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 35 25 40 75 50 75 2 9 9 9 5 56 84 84 56 55 80 90 110 101 160 90 94 A1 ltng 100 40 150 100 40 200 100 69 346 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +frogdemon2Cistern 1033 frogdemon1 frogdemon3 1 Bog Creature voidFrog frogdemon FrogDemon FD 1 1 1 3 10 10 1 22 50 87 frogdemon frogdemon 10 13 13 13 70 75 90 20 25 30 50 65 80 50 60 70 25 40 55 12 12 12 14 12 9 9 9 9 frogfire 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 15 35 75 45 55 50 2 22 22 22 5 131 172 85 110 72 158 94 110 140 95 90 65 95 100 210 265 95 77 109 157 100 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +cr_archer2Cistern 1034 cr_archer1 cr_archer3 1 VileArcher cr_archer2 corruptrogue CorruptArcher CR 1 1 1 3 5 6 1 5 38 87 cr_archer cr_archer 10 13 13 13 70 75 80 75 88 91 12 10 9 25 35 45 20 20 20 12 12 12 cr_arrow2 1 1 1 1 1 100 100 100 -50 -40 -33 15 0 75 25 25 25 2 15 15 15 5 93 131 84 91 60 90 255 55 95 90 100 60 90 150 101 174 90 85 101 151 150 A1 pois 10 20 20 100 20 94 94 100 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +fingermage2Cistern 1035 fingermage1 fingermage3 1 Strangler fingermage2 fingermage FingerMage homing missiles FR 1 1 3 10 16 1 27 57 87 fingermage fingermage 10 13 13 13 60 60 60 60 75 85 60 60 60 40 40 40 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 1 FingerMageSpider S1 4 100 66 33 -50 -40 -25 50 50 60 60 60 105 50 75 75 45 2 27 27 27 5 152 209 84 120 53 124 93 80 110 120 135 55 120 120 155 210 120 115 92 202 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Map Wraith t2 Map Champ t2 Map Unique t2 0 +baboon4Ash 1036 baboon1 baboon5 3 DoomApe baboon4 baboon Baboon BB 1 2 3 7 13 1 22 52 89 baboon baboon 10 13 13 13 33 33 33 20 30 35 70 75 80 40 40 40 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 0 25 50 75 50 25 2 22 22 22 5 107 151 85 96 51 158 94 51 158 94 90 135 110 110 50 130 120 50 110 130 182 273 110 131 72 187 120 72 187 130 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +thornhulk3Ash 1037 thornhulk1 thornhulk4 2 Thrasher thornhulk3 thornhulk ThornHulk TH 1 2 3 3 3 1 23 52 89 thornhulk thornhulk 10 13 13 13 90 90 90 40 40 40 10 10 10 50 50 50 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 3 100 85 75 -50 -40 -33 25 0 0 40 25 75 4 23 23 23 5 153 248 85 123 87 147 92 74 147 92 190 230 140 130 90 160 105 75 150 120 352 433 140 152 130 230 105 130 230 120 A2 stun 100 7 100 7 100 7 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +pantherwoman6Ash 1038 pantherwoman1 1 SaberCat pantherwoman1 pantherwoman PantherWoman PW 1 2 4 9 12 1 14 60 89 pantherwoman pantherwoman 10 12 12 12 90 90 90 90 90 95 24 12 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 33 25 25 25 50 25 50 50 65 50 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 122 202 105 100 72 130 200 A1 cold 5 40 60 150 15 48 72 200 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +foulcrow3Ash 1039 foulcrow1 foulcrow4 2 BlackRaptor foulcrow3 foulcrow BloodHawk BK 1 3 5 5 5 2 16 45 89 foulcrow foulcrow 10 13 13 13 30 55 65 90 90 90 5 10 10 50 60 75 100 100 100 1 1 1 1 1 100 100 100 -50 -40 -33 60 80 0 45 65 50 45 65 2 17 17 17 5 21 45 13 37 37 64 94 20 45 120 40 70 110 115 134 155 120 58 101 158 115 A1 pois 15 10 33 100 25 12 39 100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +fetish3Ash 1040 fetish1 fetish4 2 Flayer fetish3 fetish Fetish FE 1 fetish3Ash 1 1 1 3 2 4 8 8 1 22 50 89 fetish fetish 10 13 13 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 45 15 75 33 130 50 2 22 22 22 5 66 107 85 79 72 108 94 55 80 125 75 60 95 95 111 162 125 94 86 137 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +slinger2Ash 1041 slinger1 slinger3 1 SpearCat slinger2 pantherwoman PantherJavelin PW 1 1 2 3 5 10 1 15 44 89 slinger slinger 10 13 13 13 70 70 70 75 75 75 11 11 11 15 15 15 14 14 14 20 22 26 pantherjav2 1 1 1 1 100 100 100 -50 -40 -33 10 15 25 75 65 25 2 16 16 16 5 54 88 58 67 51 121 94 55 85 95 80 50 85 145 111 164 95 100 72 122 145 A1 cold 5 20 40 15 36 72 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Map Miss t2 Map Champ t2 Map Unique t2 0 +deathmauler4Ash 1042 deathmauler1 deathmauler5 3 Death Mauler4 deathmauler4 deathmauler DeathMauler m5 1 4 5 5 5 1 40 61 89 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 20 20 20 80 80 80 1 1 1 1 DeathMaul seq_deathmaulerdig 4 100 85 75 -50 -40 -33 50 50 120 25 30 50 2 50 50 50 5 124 152 126 191 53 77 251 115 145 95 105 75 140 115 234 293 95 125 108 202 115 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +willowisp8Ash 1043 willowisp1 0 BurningSoul willowisp1 willowisp WillOWisp drains mana WW 1 1 1 1 15 15 1 42 61 89 willowisp willowisp 10 13 13 13 70 70 75 90 90 90 30 30 30 willowisplightningbolt2 1 1 1 1 1 1 MonChainLightning SC 2 -50 -33 0 70 80 70 100 50 40 25 45 50 40 60 2 28 28 28 5 44 87 84 82 34 151 93 45 85 115 120 45 115 120 91 172 115 146 63 145 120 A1 mana 90 16 72 90 100 200 90 220 330 SC ltng 100 5 120 100 5 160 100 5 200 Map Wraith t2 Map Champ t2 Map Unique t2 1 1 0 +lernaeanhydra1 1044 tentaclehead1 1 CisternBoss lernaeanhydra1 tentacle TentacleHead TE 1 1 1 0 0 0 18 48 89 tentaclehead tentaclehead 8 23 23 23 128 128 128 80 80 100 80 80 80 50 50 50 12 12 12 20 15 15 12 14 14 serpentspear 1 1 1 1 Emerge S1 1 100 85 75 -50 -40 -33 20 20 50 50 50 50 1 24 24 24 5 129 172 84 86 90 120 100 130 5000 5000 100 100 0 +maggotbaby1sewer 1045 maggotbaby1 maggotbaby2 0 SandMaggotYoung maggotbaby1 sandmaggot MaggotLarva SB 1 1 1 4 4 1 16 45 89 maggotbaby maggotbaby 9 13 13 13 75 78 80 20 17 14 60 60 60 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 20 20 20 20 20 80 2 17 17 17 5 21 65 84 55 28 46 94 20 45 50 30 25 45 70 125 145 50 30 60 80 70 A1 pois 5 15 15 50 5 30 30 50 0 +maggotegg1sewer 1046 maggotegg1 maggotegg2 0 SandMaggotEgg maggotegg1 MaggotEgg SE 1 maggotbaby1sewer 0 0 S1 1 1 1 1 1 16 45 89 maggotegg maggotegg 8 15 15 15 250 200 200 18 18 18 1 1 MaggotEgg seq_maggotegg 2 100 66 33 -50 -50 -50 2 77 98 84 50 60 80 25 25 80 100 25 25 0 +batdemon3mapmod 1047 batdemon1 batdemon4 2 ShriekingTerror batdemon3 batdemon BatDemon inflictsfear BT 1 2 3 9 9 1 22 51 89 batdemon batdemon 10 13 13 13 60 60 60 33 33 33 20 20 20 70 75 80 50 57 64 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 35 25 25 40 80 25 2 22 22 22 5 44 151 85 82 65 101 94 79 122 156 70 110 110 80 65 70 100 80 115 200 180 200 110 80 95 105 100 110 145 200 A2 ltng 75 64 100 75 5 180 75 10 320 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 1 1 0 +blunderbore1dungeon 1048 blunderbore1 blunderbore2 0 Blunderbore blunderbore1 blunderboreDungeon blunderbore PinHead stun attack PN 1 1 1 7 7 1 18 47 92 pinhead pinhead 10 13 13 13 75 80 85 15 12 10 60 70 70 12 12 12 40 50 75 1 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 55 145 25 50 145 4 24 24 24 5 160 200 84 114 76 134 125 117 151 92 180 220 80 130 90 140 110 120 155 100 425 475 80 260 180 280 110 240 310 100 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +batdemon3dungeon 1049 batdemon1 batdemon4 2 ShriekingTerror batdemon3 batdemon BatDemon inflictsfear BT 1 2 4 9 9 1 22 51 92 batdemon batdemon 10 13 13 13 60 60 60 33 33 33 20 20 20 70 75 80 50 57 64 8 8 8 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 25 145 145 50 2 22 22 22 5 44 151 85 82 65 101 94 79 122 156 70 110 110 80 65 70 100 80 115 200 380 420 110 190 130 140 100 160 230 200 A2 ltng 75 64 100 75 5 180 75 10 480 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 1 1 0 +bonefetish7dungeon 1050 bonefetish1 2 Undead SoulKiller bonefetish1 stygianDungeon undeadfetish Fetish FK 1 2 3 10 10 1 24 53 92 bonefetish bonefetish 10 13 13 13 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 60 33 50 75 33 75 2 24 24 24 5 65 107 85 79 69 101 92 65 105 135 125 65 105 90 410 435 135 250 130 210 90 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +putriddefiler1dungeon 1051 putriddefiler1 putriddefiler2 0 Putrid Defiler1 putriddefiler1 cursereduction putriddefiler OblivionKnight 45 1 1 1 2 8 7 1 35 61 92 putriddefiler putriddefiler 10 18 18 18 6 7 8 25 26 27 500 350 1500 50 50 2 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 1 DoomKnightMissile S1 22 Poison Nova S1 18 Bone Spear Putrid Defiler S1 8 MonLowRes S1 18 100 85 75 -50 -40 -33 33 33 33 50 50 50 50 50 80 50 145 50 100 2 50 50 50 5 114 189 126 149 32 91 126 80 130 65 110 30 90 110 460 490 65 220 120 180 110 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t3 Map Champ t3 Map Unique t3 1 0 +maggotbaby4bastion 1052 maggotbaby1 maggotbaby5 3 GiantLampreyYoung maggotbaby4 sandmaggot MaggotLarva SB 1 1 1 5 5 1 21 50 79 maggotbaby maggotbaby 9 13 13 13 88 91 93 17 14 11 85 85 85 15 15 15 20 20 20 1 1 1 1 100 75 50 -50 -40 -33 80 2 21 21 21 5 21 64 85 54 29 43 94 20 45 50 30 25 45 70 20 45 50 30 35 55 70 A1 pois 5 15 15 50 5 20 20 50 0 +maggotegg4bastion 1053 maggotegg1 maggotegg5 3 GiantLampreyEgg maggotegg4 MaggotEgg SE 1 maggotbaby4bastion 0 0 S1 1 1 1 1 1 21 50 79 maggotegg maggotegg 8 15 15 15 180 200 200 30 30 30 1 1 MaggotEgg seq_maggotegg 4 100 66 33 -50 -50 -50 2 78 96 85 50 60 80 25 25 60 80 25 25 0 +imp5bastion 1054 imp1 imp6 4 Imp5 imp5 imp Imp ip 1 1 3 4 7 7 1 38 63 85 imp imp 10 13 13 13 impmiss25 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 3 Imp Fire Missile A1 1 Imp Inferno SC 5 100 100 100 -50 -40 -33 25 80 25 33 2 37 37 37 5 45 65 84 137 45 65 110 120 45 65 110 102 A1 fire 100 40 70 100 80 110 100 120 160 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Map Cast t1 Map Champ t1 Map Unique t1 0 +minion5throne 1055 minion1 minion6 4 HellSpawn minion5 minion Minion xx 1 2 4 7 10 2 37 62 81 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 60 60 1 1 1 1 1 1 100 85 75 -50 -40 -33 35 25 50 50 45 75 2 50 50 50 5 190 237 101 197 74 96 151 92 114 163 100 125 100 80 75 100 100 70 115 110 96 128 100 68 105 158 100 105 158 110 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +act4hire 1056 act4hire 0 dummy act4hire human Hireable $2 1 1 1 8 14 0 21 54 79 mednpc mednpc 11 1 1 1 1 1 1 1 1 100 100 100 -50 -50 -50 10 0 +demonpillar 1057 trappedsoul1 0 DemonPillar demonpillar construct TrappedSoul $3 1 1 1 0 0 1 30 62 91 lightningorb lightningorb 8 60 60 60 50 60 70 15 17 20 70 75 80 12 10 8 1 Submerge S1 1 Emerge S2 1 DemonPillar Lightning A1 1 DemonPillar Fireball A1 1 30 30 50 50 50 50 30 30 50 50 50 50 20 20 50 50 50 50 0 46 46 46 1001 2021 34 944 500 600 5 944 1400 1400 200 1000 1 1 1 0 +ZharTheMad 1058 summoner 1 ZharTheMad zhar Summoner $4 1 1 1 0 0 8 30 62 91 zhar zhar 10 15 15 15 128 128 128 85 93 98 5 5 5 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 ZharBarrage S2 10 ZharStrike S2 5 Blink S1 1 ZharArmageddon S2 1 Cloak of Shadows S1 5 -50 -40 0 50 50 50 50 50 50 50 50 20 20 50 50 50 50 0 18 18 18 5 1032 1376 153 123 880 1120 85 293 6500 6500 85 2000 Map Boss T3 Map Boss T3 Map Boss T3 0 +unused 1059 gheed 0 Gheed gheed human Npc GH 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 1 1 1 1 1 2 0 +WarlordOfBlood 1060 doomknight3 2 WarlordOfBlood warlordOfBlood DoomKnight 0N 1 1 1 9 12 1 30 62 91 doomknight doomknight 10 8 8 8 96 96 96 1 1 1 1 MonCharge seq_warlordofbloodcharge 1 UberTalicWhirlwind seq_warlordofbloodwhirlwind 15 UberTalicBlaze seq_warlordofbloodsc 16 Bash A1 3 Blink seq_warlordofbloodsc 7 -50 -33 0 60 60 60 60 60 60 80 60 20 20 50 50 50 50 0 29 29 50 1400 1400 107 131 69 153 92 1600 1800 115 210 60 135 30000 6400 6400 400 2000 120 150 25000 Map Boss T3 Map Boss T3 Map Boss T3 0 +ZharMiniBossBigHead 1061 bighead1 4 ZharMiniBossBigHead bighead2 zharminibossbighead bighead Bighead BH 1 1 1 1 6 6 1 26 59 90 bighead bighead 10 13 13 13 86 100 100 40 40 40 0 30 40 60 70 80 ZharMiniBossBigHeadMissile 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 60 80 75 20 20 50 50 50 50 1 10 10 10 5 67 130 63 81 63 101 74 65 120 90 125 50 100 110 6500 6500 90 125 150 350 110 A2 ltng 100 75 110 100 140 180 200 320 400 A1 ltng 15 10 20 35 10 20 Act 1 Cast C Act 1 Champ C Act 1 Unique C Act 1 (N) Cast C Act 1 (N) Champ C Act 1 (N) Unique C Map Boss T3 Map Boss T3 Map Boss T3 0 +ZharMiniBossBaboon 1062 baboon1 1 ZharMiniBossBaboon baboon2 zharminibossbaboonprop baboon Baboon BB 1 1 1 7 12 1 26 59 90 baboon baboon 10 13 13 13 33 33 33 20 30 35 60 65 70 15 15 15 1 2 3 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 50 50 50 50 1 18 18 18 5 108 151 84 96 51 151 92 51 151 92 90 135 110 110 50 130 120 50 110 130 7000 7000 110 110 200 275 120 200 275 130 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map Boss T3 Map Boss T3 Map Boss T3 0 +ZharMiniBossCantor 1063 cantor1 0 ZharMiniBossCantor cantor1 zakarum ZakarumPriest ZP 1 1 1 1 6 6 1 26 59 90 cantor cantor 10 13 13 13 0 0 0 60 60 60 60 60 60 25 40 60 25 25 25 0 0 0 1 1 1 1 1 1 ZakarumHeal S1 1 ZharMiniBossCombustion S1 1 MonTeleport S1 1 ZharMiniBossMeteorBlizzard S1 1 100 100 100 -50 -40 -33 50 20 20 50 50 50 50 1 22 22 22 5 131 172 85 105 72 158 94 90 130 75 130 40 85 90 6000 6000 75 130 80 170 90 A1 ltng 45 28 57 45 30 60 45 30 150 Act 3 Cast A Act 3 Champ A Act 3 Unique A Act 3 (N) Cast A Act 3 (N) Champ A Act 3 (N) Unique A Map Boss T3 Map Boss T3 Map Boss T3 0 +GuardianOfFate 1064 regurgitator1 1 GuardianOfFate GuardianOfFate regurgitator Regurgitator CS 1 1 1 7 12 1 27 57 90 regurgitator regurgitator 10 13 13 13 1 1 1 1 1 1 Blink A1 1 Voidbolt A2 8 GuardianOfFateSummon A1 1 100 85 75 -50 -40 -33 40 40 60 60 60 60 0 27 27 27 5 209 283 84 150 89 148 93 240 320 95 140 85 145 105 5500 5500 95 140 125 215 105 Map Boss T3 Map Boss T3 Map Boss T3 0 +GuardianOfFateClone 1065 regurgitator1 1 GuardianOfFate GuardianOfFate regurgitator Regurgitator CS 1 1 1 7 12 1 27 57 90 regurgitator regurgitator 10 13 13 13 1 1 1 1 Blink A1 1 Voidbolt A2 1 100 85 75 -50 -40 -33 40 40 60 60 60 60 0 27 27 27 5 209 283 84 150 89 148 93 240 320 95 140 85 145 105 2000 2000 95 125 215 105 0 +pantherwoman1Zhar1 1066 pantherwoman1 pantherwoman2 0 Huntress pantherwoman1 pantherwoman PantherWoman PW 1 4 7 5 10 3 14 43 75 pantherwoman pantherwoman 10 13 13 13 70 70 70 70 75 80 8 8 12 6 6 6 0 25 50 1 1 1 1 1 1 100 100 100 -50 -40 -33 40 65 25 50 80 2 15 15 15 5 57 97 64 71 51 121 94 60 100 105 80 50 90 200 114 150 105 80 66 103 165 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +swarm4Zhar1 1067 swarm1 swarm5 3 HellSwarm swarm4 swarm Swarm drains stamina SW 1 1 2 8 8 2 22 52 81 swarm swarm 10 13 13 13 60 60 60 20 16 12 50 60 70 1 1 1 1 Swarm Move seq_swarmmove 1 -50 -40 -33 90 40 90 70 60 25 50 80 65 2 22 22 22 5 22 44 85 61 79 93 94 20 40 120 60 45 60 70 102 120 120 60 63 81 130 A1 stam 90 78 92 100 100 200 100 100 200 A1 fire 25 30 50 40 80 120 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Map Swarm t3 Map Champ t3 Map Unique t3 0 +cantor4Zhar1 1068 cantor1 cantor4 2 Heirophant cantor3 zakarum ZakarumPriest ZP 1 1 1 1 6 6 1 24 53 82 cantor cantor 10 13 13 13 35 35 35 8 8 8 60 70 80 35 50 70 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 3 ZakarumLightning S1 9 MonTeleport S1 1 MonBlizzard S1 3 100 100 100 -50 -40 -33 50 75 35 80 25 75 25 2 24 24 24 5 131 173 85 106 69 151 92 90 130 75 130 40 85 90 141 177 75 130 56 100 160 A1 cold 65 31 62 25 65 30 60 50 65 90 180 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +slinger2Zhar1 1069 slinger1 slinger3 1 SpearCat slinger2 pantherwoman PantherJavelin PW 1 1 2 4 5 10 3 15 44 77 slinger slinger 10 13 13 13 70 70 70 75 75 75 11 11 11 15 15 15 14 14 14 20 22 26 pantherjav2 1 1 1 1 100 100 100 -50 -40 -33 40 25 50 40 80 2 16 16 16 5 54 88 58 67 51 121 94 55 85 95 80 50 85 145 108 135 95 80 66 84 155 A1 ltng 5 20 40 15 60 120 Act 2 Miss A Act 2 Champ A Act 2 Unique A Act 2 (N) Miss A Act 2 (N) Champ A Act 2 (N) Unique A Map Miss t3 Map Champ t3 Map Unique t3 0 +blunderbore4Zhar1 1070 blunderbore1 blunderbore5 3 Urdar blunderbore4 blunderbore blunderbore PinHead PN 1 1 2 8 8 2 32 57 85 pinhead pinhead 10 13 13 13 90 95 97 7 7 7 95 95 95 5 5 5 65 65 70 1 1 1 1 1 1 100 100 100 -50 -40 -33 25 25 50 25 50 50 50 50 35 20 30 75 80 4 42 42 42 5 160 200 84 142 76 136 125 121 151 93 180 220 80 130 90 140 110 120 155 100 198 234 80 130 103 150 240 113 150 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +baboon3Zhar2 1071 baboon1 baboon4 2 JungleHunter baboon3 baboon Baboon BB 1 1 2 7 13 1 21 49 79 baboon baboon 10 13 13 13 33 33 33 20 30 35 65 70 75 25 25 25 1 2 3 1 1 1 1 1 1 100 100 100 -50 -40 -33 30 25 85 45 95 2 21 21 21 5 107 151 85 97 51 151 94 51 151 94 90 135 110 110 50 130 120 50 110 130 129 156 110 110 66 116 120 59 122 130 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +skeleton2Zhar2 1072 skeleton1 skeleton3 1 Returned skeleton2 skeleton Skeleton SK 1 2 5 4 4 2 6 38 69 skeleton skeleton 10 13 13 13 70 75 80 12 10 7 80 85 90 25 25 25 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 75 40 50 85 20 50 2 15 15 15 5 87 127 84 86 41 101 93 41 101 93 70 100 100 85 40 100 120 40 105 125 117 135 100 85 59 97 120 38 116 125 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +unraveler2Zhar2 1073 unraveler1 unraveler3 1 Guardian unraveler2 unraveler GreaterMummy raises undead GY 1 skeleton2Zhar2 3 5 1 1 2 2 1 18 46 77 unraveler unraveler 12 13 13 13 75 75 75 35 40 45 45 50 50 70 75 85 24 27 31 mummy2 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 2 100 66 33 -50 -33 -25 50 50 15 20 75 80 50 3 1 15 33 5 193 237 84 136 117 151 92 170 210 120 300 110 140 160 177 201 120 300 103 122 160 A1 pois 20 116 150 1100 20 33 33 1100 25 100 100 100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +frogdemon2Zhar2 1074 frogdemon1 frogdemon3 1 Bog Creature voidFrog frogdemon FrogDemon FD 1 1 1 3 10 10 1 22 50 80 frogdemon frogdemon 10 13 13 13 70 75 90 20 25 30 50 65 80 50 60 70 25 40 55 12 12 12 14 12 9 9 9 9 frogfire 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 65 65 50 50 65 2 22 22 22 5 131 172 85 110 72 158 94 110 140 95 90 65 95 100 141 159 95 90 75 94 100 A1 fire 100 80 120 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +succubus4Zhar2 1075 succubus1 succubus5 3 Hell Temptress succubus4 succubus Succubus 0B 1 1 1 3 13 13 1 40 63 84 succubus succubus 10 13 13 13 90 92 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 2 MonLowerRes S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 15 20 75 40 55 2 50 50 50 5 96 152 107 150 45 85 125 60 90 115 90 50 90 155 111 129 115 90 66 91 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +fallenshaman2Zhar3 1076 fallenshaman1 fallenshaman3 1 CarverShaman fallenshaman2 fallen FallenShaman raises Carvers FS 1 fallen2Zhar3 1 2 6 1 1 4 4 2 6 38 69 fallenshaman fallenshaman 12 13 13 13 55 60 65 70 75 75 100 90 80 24 24 26 15 15 15 1 1 1 1 1 ShamanFire seq_shamanresurrect 1 100 75 66 -50 -40 -33 30 60 15 30 80 50 55 25 2 7 7 7 5 61 101 84 81 41 121 93 55 90 75 150 45 90 105 105 126 75 150 56 84 105 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +vampire2Zhar3 1077 vampire1 vampire3 1 NightLord vampire2 vampire Vampire steals life VA 1 1 1 2 7 7 1 23 54 82 vampire vampire 11 13 13 13 65 65 65 25 50 60 25 26 26 25 28 39 5 5 5 1 1 1 1 1 1 VampireFireball SC 3 VampireFirewall SC 3 VampireMeteor SC 3 VampireMissile SC 3 100 85 75 -50 -40 -25 40 50 35 50 50 35 40 40 25 85 65 3 23 23 23 5 153 209 85 110 54 121 92 150 200 100 150 50 100 120 138 168 100 150 59 91 120 A1 cold 65 40 60 25 65 50 100 50 65 150 250 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +fallen2Zhar3 1078 fallen1 fallen3 1 Carver fallen2 fallen Fallen FA 1 fallen2Zhar3 1 1 2 4 2 4 5 5 2 5 38 68 fallen fallen 10 13 13 13 45 50 55 15 18 24 60 70 80 25 30 35 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 30 85 65 45 25 2 16 16 16 5 24 54 84 61 51 101 91 51 101 91 25 55 70 65 45 90 90 50 100 85 87 105 70 65 53 84 90 56 116 85 A1 cold 10 15 20 150 20 45 60 200 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +reanimatedhorde2Zhar3 1079 reanimatedhorde1 reanimatedhorde3 0 ReanimatedHorde reanimatedhorde2 zombie ReanimatedHorde re 1 2 4 1 5 2 33 62 82 reanimatedhorde reanimatedhorde 10 13 13 13 40 55 65 20 15 12 12 15 18 25 30 35 25 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 80 80 50 75 60 80 2 47 47 47 5 114 171 107 135 34 86 138 34 86 93 110 135 70 105 70 110 135 60 120 100 114 129 70 105 72 97 135 53 109 100 Act 5 H2H B Act 5 Champ A Act 5 Unique A Act 5 (N) H2H B Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +siegebeast2Zhar3 1080 siegebeast1 siegebeast3 0 CrushBiest siegebeast2 siegebeast SiegeBeast ox 1 1 1 3 8 1 38 60 81 siegebeast siegebeast 10 13 13 13 25 25 25 50 65 70 1 2 4 15 15 15 1 2 4 50 50 50 100 100 100 1 1 1 1 1 Fixed Siege Beast Stomp A2 2 MonCharge seq_siegebeastcharge 2 100 100 100 -50 -40 -33 50 50 45 20 50 2 50 50 50 5 379 379 88 295 88 121 251 360 420 90 260 140 220 170 216 252 90 260 116 166 170 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +vilemother3Warlord 1081 vilemother1 vilemother4 2 Grotesque vilemother3 vilekind VileMother VM 1 vilechild3Warlord 0 0 NU 1 1 7 7 1 30 57 85 vilemother vilemother 10 13 13 13 16 19 22 5 6 6 30 35 40 80 90 95 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 40 70 55 20 30 50 25 65 2 29 29 29 5 228 294 63 168 90 190 92 200 250 80 130 80 130 110 191 234 80 130 136 179 110 Act 4 Cast B Act 4 Champ B Act 4 Unique B Act 4 (N) Cast B Act 4 (N) Champ B Act 4 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +vilechild3Warlord 1082 vilechild1 vilechild4 2 GrotesqueWyrm vilechild3 vilekind VileDog VC 1 1 3 10 12 1 30 57 85 vilechild vilechild 9 13 13 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 40 70 25 20 55 40 35 70 2 47 47 47 5 55 84 84 89 48 74 151 50 70 70 40 40 70 85 153 170 70 40 101 127 85 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Map Cast t3 Map Champ t3 Map Unique t3 0 +suicideminion3Warlord 1083 suicideminion1 suicideminion4 2 ConsumedIceBoar suicideminion3 minion SuicideMinion xy 1 1 1 10 10 2 35 60 80 suicideminion suicideminion 11 13 13 13 15 15 15 5 5 5 50 60 70 4 4 4 1 1 1 1 100 85 75 -50 -40 -33 35 35 25 30 15 50 15 2 50 50 50 5 38 57 84 198 100 150 20 40 85 70 100 150 51 85 85 70 175 263 Map H2H t3 Map Champ t3 Map Unique t3 0 +imp5Warlord 1084 imp1 imp6 4 Imp5 imp5 imp Imp ip 1 1 3 5 7 7 1 38 63 85 imp imp 10 13 13 13 impmiss25 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 3 Imp Fire Missile A1 1 Imp Inferno SC 5 100 100 100 -50 -40 -33 40 35 70 65 40 50 2 37 37 37 5 45 65 84 137 45 65 110 120 149 166 110 120 A1 fire 100 40 70 100 80 110 100 135 210 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Map Cast t3 Map Champ t3 Map Unique t3 0 +deathmauler1Warlord 1085 deathmauler1 deathmauler2 0 Death Mauler1 deathmauler1 deathmauler DeathMauler m5 1 2 3 4 4 1 32 58 80 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 15 15 15 50 50 50 1 1 1 1 DeathMaul seq_deathmaulerdig 1 100 85 75 -50 -40 -33 25 50 25 30 65 50 65 2 50 50 50 5 123 152 126 153 51 76 251 115 145 95 105 75 140 115 123 234 95 105 131 188 115 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +skeleton5Warlord 1086 skeleton1 skeleton6 4 Horror skeleton5 skeleton Skeleton SK 1 3 6 5 5 2 14 44 78 skeleton skeleton 10 13 13 13 99 99 99 5 5 5 95 99 99 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 20 60 50 40 80 75 30 50 30 50 60 65 2 30 30 30 5 94 131 84 85 41 101 94 31 101 94 70 100 100 85 40 100 120 40 105 125 170 196 100 85 101 153 120 101 153 115 A2 ltng 60 30 60 60 30 50 60 60 100 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +doomknight1Warlord2 1087 doomknight1 dkfig1 0 DoomKnight doomknight1 doomknight DoomKnight Fighter UM 1 2 3 6 7 1 24 56 82 doomknight doomknight 10 13 13 13 90 95 100 10 5 5 80 85 90 10 10 10 1 1 1 1 1 1 1 100 75 33 -50 -33 -25 80 20 20 40 100 20 20 40 30 25 60 20 20 50 2 1 24 24 24 5 131 173 107 111 69 151 92 120 150 115 100 70 150 180 179 204 115 100 88 158 180 A1 rand 60 31 62 50 60 30 60 75 60 45 90 100 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +regurgitator2Warlord2 1088 regurgitator1 regurgitator3 1 CorpseSpitter regurgitator2 regurgitator Regurgitator eats and spits corpses CS 1 1 2 7 12 1 27 57 84 regurgitator regurgitator 10 13 13 13 80 80 80 20 20 20 50 50 50 10 20 30 6 6 7 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 2 100 85 75 -50 -40 -33 30 25 55 20 75 2 27 27 27 5 209 283 84 150 89 148 93 240 320 95 140 85 145 105 221 289 95 140 127 179 105 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +reanimatedhorde1Warlord2 1089 reanimatedhorde1 reanimatedhorde2 0 RotWalker reanimatedhorde1 zombie ReanimatedHorde re 1 1 3 1 5 2 31 61 81 reanimatedhorde reanimatedhorde 10 13 13 13 30 45 55 20 15 12 12 15 18 20 25 30 20 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 Self-resurrect S1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 70 70 50 20 40 30 65 40 2 45 45 45 5 115 171 107 128 31 86 139 31 86 93 110 135 70 105 70 110 135 60 120 100 153 183 70 105 88 123 135 88 140 100 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +doomknight3Warlord2 1090 doomknight3 dkmag1 0 OblivionKnight doomknight3 doomknight OblivionKnight Mage UM 1 1 doomknight1Warlord2 2 3 1 1 8 7 1 30 58 85 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 3 MonBoneArmor S1 6 MonBoneSpirit S1 2 MonCurseCast S2 3 100 75 33 -50 -33 -25 60 60 60 60 60 60 80 60 35 25 60 60 55 45 2 29 29 29 5 130 171 107 131 69 153 92 120 150 115 210 60 135 160 166 191 115 210 79 144 160 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +bloodlord1Warlord2 1091 bloodlord1 bloodlord2 0 Blood Lord1 bloodlord1 bloodlord BloodLord L3 1 1 2 9 9 1 33 61 82 bloodlord bloodlord 10 13 13 13 90 90 90 85 85 85 50 55 60 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -50 -40 -30 25 65 55 30 2 50 50 50 5 284 380 126 240 67 148 189 67 148 189 240 300 130 210 80 150 180 80 150 180 221 272 130 210 96 158 180 96 158 180 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +WarlordMiniBossShaman 1092 fallenshaman1 fallenshaman2 0 DamnedCavesMiniBoss fallenshaman1 fallen Summoner FS 1 1 1 4 4 1 38 63 91 fallenshaman fallenshaman 11 13 13 13 85 93 98 5 5 5 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 1 1 1 1 Fire Ball Ashen Boss A2 1 WarlordMiniBoss1BaalFire A2 1 WarlordMiniBoss1BaalFire A2 1 VampireFirewall A2 80 MonWeaken A2 4 100 75 66 -50 -40 -33 25 50 50 30 80 40 40 80 0 4 4 4 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 6000 6000 95 150 45 90 105 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Map Boss T3 Map Boss T3 Map Boss T3 0 +WarlordMiniBossDefiler 1093 putriddefiler1 putriddefiler4 2 WarlordOfBloodMiniBoss putriddefiler3 warlordminibossdefilerprop putriddefiler Summoner 45 1 bloodlord1Warlord2 1 4 6 1 1 6 6 1 38 63 91 putriddefiler putriddefiler 10 10 10 10 85 93 98 5 5 5 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 1 1 1 1 1 1 Bone Spear Serpent S1 12 Chain Lightning S1 56 Poison Nova S1 20 Chain Lightning S1 56 Decrepify S1 6 Blink S1 1 100 85 75 -50 -40 -33 33 33 33 50 50 50 50 50 20 60 40 80 80 40 0 50 50 50 5 115 190 126 162 30 88 125 80 130 65 110 30 90 110 6000 6000 85 110 30 90 110 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Map Boss T3 Map Boss T3 Map Boss T3 0 +Iskatu 1094 iskatu 4 Iskatu iskatu human Summoner !8 1 IskatuVermin 1 10 14 1 1 8 12 0 18 55 90 megademon megademon 14 10 10 10 120 93 98 5 5 5 63 63 63 40 50 40 120 100 80 10 11 40 1 1 1 1 1 IskatuMagicOrb S1 2 Imp Teleport S1 2 IskatuMagicOrb S1 2 IskatuHurricane S1 1 IskatuBlizzard S1 1 100 75 20 -50 -40 -33 50 50 50 50 50 50 50 30 20 50 50 50 50 0 18 18 18 5 1032 1376 153 123 880 1120 85 293 7000 7000 85 293 Map Boss T3 Map Boss T3 Map Boss T3 0 +IskatuVermin 1095 sandleaper1 sandleaper3 1 IskatuVermin sandleaper2 sandleaper SandLeaper SL 1 2 3 8 8 1 15 44 90 sandleaper sandleaper 10 13 13 13 20 21 23 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 2 100 85 0 -50 -40 -33 50 30 30 20 50 50 50 50 2 16 16 16 5 66 194 84 94 61 121 94 61 121 94 40 80 130 95 65 120 100 55 100 90 500 500 130 95 100 180 200 80 150 200 A1 pois 5 10 10 50 10 30 30 75 0 +Rakanoth 1096 rakanoth 0 Rakanoth rakanoth demon Duriel SR 1 1 1 10 15 0 99 55 90 sandraider sandraider 10 4 4 4 70 70 70 25 25 25 270 70 70 1 1 1 1 1 1 RakanothStrike A2 1 RakanothStrike A2 1 Mind Blast A2 10 100 100 20 -20 -20 -20 20 20 50 20 50 50 50 50 50 20 50 50 50 50 0 1 0 25 50 5 4757 4757 85 1655 140 180 201 140 160 252 1 2 200 4757 4757 120 1655 140 190 110 115 165 150 40 50 135 6000 6000 120 1655 110 185 4500 85 124 4500 40 50 135 A2 stun 100 15 100 20 100 30 Map Boss T3 Map Boss T3 Map Boss T3 0 +thornhulk4FallenGardens 1097 thornhulk1 thornhulk4 3 Thrasher thornhulk3 thornhulk ThornHulk TH 1 2 3 3 3 1 23 52 88 thornhulk thornhulk 10 13 13 13 90 90 90 40 40 40 10 10 10 50 50 50 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 3 100 85 75 -50 -40 -33 25 40 50 80 4 23 23 23 5 153 248 85 123 87 147 92 74 147 92 190 230 140 130 90 160 105 75 150 120 440 541 140 130 144 255 105 120 240 120 A2 stun 100 7 100 7 25 7 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +mosquito4FallenGardens 1098 mosquito1 2 BloodWing mosquito5 mosquito Mosquito drains mana and stamina MO 1 2 4 6 12 1 24 53 88 mosquito mosquito 10 13 13 13 40 50 55 40 50 60 5 5 5 1 1 1 1 Mosquito seq_mosquitoskill 1 100 75 50 -50 -40 -33 25 50 33 45 2 24 24 24 5 21 107 85 74 51 119 92 20 100 95 75 50 95 90 100 150 95 95 80 124 90 A1 stam 90 500 562 100 500 600 100 375 450 Swarm 2 Act 3 Champ B Act 3 Unique B Swarm 2 (N) Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +councilmemberFallenGardens 1099 councilmember1 councilmember3 2 Bog Creature councilmember2 councilmember2 councilmember HighPriest HP 1 1 2 8 12 1 25 56 88 councilmember councilmember 11 12 12 12 60 60 60 30 30 15 125 100 75 35 40 40 75 75 75 11 11 11 13 13 13 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 3 ZakarumHeal S1 3 100 85 66 -50 -33 -25 50 45 50 45 35 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 161 210 110 150 90 165 140 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Map Cast t3 Map Champ t3 Map Unique t3 0 +imp5FallenGardens 1100 imp1 imp6 5 Imp5 imp5 imp Imp ip 1 1 3 7 7 7 1 38 63 88 imp imp 10 13 13 13 impmiss25 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 4 Imp Fireball S2 6 Imp Fire Missile A1 4 Imp Inferno SC 8 100 100 100 -50 -40 -33 65 35 70 65 40 2 37 37 37 5 45 65 84 137 45 65 110 120 175 195 110 120 A1 fire 100 40 70 100 80 110 100 175 280 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Map Cast t3 Map Champ t3 Map Unique t3 0 +reanimatedhorde3FallenGardens 1101 reanimatedhorde1 reanimatedhorde4 2 ProwlingDead reanimatedhorde3 zombie ReanimatedHorde re 1 2 4 2 5 2 35 63 88 reanimatedhorde reanimatedhorde 10 13 13 13 50 65 70 20 15 12 12 15 18 25 35 40 25 25 25 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 Self-resurrect S1 1 100 75 66 -50 -33 -25 90 90 45 50 65 60 2 50 50 50 5 114 171 107 143 32 87 139 32 87 93 110 135 70 105 70 110 135 60 120 100 240 264 70 105 126 180 135 80 175 190 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +fingermage2FallenGardens 1102 fingermage1 fingermage3 2 Strangler fingermage2 fingermage FingerMage homing missiles FR 1 1 3 10 16 1 27 57 88 fingermage fingermage 10 13 13 13 60 60 60 60 75 85 60 60 60 40 40 40 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 1 FingerMageSpider S1 7 100 66 33 -50 -40 -25 50 50 60 60 60 80 60 25 75 45 2 27 27 27 5 152 209 84 120 53 124 93 80 110 120 135 55 120 120 140 180 120 135 88 192 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Map Wraith t3 Map Champ t3 Map Unique t3 0 +KanemithBoss 1103 snowyeti1 2 KanemithBoss KanemithBoss fingermageboss snowyeti Brute io 1 1 1 16 16 1 43 63 92 brute brute 10 10 10 10 0 0 0 90 93 97 40 60 60 1 1 1 1 1 1 KanemithBossBlaze A1 1 KanemithFirestorm A1 1 KanemithShockWeb A2 1 100 100 20 -15 -10 0 75 85 50 50 90 90 90 90 4 50 50 40 5 189 228 107 215 34 86 138 41 97 92 155 210 85 110 65 115 95 75 110 85 13000 13000 110 4000 170 220 20000 170 220 20000 A1 stun 100 74 88 200 100 75 100 200 65 100 200 200 UberAncients UberAncients UberAncients 0 +RadamentBoss 1104 radamentboss 2 RadamentBoss RadamentBoss fingermageboss demon GreaterMummy RD 1 1 1 2 2 0 16 49 92 radament radament 14 6 6 6 85 85 85 45 50 55 55 55 55 85 90 95 24 27 31 1 1 1 1 1 RadamentBossRoyalFire seq_mummyres 1 Imp Teleport seq_mummyres 1 RadamentBossMeteor seq_mummyres 25 Bone Spear A1 23 100 75 20 -50 -40 0 40 50 60 60 50 50 90 90 90 90 4 17 17 45 5 498 498 63 218 73 155 94 73 155 125 500 500 120 315 100 150 130 70 155 160 16500 16500 120 4000 180 230 20000 180 230 20000 A1 pois 25 181 272 1000 25 180 270 1000 25 180 270 1000 UberAncients UberAncients UberAncients 0 +SharpToothBoss 1105 overseer1 1 SharpToothBoss SharpToothBoss fingermageboss overseer Overseer os 1 SharpToothMinion 1 5 8 1 1 5 5 1 36 61 90 overseer overseer 10 8 8 8 250 250 250 60 60 60 50 50 50 17 17 17 7 7 7 100 100 100 50 50 50 1 1 1 1 1 SharptoothArmageddon S1 1 SharptoothChainPoison S2 1 SharptoothChainPoison S2 1 MonSmite seq_genericspawner 1 100 100 20 -50 -40 0 50 50 90 90 90 90 4 47 47 40 5 379 379 84 131 61 118 125 101 201 94 150 190 90 125 60 110 135 90 160 105 15000 15000 90 4000 160 200 20000 160 200 20000 UberAncients UberAncients UberAncients 0 +voidKnightCold 1106 doomknight3 2 VoidKnight voidknightCold rathmaminion doomknight OblivionKnight Mage UM 1 1 1 1 8 7 1 30 58 85 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 100 100 100 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 1 DoomKnightMissile S1 21 DoomKnightMissile S1 21 DoomKnightMissile S1 21 MonCurseCast S2 3 -50 -33 -25 60 60 60 60 60 60 80 60 50 50 75 75 50 20 2 29 29 50 130 171 107 131 69 153 92 120 150 115 210 60 135 30000 500 500 115 3000 200 250 25000 0 +voidKnightPhys 1107 doomknight3 2 VoidKnight voidknightPhys rathmaminion doomknight OblivionKnight Mage UM 1 1 1 1 8 7 1 30 58 85 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 100 100 100 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 1 DoomKnightMissile S1 21 DoomKnightMissile S1 21 DoomKnightMissile S1 21 MonCurseCast S2 3 -50 -33 -25 60 60 60 60 60 60 80 60 50 50 75 75 50 20 2 29 29 50 130 171 107 131 69 153 92 120 150 115 210 60 135 30000 500 500 115 3000 200 250 25000 0 +SharpToothMinion 1108 minion1 minion2 0 SharpToothMinion minion1 minion Minion xx 1 2 4 7 10 2 31 58 90 minion minion 10 13 13 13 70 75 80 15 13 10 50 55 60 15 15 15 50 50 50 1 1 1 1 1 100 85 20 -50 -40 -33 25 50 25 20 20 50 50 50 50 2 50 50 35 5 190 238 101 167 76 96 151 91 111 162 100 125 100 80 75 100 100 70 115 110 1000 1000 100 0 100 145 20000 100 145 20000 A1 fire 60 200 300 0 +skeleton2ruins 1109 skeleton1 skeleton3 1 Returned skeleton2 skeleton Skeleton SK 1 2 3 4 4 2 6 38 69 skeleton skeleton 10 13 13 13 70 75 80 12 10 7 80 85 90 25 25 25 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 75 33 25 25 35 75 75 2 15 15 15 5 87 127 84 86 41 101 93 41 101 93 70 100 100 85 40 100 120 40 105 125 100 140 100 72 50 120 120 50 125 125 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +fetishblowSpider 1110 fetishblow3 fetishblow4 2 Flayer fetishblow3 fetish FetishBlowgun FC 1 1 fetishblowSpider 1 1 2 2 2 2 8 8 1 22 50 88 fetishblow fetishblow 10 13 13 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 0 25 75 80 50 75 2 29 29 29 5 66 107 85 65 15 33 125 45 75 110 90 20 33 110 125 165 110 77 70 80 110 A1 pois 7 10 10 25 12 30 100 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map Miss t1 Map Champ t1 Map Unique t1 0 +wraithMapMod 1111 wraith1 wraith2 0 Ghost wraith1 wraith Wraith drains mana WR 1 1 2 5 5 1 7 38 87 wraith wraith 10 13 13 13 50 60 60 12 10 8 70 75 80 1 1 1 1 1 1 1 100 66 33 -50 -33 0 20 50 30 60 50 50 50 65 50 50 2 8 8 8 5 83 165 84 93 61 121 94 65 90 130 105 60 105 95 110 142 130 105 88 127 95 A1 mana 40 60 100 40 100 200 40 100 200 Act 1 Wraith B Act 1 Champ B Act 1 Unique B Act 1 (N) Wraith B Act 1 (N) Champ B Act 1 (N) Unique B Map Wraith t1 Map Champ t1 Map Unique t1 0 +Lucion 1112 lucion 0 Lucion Lucion Lucion demon Overseer $7 1 1 1 7 10 1 18 47 110 duriel duriel 10 9 9 9 128 128 128 25 45 65 90 50 30 15 25 1 1 1 1 1 1 LucionBlink S2 21 LucionNova S2 21 LucionBoneWave S1 21 LucionPunish S1 21 LucionDash seq_luciondash 1 5 5 5 0 0 0 50 50 75 75 75 75 50 50 75 75 75 75 30 20 30 30 30 30 0 1 15 15 15 6427 6427 87 3462 77 197 313 113 257 251 6427 6427 140 3462 100 190 215 110 230 200 24000 24000 70 9000 370 500 215 370 500 200 0 +LucionControl 1113 lucioncontrol 0 LucionControlName mephistospirit Overseer M6 1 1 1 0 0 0 24 55 110 12 12 12 128 128 128 13 15 6 6 1 1 1 LucionRoyalFire seq_lucioncontrolsc 21 -50 -40 -33 90 90 90 90 90 70 90 90 90 90 90 90 40 90 90 90 90 90 2 5 1267 503 144 219 125 140 200 125 140 200 125 0 +LucionSpawn 1114 lucionspawn 0 LucionSpawnName LucionSpawn dcloneminion vilekind VileDog VC 1 2 2 8 10 1 34 61 110 vilechild vilechild 10 13 13 13 128 128 128 80 85 90 10 10 10 80 85 90 1 1 1 1 1 3 3 3 -50 -40 -33 30 20 30 30 30 30 2 44 44 44 5 65 106 84 5 28 60 125 35 65 85 5 100 130 80 650 650 60 3000 100 160 120 100 160 125 A1 cold 100 200 300 0 +LucionSpawnRanged 1115 lucionspawnranged 0 LucionSpawnRangeName imp1 dcloneminion imp Imp 45 1 1 3 4 7 7 1 31 58 110 imp imp 11 13 13 13 128 128 128 25 25 25 14 14 14 10 10 10 12 12 12 impmiss21 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 20 Imp Fire Missile A1 1 Imp Inferno SC 1 3 3 3 -50 -40 -33 30 20 30 30 30 30 2 30 30 30 5 45 65 84 113 45 65 110 120 450 450 50 3000 130 180 115 A1 fire 100 40 70 100 80 110 100 180 280 0 +diabloMap 1116 diabloMap 0 Diablo diablo demon Diablo DI 1 1 1 6 6 1 40 62 94 diablo diablo 14 12 12 12 1 1 1 1 1 1 1 DiabLight SC 3 DiabCold S2 4 DiabFire S1 5 DiabWall S3 3 DiabRun seq_diablorun 5 PrimeFirewall S3 8 DiabPrison S3 1 100 50 20 -25 -15 -10 33 33 33 50 50 50 50 50 45 50 50 50 50 0 1 25 40 50 5 5784 5784 87 3462 77 197 313 113 257 251 6427 6427 140 3462 180 220 215 190 250 200 2500 2500 140 3462 180 220 215 190 250 200 Diablo Diablo Diablo Diabloq Diablo (N) Diablo (N) Diablo (N) Diabloq (N) Diablo (H) Diablo (H) Diablo (H) Diabloq (H) 1 0 +baalcrabMap 1117 baalcrabMap 0 Baal Crab baalcrab demon BaalCrab 42 1 1 1 6 6 1 60 75 99 baalcrab baalcrab 14 12 12 12 1 1 1 1 1 1 1 Baal Nova S3 1 Baal Inferno seq_baalinferno 1 Baal Tentacle S2 1 Baal Cold Missiles A1 1 Baal Teleport A1 1 Defense Curse S3 3 Blood Mana S3 3 100 50 20 -15 -15 -15 33 33 33 50 50 50 50 50 50 50 50 50 50 0 1 40 45 55 5 6336 6336 87 6460 106 179 251 136 271 376 6336 6336 150 6460 120 180 250 135 240 250 6336 6336 150 6460 150 190 250 165 240 250 A1 fire 0 100 100 150 100 120 200 A2 frze 0 100 100 160 500 100 120 160 1000 Baal Baal Baal Baalq Baal (N) Baal (N) Baal (N) Baalq (N) Baal (H) Baal (H) Baal (H) Baalq (H) 1 0 +mephistoMap 1118 mephistoMap 0 Mephisto mephisto mephisto demon Mephisto MP 1 1 1 8 8 1 26 59 87 mephisto mephisto 14 6 6 6 40 46 15 20 25 25 33 33 25 33 33 1 1 1 1 1 1 1 1 PrimeLightning A2 6 PrimeBolt A2 6 PrimePoisonNova A2 7 MephistoMissile A2 5 MephFrostNova A2 1 MonBlizzard A2 5 100 -25 -15 -10 33 33 25 50 50 50 25 50 20 50 75 75 75 75 0 1 20 40 50 5 4556 4556 124 2131 295 442 251 5695 5695 160 2131 160 220 200 1471 1471 160 2131 160 220 200 Mephisto Mephisto Mephisto Mephistoq Mephisto (N) Mephisto (N) Mephisto (N) Mephistoq (N) Mephisto (H) Mephisto (H) Mephisto (H) Mephistoq (H) 0 +durielMap 1119 durielMap 0 Duriel duriel demon Duriel DU 1 1 1 10 15 1 22 55 88 duriel duriel 15 15 15 5 5 6 33 33 33 50 50 50 1 1 1 1 1 1 1 MonCharge seq_durielcharge 5 MonJab seq_durieljab 15 MonSmite seq_durielsmite 7 MonHolyFreeze NU 1 100 100 100 -20 -20 -20 20 20 50 20 50 50 75 50 50 33 75 75 95 75 0 1 0 25 50 5 4757 4757 85 1655 140 180 201 140 160 252 1 2 200 4757 4757 120 1655 140 190 110 115 165 150 40 50 135 1295 1295 120 1655 140 190 110 115 165 150 40 50 135 A2 stun 100 15 100 20 100 30 Duriel Duriel Duriel Durielq Duriel (N) Duriel (N) Duriel (N) Durielq (N) Duriel (H) Duriel (H) Duriel (H) Durielq (H) 0 +andarielMap 1120 andarielMap 0 Andariel andariel demon Andariel AN 1 1 1 8 8 1 12 49 85 andariel andariel 14 9 9 9 30 35 35 10 8 6 30 32 34 50 55 60 1 1 1 1 1 1 1 AndrialSpray seq_andarielspray 1 AndyPoisonBolt A1 1 100 66 33 -25 -15 0 -50 50 50 80 -50 50 50 50 66 -50 66 66 66 0 1 0 20 40 5 2562 2562 84 916 76 238 153 2562 2562 110 1492 180 220 200 1471 1471 110 1492 200 240 470 A1 pois 100 33 33 30 100 60 33 33 100 33 33 225 Andariel Andariel Andariel Andarielq Andariel (N) Andariel (N) Andariel (N) Andarielq (N) Andariel (H) Andariel (H) Andariel (H) Andarielq (H) 0 +DemonRoadBoss 1121 deathmauler1 4 DemonRoadBoss DemonRoadBoss deathmauler Summoner m5 1 painworm1DemonRoadBoss 1 12 12 4 5 5 10 1 38 60 90 deathmauler deathmauler 10 9 9 10 85 93 99 5 5 35 63 63 63 40 40 40 120 100 60 33 20 10 5 8 40 40 40 40 1 1 1 1 1 1 EruptionDemonRoadBoss seq_deathmaulerdig 3 RathmaPrison seq_deathmaulerdig 1 EruptionDemonRoadBoss seq_deathmaulerdig 3 MonDecrepify seq_deathmaulerdig 1 EruptionDemonRoadBoss seq_deathmaulerdig 3 20 20 20 -50 -40 -33 20 20 50 50 50 50 2 50 50 50 5 124 152 126 180 51 76 251 115 145 95 105 75 140 115 7000 7000 95 500 172 286 8000 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map Boss T3 Map Boss T3 Map Boss T3 0 +SkovosBoss 1122 cantor1 0 SkovosBoss SkovosBoss zakarum Summoner ZP 1 zealot2SkovosBoss 1 6 6 1 1 6 14 1 22 50 90 cantor cantor 10 15 15 14 85 93 65 5 5 5 55 55 55 200 200 200 83 83 83 33 20 10 20 20 20 40 40 40 1 1 1 1 1 1 Meteor S1 7 Holy Nova S1 17 Meteor S1 7 Volcano S1 8 Meteor S1 7 3 20 20 20 -50 -40 -33 50 20 20 50 50 50 50 2 22 22 22 5 131 172 85 105 72 158 94 90 130 75 130 40 85 90 6850 6850 75 500 120 170 8000 A1 ltng 45 28 57 45 30 60 45 60 120 Act 3 Cast A Act 3 Champ A Act 3 Unique A Act 3 (N) Cast A Act 3 (N) Champ A Act 3 (N) Unique A Map Boss T3 Map Boss T3 Map Boss T3 0 +wraith3DemonRoad 1123 wraith1 wraith4 2 Specter wraith3 wraith Wraith drains mana WR 1 2 3 6 6 1 19 48 79 wraith wraith 10 15 14 13 70 80 80 8 6 4 80 85 90 1 1 1 1 1 1 1 100 66 33 -50 -33 0 40 50 50 60 20 30 35 45 60 75 2 19 19 19 5 86 173 84 92 62 101 93 65 90 130 105 60 105 95 170 226 130 95 106 187 95 A1 mana 50 38 69 50 100 200 50 200 300 Act 2 Wraith C Act 2 Champ C Act 2 Unique C Act 2 (N) Wraith C Act 2 (N) Champ C Act 2 (N) Unique C Map Wraith t3 Map Champ t3 Map Unique t3 0 +succubus4DemonRoad 1124 succubus1 succubus5 3 Hell Temptress succubus4 succubus Succubus 0B 1 1 1 3 13 13 1 40 63 84 succubus succubus 10 15 14 13 90 92 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 2 MonLowerRes S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 0 25 75 50 50 35 2 50 50 50 5 96 152 107 150 45 85 125 60 90 115 90 50 90 155 134 201 115 81 89 160 155 A2 mag 100 40 75 100 40 75 100 227 292 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +blunderbore2DemonRoad 1125 blunderbore1 blunderbore3 1 Gorbelly blunderbore2 blunderbore blunderbore PinHead stun attack PN 1 1 2 4 4 1 20 49 80 pinhead pinhead 10 15 14 13 80 85 90 12 9 7 80 80 80 9 9 9 50 60 65 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 25 25 50 65 75 20 4 27 27 27 5 160 200 85 114 77 139 125 124 154 93 180 220 80 130 90 140 110 120 155 100 352 441 80 117 160 248 110 198 255 100 112 198 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +clawviper1DemonRoad 1126 clawviper1 clawviper2 0 TombViper clawviper1 clawviper ClawViper SD 1 1 2 4 4 1 11 43 75 clawviper clawviper 10 15 14 13 40 45 45 8 10 12 75 75 75 50 50 50 15 10 10 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 15 20 45 35 50 50 2 12 12 12 5 67 109 84 78 51 88 92 63 101 92 75 110 125 100 60 80 135 60 105 135 167 246 125 90 106 142 135 98 173 135 A1 fire 100 50 87 100 60 70 100 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +unraveler1DemonRoad 1127 unraveler1 unraveler2 0 HollowOne unraveler1 unraveler GreaterMummy raises undead GY 1 skeleton2DemonRoad 2 4 1 1 2 2 1 15 44 79 unraveler unraveler 12 15 14 13 70 70 70 30 35 40 40 45 50 60 70 80 24 27 31 mummy1 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 1 100 66 33 -50 -33 -25 50 50 115 20 40 120 20 50 3 1 15 33 5 194 238 84 136 121 161 94 170 210 120 300 110 140 160 336 425 120 270 196 248 160 A1 pois 15 120 160 1000 15 33 33 1000 15 1000 Act 2 Cast A Act 2 Champ A Act 2 Unique A Act 2 (N) Cast A Act 2 (N) Champ A Act 2 (N) Unique A Map Cast t3 Map Champ t3 Map Unique t3 0 +skmage_fire1DemonRoad 1128 skmage_fire1 skmage_fire2 1 ReturnedMage skmage_fire1 skeleton SkeletonMage SK 1 1 2 4 4 4 2 8 39 69 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage3 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 30 15 120 25 40 75 2 9 9 9 5 56 84 84 56 55 80 90 110 160 216 90 99 A1 fire 100 70 120 100 70 170 100 76 198 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +skeleton2DemonRoad 1129 skeleton1 skeleton3 1 Returned skeleton2 skeleton Skeleton SK 1 2 5 4 4 2 6 38 69 skeleton skeleton 10 15 14 13 70 75 80 12 10 7 80 85 90 25 25 25 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 75 20 25 20 30 20 75 2 15 15 15 5 87 127 84 86 41 101 93 41 101 93 70 100 100 85 40 100 120 40 105 125 186 242 100 77 71 177 120 66 173 125 227 292 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +goatman3DemonRoad 1130 goatman1 goatman3 1 NightClan goatman2 goatman Goatman GM 1 3 6 6 6 1 6 38 69 goatman goatman 10 15 14 13 75 75 80 10 10 8 80 80 85 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 25 40 50 65 75 25 2 7 7 7 5 114 141 51 91 81 141 93 100 130 60 90 70 125 85 223 290 60 81 125 222 85 A1 ltng 15 10 75 20 112 198 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +mummy1Skovos 1131 mummy1 mummy2 0 DriedCorpse mummy1 mummy Mummy MM 1 2 3 3 3 1 13 43 74 mummy mummy 10 15 14 13 5 9 15 60 60 60 100 100 100 65 65 65 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 55 40 75 30 45 120 2 14 14 14 5 68 158 84 86 56 112 93 56 112 93 100 140 95 100 60 105 105 138 193 95 90 76 133 105 A1 pois 10 33 33 200 25 33 33 300 25 38 38 400 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +corruptrogue2Skovos 1132 corruptrogue1 corruptrogue3 1 VileHunter corruptrogue2 corruptrogue CorruptRogue CR 1 3 4 6 8 2 5 38 68 corruptrogue corruptrogue 10 13 13 13 70 80 90 12 9 7 80 85 90 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 30 20 30 45 40 45 2 18 18 18 5 62 101 84 78 51 126 91 60 100 95 95 55 110 130 238 308 95 103 128 209 130 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +cr_archer2Skovos 1133 cr_archer1 cr_archer3 1 VileArcher cr_archer2 corruptrogue CorruptArcher CR 1 1 3 5 5 6 1 5 38 69 cr_archer cr_archer 10 13 13 13 70 75 80 75 88 91 12 10 9 25 35 45 20 20 20 12 12 12 cr_arrow2 1 1 1 1 1 100 100 100 -50 -40 -33 20 40 45 55 120 35 2 15 15 15 5 93 131 84 91 60 90 255 55 95 90 100 60 90 150 214 273 90 108 149 195 150 A1 pois 10 20 20 100 20 74 74 100 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Map Miss t3 Map Champ t3 Map Unique t3 0 +cr_lancer2Skovos 1134 cr_lancer1 cr_lancer3 1 VileLancer cr_lancer2 corruptrogue CorruptLancer CR 1 2 3 5 6 1 5 38 68 cr_lancer cr_lancer 10 13 13 13 70 70 70 80 85 90 8 7 6 0 45 60 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 25 15 65 40 50 45 2 6 6 6 5 85 124 84 91 76 151 91 80 115 95 85 65 130 140 285 343 95 92 144 238 140 A1 pois 10 25 25 100 20 103 103 100 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +deathmauler3Skovos 1135 deathmauler1 deathmauler4 2 Death Mauler3 deathmauler5 deathmauler DeathMauler m5 1 2 4 5 5 1 38 60 81 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 19 19 19 70 70 70 1 1 1 1 DeathMaul seq_deathmaulerdig 3 100 85 75 -50 -40 -33 45 35 75 50 65 65 2 50 50 50 5 124 152 126 180 51 76 251 115 145 95 105 75 140 115 248 365 95 113 195 263 115 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map Miss t3 Map Champ t3 Map Unique t3 0 +thornhulk2Skovos 1136 thornhulk1 thornhulk3 1 BrambleHulk thornhulk2 thornhulk ThornHulk TH 1 1 3 3 3 1 22 50 80 thornhulk thornhulk 10 15 14 13 85 85 85 25 25 25 10 10 10 40 40 40 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 2 100 85 75 -50 -40 -33 0 25 15 75 35 65 4 22 22 22 5 153 248 85 123 93 151 94 79 151 94 190 230 140 130 90 160 105 75 150 120 261 316 140 117 115 204 105 107 214 120 A2 stun 100 7 100 7 100 7 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +bighead6Skovos 1137 bighead1 bighead7 4 Afflicted bighead6 bighead Bighead BH 1 1 1 3 9 9 1 32 58 70 bighead bighead 10 15 14 13 88 75 75 40 30 30 85 85 85 60 70 80 bighead6 1 1 1 1 1 100 85 75 -50 -40 -33 33 80 50 33 100 75 25 0 50 55 40 15 2 15 15 15 5 80 130 80 100 50 100 100 80 120 90 125 50 100 110 135 190 90 113 64 128 110 A2 ltng 100 160 200 100 160 200 100 160 200 A1 ltng 15 30 60 35 30 60 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +painworm1DemonRoadBoss 1138 painworm1 painworm2 0 Pain Worm1 painworm1 vilekind VileDog 46 1 2 2 8 10 1 34 61 88 vilechild vilechild 10 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 100 85 75 -50 -40 -33 20 20 50 50 50 50 2 44 44 44 5 65 106 84 5 28 93 194 35 65 85 5 30 60 80 550 750 85 68 94 188 80 Map H2H t3 Map Champ t3 Map Unique t3 0 +zealot2SkovosBoss 1139 zealot1 zealot3 1 Faithful zealot2 zakarum ZakarumZealot ZZ 1 1 3 6 9 1 22 51 88 zealot zealot 10 15 14 13 76 85 90 60 60 60 40 40 40 60 70 80 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 50 50 50 50 2 22 22 22 5 131 172 85 100 65 108 94 65 108 94 120 150 80 80 60 100 100 60 105 115 925 1075 80 72 75 133 176 133 220 115 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +LucionSpawnTank 1140 lucionspawntank 2 LucionSpawnTankName vilemother1 dcloneminion vilekind PinHead stun attack VM 1 2 4 8 8 1 32 57 110 vilemother vilemother 10 15 14 13 90 95 97 7 7 7 95 95 95 5 5 5 65 65 70 1 1 1 1 1 1 MonSmiteLucion A1 1 3 3 3 -50 -40 -33 25 25 50 25 50 50 50 50 30 20 30 30 30 30 2 42 42 42 5 160 200 84 142 76 136 125 121 151 93 180 220 80 130 90 140 110 120 155 100 1150 1150 80 130 180 280 110 240 310 100 0 +LucionSpawner 1141 lucionspawner 0 LucionSpawnerName LucionSpawner Overseer $8 1 1 1 0 0 2 3 37 110 crownest crownest 10 15 15 15 15 25 20 8 5 6 1 1 1 -50 -40 0 30 20 30 30 30 30 4 456 545 17 177 450 575 30 300 750 750 30 300 0 +voidWatcherUniqueMap 1142 tentacle1 1 VoidWatcher voidTentacleHead tentacle TentacleHead TE 1 voidWatcherLimbUniqueMap 1 1 3 1 1 0 0 2 90 90 90 tentaclehead tentaclehead 8 15 15 15 90 90 90 10 10 10 2 2 2 15 15 15 16 15 15 20 20 20 voidbolt 1 1 1 Submerge seq_tentheadsubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 27 27 27 5 129 172 85 87 90 120 100 130 420 444 100 150 Map Miss t3 Map Champ t3 Map Unique t3 0 +voidWatcherLimbUniqueMap 1143 tentaclehead1 1 VoidWatcher voidTentacle tentacle Tentacle TN 1 1 1 0 0 0 90 90 90 tentacle tentacle 8 15 15 15 90 90 90 10 10 10 2 2 2 15 15 15 16 15 15 20 20 20 1 Submerge seq_tentaclesubmerge 1 Emerge S1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 20 20 20 5 129 172 85 107 77 154 93 70 100 100 75 70 120 90 384 408 100 100 80 200 140 Map Miss t3 Map Champ t3 Map Unique t3 0 +voidBeastUniqueMap 1144 councilmember1 2 VoidBeast voidBeast councilmember3 councilmember HighPriest HP 1 1 1 7 9 3 90 90 90 councilmember councilmember 11 12 12 12 65 65 65 20 20 15 125 100 75 45 50 50 80 80 80 9 9 9 12 12 12 30 30 30 highpriestlightning 1 1 1 1 1 SummonVoidlingUniqueMap S1 4 Ice Blast S1 20 100 85 66 -50 -33 -25 30 30 30 30 30 30 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 210 252 110 150 100 140 180 Map Cast t3 Map Champ t3 Map Unique t3 0 +voidlingUniqueMap 1145 batdemon1 4 Voidling voidling batdemon Brute shocking hit BT 1 2 4 12 14 3 90 90 90 batdemon batdemon 10 13 13 13 0 0 0 90 90 95 60 60 50 1 1 1 1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 27 27 27 5 43 151 84 65 101 93 106 165 146 70 110 110 80 65 70 100 80 115 200 108 216 110 120 65 70 120 80 115 200 A2 ltng 85 64 100 85 5 180 85 5 240 Map H2H t3 Map Champ t3 Map Unique t3 0 +voidFrogUniqueMap 1146 frogdemon1 3 VoidFrog voidFrog frogdemon FrogDemon FD 1 1 1 2 11 11 3 24 51 81 frogdemon frogdemon 10 13 13 13 75 80 95 20 25 30 50 70 85 50 65 75 30 45 60 12 12 12 13 11 8 9 9 9 voidfrogwave 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 24 24 24 5 131 173 85 110 69 151 92 110 140 95 90 65 95 100 180 180 95 125 65 95 100 A1 pois 10 100 100 200 10 100 100 200 10 75 75 200 Map H2H t3 Map Champ t3 Map Unique t3 1 1 0 +voidKnightCorridorUniqueMap 1147 doomknight3 2 VoidKnight voidknight rathmaminion doomknight OblivionKnight Mage UM 1 1 1 1 8 7 1 30 58 85 doomknight doomknight 10 13 13 13 6 7 8 25 26 27 500 350 200 50 50 50 80 85 90 30 30 30 30 30 30 9 10 11 1 1 1 1 DoomKnightMissile S1 22 DoomKnightMissile S1 22 DoomKnightMissile S1 22 MonCurseCast S2 3 -50 -33 -25 60 60 60 60 60 60 80 60 50 50 75 75 50 20 2 29 29 50 130 171 107 131 69 153 92 120 150 115 210 60 135 30000 180 210 115 150 200 250 25000 Map Cast t3 Map Champ t3 Map Unique t3 0 +ImperialPalaceMiniBoss 1148 fallenshaman1 fallenshaman6 4 Kamyr ImperialMiniBoss ImperialMiniBoss fallen Summoner FS 1 fallen5ImperialMiniBoss 1 6 6 1 3 6 6 1 40 55 91 fallenshaman fallenshaman 12 15 14 13 85 93 98 5 5 5 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 28 28 28 1 1 1 1 1 1 1 ChargedBoltImperialMiniBoss seq_shamanresurrect 26 ImperialMiniBossBlast seq_shamanresurrect 1 ChargedBoltImperialMiniBoss seq_shamanresurrect 28 Blink seq_shamanresurrect 7 SiegeBeastBuffNova seq_shamanresurrect 7 100 75 20 -50 -40 -33 20 70 50 100 20 20 50 50 50 50 1 39 39 39 5 65 107 84 125 53 121 93 55 90 75 150 45 90 105 7500 7500 75 150 45 90 105 Act 5 Cast C Act 5 Champ C Act 5 Unique C Act 5 (N) Cast C Act 5 (N) Champ C Act 5 (N) Unique C Map Boss T3 Map Boss T3 Map Boss T3 0 +TortureHallsBoss 1149 thornhulk1 thornhulk4 2 TortureHallsBoss TortureBoss thornhulk Duriel TH 1 2 4 6 12 1 23 52 89 thornhulk thornhulk 10 15 14 13 14 14 14 33 33 33 50 50 50 45 45 45 15 15 15 1 1 1 1 1 1 1 Joust A1 1 Fists of Fire A1 22 HurricaneTortureBoss A1 20 Vigor NU 2 100 85 20 -50 -40 -33 20 20 50 50 50 50 0 23 23 23 5 153 248 85 123 87 147 92 74 147 92 190 230 140 130 90 160 105 75 150 120 6350 6350 140 400 99 164 25000 70 146 25000 A2 stun 100 7 100 7 100 7 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map Boss T1 Map Boss T1 Map Boss T1 0 +baalminion3Imperial 1150 baalminion1 2 Baals Minion baalminion3 demon BaalMinion 43 1 1 1 8 8 1 60 68 92 baalminion baalminion 10 15 14 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 10 10 60 60 60 60 2 50 50 50 5 476 666 87 763 30 90 251 17 165 238 430 480 135 247 80 130 210 80 140 210 520 600 135 247 80 130 210 80 140 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 1 0 +fetish3Imperial 1151 fetish1 fetish4 2 Flayer fetish3 fetish Fetish FE 1 2 4 8 8 8 22 50 80 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 20 35 65 45 50 2 22 22 22 5 66 107 85 79 72 108 94 55 80 125 75 60 95 95 116 160 125 75 60 95 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +fetishblow3Imperial 1152 fetishblow1 fetishblow4 2 Flayer fetishblow3 fetish FetishBlowgun FC 1 1 2 2 8 8 6 22 50 80 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 20 40 20 65 50 2 29 29 29 5 66 107 85 65 15 33 125 45 75 110 90 20 33 110 100 150 110 90 20 33 110 A1 pois 7 10 10 25 12 25 25 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map Miss t3 Map Champ t3 Map Unique t3 0 +succubus1Imperial 1153 succubus1 succubus2 3 Succubusexp succubus1 succubus Succubus 0B 1 1 2 3 10 10 2 32 61 82 succubus succubus 10 15 14 13 90 91 93 50 25 10 50 50 50 15 20 20 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 1 MonLowerRes S2 1 SuccubusBolt S2 1 100 85 75 -50 -40 -33 20 65 50 50 25 2 42 42 42 5 96 152 107 121 46 86 125 60 90 115 90 50 90 155 145 200 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +mummy2Imperial 1154 mummy1 mummy3 1 Decayed mummy2 mummy Mummy MM 1 3 4 3 3 2 15 44 79 mummy mummy 10 15 14 13 10 12 18 50 50 50 100 100 100 60 60 60 10 10 10 1 1 1 1 1 1 100 66 33 -50 -40 -25 70 80 20 50 35 25 65 2 16 16 16 5 69 157 84 87 61 111 94 61 111 94 100 140 95 100 60 105 105 200 275 95 100 60 105 105 A1 pois 10 33 33 200 25 33 33 300 25 33 33 400 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +fingermage2Imperial 1155 fingermage1 fingermage3 1 Strangler fingermage2 fingermage FingerMage homing missiles FR 1 2 4 10 16 1 27 57 84 fingermage fingermage 10 15 14 13 60 60 60 60 75 85 60 60 60 40 40 40 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 FingerMageSpider S1 4 100 66 33 -50 -40 -25 50 50 60 60 10 10 45 45 45 45 2 27 27 27 5 152 209 84 120 53 124 93 80 110 120 135 55 120 120 240 320 120 135 55 120 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Map Wraith t3 Map Champ t3 Map Unique t3 0 +sandleaper3TortureHalls 1156 sandleaper1 sandleaper4 2 TombCreeper sandleaper3 sandleaper SandLeaper SL 1 2 5 8 8 2 17 46 77 sandleaper sandleaper 10 15 14 13 20 21 24 50 50 50 30 30 30 50 50 50 1 1 1 1 MonLeap seq_leaperleap 3 100 85 75 -50 -40 -33 40 60 30 20 50 25 20 45 2 17 17 17 5 64 192 84 94 64 128 92 64 128 92 40 80 130 95 65 120 100 55 100 90 80 140 130 95 88 163 100 63 115 90 A1 pois 5 10 10 50 10 25 25 75 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +zealot1TortureHalls 1157 zealot1 zealot2 0 Zakarumite zealot1 zakarum ZakarumZealot ZZ 1 2 3 6 8 3 20 50 80 zealot zealot 10 15 14 13 65 75 85 50 50 50 35 35 35 50 60 70 1 1 1 1 1 100 100 100 -50 -40 -33 10 20 65 120 45 20 2 20 20 20 5 129 172 85 100 62 108 93 62 108 93 120 150 80 80 60 100 100 60 105 115 120 150 80 80 82 136 100 69 121 115 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +sk_archer2TortureHalls 1158 sk_archer1 sk_archer3 1 ReturnedArcher sk_archer2 skeleton SkeletonBow SK 1 1 1 3 4 4 4 8 39 69 sk_archer sk_archer 10 15 14 13 75 80 85 15 14 12 50 50 50 5 5 5 6 6 6 skbowarrow2 1 1 1 1 1 -50 -40 -25 50 60 30 30 50 25 120 75 2 23 23 23 5 78 156 84 90 65 90 253 70 100 100 95 35 50 115 70 100 100 95 48 68 115 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +blunderbore1TortureHalls 1159 blunderbore1 blunderbore2 0 Blunderbore blunderbore1 blunderbore blunderbore PinHead stun attack PN 1 1 2 3 3 2 18 47 78 pinhead pinhead 10 15 14 13 75 80 85 15 12 10 60 70 70 12 12 12 40 50 55 1 1 1 1 1 1 MonSmite seq_pinheadsmite 1 100 100 100 -50 -40 -33 20 10 50 50 50 25 4 24 24 24 5 160 200 84 114 76 134 125 117 151 92 180 220 80 130 90 140 110 120 155 100 180 220 80 130 122 190 110 138 178 100 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +vampire3TortureHalls 1160 vampire1 vampire4 2 DarkLord vampire3 vampire Vampire steals life VA 1 1 1 3 7 7 2 24 55 83 vampire vampire 11 15 14 13 76 76 76 30 60 70 26 27 27 25 31 43 7 7 7 1 1 1 1 1 1 VampireFireball SC 4 VampireFirewall SC 4 VampireMeteor SC 4 VampireMissile SC 4 100 85 75 -50 -40 -25 50 50 40 50 50 35 30 75 45 75 50 3 24 24 24 5 153 211 85 110 51 119 92 150 200 100 150 50 100 120 150 200 100 150 68 136 120 A1 cold 70 43 62 25 70 50 100 50 70 125 200 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +councilmember3TortureHalls 1161 councilmember1 0 Council Member councilmember3 councilmember3 councilmember HighPriest HP 1 1 1 10 12 2 25 56 88 councilmember councilmember 11 15 13 12 65 65 65 20 20 15 125 100 75 45 50 50 80 80 80 9 9 9 12 12 12 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 4 ZakarumHeal S1 4 100 85 66 -50 -33 -25 20 25 35 75 33 85 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 200 350 110 150 68 163 140 Council Council Council Council (N) Council (N) Council (N) Map Cast t2 Map Champ t2 Map Unique t2 0 +regurgitator1TortureHalls 1162 regurgitator1 regurgitator2 0 Corpulent regurgitator1 regurgitator Regurgitator eats and spits corpses CS 1 1 2 6 12 1 24 56 82 regurgitator regurgitator 10 15 14 13 70 75 75 20 20 20 40 50 50 10 20 30 3 5 5 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 1 100 85 75 -50 -40 -33 50 35 25 50 45 50 2 24 24 24 5 211 285 85 138 82 138 92 240 320 95 140 85 145 105 240 320 95 140 116 197 105 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +voidlingUniqueMapSummon 1163 batdemon1 4 Voidling voidling batdemon Brute shocking hit BT 1 2 4 12 14 3 90 90 90 batdemon batdemon 10 13 13 13 0 0 0 90 90 95 60 60 50 1 1 1 1 1 100 85 75 -50 -40 -33 30 30 30 30 30 30 2 27 27 27 5 43 151 84 65 101 93 106 165 146 70 110 110 80 65 70 100 80 115 200 108 216 110 0 65 70 120 80 115 200 A2 ltng 85 64 100 85 5 180 85 5 240 0 +ImperialPalaceBossMinion 1164 councilmember1 3 ImperialAdvisor ImperialBoss councilmember3 councilmember HighPriest HP 1 1 1 7 9 1 90 90 91 councilmember councilmember 11 12 12 12 0 0 0 25 25 25 125 100 50 75 75 75 80 80 80 9 9 9 12 12 12 40 40 40 highpriestlightning 1 1 1 1 1 1 1 SummonViperUniqueMap S1 4 SummonViperUniqueMap S1 4 100 85 20 -50 -33 -25 20 20 50 50 50 50 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 7500 7500 110 600 100 140 180 Map Boss T3 Map Boss T3 Map Boss T3 0 +clawviper3ImperialPalaceBoss 1165 clawviper1 clawviper4 2 WrithingDeceiver clawviper3 clawviper ClawViper VI 1 2 3 5 15 1 18 46 91 clawviper clawviper 10 15 14 13 8 10 12 85 85 85 70 70 70 9 9 8 1 1 1 1 1 1 1 1 100 75 35 -50 -45 -40 40 70 20 20 50 50 50 50 2 18 18 18 5 66 108 84 78 51 92 92 59 101 92 75 110 125 100 60 80 135 60 105 135 1500 1500 125 0 60 80 135 60 105 135 A1 fire 100 50 91 100 60 70 100 60 70 0 +ImperialPalaceBoss 1166 councilmember1 1 ImperialAssassin ImperialBoss ImperialBoss councilmember Summoner HP 1 clawviper3ImperialPalaceBoss 1 3 3 1 1 7 9 1 90 90 91 councilmember councilmember 11 12 12 14 85 93 98 15 15 15 45 45 45 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 1 1 1 1 VampireMeteor S1 26 Fire Nova S1 25 MonFireBall S1 28 Blink S1 7 SummonViperUniqueMap S1 4 100 85 20 -50 -33 -25 20 20 50 50 50 50 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 8250 8250 110 600 100 140 180 Map Boss T3 Map Boss T3 Map Boss T3 0 +fallen5ImperialMiniBoss 1167 fallen1 fallen6 4 WarpedFallen fallen5 fallen Fallen FA 1 1 1 8 8 2 40 55 91 fallen fallen 10 15 14 13 75 80 80 30 30 30 90 95 99 40 45 50 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 50 50 50 50 50 50 66 66 66 66 66 66 25 75 75 75 75 75 2 49 49 49 5 21 55 84 93 45 93 93 45 97 93 25 55 70 65 45 90 90 50 100 85 450 450 70 65 45 90 90 50 100 85 A1 cold 10 20 25 175 10 20 25 225 0 +ImperialPalaceBossJerhyn 1168 jerhyn 3 ImperialPalaceBoss jerhyn human Npc JE 1 1 1 4 4 0 mednpc mednpc 15 15 15 1 1 1 100 85 75 -50 -40 -33 50 50 50 50 50 50 66 66 66 66 66 66 25 75 75 75 75 75 2 49 49 49 5 21 55 84 93 45 93 93 45 97 93 25 55 70 65 45 90 90 50 100 85 450 450 70 65 45 90 90 50 100 85 A1 cold 10 20 25 175 10 20 25 225 0 +baalminion3MapMod 1169 baalminion1 2 Baals Minion baalminion3 demon BaalMinion 43 1 1 1 8 8 0 60 68 92 baalminion baalminion 10 15 14 13 90 90 90 85 85 85 50 50 50 17 17 17 1 1 1 1 1 MonSmite A2 1 100 75 50 -50 -40 -33 50 50 95 95 50 95 50 75 33 50 95 2 50 50 50 5 476 666 87 763 30 90 251 17 165 238 430 480 135 247 80 130 210 80 140 210 430 480 135 247 80 130 210 80 140 210 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 1 0 +vampire8MapMod 1170 vampire1 vampire9 3 DarkLord vampire1 vampire Vampire steals life VA 1 1 2 3 8 8 1 25 55 83 vampire vampire 10 15 14 13 85 85 85 35 40 45 24 24 24 25 34 47 7 7 7 1 1 1 1 1 1 VampireFireball SC 5 VampireFirewall SC 5 VampireMeteor SC 10 VampireMissile SC 1 100 85 75 -50 -40 -25 60 50 60 50 50 75 33 33 75 50 5 25 25 25 5 152 210 85 113 51 119 93 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 75 50 68 25 75 50 100 50 75 50 100 75 Act 3 Cast C Act 3 Champ C Act 3 Unique C Act 3 (N) Cast C Act 3 (N) Champ C Act 3 (N) Unique C Map Cast t3 Map Champ t3 Map Unique t3 0 +UrehHydra 1171 tentaclehead1 1 RiverStalkerHead UrehTentacleHead tentacle TentacleHead TE 1 UrehTentacle 1 1 2 1 1 0 0 0 20 50 78 tentaclehead tentaclehead 8 18 18 18 90 90 95 15 15 17 12 12 12 16 16 16 12 12 12 12 14 14 urehSerpentFireball 1 1 1 Emerge S1 1 100 85 75 -50 -40 -33 15 20 50 50 50 50 2 27 27 27 5 129 172 85 87 90 120 100 130 1000 1200 100 130 Map H2H t3 Map Champ t3 Map Unique t3 0 +UrehRanger 1172 sk_archer1 2 HorrorArcher sk_archer5Ureh skeleton TentacleHead SK 1 0 0 0 20 50 89 sk_mage sk_mage 8 15 15 15 250 250 250 250 250 250 urehArcherBolt 1 1 1 1 Emerge S1 1 10 85 20 0 0 0 20 20 50 50 50 50 1 27 27 27 5 129 172 85 87 90 120 100 130 700 900 100 250 5000 Map Miss t3 Map Champ t3 Map Unique t3 0 +UrehTentacle 1173 tentacle1 tentacle3 1 RiverStalkerLimb UrehTentacle tentacle Tentacle TN 1 1 1 0 0 0 20 50 78 tentacle tentacle 8 15 15 15 90 90 95 15 15 17 12 12 12 16 16 16 12 12 12 12 14 14 1 1 Emerge S1 1 100 85 75 -50 -40 -33 15 20 50 50 50 50 2 20 20 20 5 129 172 85 107 77 154 93 70 100 100 75 70 120 90 500 600 100 75 70 120 90 0 +CityofUrehBoss 1174 CityofUrehBoss 0 UrehBoss trappedsoul1 ArcaneTower 10 1 1 1 0 0 1 1 48 91 trappedsoul2 trappedsoul2 9 15 15 15 190 190 190 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 impmiss24 1 1 1 Shock Field Ureh Boss A1 1 Fire Trauma A1 6 90 90 90 70 1000 90 90 100 1000 20 20 50 50 50 50 1 46 46 46 1001 2021 34 944 500 600 5 944 15000 15000 200 2000 300 400 25000 300 400 25000 Map Boss T3 Map Boss T3 Map Boss T3 0 +CityofUrehMiniBoss 1175 CityofUrehMiniBoss 2 UrehMiniBoss summonerMap human Summoner VA 1 1 1 5 5 0 18 55 91 vampire vampire 14 10 10 10 85 93 98 5 5 5 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 Fire Trauma Ureh Boss SC 45 Eruption SC 17 Fire Trauma Ureh Boss SC 45 Blink SC 7 Eruption SC 17 100 75 0 0 0 50 50 50 50 50 50 20 20 50 50 50 50 0 18 18 18 5 1032 1376 153 123 880 1120 85 293 8500 8500 175 2000 Summoner Summoner Summoner Summoner (N) Summoner (N) Summoner (N) Map Boss T3 Map Boss T3 Map Boss T3 0 +zealot5Ureh 1176 zealot1 2 ZealotUreh zealot1 zakarum ZakarumZealot ZZ 1 2 3 6 11 3 24 53 82 zealot zealot 10 15 14 13 85 90 95 65 65 65 50 50 50 70 80 90 1 1 1 1 1 100 100 100 -50 -40 -33 15 20 100 50 2 24 24 24 5 131 173 85 100 57 101 92 57 101 92 120 150 80 80 60 100 100 60 105 115 240 270 80 80 140 185 100 140 185 115 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +cantor2Ureh 1177 cantor1 cantor3 1 CantorUreh cantor2 zakarum ZakarumPriest heals Zealots and Cantors ZP 1 1 zealot5Ureh 1 2 1 1 6 6 2 23 51 81 cantor cantor 10 15 14 13 30 30 30 6 12 18 55 65 75 30 45 65 120 120 120 36 38 40 1 1 1 1 ZakarumHeal S1 2 ZakarumLightning S1 25 MonTeleport S1 1 VampireMeteor S1 25 100 100 100 -50 -40 -33 50 50 10 25 50 75 20 2 23 23 23 5 130 171 85 106 67 154 92 90 130 75 130 40 85 90 210 250 75 130 60 105 90 A1 cold 55 33 60 25 55 30 60 50 55 200 250 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Miss t3 Map Champ t3 Map Unique t3 0 +skeleton2Ureh 1178 skeleton1 skeleton3 1 Returned skeleton2 skeleton Skeleton SK 1 2 5 4 4 2 6 38 69 skeleton skeleton 10 13 13 13 70 75 80 12 10 7 80 85 90 25 25 25 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 75 40 50 85 20 50 2 15 15 15 5 87 127 84 86 41 101 93 41 101 93 70 100 100 85 40 100 120 40 105 125 195 225 100 85 95 155 120 60 185 125 Act 1 H2H B Act 1 Champ B Act 1 Unique B Act 1 (N) H2H B Act 1 (N) Champ B Act 1 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +unraveler2Ureh 1179 unraveler1 unraveler3 1 Guardian unraveler2 unraveler GreaterMummy raises undead GY 1 1 1 2 2 1 18 46 77 unraveler unraveler 12 13 13 13 75 75 75 35 40 45 45 50 50 70 75 85 24 27 31 mummy2 1 1 1 1 1 Resurrect2 seq_mummyres 1 Bestow seq_mummyres 1 UnHolyBolt seq_mummyres 2 100 66 33 -50 -33 -25 50 50 15 20 50 75 80 50 3 1 15 33 5 193 237 84 136 117 151 92 170 210 120 300 110 140 160 295 335 120 300 165 195 160 A1 pois 20 116 150 1100 20 33 33 1100 25 100 100 100 Act 2 Cast B Act 2 Champ B Act 2 Unique B Act 2 (N) Cast B Act 2 (N) Champ B Act 2 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +sk_archer2Ureh 1180 sk_archer1 sk_archer3 1 ReturnedArcher sk_archer2 skeleton SkeletonBow SK 1 1 1 3 4 4 3 8 39 69 sk_archer sk_archer 10 15 14 13 75 80 85 15 14 12 50 50 50 5 5 5 6 6 6 skbowarrow2 1 1 1 1 1 -50 -40 -25 50 60 40 33 33 75 2 23 23 23 5 78 156 84 90 65 90 253 70 100 100 95 35 50 115 190 210 100 95 135 150 115 Act 1 Miss B Act 1 Champ B Act 1 Unique B Act 1 (N) Miss B Act 1 (N) Champ B Act 1 (N) Unique B Map Miss t3 Map Champ t3 Map Unique t3 0 +thornhulk2Ureh 1181 thornhulk1 thornhulk3 1 BrambleHulk thornhulk2 thornhulk ThornHulk TH 1 1 3 3 3 1 22 50 80 thornhulk thornhulk 10 15 14 13 85 85 85 25 25 25 10 10 10 40 40 40 5 3 1 3 4 5 1 1 1 1 1 MonFrenzy A2 2 100 85 75 -50 -40 -33 20 65 35 65 4 22 22 22 5 153 248 85 123 93 151 94 79 151 94 190 230 140 130 90 160 105 75 150 120 259 303 140 117 124 218 105 124 218 120 A2 stun 100 7 100 7 100 4 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +InvaderPortal 1182 InvaderPortal 0 dummy InvaderPortal Overseer $8 1 1 1 0 0 2 3 37 90 crownest crownest 10 50 50 50 20 20 20 2 1 1 1 -50 -40 -10 30 30 30 30 30 30 4 456 545 17 177 450 575 30 300 750 750 30 300 0 +InvaderAmazon 1183 InvaderAmazon 3 InvaderAmazon InvaderAmazon InvaderAmazon human BloodRaven AM 1 1 1 1 8 16 2 2 36 90 bloodraven bloodraven 12 15 14 8 raven1 1 1 1 1 1 1 Strafe A1 1 Cold Arrow A1 26 100 75 -50 -40 -10 25 50 20 20 50 75 50 50 1 4 4 25 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 5000 5000 75 1000 25 40 25000 0 +InvaderAssassin 1184 InvaderAssassin 3 InvaderAssassin InvaderAssassin InvaderAttackspeed human Duriel AI 1 1 1 10 14 2 2 36 90 pantherwoman pantherwoman 12 15 14 6 5 5 6 25 25 25 100 100 100 65 65 65 1 1 1 1 1 1 Dragon Flight A1 1 Blades of Ice A1 7 Mind Blast SC 4 100 75 -50 -40 -10 25 50 20 20 50 50 75 50 1 4 4 50 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 5600 5600 75 1000 10 20 25000 0 +InvaderBarbarian 1185 InvaderBarbarian 3 InvaderBarbarian InvaderBarbarian InvaderAttackspeed human Duriel BA 1 1 1 12 18 2 2 36 90 smithdemon smithdemon 12 15 14 6 5 5 6 25 25 25 100 100 100 65 65 65 1 1 1 1 1 1 Whirlwind seq_barbarianwhirlwind 30 Frenzy A1 1 War Cry SC 20 MonShout SC 5 100 75 -50 -40 -10 25 50 40 25 50 50 50 50 1 4 4 45 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 6000 6000 75 1000 20 60 25000 0 +InvaderDruid 1186 InvaderDruid 3 InvaderDruid InvaderDruid InvaderDruid human Summoner DZ 1 1 1 1 4 10 2 2 36 90 werebear werebear 12 15 14 7 85 93 98 25 25 25 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 1 1 1 Twister S1 9 Molten Boulder SC 4 Twister S1 9 VolcanoInvaderDruid S1 1 Gust S1 25 Gust S1 25 ArmageddonInvaderDruid S1 1 100 75 -50 -40 -10 25 50 20 20 75 50 50 50 1 4 4 35 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 5200 5200 75 1000 45 90 105 0 +InvaderNecromancer 1187 InvaderNecromancer 3 InvaderNecromancer InvaderNecromancer human Summoner NE 1 1 InvaderNecromancerSkeleton InvaderNecromancerSkeletonArcher 1 4 5 1 1 4 10 2 2 36 90 vampire vampire 12 15 14 9 85 93 98 25 25 25 25 25 25 40 40 40 150 150 150 33 20 10 8 8 8 40 40 40 corruptednecrobonespear 1 1 1 1 1 1 Teeth S1 1 Poison Nova S1 26 Teeth S1 1 LowRes S1 13 Blink S1 25 Bone Armor S1 35 100 75 -50 -40 -10 25 50 20 20 50 50 50 75 1 4 4 35 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 5400 5400 75 1000 0 0 105 0 +InvaderPaladin 1188 InvaderPaladin 3 InvaderPaladin InvaderPaladin InvaderAttackspeed human Duriel PA 1 1 1 8 14 2 2 36 90 sandraider sandraider 12 15 14 6 3 3 6 28 28 28 100 100 100 70 70 70 1 1 1 1 1 1 MonCharge seq_paladincharge 1 Zeal A1 4 Bash S1 7 MonHolyFreeze NU 1 100 75 -50 -40 -10 25 50 25 40 50 50 50 50 1 4 4 50 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 5600 5600 75 1000 8 12 25000 0 +InvaderSorceress 1189 InvaderSorceress 3 InvaderSorceress InvaderSorceress human Summoner SO 1 1 1 1 4 12 2 2 36 90 succubus succubus 12 15 14 6 85 93 98 25 25 25 63 63 63 40 40 40 120 100 80 33 20 10 5 8 11 40 40 40 1 1 1 1 1 1 Chain Lightning S1 26 Frozen Orb S1 7 Chain Lightning S1 28 Fire Wall S1 18 Blink S1 25 Blink S1 25 100 75 -50 -40 -10 25 50 20 20 65 65 65 65 1 4 4 35 5 58 101 84 81 34 101 101 55 90 75 150 45 90 105 5200 5200 75 1000 45 90 105 0 +InvaderNecromancerSkeleton 1190 InvaderNecromancerSkeleton 3 InvaderNecromancerSkeleton skeleton4 skeleton Skeleton SK 1 2 4 6 6 2 13 43 90 skeleton skeleton 10 13 13 13 90 95 100 7 6 0 90 95 100 66 66 66 1 1 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 50 50 75 75 20 20 50 50 50 50 0 25 25 25 5 93 133 84 45 101 93 34 101 93 70 100 100 85 40 100 120 40 105 125 1500 2000 100 61 97 250 40 105 125 0 +InvaderNecromancerSkeletonArcher 1191 InvaderNecromancerSkeletonArcher 3 InvaderNecromancerSkeletonArcher sk_archer2 skeleton SkeletonBow SK 1 1 1 3 4 4 4 8 39 69 sk_archer sk_archer 10 15 14 13 75 80 85 15 14 12 50 50 50 5 5 5 6 6 6 skbowarrow2 1 1 1 1 1 -50 -40 -25 50 60 20 20 50 50 50 50 0 23 23 23 5 78 156 84 90 65 90 253 70 100 100 95 35 50 115 1300 1600 100 48 68 300 0 +KyovoshadBoss 1192 crownest1 crownest2 0 KyovoshadBoss crownest1 KyovoshadBoss Summoner BN 1 1 KyovoshadBossMinion 0 3 NU KyovoshadBossMinion 5 5 1 1 0 0 2 3 37 91 crownest crownest 10 15 15 8 85 93 98 25 25 25 63 63 63 40 40 40 120 100 80 33 20 10 20 20 20 20 20 20 1 1 1 1 1 Nest seq_nestlay 1 Nest seq_nestlay 1 Nest seq_nestlay 1 Nest seq_nestlay 1 Nest seq_nestlay 1 Nest seq_nestlay 1 100 75 -50 -40 -33 20 20 50 50 50 50 2 456 545 17 177 450 575 30 300 8000 8000 30 600 Act 1 Cast A Act 1 Champ A Act 1 Unique A Act 1 (N) Cast A Act 1 (N) Champ A Act 1 (N) Unique A Map Boss T3 Map Boss T3 Map Boss T3 0 +KyovoshadBossMinion 1193 bonefetish1 bonefetish6 4 KyovoshadBossMinion bonefetish5 stygian undeadfetish Fetish FK 1 2 4 10 10 1 24 53 91 bonefetish bonefetish 10 15 14 13 200 200 200 100 100 100 10 9 8 5 5 5 33 33 33 1 1 1 1 1 1 1 100 66 -50 -33 -33 50 60 20 20 50 50 50 50 2 24 24 24 5 65 107 85 79 69 101 92 65 105 135 125 65 105 90 400 800 135 105 155 250 0 +NaKrulBoss 1194 NaKrulBoss 0 NakrulBoss NaKrulBoss Nakrul demon Duriel !3 1 1 2 4 11 11 1 23 52 91 nakrulsound nakrulsound 10 15 14 4 50 50 50 30 30 30 25 25 25 1 1 1 1 1 1 1 1 Volcano A1 1 MonSmite A1 1 Fire Claws A1 15 100 85 -50 -40 -10 20 20 50 50 50 50 2 30 30 30 5 153 248 85 199 87 147 92 74 147 92 190 230 140 130 90 160 105 75 150 120 7000 7000 150 700 50 80 12000 50 80 12000 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map Boss T1 Map Boss T1 Map Boss T1 0 +DjinnLightBoss 1195 DjinnLightBoss 3 DjinnLightBoss willowisp4 willowisp Summoner WW 1 1 DjinnLightBossMinion 1 10 10 3 5 15 15 1 28 58 90 willowisp willowisp 10 15 14 13 85 93 98 25 25 25 25 25 25 40 40 40 150 150 150 33 20 10 8 8 8 40 40 40 1 1 1 1 1 Charged Bolt Djinnboss SC 1 Frozen Orb Light SC 12 Blink S1 25 -50 -33 -10 70 80 70 100 20 20 50 50 50 50 2 28 28 28 5 44 87 84 82 34 151 93 45 85 115 120 45 115 120 9000 9000 115 120 45 115 1200 A1 mana 90 16 72 90 100 200 90 200 300 SC ltng 100 5 120 100 5 160 100 5 190 Act 4 Wraith B Act 3 Champ B Act 3 Unique B Act 4 (N) Wraith B Act 3 (N) Champ B Act 3 (N) Unique B Map Boss T2 Map Boss T2 Map Boss T2 1 1 0 +DjinnDarkBoss 1196 succubus1 succubus5 4 DjinnDarkBoss succubus4 succubus Summoner 0B 1 1 3 5 13 13 1 40 63 90 succubus succubus 10 15 14 13 85 93 98 35 35 35 63 63 63 150 150 150 80 80 80 33 20 10 5 8 11 40 40 40 1 1 1 1 1 1 Mind Blast S2 4 Slow Movement S2 5 Mind Blast S2 5 DjinnBoss Poison Bolt S2 1 UnHolyBolt DjinnBoss S2 1 Blink S2 25 100 85 -50 -40 -33 20 20 50 50 50 50 2 50 50 50 5 96 152 107 150 45 85 125 60 90 115 90 50 90 155 9500 9500 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map Boss T2 Map Boss T2 Map Boss T2 0 +DjinnLightBossMinion 1197 DjinnLightBossMinion 0 FlyingScimitarDjinnBoss flyingscimitar construct FlyingScimitar ST 1 3 6 8 8 1 12 45 90 flyingscimitar flyingscimitar 10 15 13 10 90 90 90 90 95 99 8 8 8 40 50 60 1 1 1 1 1 MonCharge seq_pinheadsmite 1 -50 -25 -33 70 100 20 20 50 50 50 50 2 13 13 13 5 97 131 84 83 38 113 93 100 135 150 140 75 120 150 1200 2000 140 120 160 150 Flying Scimitar Flying Scimitar Flying Scimitar Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (N) 0 +fallen1Nakrul 1199 fallen1 fallen2 0 Devilkinbrute fallen1 fallen Fallen FA 1 fallen1Nakrul 1 1 2 3 2 3 5 5 2 1 36 67 fallen fallen 10 15 14 13 30 40 50 10 15 20 50 60 70 20 25 30 1 1 1 1 1 1 1 100 85 75 -50 -40 -33 15 0 65 50 40 75 2 9 9 9 5 21 61 84 61 51 101 101 51 101 101 25 55 70 65 45 90 90 50 100 85 115 145 70 65 45 90 90 50 100 85 A1 fire 10 20 30 20 50 70 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +goatman4Nakrul 1200 goatman1 goatman5 3 Satyrlord goatman4 goatman Goatman GM 1 3 4 9 9 1 19 48 79 goatman goatman 10 15 14 13 75 80 85 10 8 7 80 85 95 1 1 1 1 1 1 1 100 90 80 -50 -40 -33 40 70 50 0 40 25 65 25 2 19 19 19 5 116 143 51 90 70 147 93 100 130 60 90 65 120 85 130 160 60 90 65 120 85 A1 fire 25 30 50 30 60 105 Act 2 H2H C Act 2 Champ C Act 2 Unique C Act 2 (N) H2H C Act 2 (N) Champ C Act 2 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +batdemon4Nakrul 1201 batdemon1 batdemon5 3 Hellbat batdemon4 batdemon BatDemon shocking hit BT 1 2 4 10 10 1 24 54 85 batdemon batdemon 10 15 14 13 60 60 60 33 33 33 20 20 20 75 80 85 50 58 66 8 8 8 1 1 1 1 1 100 85 75 -50 -40 -33 10 25 55 20 10 60 2 24 24 24 5 45 151 85 82 63 94 92 88 138 154 70 110 110 80 65 70 100 80 115 200 140 180 110 80 65 70 100 80 115 200 A2 ltng 80 62 93 80 5 180 80 50 280 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 1 1 0 +megademon1Nakrul 1202 megademon1 megademon2 0 Reaper megademon1 megademon Megademon DM 1 1 2 10 16 1 24 55 82 megademon megademon 10 15 13 11 50 65 80 40 50 55 80 85 90 70 70 70 50 50 50 75 60 45 1 1 1 1 1 MegademonInferno S1 10 100 85 66 -50 -40 -33 70 80 25 20 75 75 50 35 2 32 32 32 5 191 229 101 129 51 94 125 210 250 115 130 100 160 160 210 250 115 130 115 184 160 Act 4 H2H A Act 4 Champ A Act 4 Unique A Act 4 (N) H2H A Act 4 (N) Champ A Act 4 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +brute3Nakrul 1203 brute2 brute4 1 Cryptdemon brute3 brute Brute YE 1 2 2 4 4 1 9 40 70 brute brute 10 15 14 13 0 0 0 80 80 85 85 85 75 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 60 50 35 25 75 75 50 2 10 10 10 5 146 236 84 121 58 101 95 115 129 95 145 210 85 120 70 120 95 110 140 100 145 210 85 120 81 138 95 127 161 100 Act 1 H2H C Act 1 Champ C Act 1 Unique C Act 1 (N) H2H C Act 1 (N) Champ C Act 1 (N) Unique C Map H2H t1 Map Champ t1 Map Unique t1 0 +regurgitator3Nakrul 1204 regurgitator1 regurgitator4 2 Fleshthing regurgitator3 regurgitator Regurgitator eats and spits corpses CS 1 2 3 8 12 1 30 57 85 regurgitator regurgitator 10 15 14 13 90 90 90 20 20 20 60 60 60 10 20 30 9 9 9 25 27 30 regurgitatorcorpse 1 1 1 1 1 1 RegurgitatorEat S1 3 100 85 75 -50 -40 -33 35 20 30 50 25 75 2 29 29 29 5 209 283 84 163 90 148 92 240 320 95 140 85 145 105 240 320 95 140 98 167 105 Act 4 H2H B Act 4 Champ B Act 4 Unique B Act 4 (N) H2H B Act 4 (N) Champ B Act 4 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +vampire2Nakrul 1206 vampire1 vampire3 1 Lich vampire2 vampire Vampire steals life VA 1 1 1 2 7 7 1 23 54 82 vampire vampire 11 15 14 13 65 65 65 25 50 60 25 26 26 25 28 39 5 5 5 1 1 1 1 1 1 VampireFireball SC 6 VampireFirewall SC 15 VampireMeteor SC 14 VampireMissile SC 6 100 85 75 -50 -40 -25 40 50 35 50 50 35 50 40 25 85 50 3 23 23 23 5 153 209 85 110 54 121 92 150 200 100 150 50 100 120 150 200 100 150 50 100 120 A1 cold 65 40 60 25 65 50 100 50 65 80 150 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t1 Map Champ t1 Map Unique t1 0 +succubus3Nakrul 1207 succubus1 succubus4 2 Skullwing succubus3 succubus Succubus 0B 1 1 3 4 12 12 1 35 62 83 succubus succubus 10 15 14 13 90 92 94 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 2 Blood Mana S2 2 SuccubusBolt S2 3 100 85 75 -50 -40 -33 0 20 66 80 50 30 2 46 46 46 5 95 152 107 131 46 87 126 60 90 115 90 50 90 155 100 130 115 90 50 90 155 A2 mag 100 40 75 100 40 75 100 60 100 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t1 Map Champ t1 Map Unique t1 0 +wraith4Kyovoshad 1208 wraith1 wraith5 3 Apparition wraith4 wraith Wraith drains mana WR 1 2 4 7 7 2 20 49 80 wraith wraith 10 15 14 13 80 90 90 6 4 4 85 90 95 1 1 1 1 1 1 1 100 66 33 -50 -33 0 50 50 60 60 25 50 30 55 75 75 2 20 20 20 5 86 172 85 93 62 108 93 115 140 130 105 60 105 95 190 236 130 105 105 184 95 A1 mana 60 46 84 60 100 200 60 200 300 Act 2 Wraith C Act 2 Champ C Act 2 Unique C Act 2 (N) Wraith C Act 2 (N) Champ C Act 2 (N) Unique C Map Wraith t3 Map Champ t3 Map Unique t3 0 +reanimatedhorde5Kyovoshad 1209 reanimatedhorde1 reanimatedhorde6 0 DefiledWarrior reanimatedhorde5 zombie ReanimatedHorde re 1 1 3 3 5 2 42 65 85 reanimatedhorde reanimatedhorde 10 15 14 13 70 80 85 20 15 12 12 15 18 35 45 45 35 35 35 65 65 65 25 22 19 30 22 15 1 1 1 1 1 1 MonCharge seq_reanimatedcharge 1 100 75 66 -50 -33 -25 50 70 50 100 50 50 45 40 50 75 2 50 50 50 5 114 170 107 173 35 89 138 35 89 93 110 135 70 105 70 110 135 60 120 100 201 247 70 105 60 100 135 60 120 100 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t3 Map Champ t3 Map Unique t3 0 +zealot1Kyovoshad 1210 zealot1 zealot2 0 Zakarumite zealot1 zakarum ZakarumZealot ZZ 1 4 5 6 8 4 20 50 80 zealot zealot 10 15 14 13 65 75 85 50 50 50 35 35 35 50 60 70 1 1 1 1 1 100 100 100 -50 -40 -33 10 0 75 65 50 20 2 20 20 20 5 129 172 85 100 62 108 93 62 108 93 120 150 80 80 60 100 100 60 105 115 220 275 80 80 105 175 100 60 105 115 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +bloodlord2Kyovoshad 1211 bloodlord1 bloodlord3 1 Blood Lord2 bloodlord2 bloodlord BloodLord L3 1 1 2 9 9 2 35 61 82 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 60 65 65 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -40 -30 -20 0 33 35 75 45 45 2 50 50 50 5 284 380 126 253 69 151 188 69 151 188 140 200 130 210 80 120 180 80 120 180 276 386 130 210 120 180 180 80 120 180 A1 ltng 33 60 90 33 100 130 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +vilemother3Kyovoshad 1212 vilemother1 vilemother4 2 Grotesque vilemother3 vilekind VileMother VM 1 vilechild3Kyovoshad 0 0 NU 2 3 7 7 1 30 57 85 vilemother vilemother 10 15 14 13 16 19 22 5 6 6 30 35 40 80 90 95 70 60 50 30 30 30 10 8 7 1 1 1 1 1 1 Nest seq_vileres 1 100 75 50 -50 -40 -33 40 70 66 20 75 55 75 55 2 29 29 29 5 228 294 63 168 90 190 92 185 235 80 130 80 130 110 339 430 80 130 140 228 110 Act 4 Cast B Act 4 Champ B Act 4 Unique B Act 4 (N) Cast B Act 4 (N) Champ B Act 4 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +vilechild3Kyovoshad 1213 vilechild1 vilechild4 2 GrotesqueWyrm vilechild3 vilekind VileDog VC 1 2 3 10 12 2 30 57 85 vilechild vilechild 9 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 40 70 25 25 60 55 75 25 2 47 47 47 5 55 84 84 89 48 74 151 80 100 70 40 40 70 85 146 183 70 40 70 123 85 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Map Cast t3 Map Champ t3 Map Unique t3 0 +deathmauler4Kyovoshad 1214 deathmauler1 deathmauler5 3 Death Mauler4 deathmauler4 deathmauler DeathMauler m5 1 4 5 5 5 2 40 61 82 deathmauler deathmauler 10 15 15 15 75 75 75 65 65 65 20 20 20 80 80 80 1 1 1 1 DeathMaul seq_deathmaulerdig 6 100 85 75 -50 -40 -33 25 0 50 25 25 75 2 50 50 50 5 124 152 126 191 53 77 251 115 145 95 105 75 140 115 210 265 95 105 131 245 115 Act 5 H2H B Act 5 Champ B Act 5 Unique B Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +skmage_ltng1Kyovoshad 1215 skmage_ltng1 skmage_ltng2 1 ReturnedMage skmage_ltng1 skeleton SkeletonMage SK 1 1 2 4 4 4 4 8 40 70 sk_mage sk_mage 10 15 15 15 35 65 85 9 10 11 30 30 30 5 6 7 0 30 50 18 17 16 20 20 20 5 5 5 skmage4 1 1 1 1 1 SkeletonRaise seq_skeletonraise 1 -50 -40 -25 30 50 50 60 35 25 70 75 45 75 2 9 9 9 5 56 84 84 56 95 120 90 110 174 220 90 110 A1 ltng 100 40 150 100 40 200 100 72 360 Act 1 Cast B Act 1 Champ B Act 1 Unique B Act 1 (N) Cast B Act 1 (N) Champ B Act 1 (N) Unique B Map Cast t3 Map Champ t3 Map Unique t3 0 +corruptrogue1DjinnLight 1217 corruptrogue1 corruptrogue2 0 DarkHunter corruptrogue1 corruptrogue CorruptRogue CR 1 2 3 5 5 2 2 36 67 corruptrogue corruptrogue 10 15 14 13 60 70 80 15 10 7 75 80 85 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 50 50 75 45 2 12 12 12 5 58 101 84 78 34 101 101 60 100 95 95 55 110 130 126 210 95 95 68 137 130 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +cr_lancer1DjinnLight 1218 cr_lancer1 cr_lancer2 0 DarkSpearwoman cr_lancer1 corruptrogue CorruptLancer CR 1 1 2 4 4 1 2 36 67 cr_lancer cr_lancer 10 15 14 13 60 60 60 75 80 85 9 8 7 0 40 55 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 45 33 35 75 45 55 2 4 4 4 5 86 129 84 91 67 134 101 80 115 95 85 65 130 140 168 242 95 85 81 162 140 Act 1 H2H A Act 1 Champ A Act 1 Unique A Act 1 (N) H2H A Act 1 (N) Champ A Act 1 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +imp1DjinnLight 1219 imp1 imp2 0 Imp1 imp1 imp Imp ip 1 1 3 4 7 7 1 31 58 80 imp imp 11 15 14 13 25 25 25 14 14 14 10 10 10 12 12 12 impmiss21 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 1 Imp Fireball S2 1 Imp Fire Missile A1 1 Imp Inferno SC 1 100 100 100 -50 -40 -33 0 25 75 25 25 25 2 30 30 30 5 45 65 84 113 45 65 110 120 95 137 110 120 A1 fire 100 40 70 100 80 110 100 110 160 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t2 Map Champ t2 Map Unique t2 0 +sandraider3DjinnLight 1220 sandraider1 sandraider4 2 Invader sandraider3 sandraider SandRaider SR 1 3 4 6 6 1 18 47 78 sandraider sandraider 10 15 14 13 70 50 10 85 90 95 70 80 90 13 9 6 50 50 50 1 1 1 1 1 1 Fire Hit seq_firehit 3 100 75 66 -50 -45 -40 25 0 65 50 50 35 2 34 34 34 5 135 211 84 117 67 92 176 110 140 180 80 100 250 135 180 110 130 65 110 175 110 140 180 80 100 250 284 378 110 130 81 137 175 88 149 180 100 125 250 S1 fire 100 100 130 100 120 150 100 170 210 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +fingermage2DjinnLight 1221 fingermage1 fingermage3 1 Strangler fingermage2 fingermage FingerMage homing missiles FR 1 1 3 10 16 1 27 57 84 fingermage fingermage 10 15 14 13 60 60 60 60 75 85 60 60 60 40 40 40 15 20 26 5 5 5 40 40 40 12 10 8 1 1 1 1 1 FingerMageSpider S1 4 100 66 33 -50 -40 -25 50 50 60 60 55 0 45 75 35 50 2 27 27 27 5 152 209 84 120 53 124 93 80 110 120 135 55 120 120 168 231 120 135 68 149 120 Act 4 Wraith B Act 4 Champ B Act 4 Unique B Act 4 (N) Wraith B Act 4 (N) Champ B Act 4 (N) Unique B Map Wraith t2 Map Champ t2 Map Unique t2 0 +succubuswitch3DjinnLight 1222 succubuswitch1 succubuswitch4 2 StygianFury succubuswitch3 succubus SuccubusWitch 0C 1 1 3 4 9 9 1 35 62 83 succubus succubus 10 15 14 13 90 90 90 25 25 25 0 30 40 0 8 12 90 90 90 15 14 13 80 80 80 66 66 66 1 1 1 1 1 MonAmplifyDamage S2 3 MonWeaken S2 3 Defense Curse S2 2 Blood Mana S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 25 25 25 60 50 25 2 50 50 50 5 95 152 107 133 46 87 139 60 90 115 145 50 90 120 126 189 115 145 63 112 120 A2 mag 100 40 75 100 40 75 100 50 85 Act 5 Cast B Act 5 Champ B Act 5 Unique B Act 5 (N) Cast B Act 5 (N) Champ B Act 5 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +clawviper7DjinnLight 1223 clawviper1 clawviper8 4 PitViper clawviper7 clawviper ClawViperEx SD 1 1 2 3 6 10 1 35 61 83 clawviper clawviper 10 15 14 13 60 65 65 10 13 15 90 90 90 85 90 90 5 5 5 1 1 1 18 18 18 50 50 50 viper_bonespear 1 1 1 1 1 1 MonCharge seq_serpentcharge 5 100 75 50 -50 -45 -40 25 50 50 50 50 0 0 75 20 50 75 2 20 20 20 5 70 95 115 100 65 90 150 100 130 150 70 95 115 100 65 90 150 100 130 150 147 200 115 100 65 90 150 100 130 150 A1 mag 100 50 100 100 50 100 100 65 125 A2 pois 50 33 33 75 50 33 33 100 50 33 33 125 Act 5 H2H A Act 5 Champ A Act 5 Unique A Act 5 (N) H2H A Act 5 (N) Champ A Act 5 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +scarab1DjinnLight 1224 scarab1 scarab2 4 DungSoldier scarab1 scarab Scarab SC 1 scarab1 1 1 2 4 2 4 4 4 1 14 43 75 scarab scarab 10 15 14 13 75 80 84 50 50 50 15 13 12 35 45 55 20 24 28 1 1 1 1 1 MonJab seq_scarabjab 1 100 75 50 -50 -40 -25 50 0 50 65 35 50 2 15 15 15 5 67 111 84 125 51 151 94 51 121 94 1 2 95 70 110 145 125 55 110 120 55 110 140 40 70 95 147 231 145 125 68 137 120 74 149 140 50 90 95 A1 ltng 20 10 20 20 15 30 20 20 40 Act 2 H2H A Act 2 Champ A Act 2 Unique A Act 2 (N) H2H A Act 2 (N) Champ A Act 2 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +flyingscimitarDjinnLight 1225 flyingscimitar 0 FlyingScimitar flyingscimitar construct FlyingScimitar ST 1 3 6 4 4 1 12 45 87 flyingscimitar flyingscimitar 10 10 10 10 90 90 90 90 95 99 8 8 8 40 50 60 1 1 1 1 1 MonCharge seq_pinheadsmite 1 -50 -25 70 100 25 50 50 75 75 75 2 13 13 13 5 97 131 84 83 38 113 93 100 135 150 140 75 120 150 221 332 150 119 125 174 150 Flying Scimitar Flying Scimitar Flying Scimitar Flying Scimitar (N) Flying Scimitar (N) Flying Scimitar (N) Map H2H t1 Map Champ t1 Map Unique t1 0 +wraith3DjinnLight 1216 wraith1 wraith4 2 Specter wraith3 wraith Wraith drains mana WR 1 2 3 6 6 1 19 48 79 wraith wraith 10 15 14 13 70 80 80 8 6 4 80 85 90 1 1 1 1 1 1 100 66 33 -50 -33 0 40 50 50 60 0 50 25 20 70 75 2 19 19 19 5 86 173 84 92 62 101 93 65 90 130 105 60 105 95 137 189 130 105 75 131 95 A1 mana 50 38 69 50 100 200 50 200 300 Act 2 Wraith C Act 2 Champ C Act 2 Unique C Act 2 (N) Wraith C Act 2 (N) Champ C Act 2 (N) Unique C Map Wraith t2 Map Champ t2 Map Unique t2 0 +clawviper3DjinnDark 1226 clawviper1 clawviper4 2 Salamander clawviper3 clawviper ClawViper SD 1 2 3 5 12 1 18 46 77 clawviper clawviper 10 15 14 13 50 55 55 8 10 12 85 85 85 70 70 70 9 9 8 1 1 1 1 1 1 1 1 1 SerpentCharge seq_serpentcharge 1 100 75 50 -50 -45 -40 40 70 20 0 35 65 65 45 2 18 18 18 5 66 108 84 78 51 92 92 59 101 92 75 110 125 100 60 80 135 60 105 135 107 157 125 100 76 102 135 60 115 145 A1 fire 100 50 91 100 60 70 100 72 84 Act 2 H2H B Act 2 Champ B Act 2 Unique B Act 2 (N) H2H B Act 2 (N) Champ B Act 2 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +councilmember3DjinnDark 1227 councilmember1 0 Council Member councilmember3 councilmember3 councilmember HighPriest HP 1 1 1 10 12 1 25 56 88 councilmember councilmember 11 15 13 12 65 65 65 20 20 15 125 100 75 45 50 50 80 80 80 9 9 9 12 12 12 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 7 ZakarumHeal S1 4 100 85 66 -50 -33 -25 50 25 65 75 30 30 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 50 120 140 284 498 110 150 64 152 140 Council Council Council Council (N) Council (N) Council (N) Council (H) Council (H) Council (H) 0 +arach4DjinnDark 1228 arach1 arach5 0 FlameSpider arach4 arach Arach SP 1 4 4 8 9 1 22 50 79 arach arach 10 15 14 13 75 75 75 50 50 50 33 35 40 8 10 10 40 40 40 1 1 1 1 1 SpiderLay A2 4 100 75 50 -50 -40 -25 50 0 75 25 45 75 3 22 22 22 5 151 192 85 113 93 151 94 150 190 135 110 70 105 100 214 270 135 110 89 133 100 A1 fire 40 21 42 40 25 50 40 30 60 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t2 Map Champ t2 Map Unique t2 0 +imp2DjinnDark 1229 imp1 imp3 1 Imp2 imp2 imp Imp ip 1 1 3 4 7 7 1 33 60 83 imp imp 10 15 14 13 5 5 5 25 25 25 45 55 65 7 7 7 impmiss22 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 6 Imp Fireball S2 6 Imp Fire Missile A1 6 Imp Inferno SC 6 100 100 100 -50 -40 -33 0 25 75 75 30 25 2 32 32 32 5 45 65 84 119 45 65 110 120 64 92 110 120 A1 fire 100 40 70 100 80 110 100 108 168 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t2 Map Champ t2 Map Unique t2 0 +vampire3DjinnDark 1230 vampire1 vampire4 2 DarkLord vampire3 vampire Vampire steals life VA 1 1 1 3 7 7 1 24 55 83 vampire vampire 11 15 14 13 76 76 76 30 60 70 26 27 27 25 31 43 7 7 7 1 1 1 1 1 1 VampireFireball SC 8 VampireFirewall SC 18 VampireMeteor SC 16 VampireMissile SC 8 100 85 75 -50 -40 -25 50 50 40 50 50 40 0 35 75 75 50 3 24 24 24 5 153 211 85 110 51 119 92 150 200 100 150 50 100 120 214 284 100 150 64 127 120 A1 cold 70 43 62 25 70 50 100 50 70 60 120 75 Act 3 Cast B Act 3 Champ B Act 3 Unique B Act 3 (N) Cast B Act 3 (N) Champ B Act 3 (N) Unique B Map Cast t2 Map Champ t2 Map Unique t2 0 +bloodlord3DjinnDark 1231 bloodlord1 bloodlord4 0 Blood Lord3 bloodlord3 bloodlord BloodLord L3 1 1 2 9 9 1 36 61 82 bloodlord bloodlord 10 15 14 13 90 90 90 85 85 85 70 70 70 10 10 10 1 1 1 1 BloodLordFrenzy A2 1 100 85 75 -30 -20 -10 0 35 65 35 33 45 2 50 50 50 5 284 379 126 260 66 148 188 66 148 188 240 300 130 210 80 150 180 80 150 180 341 426 130 210 102 191 180 80 165 200 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H C Act 5 (N) Champ C Act 5 (N) Unique C Map H2H t2 Map Champ t2 Map Unique t2 0 +corruptrogue5DjinnDark 1232 corruptrogue1 corruptrogue6 4 FleshHunter corruptrogue5 corruptrogue CorruptRogue CR 1 4 5 8 12 1 23 53 84 corruptrogue corruptrogue 10 15 14 13 99 99 99 5 5 5 90 99 100 100 100 100 20 50 75 1 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 35 20 45 45 55 55 2 40 40 40 5 65 107 85 78 47 121 92 60 100 95 95 55 110 130 85 142 95 95 70 140 130 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +cr_archer5DjinnDark 1233 cr_archer1 cr_archer6 4 FleshArcher cr_archer5 corruptrogue CorruptArcher CR 1 1 3 4 7 10 1 24 54 85 cr_archer cr_archer 10 15 14 13 99 99 99 85 97 99 6 6 6 40 50 60 20 20 20 12 12 12 cr_arrow5 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 15 20 45 45 55 55 2 45 45 45 5 97 137 85 91 60 90 252 55 95 90 100 60 90 150 78 135 90 100 76 114 150 A1 fire 10 50 70 20 72 96 Act 3 Miss B Act 3 Champ B Act 3 Unique B Act 3 (N) Miss B Act 3 (N) Champ B Act 3 (N) Unique B Map Miss t2 Map Champ t2 Map Unique t2 0 +cr_lancer5DjinnDark 1234 cr_lancer1 cr_lancer6 4 FleshLancer cr_lancer5 corruptrogue CorruptLancer CR 1 3 4 7 12 1 24 53 84 cr_lancer cr_lancer 10 15 14 13 99 99 99 90 99 99 5 5 5 0 60 75 15 12 10 1 1 1 1 1 1 100 100 100 -50 -40 -33 20 20 35 20 45 45 55 55 2 24 24 24 5 87 131 85 90 57 144 92 80 115 95 85 65 130 140 114 164 95 85 83 165 140 A1 fire 10 70 90 20 84 108 Act 3 H2H B Act 3 Champ B Act 3 Unique B Act 3 (N) H2H B Act 3 (N) Champ B Act 3 (N) Unique B Map H2H t2 Map Champ t2 Map Unique t2 0 +councilmemberBlood 1235 councilmember1 0 Council Member councilmember1 councilmember1 councilmember HighPriest HP 1 1 1 6 12 1 25 56 88 councilmember councilmember 11 12 12 12 75 75 75 25 25 15 125 100 75 40 45 45 70 75 75 8 8 8 15 15 15 30 30 30 highpriestlightning 1 1 1 1 1 MonHydra S1 4 100 85 66 -50 -33 -25 15 35 75 80 50 40 0 25 25 25 5 191 381 85 149 51 119 93 200 350 110 150 70 140 140 171 192 110 128 87 156 140 Council Council Council Council (N) Council (N) Council (N) Map Cast t3 Map Champ t3 Map Unique t3 0 +fetish2ruins 1236 fetish1 fetish3 1 Fetish fetish2 fetish Fetish FE 1 fetish2 1 1 1 2 1 2 7 7 1 21 49 79 fetish fetish 10 15 14 13 100 100 100 10 9 8 4 4 4 33 33 33 1 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 0 25 75 50 50 50 2 21 21 21 5 64 107 85 79 65 101 94 55 80 125 75 60 95 95 110 160 125 75 80 150 95 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +fetishblow2ruins 1237 fetishblow1 fetishblow3 1 Fetish fetishblow2 fetish FetishBlowgun FC 1 1 fetishblow2 1 1 1 2 1 2 7 7 1 21 49 79 fetishblow fetishblow 10 15 14 13 20 20 20 30 30 30 blowgun 1 1 1 1 1 1 SkeletonRaise seq_fethisraise 1 100 100 100 -50 -40 -33 0 25 75 50 50 50 2 28 28 28 5 64 107 85 65 15 33 126 45 75 110 90 20 33 110 90 150 110 90 40 66 110 A1 pois 7 10 10 25 12 50 50 50 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t1 Map Champ t1 Map Unique t1 0 +imp1phlegethon 1238 imp1 imp2 0 Imp1 imp1 imp Imp ip 1 1 3 4 7 7 1 31 58 80 imp imp 11 15 14 13 25 25 25 14 14 14 10 10 10 12 12 12 impmiss21 1 1 1 1 1 1 1 Imp Teleport S1 1 ImpBolt S2 3 Imp Fireball S2 3 Imp Fire Missile A1 3 Imp Inferno SC 1 100 100 100 -50 -40 -33 25 25 75 25 35 75 2 30 30 30 5 45 65 84 113 45 65 110 120 110 160 110 120 A1 fire 100 40 70 100 80 110 100 90 140 Act 5 Cast A Act 5 Champ A Act 5 Unique A Act 5 (N) Cast A Act 5 (N) Champ A Act 5 (N) Unique A Map Cast t1 Map Champ t1 Map Unique t1 0 +frogdemon2Ureh 1239 frogdemon1 frogdemon3 1 Bog Creature voidFrog frogdemon FrogDemon FD 1 1 1 3 10 10 1 22 50 80 frogdemon frogdemon 10 13 13 13 70 75 90 20 25 30 50 65 80 50 60 70 25 40 55 12 12 12 14 12 9 9 9 9 frogfire 1 1 1 Submerge seq_froghidden 1 Emerge S1 1 100 85 75 -50 -40 -33 65 65 50 50 65 2 22 22 22 5 131 172 85 110 72 158 94 110 140 95 90 65 95 100 235 265 95 90 120 150 100 A1 fire 100 80 120 Act 3 H2H A Act 3 Champ A Act 3 Unique A Act 3 (N) H2H A Act 3 (N) Champ A Act 3 (N) Unique A Map H2H t3 Map Champ t3 Map Unique t3 0 +succubus4Ureh 1240 succubus1 succubus5 3 Hell Temptress succubus4 succubus Succubus 0B 1 1 1 3 13 13 1 40 63 84 succubus succubus 10 13 13 13 90 92 95 50 25 10 50 50 50 25 25 25 15 13 11 15 15 15 3 3 4 50 80 1 1 1 1 1 1 1 Defense Curse S2 2 MonLowerRes S2 2 SuccubusBolt S2 1 100 85 75 -50 -40 -33 15 20 75 40 55 2 50 50 50 5 96 152 107 150 45 85 125 60 90 115 90 50 90 155 185 215 115 90 105 145 155 A2 mag 100 40 75 100 40 75 100 40 75 Act 5 H2H C Act 5 Champ C Act 5 Unique C Act 5 (N) H2H B Act 5 (N) Champ B Act 5 (N) Unique B Map H2H t3 Map Champ t3 Map Unique t3 0 +vilechild1Riverofblood 1241 vilechild1 vilechild2 0 FleshBeast vilechild1 vilekind VileDog VC 1 1 2 8 10 1 24 56 82 vilechild vilechild 9 15 14 13 80 85 90 10 10 10 80 85 90 1 1 1 1 1 1 100 75 50 -50 -40 -33 25 35 35 75 2 38 38 38 5 57 85 85 76 44 76 152 50 70 70 40 40 70 85 120 160 70 40 80 140 85 Act 4 Cast A Act 4 Champ A Act 4 Unique A Act 4 (N) Cast A Act 4 (N) Champ A Act 4 (N) Unique A Act 4 (H) Cast A Act 4 (H) Champ A Act 4 (H) Unique A 0 diff --git a/api/src/game-data/pd2/season-13/SkillDesc.txt b/api/src/game-data/pd2/season-13/SkillDesc.txt new file mode 100644 index 0000000..668b585 --- /dev/null +++ b/api/src/game-data/pd2/season-13/SkillDesc.txt @@ -0,0 +1,260 @@ +skilldesc SkillPage SkillRow SkillColumn ListRow ListPool IconCel str name str short str long str alt str mana descdam ddam calc1 ddam calc2 p1dmelem p1dmmin p1dmmax p2dmelem p2dmmin p2dmmax p3dmelem p3dmmin p3dmmax descatt descmissile1 descmissile2 descmissile3 descline1 desctexta1 desctextb1 desccalca1 desccalcb1 descline2 desctexta2 desctextb2 desccalca2 desccalcb2 descline3 desctexta3 desctextb3 desccalca3 desccalcb3 descline4 desctexta4 desctextb4 desccalca4 desccalcb4 descline5 desctexta5 desctextb5 desccalca5 desccalcb5 descline6 desctexta6 desctextb6 desccalca6 desccalcb6 dsc2line1 dsc2texta1 dsc2textb1 dsc2calca1 dsc2calcb1 dsc2line2 dsc2texta2 dsc2textb2 dsc2calca2 dsc2calcb2 dsc2line3 dsc2texta3 dsc2textb3 dsc2calca3 dsc2calcb3 dsc2line4 dsc2texta4 dsc2textb4 dsc2calca4 dsc2calcb4 dsc3line1 dsc3texta1 dsc3textb1 dsc3calca1 dsc3calcb1 dsc3line2 dsc3texta2 dsc3textb2 dsc3calca2 dsc3calcb2 dsc3line3 dsc3texta3 dsc3textb3 dsc3calca3 dsc3calcb3 dsc3line4 dsc3texta4 dsc3textb4 dsc3calca4 dsc3calcb4 dsc3line5 dsc3texta5 dsc3textb5 dsc3calca5 dsc3calcb5 dsc3line6 dsc3texta6 dsc3textb6 dsc3calca6 dsc3calcb6 dsc3line7 dsc3texta7 dsc3textb7 dsc3calca7 dsc3calcb7 eol +attack 0 0 0 0 0 2 skillname0 skillsd0 skillld0 skillan0 1 2 0 +kick 0 0 0 -1 0 0 skillname1 skillsd1 skillld1 skillan1 2 0 +throw 0 0 0 0 0 6 skillname2 skillsd2 skillld2 skillan2 3 3 0 +unsummon 0 0 0 0 0 4 skillname3 skillsd3 skillld3 skillan3 0 +left hand throw 0 0 0 0 0 12 skillname4 skillsd4 skillld4 skillan4 4 4 0 +left hand swing 0 0 0 -1 0 10 skillname5 skillsd5 skillld5 skillan5 0 +magic arrow 1 1 2 1 0 0 skillname6 skillsd6 skillld6 skillan6 StrSkill3 26 1 1 10 11 47 StrSkill39 (enma * 3) / 4 (exma * 3) / 4 8 7 StrSkill9 1 + (blvl / 5) 66 Convphy2elemalt 50 73 WeapDamsk 3 4 18 ExtraMagicArrow 40 Sksyn skillname6 2 63 skillname8 Magdplev par8 63 skillname17_PD2 Magdplev par8 63 skillname22 Magdplev par8 0 +fire arrow 1 2 3 1 0 2 skillname7 skillsd7 skillxld7 skillan7 StrSkill3 26 1 firearrow firewall 1 22 47 StrSkill5 enma / 2 exma / 2 8 7 StrSkill9 "min(14,2+(lvl/par2))" 66 Convphy2magalt 50 73 WeapDamsk 1 2 40 Sksyn skillname7 2 63 skillname6 Firedplev par8 63 skillname27 Firedplev par7 0 +inner sight 2 1 1 2 0 4 skillname8 skillsd8 skillld8 skillan8 StrSkill3 1 19 StrSkill18 "min(ln56, 30)" 5 StrSkill25 -edmn 3 EnemyAtkRateStr percent -"min(9+(lvl*par7),40)" 12 StrSkill20 ln34 0 +critical strike 2 1 3 2 0 6 skillname9 skillsd9_PD2 skillld9_PD2 skillan9 StrSkill3 7 StrSkill24 dm12 0 +jab 3 1 1 3 0 8 skillname10 skillsd10 skillld10 skillan10 StrSkill3 7 clc1 1 1 2 StrSkill4 StrSkill23 clc1 2 StrSkill22 StrSkill23 toht 25 StrSkill61 40 Sksyn skillname10 2 63 skillname30 Damplev par8 0 +cold arrow 1 2 1 1 0 10 skillname11 skillsd11 skillxld11 skillan11 StrSkill3 26 1 1 31 StrSkill13 edln / 4 47 StrSkill6 enma / 2 exma / 2 8 7 StrSkill9 "(min(12,2+(lvl/par2))) + stat('extra_cold_arrows'.accr)" 66 Convphy2magalt 50 73 WeapDamsk 1 2 40 Sksyn skillname11 2 63 skillname6 Colddplev par8 63 skillname21 Colddplev par7 0 +multiple shot 1 2 2 1 0 12 skillname12 skillsd12 skillld12 skillan12 StrSkill3 7 clc4 1 1 9 7 StrSkill9 "min(24,ln12)" 8 2 StrSkill4 StrSkill23 clc4 18 StrMultishotPierce 0 +dodge 2 4 2 2 0 14 skillname13 skillsd13_PD2 skillld13 skillan13 StrSkill3 7 StrPercentFHR 4 + lvl 7 StrSkill24 dm12 18 StrDodgeCooldown 0 +power strike 3 2 2 3 0 16 skillname14 skillsd14_PD2 skillld14 skillan14 StrSkill3 5 1 powerstrikenova2 1 59 NovaDmgStr m1en * (100 + stat('passive_ltng_mastery'.accr)) / 100 m1ex * (100 + stat('passive_ltng_mastery'.accr)) / 100 10 9 8 18 StrPowerStrikeNova 40 Sksyn skillname14 2 63 skillname34 Ltngdplev par8 63 skillname34 NovaLtngdplev par8 63 skillname20 Ltngdplev par8 63 skillname20 NovaLtngdplev par8 0 +poison javelin 3 1 3 3 0 18 skillname15 skillsd15 skillld15 skillan15 StrSkill3 22 1 1 14 40 Sksyn skillname15 2 63 skillname25 Poisdplev par8 63 skillname19_PD2 Poisdplev par8 0 +exploding arrow 1 4 3 1 0 20 skillname16 skillsd16 skillxld16 skillan16 StrSkill3 6 1 1 11 10 9 8 7 StrSecondaryExplosions "min((par2+(lvl/5)),8)" 19 StrSkill18 par1+(blvl / 4) 40 Sksyn skillname16 2 63 skillname6 Firedplev par7 63 skillname27 Firedplev par8 0 +slow movement 2 3 1 2 0 22 skillname17_PD2 skillsd17_PD2 skillld17_PD2 skillan17_PD2 StrSkill3 1 19 StrSkill18 "min(ln56,24)" 3 StrSkill67 StrSkill23 "max(edln,,25)" 12 StrSkill20 ln34 3 SlowMoveStr percent -"min(ln78,65)" 0 +avoid 2 0 2 2 0 24 skillname18 skillsd18 skillld18 skillan18 StrSkill3 7 StrSkill24 dm12 0 +jav mastery 3 2 1 3 0 26 skillname19_PD2 skillsd19_PD2 skillld19_PD2 skillan19 StrSkill3 1 51 deadlystrikemastery edmn 2 StrSkill4 StrSkill23 madm 0 +lightning bolt 3 3 3 3 0 28 skillname20 skillsd20 skillld20 skillan20 StrSkill3 21 1 11 10 9 8 66 Convphy2magalt 100 40 Sksyn skillname20 2 63 skillname14 Ltngdplev par8 63 skillname35 Ltngdplev par8 0 +ice arrow 1 3 1 1 0 30 skillname21 skillsd21 skillxld21 skillan21 StrSkill3 5 1 1 12 StrSkill62 edln 10 9 8 40 Sksyn skillname21 2 63 skillname6 Colddplev par6 63 skillname11 Colddplev par8 63 skillname31 Colddplev par8 63 skillname11 FrezLenplev par7 63 skillname31 FrezLenplev par7 0 +guided arrow 1 4 2 1 0 32 skillname22 skillsd22 skillld22 skillan22 StrSkill3 7 ln34 1 73 WeapDamsk 1 2 2 StrSkill4 StrSkill23 ln34 66 Convphy2elemalt skill('Magic Arrow'.blvl) / 2 40 Sksyn skillname22 2 42 skillname6 MagdConvplev 0 5 0 +penetrate 2 5 3 2 0 34 skillname23 skillsd23 skillld23_PD2 skillan23 StrSkill3 2 StrSkill10 StrSkill23 ln12 2 StrPhysPierce StrSkill23 blvl/2 18 StrPenPhysPierce 0 +charged strike 3 4 2 3 0 36 skillname24 skillsd24 skillld24 skillan24 StrSkill3 17 1 10 9 3 StrSkill72 StrSkill73 "min(12,par1+lvl/par2)" 40 Sksyn skillname24 2 63 skillname14 Ltngdplev par8 63 skillname34 Ltngdplev par8 0 +plague javelin 3 4 3 3 0 38 skillname25 skillsd25 skillld25 skillan25 StrSkill3 22 1 1 14 2 StrSkill22 StrSkill23 toht 12 StrCooldown 25 40 Sksyn skillname25 2 63 skillname15 Poisdplev par8 63 skillname19_PD2 Poisdplev par8 / 2 0 +strafe 1 5 2 1 0 40 skillname26 skillsd26 skillld26 skillan26 StrSkill3 7 ln12 + (skill('Penetrate'.blvl) * par8) 1 1 2 StrSkill4 StrSkill23 ln12 + (skill('Penetrate'.blvl) * par8) 3 StrSkill86 StrSkill87 "min(lvl+par3,par4)" 8 40 Sksyn skillname26 2 63 skillname23 Damplev par8 0 +immolation arrow 1 6 3 1 0 42 skillname27 skillsd27 skillxld27 skillan27 StrSkill3 6 1 immolationarrow fire 1 22 23 StrSkill82 24 StrSkill83 2 StrSkill22 StrSkill23 toht 40 Sksyn skillname27 2 63 skillname6 Firedplev par8 63 skillname16 Firedplev par8 63 skillname7 Firedplev par8 0 +dopplezonnew 2 4 1 2 0 44 DopplezonNew DopplezonNewSD DopplezonNewLD skillan28 StrSkill3 1 12 StrSkill20 len 5 StrSkill22 (200 + lvl*par2) * (100 + skill('Penetrate'.ln12)) / 100 13 (lvl-1)*par1 10 9 18 StrExtraDecoy 40 Sksyn skillname28 2 63 skillname26 Damplev par8 63 skillname32 Damplev par8 25 skillname9 25 skillname33 25 skillname23 63 0 +evade 2 2 2 2 0 46 skillname29 skillsd29 skillld29_PD2 skillan29 StrSkill3 6 StrPercentMoveSpeed edmx 7 StrSkill24 dm12 18 StrDodgeCooldown 0 +fend 3 4 1 3 0 48 skillname30 skillsd30 skillld30 skillan30 StrSkill3 7 clc2 1 1 2 StrSkill4 StrSkill23 ln34 + (skill('Jab'.blvl) * par8) 2 StrSkill30 StrSkill23 toht 2 Attack3 SplashSeqBonus 60 2 Attack2 SplashSeqBonus 40 2 Attack1 SplashSeqBonus 20 40 Sksyn skillname30 2 63 skillname10 Damplev par8 0 +freezing arrow 1 6 1 1 0 50 skillname31 skillsd31 skillxld31 skillan31 StrSkill3 6 1 1 12 StrSkill62 edln 10 2 StrSkill22 StrSkill23 toht 19 StrSkill18 par1+(blvl / 4) 40 Sksyn skillname31 2 63 skillname11 Colddplev par6 63 skillname21 Colddplev par8 63 skillname21 FrezLenplev par7 0 +valkyrie 2 6 1 2 0 52 skillname32 skillsd32 skillld32 skillan32 StrSkill3 1 2 StrSkill31 StrSkill23 (lvl-1)*par3 4 StrSkill22 toht 5 StrPowerStrikeLevel 5+(lvl/2) 2 StrSkill4 StrSkill23 par2*(lvl-1) + 20*skill('Dopplezon'.blvl) 13 par1 * (lvl - 1) + skill('Dopplezon'.blvl) * par8 18 StrExtraValk 12 StrCooldown 25 40 Sksyn skillname32 2 63 skillname28 Hpplev par8 63 skillname28 Physdplev 20 63 skillname33 Ltngprcplev 2 67 skillname23 AttRateplev 40 25 StrValkPowerStrikeSyn 25 skillname9 0 +pierce 2 3 3 2 0 54 skillname33 skillsd33 skillld33 skillan33 StrSkill3 7 StrSkill24 edmn 0 +lightning strike 3 6 2 3 0 56 skillname34 skillsd34 skillld34 skillan34 StrSkill3 17 1 10 7 StrSkill11 clc2 40 Sksyn skillname34 2 63 skillname14 Ltngdplev par8 63 skillname24 Ltngdplev par8 0 +lightning fury 3 6 3 3 0 58 skillname35 skillsd35 skillld35 skillan35 StrSkill3 22 1 10 3 StrSkill72 StrSkill27 10 + (lvl / 5) 18 StrLightFuryBolts 40 Sksyn skillname35 2 63 skillname14 Ltngdplev par8 63 skillname20 Ltngdplev par8 0 +fire bolt 1 1 2 1 0 0 skillname36 skillsd36 skillld36 skillan36 StrSkill3 5 11 10 9 8 1 40 Sksyn skillname36 2 63 skillname47 Firedplev par8 63 Combustion Firedplev par8 0 +warmth 1 1 3 1 0 2 skillname37 skillsd37 skillld37_PD2 skillan37 StrSkill3 6 StrAttackRating toht 7 StrSkill23 ln12 0 +charged bolt 2 1 2 2 0 4 skillname38 skillsd38 skillld38 skillan38 StrSkill3 5 1 7 StrSkill27 "min(28,ln12)" 10 40 Sksyn skillname38 2 63 skillname43 Ltngdplev par8 63 skillname49 Ltngdplev par8 0 +ice bolt 3 1 2 3 0 6 skillname39 skillsd39 skillld39 skillan39 StrSkill3 5 1 11 10 9 8 40 Sksyn skillname39 2 63 skillname45 Colddplev par8 63 skillname55 Colddplev par8 0 +frozen armor 3 1 3 3 0 8 skillname40 skillsd40 skillld40 skillan40 StrSkill3 1 12 StrSkill62 ln56*(100+((skill('Shiver Armor'.blvl)+skill('Chilling Armor'.blvl))*par8))/100 12 StrSkill20 ln34+(skill('Chilling Armor'.blvl))*par7 3 StrSkill31 StrSkill23 ln12 40 Sksyn skillname40 2 67 skillname50 Secplev2 (par7 + 12)/25 63 skillname50 FrezLenplev par8 67 skillname60 Secplev2 (par7 + 12)/25 63 skillname60 FrezLenplev par8 0 +inferno 1 1 1 1 0 10 skillname41 skillsd41 skillld41 skillan41 StrSkill3 8 3 StrSkill3 StrSkill34 mps 19 StrSkill56 "min((ln12/2),36)" 3 StrEnemyFireRes StrSkill23 "-min((par5+(lvl<22)?lvl:(22+((lvl-22)/2))), 100)" 11 26 5 StrSkill115 par3 40 Sksyn skillname41 2 63 skillname46 Firedplev par8 63 skillname51 Firedplev par8 0 +static field 2 1 1 2 0 12 skillname42 skillsd42 skillxld42 skillan42 StrSkill3 1 19 StrSkill18 "min(ln12 / 2, 14)" 3 StrEnemyLtngRes StrSkill23 "min((par5+(lvl<22)?lvl:(22+((lvl-22)/2))), 100)" 12 StrSkill20 125 + (5 * skill('Lightning Mastery'.blvl)) 3 StrSkill33 StrSkill23 par4 40 Sksyn skillname42 2 42 skillname63 StrLtngMasterySynergy 0 2 0 +telekinesis 2 1 3 2 0 14 skillname43 skillsd43 skillld43 skillan43 StrSkill3 5 1 10 40 Sksyn skillname43 2 63 skillname38 Ltngdplev par8 63 skillname48 Ltngdplev par8 0 +frost nova 3 2 1 3 0 16 skillname44 skillsd44 skillld44 skillan44 StrSkill3 5 1 11 10 40 Sksyn skillname44 2 63 skillname39 Colddplev par8 63 skillname50 Colddplev par8 0 +ice blast 3 2 2 3 0 18 skillname45 skillsd45 skillld45 skillan45 StrSkill3 5 1 12 StrSkill62 edln 10 40 Sksyn skillname45 2 63 skillname39 Colddplev par8 63 skillname55 Colddplev par8 0 +blaze 1 2 1 1 0 20 skillname46 skillsd46_PD2 skillld46_PD2 skillan46 StrSkill3 9 blaze2ignite 1 2 StrSkill70 StrSkill23 dm34 23 StrSkill82 27 35 StrSkill83 (100 * skill('Blaze'.enms)) / 675 ((100 * skill('Blaze'.exms)) / 675) 12 StrSkill20 "min(ln12, 250)" 12 StrCooldown 50 40 Sksyn skillname46 2 63 skillname51 Firedplev par7 0 +fire ball 1 3 2 1 0 22 skillname47 skillsd47 skillld47 skillan47 StrSkill3 5 fireball 1 11 10 9 8 40 Sksyn skillname47 2 63 skillname36 Firedplev par8 63 Combustion Firedplev par8 0 +nova 2 3 1 2 0 24 skillname48 skillsd48 skillld48 skillan48 StrSkill3 5 1 10 40 Sksyn skillname48 2 63 skillname38 Ltngdplev par8 63 skillname43 Ltngdplev par8 0 +lightning 2 3 2 2 0 26 skillname49 skillsd49 skillld49 skillan49 StrSkill3 5 1 11 10 9 8 40 Sksyn skillname49 2 63 skillname38 Ltngdplev par8 63 skillname53 Ltngdplev par8 0 +shiver armor 3 3 3 3 0 28 skillname50 skillsd50 skillld50 skillan50 StrSkill3 5 1 11 10 3 StrSkill31 StrSkill23 ln12 2 StrFBR StrSkill23 10 + (blvl*2) 12 StrSkill20 ln34 18 StrShiverBlock 40 Sksyn skillname50 2 63 ColdEnchant Colddplev par8 0 +fire wall 1 3 1 1 0 30 skillname51 skillsd51 skillld51 skillan51 StrSkill3 9 firewallmaker 1 29 27 30 StrSkill82 12 StrCooldown 38 40 Sksyn skillname51 2 63 skillname46 Firedplev par8 0 +enchant 1 4 3 1 0 32 skillname52_PD2 skillsd52 skillld52_PD2 skillan52_PD2 StrSkill3 1 2 StrPartyAttackBonus StrSkill23 toht/2 2 StrSkill30 StrSkill23 toht 47 StrFireEnchantParty (edmn * (100 + stat('passive_fire_mastery'.accr))/100) / 2 (edmx * (100 + stat('passive_fire_mastery'.accr))/100) / 2 47 StrFireEnchantSelf (edmn * (100 + stat('passive_fire_mastery'.accr))/100) (edmx * (100 + stat('passive_fire_mastery'.accr))/100) 12 StrSkill20 ln12 40 Sksyn skillname52_PD2 2 63 skillname37 Firedplev par8 0 +chain lightning 2 5 2 2 0 34 skillname53 skillsd53 skillld53 skillan53 StrSkill3 5 1 10 7 StrSkill11 "min(ln34 / 4, 14)" 40 Sksyn skillname53 2 63 skillname38 Ltngdplev par8 63 skillname49 Ltngdplev par8 0 +teleport 2 4 3 2 0 36 skillname54 skillsd54_PD2 skillld54_PD2 skillan54 StrSkill3 1 7 StrPercentDamage -"max((par2-(edmn)), 0)" 0 +glacial spike 3 4 2 3 0 38 skillname55 skillsd55 skillld55 skillan55 StrSkill3 5 1 12 StrSkill62 ln34 * (100 + skill('Blizzard'.blvl) * par7) / 100 10 19 StrSkill18 ln12 40 Sksyn skillname55 2 63 skillname39 Colddplev par8 63 skillname45 Colddplev par8 63 skillname59 FrezLenplev par7 0 +meteor 1 5 1 1 0 40 skillname56 skillsd56 skillld56_PD2 skillan56 StrSkill3 5 meteorfire 1 22 10 9 12 StrCooldown 13 40 Sksyn skillname56 2 63 skillname41 Damplev par8 63 skillname46 Damplev par8 63 skillname47 Damplev par8 0 +thunder storm 2 5 1 2 0 42 skillname57 skillsd57 skillld57 skillan57 StrSkill3 5 1 10 12 StrSkill20 ln12 12 StrDelay par3 - (blvl * 25 / 20) 18 StrTStormDelay 40 Sksyn skillname57 2 63 skillname38 Ltngdplev par8 63 skillname48 Ltngdplev par8 0 +energy shield 2 6 3 2 0 44 skillname58 skillsd58 skillld58 skillan58 StrSkill3 1 3 StrSkill40 StrSkill23 "min(edmn,90)" 12 StrSkill20 ln12 7 StrESSkillEfficiency ("max(par5-blvl-(stat('es_efficiency'.accr)), 14)" * 100) / 16 18 StrEsBaseEfficiency 0 +blizzard 3 5 1 3 0 46 skillname59 skillsd59 skillld59 skillan59 StrSkill3 5 blizzardcenter 1 23 StrSkill20 10 19 StrSkill18 par1 12 StrCooldown 23 40 Sksyn skillname59 2 63 skillname39 Colddplev par8 63 skillname45 Colddplev par8 0 +chilling armor 3 5 3 3 0 48 skillname60 skillsd60_PD2 skillld60_PD2 skillan60_PD2 StrSkill3 5 1 10 3 StrSkill31 StrSkill23 ln12 2 StrSkill110 StrSkill23 5+blvl 12 StrSkill20 ln34+(skill('Shiver Armor'.blvl))*par7 18 StrChillingBlock 40 Sksyn skillname60 2 63 ColdEnchant Colddplev par8 0 +fire mastery 1 6 2 1 0 50 skillsname61 skillsd61 skillld61 skillan61 StrSkill3 2 StrFirePierce StrSkill23 "min(lvl, 30)" 2 StrSkill5 StrSkill23 ln12 0 +hydra 1 6 3 1 0 52 skillname62 skillsd62 skillld62_PD2 skillan62 StrSkill3 5 1 24 StrSkill113 12 StrSkill20 ln12 40 Sksyn skillname62 2 63 skillname36 Firedplev par8 63 LesserHydra Firedplev par8 0 +lightning mastery 2 6 2 2 0 54 skillname63 skillxsd63 skillxld63 skillan63 StrSkill3 2 StrSkill7 StrSkill23 ln12 0 +frozen orb 3 6 1 3 0 56 skillname64 skillsd64 skillld64 skillan64 StrSkill3 5 1 11 10 9 8 40 Sksyn skillname64 2 63 skillname39 Colddplev par8 63 skillname44 Colddplev par8 0 +cold mastery 3 6 2 3 0 58 skillname65 skillsd65 skillld65_PD2 skillan65 StrSkill3 2 StrColdPierce StrSkill23 "min(5+lvl, 45)" 2 StrSkill6 StrSkill23 ln34 0 +amplify damage 1 1 2 1 0 0 skillname66 skillsd66 skillld66 skillan66 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 2 StrPhysDmgResist StrSkill23 -(par5 + par6*lvl + (skill('CurMas'.blvl)/2)) 40 Sksyn skillname66 2 63 CurseMastery StrRedPhysDmgResplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +teeth 2 1 2 2 0 2 skillname67 skillsd67 skillld67 skillan67 StrSkill3 5 1 10 7 StrSkill28 "min(ln12,24)" 40 Sksyn skillname67 2 63 skillname68 Magdplev par8 63 skillname84 Magdplev par8 63 skillname93 Magdplev par8 0 +bone armor 2 2 3 2 0 4 skillname68 skillsd68 skillld68 skillan68 StrSkill3 1 3 StrSkill40 StrSkill41 ((stat('energy'.accr)*3) + edmx + ((skill('Bone Wall'.blvl) + skill('Bone Prison'.blvl)) * par8)) 12 StrCooldown 50 2 StrSkill21 StrSkill23 blvl*10 18 StrBoneArmorDefense 40 Sksyn skillname68 2 18 EnergyAbsorb 67 skillname78 Damabsplev par8 67 skillname88 Damabsplev par8 0 +skeleton mastery 3 1 1 3 0 6 skillname69 skillsd69_PD2 skillld69_PD2 skillan69 StrSkill3 1 70 StrSkeleAllPhys StrSkill4 lvl*par2 70 StrSkeleAll StrSkill42 lvl*par1 32 StrSkeleAll StrSkill70 "min(lvl, 40)" 0 +raise skeleton 3 1 3 3 0 8 skillname70_PD2 skillsd70 skillld70 skillan70_PD2 StrSkill3 1 36 StrSkill94 StrSkill44 "min((lvl < 4) ?lvl:(2+lvl/3), 8) + stat('extra_skele_war'.accr)" 13 (lvl < 4) ? 0 : (par2 * (lvl - 3)) skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par1) 5 StrSkill21 5+(lvl+skill('Skeleton Mastery'.lvl))*par5 5 StrSkill22 5+(lvl+skill('Skeleton Mastery'.lvl))*par4 2 StrSkill4 StrSkill23 ((lvl < 4) ? 0 : ((lvl-3)*par3)) 34 40 Sksyn skillname70_PD2 2 63 skillname69 Damplev par8 63 SummSkeleArcher Damplev par7 0 +dim vision 1 2 3 1 0 10 skillname71 skillsd71 skillld71_PD2 skillan71 StrSkill3 1 31 StrSkill20 ln34 19 StrSkill18 par1 + blvl / 3 6 StrAttackRating -(ln56 + skill('CurMas'.blvl)*par8) 40 Sksyn skillname71 2 67 CurseMastery StrRedARplev par8 0 +weaken 1 4 2 1 0 12 skillname72 skillsd72 skillld72 skillan72 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 3 StrSkill38 StrSkill23 -(ln56 + skill('CurMas'.blvl) / 2) 3 WeakenDef StrSkill23 -ln78 40 Sksyn skillname72 2 63 CurseMastery StrRedDmgplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +poison dagger 2 1 1 2 0 14 skillname73_PD2 skillsd73_PD2 skillld73_PD2 skillan73_PD2 StrSkill3 5 1 1 2 StrSkill22 StrSkill23 toht 14 3 StrPierces StrPercPoisRes -"min(ln12, 50)" 40 Sksyn skillname73_PD2 2 63 skillname68 Poisdplev par8 63 Desecrate Poisdplev par8 0 +corpse explosion 2 2 1 2 0 16 skillname74 skillsd74 skillld74 skillan74 StrSkill3 5 1 37 StrSkill18 ((par3+lvl*par4)>32)?32:(par3+lvl*par4) + stat('corpseexplosionradius'.accr) 10 9 38 StrSkill4 StrSkill46 par1 par2 1 40 Sksyn skillname74 2 63 skillname66 Damplev par8 63 Desecrate Damplev par8 63 skillname95 Damplev par8 0 +clay golem 3 2 2 3 0 18 skillname75 skillsd75 skillld75 skillan75 StrSkill3 1 3 Cgslow StrSkill23 dm34 4 StrSkill30 lvl*par8 39 12 StrCooldown 25 13 par7*lvl + skill('Golem Mastery'.ln12) + skill('BloodGolem'.blvl)*skill('BloodGolem'.par8) 7 StrCBChance 20 5 StrSkill21 100+skill('IronGolem'.lvl)*skill('IronGolem'.par8) 5 StrSkill22 40 + skill('Golem Mastery'.ln56) + (lvl*par8) 40 Sksyn skillname75 2 63 skillname79 Damplev par6 63 skillname85 Damplev par6 63 skillname90 Damplev par6 67 skillname90 Defplev skill('IronGolem'.par8) 63 skillname94 Damplev par6 0 +iron maiden 1 3 1 1 0 20 skillname76 skillsd76 skillld76 skillan76 StrSkill3 1 19 StrSkill18 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 12 StrSkill20 ln34 7 StrSkill55 ln56 + skill('CurMas'.blvl) * par8 40 Sksyn skillname76 2 63 CurseMastery StrIncDmgRet par8 42 CurseMastery StrIncRadiusplev 0 6 0 +terror 1 3 3 1 0 22 skillname77 skillsd77 skillld77 skillan77 StrSkill3 1 19 StrSkill18 par1 12 StrSkill20 par2 2 StrMoveSpeed StrSkill23 -(par3 + par4 * blvl + skill('CurMas'.blvl)) 18 StrTerrorMoveSpdDesc 40 Sksyn skillname77 2 63 CurseMastery StrRedMoveSpdplev 1 0 +bone wall 2 3 3 2 0 24 skillname78 skillsd78 skillld78 skillan78 StrSkill3 1 12 StrSkill20 par2 3 StrReturns StrDmgToAtt edmn 12 StrCooldown 25 13 (par1 * (lvl-1)) + ((skill('Bone Armor'.blvl)+skill('Bone Prison'.blvl))*par8) 40 Sksyn skillname78 2 63 skillname68 Bonewallplev par8 63 skillname88 Bonewallplev par8 0 +golem mastery 3 3 1 3 0 46 skillname79 skillsd79_PD2 skillld79 skillan79 StrSkill3 2 StrSkill89 StrSkill23 dm34 4 StrSkill30 ln56 2 StrSkill42 StrSkill23 lvl*par1 5 StrGolems 1 +blvl / 5 18 StrExtraGolems 0 +raise skeletal mage 3 3 3 3 0 28 skillname80 skillsd80 skillld80 skillan80 StrSkill3 1 13 skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par1) 43 StrSkill5 (miss('necromage3'.edns)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_fire_mastery'.accr))*256)/100)+256))/256 (miss('necromage3'.edxs)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_fire_mastery'.accr))*256)/100)+256))/256 43 StrSkill6 (miss('necromage2'.edns)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_cold_mastery'.accr))*256)/100)+256))/256 (miss('necromage2'.edxs)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_cold_mastery'.accr))*256)/100)+256))/256 43 StrSkill7 (miss('necromage4'.edns)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_ltng_mastery'.accr))*256)/100)+256))/256 (miss('necromage4'.edxs)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_ltng_mastery'.accr))*256)/100)+256))/256 43 StrSkill8 StrNecroMagePsn (miss('necromage1'.edns)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_pois_mastery'.accr))*256)/100)+256))/16 (miss('necromage1'.edxs)*(((((skill('Skeleton Mastery'.lvl)*skill('Skeleton Mastery'.par3)+stat('passive_pois_mastery'.accr))*256)/100)+256))/16 36 StrSkill43a StrSkill44a "min((blvl < 4) ?blvl:(2+blvl/3), 8) + stat('extra_skele_mage'.accr) + stat('grims_extra_skele_mage'.accr)" 40 Sksyn skillname80 2 63 skillname69 Damplev par8 0 +confuse 1 4 3 1 0 30 skillname81 skillsd81 skillld81 skillan81 StrSkill3 1 31 StrSkill20 ln34 19 StrSkill18 par1 2 StrSkill106 StrSkill23 par5 + par6 * lvl + skill('CurMas'.blvl) * 5 40 Sksyn skillname81 2 63 CurseMastery StrAttSpdplev 5 0 +life tap 1 3 2 1 0 32 skillname82 skillsd82 skillld82 skillan82 StrSkill3 1 12 StrSkill20 "min(ln34, 500)" 19 StrSkill18 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 2 StrLifeSteal StrSkill23 par5 + par6 * blvl + skill('CurMas'.blvl) / 2 18 StrLifeTapInc 40 Sksyn skillname82 2 63 CurseMastery StrIncLLplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +poison explosion 2 3 1 2 0 34 skillname83 skillsd83 skillld83 skillan83 StrSkill3 5 1 14 40 Sksyn skillname83 2 63 skillname73_PD2 Poisdplev par8 63 skillname92 Poisdplev par8 0 +bone spear 2 4 2 2 0 36 skillname84 skillsd84_PD2 skillld84_PD2 skillan84 StrSkill3 5 1 11 10 5 StrSkillBoneSpears "max(1, 1 + ((lvl<15)?0:1) + ((lvl<25)?0:1) + stat('extra_bonespears'.accr))" 18 StrAddBoneSpear 40 Sksyn skillname84 2 63 skillname67 Magdplev par8 63 skillname93 Magdplev par8 63 skillname68 Magdplev par7 0 +bloodgolem 3 4 2 3 0 38 skillname85 skillsd85_PD2 skillld85_PD2 skillan85 StrSkill3 1 3 OpenWoundsDamage StrSkill34 edmx 39 6 StrLGOH ln12 12 StrCooldown 25 13 par7*lvl + skill('Golem Mastery'.ln12) 5 StrSkill21 120+skill('IronGolem'.lvl)*skill('IronGolem'.par8) 5 StrSkill22 60 + skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8) 40 Sksyn skillname85 2 63 skillname79 Damplev par3 63 skillname75 Damplev par3 67 skillname75 AttRateplev skill('Clay Golem'.par8) 63 skillname90 Damplev par3 67 skillname90 Defplev skill('IronGolem'.par8) 63 skillname94 Damplev par3 0 +attract 1 5 3 1 0 40 skillname86 skillsd86 skillxld86 skillan86 StrSkill3 1 31 StrSkill20 ln34 19 StrSkill18 par1 + blvl / 3 5 StrSkill25 -(ln56 + skill('CurMas'.blvl)*par8) 40 Sksyn skillname86 2 67 CurseMastery StrRedEneDefplev par8 0 +decrepify 1 5 1 1 0 42 skillname87 skillsd87 skillld87_PD2 skillan87 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 2 StrAttCastRate StrSkill23 -"min(par6 + lvl + skill('CurMas'.blvl),60)" 2 StrPhysDmgResist StrSkill23 -(10 + (lvl/3)) 2 StrMoveSpeed StrSkill23 -(par5 + lvl) 40 Sksyn skillname87 2 63 CurseMastery StrAttCastRateplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +bone prison 2 5 3 2 0 44 skillname88 skillsd88 skillld88 skillan88 StrSkill3 1 12 StrSkill20 par2 3 StrReturns StrDmgToAtt edmn 12 StrCooldown 125 13 (par1 * (lvl-1)) + ((skill('Bone Armor'.blvl)+skill('Bone Wall'.blvl))*par8) 40 Sksyn skillname88 2 63 skillname68 Bonewallplev par8 63 skillname78 Bonewallplev par8 0 +summon resist 3 0 0 3 0 26 skillname89 skillsd89 skillld89 skillan89 StrSkill3 2 StrSkill54 StrSkill23 dm12 0 +irongolem 3 5 2 3 0 48 skillname90 skillsd90 skillld90 skillan90 StrSkill3 1 4 StrSkill31 lvl*par8 7 StrSkill55 ln12 18 StrSkill112 12 StrCooldown 25 13 par7*lvl + skill('Golem Mastery'.ln12) + skill('BloodGolem'.blvl)*skill('BloodGolem'.par8) 5 StrSkill21 140+lvl*par8 5 StrSkill22 80 + skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8) 39 40 Sksyn skillname90 2 63 skillname79 Damplev par6 67 skillname75 AttRateplev skill('Clay Golem'.par8) 63 skillname75 Damplev par6 63 skillname85 Damplev par6 63 skillname94 Damplev par6 0 +lower resist 1 6 2 1 0 50 skillname91 skillsd91 skillld91 skillan91 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 3 StrSkill54 StrSkill23 -(1 * (par5 + par6*lvl + skill('CurMas'.blvl) / 2)) 40 Sksyn skillname91 2 63 CurseMastery StrLowResRedplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +poison nova 2 6 1 2 0 52 skillname92 skillsd92 skillld92 skillan92 StrSkill3 5 1 14 40 Sksyn skillname92 2 63 skillname73_PD2 Poisdplev par8 63 Desecrate Poisdplev par8 0 +bone spirit 2 6 2 2 0 54 skillname93 skillsd93 skillld93 skillan93 StrSkill3 5 1 10 40 Sksyn skillname93 2 63 skillname67 Magdplev par8 63 skillname84 Magdplev par8 63 skillname68 Magdplev par7 0 +firegolem 3 6 2 3 0 56 skillname94 skillsd94 skillld94 skillan94 StrSkill3 1 43 StrHolyFireDmg (sklvl('Holy Fire Fire Golem'.ln56.edns))+(sklvl('Holy Fire Fire golem'.ln56.edns)*stat('passive_fire_mastery'.accr))/100 (sklvl('Holy Fire Fire Golem'.ln56.edxs))+(sklvl('Holy Fire Fire Golem'.ln56.edxs)*stat('passive_fire_mastery'.accr))/100 43 StrFireDamage enms exms 3 StrSkill40 StrSkill103 dm12 12 StrCooldown 25 13 par7*lvl + skill('Golem Mastery'.ln12) + skill('BloodGolem'.blvl)*skill('BloodGolem'.par8) 5 StrSkill21 200+skill('IronGolem'.lvl)*skill('IronGolem'.par8) 5 StrSkill22 120 + skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8) 40 Sksyn skillname94 2 63 skillname79 Damplev par8 67 skillname75 AttRateplev skill('Clay Golem'.par8) 67 skillname90 Defplev skill('IronGolem'.par8) 63 skillname75 Damplev par8 63 skillname85 Damplev par8 63 skillname90 Damplev par8 0 +revive 3 6 3 3 0 58 skillname95 skillsd95 skillld95 skillan95 StrSkill3 1 12 StrSkill20 ln34 2 StrSkill4 StrSkill23 lvl*par2 + skill('Desecrate'.blvl)*par8 2 StrElemDmg StrSkill23 lvl*par6 + (skill('Desecrate'.blvl))*par8 / 2 5 StrSkill97 3 + blvl / 4 + stat('extra_revives'.accr) 4 StrMonSkillLevels blvl 40 Sksyn skillname95 2 63 Desecrate Damplev par8 63 Desecrate ElemDampLev par8 / 2 0 +sacrifice 1 2 1 1 0 0 skillname96 skillsd96_PD2 SacrificeLongDesc skillan96 StrSkill3 7 ln12+skill('Redemption'.blvl)*par8+skill('Fanaticism'.blvl)*par7 1 1 37 StrSkill18 "min(par4 + lvl / 3, 10)" 2 StrSkill4 StrSkill23 ln12+skill('Redemption'.blvl)*par8+skill('Fanaticism'.blvl)*par7 2 StrSkill10 StrSkill23 toht 68 StrSkill23 StrSkill47 "max(par3 - lvl/2, 2)" 40 Sksyn skillname96 2 63 skillname124 Damplev par8 63 skillname122 Damplev par7 0 +smite 1 1 3 1 0 2 skillname97 skillsd97 skillld97 skillan97 StrSkill3 10 1 12 StrSkill48 "min(250,ln12)" 2 StrSkill4 StrSkill23 ln34 2 StrCBEffect StrSkill23 edmx 7 StrCBChance 5 + blvl 18 StrSmiteCbBonus 0 +might 2 1 1 2 0 4 skillname98 skillsd98 skillld98 skillan98 StrSkill3 2 FanYDam StrSkill23 edmn 2 PartDam StrSkill23 edmn/2 19 StrSkill18 ln12 0 +prayer 3 1 1 3 0 6 skillname99 skillsd99 skillld99_PD2 skillan99 StrSkill3 1 4 StrSkill50 edmn 6 StrLGOH 1 + lvl / 2 19 StrSkill18 ln12 4 StrPassiveHPRegen blvl 18 StrGainRegenPassiveBonus 0 +resist fire 3 1 3 3 0 8 skillname100 skillsd100_PD2 skillld100_PD2 skillan100 StrSkill3 2 StrSkill51 StrSkill23 "min(edmn, 100)" 2 StrSkill5 StrSkill23 edmx 19 StrSkill18 ln12 2 StrToMaxFireRes StrSkill23 blvl / 2 18 StrMaxFireResPassive 0 +holy bolt 1 1 2 1 0 10 skillname101 skillsd101_PD2 skillld101_PD2 skillan101 StrSkill3 5 1 47 StrSkill50 edln 1 + edln 10 40 Sksyn skillname101 2 63 HolyLight Magdplev par8 63 skillname121 Magdplev par8 63 HolyNova Magdplev par8 63 skillname99 Healplev par7 0 +holy fire 2 2 2 2 0 12 skillname102 skillsd102 skillld102 skillan102 StrSkill3 5 2 StrSkill22 StrSkill23 toht 10 38 StrSkill5 strEskilllighttoattack enms*par5/256 exms*par5/256 19 StrSkill18 "min(ln12, 14)" 40 Sksyn skillname102 2 63 skillname100 Firedplev par8 63 skillname125 Firedplev par7 63 skillname108 Firedplev par7 0 +thorns 2 2 3 2 0 14 skillname103 skillsd103 skillld103_PD2 skillan103 StrSkill3 3 PartyOpenWoundsDamage StrSkill34 edmn 3 ThornsOpenWoundsDamage StrSkill34 edmn * 4 / 3 7 OpenWoundsDesc 15 + lvl / 3 5 ThornsATD edmx 19 StrSkill18 ln12 40 Sksyn skillname103 2 63 skillname98 Damplev par8 63 skillname104 Damplev par8 0 +defiance 3 2 2 3 0 16 skillname104 skillsd104 skillld104_PD2 skillan104 StrSkill3 2 StrSkill31 StrSkill23 edmx 2 StrActiveDR StrSkill23 lvl / 2 19 StrSkill18 ln12 0 +resist cold 3 2 3 3 0 18 skillname105 skillsd105_PD2 skillld105_PD2 skillan105 StrSkill3 2 StrSkill52 StrSkill23 "min(edmn, 100)" 2 StrSkill6 StrSkill23 edmx 19 StrSkill18 ln12 2 StrToMaxColdRes StrSkill23 blvl / 2 18 StrMaxColdResPassive 0 +zeal 1 1 1 1 0 20 skillname106 skillsd106 skillld106 skillan106 StrSkill3 7 clc2 2 1 2 StrSkill4 StrSkill23 clc2 2 StrSkill30 StrSkill23 toht 2 Attack3 SplashSeqBonus 60 2 Attack2 SplashSeqBonus 40 2 Attack1 SplashSeqBonus 20 40 Sksyn skillname106 2 63 skillname96 Damplev par8 0 +charge 1 3 3 1 0 22 skillname107 skillsd107 skillld107_PD2 skillan107 StrSkill3 7 ln34+(skill('Vigor'.blvl)+skill('Might'.blvl))*par8 2 1 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 ln34+(skill('Vigor'.blvl)+skill('Might'.blvl))*par8 40 Sksyn skillname107 2 63 skillname115 Damplev par8 63 skillname98 Damplev par8 0 +blessed aim 2 3 1 2 0 24 skillname108 skillsd108 skillld108 skillan108 StrSkill3 2 StrSkill22 StrSkill23 ln34 2 Deadlystrike StrSkill23 par5 + (par6 * lvl / 2) 19 StrSkill18 ln12 7 StrPercTargetDef -1*(blvl) 18 StrPenTgtDef 0 +cleansing 3 3 1 3 0 38 skillname109 skillsd109 skillld109 skillan109 StrSkill3 2 StrCurseEffectivenessI StrSkill23 10 + lvl / 2 3 StrSkill85 StrSkill23 edmn 3 StrPoisDurRed StrSkill23 edmn 19 StrSkill18 ln12 3 StrSkill85 StrSkill23 blvl 3 StrPoisDurRed StrSkill23 blvl 18 StrDurRedPassive 0 +resist lightning 3 3 3 3 0 28 skillname110 skillsd110_PD2 skillld110_PD2 skillan110 StrSkill3 2 StrSkill53 StrSkill23 "min(edmn, 100)" 2 StrSkill7 StrSkill23 edmx 19 StrSkill18 ln12 2 StrToMaxLtngRes StrSkill23 blvl / 2 18 StrMaxLtngResPassive 0 +vengeance 1 4 1 1 0 40 skillname111 skillsd111 skillld111_PD2 skillan111 StrSkill3 11 1 1 43 AddLtngDmg edns * (100 + stat('passive_ltng_mastery'.accr))/100 edxs * (100 + stat('passive_ltng_mastery'.accr))/100 43 AddColdDmg edns * (100 + stat('passive_cold_mastery'.accr))/100 edxs * (100 + stat('passive_cold_mastery'.accr))/100 43 AddFireDmg edns * (100 + stat('passive_fire_mastery'.accr))/100 edxs * (100 + stat('passive_fire_mastery'.accr))/100 2 StrElemDmg StrSkill23 ln12+((skill('Holy Fire'.blvl)+skill('Holy Freeze'.blvl)+skill('Holy Shock'.blvl))*par8+skill('Conviction'.blvl)*par7) 2 StrSkill22 StrSkill23 toht 2 StrVengChain StrSkill23 clc4 40 Sksyn skillname111 2 63 skillname102 ElemDampLev par8 63 skillname114 ElemDampLev par8 63 skillname118 ElemDampLev par8 63 skillname123 ElemDampLev par7 0 +blessed hammer 1 4 2 1 0 32 skillname112 skillsd112 skillld112_PD2 skillan112 StrSkill3 12 1 48 40 Sksyn skillname112 2 63 skillname108 Magdplev par8 63 skillname115 Magdplev par8 0 +concentration 2 4 1 2 0 34 skillname113 skillsd113 skillld113 skillan113 StrSkill3 1 2 StrSkill22 StrSkill23 toht 2 FanYDam StrSkill23 ln34 2 PartDam StrSkill23 ln34/2 3 StrSkill76 StrSkill23 par5 19 StrSkill18 ln12 0 +holy freeze 2 4 2 2 0 36 skillname114 skillsd114 skillld114 skillan114 StrSkill3 5 2 StrSkill22 StrSkill23 toht 10 3 StrSkill77 StrSkill23 dm34 38 StrSkill6 strEskilllighttoattack enms*par5/256 exms*par5/256 19 StrSkill18 ln12 40 Sksyn skillname114 2 63 skillname105 Colddplev par8 63 skillname125 Colddplev par7 63 skillname108 Colddplev par7 0 +vigor 3 4 2 3 0 26 skillname115 skillsd115 skillld115 skillan115 StrSkill3 2 StrSkill69 StrSkill23 ln34 2 StrSkill71 StrSkill23 ln34 2 StrSkill70 StrSkill23 dm56 19 StrSkill18 ln12 2 StrFRW StrSkill23 blvl 18 StrPassiveMoveSpeed 0 +holy sword 1 5 3 1 0 66 Holy Sword Holy Sword SD Holy Sword LD Holy Sword StrSkill3 1 12 StrSkill20 ln12 3 StrDmgToDemUnd StrSkill23 ln34 2 StrChanceToParry StrSkill23 dm56 + (stat('toblock'.accr) / 5) 18 StrParryCooldown 0 +holy shield 1 4 3 1 0 42 skillname117 skillsd117 skillld117 skillan117 StrSkill3 1 2 StrSkill110 StrSkill23 dm56 2 StrSkill31 StrSkill23 ln34+skill('Defiance'.blvl)*par8 12 StrSkill20 ln12 49 ItemStats1o 40 Sksyn skillname117 2 63 skillname97 Damplev par7 63 skillname104 Damplev par7 63 skillname104 Defplev par8 0 +holy shock 2 5 2 2 0 44 skillname118 skillsd118 skillxld118 skillan118 StrSkill3 5 2 StrSkill22 StrSkill23 toht 10 38 StrSkill7 strEskilllighttoattack 1 exms*par5/256 19 StrSkill18 ln12 40 Sksyn skillname118 2 63 skillname110 Ltngdplev par8 63 skillname125 Ltngdplev par7 63 skillname108 Ltngdplev par7 0 +sanctuary 2 5 3 2 0 46 skillname119 skillsd119_PD2 skillld119_PD2 skillan119 StrSkill3 5 2 StrSkill22 StrSkill23 toht 10 38 StrSkill39 strEskilllighttoattack edns*par7/256 edxs*par7/256 3 MinusMagicRes StrSkill23 -(5 + (skill('Sanctuary'.lvl)/2)) 19 StrSkill18 ln12 40 Sksyn skillname119 2 63 skillname98 Magdplev par8 63 skillname108 Magdplev par8 63 Holy Sword Magdplev par8 0 +meditation 3 5 1 3 0 48 skillname120 skillsd120 skillld120 skillan120 StrSkill3 2 StrSkill88 StrSkill23 ln34 19 StrSkill18 ln12 6 StrMPK blvl / 2 18 StrMedMPK 0 +fist of the heavens 1 5 2 1 0 50 skillname121 skillsd121 skillld121 skillan121 StrSkill3 5 fistoftheheavensbolt 1 10 47 StrSkill91 m1en * (100 + stat('passive_mag_mastery'.accr))/100 m1ex * (100 + stat('passive_mag_mastery'.accr))/100 40 Sksyn skillname121 2 63 skillname101 Damplev par8 63 HolyLight Damplev par8 63 HolyNova Damplev par8 0 +fanaticism 2 6 1 2 0 52 skillname122 skillxsd122 skillxld122 skillan122 StrSkill3 1 2 StrSkill22 StrSkill23 toht 2 StrSkill106 StrSkill23 dm34 2 FanYDam StrSkill23 ln56 2 PartDam StrSkill23 ln56/2 19 StrSkill18 ln12 0 +conviction 2 6 3 2 0 56 skillname123 skillxsd123 skillld123 skillan123 StrSkill3 3 StrSkill90 StrSkill23 "-min(ln34,150)" 2 StrSkill21 StrSkill23 -dm56 19 StrSkill18 ln12 0 +redemption 3 6 2 3 0 54 skillname124 skillsd124_PD2 skillxld124_PD2 skillan124 StrSkill3 3 StrManaHeal StrSkill108 ln56 3 StrLifeHeal StrSkill108 5 + (lvl * 2) 3 StrSkill109 StrSkill23 dm34 19 StrSkill18 ln12 0 +salvation 3 6 3 3 0 58 skillname125 skillsd125_PD2 skillld125_PD2 skillan125 StrSkill3 2 StrSkill54 StrSkill23 "min(edmn, 75)" 2 StrElemDmg StrSkill23 edmx / 2 19 StrSkill18 ln12 0 +bash 1 1 1 1 0 0 skillname126 skillsd126 skillld126_PD2 skillan126 StrSkill3 7 clc1 ln34 1 1 4 StrSkill4 ln34 2 StrSkill4 StrSkill23 clc1 2 StrSkill22 StrSkill23 toht 40 Sksyn skillname126 2 63 skillname139 Damplev par8 63 skillname144 Damplev par8 0 +sword mastery 2 0 0 2 0 2 skillname127 skillsd127 skillld127 skillan127 StrSkill3 51 eskillincasemasteryX macr 2 StrSkill22 StrSkill23 math 2 StrSkill4 StrSkill23 madm 0 +one hand mastery 2 1 1 2 0 4 skillname128_PD2 skillsd128_PD2 skillld128_PD2 skillan128_PD2 StrSkill3 2 StrSplashRadius StrSkill23 "min(lvl, 20)" 51 eskillincasemasteryX macr 2 StrSkill22 StrSkill23 math 2 StrSkill4 StrSkill23 madm 0 +mace mastery 2 0 0 2 0 6 skillname129 skillsd129 skillld129 skillan129 StrSkill3 51 eskillincasemasteryX macr 2 StrSkill22 StrSkill23 math 2 StrSkill4 StrSkill23 madm 0 +howl 3 1 1 3 0 8 skillname130 skillsd130 skillld130 skillan130 StrSkill3 1 12 StrSkill59 ln56 19 StrSkill58 ln34 0 +find potion 3 1 3 3 0 10 skillname131 skillsd131 skillld131 skillan131 StrSkill3 1 7 StrSkill24 dm12 0 +leap 1 3 1 1 0 12 skillname132 skillsd132 skillld132 skillan132 StrSkill3 1 19 StrLeapDist dm12 19 StrLeapKBDist "min(par3 + blvl * par4, 15)" 0 +double swing 1 1 2 1 0 14 skillname133 skillsd133 skillld133 skillan133 StrSkill3 19 clc1 2 5 StrSkill3 usmc/128 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 clc1 40 Sksyn skillname133 2 63 skillname147 Damplev par8 63 skillname139 Damplev par8 0 +two hand mastery 2 2 2 2 0 16 skillname134_PD2 skillsd134_PD2 skillld134_PD2 skillan134_PD2 StrSkill3 2 StrSplashRadius StrSkill23 "min((20+lvl), 40)" 2 StrCBEffect StrSkill23 "min(edln, 25)" 7 StrCBChance dm56 2 StrSkill22 StrSkill23 math 2 StrSkill4 StrSkill23 madm 0 +throwing mastery 2 1 3 2 0 18 skillname135 skillsd135_PD2 skilld135_PD2 skillan135 StrSkill3 51 eskillincasemasteryX macr 2 StrSkill22 StrSkill23 math 2 StrSkill4 StrSkill23 madm 3 StrPierce StrSkill23 edln 0 +spear mastery 2 0 0 2 0 20 skillname136 skillsd136 skillld136 skillan136 StrSkill3 51 eskillincasemasteryX macr 2 StrSkill22 StrSkill23 math 2 StrSkill4 StrSkill23 madm 0 +taunt 3 4 2 3 0 22 skillname137 skillsd137 skillld137 skillan137 StrSkill3 1 3 StrSkill57 StrSkill23 ln12 3 StrSkill38 StrSkill23 ln34 12 StrSkill20 50 + (25*blvl / 4) 18 TauntDuration 0 +shout 3 2 1 3 0 24 skillname138 skillsd138 skillld138 skillan138 StrSkill3 1 12 StrSkill20 len 2 StrSkill21 StrSkill23 ln12 0 +stun 1 2 1 1 0 26 skillname139 skillsd139 skillld139_PD2 skillan139 StrSkill3 7 1 1 12 StrSkill20 "min(250,edln)" 3 StrSkill22 StrSkill23 toht 73 WeapDamsk 1 4 9 40 Sksyn skillname139 2 63 skillname144 AttRateplev par7 0 +double throw 1 3 3 1 0 28 skillname140 skillsd140_PD2 skillld140_PD2 skillan140 StrSkill3 13 clc1 2 5 StrSkill3 usmc/128 8 5 StrBounces "min(par5 + lvl / par6, 8)" 2 StrSkill4 StrSkill23 ln12 + (skill('Double Swing'.blvl) + skill('Frenzy'.blvl))*par8 40 Sksyn skillname140 2 63 skillname133 Damplev par8 63 skillname147 Damplev par8 0 +combat reflexes 2 3 1 2 0 30 skillname141_PD2 skillsd141_PD2 skillld141_PD2 skillan141_PD2 StrSkill3 2 StrSkill71 StrSkill23 ln12 3 StrSkill100 StrFlatLife (par5 + par6*lvl) 2 StrFHR StrSkill23 blvl * 2 18 CombatReflexesFHR 0 +find item 3 3 3 3 0 32 skillname142 skillsd142 skillld142 skillan142 StrSkill3 1 7 StrSkill24 dm12 0 +leap attack 1 5 1 1 0 34 skillname143 skillsd143_PD2 skillld143_PD2 skillan143 StrSkill3 7 clc1 1 1 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 clc1 40 Sksyn skillname143 2 63 skillname132 Damplev par8 63 skillname126 Damplev par8 0 +concentrate 1 3 2 1 0 36 skillname144 skillsd144 skillld144_PD2 skillan144 StrSkill3 7 clc1 1 1 2 StrSkill4 StrSkill23 clc1 2 StrSkill22 StrSkill23 toht 2 StrSkill31 StrSkill23 ln34 2 StrSkill39 StrSkill23 clc4 18 StrConcMagConvert 2 StrSplashRadius StrSkill23 20 40 Sksyn skillname144 2 63 skillname126 Damplev par8 63 skillname155 Damplev par7 0 +iron skin 2 4 3 2 0 38 skillname145 skillsd145 skillld145 skillan145 StrSkill3 6 StrSkill23 ln12 3 StrPhysDmgRed StrSkill23 blvl / 2 18 StrIncPhysDmgRed 0 +battle cry 3 6 2 3 0 40 skillname146 skillsd146 skillld146_PD2 skillan146 StrSkill3 1 3 StrPhysDmgResist StrSkill23 -(par5+(lvl<22)?lvl:(22+((lvl-22)/2))) 3 StrSkill21 StrSkill23 -"min(ln34, 30)" 12 StrSkill20 ln12 0 +frenzy 1 2 3 1 0 42 skillname147 skillsd147 skillld147 skillan147 StrSkill3 19 clc1 2 52 StrSplashRadius StrSkill23 15*(par4-par3)/100+par3 dm34 52 StrSkill89 StrSkill23 15*(edln-32)/100+32 edln 52 StrSkill106 StrSkill23 15*(par6-par5)/100+par5 dm56 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 clc1 5 StrSkill3 usmc/128 12 StrSkill20 375 + (25 * (blvl*2)) 18 FrenzyDurationDesc 40 Sksyn skillname147 2 63 skillname133 Damplev par8 63 skillname139 Damplev par8 0 +increased speed 2 5 1 2 0 44 skillname148 skillsd148_PD2 skillld148_PD2 skillan148 StrSkill3 2 StrSkill89 StrSkill23 dm12 2 StrSkill106 StrSkill23 blvl * 2 18 IncreasedSpeedIAS 0 +battle orders 3 5 1 3 0 46 skillname149 skillsd149 skillld149 skillan149 StrSkill3 1 3 StrSkill101 StrFlatMana ln34 / 2 3 StrSkill100 StrFlatLife ln34 12 StrSkill20 len 0 +grim ward 3 5 3 3 0 48 skillname150 skillsd150_PD2 skillld150_PD2 skillan150 StrSkill3 1 19 StrSkill18 ln12 12 StrSkill20 ln34 2 StrSkill4 StrSkill23 ln56 6 StrAttackRating toht 0 +whirlwind 1 6 2 1 0 50 skillname151 skillsd151 skillld151 skillan151 StrSkill3 1 clc1 1 1 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 clc1 2 StrIncVelocity StrSkill23 "min(ln56, 65)" 0 +berserk 1 5 2 1 0 52 skillname152 skillsd152 skillld152_PD2 skillan152 StrSkill3 19 clc1 2 1 2 StrSkill21 StrSkill23 -25 3 StrPhysDmgResist StrSkill23 -"min(ln34, 10)" 2 StrPhysPierce StrSkill23 "min(ln56,45)" 2 StrSkill4 StrSkill23 clc1 2 StrSkill22 StrSkill23 toht 12 StrSkill20 13 2 StrSplashRadius StrSkill23 20 40 Sksyn skillname152 2 63 skillname137 Damplev par8 63 skillname141_PD2 Damplev par8 0 +natural resistance 2 6 3 2 0 54 skillname153 skillsd153 skillld153 skillan153 StrSkill3 2 StrSkill90 StrSkill23 dm12 0 +war cry 3 2 2 3 0 56 skillname154 skillsd154 skillld154 skillan154 StrSkill3 5 1 19 StrSkill18 "min(8+(lvl / 4), 16)" 9 10 40 Sksyn skillname154 2 63 skillname130 Damplev par8 63 skillname146 Damplev par8 63 skillname137 Damplev par7 63 skillname138 Damplev par7 63 skillname155 Damplev par7 63 skillname149 Damplev par7 0 +battle command 3 6 1 3 0 58 skillname155 skillsd155 skillld155 skillan155 StrSkill3 1 12 StrSkill20 len 2 StrSkill4 StrSkill23 ln34 5 StrBonusSkills 1+blvl/10 18 StrBCSkills 0 +scroll of identify 0 0 0 4 1 14 skillname217 skillsd217 skillld217 skillan217 53 isc 0 +book of identify 0 0 0 4 0 14 skillname218 skillsd218 skillld218 skillan218 55 ibk 0 +scroll of townportal 0 0 0 4 2 18 skillname219 skillsd219 skillld219 skillan219 54 tsc 0 +book of townportal 0 0 0 4 0 18 skillname220 skillsd220 skillld220 skillan220 56 tbk 0 +raven 1 1 2 1 0 0 Skillname222 Skillsd222 Skillld222 Skillan222 StrSkill3 1 5 ESkillHawk "min((lvl/2)+2,par2)" 7 StrSkill11 ln56 9 38 StrSkill6 (edmn + stat('eaglehorn_raven'.accr)) * (100 + stat('passive_cold_mastery'.accr))/100 (edmx + stat('eaglehorn_raven'.accr)) * (100 + stat('passive_cold_mastery'.accr))/100 18 StrExtraRaven 40 Sksyn Skillname222 2 63 Skillname228 Damplev par8 63 Skillname238 Damplev par8 63 Skillname248 Damplev par8 0 +plague poppy 1 1 3 1 0 2 Skillname223 Skillsd223 Skillld223_PD2 Skillan223 StrSkill3 1 3 StrEnemyPoisonRes StrSkill23 -"min(ln56,40)" 14 13 (lvl-1)*par3 18 ExtraPlaguePoppy 40 Sksyn Skillname223 2 63 Skillname232 Poisdplev par8 63 Skillname242 Poisdplev par8 63 Skillname239 Poisdplev par8 0 +wearwolf 2 1 1 2 0 20 Skillname224 Skillsd224 Skillld224 Skillan224 StrSkill3 2 StrSkill106 StrSkill23 dm34 2 StrSkill4 StrSkill23 ln56 4 StrPhysDmgRed 1 + lvl / 3 4 StrMagDmgRed 1 + lvl / 3 12 StrCooldown 13 2 StrSkill10 StrSkill23 skill('Shape Shifting'.ln12) 2 StrSkill42 StrSkill23 skill('Shape Shifting'.ln34) 1 40 Sksyn Skillname224 2 18 Skillname225 0 +shape shifting 2 1 2 2 0 52 Skillname225 Skillsd225 Skillld225 Skillan225 StrSkill3 2 StrSkill10 StrSkill23 ln12 2 StrSkill100 StrSkill23 ln34 0 +firestorm 3 1 1 3 0 32 Skillname226 Skillsd226 Skillld226_PD2 Skillan226 StrSkill3 9 27 1 40 Sksyn Skillname226 2 63 Skillname230 Firedplev par8 63 Skillname235 Firedplev par8 0 +oak sage 1 6 1 1 0 16 Skillname227 Skillsd227 Skillld227_PD2 Skillan227 StrSkill3 1 19 StrSkill18 ln78 3 StrSkill100 StrFlatLife edmx 4 StrSkill50 (stat('pvp_cd'.accr)>0)?0:(edmn+(skill('Cycle of Life'.blvl)+skill('Vines'.blvl)) * 12) 13 (lvl-1)*(par1+1)/100 40 Sksyn Skillname227 2 42 Skillname232 StrHPRegenPerLevel 12 0 42 Skillname242 StrHPRegenPerLevel 12 0 0 +summon spirit wolf 1 3 2 1 0 6 Skillname228 Skillsd228 Skillld228 Skillan228 StrSkill3 2 StrSkill21 StrSkill23 (par4 * lvl) + ln56 2 StrSkill22 StrSkill23 ln12 5 ESkillWolves "min(lvl,par3)" 9 13 lvl*35 1 40 Sksyn Skillname228 2 63 Skillname222 Damplev 8 63 Skillname238 Damplev 8 0 +wearbear 2 1 3 2 0 22 Skillname229 Skillsd229 Skillld229 Skillan229 StrSkill3 2 StrSkill21 StrSkill23 ln34 2 StrSkill4 StrSkill23 ln12 2 StrSplashRadius StrSkill23 20 3 StrSkill76 StrSkill23 ln78 12 StrCooldown 13 2 StrSkill10 StrSkill23 skill('Shape Shifting'.ln12) 2 StrSkill42 StrSkill23 10+skill('Shape Shifting'.ln34) 1 40 Sksyn Skillname229 2 18 Skillname225 0 +molten boulder 3 2 1 3 0 34 Skillname230 Skillsd230 Skillld230_PD2 Skillan230 StrSkill3 5 moltenboulderfirepath 1 22 10 9 40 Sksyn Skillname230 2 63 Skillname235 Damplev par8 63 Skillname245 Damplev par8 63 Skillname250 Damplev par8 0 +arctic blast 3 1 3 3 0 36 Skillname231 Skillsd231 Skillld231 Skillan231 StrSkill3 8 3 StrSkill3 StrSkill34 mps 19 StrSkill56 "min(ln12/2, 24)" 3 StrEnemyColdRes StrSkill23 -"min(5 + lvl, 100)" 11 26 35 ArcticNova enma*6 exma*6 5 StrSkill115 par3 40 Sksyn Skillname231 2 63 Skillname251 Colddplev par7 63 Skillname246 Colddplev par8 63 Skillname236 Colddplev par8 0 +cycle of life 1 3 3 1 0 8 Skillname232 Skillsd232 Skillld232_PD2 Skillan232 StrSkill3 1 47 StrSkill50 StrSkill23 (par4 + par5*lvl) + (skill('Oak Sage'.blvl)+skill('Vines'.blvl)) * par8 / 3 (par6 + par7*lvl) + (skill('Oak Sage'.blvl)+skill('Vines'.blvl)) * par8 13 (lvl-1)*par3 40 Sksyn Skillname232 2 52 StrOakSynergy StrLifeHealed par8/2 par8 52 StrSolarSynergy StrLifeHealed par8/2 par8 0 +feral rage 2 2 1 2 0 54 Skillname233 Skillsd233 Skillld233 Skillan233 StrSkill3 7 clc1 2 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 ln56 + skill('Fury'.blvl) * 6 52 EskillLifeSteal StrSkill23 1 "min(par2 * lvl / 2+ 4,10)" 52 StrSkill89 StrSkill23 20 dm34 12 StrSkill20 par1 1 40 Sksyn Skillname233 2 63 Skillname249 Damplev 6 0 +maul 2 2 3 2 0 56 Skillname234 Skillsd234 Skillld234 Skillan234 StrSkill3 1 2 2 StrSkill22 StrSkill23 toht 52 StrSkill4 StrSkill23 par3 par3 * (lvl/par7+par8) 12 StrSkill48 ((par5 + ((blvl - 1) * - par6))<5)?par6:(par5 + ((blvl - 1) * - par6)) 12 StrSkill20 par4 1 0 +eruption 3 3 1 3 0 38 Skillname235 Skillsd235 Skillld235 Skillan235 StrSkill3 5 erruption center 23 StrSkill20 10 12 StrCooldown 13 1 40 Sksyn Skillname235 2 63 Skillname226 Firedplev par8 63 Skillname230 Firedplev par8 0 +cyclone armor 3 2 3 3 0 40 Skillname236 Skillsd236 Skillld236 Skillan236 StrSkill3 1 3 StrSkill40 StrSkill41 ((stat('energy'.accr)*3) + edmx + ((skill('Twister'.blvl) + skill('Tornado'.blvl)) * par8)) 12 StrCooldown 50 40 Sksyn Skillname236 2 18 EnergyAbsorb 67 Skillname241 Damabsplev par8 67 Skillname246 Damabsplev par8 0 +heart of wolverine 1 2 1 1 0 10 Skillname237 Skillsd237 Skillld237 Skillan237 StrSkill3 1 19 StrSkill18 ln78 2 StrSkill22 StrSkill23 ln34 2 StrSkill4 StrSkill23 ln56 13 (lvl-1)*par1 0 +summon fenris 1 5 2 1 0 12 Skillname238 Skillsd238 Skillld238 Skillan238 StrSkill3 2 StrSkill42 StrSkill23 ln12 5 ESkillWolves "min(lvl,par3)" 9 13 ln12 2 StrSkill21 StrSkill23 (par6 * lvl) 2 StrSkill22 StrSkill23 skill('Summon Spirit Wolf'.ln12) 1 40 Sksyn Skillname238 2 63 Skillname222 Damplev 7 63 Skillname228 Damplev 7 63 Skillname228 AttRateplev skill('Summon Spirit Wolf'.par2) 0 +rabies 2 4 1 2 0 24 Skillname239 Skillsd239 Skillld239 Skillan239 StrSkill3 23 2 14 2 StrSkill22 StrSkill23 toht 1 40 Sksyn Skillname239 2 63 Skillname223 Poisdplev par8 63 Skillname225 Poisdplev par8 63 Skillname233 Poisdplev par8 0 +fire claws 2 5 2 2 0 26 Skillname240 Skillsd240 Skillld240 Skillan240 StrSkill3 27 1 1 2 StrSkill22 StrSkill23 toht 27 9 40 Sksyn Skillname240 2 63 Skillname230 Firedplev par8 63 Skillname250 Firedplev par8 0 +twister 3 3 2 3 0 42 Skillname241 Skillsd241 Skillld241 Skillan241 StrSkill3 5 1 9 5 StrTwisters "min(ln34 / 2, par5)" 18 GustCdReductionCast 40 Sksyn Skillname241 2 63 Skillname251 Damplev par8 63 Skillname246 Damplev par8 63 Skillname231 Damplev par7 0 +vines 1 5 3 1 0 14 Skillname242 Skillsd242 Skillld242_PD2 Skillan242 StrSkill3 1 47 StrManaHeal (par4 + par5*lvl) + (skill('Oak Sage'.blvl)+skill('Cycle of Life'.blvl)) * par8 / 3 (par6 + par7*lvl) + (skill('Oak Sage'.blvl)+skill('Cycle of Life'.blvl)) * par8 13 (lvl-1)*par3 40 Sksyn Skillname242 2 52 StrOakSynergy StrManaHealed par8/3 par8 52 StrCarrionSynergy StrManaHealed par8/3 par8 0 +hunger 2 3 2 2 0 58 Skillname243 Skillsd243_PD2 Skillld243_PD2 Skillan243 StrSkill3 1 12 StrSkill20 475+(lvl*25) 6 StrPercentMoveSpeed par4 + lvl 3 OpenWoundsDamage StrSkill34 edmx 7 OpenWoundsDesc dm12 + 5 3 EskillLifeSteal StrSkill23 par3 + blvl / 4 18 StrHungerLifeSteal 40 Sksyn Skillname243 2 63 Skillname234 Damplev par8 0 +shock wave 2 4 3 2 0 28 Skillname244 Skillsd244 Skillld244 Skillan244 StrSkill3 5 1 10 9 7 ShockWaves "min(4+lvl/4, 8)" 12 StrSkill48 ln12 18 StrExtraShockWave 40 Sksyn Skillname244 2 63 Skillname229 Damplev par8 63 Skillname241 Damplev par8 0 +volcano 3 5 1 3 0 44 Skillname245 Skillsd245 Skillld245 Skillan245 StrSkill3 5 11 10 9 8 12 StrCooldown 13 1 40 Sksyn Skillname245 2 63 Skillname230 Damplev par8 63 Skillname235 Damplev par8 63 Skillname250 Damplev par8 0 +tornado 3 5 2 3 0 46 Skillname246 Skillsd246 Skillld246 Skillan246 StrSkill3 5 1 11 10 9 8 18 GustCdReductionCast 40 Sksyn Skillname246 2 63 Skillname231 Damplev par8 63 Skillname241 Damplev par8 63 Skillname251 Damplev par8 0 +spirit of barbs 1 4 1 1 0 4 Skillname247 Skillsd247 Skillld247 Skillan247 StrSkill3 1 19 StrSkill18 ln78 3 StrReturns StrDmgToAtt edmn 2 Deadlystrike StrSkill23 7+lvl 13 (lvl-1)*par1 2 SkillMaxDeadlyStrike StrSkill23 blvl/4 18 StrSpiritOfBarbsMaxDeadly 40 Sksyn Skillname247 2 63 Skillname232 Damplev par6 0 +summon grizzly 1 6 2 1 0 18 Skillname248 Skillsd248 Skillld248_PD2 Skillan248 StrSkill3 2 StrSkill4 StrSkill23 ln12 9 ln12 12 StrCooldown 50 2 StrSkill21 StrSkill23 lvl*5 2 StrSkill22 StrSkill23 skill('Summon Spirit Wolf'.ln12) 13 lvl*4 1 40 Sksyn Skillname248 2 63 Skillname222 Damplev par6 63 Skillname228 AttRateplev skill('Summon Spirit Wolf'.par2) 63 Skillname228 Damplev par6 0 +fury 2 6 1 2 0 30 Skillname249 Skillsd249 Skillld249 Skillan249 StrSkill3 7 clc2 2 1 2 StrSkill4 StrSkill23 ln34 + skill('Feral Rage'.blvl)*par8 2 StrSkill30 StrSkill23 toht 2 Attack3 SplashSeqBonus 60 2 Attack2 SplashSeqBonus 40 2 Attack1 SplashSeqBonus 20 40 Sksyn Skillname249 2 63 Skillname233 Damplev par8 0 +armageddon 3 6 1 3 0 50 Skillname250 Skillsd250 Skillld250 Skillan250 StrSkill3 5 armageddonfire 22 10 9 1 19 StrSkill18 par3 12 StrSkill20 ln12 40 Sksyn Skillname250 2 63 Skillname230 Damplev par8 63 Skillname245 Damplev par8 63 Skillname240 Damplev par6 0 +hurricane 3 6 2 3 0 48 Skillname251 Skillsd251 Skillld251 Skillan251 StrSkill3 5 10 1 19 StrSkill18 par3 12 StrSkill20 ln12 40 Sksyn Skillname251 2 63 Skillname231 Damplev par8 63 Skillname246 Damplev par8 0 +fire trauma 1 1 2 1 0 0 Skillname252 Skillsd252 Skillld252 Skillan252 StrSkill3 5 1 10 5 StrSkillBombs "min(par1+lvl/par2,9)" 18 StrIncreasedBombs 40 Sksyn Skillname252 2 63 Skillname257 Firedplev par8 63 Skillname262 Firedplev par8 63 Skillname272 Firedplev par8 63 ChainLtngSentry Firedplev par8 63 Skillname263 Firedplev par8 63 Skillname273 Firedplev par8 0 +claw mastery 2 1 2 2 0 20 Skillname253_PD2 Skillsd253_PD2 Skillld253_PD2 Skillan253_PD2 StrSkill3 51 eskillincasemasteryX macr 2 StrSkill22 StrSkill23 math 2 StrSkill4 StrSkill23 madm 0 +psychic hammer 2 1 3 2 0 22 Skillname254 Skillsd254 Skillld254_PD2 Skillan254_PD2 StrSkill3 5 1 100 11 10 9 5 StrBounces "min(2+(lvl/10), 6)" - 1 40 Sksyn Skillname254 2 63 Skillname274 Damplev par8 63 Skillname265 Damplev par8 63 Skillname269 Damplev par8 0 +tiger strike 3 1 2 3 0 40 Skillname255 Skillsd255 ChargeUpSkillDesc2 Skillan255 StrSkill3 25 clc1 1 1 2 StrSkill22 StrSkill23 toht 2 Eskillpowerup3 Eskillsplash3 3*ln12 2 Eskillpowerup2 Eskillsplash2 2*ln12 2 Eskillpowerup1 Eskillpuddgmper ln12 0 +dragon talon 3 1 3 3 0 42 Skillname256 Skillsd256 Skillld256 Skillan256 StrSkill3 15 clc2 5 1 2 StrSkill22 StrSkill23 toht 2 Eskillkickdamage StrSkill23 ln12 + (skill('Dragon Tail'.blvl)+ skill('Dragon Flight'.blvl))*par8 36 EskillKickSing EskillKickPlur "min(lvl/6+1, 3)" 40 Sksyn Skillname256 2 63 Skillname271 Damplev par8 63 Skillname276 Damplev par8 0 +shock field 1 2 1 1 0 2 Skillname257 Skillsd257 Skillld257 Skillan257 StrSkill3 8 shock field on ground 1 26 23 StrSkill20 5 ESkillSpikes par1+lvl/par2 12 StrCooldown 25 40 Sksyn Skillname257 2 63 Skillname262 Ltngdplev par8 63 Skillname263 Ltngdplev par8 63 ChainLtngSentry Ltngdplev par8 63 Skillname252 Ltngdplev par8 63 Skillname272 Ltngdplev par8 63 Skillname273 Ltngdplev par8 0 +blade sentinel 1 2 3 1 0 4 Skillname258 Skillsd258_PD2 Skillld258_PD2 Skillan258 StrSkill3 28 1 7 StrWeaponDmgPercent 100 9 12 StrSkill20 ln12 2 StrSkill22 StrSkill23 toht 1 40 Sksyn Skillname258 2 63 Skillname267 Damplev par8 63 Skillname278 Damplev par8 0 +quickness 2 2 1 2 0 36 Skillname259 Skillsd259 Skillld259 Skillan259 StrSkill3 1 12 StrSkill20 ln56 2 StrSkill89 StrSkill23 edln 2 StrSkill106 StrSkill23 ((110*blvl) * (par4-par3))/(100 * (blvl+6)) + par3 18 StrBOSAtkSpd 0 +fists of fire 3 2 1 3 0 44 Skillname260 Skillsd260 ChargeUpSkillDesc Skillan260 StrSkill3 25 fire enma+m1eo*50/256 exma+m1ey*50/256 fire m2en m2ex fire m3en m3ex 2 fistsoffirefirewall fistsoffirenova fofmeteor 1 2 StrSkill22 StrSkill23 toht 62 Eskillpowerup3 Eskillfistsoffire3_PD2 (((miss('fofmeteor'.edns) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) *2 (((miss('fofmeteor'.edxs) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) *2 62 Eskillpowerup2 Eskillfistsoffire2_PD2 (((miss('fistsoffirenova'.edns) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) (((miss('fistsoffirenova'.edxs) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) 24 Eskillfistsoffire1_PD2 Eskillpowerup1 40 Sksyn Skillname260 2 63 Skillname255 Damplev par8 63 Skillname276 Damplev par8 0 +dragon claw 3 2 3 3 0 46 Skillname261 Skillsd261 Skillld261 Skillan261 StrSkill3 19 ln12 + skill('Weapon Block'.blvl) * par8 + skill('Claw Mastery'.lvl) * par7 2 1 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 ln12 + skill('Weapon Block'.blvl) * par8 + skill('Claw Mastery'.lvl) * par7 40 Sksyn Skillname261 2 63 Skillname253_PD2 Damplev par8 63 Skillname264 Damplev par8 0 +charged bolt sentry 1 3 1 1 0 6 Skillname262 Skillsd262 Skillld262 Skillan262 StrSkill3 5 10 1 5 StrBolts "min((4 + blvl/4), 10)" 18 Strboltstrap 40 Sksyn Skillname262 2 63 Skillname252 Ltngdplev par7 63 Skillname272 Ltngdplev par7 63 ChainLtngSentry Ltngdplev par8 0 +wake of fire sentry 1 3 2 1 0 8 Skillname263 Skillsd263 Skillld263 Skillan263 StrSkill3 5 1 10 3 ESkillShoots ESkillTimes par1 40 Sksyn Skillname263 2 63 Skillname252 Firedplev par8 63 Skillname273 Firedplev par8 0 +weapon block 2 3 2 2 0 26 Skillname264 Skillsd264_PD2 Skillld264_PD2 Skillan264 StrSkill3 2 StrFBR StrSkill23 lvl 2 StrChanceToParry StrSkill23 dm12 + (stat('toblock'.accr) / 5) 18 StrParryCooldown 0 +cloak of shadows 2 3 3 2 0 24 Skillname265 Skillsd265 Skillld265 Skillan265 StrSkill3 2 StrSkill25 StrSkill23 "-min(ln56,95)" 2 StrSkill31 StrSkill23 ln78 / 2 12 StrSkill20 ln34 12 StrCooldown 125 1 19 StrSkill56 dm12 0 +cobra strike 3 3 2 3 0 50 Skillname266 Skillsd266 ChargeUpSkillDesc Skillan266 StrSkill3 25 pois (((miss('cobrastrikepoisonbolt'.edns) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 (((miss('cobrastrikepoisonbolt'.edxs) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 pois (((miss('cobrastrikepoisoncloud'.edns) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 (((miss('cobrastrikepoisoncloud'.edxs) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 1 cobrastrikepoisonbolt cobrastrikepoisoncloud 1 2 StrSkill22 StrSkill23 toht 38 Eskillpoison3 Eoveronesecond (((miss('cobrastrikepoisoncloud'.edns) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 (((miss('cobrastrikepoisoncloud'.edxs) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 2 Eskillpowerup2 Eskillpudmana ln12 2 Eskillpowerup2 EskillEnhancedDamage clc2 38 Eskillpoison1 Eoveronesecond (((miss('cobrastrikepoisonbolt'.edns) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 (((miss('cobrastrikepoisonbolt'.edxs) * (100+stat('passive_pois_mastery'.accr))) / 100) * 25) / 256 40 Sksyn Skillname266 2 63 Skillname279 Poisdplev 20 0 +blade fury 1 4 3 1 0 10 Skillname267 Skillsd267 Skillld267 Skillan267 StrSkill3 28 1 61 StrSkill3 EskillPerBlade usmc 10 7 StrWeaponDmgPercent 85 9 2 StrSkill22 StrSkill23 toht 5 StrSkill115 par3 40 Sksyn Skillname267 2 63 Skillname258 Damplev par8 63 Skillname278 Damplev par8 0 +fade 2 4 1 2 0 30 Skillname268 Skillsd268 Skillld268 Skillan268 StrSkill3 1 12 StrSkill20 ln56 3 StrSkill54 StrSkill23 edmx 3 StrPhysDmgRed StrSkill23 ln78 / 3 3 StrSkill85 StrSkill23 "min(ln34, 30)" 0 +shadow warrior 2 4 2 2 0 38 Skillname269 Skillsd269 Skillld269 Skillan269 StrSkill3 1 2 StrSkill31 StrSkill23 (lvl-1)*par3 4 StrSkill22 lvl*par2 13 (lvl-1)*par1 12 StrCooldown 50 0 +claws of thunder 3 4 1 3 0 58 Skillname270 Skillsd270 ChargeUpSkillDesc Skillan270 StrSkill3 25 ltng enma exma ltng m2en m2ex ltng m3en m3ex 2 clawsofthundernova clawsofthunderbolt 1 2 StrSkill22 StrSkill23 toht 62 Eskillpowerup3 Eskillthunder3 (((miss('cotthunderstorm'.edns) * (100+stat('passive_ltng_mastery'.accr))) / 100) / 256) *2 (((miss('cotthunderstorm'.edxs) * (100+stat('passive_ltng_mastery'.accr))) / 100) / 256) *2 62 Eskillpowerup2 Eskillthunder2 (((miss('clawsofthundernova'.edns) * (100+stat('passive_ltng_mastery'.accr))) / 100) / 256) (((miss('clawsofthundernova'.edxs) * (100+stat('passive_ltng_mastery'.accr))) / 100) / 256) 24 Eskillthunder1 Eskillpowerup1 40 Sksyn Skillname270 2 63 Skillname261 Ltngdplev par8 0 +dragon tail 3 4 3 3 0 48 Skillname271 Skillsd271 Skillld271_PD2 Skillan271 StrSkill3 16 clc1 5 1 2 StrSkill22 StrSkill23 toht 2 StrFireDamage StrSkill23 ln12 + (skill('Dragon Talon'.blvl)+ skill('Dragon Flight'.blvl))*par8 19 StrSkill18 par3 66 Convphy2fire 100 40 Sksyn Skillname271 2 63 Skillname256 Damplev par8 63 Skillname276 Damplev par8 0 +chain lightning sentry 1 6 1 1 0 60 ChainLtngSentry ChainLtngSentrySD ChainLtngSentryLD ChainLtngSentryS StrSkill3 5 1 10 3 ESkillShoots ESkillTimes 7 40 Sksyn ChainLtngSentry 2 63 Skillname252 Ltngdplev par8 63 Skillname262 Ltngdplev par8 63 Skillname272 Ltngdplev par8 0 +inferno sentry 1 5 2 1 0 14 Skillname273 Skillsd273 Skillld273 Skillan273 StrSkill3 8 0 3 1 59 StrSkill5 enms*25/768 exms*25/768 3 ESkillShoots ESkillTimes 5 40 Sksyn Skillname273 2 63 Skillname252 Firedplev par7 63 Skillname263 Firedplev par8 0 +mind blast 2 4 3 2 0 34 Skillname274 Skillsd274 Skillld274_PD2 Skillan274 StrSkill3 5 1 9 47 StrSkill39 enma exma 19 StrSkill18 "min(par7 + blvl / 2, 8)" 12 StrSkill48 "min(max(edln, 0), 50)" 40 Sksyn Skillname274 2 63 Skillname254 Damplev par8 63 Skillname265 Damplev par8 63 Skillname269 Damplev par8 0 +blades of ice 3 5 1 3 0 52 Skillname275 Skillsd275 ChargeUpSkillDesc Skillan275 StrSkill3 25 cold enma exma cold m2en m2ex cold m3en m3ex 1 boiwavemaker boichaosice 1 2 StrSkill22 StrSkill23 toht 62 Eskillpowerup3 StrBOI3DamDesc (((miss('boichaosice'.edns) * (100+stat('passive_cold_mastery'.accr))) / 100) / 256) (((miss('boichaosice'.edxs) * (100+stat('passive_cold_mastery'.accr))) / 100) / 256) 62 Eskillpowerup2 StrBOI2DamDesc (((miss('boiwavetrail'.edns) * (100+stat('passive_cold_mastery'.accr))) / 100) / 256) (((miss('boiwavetrail'.edxs) * (100+stat('passive_cold_mastery'.accr))) / 100) / 256) 24 Eskillbladesofice1 Eskillpowerup1 par1 40 Sksyn Skillname275 2 63 Skillname255 Colddplev par8 0 +dragon flight 3 5 3 3 0 54 Skillname276 Skillsd276 Skillld276 Skillan276 StrSkill3 15 clc2 5 1 2 StrSkill22 StrSkill23 toht 2 Eskillkickdamage StrSkill23 ln12 12 StrCooldown "max(51 - lvl, 25)" 0 +death sentry 1 6 2 1 0 16 Skillname277 Skillsd277 Skillld277_PD2 Skillan277 StrSkill3 5 1 10 9 37 StrSkill18 skill('mon death sentry'.par3) + skill('mon death sentry'.par4) * (lvl - 1) 38 Corexpdam StrSkill46 skill('mon death sentry'.par1) skill('mon death sentry'.par2) 40 Sksyn Skillname277 2 63 Skillname252 Damplev par7 63 Skillname273 Damplev par7 0 +blade shield 1 5 3 1 0 18 Skillname278 Skillsd278 Skillld278 Skillan278 StrSkill3 5 1 1 2 StrSkill22 StrSkill23 toht 12 StrSkill20 ln12 7 StrWeaponDmgPercent 25 9 57 StrSecondsPerAttack par3 - (blvl / 2) 18 StrBladeShieldAttackRate 40 Sksyn Skillname278 2 63 Skillname258 Damplev par8 63 Skillname267 Damplev par8 0 +venom 2 6 1 2 0 28 Skillname279 Skillsd279 Skillld279 Skillan279 StrSkill3 1 12 StrSkill20 ln12 14 40 Sksyn Skillname279 2 63 Skillname266 Poisdplev par8 0 +shadow master 2 6 2 2 0 32 Skillname280 Skillsd280 Skillld280 Skillan280 StrSkill3 1 2 StrSkill54 StrSkill23 ((110*(lvl-1))/(lvl+5)*(par4-par3))/100+par3 4 StrSkill22 lvl*par2 13 (lvl-1)*par1 12 StrCooldown 50 0 +royal strike 3 6 2 3 0 56 Skillname281 Skillsd281 ChargeUpSkillDesc Skillan281 StrSkill3 25 fire m1en m1ex ltng m2en m2ex cold m3en m3ex 1 royalstrikemeteor royalstrikechainlightning royalstrikechaosice 1 2 StrSkill22 StrSkill23 toht 62 Eskillpowerup3 Eskillphoenix3 (((miss('royalstrikechaosice'.edns) * (100+stat('passive_cold_mastery'.accr))) / 100) / 256) (((miss('royalstrikechaosice'.edxs) * (100+stat('passive_cold_mastery'.accr))) / 100) / 256) 62 Eskillpowerup2 Eskillphoenix2 (((miss('royalstrikechainlightning'.edns) * (100+stat('passive_ltng_mastery'.accr))) / 100) / 256) (((miss('royalstrikechainlightning'.edxs) * (100+stat('passive_ltng_mastery'.accr))) / 100) / 256) 38 StrSkill83 StrSkill34 ((((miss('royalstrikemeteorfire'.edns)*75) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) ((((miss('royalstrikemeteorfire'.edxs)*75) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) 62 Eskillpowerup1 Eskillphoenix1 (((miss('royalstrikemeteor'.edns) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) (((miss('royalstrikemeteor'.edxs) * (100+stat('passive_fire_mastery'.accr))) / 100) / 256) 40 Sksyn Skillname281 2 63 Skillname260 Meteordmg 14 63 Skillname260 AFDImm 10 63 Skillname270 Ltngdplev 10 63 Skillname275 Colddplev 10 0 +delerium change 0 0 0 0 0 2 Runeword22 Runeword22 Runeword22 Runeword22 StrSkill3 0 +blink 0 0 0 0 0 20 Blink BlinkShortDesc BlinkShortDesc Blink StrSkill3 1 0 +battleorderscta 0 0 0 0 0 46 skillname149 skillsd149 skillld149 skillan149 StrSkill3 1 3 StrSkill101 StrSkill23 ln34/2 3 StrSkill100 StrSkill23 ln34/2 3 StrSkill102 StrSkill23 ln34/2 12 StrSkill20 len 40 Sksyn skillname149 2 67 skillname138 Secplev2 par8/25 67 skillname155 Secplev2 par8/25 0 +holy nova 1 6 2 1 0 60 HolyNova HolyNovaShortDesc HolyNovaLongDesc HolyNova StrSkill3 5 1 47 StrSkill50 ln12 + (skill('Prayer'.blvl) + skill('Holy Light'.blvl)) * par7 ln12 + (skill('Prayer'.blvl) + skill('Holy Light'.blvl)) * par7 10 12 StrCooldown 100 40 Sksyn HolyNova 2 67 skillname99 Healplev par7 67 HolyLight Healplev par7 63 skillname101 Magdplev par8 63 skillname121 Magdplev par8 0 +holy light 1 3 2 1 0 62 HolyLight HolyLightShortDesc HolyLightLongDesc HolyLight StrSkill3 1 47 StrSkill50 ln12 + (skill('Prayer'.blvl) * par6) ln34 + (skill('Prayer'.blvl) * par7) 10 40 Sksyn HolyLight 2 63 skillname101 Magdplev par8 63 skillname121 Magdplev par8 18 Holylightheal 0 +ice barrage 3 5 2 3 0 60 IceBarrage IceBarrageShortDesc IceBarrageLongDesc IceBarrage StrSkill3 5 1 7 IceLances par5+(min(blvl/3,par6)) 10 19 StrSkill18 ln12 40 Sksyn IceBarrage 2 63 skillname39 Colddplev par8 63 skillname55 Colddplev par8 0 +shattering arrow 0 0 0 0 0 2 skillname31 skillsd31 skillxld31 skillan31 StrSkill3 6 1 1 12 StrSkill62 edln 10 2 StrSkill22 StrSkill23 toht 19 StrSkill18 par1 40 Sksyn skillname31 2 63 skillname11 Colddplev par8 63 skillname21 FrezLenplev par7 0 +gust 3 4 3 3 0 60 Gust GustShortDesc GustLongDesc Gust StrSkill3 1 12 StrCooldown "max(163 - (lvl * 5 + stat('gustreduction'.accr)), 13)" 0 +blood warp 3 5 1 3 0 60 BloodWarp BloodWarpShortDesc BloodWarpLongDesc BloodWarp StrSkill3 1 3 StrMinLifeCost StrFlatLife "min(ln34,60)" 3 StrLifeCost StrPercentMaxHP 12 - stat('blood_warp_life_reduction'.accr) 12 StrCooldown "max(150 - lvl * 5, 0)" 0 +cold enchant 3 1 3 1 0 62 ColdEnchant ColdEnchantShortDesc ColdEnchantLongDesc ColdEnchant StrSkill3 1 2 StrPartyAttackBonus StrSkill23 toht/2 2 StrSkill30 StrSkill23 toht 47 StrColdEnchantParty (edmn * (100 + stat('passive_cold_mastery'.accr))/100) / 2 (edmx * (100 + stat('passive_cold_mastery'.accr))/100) / 2 47 StrColdEnchantSelf (edmn * (100 + stat('passive_cold_mastery'.accr))/100) (edmx * (100 + stat('passive_cold_mastery'.accr))/100) 12 StrSkill20 "min(ln12, 7500)" 40 Sksyn ColdEnchant 2 63 skillname60 Colddplev par8 0 +combustion 1 5 2 1 0 64 Combustion CombustionShortDesc CombustionLongDesc Combustion StrSkill3 5 combustion 1 11 10 9 8 12 StrCooldown 63 40 Sksyn Combustion 2 63 skillname36 Firedplev par8 63 skillname47 Firedplev par8 0 +lesser hydra 1 3 3 1 0 66 LesserHydra LesserHydraShortDesc LesserHydraLongDesc LesserHydra StrSkill3 5 1 24 StrSkill113 12 StrSkill20 ln12 40 Sksyn skillname62 2 63 skillname36 Firedplev par7 63 skillname62 Firedplev par8 0 +desecrate 2 3 1 2 0 34 Desecrate DesecrateShortDesc DesecrateLongDesc Desecrate StrSkill3 5 1 14 40 Sksyn skillname83 2 63 skillname73_PD2 Poisdplev par8 63 skillname92 Poisdplev par8 0 +curse mastery 1 1 3 3 0 62 CurseMastery CurseMasteryShortDesc CurseMasteryLongDesc CurseMastery StrSkill3 5 StrMaxCurses 1 + stat('max_curses'.accr) 0 +dark pact 1 2 1 2 0 64 DarkPact DarkPactShortDesc DarkPactLongDesc DarkPact StrSkill3 5 1 59 StrPerCurse StrMagDmg enma exma 2 DpBonus StrSkill23 10 2 DpBonus2 StrSkill23 33 19 StrSkill18 par1 + skill('CurMas'.blvl) / 3 40 Sksyn DarkPact 2 42 CurseMastery StrIncRadiusplev 0 6 63 CurseMastery Magdplev par8 63 skillname76 Magdplev par8 63 StrAllCurses Magdplev par7 0 +joust 1 5 1 1 0 64 Joust JoustShortDesc JoustLongDesc Joust StrSkill3 7 clc1 2 1 2 StrCritStrike StrSkill24 clc2 2 StrSkill30 StrSkill23 toht 2 StrSkill4 StrSkill23 clc1 2 StrSkill89 StrSkill23 "min(3 + (2 * lvl), 65)" 12 StrCooldown "max(104 - ((lvl * 5) / 2), 38)" - ((stat('joustreduction'.accr)) + (stat('joustreduction_leorics'.accr)) + (stat('joustreduction_zeraes'.accr))) 18 StrJoustReducedCd 0 +lesser fade 0 0 0 2 0 2 LesserFade Skillsd268 Skillld268 LesserFade StrSkill3 1 12 StrSkill20 ln56 3 StrSkill54 StrSkill23 dm12 3 StrSkill85 StrSkill23 dm34 0 +lightning sentry 1 5 1 1 0 12 Skillname272 Skillsd272 Skillld272 Skillan272 StrSkill3 5 1 10 3 ESkillShoots ESkillTimes par1 40 Sksyn Skillname272 2 63 Skillname252 Ltngdplev par8 63 Skillname262 Ltngdplev par8 63 ChainLtngSentry Ltngdplev par8 0 +force move 0 0 0 0 0 24 ForceMove ForceMoveShort ForceMoveLong ForceMove 0 +amplify damage proc 0 0 0 0 0 25 skillname66 skillsd66 skillld66 skillan66 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + lvl / 3 2 StrPhysDmgResist StrSkill23 -(par5 + par6*lvl) 18 StrAmpDmgPhysRes 40 Sksyn skillname66 2 63 CurseMastery StrRedPhysDmgResplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +weaken proc 0 0 0 0 0 26 skillname72 skillsd72 skillld72 skillan72 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + lvl / 3 3 StrSkill38 StrSkill23 -(ln56) 40 Sksyn skillname72 2 63 CurseMastery StrRedDmgplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +iron maiden proc 0 0 0 0 0 27 skillname76 skillsd76 skillld76 skillan76 StrSkill3 1 19 StrSkill18 par1 + lvl / 3 12 StrSkill20 ln34 7 StrSkill55 ln56 40 Sksyn skillname76 2 63 CurseMastery StrIncDmgRet par8 42 CurseMastery StrIncRadiusplev 0 6 0 +life tap proc 0 0 0 0 0 28 skillname82 skillsd82 skillld82 skillan82 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + lvl / 3 2 StrLifeSteal StrSkill23 par5 + par6 * lvl 18 StrLifeTapInc 40 Sksyn skillname82 2 63 CurseMastery StrIncLLplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +decrepify proc 0 0 0 0 0 29 skillname87 skillsd87 skillld87_PD2 skillan87 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + lvl / 3 2 StrAttCastRate StrSkill23 -(par6 + lvl) 2 StrMoveSpeed StrSkill23 -(par5 + lvl) 18 StrDecrepRedDesc 40 Sksyn skillname87 2 63 CurseMastery StrAttCastRateplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +lower resist proc 0 0 0 0 0 30 skillname91 skillsd91 skillld91 skillan91 StrSkill3 1 12 StrSkill20 ln34 19 StrSkill18 par1 + lvl / 3 3 StrSkill54 StrSkill23 -1 * (par5 + par6*lvl) 18 StrLowerResDesc 40 Sksyn skillname91 2 63 CurseMastery StrLowResRedplev 1 42 CurseMastery StrIncRadiusplev 0 6 0 +raise skeleton archer 3 5 3 3 0 66 SummSkeleArcher SummSkeleArcherShortDesc SummSkeleArcherLongDesc SummSkeleArcher StrSkill3 1 5 StrSkill21 20+(lvl+skill('Skeleton Mastery'.lvl))*par5 5 StrSkill22 5+(lvl+skill('Skeleton Mastery'.lvl))*par4 13 (lvl < 4) ? 0 : (par2 * (lvl - 3)) skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par1) 9 36 StrSkeleArcher StrSkeleArchers "min((blvl < 4) ?blvl:(2+blvl/3), 8) + stat('extra_skele_archer'.accr)" 40 Sksyn SummSkeleArcher 2 63 skillname69 Damplev par8 63 skillname70_PD2 Damplev par7 0 +FingermageBossNova FingermageBossNova 0 +book of unlimited identify 0 0 0 4 0 14 UnlimitedIDSkillName UnlimitedIDSkillDesc UnlimitedIDSkillDesc UnlimitedIDSkillAlt 18 UnlimitedQuantity 0 +book of unlimited townportal 0 0 0 4 0 18 UnlimitedTPSkillName UnlimitedTPSkillDesc UnlimitedTPSkillDesc UnlimitedTPSkillAlt 18 UnlimitedQuantity 0 +Blade Dance 3 0 0 1 0 62 BladeDance skillsd151 skillld151 skillan151 StrSkill3 1 clc1 1 1 2 StrSkill22 StrSkill23 toht 2 StrSkill4 StrSkill23 clc1 2 StrIncVelocity StrSkill23 "min(ln56, 65)" 0 +Deep Wounds 2 6 2 1 0 60 Deep Wounds DeepWoundsDesc DeepWoundsDesc Deep Wounds StrSkill3 7 OpenWoundsDesc par1 + (par2 * lvl / 2) 3 OpenWoundsDamage StrSkill34 edmx 40 Sksyn Deep Wounds 2 63 skillname150 Damplev par8 0 +Vampire Form 0 0 0 2 0 31 VampireForm VampireFormd VampireFormd VampireForm StrSkill3 6 FasterCastRate par1 18 StrVampireLPK 2 StrMagicDamage StrSkill23 par2 2 StrSkill8 StrSkill23 par3 18 StrToMaxCurses 12 StrCooldown 13 0 +energy shield selfaura 0 0 0 -1 0 0 skillname58 skillsd58 skillld58 skillan58 StrSkill3 1 3 StrSkill40 StrSkill23 "min(edmn,90)" 12 StrSkill20 ln12 7 StrESSkillEfficiency ("max(par5-blvl-(stat('es_efficiency'.accr)), 14)" * 100) / 16 18 StrEsBaseEfficiency 0 +chilling armor selfaura 0 0 0 -1 0 0 skillname60 skillsd60_PD2 skillld60_PD2 skillan60_PD2 StrSkill3 5 1 10 3 StrSkill31 StrSkill23 ln12 2 StrSkill110 StrSkill23 5+blvl 12 StrSkill20 ln34+(skill('Shiver Armor'.blvl))*par7 18 StrChillingBlock 40 Sksyn skillname60 2 63 ColdEnchant Colddplev par8 0 +quickness selfaura 0 0 0 -1 0 0 Skillname259 Skillsd259 Skillld259 Skillan259 StrSkill3 1 12 StrSkill20 ln56 2 StrSkill89 StrSkill23 edln 2 StrSkill106 StrSkill23 ((110*blvl) * (par4-par3))/(100 * (blvl+6)) + par3 18 StrBOSAtkSpd 0 +blade shield selfaura 0 0 0 -1 0 0 Skillname278 Skillsd278 Skillld278 Skillan278 StrSkill3 5 1 1 2 StrSkill22 StrSkill23 toht 12 StrSkill20 ln12 7 StrWeaponDmgPercent 25 9 57 StrSecondsPerAttack par3 - (blvl / 2) 18 StrBladeShieldAttackRate 40 Sksyn Skillname278 2 63 Skillname258 Damplev par8 63 Skillname267 Damplev par8 0 +armageddon selfaura 0 0 0 -1 0 0 Skillname250 Skillsd250 Skillld250 Skillan250 StrSkill3 5 armageddonfire 22 10 9 1 19 StrSkill18 par3 12 StrSkill20 ln12 40 Sksyn Skillname250 2 63 Skillname230 Firedplev par8 63 Skillname245 Firedplev par8 0 +Split Throw 1 4 3 1 0 62 SplitThrow SplitThrowDesc SplitThrowDesc SplitThrow StrSkill3 13 clc4 3 5 StrSkill3 usmc/128 8 2 StrSkill4 StrSkill23 ln56 + (skill('Increased Speed'.blvl) + skill('Concentrate'.blvl))*par8 5 StrProjectiles par1+(min(lvl/5,par2)) 40 Sksyn SplitThrow 2 63 skillname144 Damplev par8 63 skillname148 Damplev par8 0 +thunder storm selfaura 0 0 0 -1 0 0 skillname57 skillsd57 skillld57 skillan57 StrSkill3 5 1 10 12 StrSkill20 ln12 12 StrDelay par3 - (blvl * 25 / 20) 18 StrTStormDelay 40 Sksyn skillname57 2 63 skillname38 Ltngdplev par8 63 skillname48 Ltngdplev par8 0 diff --git a/api/src/game-data/pd2/season-13/Skills.txt b/api/src/game-data/pd2/season-13/Skills.txt new file mode 100644 index 0000000..4921a94 --- /dev/null +++ b/api/src/game-data/pd2/season-13/Skills.txt @@ -0,0 +1,604 @@ +skill Id charclass skilldesc srvstfunc srvdofunc prgstack srvprgfunc1 srvprgfunc2 srvprgfunc3 prgcalc1 prgcalc2 prgcalc3 prgdam srvmissile decquant lob srvmissilea srvmissileb srvmissilec srvoverlay aurafilter aurastate auratargetstate auralencalc aurarangecalc aurastat1 aurastatcalc1 aurastat2 aurastatcalc2 aurastat3 aurastatcalc3 aurastat4 aurastatcalc4 aurastat5 aurastatcalc5 aurastat6 aurastatcalc6 auraevent1 auraeventfunc1 auraevent2 auraeventfunc2 auraevent3 auraeventfunc3 auratgtevent auratgteventfunc passivestate passiveitype passivestat1 passivecalc1 passivestat2 passivecalc2 passivestat3 passivecalc3 passivestat4 passivecalc4 passivestat5 passivecalc5 passiveevent passiveeventfunc summon pettype petmax summode sumskill1 sumsk1calc sumskill2 sumsk2calc sumskill3 sumsk3calc sumskill4 sumsk4calc sumskill5 sumsk5calc sumumod sumoverlay stsuccessonly stsound stsoundclass stsounddelay weaponsnd dosound dosound a dosound b tgtoverlay tgtsound prgoverlay prgsound castoverlay cltoverlaya cltoverlayb cltstfunc cltdofunc cltprgfunc1 cltprgfunc2 cltprgfunc3 cltmissile cltmissilea cltmissileb cltmissilec cltmissiled cltcalc1 *cltcalc1 desc cltcalc2 *cltcalc2 desc cltcalc3 *cltcalc3 desc warp immediate enhanceable attackrank noammo range weapsel itypea1 itypea2 itypea3 etypea1 etypea2 itypeb1 itypeb2 itypeb3 etypeb1 etypeb2 anim seqtrans monanim seqnum seqinput durability UseAttackRate LineOfSight TargetableOnly SearchEnemyXY SearchEnemyNear SearchOpenXY SelectProc TargetCorpse TargetPet TargetAlly TargetItem AttackNoMana TgtPlaceCheck ItemEffect ItemCltEffect ItemTgtDo ItemTarget ItemCheckStart ItemCltCheckStart ItemCastSound ItemCastOverlay skpoints reqlevel maxlvl reqstr reqdex reqint reqvit reqskill1 reqskill2 reqskill3 restrict State1 State2 State3 delay leftskill repeat checkfunc nocostinstate usemanaondo startmana minmana manashift mana lvlmana interrupt InTown aura periodic perdelay finishing passive progressive general scroll calc1 *calc1 desc calc2 *calc2 desc calc3 *calc3 desc calc4 *calc4 desc Param1 *Param1 Description Param2 *Param2 Description Param3 *Param3 Description Param4 *Param4 Description Param5 *Param5 Description Param6 *Param6 Description Param7 *Param7 Description Param8 *Param8 Description InGame ToHit LevToHit ToHitCalc ResultFlags HitFlags HitClass Kick HitShift SrcDam MinDam MinLevDam1 MinLevDam2 MinLevDam3 MinLevDam4 MinLevDam5 MaxDam MaxLevDam1 MaxLevDam2 MaxLevDam3 MaxLevDam4 MaxLevDam5 DmgSymPerCalc EType EMin EMinLev1 EMinLev2 EMinLev3 EMinLev4 EMinLev5 EMax EMaxLev1 EMaxLev2 EMaxLev3 EMaxLev4 EMaxLev5 EDmgSymPerCalc ELen ELevLen1 ELevLen2 ELevLen3 ELenSymPerCalc aitype aibonus cost mult cost add +Attack 0 attack 1 1 1 1 0 both weap tpot A1 A1 A1 1 1 1 1 1 1 1 1 0 8 0 0 1 1 1 1 8 128 0 +Kick 1 kick 2 2 0 0 0 h2h 4 KK KK xx 1 1 1 1 0 8 0 0 1 1 1 8 0 +Throw 2 throw 65 3 2 2 0 rng thro TH TH xx 1 1 1 2 0 8 0 0 1 1 1 8 128 0 +Unsummon 3 unsummon 3 4 3 0 0 rng SC SC xx 1 1 1 1 0 8 0 0 1 1 1 1 8 0 +Left Hand Throw 4 left hand throw 65 5 2 2 0 rng 1 thro S4 S4 xx 1 1 1 1 3 0 8 0 0 1 1 1 8 0 +Left Hand Swing 5 left hand swing 1 1 4 1 0 both 1 weap tpot S3 S3 S3 1 1 1 1 1 1 4 0 8 0 0 1 1 1 8 0 +Magic Arrow 6 ama magic arrow 4 8 magicarrow 11 17 magicarrow 1 0 1 rng miss A1 A1 xx 1 1 20 1 0 5 16 1 1 1 + (blvl / 5) 75 mag dmg% conversion 10 extra arrows level 20 damage synergy 1 10 9 8 96 mag 3 2 5 15 30 44 5 3 7 17 32 47 (skill('Inner Sight'.blvl)+skill('Slow Movement'.blvl)+skill('Guided Arrow'.blvl))*par8 256 5000 +Fire Arrow 7 ama fire arrow 4 8 firearrow 11 17 firearrow 1 0 1 rng miss A1 A1 xx 1 6 20 Magic Arrow 1 1 0 5 12 1 1 "min(14,2+(lvl/par2))" 3 extra arrows level 15 damage synergy immo 15 damage synergy 1 10 10 8 64 fire 17 7 12 32 64 96 24 9 15 35 70 105 (skill('Immolation Arrow'.blvl))*par7 + (skill('Magic Arrow'.blvl))*par8 384 10000 +Inner Sight 8 ama inner sight 6 34179 innersight ln34 "min(ln56, 30)" armorclass -edmn item_tohit_percent -"min(9+(lvl*par7),40)" amazon_eyeofzeus cast_innersight 1 3 none SC SC xx 4 1 amazon_eyeofzeus cast_innersight 1 20 1 1 7 10 0 1 40 base monster ac 25 monster ac/lvl 200 duration 100 duration per level 10 radius of effect 1 radius per level 1 -AR per level 1 8 mag 40 25 45 60 80 100 256 5000 +Critical Strike 9 ama critical strike criticalstrike passive_critical_strike dm12 1 4 rng spea miss xx 1 1 20 1 0 8 0 0 1 1 5 min % to do double damage 75 max % to do double damage 1 8 256 5000 +Jab 10 ama jab 5 7 amazon_jab_1 weapon_1ht_1 weapon_2ht_1 12 16 1 3 h2h spea SQ A1 xx 1 1 1 1 1 1 1 20 1 1 6 6 1 ln34 + (skill('Fend'.blvl) * par8) dmg% 30 Percent damage base 18 Percent damage per level 15 damage synergy 1 25 12 8 128 256 5000 +Cold Arrow 11 ama cold arrow 4 8 coldarrow 11 17 coldarrow 1 4 1 rng miss A1 A1 xx 1 6 20 Magic Arrow 1 1 0 5 12 1 1 "(min(12,2+(lvl/par2))) + stat('extra_cold_arrows'.accr)" 4 extra arrows level 15 damage synergy ice aro 15 damage synergy 1 10 10 8 64 cold 14 4 10 30 60 90 20 8 12 32 64 96 (skill('Ice Arrow'.blvl))*par7 +(skill('Magic Arrow'.blvl)) * par8 100 384 10000 +Multiple Shot 12 ama multiple shot 4 8 multipleshotarrow multipleshotbolt 11 17 multipleshotarrow multipleshotbolt 1 7 1 rng miss A1 A1 xx 1 1 6 20 Magic Arrow 1 1 1 5 12 1 1 "min(24,ln12)" # missiles par3 activation frame 3 triggered ln56 ED% 3 number of arrows to fire 1 additional arrows per level 1 Acivation frame of arrows. 30 base dmg% 2 dmg% per level 8 damage synergy 1 8 6 8 128 384 10000 +Dodge 13 ama dodge dodge passive_dodge dm12 passive_avoid dm12 item_fastergethitrate 4 + lvl amazon_dodge_1 1 0 h2h NU NU xx 18 20 Evade Slow Movement 1 0 8 0 0 1 1 0 min % dodge/avoid 40 max % dodge/avoid 1 8 6 2 1 1 1 640 40000 +Power Strike 14 ama power strike 10 14 powerstrikenova1 powerstrikenova1 powerstrikenova1 20 22 powerstrikenova1 powerstrikenova1 powerstrikenova1 1 4 h2h spea A1 A1 xx 1 1 1 1 6 20 Jab 1 1 4 32 3 1 1000 radius 0 hits 20 damage synergy 1 20 12 8 128 ltng 1 0 0 0 0 0 1 3 5 13 22 32 (skill('Lightning Bolt'.blvl) + skill('Lightning Strike'.blvl)) * par8 384 10000 +Poison Javelin 15 ama poison javelin 4 poisonjav amazon_cast_poison 1 11 poisonjav 1 2 1 rng jave TH TH xx 1 1 20 1 1 6 6 1 1 24 damage synergy 1 128 pois 22 24 72 144 288 576 54 25 75 150 300 600 (skill('Plague Javelin'.blvl) * par8) + (skill('Javelin and Spear Mastery'.blvl)) * par8 25 0 0 0 256 5000 +Exploding Arrow 16 ama exploding arrow 4 explodingarrow explodingarrowexp3 fireexplosion3 par1+(blvl / 4) 11 explodingarrow 1 5 rng miss A1 A1 xx 1 18 20 Fire Arrow 1 1 1 6 16 1 1 par1+(blvl / 4) explosion radius "min((par2+(lvl/5)),8)" # cluster bombs par3 cluster height (range) par5 delay (fuse) 3 radius 3 # cluster bombs 10 cluster height 25 cluster width 2 fuse timer 18 damage synergy2 18 damage synergy 1 20 10 8 128 fire 2 5 9 17 27 37 6 6 10 18 28 38 (skill('Immolation Arrow'.blvl)) * par8 + (skill('Magic Arrow'.blvl))*par7 640 40000 +Slow Movement 17 ama slow movement 6 50563 slowmissiles ln34 "min(ln56,24)" skill_handofathena "max(edln,25)" velocitypercent -"min(ln78,65)" amazon_handofathena cast_slowmissiles 1 8 none SC SC xx 4 1 amazon_handofathena cast_slowmissiles 12 20 Inner Sight 1 1 7 10 0 1 75 % velocity for missiles -1 % velocity per level 250 duration 5 duration per level 18 radius of effect 1 radius per level 20 slow percent 2 slow percent per level 1 8 mag 75 -2 -2 -1 512 20000 +Avoid 18 ama avoid avoid passive_avoid 0 amazon_dodge_1 1 0 h2h NU NU xx 12 20 Dodge 1 0 8 0 0 1 1 15 min % avoid 75 max % avoid 1 8 512 20000 +Javelin and Spear Mastery 19 ama jav mastery javmastery spea passive_mastery_melee_dmg ln12 item_crit_multiplier edmn passive_mastery_throw_dmg ln12 1 0 none spea SC SC xx 1 6 20 Jab 0 8 0 0 1 1 1 40 Damage % base 12 damage % per level 0 critical% 35 critical% 1 8 10 1 1 1 1 1 384 10000 +Lightning Bolt 20 ama lightning bolt 4 188 lightningjavelin 11 117 lightningjavelin 1 6 1 rng jave TH TH xx 187 116 12 20 Poison Javelin Power Strike 1 1 6 16 1 1 15 damage synergy 1 8 128 ltng 5 1 3 5 8 11 40 12 26 54 82 110 (skill('Lightning Fury'.blvl) + skill('Power Strike'.blvl)) * par8 512 20000 +Ice Arrow 21 ama ice arrow 4 icearrow 11 icearrow 1 6 1 rng miss A1 A1 xx 1 12 20 Cold Arrow 1 1 1 8 3 0 1 16 damage synergy two 5 length synergy 10 damage synergy 1 20 10 8 128 cold 22 10 14 24 34 44 36 11 16 26 36 46 (skill('Cold Arrow'.blvl)+skill('Freezing Arrow'.blvl))*par8 + (skill('Magic Arrow'.blvl))*par6 25 (skill('Freezing Arrow'.blvl)+skill('Cold Arrow'.blvl)) * par7 512 20000 +Guided Arrow 22 ama guided arrow 4 10 guidedarrow guidedarrow guidedarrow 11 18 guidedarrow guidedarrow guidedarrow 1 4 1 rng miss A1 A1 xx 1 18 20 Multiple Shot 1 1 1 6 32 -1 1 ln34 + dmg% 25 Damage percent 5 damage % per level 1 8 64 mag 640 40000 +Penetrate 23 ama penetrate penetrate item_tohit_percent ln12 passive_phys_pierce blvl/2 1 1 rng spea miss xx 24 20 Pierce 1 0 8 0 0 1 1 par1+lvl/par2 35 add % to hit with missiles base 10 add % to hit with missiles/level 5 base -def 1 8 768 60000 +Charged Strike 24 ama charged strike 6 11 chargedstrikebolt chargedstrikebolt chargedstrikebolt 19 chargedstrikebolt chargedstrikebolt chargedstrikebolt 1 5 h2h spea A1 A1 xx 1 1 1 1 18 20 Power Strike 1 1 6 16 1 1 "min(12,par1+lvl/par2)" # bolts 3 Bolts to send out 3 Additional bolts per N levels 8 damage synergy2 8 damage synergy 1 8 ltng 7 2 2 3 4 4 40 12 16 20 24 28 (skill('Lightning Strike'.blvl)+skill('Power Strike'.blvl))*par8 640 40000 +Plague Javelin 25 ama plague javelin 4 plaguejavelin amazon_cast_poison 1 11 plaguejavelin 1 3 1 rng jave TH TH xx 1 18 20 Lightning Bolt 25 1 1 1 7 14 1 1 12 damage synergy 1 50 10 3 128 pois 10 6 12 20 40 80 16 6 12 20 40 80 (skill('Poison Javelin'.blvl) * par8) + (skill('Javelin and Spear Mastery'.blvl) * (par8)) 75 640 40000 +Strafe 26 ama strafe 8 12 strafearrow strafebolt par5 amazon_dodge_1 paladin_charge 13 20 multipleshotarrow multipleshotbolt 1 0 1 rng miss A1 A1 xx 1 24 20 Guided Arrow 1 1 1 8 11 0 "min(par3 + lvl - 1, par4)" #missiles ln12 + (skill('Penetrate'.blvl) * par8) damage % 2+lvl/4 min # missiles 80 Damage increase 12 Damage increase per level 2 Base Shots to take (+1 per level) 5 Max shots to take 28 Radius 50 % frame rollback 10 damage synergy 1 80 6 8 128 768 60000 +Immolation Arrow 27 ama immolation arrow 4 immolationarrow 11 immolationarrow 1 6 1 rng miss A1 A1 xx 1 30 20 Exploding Arrow 1 1 1 7 12 1 1 par1 fire disc radius par2 damage radius 3 Fire disc radius 4 Radial Damage Radius 5 damage synergy 1 30 9 8 128 fire 10 10 18 27 29 30 23 10 18 27 29 30 (skill('Exploding Arrow'.blvl)+skill('Fire Arrow'.blvl)+skill('Magic Arrow'.blvl))*par8 896 80000 +Dopplezon 28 ama dopplezonnew 49 dopplezonnew 750 fireresist "min(lvl*par3,85)" lightresist "min(lvl*par3,85)" coldresist "min(lvl*par3,85)" poisonresist "min(lvl*par3,85)" tohit edln dopplezonnew dopplezonnew 1 + blvl / 10 NU DoppleZonStrafe lvl Critical Strike skill('Critical Strike'.blvl) Pierce skill('Pierce'.blvl) Penetrate skill('Penetrate'.blvl) amazon_valkyrie_cast 1 8 none SC SC xx 1 4 18 20 Slow Movement 1 7 10 1 1 15 Pluse % HP per level 50 plus to hit per level 5 Min % resist all 90 Max % resist all 24 base item quality level 3 item quality per level 10 damage synergy 1 8 128 14 2 5 8 12 17 18 4 7 10 14 19 (skill('Strafe'.blvl)+skill('Valkyrie'.blvl))*par8 mag 200 50 50 50 35 + skill('Penetrate'.blvl) * 10 896 80000 +Evade 29 ama evade evade passive_evade "min(edmn, par4)" velocitypercent edmx amazon_dodge_1 1 0 h2h NU NU xx 6 20 1 0 8 0 0 1 1 0 min % evade 40 max % evade 2 velocity bonus per level 1 8 6 2 1 1 1 15 2 2 2 2 1 640 40000 +Fend 30 ama fend 37 13 temp_splash inc_splash_radius 1 amazon_jab_1 1 14 21 1 0 h2h spea A1 A1 xx 1 1 1 1 18 20 Javelin and Spear Mastery 1 1 8 5 0 3 max targets ln34 + (skill('Jab'.blvl) * par8) damage % 0 additional target/level 60 % frame rollback 100 % damage percent 25 damage % per level 20 damage synergy 1 80 6 8 128 640 40000 +Freezing Arrow 31 ama freezing arrow 4 freezingarrow par1+(blvl / 4) 11 freezingarrow 1 7 1 rng miss A1 A1 xx 1 30 20 Ice Arrow 1 1 1 6 18 1 1 par1+(blvl / 4) damage radius 4 Radius of impact 6 damage synergy2 0 length synergy 6 damage synergy 1 40 10 8 128 cold 35 8 12 16 20 24 55 10 14 18 22 26 (skill('Ice Arrow'.blvl))*par8 + skill('Cold Arrow'.blvl)*par6 12 896 80000 +Valkyrie 32 ama valkyrie 16 strength lvl * par2 + 20 * skill('Dopplezon'.blvl) dexterity lvl * par4 fireresist "min(lvl*par7,20)" lightresist "min(lvl*par7,20)" coldresist "min(lvl*par7,20)" poisonresist "min(lvl*par7,20)" item_armor_percent par3 * (lvl - 1) tohit toht passive_ltng_pierce skill('Pierce'.blvl)*2 valkyrie valkyrie 1+((lvl<20)?0:1)+((lvl<30)?0:1) + stat('extra_valk'.accr) NU Valk Power Strike 5+(lvl/2) Lightning Bolt skill('Power Strike'.blvl) Critical Strike skill('Critical Strike'.blvl) amazon_valkyrie_cast 1 6 none SC SC xx 4 1 30 20 Dopplezon 25 1 8 25 1 1 1 par1 * (lvl - 1) + skill('Dopplezon'.blvl) * par8 bonus hp% ln56 itemlevel 7 % hitpoints more per level 10 str per level 5 % AC increase per level 10 dex per level 25 Magic Item level 3 Magic Item level per level 3 resistances 0 hp synergy 1 40*lvl+40*skill('Penetrate'.blvl) 8 mag 896 80000 +Pierce 33 ama pierce pierce skill_pierce edmn 1 0 rng miss xx 12 20 Critical Strike 1 0 8 0 0 1 1 1 10 min % chance 100 max % chance 1 8 20 2 2 2 1 1 768 60000 +Lightning Strike 34 ama lightning strike 10 14 lightningstrike lightningstrike lightningstrike par1 22 lightningstrike lightningstrike lightningstrike 1 8 h2h spea A1 A1 xx 1 1 1 1 30 20 Charged Strike 1 1 6 24 1 1 par1 radius "min(ln34,10)" hits 16 radius of jump to next target 4 Target hits 1 Target hits per level 8 damage synergy 1 8 ltng 6 2 4 7 11 15 25 10 20 35 55 75 (skill('Charged Strike'.blvl)+skill('Power Strike'.blvl)) * par8 896 80000 +Lightning Fury 35 ama lightning fury 4 188 lightningfury 42371 par3 11 117 lightningfury 1 8 1 rng jave TH TH xx 187 116 30 20 Plague Javelin 1 1 6 20 1 1 10 + (lvl / 5) num targets 10 lightning spells from target 0 extra spells/level 15 Target search radius 3 damage synergy2 3 damage synergy 1 8 128 ltng 11 1 1 2 2 3 65 8 9 10 11 12 (skill('Lightning bolt'.blvl)) * par8 + (skill('Power Strike'.blvl)) * par8 896 80000 +Fire Bolt 36 sor fire bolt firebolt sorceress_cast_fire fire_cast_1 firebolt 1 2 none SC SC xx 188 117 sorceress_cast_fire 1 20 1 1 6 9 1 1 18 damage synergy 1 7 fire 6 4 16 30 46 46 12 6 18 32 48 48 (skill('Fire Ball'.blvl)+skill('Combustion'.blvl))*par8 256 5000 +Warmth 37 sor warmth warmth manarecoverybonus ln12 item_tohit_percent toht 1 0 none SC SC xx 1 20 1 0 8 0 0 1 1 1 30 increase in mana recovery 12 additional increase/level 1 20 10 8 fire 256 5000 +Charged Bolt 38 sor charged bolt 17 chargedbolt chargedbolt chargedbolt sorceress_cast_lightning light_cast_1 23 chargedbolt 1 1 none SC SC xx 1 sorceress_cast_lightning 1 20 1 1 5 24 2 1 "min(28,ln12)" # bolts 3 Bolts to send out 1 Additional bolts per level 7 damage synergy 1 7 ltng 4 1 1 1 2 2 8 1 1 2 3 4 (skill('Lightning'.blvl) + skill('Telekinesis'.blvl))*par8 256 5000 +Ice Bolt 39 sor ice bolt icebolt sorceress_cast_cold ice_cast_1 icebolt 1 5 none SC SC xx 188 117 sorceress_cast_cold 1 20 1 1 6 8 1 1 20 damage synergy 1 7 cold 6 4 11 26 41 56 10 6 14 35 56 77 (skill('Ice Blast'.blvl)+skill('Glacial Spike'.blvl))*par8 150 10 10 10 256 5000 +Cold Enchant 40 sor cold enchant 25 65539 coldenchant coldenchant "min(ln12, 7500)" 15 coldmindam edmn coldmaxdam edmx coldlength 25 item_tohit_percent toht sorceress_cast_cold sorceress_shiverarmor ice_cast_3 1 4 none SC SC xx 1 1 sorceress_enchant 1 20 1 8 25 1 1 1 7500 duration 0 duration per level 33 missile pct 8 range 26 damage synergy 1 20 10 7 cold 6 3 12 23 39 53 8 5 14 26 43 59 (skill('Chilling Armor'.blvl))*par8 256 5000 +Inferno 41 sor inferno 11 182 infernodebuff inferno_debuff 10 ln12/4-2 fireresist "-min((par5+(lvl<22)?lvl:(22+((lvl-22)/2))), 100)" 15 111 infernodebuff infernodebuff2 1 7 rng SQ SQ xx 6 3 1 20 1 1 4 0 3 4 1 1 "min((ln12/2),32)" range 20 frames if monster "min((2+(lvl/4)),5)" # missiles 22 base ranged (doubled) 2 level range (doubled) 4 Min Mana to start casting 4 base -fire res 20 damage synergy 1 5 fire 2 2 3 13 23 23 3 3 5 15 25 25 (skill('Fire Wall'.blvl)+skill('Blaze'.blvl))*par8 256 5000 +Static Field 42 sor static field 160 34691 staticfield_debuff 125 + (5 * skill('Lightning Mastery'.blvl)) "min(ln12 / 2, 14)" lightresist "-min((par5+(lvl<22)?lvl:(22+((lvl-22)/2))), 100)" sorceress_cast_lightning light_cast_1 1 10 none SC SC xx 4 1 sorceress_cast_lightning 1 20 1 1 8 9 0 1 par4 damage % par3 min damage 8 Base radius of effect. 1 Level radius bonus. 0 Minimum Damage. 25 Percent Damage. 4 base -lite res 1 8 ltng 256 5000 +Telekinesis 43 sor telekinesis 12 21 par1 sorceress_cast_lightning sorceress_telekinesis light_cast_2 1 10 none SC SC xx 1 sorceress_telekinesis 1 20 1 1 8 7 0 1 1 25 On-screen cast range. 35 Chance to knockback/stun. 15 damage synergy 1 5 2 109 8 ltng 2 1 1 2 2 2 7 3 6 12 12 12 (skill('Charged Bolt'.blvl)+skill('Nova'.blvl))*par8 256 5000 +Frost Nova 44 sor frost nova 22 frostnova frostnova frostnova sorceress_cast_cold ice_cast_2 25 frostnova 1 6 none SC SC SC 183 10 5 sorceress_cast_cold 6 20 1 1 6 20 1 1 9 radius of freeze 3 additional radius/level 7 damage synergy 1 7 cold 8 4 14 24 30 35 10 5 15 25 31 36 (skill('Ice Bolt'.blvl)+skill('Shiver Armor'.blvl))*par8 200 5 5 5 384 10000 +Ice Blast 45 sor ice blast iceblast sorceress_cast_cold ice_cast_1 iceblast 1 6 none SC SC xx 188 117 sorceress_cast_cold 6 20 Ice Bolt 1 1 7 12 1 1 50 Duration of freeze 2 additional duration/level 0 freeze synergy 6 damage synergy 1 7 cold 10 12 24 42 56 70 16 14 28 43 57 71 (skill('Ice Bolt'.blvl)+skill('Glacial Spike'.blvl))*par8 50 2 2 2 384 10000 +Blaze 46 sor blaze 23 blaze2ignite blaze2trail 73731 blaze "min(ln12, 250)" velocitypercent dm34 item_cannotbefrozen 1 sorceress_cast_fire fire_cast_2 blaze2ignite blaze2trail blaze2dotfiresmall blaze2dotfiremedium 1 3 none SC SC xx 1 6 20 Inferno 50 1 7 22 1 1 75 Min Frames 5 frames per level 30 min % speed increase 50 max % speed increase 6 firewall damage synergy 6 warmth damage synergy 1 2 fire 1 1 1 5 8 8 2 1 2 6 9 9 (skill('Fire Wall'.blvl))*par8 384 10000 +Fire Ball 47 sor fire ball fireball 4 + blvl / 5 sorceress_cast_fire fire_cast_2 fireball 1 5 none SC SC xx 188 117 sorceress_cast_fire 12 20 Fire Bolt 1 1 5 40 2 1 15 damage synergy 1 7 fire 12 13 23 28 33 38 28 15 25 30 35 40 (skill('Fire Bolt'.blvl)+skill('Combustion'.blvl))*par8 512 20000 +Nova 48 sor nova 22 nova nova nova sorceress_cast_lightning light_cast_1 25 nova 1 2 none SC SC xx 183 10 5 sorceress_cast_lightning 12 20 Charged Bolt 1 1 7 16 1 1 12 number of missiles 4 additional missiles per level 4 damage synergy 1 8 ltng 1 4 5 6 6 4 22 8 10 11 11 9 (skill('Charged Bolt'.blvl)+skill('Telekinesis'.blvl))*par8 512 20000 +Lightning 49 sor lightning lightningbolt sorceress_cast_lightning light_cast_1 lightningbolt 1 6 none SC SC xx 12 1 188 117 sorceress_cast_lightning 12 20 Charged Bolt 1 1 6 16 1 1 10 minimum damage 20 max damage 4 increase in dam/level (min & max) 8 damage synergy 1 8 ltng 8 3 3 4 5 6 30 10 13 16 19 22 (skill('Chain Lightning'.blvl)+skill('Charged Bolt'.blvl))*par8 512 20000 +Shiver Armor 50 sor shiver armor 18 shiverarmor ln34 skill_armor_percent ln12 item_fasterblockrate 10 + (blvl*2) attackedinmelee 3 sorceress_cast_cold sorceress_shiverarmor ice_cast_2 shiverarmor_hit sparkle 10 sparkle delay 5 sparkle radius 3 sparkle height 1 0 none SC SC xx sorceress_cast_cold ice_cast_3 12 20 Cold Enchant 1 8 11 0 1 1 45 % AC base 6 % AC per level 4500 Duration 75 duration per level 0 duration synergy 20 damage synergy 1 7 cold 16 5 8 11 14 17 20 6 9 12 15 18 skill('Cold Enchant'.blvl)*par8 100 5 5 5 512 20000 +Fire Wall 51 sor fire wall 24 firewallmaker firewall sorceress_cast_fire fire_cast_2 26 firewallmaker 1 4 none SC SC SC 4 1 1 sorceress_cast_fire 12 20 Blaze 38 1 1 6 60 3 1 5 damage synergy 5 damage synergy 1 3 fire 6 2 6 25 50 50 10 3 8 28 53 53 (skill('Blaze'.blvl))*par8 512 20000 +Enchant 52 sor enchant 25 65539 enchant enchant ln12 15 firemindam edmn firemaxdam edmx item_tohit_percent toht sorceress_enchant fire_cast_2 1 4 none SC SC xx 1 1 sorceress_enchant 18 20 Lesser Hydra Fire Ball 1 8 25 1 1 1 7500 duration 0 duration per level 33 missile pct 8 range 20 damage synergy 1 20 5 7 fire 25 8 14 24 36 46 35 10 16 26 38 48 (skill('Warmth'.blvl))*par8 640 40000 +Chain Lightning 53 sor chain lightning 26 chainlightning chainlightning chainlightning par1 sorceress_cast_lightning light_cast_1 27 chainlightning chainlightning chainlightning 1 2 none SQ SC SC 12 1 151 96 sorceress_cast_lightning 24 20 Lightning 1 1 7 8 1 1 "min(ln34 / 4, 14)" # hits 20 radius of jump to next target 26 bolts (5ths) 1 bolts per level (5ths) 4 5ths 8 damage synergy 1 8 ltng 8 2 3 4 4 5 40 13 16 19 22 25 (skill('Charged Bolt'.blvl)+skill('Lightning'.blvl))*par8 768 60000 +Teleport 54 sor teleport 155 teleportdebuff "max(0, par1 - stat('pvp_lld_cd'.accr))" sorceress_teleport teleport 1 1 0 none SC SC xx 1 1 1 2 sorceress_teleport teleport 18 20 Telekinesis 1 1 7 48 -1 1 "min(edmn, 50)" %dmg increase 25 debuff frames 50 base dmg reduction 1 8 ltng 0 1 1 1 1 1 640 40000 +Glacial Spike 55 sor glacial spike glacialspike ln34 * (100 + skill('Blizzard'.blvl) * par7) / 100 ln12 sorceress_cast_cold ice_cast_2 glacialspike 1 7 none SC SC SC 188 117 sorceress_cast_cold 18 20 Ice Blast 1 1 7 20 1 1 6 radius 0 radius per level 50 freeze frames 0 freeze frames per level 5 freeze synergy 8 damage synergy 1 7 cold 40 14 26 28 30 32 56 15 27 29 31 33 (skill('Ice Blast'.blvl)+skill('Ice Bolt'.blvl))*par8 640 40000 +Meteor 56 sor meteor 28 meteorcenter meteorcenter meteorcenter ln12 - (stat('pvp_disable'.accr)*3) sorceress_cast_fire fire_cast_2 28 meteorcenter 1 6 none SC SC xx 4 1 1 sorceress_cast_fire fire_cast_2 24 20 Fire Ball Fire Wall 13 1 1 7 20 1 1 ln12 - (stat('pvp_disable'.accr)*3) radius 10 radius of explosion 0 radius per level 40 Frames of fire 0 Frames of fire per level 6 ele damage synergy 6 phys damage synergy 1 8 25 7 10 13 15 17 30 9 12 15 18 21 ((100+(skill('Fire Ball'.blvl) + skill('Blaze'.blvl) + skill('Inferno'.blvl))*par7) * (100+stat('passive_fire_mastery'.accr)) / 100) - 100 fire 25 7 10 13 15 17 30 9 12 15 18 21 (skill('Fire Ball'.blvl) + skill('Blaze'.blvl) + skill('Inferno'.blvl))*par7 768 60000 +Thunder Storm 57 sor thunder storm 13 29 thunderstorm1 thunderstorm ln12 sorceress_thunder_cast lightning light_cast_2 84 thunderstorm1 1 5 none SC SC xx 24 20 Nova Lightning 1 8 19 0 1 1 1 par3 - (blvl * 25 / 20) 800 duration 200 additional duration/level 50 base repeat time 1 frame decrease per level 17 radius 8 damage synergy 1 8 ltng 1 2 3 4 5 6 100 4 5 6 7 8 (skill('Charged Bolt'.blvl) + skill('Nova'.blvl)) * par8 768 60000 +Energy Shield 58 sor energy shield 23 energyshield ln12 absorbdamage 24 sorceress_cast_lightning sorceress_energyshield energyshieldhit0 light_cast_2 1 4 none SC SC xx 1 sorceress_cast_lightning light_cast_2 30 20 Teleport Chain Lightning 1 8 5 0 1 1 "min(edmn,90)" damage absorption "max(par5-blvl-(stat('es_efficiency'.accr)), 14)" ratio 3600 duration 1500 additional duration/level 34 Mana Damage mult in sixteenths 1 8 ltng 15 2 2 2 2 2 896 80000 +Blizzard 59 sor blizzard 28 blizzardcenter blizzardcenter blizzardcenter sorceress_cast_cold ice_cast_3 28 blizzardcenter 1 7 none SC SC xx 4 1 1 sorceress_cast_cold ice_cast_3 24 20 Frost Nova Glacial Spike 23 1 1 7 26 1 1 par1 radius par3 frequency 8 radius 2 Missile delay 0 Change duration in Missiles.xls 12 damage synergy 1 8 cold 17 5 6 8 10 14 24 7 8 11 14 19 (skill('Ice Bolt'.blvl)+skill('Ice Blast'.blvl))*par8 100 768 60000 +Chilling Armor 60 sor chilling armor 18 chillingarmorbolt chillingarmor ln34 skill_armor_percent ln12 toblock 5 + blvl hitbymissile 1 damagedinmelee 3 sorceress_cast_cold sorceress_shiverarmor ice_cast_3 chillarmor_hit chillingarmorbolt 1 5 none SC SC xx 4 1 1 1 sorceress_cast_cold 24 20 Shiver Armor 1 8 17 0 1 1 45 % AC Bonus 5 % AC bonus per level 6000 duration 75 duration per level 0 duration synergy 20 damage synergy 1 7 cold 10 3 6 9 12 15 14 4 7 10 13 16 skill('Cold Enchant'.blvl)*par8 100 5 5 5 768 60000 +Fire Mastery 61 sor fire mastery firemastery passive_fire_mastery ln12 passive_fire_pierce "min(lvl, 30)" 1 3 none SC SC xx 30 20 1 0 8 0 0 1 1 20 % Damage bonus 4 % Damage bonus per level 1 8 fire 896 80000 +Hydra 62 sor hydra 14 144 passive_fire_mastery stat('passive_fire_mastery'.accr) hydra1 hydra "min(9 + stat('extra_hydra'.accr) * 3, 15)" S2 HydraFireball lvl Fire Bolt skill('Fire Bolt'.blvl) Lesser Hydra skill('Lesser Hydra'.blvl) 1 sorceress_cast_fire fire_cast_2 17 1 7 none SC SC S1 4 1 1 sorceress_cast_fire fire_cast_2 30 20 Enchant 1 1 7 40 1 1 125 duration 0 additional duration/level 6 damage synergy 1 7 fire 84 16 23 31 38 44 117 20 25 35 41 47 (skill('Fire Bolt'.blvl) + skill('Lesser Hydra'.blvl))*par8 896 80000 +Lightning Mastery 63 sor lightning mastery lightningmastery passive_ltng_mastery ln12 1 5 none SC SC xx 30 20 1 0 8 0 0 1 1 50 % Damage bonus 10 % Damage bonus per level 1 8 ltng 896 80000 +Frozen Orb 64 sor frozen orb frozenorb sorceress_cast_cold ice_cast_3 29 frozenorb 1 8 none SQ SC SC 12 188 117 sorceress_cast_cold 30 20 Blizzard 1 1 7 28 1 1 4 damage synergy 1 7 cold 80 3 9 15 21 28 90 5 11 17 23 30 (skill('Ice Bolt'.blvl)+skill('Frost Nova'.blvl))*par8 200 5 5 5 896 80000 +Cold Mastery 65 sor cold mastery coldmastery passive_cold_pierce "min(ln12, 45)" passive_cold_mastery ln34 1 3 none SC SC xx 30 20 1 0 8 0 0 1 1 5 lower resist 1 lower resist per level 10 % inc cold dmg 2 % cold dmg per level 1 8 cold 896 80000 +AmpDmg 66 nec amplify damage 30 3 amplifydamage ln34 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 damageresist -(par5 + par6*lvl + (skill('CurMas'.blvl)/2)) necromancer_curse_cast 18 30 curseamplifydamage cursecast 1 10 none SC SC S2 4 1 necromancer_curse_cast 1 20 1 1 6 8 1 1 9 radius 1 radius per level 150 duration 5 additional duration/level 10 % additional damage taken 1 increase per level 1 8 mag 256 5000 +Teeth 67 nec teeth 8 teeth teeth necromancer_bone_cast 19 17 teeth teeth bonecast 1 1 none SC SC xx 1 necromancer_bone_cast 1 20 1 1 5 12 3 1 "min(ln12,24)" # missiles par3 activation frame 3 number of missiles 1 additional missiles/level 0 Acivation frame of teeth 24 damage synergy 1 7 mag 6 2 4 8 15 22 10 4 6 10 17 25 (skill('Bone Armor'.blvl)+skill('Bone Spear'.blvl)+skill('Bone Spirit'.blvl))*par8 256 5000 +Bone Armor 68 nec bone armor 18 bonearmor bonearmor ((stat('energy'.accr)*3) + edmx + ((skill('Bone Wall'.blvl) + skill('Bone Prison'.blvl)) * par8)) * 256 bonearmormax ((stat('energy'.accr)*3) + edmx + ((skill('Bone Wall'.blvl) + skill('Bone Prison'.blvl)) * par8)) * 256 item_armor_percent blvl*10 absorbdamage 22 necromancer_bonearmor 1 3 none SC SC xx 1 necromancer_bonearmor 6 20 Teeth 50 1 8 11 1 1 1 0 damage absorbed 0 additional absorbed/level 15 absorb synergy 1 8 mag 10 11 12 13 14 384 10000 +Skeleton Mastery 69 nec skeleton mastery skel_mastery 1 0 none SC SC xx 1 20 Raise Skeleton 0 8 0 0 1 1 15 additional hit points/level 2 additional damage per level 10 dmg%/lvl for mages 1 8 mag 256 5000 +Raise Skeleton 70 nec raise skeleton 15 31 damagepercent ((lvl < 4) ? 0 : ((lvl-3)*par3)) tohit (lvl+skill('Skeleton Mastery'.lvl))*par4 armorclass (lvl+skill('Skeleton Mastery'.lvl))*par5 maxhp skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par1) * 256 item_normaldamage (skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par2)) + edmn velocitypercent "min(skill('Skeleton Mastery'.lvl), 40)" damagepercent (skill('Raise Skeleton Archer'.blvl))*par7 + (skill('Skeleton Mastery'.blvl))*par8 necroskeleton skeleton "min((lvl < 4) ?lvl:(2+lvl/3), 8) + stat('extra_skele_war'.accr)" S1 1 necromancer_golem_cast 20 31 corpseexplosion 1 0 none SC SC xx 1 2 1 1 20 1 7 8 1 1 (lvl < 4) ? 0 : (par2 * (lvl - 3)) hp % adjustment 5 % chance of shield 14 hp%/lvl 10 dmg%/lvl 75 to hit/lvl 20 ac/lvl 2 skele synergy 6 damage Synergy 1 8 mag 0 1 2 3 4 5 (skill('Raise Skeleton Archer'.blvl)+skill('Raise Skeletal Mage'.blvl))*par7 + (skill('Skeleton Mastery'.blvl))*par8 256 5000 +Dim Vision 71 nec dim vision 30 2 dimvision ln34 par1 + blvl / 3 tohit -(ln56 + skill('CurMas'.blvl)*par8) necromancer_curse_cast 18 30 cursedimvision cursecast 1 0 none SC SC xx 4 1 necromancer_curse_cast 6 20 1 1 6 16 1 1 6 radius 1 radius per level 150 duration 25 additional duration/level 40 base ar reduc 10 ar reduc per level 10 debuff synergy 1 8 mag 384 10000 +Weaken 72 nec weaken 30 3 weaken ln34 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 damagepercent -(ln56 + skill('CurMas'.blvl) / 2) skill_armor_percent -ln78 necromancer_curse_cast 18 30 curseweaken cursecast 1 9 none SC SC SC 4 1 necromancer_curse_cast 18 20 Life Tap 1 1 6 16 1 1 12 radius 1 radius per level 250 duration 35 additional duration/level 10 % damage reduc 1 % damage reduc per level 10 negative armor base 2 negative amor per level 1 8 mag 640 40000 +Poison Dagger 73 nec poison dagger 164 poisondaggercloud 102 poisondaggercloud 1 4 h2h knif sc9 A1 A1 xx 1 1 1 1 20 1 1 5 12 1 1 "min(ln12, 50)" poison pierce 5 pierce base 1 pierce per level 10 # of missiles 25 damage synergy 1 50 30 4 128 pois 1 1 4 14 24 34 2 1 4 14 24 34 (skill('Desecrate'.blvl)+skill('Bone Armor'.blvl))*par8 50 256 5000 +Corpse Explosion 74 nec corpse explosion 17 55 ((par3+lvl*par4)>32)?32:(par3+lvl*par4) + stat('corpseexplosionradius'.accr) 1 necromancer_corpse_cast necromancer_corpseexp_1 21 32 corpseexplosion explodingarrowexp redlightmissile 1 0 none SC SC xx 1 1 1 1 3 1 necromancer_corpse_cast 6 20 Poison Dagger 1 1 6 20 1 1 par1 % target hp min damage par2 % target hp max damage par5 % is fire damage 5 % of base monster HP min damage 10 % of base monster HP max damage 14 radius (half squares) 1 additional radius/level (half squares) 50 % is fire damage 10 damage synergy 1 8 2 1 3 6 10 15 5 2 5 10 14 18 (skill('Revive'.blvl)+skill('Desecrate'.blvl)+skill('AmpDmg'.blvl))*par8 fire 2 1 3 6 10 15 5 2 5 10 14 18 (skill('Revive'.blvl)+skill('Desecrate'.blvl)+skill('AmpDmg'.blvl))*par8 384 10000 +Clay Golem 75 nec clay golem 74 56 item_slow dm34 damagedinmelee 27 velocitypercent skill('Golem Mastery'.dm34) tohit skill('Golem Mastery'.ln56) + (lvl*par8) damagepercent par2 * (lvl - 1) + (skill('FireGolem'.blvl)+skill('IronGolem'.blvl)+skill('BloodGolem'.blvl)+skill('Golem Mastery'.blvl))*par6 armorclass skill('IronGolem'.blvl)*skill('IronGolem'.par8) inc_splash_radius "min(lvl, 20)" ClayGolem golem "((lvl>0)?1:0) + (skill('Golem Mastery'.blvl) / 5) + stat('extra_golem'.accr)" S1 1 necromancer_golem_cast 1 5 none SC SC S1 4 6 20 25 1 7 15 1 1 1 par7*lvl + skill('Golem Mastery'.ln12) hp % adjustment 100 % Damage bonus per level 0 slow effect min 25 slow effect max 40 damage synergy 15 % HP bonus per level 20 clay golem attack synergy 1 8 mag 384 10000 +Iron Maiden 76 nec iron maiden 30 3 ironmaiden ln34 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 domeleedamage 4 necromancer_curse_cast 18 30 curseironmaiden cursecast 1 9 none SC SC S2 4 1 12 20 Dark Pact 1 1 6 16 1 1 ln56 + skill('CurMas'.blvl) * par8 % damage to return (ln56 + skill('CurMas'.blvl) * par8) / 4 % damage to return vs. players (ln56 + skill('CurMas'.blvl) * par8) / 4 % damage to return other 12 radius 0 radius per level 250 duration 30 additional duration/level 200 % damage returned to accursed 25 % additional returned/level 6 damage synergy 1 16385 141 8 mag 512 20000 +Terror 77 nec terror 30 2 terror par2 par1 velocitypercent -(par3 + par4 * blvl + skill('CurMas'.blvl)) necromancer_curse_cast 18 30 curseterror cursecast 1 0 none SC SC xx 4 1 necromancer_curse_cast 12 20 Dim Vision 1 1 6 16 1 1 9 radius 75 duration 15 -movement speed 2 -movement speed per level 24 Distance to run 2 Distance per level 1 8 mag 512 20000 +Bone Wall 78 nec bone wall 60 bonewallmaker item_attackertakesdamage edmn bonewall none S1 necromancer_bone_cast 22 1 0 none SC SC xx 4 1 necromancer_bone_cast 12 20 Bone Armor 25 1 1 8 17 0 1 (par1 * (lvl-1)) + ((skill('Bone Armor'.blvl)+skill('Bone Prison'.blvl))*par8) hp % adjustment par34 # of walls - 1 25 % additional HP per level 600 MAX duration 8 Max Monsters per wall 0 "Level, max monsters per wall" 5 life and damage synergy 1 8 mag 15 8 16 32 48 64 (skill('Bone Armor'.blvl)+skill('Bone Prison'.blvl))*par8 512 20000 +Golem Mastery 79 nec golem mastery golem_mastery 1 0 none SC SC xx 12 20 Clay Golem 1 0 8 0 0 1 1 10 % HP bonus per level 10 % HP bonus per level 0 min velocity increase 40 max velocity increase 25 to hit 25 to hit/lvl 1 8 mag 512 20000 +Raise Skeletal Mage 80 nec raise skeletal mage 15 31 armorclass (lvl+skill('Skeleton Mastery'.lvl))*par5 passive_ltng_mastery skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par3) +stat('passive_ltng_mastery'.accr) passive_fire_mastery skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par3) +stat('passive_fire_mastery'.accr) passive_cold_mastery skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par3) +stat('passive_cold_mastery'.accr) passive_pois_mastery skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par3) +stat('passive_pois_mastery'.accr) maxhp skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par1) * 256 velocitypercent 10 + "min(skill('Skeleton Mastery'.lvl), 25)" necromage skeletonmage "min((blvl < 4) ?blvl:(2+blvl/3), 8) + stat('extra_skele_mage'.accr) + stat('grims_extra_skele_mage'.accr)" S1 NecromageMissile skill('Skeleton Mastery'.lvl) + ((lvl < 4)?0:((lvl-2)/2)) 1 necromancer_golem_cast 20 31 corpseexplosion 1 0 none SC SC xx 1 2 1 12 20 Raise Skeleton 1 7 12 1 1 (lvl < 4) ? 0 : (par2 * (lvl - 3)) hp % adjustment 12 hp%/lvl 10 ac/lvl 10 damage synergy 1 8 mag 512 20000 +Confuse 81 nec confuse 61 2 confuse ln34 par1 attackrate par5 + par6 * lvl + skill('CurMas'.blvl) * 5 necromancer_curse_cast 18 30 curseconfuse cursecast 1 0 none SC SC xx 4 1 necromancer_curse_cast 18 20 Terror 1 1 6 16 1 1 9 radius 0 radius per level 500 duration 0 additional duration/level 40 % ias 10 % ias per level 1 8 mag 640 40000 +Life Tap 82 nec life tap 30 3 lifetap "min(ln34, 500)" par1 + blvl / 3 + skill('CurMas'.blvl) / 3 damagedinmelee 5 damagedbymissile 5 necromancer_curse_cast steallife 18 30 cursereversevampire cursecast 1 4 none SC SC S2 4 1 necromancer_curse_cast 12 20 AmpDmg 1 1 6 20 1 1 par5 + par6 * blvl + skill('CurMas'.blvl) / 2 hp % returned 6 radius 1 radius per level 175 duration 35 additional duration/level 8 % damage healed 2 % additional heal/level 1 8 mag 512 20000 +Desecrate 83 nec desecrate 161 poisonexplosioncloud desecrate 50 DD necromancer_poison_cast 101 poisonexplosioncloud corpseexplosion greenlightmissile 1 0 none SC SC xx 4 1 necromancer_poison_cast 12 20 Corpse Explosion 1 1 7 18 1 1 5 # summons per cast 10 Max summons 22 damage synergy 1 4 pois 3 1 4 14 19 24 4 1 4 14 19 24 (skill('Poison Dagger'.blvl)+skill('Poison Nova'.blvl))*par8 75 0 0 0 512 20000 +Bone Spear 84 nec bone spear 8 bonespear bonespear necromancer_bone_cast 19 17 bonespear bonespear bonecast 1 6 none SC SC xx 1 necromancer_bone_cast 18 20 Teeth 1 1 6 28 1 1 "max(1, 1 + ((lvl<15)?0:1) + ((lvl<25)?0:1) + stat('extra_bonespears'.accr))" # missiles 15 Bone Armor Synergy 15 damage synergy 1 8 mag 12 7 9 12 26 46 18 7 9 13 28 50 (skill('Teeth'.blvl)+skill('Bone Spirit'.blvl))*par8+skill('Bone Armor'.blvl)*par7 640 40000 +BloodGolem 85 nec bloodgolem 74 56 item_openwounds 100 domeleedamage 23 damagedinmelee 26 damagedbymissile 26 velocitypercent skill('Golem Mastery'.dm34) tohit skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8) damagepercent par4 * (lvl - 1) + (skill('FireGolem'.blvl)+skill('Clay Golem'.blvl)+skill('IronGolem'.blvl)+skill('Golem Mastery'.blvl))*par3 armorclass skill('IronGolem'.blvl)*skill('IronGolem'.par8) deep_wounds edmx BloodGolem golem "((lvl>0)?1:0) + (skill('Golem Mastery'.blvl) / 5) + stat('extra_golem'.accr)" S1 1 necromancer_golem_cast 1 5 none SC SC xx 4 18 20 Clay Golem 25 1 7 25 1 1 1 par7*lvl + skill('Golem Mastery'.ln12) hp % adjustment ln12 * 256 life per hit 8 life per hit 1 life per hit per level 12 damage synergy 75 %additional golem damage per level 0 % damage on golem xfered to caster 25 % caster healing xfered to golem 15 hp per level 5 blood golem life synergy 1 8 30 6 8 10 12 14 (skill('Clay Golem'.blvl)+skill('FireGolem'.blvl)+skill('IronGolem'.blvl)+skill('Golem Mastery'.blvl))*par3 640 40000 +Attract 86 nec attract 18 59 2 attract "min(ln34, 375)" par1 + blvl / 3 armorclass -(ln56 + skill('CurMas'.blvl)*par8) necromancer_curse_cast 18 30 curseattract cursecast 1 0 none SC SC xx 4 1 1 24 20 Confuse 1 1 8 10 0 1 4 radius 0 radius per level 200 duration 5 additional duration/level 120 - defense 10 -defense per level 5 -defense synergy 1 8 mag 768 60000 +Decrepify 87 nec decrepify 30 3 decrepify ln34 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 velocitypercent -(par5 + lvl) attackrate -"min(par6 + lvl + skill('CurMas'.blvl),60)" item_fastercastrate -"min(par6 + lvl + skill('CurMas'.blvl),60)" item_leap_speed -(par5 + blvl) damageresist -(10 + (lvl/3)) necromancer_curse_cast 18 30 cursedecrepify cursecast 1 9 none SC SC S2 4 1 necromancer_curse_cast 24 20 Weaken 1 1 6 20 1 1 12 radius 1 radius per level 150 duration 10 additional duration/level 9 movespeed 9 attack/cast speed 1 8 mag 768 60000 +Bone Prison 88 nec bone prison 19 62 item_attackertakesdamage edmn bonewall none NU necromancer_bone_cast 22 1 10 none SC SC xx 4 1 1 1 necromancer_bone_cast 24 20 Bone Wall Bone Spear 125 1 8 27 -1 1 (par1 * (lvl-1)) + ((skill('Bone Armor'.blvl)+skill('Bone Wall'.blvl))*par8) hp % adjustment 25 % additional HP per level 600 MAX duration 5 life and damage synergy 1 8 mag 30 10 20 40 60 80 (skill('Bone Armor'.blvl)+skill('Bone Wall'.blvl))*par8 768 60000 +Raise Skeleton Archer 89 nec raise skeleton archer 15 31 armorclass (lvl+skill('Skeleton Mastery'.lvl))*par5 tohit (lvl+skill('Skeleton Mastery'.lvl))*par4 maxhp skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par1) * 256 item_normaldamage (skill('Skeleton Mastery'.lvl) * skill('Skeleton Mastery'.par2)) + edmn velocitypercent 10 + "min(skill('Skeleton Mastery'.lvl), 25)" damagepercent (skill('Raise Skeleton'.blvl))*par7 + (skill('Skeleton Mastery'.blvl))*par8 necroarcher skeletonarcher "min((blvl < 4) ?blvl:(2+blvl/3), 8) + stat('extra_skele_archer'.accr)" S1 Skeleton Archer Bow lvl 1 necromancer_golem_cast 20 31 corpseexplosion 1 0 none SC SC xx 1 2 1 24 20 Raise Skeletal Mage 1 7 12 1 1 (lvl < 4) ? 0 : (par2 * (lvl - 3)) hp % adjustment 6 hp%/lvl 90 to hit/lvl 10 ac/lvl 2 skele synergy 6 damage synergy 1 8 128 15 4 8 18 28 38 20 4 8 18 28 38 (skill('Raise Skeleton'.blvl))*par7 + (skill('Skeleton Mastery'.blvl))*par8 mag 512 20000 +IronGolem 90 nec irongolem 20 57 thorns item_attackertakesdamage ln12 fade 16 velocitypercent skill('Golem Mastery'.dm34) tohit skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8) armorclass lvl*par8 damagepercent (skill('FireGolem'.blvl)+skill('Clay Golem'.blvl)+skill('BloodGolem'.blvl)+skill('Golem Mastery'.blvl))*par6 IronGolem irongolem "(lvl>0)?1:0" S1 1 necromancer_golem_cast 23 1 5 none SC SC xx 4 1 1 24 20 BloodGolem 25 1 8 35 0 1 1 par7*lvl + skill('Golem Mastery'.ln12) hp % adjustment 150 % thorns damage back (level 2) 15 % thorns damage back per level 20 damage synergy 5 hp per level 35 iron golem armor synergy 1 8 mag 768 60000 +LowRes 91 nec lower resist 30 3 lowerresist ln34 par1 + blvl / 3 + skill('CurMas'.blvl) / 3 fireresist -(1 * (par5 + par6*lvl + skill('CurMas'.blvl) / 2)) lightresist -(1 * (par5 + par6*lvl + skill('CurMas'.blvl) / 2)) coldresist -(1 * (par5 + par6*lvl + skill('CurMas'.blvl) / 2)) poisonresist -(1 * (par5 + par6*lvl + skill('CurMas'.blvl) / 2)) necromancer_curse_cast 18 30 curselowerresist cursecast 1 8 none SC SC S2 4 1 necromancer_curse_cast 30 20 Weaken 1 1 6 20 1 1 9 radius 1 radius per level 200 duration 25 additional duration/level 10 min % resist lower 1 -% per level 1 8 mag 896 80000 +Poison Nova 92 nec poison nova 22 poisonnova necromancer_poison_cast 25 poisonnova 1 3 none SC SC xx 1 necromancer_poison_cast 30 20 Desecrate 1 1 8 20 0 1 10 damage synergy 1 4 pois 16 6 7 8 9 10 29 6 7 8 9 10 (skill('Poison Dagger'.blvl)+skill('Desecrate'.blvl))*par8 50 896 80000 +Bone Spirit 93 nec bone spirit 10 bonespirit bonespirit necromancer_bone_cast 18 bonespirit 1 7 none SC SC xx 1 4 necromancer_bone_cast 30 20 Bone Spear 1 1 7 24 1 1 0 + dmg% 15 Bone Armor synergy 15 damage synergy 1 8 mag 20 16 17 18 30 60 30 17 18 19 31 62 (skill('Teeth'.blvl)+skill('Bone Spear'.blvl))*par8+skill('Bone Armor'.blvl)*par7 896 80000 +FireGolem 94 nec firegolem 74 56 fireresist 100 - dm12 item_absorbfire_percent dm12 firemindam edmn firemaxdam edmx velocitypercent skill('Golem Mastery'.dm34) tohit skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8) armorclass skill('IronGolem'.blvl)*skill('IronGolem'.par8) passive_fire_mastery stat('passive_fire_mastery'.accr) FireGolem golem "((lvl>0)?1:0) + (skill('Golem Mastery'.blvl) / 5) + stat('extra_golem'.accr)" S1 Holy Fire Fire Golem ln56 Clay Golem skill('Clay Golem'.blvl) BloodGolem skill('BloodGolem'.blvl) IronGolem skill('IronGolem'.blvl) Golem Mastery skill('Golem Mastery'.blvl) 1 necromancer_golem_cast 1 6 none SC SC xx 4 1 30 20 IronGolem 25 1 7 20 1 1 1 par7*lvl + skill('Golem Mastery'.ln12) hp % adjustment 0 min % fire absorbtion 0 max % fire absorbtion 100 % damage increase 35 % damage increase per level 1 Holy Fire Aura level 1 Plus Holy Fire Aura level 20 hp per level 9 fire golem damage synergy 1 8 fire 9 3 4 5 6 8 12 4 5 7 8 9 (skill('Clay Golem'.blvl)+skill('BloodGolem'.blvl)+skill('IronGolem'.blvl)+skill('Golem Mastery'.blvl))*par8 896 80000 +Revive 95 nec revive 21 58 damagepercent lvl*par2 + (skill('Desecrate'.blvl))*par8 passive_ltng_mastery lvl*par6 + (skill('Desecrate'.blvl))*par8 / 2 passive_fire_mastery lvl*par6 + (skill('Desecrate'.blvl))*par8 / 2 passive_cold_mastery lvl*par6 + (skill('Desecrate'.blvl))*par8 / 2 passive_pois_mastery lvl*par6 + (skill('Desecrate'.blvl))*par8 / 2 item_allskills blvl domeleedamage 32 velocitypercent par5 revive 3 + blvl / 4 + stat('extra_revives'.accr) NU 1 necromancer_revive_cast necromancer_revive_target 24 revivemedium revivesmall revivelarge 1 6 none SC SC xx 4 1 3 1 30 20 Raise Skeleton Archer 1 8 45 0 1 par1 hp % adjustment ln34 duration 0 additional hp percent 30 dmg% per level 7500 Duration 250 additional duration/level 50 Velocity bonus for revived 20 ele dmg% per level 5 20 damage synergy 1 8 mag 896 80000 +Sacrifice 96 pal sacrifice 29 64 sacrificecorpseexplosion paladin_sacrifice 1 34 blood1 3 blood1-bigblood1 1 7 h2h mele A1 A1 xx 2 1 1 1 1 1 6 20 Zeal 1 0 8 0 0 1 ln12+skill('Redemption'.blvl)*par8+skill('Fanaticism'.blvl)*par7 damage % "max(par3 - lvl/2, 2)" damage self % "min(par4 + lvl / 3, 10)" explosion radius 180 Percent damage 30 percent damage per level 6 percent damage to self 4 explosion radius 5 percent monster hp explosion damage 125 percent overkill damage 25 damage synergy 25 damage synergy 1 20 16 8 128 256 5000 +Smite 97 pal smite 75 150 domeleedamage 16 weapon_2hs_large_1 1 1 9 h2h 4 shld S1 S1 xx 1 1 1 1 1 20 1 1 8 2 0 ln34 damage % "min(250,ln12)" stunlen 5 + blvl %CB edmx CB Effectiveness 15 Stun Length 5 additional frames/level 75 Percent bonus damage 25 percent damage per level 10 damage synergy 1 8 15 2 1 1 1 1 256 5000 +Might 98 pal might 65 73731 might might ln12 damagepercent edmn / 2 damagepercent edmn 54 103 1 1 9 h2h weap RN RN RN 1 20 1 1 8 0 0 1 1 1 50 20 radius 3 additional radius per level 1 8 40 20 20 20 20 20 256 5000 +Prayer 99 pal prayer 65 73731 prayer prayer ln12 hitpoints edns item_healafterhit 1 + lvl / 2 passive_regen hpregen blvl 54 103 1 7 h2h weap RN RN RN 1 20 1 2 7 1 1 1 1 1 50 20 radius 3 additional radius per level 1 8 4 2 3 4 5 5 256 5000 +Resist Fire 100 pal resist fire 65 73731 resistfire resistfire ln12 fireresist "min(edmn, 100)" passive_fire_mastery edmx passive_resistfire maxfireresist skill('Resist Fire'.blvl)/2 54 103 1 1 8 h2h weap RN RN RN 1 20 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 25 min % resist 100 max % resist 1 8 fire 25 4 3 2 1 1 5 1 1 1 2 2 256 5000 +Holy Bolt 101 pal holy bolt 8 holybolt holybolt paladin_holybolt_cast cast_undead 17 holybolt holybolt edln min heal 1 + edln max heal 1 7 none SC SC xx 1 1 1 paladin_holybolt_cast cast_undead 1 20 1 1 6 8 1 1 "max(1, 1 + ((lvl<15)?0:1) + ((lvl<25)?0:1) + stat('extra_holybolts'.accr))" # bolts fired 2 min hitpoints healed 1 hitpoints healed per level 4 max hitpoints healed 1 hitpoints healed per level 5 heal synergy 11 damage synergy 1 8 mag 3 1 5 12 19 27 5 2 7 14 21 29 (skill('Holy Light'.blvl)+skill('Holy Nova'.blvl)+skill('Fist of the Heavens'.blvl))*par8 1 1 1 1 skill('Prayer'.blvl) * par7 256 5000 +Holy Fire 102 pal holy fire 66 42883 holyfire "min(ln12, 14)" firemindam edns*par5/256 firemaxdam edxs*par5/256 item_tohit_percent toht 54 103 1 0 h2h weap RN RN RN 6 20 Might 1 0 8 0 0 1 1 1 25 6 radius 1 additional radius per level 5 attack rating per level 4 damage to attack multiplier 16 damage synergy 16 damage synergy 1 50 5 16385 6 fire 5 1 4 12 22 31 11 2 5 15 26 37 (skill('Resist Fire'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 384 10000 +Thorns 103 pal thorns 65 73731 thorns thorns ln12 item_attackertakesdamage edmx item_openwounds 15 + lvl/3 deep_wounds edmn deep_wounds edmn* 4 / 3 54 103 1 9 h2h weap RN RN RN 6 20 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 250 % damage bounced back 50 % additional bounce back/level 20 damage synergy 1 8 1 1 1 4 8 12 2 1 1 4 8 12 (skill('Defiance'.blvl)+skill('Might'.blvl))*par8 384 10000 +Defiance 104 pal defiance 65 73731 defiance defiance ln12 skill_armor_percent edmx normal_damage_reduction lvl/2 damageresist lvl/2 passive_dmgresist 54 103 1 1 4 h2h weap RN RN RN 6 20 Prayer 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 70 % additional AC 10 % additional AC/level 12 min armor 400 max armor 1 8 70 4 6 8 10 12 384 10000 +Resist Cold 105 pal resist cold 65 73731 resistcold resistcold ln12 coldresist "min(edmn, 100)" passive_cold_mastery edmx passive_resistcold maxcoldresist skill('Resist Cold'.blvl)/2 54 103 1 1 6 h2h weap RN RN RN 1 20 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 25 min % resist 100 max % resist 0 ? 0 ? 1 8 cold 25 4 3 2 1 1 5 1 1 1 2 2 384 10000 +Zeal 106 pal zeal 37 13 temp_splash inc_splash_radius 1 1 paladin_zeal 53 21 1 2 h2h mele A1 A1 xx 1 1 1 1 20 1 1 8 2 0 "min((par5 + lvl -1), par6)" max targets ln34 +skill('Sacrifice'.blvl)*par8 damage % 100 % frame rollback 30 % damage percent 25 damage % per level 3 Targets 3 Max targets 20 damage synergy 1 35 20 8 128 384 10000 +Charge 107 pal charge 72 180 1 paladin_charge 57 112 1 2 none mele SQ A1 xx 4 1 1 1 12 20 Smite 1 1 8 9 0 ln34+(skill('Vigor'.blvl)+skill('Might'.blvl))*par8 damage % elem conversion% 150 percent increase in velocity 0 ? 100 plus % damage 20 plus % dam per level 2 Trails 65 attack speed modifier 15 damage synergy 1 75 15 8 128 512 20000 +Blessed Aim 108 pal blessed aim 65 73731 blessedaim blessedaim ln12 item_tohit_percent ln34 item_deadlystrike par5 + (par6 * lvl / 2) passive_blessedaim item_fractionaltargetac blvl 54 103 1 1 6 h2h weap RN RN RN 12 20 Might 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 60 % attack# bonus 15 % additional attack# bonus 5 Deadly Strike Base 1 Deadly Strike per level 1 passive to hit bonus 1 8 512 20000 +Cleansing 109 pal cleansing 65 73731 cleansing cleansing ln12 item_poisonlengthresist 100-edmn curse_effectiveness 10 + lvl / 2 passive_cleanse curse_resistance blvl item_poisonlengthresist blvl 54 103 1 3 h2h weap RN RN RN 12 20 Prayer 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 30 min % reduction 90 max % reduction 0 ? 0 ? 1 8 mag 25 2 2 2 1 1 512 20000 +Resist Lightning 110 pal resist lightning 65 73731 resistlight resistlight ln12 lightresist "min(edmn, 100)" passive_ltng_mastery edmx passive_resistltng maxlightresist skill('Resist Lightning'.blvl)/2 54 103 1 1 6 h2h weap RN RN RN 1 20 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 25 min % resist 100 max % resist 0 ? 0 ? 1 8 ltng 25 4 3 2 1 1 5 1 1 1 2 2 512 20000 +Vengeance 111 pal vengeance 23 174 vengeance 7 1 1 3 h2h mele A1 A1 xx 1 1 1 1 18 20 Sacrifice 1 1 5 16 1 1 ln12+((skill('Holy Fire'.blvl)+skill('Holy Freeze'.blvl)+skill('Holy Shock'.blvl))*par8+skill('Conviction'.blvl)*par7) fire damage% ln12+((skill('Holy Fire'.blvl)+skill('Holy Freeze'.blvl)+skill('Holy Shock'.blvl))*par8+skill('Conviction'.blvl)*par7) cold damage% ln12+((skill('Holy Fire'.blvl)+skill('Holy Freeze'.blvl)+skill('Holy Shock'.blvl))*par8+skill('Conviction'.blvl)*par7) ltng damage% "min(ln34, 95)" chain % 5 percent damage 2 percent damage per level 22 min chain % 2 chain % per level 4 frame delay between chains 24 max chain distance 2 damage synergy 2 damage synergy 1 120 18 8 128 6 1 3 5 6 7 8 2 4 6 7 8 (skill('Holy Fire'.blvl)+skill('Holy Freeze'.blvl)+skill('Holy Shock'.blvl)+skill('Conviction'.blvl))*par8 80 640 40000 +Blessed Hammer 112 pal blessed hammer 73 blessedhammer paladin_holybolt_cast 35 blessedhammer 1 2 none SC SC xx 1 paladin_holybolt_cast 18 20 Holy Light 1 1 6 20 1 1 4 Concentration influence in 8ths 0 ? 0 ? 0 ? 0 ? 0 ? 12 damage synergy 1 8 mag 12 8 10 12 13 14 16 8 10 12 13 14 (skill('Vigor'.blvl)+skill('Blessed Aim'.blvl))*par8 640 40000 +Concentration 113 pal concentration 65 73731 concentration concentration ln12 damagepercent ln34 / 2 skill_concentration par5 item_tohit_percent toht damagepercent ln34 54 103 1 1 6 h2h weap RN RN RN 18 20 Blessed Aim 1 0 8 0 0 1 1 1 50 20 radius 3 additional radius per level 60 % additional damage 15 % additional damage/level 20 percent chance that attack will not be interrupted 0 ? 1 50 10 8 640 40000 +Holy Freeze 114 pal holy freeze 81 303747 holywind holywindcold ln12 velocitypercent -dm34 attackrate -dm34 other_animrate -dm34 coldmindam edns*par5/256 coldmaxdam edxs*par5/256 item_tohit_percent toht 54 103 1 8 h2h weap RN RN RN 18 20 Holy Fire 1 0 8 0 0 1 1 1 25 12 radius 0 radius per level 25 min% slowing 60 max% slowing 4 damage to attack multiplier 0 ? 11 damage synergy 11 damage synergy 1 50 5 16385 7 cold 5 3 4 6 10 15 7 4 5 7 12 17 (skill('Resist Cold'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 640 40000 +Vigor 115 pal vigor 65 73731 stamina stamina ln12 staminarecoverybonus ln34 skill_staminapercent ln34 velocitypercent dm56 passive_runwalk item_fastermovevelocity blvl 54 103 1 1 1 h2h weap RN RN RN 18 20 Defiance 1 0 8 0 0 1 1 1 50 26 radius 3 additional radius per level 50 % faster stamina recovery and max stamina 25 % additional stamina recovery and max stamina 7 min % speed increase 50 max % speed increase 1 8 640 40000 +Holy Sword 116 pal holy sword 73 18 holysword ln12 passive_weaponblock dm56 + (stat('toblock'.accr) / 5) item_demondamage_percent ln34 item_undeaddamage_percent ln34 paladin_holyshield 1 3 none 2hsw 2hcs SC SC xx 24 20 Holy Shield 1 8 35 0 1 1 7500 duration of sword 125 duration/level 25 Dmg to demons/undead base 7 Dmg to demons/undead per level 0 min % ToBlock Add 55 max block % 1 50 10 8 mag 10 2 1 1 1 1 1 1 768 60000 +Holy Shield 117 pal holy shield 36 18 holyshield ln12 toblock dm56 ln34+skill('Defiance'.blvl)*par8 paladin_holyshield 1 3 none shld SC SC xx 18 20 Charge 1 8 35 0 1 1 ln34+skill('Defiance'.blvl)*par8 ac bonus to shield 7500 duration of shield 125 duration/level 25 AC bonus 10 AC bonus per level 5 min % ToBlock Add 40 max % ToBlockAdd 5 damage synergy 15 armor synergy 1 8 3 1 2 3 4 4 6 1 2 3 4 4 (skill('Smite'.blvl)+skill('Defiance'.blvl))*par7 mag 768 60000 +Holy Shock 118 pal holy shock 66 42883 holyshock ln12 lightmindam edns*par5/256 lightmaxdam edxs*par5/256 item_tohit_percent toht 1 4 h2h weap RN RN RN 24 20 Holy Freeze 1 0 8 0 0 1 1 1 25 16 radius 0 radius per level 6 damage to attack multiplier 0 ? 9 damage synergy 9 damage synergy 1 50 5 16385 7 ltng 2 27 11 15 20 27 35 (skill('Resist Lightning'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 768 60000 +Sanctuary 119 pal sanctuary 66 42883 sanctuary sanctuary ln12 magicresist -(5 + lvl/2) magicmindam edns*par7/256 magicmaxdam edxs*par7/256 item_tohit_percent toht cast_undead 54 103 sanctuarybolt 1 0 h2h weap RN RN RN 1 24 20 Thorns Holy Freeze 1 0 8 0 0 1 1 1 25 18 radius 0 radius per level 0 % damage to undead 0 % damage per level 0 att vs. undead 0 att vs. undead per level 3 damage to attack multiplier 10 damage synergy 1 50 5 3 157 6 mag 33 11 13 20 31 46 53 11 13 20 31 46 (skill('Might'.blvl)+skill('Holy Sword'.blvl)+skill('Blessed Aim'.blvl))*par8 768 60000 +Meditation 120 pal meditation 65 73729 meditation meditation ln12 manarecoverybonus ln34 passive_meditate item_manaafterkill blvl / 2 54 103 1 7 h2h weap RN RN RN 24 20 Cleansing 1 0 8 0 0 1 1 1 50 20 radius 2 additional radius per level 150 % boost to mana recovery 12 % additional boost/level 5 base passive mana recovery 5 passive mana recovery per level 1 8 mag 768 60000 +Fist of the Heavens 121 pal fist of the heavens 80 fistoftheheavensdelay handofgod 42371 20 paladin_handofgod_cast 36 fistoftheheavensdelay 1 7 none SC SC xx 4 1 1 1 4 24 20 Blessed Hammer 1 1 6 40 1 1 0 min heal 0 max heal ln12 # bolts 4 holy bolts to release 0 holy bolts per level 0 min hitpoints healed 0 hitpoints healed per level 0 max hitpoints healed 0 hitpoints healed per level 11 damage synergy 1 8 ltng 100 2 5 8 12 17 150 5 11 17 24 32 (skill('Holy Light'.blvl)+skill('Holy Nova'.blvl)+skill('Holy Bolt'.blvl))*par8 768 60000 +Fanaticism 122 pal fanaticism 65 73731 fanaticism fanaticism ln12 attackrate dm34 item_tohit_percent toht damagepercent ln56/2 damagepercent ln56 54 103 1 1 8 h2h weap RN RN RN 30 20 Concentration 1 0 8 0 0 1 1 1 50 20 radius 3 additional radius per level 10 min% boost 40 max% boost 50 % damage boost 15 % damage bonus per level 1 40 5 8 896 80000 +Conviction 123 pal conviction 66 42371 conviction conviction ln12 skill_armor_percent -dm56 fireresist "-min(ln34,150)" coldresist "-min(ln34,150)" lightresist "-min(ln34,150)" 54 103 1 6 h2h weap RN RN RN 5 1 30 20 Sanctuary 1 0 8 0 0 1 1 1 25 22 radius 1 additional radius per level 12 % resist reduction 2 % resist reduction per level 10 min % AC reduction 75 max % AC reduction 1 8 896 80000 +Redemption 124 pal redemption 82 4354 redemption ln12 54 103 redemption 1 0 h2h weap RN RN RN 30 20 Vigor 1 0 8 0 0 1 1 1 50 dm34 chance to redeem 5 + (lvl * 2) hp gain ln56 mana gain 16 radius 0 additional radius per level 10 min % chance redeem 100 max % chance redeem 25 HP and mana gained 5 HP and mana gained/level 1 8 896 80000 +Salvation 125 pal salvation 65 73731 resistall resistall ln12 fireresist "min(edmn, 75)" coldresist "min(edmn, 75)" lightresist "min(edmn, 75)" passive_ltng_mastery edmx / 2 passive_cold_mastery edmx / 2 passive_fire_mastery edmx / 2 54 103 1 1 8 h2h weap RN RN RN 30 20 1 0 8 0 0 1 1 1 50 16 radius 2 additional radius per level 20 min % resist 75 max % resist 1 8 20 4 3 2 1 1 3 1 1 1 1 1 896 80000 +Bash 126 bar bash 32 158 bashgroundspike bashgroundsmoke bash barbarian_grunt_small_1 1 1 7 h2h mele A1 A1 xx 1 1 1 1 1 20 1 1 6 8 1 1 ln56 + (skill('Stun'.blvl) + skill('Concentrate'.blvl)) * par8 dmg% ln34 post dmg add attack rate bonus 1 Min Damage 1 Min Damager per level 50 % bash damage 25 % bash damage increase per level 10 to hit synergy 20 damage synergy 1 30 20 112 8 128 256 5000 +Sword Mastery 127 bar sword mastery swordmastery swor passive_mastery_melee_th ln12 passive_mastery_melee_dmg ln34 passive_mastery_melee_crit dm56 1 0 none SC SC xx 1 1 20 0 8 0 0 1 1 1 28 Attack % base 10 Attack % per level 28 Damage % base 5 damage % per level 0 critical% 35 critical% 1 8 256 5000 +One Hand Mastery 128 bar one hand mastery axemastery 1han passive_mastery_melee_th ln12 passive_mastery_melee_dmg ln34 passive_mastery_melee_crit dm56 inc_splash_radius "min(lvl, 20)" 1 0 none SC SC xx 1 1 20 0 8 0 0 1 1 1 35 Attack % base 12 Attack % per level 30 Damage % base 8 damage % per level 0 critical% 35 critical% 1 8 10 1 1 1 256 5000 +Mace Mastery 129 bar mace mastery macemastery blun passive_mastery_melee_th ln12 passive_mastery_melee_dmg ln34 passive_mastery_melee_crit dm56 1 0 none SC SC xx 1 1 20 0 8 0 0 1 1 1 28 Attack % base 10 Attack % per level 28 Damage % base 5 damage % per level 0 critical% 35 critical% 1 8 256 5000 +Howl 130 bar howl 22 howl terror barbarian_howl_1 25 howl par1 * (lvl-1) velocity adder 1 0 none SC SC xx 1 1 25 1 20 1 1 1 8 4 0 1 par1 * (lvl-1) velocity adder 1 Velocity/level increase 1 Plev+Slev+n 24 Distance to retreat 5 Distance per level 75 Time to retreat Time per level 1 8 256 5000 +Find Potion 131 bar find potion 70 168 1 barbarian_findobject_1 barbarian_findheart_1 55 104 1 0 h2h SC SC xx 1 1 4 1 1 20 1 1 8 2 0 1 dm12 chance 0 min chance to find heart 100 max chance to find heart 30 Chance of finding a mana potion 10 Chance of finding rejuv 1 8 256 5000 +Leap 132 bar leap 40 153 leapknockback dm12 1 barbarian_leap_1 29 97 1 0 none SQ A1 xx 13 1 12 20 Stun 1 1 7 10 0 1 0 damage% 80 + stat('item_leap_speed'.accr) / 4 speed bonus "min(par3 + blvl * par4, 15)" knockback radius 1 20 min distance 40 max distance 7 Knockback range 1 knockback range per level 1 9 3 8 512 20000 +Double Swing 133 bar double swing 70 1 27 39 par5 attack rate bonus 1 5 h2h 3 mele mele SQ A1 xx 11 1 1 1 1 1 1 20 1 0 5 4 1 ln34 + (skill('Frenzy'.blvl) + skill('Stun'.blvl)) * par8 damage% post dmg add par5 attack rate bonus 50 Attack rate bonus 30 %dmg 30 %dmg / lvl 50 Attack rate bonus 20 damage synergy 1 20 15 8 128 256 5000 +Two Hand Mastery 134 bar two hand mastery polearmmastery 2han passive_mastery_melee_th ln12 passive_mastery_melee_dmg ln34 item_crushingblow dm56 item_crushingblow_efficiency "min(edln, 25)" inc_splash_radius "min((20+lvl), 40)" 1 0 none SC SC xx 1 6 20 0 8 0 0 1 1 30 Attack % base 10 Attack % per level 45 Damage % base 15 damage % per level 0 critical% 35 critical% 1 8 10 1 1 1 384 10000 +Throwing Mastery 135 bar throwing mastery throwingmastery thro passive_mastery_throw_th ln12 passive_mastery_throw_dmg ln34 passive_mastery_throw_crit dm56 skill_pierce edln 1 0 none SC SC xx 1 1 20 0 8 0 0 1 1 30 Attack % base 10 Attack % per level 30 Damage % base 5 damage % per level 0 critical% 35 critical% 1 8 15 2 1 1 256 5000 +Spear Mastery 136 bar spear mastery spearmastery spea passive_mastery_melee_th ln12 passive_mastery_melee_dmg ln34 passive_mastery_melee_crit dm56 1 0 none SC SC xx 1 6 20 0 8 0 0 1 1 30 Attack % base 10 Attack % per level 28 Damage % base 5 damage % per level 0 critical% 35 critical% 1 8 384 10000 +Taunt 137 bar taunt 71 34691 taunt 50 + (25*blvl / 4) 16 item_tohit_percent ln12 damagepercent ln34 barbarian_taunt_1 25 taunt 1 0 none SC SC S1 1 1 1 18 20 War Cry 1 1 1 8 3 0 1 -5 % to hit for target -2 % to hit/level -5 % damage for target -2 % damage/level 1 8 640 40000 +Shout 138 bar shout 68 shout shout shout 7500 skill_armor_percent ln12 barbarian_shout_1 25 shout 1 8 none SC SC SC 1 6 20 Howl 1 1 8 6 0 1 1 25 % AC bonus for friendlies 10 % AC bonus per level 500 duration 250 duration/level 125 duration synergy 1 8 384 10000 +Stun 139 bar stun stunsplash 5 barbarian_grunt_small_1 1 impact_blade_swing_6 1 9 h2h mele A1 A1 xx 1 1 1 1 1 6 20 Bash 1 1 8 2 0 1 damage% 0 Frames the target is stunned 0 additional frames/level 0 stun synergy 10 to hit synergy 8 damage synergy 1 40+lvl*15+skill('Concentrate'.blvl)*par7 5 96 8 32 2 1 2 3 4 5 4 2 3 4 5 6 stun 25 4 4 2 384 10000 +Double Throw 140 bar double throw 154 doublethrowaxe doublethrowknife doublethrowjav par3 98 doublethrowaxe doublethrowknife doublethrowjav 1 5 rng 3 comb comb SQ A1 xx 15 1 1 12 20 Frenzy 1 6 1 6 6 1 1 ln12 + (skill('Double Swing'.blvl) + skill('Frenzy'.blvl))*par8 damage% "min(par5 + lvl / par6, 8)" #bounces par4 first hit bonus 45 base dmg% 8 dmg% per level 15 bounce range 0 base first hit bonus 3 # bounces 3 #bounces lvl increase damage synergy2 6 damage synergy 1 35 15 8 128 512 20000 +Combat Reflexes 141 bar combat reflexes increasedstamina skill_passive_staminapercent ln12 item_fastergethitrate blvl * 2 maxhp (par5 + par6*lvl) * 256 1 0 none SC SC xx 1 12 20 0 8 0 0 1 1 30 % stamina increase 15 % stamina increase per level 0 % fhr 2 %fhr per level 20 +life 10 life per level 1 8 512 20000 +Find Item 142 bar find item 70 168 1 barbarian_findobject_1 barbarian_findheart_1 55 104 1 0 h2h SC SC xx 1 1 5 1 12 20 Find Potion 1 1 8 7 0 1 dm12 chance 0 min chance to find heart 40 max chance to find heart 15 % chance high quality 5 % chance magic item 1 chance synergy 1 8 512 20000 +Leap Attack 143 bar leap attack 40 153 leapattacknova bash 30 29 97 leapattacknova 1 6 none mele SQ A1 xx 13 1 24 20 Leap Concentrate 1 1 6 28 1 1 ln34+(skill('Leap'.blvl)+skill('Bash'.blvl))*par8 %phys damage 60 + stat('item_leap_speed'.accr) / 4 speed bonus par5 aoe range 4 min distance 30 max distance 80 dmg % base 15 dmg % per level 8 aoe range 10 damage synergy 1 30 15 8 128 768 60000 +Concentrate 144 bar concentrate 32 2 doubledamage1 concentrate skill_armor_percent ln34 inc_splash_radius 20 barbarian_grunt_small_1 1 1 0 h2h mele A1 A1 xx 1 1 1 1 12 20 Double Swing 1 1 8 2 0 ln12+skill('Bash'.blvl)*par8+skill('Battle Command'.blvl)*par7 damage% post dmg add attack rate bonus 30 + 2*blvl convert% 80 Damage % base 25 Damage % per level 20 % AC bonus 5 % AC bonus per level 25 damage synergy 25 damage synergy 1 40 20 8 128 mag 512 20000 +Iron Skin 145 bar iron skin ironskin skill_armor_percent ln12 damageresist blvl / 2 1 0 none SC SC xx 1 18 20 0 8 0 0 1 1 30 % AC bonus 10 % AC bonus per level 1 8 640 40000 +Battle Cry 146 bar battle cry 68 battlecry 98304 battlecry ln12 + stat('pvp_cd'.accr)*5 + stat('pvp_lld_cd'.accr)*5 skill_armor_percent -"min(ln34, 30)" damageresist -(par5+(lvl<22)?lvl:(22+((lvl-22)/2))) barbarian_battlecry_1 25 battlecry 1 9 none SC SC A1 1 1 25 barbarian_battlecry_1 30 20 Taunt Battle Orders 1 1 1 8 5 0 1 300 duration 0 duration/level 15 % AC bonus 1 % AC bonus per level 4 damage resist 1 8 896 80000 +Frenzy 147 bar frenzy 78 9 frenzy 375 + (25 * (blvl*2)) velocitypercent edln attackrate dm56 1 39 1 3 h2h 3 mele mele SQ A1 xx 11 1 1 1 1 6 20 Double Swing 1 1 6 3 1 ln12+(skill('Double Swing'.blvl) + skill('Stun'.blvl))*par8 damage% dm34 splash bonus 5 # max frenzy charges 25 Damage % base 25 Damage % per level 0 increase splash radius min % 45 increase splash radius max % 0 min % attack speed increase 50 max % attack speed increase 375 base duration 20 damage synergy 1 30 12 8 128 32 2 1 1 384 10000 +Increased Speed 148 bar increased speed increasedspeed velocitypercent dm12 item_fasterattackrate blvl * 2 1 0 none SC SC xx 1 24 20 Combat Reflexes 0 8 0 0 1 1 7 min % speed increase 50 max % speed increase 1 8 2 2 2 1 768 60000 +Battle Orders 149 bar battle orders 68 battleorders battleorders battleorders 7500 maxmana ln34 * 128 maxhp ln34 * 256 barbarian_battleorders_1 25 battleorders 1 9 none SC SC xx 1 24 20 Shout 1 1 8 7 0 1 1 750 duration 250 duration/level 50 Base increase 15 Increase per level 125 duration synergy 1 50 10 8 768 60000 +Grim Ward 150 bar grim ward 34 75 grimwardmediumstart grimwardsmallstart grimwardlargestart 73731 grimward ln12 damagepercent ln56 tohit toht barbarian_grimward_1 28 41 grimwardmediumstart grimwardsmallstart grimwardlargestart 1 0 none SC SC xx 1 1 5 1 24 20 Taunt 1 1 1 8 4 0 1 ln34 ward duration 16 radius 1 radius/level 1000 duration 0 duration/level 50 %dmg 15 %dmg per level 1 120 10 8 768 60000 +Whirlwind 151 bar whirlwind 38 76 whirlwind velocitypercent "min(ln56, 65)" item_attackrate 100 1 barbarian_whirlwind 31 45 1 3 none 2 mele SQ A1 xx 10 1 1 30 20 Berserk 1 1 7 25 1 ln12 damage% 40 Damage percent per attack 6 Damage percent per level 5 damage frame delay 0 velocity added 2 velocity increase per level 1 90 6 8 128 896 80000 +Berserk 152 bar berserk 32 9 berserk 13 damageresist -"min(ln34, 10)" armor_override_percent -25 passive_phys_pierce "min(ln56,45)" inc_splash_radius 20 barbarian_grunt_large_1 1 1 4 h2h 3 mele mele SQ A1 xx 11 1 1 1 1 1 24 20 Concentrate 1 1 8 4 0 ln12+(skill('Combat Reflexes'.blvl) + skill('Taunt'.blvl))*par8 damage% ln56 phys pierce 150 Damage % base 20 Damage % per level 5 -phys res 1 -phys res per level 5 phys pierce 1 phys pierce per level 12 damage synergy 1 60 8 8 128 768 60000 +Natural Resistance 153 bar natural resistance naturalresistance fireresist dm12 lightresist dm12 coldresist dm12 poisonresist dm12 1 0 none SC SC xx 1 30 20 Iron Skin 0 8 0 0 1 1 0 min % resistance bonus 75 max % resistance bonus 1 8 896 80000 +War Cry 154 bar war cry 22 warcry barbarian_warcry_1 warcry 25 warcry "min(lvl / 4, 8)" aoe bonus 1 9 none SC SC xx 1 1 25 6 20 Howl 1 1 1 6 8 1 1 "min(lvl / 4, 8)" aoe bonus 100 stun length -50 stun length per level 13 damage synergy 17 damage synergy 1 8 3 1 3 10 17 24 5 1 3 10 17 24 (skill('Howl'.blvl)+skill('Battle Cry'.blvl))*par8+(skill('Taunt'.blvl)+skill('Shout'.blvl)+skill('Battle Command'.blvl)+skill('Battle Orders'.blvl))*par7 384 10000 +Battle Command 155 bar battle command 68 battlecommand battlecommand battlecommand 7500 item_allskills 1+blvl/10 damagepercent ln34 barbarian_command_1 25 battlecommand 1 9 none SC SC xx 1 30 20 Battle Orders 1 1 8 11 0 1 1 125 duration 250 duration/level 20 % ed base 3 % ed per level 125 duration synergy 1 8 896 80000 +Fire Hit 156 42 83 1 0 none SQ SQ xx 1 1 1 1 base damage 5 extra per level 50 duration 50 duration/level 1 20 10 8 0 +UnHolyBolt 157 85 unholybolt1 unholybolt1 1 0 none SQ SQ xx 1 1 1 8 0 +SkeletonRaise 158 1 0 none SQ SQ xx 1 1 1 1 1 1 8 0 +MaggotEgg 159 43 84 sandmaggotegg_hatch_1 46 1 0 none SQ SQ xx 1 1 "(lvl < 5) ? lvl : min(12,5+(lvl-5)/3)" # to spawn 1 8 0 +ShamanFire 160 85 shafire1 shafire1 1 0 none SQ SQ xx 1 1 1 8 0 +MagottUp 161 44 sandmaggot_emerge 32 dirt pile sand pile 1 0 none SQ SQ xx 1 1 1 8 0 +MagottDown 162 45 86 sandmaggot_burrow 33 47 1 0 none SQ SQ xx 1 1 10 heal% 1 8 0 +MagottLay 163 87 1 0 none SQ SQ xx 1 1 1 8 0 +AndrialSpray 164 46 88 andarielspray 34 48 andarielspray 1 0 none SQ SQ xx 1 1 1 8 0 +Jump 165 47 89 1 0 none SQ SQ xx 1 1 10 damage% 1 15 5 8 0 +Swarm Move 166 48 90 35 49 1 0 none SQ SQ xx 1 1 11 do frame 19 stop frame 1 8 0 +Nest 167 49 91 36 50 1 0 none SQ SQ xx 1 1 1 8 0 +Quick Strike 168 50 92 raven1 1 0 none SQ SQ xx 1 1 1 1 8 0 +VampireFireball 169 vampirefireball vampirefireball 1 0 none SQ SQ SC 1 1 1 8 0 +VampireFirewall 170 24 vampirefirewallmaker vampirefirewall 26 vampirefirewallmaker 1 0 none SQ SQ SC 1 1 1 0 +VampireMeteor 171 meteor 28 vampiremeteorcenter "min(ln12, 10)" sorceress_meteor fire_cast_2 28 vampiremeteorcenter 1 0 none SQ SQ SC 1 1 "min(ln12, 10)" 5 radius of explosion 1 radius/level 30 Frames of fire 15 Frames of fire per level 1 8 fire 5 5 5 5 5 5 10 5 5 5 5 5 0 +GargoyleTrap 172 93 shafire3 51 shafire3 1 0 none SQ SQ xx 18 1 1 1 8 0 +SpiderLay 173 23 spiderlay slowed 300 velocitypercent -100 1 0 none SQ SQ A2 1 1 20 frames to apply aura to target 30 Slow Duration/Level 75 Duration/Level 1 8 0 +VampireHeal 174 1 0 none SQ SQ SC 1 1 1 8 0 +VampireRaise 175 1 0 none SQ SQ SC 1 1 1 1 1 1 1 8 0 +Submerge 176 51 94 37 52 1 0 none SQ SQ xx 1 1 1 8 0 +FetishAura 177 111 ln12 necromancer_curse_1 53 curseeffectred 3 density 1 0 none SQ SQ SC 1 1 10 Base stat mod 50 Duration/Level 5 Stat Mod/Level 10 Base Range ( + 2/Lvl ) 1 8 0 +FetishInferno 178 53 95 fetishinferno1 54 fetishinferno1 fetishinferno2 1 0 none SQ SQ A1 1 1 par1 length of fire 3 density 15 frame length 1 8 0 +ZakarumHeal 179 96 receiving receiving healing 1 0 none SQ SQ S1 1 1 15+5*lvl min heal% 50 max heal % 15 ? 30 ? 5 ? 0 ? 1 8 0 +Emerge 180 52 38 1 0 none SQ SQ S1 1 1 1 8 0 +Resurrect 181 97 fallenshaman_resurrect_cast healing 39 1 0 none SQ SQ xx 1 1 1 1 1 1 1 1 8 0 +Bestow 182 96 receiving 1 0 none SQ SQ xx 1 1 1 1 8 0 +MissileSkill1 183 110 66 1 0 none SQ SQ S1 1 1 1 8 0 +MonTeleport 184 98 sorceress_teleport teleport 1 0 none SQ SQ S1 1 1 1 8 0 +PrimeLightning 185 monsterlight mephisto_lightning_cast monsterlight 1 0 none SQ SQ A2 1 1 1 8 0 +PrimeBolt 186 17 chargedstrikebolt mephisto_chargedbolt_cast 23 chargedbolt 1 0 none SQ SQ A1 1 1 lvl+2 #bolts 1 8 0 +PrimeBlaze 187 23 blaze blaze dm12 monster_cast_fire blaze 1 0 none SQ SQ A1 1 1 0 ? 60 duration/level 0 ? 0 ? 1 8 0 +PrimeFirewall 188 24 vampirefirewallmaker vampirefirewall monster_cast_fire 26 vampirefirewallmaker 1 0 none SQ SQ A1 1 1 0 ? 0 ? 0 ? 0 ? 1 8 0 +PrimeSpike 189 monglacialspike ln12 ln34 monster_cast_cold monglacialspike 1 0 none SQ SQ A1 1 1 4 radius 0 radius per level 25 freeze frames 10 freeze frames per level 1 8 0 +PrimeIceNova 190 22 frostnova monster_cast_cold 25 frostnova 1 0 none SQ SQ A1 1 1 0 ? 0 ? 0 ? 0 ? 1 8 0 +PrimePoisonball 191 8 poisonball poisonball mephisto_orb_cast 17 poisonball poisonball 1 0 none SQ SQ A1 1 1 3 #missiles 1 activate frame 0 ? 0 ? 0 ? 0 ? 1 8 0 +PrimePoisonNova 192 99 primepoisoncloud 55 primepoisoncloud 1 0 none SQ SQ A1 1 1 lvl-1 #subloops 2 skip 0 ? 0 ? 0 ? 0 ? 1 8 0 +DiabLight 193 53 152 diablight diablo_laser_cast 40 56 diablight 0 interval 1 0 none SQ SQ SC 1 1 1 par1 length of fire 2 density 40 frame length 0 ? 0 ? 0 ? 1 8 0 +DiabCold 194 100 diablo_cold_cast 1 0 none SQ SQ S2 1 1 1 0 ? 200 Frames 0 ? 0 ? 1 8 mag 15 9 9 9 9 9 25 12 12 12 12 12 100 50 50 50 0 +DiabFire 195 22 diabfire diablo_fire_cast 25 diabfire 1 0 none SQ SQ S1 1 1 1 0 ? 0 ? 0 ? 0 ? 1 8 0 +FingerMageSpider 196 101 fingermagespider fingermagecurse ln12 manarecovery -par3 * lvl fingermage_bolt_cast_1 57 fingermagespider 1 0 none SQ SQ S1 1 1 lvl-1 #subloops 30 base frames 10 frames per level 24 unshifted damage per frame 0 ? 1 8 0 +DiabWall 197 166 diabwallmaker diablo_fire_cast 58 diabwallmaker 1 0 none SQ SQ S1 1 1 1 1 lvl #missiles 0 ? 0 ? 0 ? 0 ? 1 8 0 +DiabRun 198 54 103 diablo_run 41 59 1 0 none SQ SQ xx 22 1 1 1 20 velocity 8 stop anim len 14 stop anim frame 5 start frame 13 repeat on frame 16 repeat len 6 repeat back frame 1 5 8 17 9 9 9 9 9 33 9 9 9 9 9 0 +DiabPrison 199 104 boneprison1 none diablo_boneprison_rise 1 0 none SQ SQ S3 1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +PoisonBallTrap 200 trap poison ball left trap poison ball left 1 0 none SC SC S1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 10 10 10 10 10 10 20 10 10 10 10 10 0 +AndyPoisonBolt 201 andypoisonbolt andypoisonbolt 1 0 none SQ SQ A1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +HireableMissile 202 110 66 1 0 none SQ SQ A1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +DesertTurret 203 105 desertfireball 60 desertfireball 1 0 none SQ SQ xx 26 1 1 3 #missiles 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +ArcaneTower 204 106 lightningtowernova lightningorb_attack_1 61 lightningtowernova 1 0 none SQ SQ xx 27 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +MonBlizzard 205 28 monblizcenter monster_cast_cold ice_cast_2 28 monblizcenter 1 3 none SQ SQ S1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Mosquito 206 55 107 42 62 1 0 none SQ SQ xx 34 1 1 4 min loops 7 max loops 25 heal pct 12 reset loop frame 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 2 2 2 2 2 2 4 2 2 2 2 2 2 3 3 3 3 3 4 3 3 3 3 3 200 0 +CursedBallTrapRight 207 trap cursed skull right trap cursed skull right 1 0 none SC SC S2 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 10 5 5 5 5 5 20 5 5 5 5 5 0 +CursedBallTrapLeft 208 trap cursed skull left trap cursed skull left 1 0 none SC SC S2 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 10 5 5 5 5 5 20 5 5 5 5 5 0 +MonFrozenArmor 209 18 frozenarmor ln34 skill_armor_percent ln12 monster_cast_cold sorceress_frozenarmor ice_cast_3 1 0 none SQ SQ SC 1 1 30 % AC base 5 % AC per level 3600 Duration 300 Duration per level 30 Freeze Frames 3 Freeze Frames per level 1 8 1 0 +MonBoneArmor 210 18 bonearmor bonearmor ln12*256 bonearmormax ln12*256 necromancer_bonearmor 1 0 none SQ SQ S1 1 1 20 damage absorbed 10 additional absorbed/level 0 ? 0 ? 0 ? 0 ? 1 8 0 +MonBoneSpirit 211 10 monbonespirit monbonespirit monster_cast_fire 18 monbonespirit monbonespirit 1 0 none SQ SQ S1 1 1 15 Search range 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +MonCurseCast 212 112 ln34 ln12 18 30 curseeffectred cursecast 1 5 none SQ SQ S2 1 1 3 radius 1 radius per level 300 duration 60 additional duration/level 25 min % resist lower 70 max % resist lower -50 speed 1 8 0 +HellMeteor 213 28 hellmeteordown 44 1 4 none SQ SQ A1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +RegurgitatorEat 214 108 regurgitator_eat_1 63 corpseexplosion bigblood1 1 2 none SQ SQ S1 1 1 1 1 33 heal% of target hp 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +MonFrenzy 215 64 109 monfrenzy ln12 velocitypercent dm34 attackrate dm34 other_animrate dm34 1 3 none SQ SQ A2 1 1 1 1 1 200 duration 25 duration/level 30 min % speed increase 110 max % speed increase 0 ? 0 ? 1 10 10 8 128 0 +QueenDeath 216 64 1 0 none SQ SQ xx 41 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Scroll of Identify 217 scroll of identify 113 0 none SC SC xx 1 1 5 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Book of Identify 218 book of identify 113 0 none SC SC xx 1 1 5 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Scroll of Townportal 219 scroll of townportal 113 0 none SC SC xx 1 1 5 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Book of Townportal 220 book of townportal 113 0 none SC SC xx 1 1 5 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Raven 221 dru raven 114 coldmindam (edmn + stat('eaglehorn_raven'.accr)) * (100 + stat('passive_cold_mastery'.accr))/100 coldmaxdam (edmx + stat('eaglehorn_raven'.accr)) * (100 + stat('passive_cold_mastery'.accr))/100 coldlength edln velocitypercent 50 druidhawk raven "min((lvl/2)+2,par2)" S1 druid_summon 1 0 none SC SC xx 1 4 1 1 1 20 1 1 1 6 6 1 1 1 0 hp adj ulvl + par1 + lvl raven lvl 1 + blvl / 10 # summons per cast -2 monster level = your level + this + SkillLevel 15 Max ravens 0 ? 0 ? 5 Attacks 0 Attacks per level 8 damage synergy 1 100 20 7 cold 4 2 4 29 42 55 6 2 6 31 44 57 (skill('Summon Spirit Wolf'.blvl)+skill('Summon Fenris'.blvl)+skill('Summon Grizzly'.blvl))*par8 100 256 5000 +Plague Poppy 222 dru plague poppy 115 vine_beast poison_weakness edln poisonresist -"min(ln56,40)" passive_pois_mastery (skill('Rabies'.blvl)+skill('Cycle of Life'.blvl)+skill('Vines'.blvl))*par8 plaguepoppy PoisonCreeper 1 + (blvl / 10) S1 Vine Attack lvl druid_summon 1 0 none SC SC xx 1 4 1 20 1 25 1 8 8 0 1 1 par3 * (lvl-1) hp % ulvl * 3 / 4 + lvl vine lvl 3 Number of vines 1 vines per level 100 % more hitpoints per level 0 ? 5 -poison res 1 -poison res / lvl 14 damage synergy 1 2 pois 1 1 2 4 15 30 2 1 2 4 15 30 (skill('Rabies'.blvl)+skill('Cycle of Life'.blvl)+skill('Vines'.blvl))*par8 100 256 5000 +Wearwolf 223 dru wearwolf 116 wolf 249975 attackrate dm34 item_tohit_percent skill('Shape Shifting'.ln12) item_maxhp_percent par2+skill('Shape Shifting'.ln34) damagepercent ln56 normal_damage_reduction 1 + lvl / 3 magic_damage_reduction 1 + lvl / 3 wolf_into wolf_undo 45 1 0 none SC SC xx 22 1 1 1 20 1 18 1 1 8 15 0 1 25 % stamina increase 0 % hitpoints increase 10 % min speed increase 80 % max speed increase 20 ed base 4 ed per level 1 0 0 8 128 256 5000 +Shape Shifting 224 dru shape shifting 1 0 none SC SC xx 1 1 20 0 8 0 0 1 1 50 base increased ar 12 bonus ar per level 2 % base hitpoint bonus 2 % hitpoints per level 0 ? 0 ? 1 8 256 5000 +Firestorm 225 dru firestorm 166 firestormmaker druid_firecast_b druid_fire_cast_1 58 firestormmaker 1 0 none SC SC xx 1 1 druid_firecast_b druid_fire_cast_1 1 20 1 1 8 4 0 1 par1+(blvl/5) # missiles 3 Number of missiles 0 Number of missiles per level 0 ? 0 ? 0 ? 0 ? 26 damage synergy 1 2 fire 2 1 1 2 4 7 4 2 2 3 5 8 (skill('Molten Boulder'.blvl)+skill('Eruption'.blvl))*par8 256 5000 +Oak Sage 226 dru oak sage 119 poisonresist 100 maxpoisonresist 100 oaksage totem 1 + stat('extra_spirits'.accr) NU Oak Sage Aura lvl Vines skill('Vines'.blvl) Cycle of Life skill('Cycle of Life'.blvl) druid_summon 1 0 none SC SC xx 1 4 30 20 Spirit of Barbs 1 1 8 15 1 1 1 (lvl-1)*(par1 + 1)/100 hp adj ulvl totem lvl 50 % hitpoints more per level 12 % hitpoint bonus per level 250 duration of aura 0 ? 0 ? 0 ? 30 radius 2 radius/lvl 1 8 12 4 4 5 5 5 50 12 14 16 18 20 896 80000 +Summon Spirit Wolf 227 dru summon spirit wolf 77 119 fireresist "min(ln78,80)" coldresist "min(ln78,80)" lightresist "min(ln78,80)" poisonresist "min(ln78,80)" item_armor_percent (par4 * lvl) + ln56 tohit ln12 damagepercent skill('Summon Grizzly'.ln12) spiritwolf spiritwolf (stat('no_wolves'.accr) > 0) ? 0 : "min(lvl,par3)" + stat('extra_spiritwolf'.accr) S1 druid_summon 1 0 none SC SC xx 1 4 1 12 20 Raven Heart of Wolverine 1 1 8 15 0 1 1 lvl*35 hp % ulvl pet lvl 50 % feral add to attack 25 % feral attack per level 6 max wolves 7 defense points per level 50 % defense bonus 10 % defense bonus per level 20 resist 3 resist/lvl 1 75 20 8 12 2 3 4 5 6 18 2 3 4 5 6 (skill('Raven'.blvl)+skill('Summon Fenris'.blvl))*8 512 20000 +Wearbear 228 dru wearbear 116 bear 249975 damagepercent ln12 skill_armor_percent ln34 item_maxhp_percent par5 + skill('Shape Shifting'.ln34) item_tohit_percent skill('Shape Shifting'.ln12) inc_splash_radius 20 skill_concentration ln78 bear_into bear_undo 45 1 0 none SC SC xx 22 1 20 1 18 1 1 8 15 0 1 55 % Base bonus damage 15 % bonus damage per level 75 % increase armorclass 10 % armor class per level 10 % Base bonus hitpoints 10 chance to avoid interuption 1 chance to avoid interuption 1 8 128 256 5000 +Molten Boulder 229 dru molten boulder moltenboulderemerge par1 druid_firecast_b druid_fire_cast_1 moltenboulderemerge 1 0 none SC SC xx 1 1 druid_firecast_b druid_fire_cast_1 6 20 Firestorm 1 1 5 40 1 1 7 Explosion Radius 12 fire damage synergy 1 8 1 1 2 5 9 13 2 1 2 6 12 18 (skill('Volcano'.blvl)+skill('Eruption'.blvl)+skill('Armageddon'.blvl))*par8 fire 1 1 2 6 10 14 1 1 2 7 13 19 (skill('Volcano'.blvl)+skill('Eruption'.blvl)+skill('Armageddon'.blvl))*par8 384 10000 +Arctic Blast 230 dru arctic blast 11 182 arcticblastdebuff arcticblastexplode arcticblast_debuff 10 ln12/4-2 coldresist -"min(5 + lvl, 100)" arctic_blast_cast druid_windcast 15 111 arcticblastdebuff arcticblastdebuff2 1 0 rng SQ SQ xx 18 3 1 20 1 1 4 0 3 4 1 1 "min((ln12/2),24)" range 20 frames if monster 2 # missiles 24 base ranged (doubled) 2 level range (doubled) 4 Min Mana to start casting 32 # of explode missiles 4 base -cold res 768 explode damage (/ 128) 16 hurricane damage syn 12 damage synergy 1 6 cold 2 1 4 14 24 29 3 2 5 15 25 30 (skill('Tornado'.blvl)+skill('Cyclone Armor'.blvl))*par8+(skill('Hurricane'.blvl))*par7 150 256 5000 +Cycle of Life 231 dru cycle of life 115 vine_beast cycleoflife vine 1 S1 Vine Attack lvl CorpseCycler lvl Vines skill('Vines'.blvl) Oak Sage skill('Oak Sage'.blvl) druid_summon 1 0 none SC SC xx 1 4 12 20 Plague Poppy 1 25 1 8 10 0 1 1 par3 * (lvl-1) hp % ulvl * 3 / 4 + lvl vine lvl (par4 + par5*lvl) + (skill('Oak Sage'.blvl)+skill('Vines'.blvl)) * par8 / 2 min heal (par6 + par7*lvl) + (skill('Oak Sage'.blvl)+skill('Vines'.blvl)) * par8 max heal 10 Radius 0 Life steal moved --> 52 % more hitpoints per level 20 min heal 4 min heal per level 40 max heal 4 max heal per level 4 Addition heal synergy 1 8 512 20000 +Feral Rage 232 dru feral rage 56 120 feralrage par1 velocitypercent dm34 lifedrainmindam "min(par2 * lvl,20)" lifedrainmaxdam "min(par2 * lvl / 2+ 4,10)" 1 0 h2h A1 A1 xx 1 1 1 1 6 20 Wearwolf 2 wolf 1 1 8 3 0 1 ln56 + skill('Fury'.blvl) * 6 dmg% lvl/par7 + par8 max charges 750 duration 1 % life steal per hit 20 Min Speed boost 120 Max Speed boost 50 % damage increase 10 % damage increase per level 2 Levels per charge 3 Min charge 1 25 8 8 128 384 10000 +Maul 233 dru maul 56 120 maul par4 damagepercent lvl*par3 stunlength ((par5 + ((blvl - 1) * - par6))<5)?par6:(par5 + ((blvl - 1) * - par6)) 1 0 h2h A1 A1 xx 1 1 1 1 6 20 Wearbear 2 bear 1 1 8 3 0 1 0 dmg% lvl/par7 + par8 max charges 40 damage per charge 500 duration 30 Stun start duration (5 = 0.2) 5 Stun duration reduction per lvl 2 Levels per charge 3 Min charge 1 25 10 8 128 384 10000 +Eruption 234 dru eruption 28 erruption center druid_firecast_a druid_fire_cast_2 28 erruption center 1 0 none SC SC xx 1 4 1 1 druid_firecast_a druid_fire_cast_2 12 20 Molten Boulder 13 1 1 8 10 0 1 par1 radius par2 - (blvl / 10) frequency 7 radius 6 Missile delay 0 Change duration in Missiles.xls 12 damage synergy 1 8 fire 15 4 8 12 20 32 25 6 10 14 22 34 (skill('Firestorm'.blvl)+skill('Molten Boulder'.blvl))*par8 512 20000 +Cyclone Armor 235 dru cyclone armor 18 cyclonearmor bonearmor ((stat('energy'.accr)*3) + edmx + ((skill('Twister'.blvl) + skill('Tornado'.blvl)) * par8)) * 256 bonearmormax ((stat('energy'.accr)*3) + edmx + ((skill('Twister'.blvl) + skill('Tornado'.blvl)) * par8)) * 256 absorbdamage 25 druid_cyclonearmor 1 0 none SC SC xx 1 1 6 20 Arctic Blast 50 1 8 5 1 1 1 0 damage absorbed 0 additional absorbed/level 10 absorb synergy 1 8 15 16 17 18 19 20 384 10000 +Heart of Wolverine 236 dru heart of wolverine 119 poisonresist 100 maxpoisonresist 100 heartofwolverine totem 1 + stat('extra_spirits'.accr) NU Wolverine Aura lvl druid_summon 1 0 none SC SC xx 1 4 6 20 1 1 8 10 1 1 1 (lvl-1)*par1 hp adj ulvl totem lvl 5 bonus hitpoints per level 3 Bonus Level 25 % attack rating bonus 8 % attack rating bonus per lvl 25 % damage increase 8 % damage increase per level 30 radius 2 radius/lvl 1 8 384 10000 +Summon Fenris 237 dru summon fenris 77 119 fireresist "min(ln78,80)" coldresist "min(ln78,80)" lightresist "min(ln78,80)" poisonresist "min(ln78,80)" item_armor_percent (par6 * lvl) tohit skill('Summon Spirit Wolf'.ln12) damagepercent skill('Summon Grizzly'.ln12) fenris fenris (stat('no_wolves'.accr) > 0) ? 0 : "min(lvl,par3)" S1 druid_summon 1 0 none SC SC xx 1 4 1 24 20 Summon Spirit Wolf 1 1 8 20 0 1 1 ln12 hp% ulvl pet lvl 50 % hitpoints 50 % hitpoints per level 3 max fenri 1500 rage duration - see fenris rage 50 % damage with rage - see fenris rage 5 defense points per level 20 resist 3 resist/lvl 1 150 20 8 33 3 4 5 6 7 38 4 5 6 7 8 (skill('Raven'.blvl)+skill('Summon Spirit Wolf'.blvl))*7 768 60000 +Rabies 238 dru rabies 57 121 rabiesplague rabies 1 druidwerewolf_bite_1 1 0 h2h S3 S3 S3 1 1 1 1 18 20 Feral Rage 2 wolf 1 1 8 10 0 1 10 damage synergy 1 65 15 1 2 3 pois 4 4 8 15 23 31 12 4 8 15 23 31 (skill('Plague Poppy'.blvl)+skill('Feral Rage'.blvl)+skill('Shape Shifting'.blvl))*par8 125 640 40000 +Fire Claws 239 dru fire claws 23 175 clawfirestormmaker fire_hit 110 clawfirestormmaker 1 0 h2h A1 A1 xx 1 1 1 1 24 20 2 wolf bear 1 1 5 16 1 1 0 dmg% par1 + (blvl / 5) * par2 # missiles 4 # missiles 1 # missiles / lvl 24 damage synergy 1 60 10 2 fire 8 2 4 6 8 10 13 3 5 7 9 11 (skill('Molten Boulder'.blvl)+skill('Armageddon'.blvl))*par8 768 60000 +Twister 240 dru twister 118 twister druid_windcast 68 twister 1 0 none SC SC xx 1 1 12 20 Cyclone Armor 1 1 5 16 1 1 "min(ln34 / 2, par5)" # missiles 0 Frames the target is stunned 4 Number of twisters 1 twisters per level 14 max twisters 13 Gust delay reduction 24 arctic synergy 24 damage synergy 1 7 12 4 7 19 40 61 16 6 9 21 42 63 (skill('Tornado'.blvl)+skill('Hurricane'.blvl))*par8 + (skill('Arctic Blast'.blvl))*par7 512 20000 +Vines 241 dru vines 115 vine_beast vinecreature vine2 1 S1 Vine Attack lvl VineCycler lvl Oak Sage skill('Oak Sage'.blvl) druid_summon 1 0 none SC SC xx 1 4 24 20 Cycle of Life 1 25 1 8 14 1 1 1 par3 * (lvl-1) hp % ulvl * 3 / 4 + lvl vine lvl (par4 + par5*lvl) + (skill('Oak Sage'.blvl)+skill('Cycle of Life'.blvl)) * par8 / 3 min heal (par6 + par7*lvl) + (skill('Oak Sage'.blvl)+skill('Cycle of Life'.blvl)) * par8 max heal 3 Number of vines 1 vines per level 30 % more hitpoints per level 15 min heal 3 min heal per level 25 max heal 3 max heal per level 3 Addition heal synergy 1 8 pois 768 60000 +Hunger 242 dru hunger 165 hunger 475+(lvl*25) lifedrainmindam par3 + blvl / 4 velocitypercent par4 + lvl item_openwounds dm12 + 5 deep_wounds edmx 1 druidwerebear_bite_1 regurgitator_eat_1 51 79 corpseexplosion bigblood1 1 0 h2h S3 S3 S3 1 1 1 5 1 12 20 Maul 2 bear 1 1 8 3 1 1 14 crit base 50 crit cap 3 life steal base 19 movespeed base 20 damage synergy 1 8 40 10 16 24 34 46 (skill('Maul'.blvl)) * par8 512 20000 +Shock Wave 243 dru shock wave 8 shockwave shockwave 17 shockwave shockwave 1 0 none SC SC xx 1 18 20 Maul 2 bear 1 1 8 7 0 1 "min(4+lvl/4, 8)" # missiles 6 stun length 0 stun length per level 22 damage synergy 1 8 10 3 6 18 32 48 16 5 10 25 42 63 (skill('Wearbear'.blvl)+skill('Twister'.blvl))*par8 640 40000 +Volcano 244 dru volcano 123 volcano par1 druid_firecast_a druid_fire_cast_2 91 volcano overlay fire volcano 1 0 none SC SC xx 1 4 1 1 sorceress_cast_fire druid_fire_cast_2 24 20 Eruption 13 1 1 8 12 0 1 par2 damage delay 12 debris range 2 delay between debris 8 damage synergy 8 fire damage synergy 1 8 7 2 4 5 6 7 10 3 5 7 8 9 (skill('Eruption'.blvl)+skill('Armageddon'.blvl)+skill('Molten Boulder'.blvl))*par8 fire 7 2 4 5 6 7 10 3 5 7 8 9 (skill('Eruption'.blvl)+skill('Armageddon'.blvl)+skill('Molten Boulder'.blvl))*par8 768 60000 +Tornado 245 dru tornado 118 tornado 42371 par2 druid_windcast 69 tornado 1 0 none SC SC xx 1 4 1 24 20 Twister 1 1 5 16 1 1 1 # missiles par1 damage delay 15 Frame delay between damage 4 Radius of damage 13 Gust delay reduction 16 damage synergy 1 8 32 6 14 22 30 38 35 8 16 24 32 40 (skill('Arctic Blast'.blvl)+skill('Twister'.blvl)+skill('Hurricane'.blvl))*par8 768 60000 +Spirit of Barbs 246 dru spirit of barbs 119 poisonresist 100 maxpoisonresist 100 spiritofbarbs totem 1 + stat('extra_spirits'.accr) NU Barbs Aura lvl Cycle of Life skill('Cycle of Life'.blvl) druid_summon 1 0 none SC SC xx 1 4 18 20 Heart of Wolverine 1 1 8 25 1 1 1 (lvl-1)*par1 hp adj ulvl totem lvl 15 % hitpoints more per level 0 Bonus Level 50 % thorns damage back 20 % thorns damage back per level 7 dmg synergy 30 radius 2 radius/lvl 1 8 15 8 16 32 48 64 (skill('Cycle of Life'.blvl)) * par6 640 40000 +Summon Grizzly 247 dru summon grizzly 119 fireresist "min(ln78,80)" coldresist "min(ln78,80)" lightresist "min(ln78,80)" poisonresist "min(ln78,80)" damagepercent ln12 tohit skill('Summon Spirit Wolf'.ln12) item_armor_percent lvl*5 druidbear grizzly 1 + (blvl>19)?1:0 + stat('extra_grizzly'.accr) S1 druid_summon 1 0 none SC SC xx 1 4 30 20 Summon Fenris 1 50 1 1 8 40 0 1 1 lvl*4 hp % ulvl pet lvl 25 % feral add to damage 10 % feral damage per level 4 werebear dmg synergy 4 dmg synergy 20 resist 3 resist/lvl 1 300 20 8 20 7 9 11 14 17 30 7 9 11 14 17 (skill('Raven'.blvl)+skill('Summon Spirit Wolf'.blvl))*par6 896 80000 +Fury 248 dru fury 37 13 temp_splash inc_splash_radius 1 53 21 1 0 h2h A1 A1 A1 1 1 1 30 20 Rabies 2 wolf 1 1 8 4 0 "min((par5 + lvl -1), par6)" max targets ln34 + skill('Feral Rage'.blvl)*par8 damage % 100 % frame rollback 100 % damage percent 8 damage % per level 3 Targets 3 Max targets 4 damage synergy 1 235 10 8 128 896 80000 +Armageddon 249 dru armageddon 124 armageddoncontrol armageddoncontrol armageddoncontrol armageddon ln12 par3 druid_firecast_a druid_fire_cast_2 92 armageddontail armageddonrock 20 frames 30 fall rate 15 slide rate 1 0 none SC SC xx 1 4 30 20 Volcano 1 1 8 35 0 1 1500 base duration 75 duration per level 9 radius to drop meteors 9 frame delay between rocks 5 fire claw damage synergy 0 duration synergy 10 damage synergy 1 80 6 8 15 10 13 17 21 25 45 11 15 19 23 27 (skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*par8 + (skill('Fire Claws'.blvl)) * par6 fire 15 10 13 17 21 25 45 11 15 19 23 27 (skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*par8 + (skill('Fire Claws'.blvl)) * par6 896 80000 +Hurricane 250 dru hurricane 124 42883 hurricane ln12 par3 druid_windcast druid_hurricane hurricaneswoosh hurricanerock hurricanetree 3 debris/frame 75 height 1 0 none SC SC xx 1 30 20 Tornado 1 1 8 30 0 1 1500 base duration 75 duration per level 9 radius 20 frames per hit search 0 duration synergy 12 damage synergy 1 1 2 8 cold 25 4 8 12 16 20 50 4 8 12 16 20 (skill('Arctic Blast'.blvl)+skill('Tornado'.blvl))*par8 200 896 80000 +Fire Trauma 251 ass fire trauma 43 "min(par1+lvl/par2,9)" bomb in air (par1+blvl/par2)/2+1 weapon_throw_1 5 bomb in air 1 0 rng S2 S2 S2 1 1 20 1 1 5 16 1 1 1 # missiles 3 levels per missile 18 damage synergy 1 7 fire 4 2 4 8 18 23 6 3 5 10 20 25 (skill('Shock Field'.blvl) + skill('Charged Bolt Sentry'.blvl) + skill('Lightning Sentry'.blvl) + skill('Chain Lightning Sentry'.blvl) + skill('Wake of Fire Sentry'.blvl) + skill('Inferno Sentry'.blvl)) * par8 5 256 5000 +Claw Mastery 252 ass claw mastery clawmastery asm passive_mastery_melee_th ln12 passive_mastery_melee_dmg ln34 passive_mastery_melee_crit dm56 1 0 none asm SC SC SC 1 1 20 0 8 0 0 1 1 30 Attack rating bonus percent 10 Percent attack rating per level 40 % damage percent 15 damage % per level 0 critical% 30 critical% 1 8 10 256 5000 +Psychic Hammer 253 ass psychic hammer 26 psychichammer psychichammer psychichammer par1 assassin_psychichammer psychic_hammer_curse 27 psychichammer psychichammer psychichammer 1 0 rng SC SC SC 1 1 4 1 20 1 1 6 6 1 1 "min(2+(lvl/10), 6)" # hits 20 dmg reduction per hit 8 radius of jump to next target 20 damage synergy 1 9 8 mag 4 3 6 12 24 36 6 4 8 14 26 38 (skill('Cloak of Shadows'.blvl)+skill('Mind Blast'.blvl)+skill('Shadow Warrior'.blvl))*par8 5 256 5000 +Tiger Strike 254 ass tiger strike 78 170 1 progressive_damage par3 progressive_damage progressive_tohit par4 assassinfootimpact tigerstrike1 assassin_chargeup_tiger_1 12 12 12 1 0 h2h 3 asm A1 A1 A1 1 1 1 1 1 20 1 1 8 1 0 1 1 ln12 progressive damage 20 splash bonus 50 % Damage bonus 25 % damage per level 7500 duration 50 tohit bonus for each charge-up 1 25 15 8 128 4 256 5000 +Dragon Talon 255 ass dragon talon 24 42 assassin_kick_1 6 4 1 0 h2h 4 KK KK A1 19 1 1 1 1 20 1 1 6 8 1 1 1 "min(lvl/6+1, 3)" number of kicks ln12 + (skill('Dragon Tail'.blvl)+ skill('Dragon Flight'.blvl))*par8 %ed 60 Percent damage 30 percent damage per level 25 min knockback% vs. unique 50 max knockback% vs. unique 25 min knockback% vs. boss 99 max knockback% vs. boss 25 damage synergy 1 20 25 1 8 4 256 5000 +Shock Field 256 ass shock field 43 par1+lvl/par2 shock field in air (par1+lvl/par2)/3+1 weapon_throw_1 5 shock field in air 1 0 rng S2 S2 S2 1 1 6 20 Fire Trauma 25 1 1 8 6 0 1 4 Number of missiles 3 Levels per missile 17 damage synergy 1 4 ltng 2 1 2 3 4 6 5 4 10 16 22 28 (skill('Charged Bolt Sentry'.blvl)+skill('Lightning Sentry'.blvl)+skill('Fire Trauma'.blvl)+skill('Chain Lightning Sentry'.blvl)+skill('Wake Of Fire Sentry'.blvl)+skill('Inferno Sentry'.blvl))*par8 11 384 10000 +Blade Sentinel 257 ass blade sentinel 44 blade creeper 7 tohit lvl*5 passive_phys_pierce stat('passive_phys_pierce'.accr) / 2 bladecreeper bladesent 15 S1 Blade Sentinel lvl assassin_summon 1 0 rng S2 S2 S2 1 6 20 1 1 7 7 0 1 50 duration duration duration per level 5 Total number assassin traps 3 Total number pet traps 12 damage synergy 1 40 15 32 8 128 1 1 1 2 3 4 3 1 1 2 3 4 (skill('Blade Fury'.blvl)+skill('Blade Shield'.blvl))*par8 5 3 384 10000 +Quickness 258 ass quickness 18 quickness ln56 velocitypercent edln attackrate ((110*blvl) * (par4-par3))/(100 * (blvl+6)) + par3 assassin_quickness 1 0 none SC SC SC 1 6 20 Claw Mastery 1 8 10 0 1 1 15 min % increased attack speed 60 max % increased attack speed 7500 duration 125 duration per level 1 8 20 2 1 1 1 384 10000 +Fists of Fire 259 ass fists of fire 23 170 1 39 172 171 64 1 4 fistsoffirefirewall fistsoffirenova fistsoffireorbdelay progressive_fire par5 par2 progressive_fire progressive_tohit par6 9 107 106 fistsoffireexplode fistsoffirenova fistsoffireorbdelay 64 # nove missiles 1 # of metor orbs 1 0 h2h 3 asm A1 A1 A1 1 1 1 1 6 20 1 1 5 24 1 1 1 lvl*3 convert to fire% 4 Radius of explosion 4 Radius of firewall fragments 25 meteor fire duration 0 Frames of fire per level 7500 charges duration 50 tohit bonus for each charge-up 26 damage synergy 1 35 15 8 128 fire 1 1 2 10 18 26 2 1 3 15 27 39 (skill('Tiger Strike'.blvl) + skill('Dragon Flight'.blvl)) * par8 4 384 10000 +Dragon Claw 260 ass dragon claw 25 46 assassin_kick_1 1 0 h2h 3 h2h h2h SQ A1 xx 16 1 1 1 1 6 20 Dragon Talon 1 1 8 2 0 1 ln12 + skill('Weapon Block'.blvl) * par8 + skill('Claw Mastery'.lvl) * par7 damage% 50 % Damage bonus 25 % damage per level 20 claw mastery synergy 20 weapon block synergy 1 40 20 8 128 4 384 10000 +Charged Bolt Sentry 261 ass charged bolt sentry 45 passive_ltng_mastery stat('passive_ltng_mastery'.accr) chargeboltsentry assassintrap 5 S1 BoltSentry lvl Fire Trauma skill('Fire Trauma'.blvl) Chain Lightning Sentry skill('Chain Lightning Sentry'.blvl) Lightning Sentry skill('Lightning Sentry'.blvl) Death Sentry skill('Death Sentry'.blvl) assassin_summon 1 0 rng S2 S2 S2 1 4 12 20 Shock Field 1 5 32 1 1 "min((4 + blvl/4), 10)" # bolts 5 shots fired 5 Shots fired 5 Bolts to send out 0 Bolts to send out per level 8 damage synergy 8 damage synergy 1 7 ltng 2 0 0 0 0 0 16 10 11 12 13 14 (skill('Chain Lightning Sentry'.blvl)) * par7 + (skill('Lightning Sentry'.blvl) + skill('Fire Trauma'.blvl)) * par8 3 512 20000 +Wake of Fire Sentry 262 ass wake of fire sentry 45 passive_fire_mastery stat('passive_fire_mastery'.accr) wakeofdestruction assassintrap 5 S1 Wake Of Destruction Sentry lvl Fire Trauma skill('Fire Trauma'.blvl) Inferno Sentry skill('Inferno Sentry'.blvl) assassin_summon 1 0 rng S2 S2 S2 1 4 12 20 Fire Trauma 1 5 40 1 1 5 Shots fired 8 damage synergy 1 8 fire 2 1 4 13 22 22 4 2 6 16 26 26 (skill('Fire Trauma'.blvl) + skill('Inferno Sentry'.blvl)) * par8 3 512 20000 +Weapon Block 263 ass weapon block weaponblock h2h passive_weaponblock dm12 + (stat('toblock'.accr) / 5) item_fasterblockrate lvl 1 0 rng h2h h2h SC SC SC 1 12 20 Claw Mastery 1 0 8 0 0 1 1 0 min block % 55 max block % 20 base wep dmg 4 wep dmg per level 1 8 15 2 1 1 1 1 1 1 10 512 20000 +Cloak of Shadows 264 ass cloak of shadows 47 57347 cloak_of_shadows cloaked ln34 dm12 skill_armor_percent "-min(ln56,95)" item_armor_percent ln78 / 2 7 1 0 none SC SC SC 1 1 12 20 Psychic Hammer 125 1 8 13 0 1 30 min radius of effect 30 max radius of effect 125 duration 0 Duration per level 15 percent armor decrease 1 percent decrease per level 10 percent armor bonus 3 percent armor bonus per level 1 8 2 512 20000 +Cobra Strike 265 ass cobra strike 23 170 1 171 172 par5 64 2 cobrastrikepoisonbolt cobrastrikepoisoncloud progressive_steal par3 progressive_steal progressive_tohit par4 cobrastrike1 assassin_chargeup_cobra_1 106 13 107 cobrastrikepoisonbolt cobrastrikepoisoncloud par5 # missiles 64 # nova missiles 1 0 h2h asm A1 A1 A1 1 1 1 1 12 20 Tiger Strike 1 1 8 2 0 1 1 ln12 %lifesteal par6+(lvl*par7) enhanced damage % 16 Base percent life steal 4 Percent life steal per level 7500 duration 50 tohit bonus for each charge-up 7 # of missiles 60 enhanced damage base 30 enhanced damage per lvl 1 60 14 8 128 pois 25 0 0 0 12 512 20000 +Blade Fury 266 ass blade fury 26 48 par4 bladefragment1 8 6 bladefragment1 1 0 rng SQ A1 SC 23 3 1 18 20 Blade Sentinel 1 1 1 6 0 5 8 1 1 0 "Don't Use, missile range mod" 0 "Don't Use, missile range mod" 3 Min Mana to start casting 4 Frame delay between blades 10 damage synergy 1 60 15 8 96 3 1 2 3 4 5 6 2 3 4 5 6 (skill('Blade Sentinel'.blvl)+skill('Blade Shield'.blvl))*par8 5 384 10000 +Fade 267 ass fade 18 fade ln56 fireresist edmx coldresist edmx lightresist edmx poisonresist edmx curse_resistance "min(ln34, 30)" damageresist ln78 / 3 fade 2 assassin_fade 1 0 none SC SC SC 1 1 18 20 Quickness 1 8 10 0 1 1 10 min Elemental resistance 75 max elemental resist 5 min curse length reduction 1 max curse length reduction 7500 duration 125 Duration per level 1 damage resist % 1 damage resist % per level 1 8 15 2 1 1 1 1 1 640 40000 +Shadow Warrior 268 ass shadow warrior 49 shadowwarrior tohit lvl*par2 skill_armor_percent lvl*par3 strength lvl*10 dexterity lvl*10 fireresist dm78 coldresist dm78 lightresist dm78 poisonresist dm78 shadowwarrior shadowwarrior 1 + stat('extra_shadow'.accr) NU assassin_summon 1 0 none SC SC SC 1 4 18 20 Cloak of Shadows Weapon Block 50 1 7 54 1 1 1 ln56 item quality 5 Plus % HP per level 40 plus to hit per level 12 Plus % AC per level 0 ? 20 base item quality level 3 item quality per level 5 Min % resist all 90 Max % resist all 1 8 3 640 40000 +Claws of Thunder 269 ass claws of thunder 23 170 1 36 37 par1 4 clawsofthundernova clawsofthunderbolt progressive_lightning par3 progressive_lightning progressive_tohit par4 10 11 clawsofthundernova clawsofthunderbolt 1 0 h2h 3 asm A1 A1 A1 1 1 1 1 18 20 Fists of Fire 1 1 8 4 0 1 1 4 skip 7500 duration 50 tohit bonus for each charge-up 16 damage synergy 1 80 12 8 128 ltng 1 0 0 0 0 0 80 20 40 60 80 100 skill('Dragon Claw'.blvl) * par8 4 640 40000 +Dragon Tail 270 ass dragon tail 27 50 dragontail missile par3 assassin_kick_1 9 7 dragontail missile 1 0 h2h 4 KK KK A1 1 1 1 1 18 20 Dragon Claw 1 1 8 10 0 1 1 ln12 + (skill('Dragon Talon'.blvl)+ skill('Dragon Flight'.blvl))*par8 damage% 40 Percent area damage min 13 percent area damage per level 6 Radius -20 Attack rate penalty 8 damage synergy 1 210 10 1 8 fire 4 640 40000 +Chain Lightning Sentry 271 ass chain lightning sentry 45 par1 passive_ltng_mastery stat('passive_ltng_mastery'.accr) chainlightningsentry assassintrap 5 S1 Sentry Chain Lightning lvl Fire Trauma skill('Fire Trauma'.blvl) Charged Bolt Sentry skill('Charged Bolt Sentry'.blvl) Lightning Sentry skill('Lightning Sentry'.blvl) assassin_summon 1 0 rng S2 S2 S2 1 4 30 20 Lightning Sentry 1 5 56 1 1 20 chain distance 13 damage synergy 1 8 ltng 9 1 2 3 4 5 50 8 12 18 26 36 (skill('Fire Trauma'.blvl) + skill('Charged Bolt Sentry'.blvl) + skill('Lightning Sentry'.blvl))*par8 3 896 80000 +Inferno Sentry 272 ass inferno sentry 45 passive_fire_mastery stat('passive_fire_mastery'.accr) infernosentry assassintrap 5 S1 mon inferno sentry lvl Fire Trauma skill('Fire Trauma'.blvl) Wake of Fire Sentry skill('Wake of Fire Sentry'.blvl) assassin_summon 1 0 rng S2 S2 S2 1 4 24 20 Wake of Fire Sentry 1 5 64 1 1 10 Shots fired 12 synergy damage bonus 12 damage synergy 1 4 fire 60 34 68 102 136 170 100 40 80 120 160 200 (skill('Fire Trauma'.blvl) + skill('Wake of Fire Sentry'.blvl))*par8 3 768 60000 +Mind Blast 273 ass mind blast 51 33667 progressive_mindblast 12 "min(par7 + (1 - stat('pvp_disable'.accr))*(blvl / 2), 7)" progressive_mindblast 1 assassin_psychichammer fist_will_cast 8 mindblast center mindblast hit 1 0 rng SC SC SC 1 4 1 18 20 Cloak of Shadows 1 1 8 9 0 1 par5 aoe per stack par6 max stacks 50 length of stun 0 additional lengh of stun 2 radius per stack 3 max radius stacks 4 radius 13 damage synergy 1 5 8 10 3 7 17 34 51 20 3 7 17 34 51 (skill('Cloak of Shadows'.blvl)+skill('Psychic Hammer'.blvl)+skill('Shadow Warrior'.blvl))*par8 100 0 0 0 blvl * -50 11 640 40000 +Blades of Ice 274 ass blades of ice 23 170 1 139 143 par2 4 boiwavemaker boichaosice 34571 progressive_cold par3 progressive_cold progressive_tohit par4 81 83 boiwavemaker boichaosice 1 0 h2h 3 asm A1 A1 A1 1 1 1 1 24 20 Claws of Thunder 1 1 8 3 0 1 1 6 Second level radius 6 3rd phase num missiles (64/X) 7500 duration 50 tohit bonus for each charge-up 1 freeze length divisor 17 damage synergy 1 160 10 8 128 cold 13 7 10 23 37 49 30 9 12 25 37 50 (skill('Tiger Strike'.blvl)) * par8 250 4 768 60000 +Dragon Flight 275 ass dragon flight 12 178 par7 1 sorceress_teleport dragonflight 1 1 0 rng 4 KK KK A1 1 1 1 24 20 Dragon Tail "max(51 - lvl, 25)" 1 1 8 15 0 1 1 ln12 %ed 100 % Damage bonus 25 % damage per level 40 range 1 180 15 1 8 13 768 60000 +Death Sentry 276 ass death sentry 45 passive_fire_mastery stat('passive_fire_mastery'.accr) deathsentry assassintrap 5 S1 mon death sentry lvl Fire Trauma skill('Fire Trauma'.blvl) Charged Bolt Sentry skill('Charged Bolt Sentry'.blvl) Inferno Sentry skill('Inferno Sentry'.blvl) assassin_summon 1 0 rng S2 S2 S2 1 4 30 20 Lightning Sentry Inferno Sentry 1 6 32 1 1 500 Shots fired 9 damage synergy 1 8 16 5 7 9 11 13 20 6 8 10 12 14 (skill('Fire Trauma'.blvl) + skill('Inferno Sentry'.blvl)) * par7 fire 16 5 7 9 11 13 20 6 8 10 12 14 (skill('Fire Trauma'.blvl) + skill('Inferno Sentry'.blvl)) * par7 3 896 80000 +Blade Shield 277 ass blade shield 28 54 par4 blade shield attachment 33667 bladeshield ln12 par4 assassin_bladeshield 1 0 none SC SC SC 1 24 20 Blade Fury 1 8 27 2 1 1 1 par3 - (blvl / 2) 7500 duration 125 duration per level 20 delay 4 radius to attack in 10 damage synergy 1 40 15 32 3 8 32 1 5 7 10 13 16 30 5 7 10 13 16 (skill('Blade Sentinel'.blvl)+skill('Blade Fury'.blvl))*par8 1 768 60000 +Venom 278 ass venom 18 venomclaws ln12 poisonmindam edns poisonmaxdam edxs skill_poison_override_length edln assassin_venom 1 0 none SC SC SC 1 1 30 20 Fade 1 8 12 0 1 1 7500 duration 125 duration per level 0 ? 0 ? 0 ? 0 ? 14 damage synergy 1 5 pois 24 6 10 14 18 22 32 6 10 14 18 22 (skill('Cobra Strike'.blvl)) * par8 25 1 896 80000 +Shadow Master 279 ass shadow master 49 shadowwarrior tohit lvl*par2 strength lvl*10 dexterity lvl*10 fireresist dm34 coldresist dm34 lightresist dm34 poisonresist dm34 shadowmaster shadowwarrior 1 + stat('extra_shadow'.accr) NU assassin_summon 1 0 none SC SC SC 1 30 20 Shadow Warrior 50 1 7 70 1 1 1 ln56 item quality 5 Pluse % HP per level 40 plus to hit per level 5 Min % resist all 90 Max % resist all 24 base item quality level 3 item quality per level 1 8 3 896 80000 +Royal Strike 280 ass royal strike 23 170 1 40 143 41 par6 par5 3 royalstrikemeteorcenter royalstrikechainlightning royalstrikechaosice progressive_other 7500 par1 progressive_other progressive_tohit par7 14 83 15 royalstrikemeteorcenter royalstrikechainlightning royalstrikechaosice 1 0 h2h asm A1 A1 A1 1 1 1 1 30 20 Cobra Strike Blades of Ice 1 1 8 4 0 1 1 par2 8 radius of jump to next target 6 radius of meteor explosion 25 Frames of fire Frames of fire per level 24 chaos ice bolts 10 chain lightning skip 25 to hit bonus per charge up 1 160 10 8 128 4 -3 896 80000 +Wake Of Destruction Sentry 281 125 wake of destruction maker 70 wake of destruction maker 1 0 none SQ SQ S2 1 1 1 par8 shots fired 6 Number of missiles 2 Number of missiles per level 2 Min Range 5 Shots Fired 1 8 0 +Imp Inferno 282 59 126 impinfernoflame1 71 impinfernoflame1 impinfernoflame2 8 z offset lvl-1 range 1 0 none SQ SQ SC 6 1 1 1 "rand(par3,par4)" len lvl-1 range 30 base ranged (doubled) 3 level range (doubled) 100 min frames 120 max frames 1 4 fire 18 15 15 15 15 15 37 15 15 15 15 15 0 +Imp Fireball 283 impfireball 1 sorceress_cast_fire fire_cast_2 72 impfireball 40 z offset 1 0 none SQ SQ S2 1 1 1 1 8 0 +Baal Taunt 284 28 baal taunt control monster_baal_taunt_1 46 baal taunt control 1 0 none SQ SQ A1 1 1 1 3 45 45 Delay in poison clouds 3 Delay in lightning 1 8 0 +Baal Corpse Explode 285 141 ln34 82 1 0 none SQ SQ S3 1 1 1 1 % of base monster HP min damage 1 % of base monster HP max damage 6 radius (half squares) for damage 1 additional radius/level (half squares) for damage 40 Radius of search for corpses 1 8 0 +Baal Monster Spawn 286 baal spawn monsters 1 baal_summon baal spawn monsters 1 0 none SQ SQ S3 1 1 1 1 8 0 +Catapult Charged Ball 287 8 catapultchargedball catapultchargedball 47 catapultchargedball catapultchargedball 16 fall rate 1 0 none SQ SQ A1 1 1 1 4 Charged bolts per level 1 8 0 +Catapult Spike Ball 288 28 catapult spike ball 47 catapult spike ball 16 fall rate 1 0 none SQ SQ A1 1 1 1 ln12 20 Spikes to launch 5 Spikes per level 1 8 0 +Suck Blood 289 60 127 1 0 none SQ SQ A1 1 1 1 par1 heal% 25 Percent life to boss 1 8 1 3 0 +Cry Help 290 128 curseattract 1 0 none SQ SQ S1 1 1 ln12 duration 100 Time for minions to attack target 20 Time per level 1 8 0 +Healing Vortex 291 healing vortex healing vortex 1 0 none SQ SQ S2 1 1 1 1 8 10 5 5 5 5 5 20 5 5 5 5 5 0 +Teleport 2 292 98 48 73 1 0 none SQ SQ S1 1 1 1 1 8 0 +Self-resurrect 293 61 38 1 0 none SQ SQ S1 1 1 1 1 8 0 +Vine Attack 294 130 plague vines slowed velocitypercent -100 druidpod_attack_1 druidpod_walk1_1 druidpod_neutral_1 49 vine beast attack vines vine beast walk 1 vine beast neutral "min(12,ln12)" #vines 35 delay 6 min dist between missiles 1 0 none SQ SQ S1 1 1 1 "min(24,ln12)" # missiles 20 frames to apply aura to target 3 Number of vines 1 vines per level 1 8 0 +Overseer Whip 295 131 bloodlust par2 velocitypercent par3 attackrate par4 skill_armor_percent par5 damagepercent par6 suicideminion1 S1 33 1 0 none SQ SQ A2 1 1 1 par1 chance 65 Chance Bloodlust 250 Bloodlust duration 80 Velocity change 80 Speed change 50 Armor change 100 Damage change 1 8 0 +Barbs Aura 296 65 65795 barbscontrol barbs ln12 item_attackertakesdamage edmn item_deadlystrike 7+lvl item_maxdeadlystrike blvl/4 1 0 none SQ SQ A1 1 1 1 1 30 Radius 2 radius per level 50 thorns damage back 20 thorns damage back per level 1 deadly strike per level 5 dmg synergy 1 8 15 8 16 32 48 64 (skill('Cycle of Life'.blvl)) * par6 0 +Wolverine Aura 297 65 65795 wolverinecontrol wolverine ln12 item_tohit_percent ln34 damagepercent ln56 1 0 none SQ SQ A1 1 1 1 1 30 Radius 2 radius per level 25 % attack rating bonus 10 % attack rating bonus per lvl 25 % damage increase 10 % damage increase per level 1 8 0 +Oak Sage Aura 298 65 65795 oaksagecontrol oaksage ln12 maxhp edmx * 256 hitpoints (stat('pvp_disable'.accr)>0)?0:(edmn+(skill('Cycle of Life'.blvl)+skill('Vines'.blvl)) * 12) 1 0 none SQ SQ A1 1 1 1 1 30 Radius 2 radius per level 0 hitpoints 0 hitpoint bonus per level 1 8 12 4 4 5 5 5 50 12 14 16 18 20 0 +Imp Fire Missile 299 132 impmiss21 sorceress_cast_fire fist_will_cast impmiss21 1 0 none A1 A1 A1 1 1 lvl-1 range adder ? ? ? ? ? ? 1 8 0 +Impregnate 300 133 painworm1 NU 1 0 none S1 S1 S1 1 1 1 ? ? ? ? ? ? 1 8 0 +Siege Beast Stomp 301 134 par5 siege_beast_dust 75 0 none A2 A2 A2 1 1 1 8 screen shake magnitude 5 screen shake bulid 20 screen shake duration 15 screen shake fade 25 radius of effect ? 1 1 8 20 10 10 10 10 10 60 10 10 10 10 10 0 +MinionSpawner 302 62 135 spawnedminion 1 0 none A1 A1 A1 1 1 ? ? ? ? ? ? 1 8 0 +CatapultBlizzard 303 28 catapult cold ball 47 catapult cold ball 16 fall rate 1 0 none A1 A1 A1 1 1 ? ? ? ? ? ? 1 8 0 +CatapultPlague 304 28 catapult plague ball 47 catapult plague ball 16 fall rate 1 0 none A1 A1 A1 1 1 ? ? ? ? ? ? 1 8 0 +CatapultMeteor 305 28 catapult meteor ball par1 47 catapult meteor ball 16 fall rate 1 0 none A1 A1 A1 1 1 5 radius of explosion ? 50 duration base 3 duration/level ? ? 1 8 0 +BoltSentry 306 17 sentrychargedbolt 23 sentrychargedbolt 1 0 none SC SC xx 1 1 "min((4 + blvl/4), 10)" # bolts par8 + skill('Lightning Sentry'.blvl)/4 shots fired 5 Bolts to send out 0 Bolts to send out per level 5 Shots Fired 1 8 0 +CorpseCycler 307 67 recycler delay 73731 40 49 93 vine beast attack recycler delay 1 0 none SQ SQ S1 1 1 1 1 ln12 + (skill('Oak Sage'.blvl)+skill('Vines'.blvl)) * par8 / 3 min heal ln34 + (skill('Oak Sage'.blvl)+skill('Vines'.blvl)) * par8 max heal 6 heal stat (hp) 20 min heal 4 min heal per level 40 max heal 12 max heal per level 6 Synergy extra healing 1 5 2 8 0 +DeathMaul 308 136 death mauler 76 death mauler death mauler trail 1 0 none A1 A1 xx 1 1 96 missile animrate ? ? ? ? ? ? 1 8 10 4 4 4 4 4 20 4 4 4 4 4 0 +Defense Curse 309 30 3 defense_curse ln34 ln12 skill_armor_percent -ln56 18 30 curseeffectred cursecast 1 0 none SC SC S2 1 1 3 radius 1 radius per level 300 duration 0 additional duration/level 50 % defense 5 % defense/lvl 1 0 +Blood Mana 310 30 3 blood_mana ln34 ln12 18 30 curseeffectred cursecast 1 0 none SC SC S2 1 1 3 radius 1 radius per level 300 duration 0 additional duration/level 40 Max hitpoints to remove curse 1 8 10 4 4 4 4 4 20 4 4 4 4 4 0 +mon inferno sentry 311 53 95 inferno sentry 1 52 77 inferno sentry 1 inferno sentry 2 -37 z offset 1 0 none SQ SQ xx 1 1 20 range 25 length of fire 3 density par8 shots fired 5 frame length 20 range times two 10 damage synergy 5 Shots fired 1 8 0 +mon death sentry 312 55 ln34 necromancer_corpseexp_1 death_sentry 50 78 corpseexplosion deathsentryexplode 1 0 none SQ SQ xx 1 1 1 par1 damage % par2 damage % 50 fire % 500 shots fired 3 % of base monster HP min damage 5 % of base monster HP max damage 42 radius (half squares) 0 additional radius/level (half squares) 9 damage synergy 10 Shots Fired 1 8 16 3 5 7 9 11 20 4 6 8 10 12 (skill('Fire Trauma'.blvl) + skill('Inferno Sentry'.blvl)) * par7 fire 16 3 5 7 9 11 20 4 6 8 10 12 (skill('Fire Trauma'.blvl) + skill('Inferno Sentry'.blvl)) * par7 0 +Sentry Chain Lightning 313 26 sentrychainlightningbolt sentrychainlightningbolt sentrychainlightningbolt par7 27 sentrychainlightningbolt sentrychainlightningbolt sentrychainlightningbolt 1 0 none SQ SQ xx 1 1 1 par4 # chains par8 shots fired 10 minimum damage 20 max damage 4 increase in dam/level (min & max) 8 # chains 20 chain radius 7 Shots Fired 1 8 0 +fenris rage 314 137 fenris_rage par1 damagepercent par2 necromancer_corpseexp_1 51 79 corpseexplosion 1 0 none A1 A1 A1 1 1 1 1 500 rage duration - see fenris rage 100 % damage with rage - see fenris rage 1 8 0 +Baal Tentacle 315 140 1 0 none S2 S2 S2 1 1 1 ? ? ? ? 1 0 +Baal Nova 316 22 baal nova baal_novacast fire_cast_2 25 baal nova 1 0 none S3 S3 S3 1 1 1 8 fire 50 24 32 32 32 32 75 24 32 32 32 32 0 +Baal Inferno 317 53 95 baal inferno baal_missilecast 54 baal inferno 1 0 none SQ SQ xx 1 1 par1 length of fire 2 density 20 frame length ? 1 5 mag 64 48 48 48 48 48 96 48 48 48 48 48 0 +Baal Cold Missiles 318 139 baal cold maker baal_coldtrailcast 81 baal cold maker 1 0 none A1 A1 A1 1 1 1 1 8 cold 20 9 13 13 13 13 40 9 13 13 13 13 200 50 50 50 0 +MegademonInferno 319 53 95 megademoninferno 54 fetishinferno1 fetishinferno2 1 0 none SQ SQ S1 1 1 par1 length of fire 2 density 15 frame length 1 8 0 +EvilHutSpawner 320 49 91 spawnedflames 36 50 1 0 none SQ SQ xx 1 1 1 8 0 +CountessFirewall 321 24 countessfirewallmaker countessfirewall sorceress_cast_fire 26 countessfirewallmaker 1 0 none SQ SQ A1 1 1 1 0 +ImpBolt 322 17 imp charged bolt 23 imp charged bolt 1 0 none SQ SQ A1 1 1 lvl+2 #bolts 1 8 0 +Horror Arctic Blast 323 53 95 frozenhorror arcticblast1 54 frozenhorror arcticblast1 frozenhorror arcticblast1 1 0 none SQ SQ xx 18 1 1 par1 length of fire 2 density 15 frame length 1 8 0 +death sentry ltng 324 sentrylightningbolt2 sentrylightningbolt2 1 0 none SQ SQ xx 1 1 1 12 damage synergy 8 Shots Fired 1 8 0 +VineCycler 325 67 vine recycler delay 73731 40 49 93 vine beast attack recycler delay 1 0 none SQ SQ S1 1 1 1 1 ln12 + (skill('Oak Sage'.blvl)+skill('Cycle of Life'.blvl)) * par8 / 3 min mana heal ln34 + (skill('Oak Sage'.blvl)+skill('Cycle of Life'.blvl)) * par8 max mana heal 8 heal stat (mana) 20 min heal 4 min heal per level 40 max heal 12 max heal per level 6 Synergy extra healing 1 8 0 +BearSmite 326 32 2 druidbear_attack_1 1 9 h2h S1 S1 xx 1 1 1 1 ln34 damage % "max(250,ln12)" stunlen 15 Stun Length 5 additional frames/level 15 Percent bonus damage 15 percent damage per level 1 8 8 128 0 +Resurrect2 327 97 healing 39 1 0 none SQ SQ xx 1 1 1 1 1 1 1 1 0 +BloodLordFrenzy 328 37 109 monfrenzy ln12 velocitypercent dm34 attackrate dm34 other_animrate dm34 weapon_giant_1 1 weapon_giant_1 1 3 none SQ SQ A2 1 1 1 1 1 200 duration 25 duration/level 30 min % speed increase 110 max % speed increase 1 10 10 8 128 0 +Baal Teleport 329 98 48 73 baalteleport 1 0 none SQ SQ S1 1 1 1 1 8 0 +Imp Teleport 330 129 attached sorceress_teleport 48 74 imp teleport imp teleport 1 0 none SQ SQ S1 1 1 1 1 8 0 +Baal Clone Teleport 331 98 48 73 baalclonedeath baalteleport 1 0 none SQ SQ S1 1 1 1 1 8 0 +ZakarumLightning 332 monsterlight sorceress_cast_lightning light_cast_1 monsterlight 1 0 none SQ SQ S1 1 1 1 8 0 +VampireMissile 333 firehead firehead 1 0 none SC SC SC 1 1 1 8 0 +MephistoMissile 334 mephisto mephisto 1 0 none SC SC A2 1 1 1 8 0 +DoomKnightMissile 335 148 undeadmissile1 94 undeadmissile1 1 0 none SC SC S1 1 1 1 8 0 +RogueMissile 336 110 rogue1 66 rogue1 1 0 none A1 A1 A1 1 1 1 8 0 +HydraMissile 337 hydra hydra 1 0 none SC SC SC 1 1 1 8 0 +NecromageMissile 338 149 necromage1 95 necromage1 1 0 none SC SC A1 1 1 1 8 0 +MonBow 339 4 cr_arrow6 11 cr_arrow6 1 0 rng A1 A1 A1 1 1 1 1 8 128 0 +MonFireArrow 340 4 firearrow 11 firearrow 1 0 rng A1 A1 A1 1 1 1 1 10 10 8 128 fire 1 8 8 8 8 8 4 9 9 9 9 9 0 +MonColdArrow 341 4 coldarrow 11 coldarrow 1 4 rng A1 A1 A1 1 1 1 1 10 10 8 128 cold 1 7 7 7 7 7 4 8 8 8 8 8 100 25 25 25 0 +MonExplodingArrow 342 4 explodingarrow 11 explodingarrow 1 5 rng A1 A1 A1 1 1 1 1 10 10 8 128 fire 2 8 8 8 8 8 6 9 9 9 9 9 0 +MonFreezingArrow 343 4 freezingarrow 11 freezingarrow 1 7 rng A1 A1 A1 1 1 1 par1 damage radius 5 Radius of impact 1 10 10 8 128 cold 2 7 7 7 7 7 6 8 8 8 8 8 100 25 25 25 0 +MonPowerStrike 344 6 2 1 4 h2h A1 A1 A1 1 1 1 1 1 1 1 20 15 8 128 ltng 1 0 0 0 0 0 16 12 12 12 12 12 0 +SuccubusBolt 345 4 succubusmiss 11 succubusmiss 1 0 rng SC SC S2 1 1 1 1 8 mag 10 2 4 6 6 6 15 2 5 7 7 7 0 +MephFrostNova 346 22 mephfrostnova mephfrostnova mephfrostnova sorceress_cast_cold 25 frostnova 1 6 none SC SC A2 1 1 1 9 radius of freeze 3 additional radius/level 1 8 cold 40 20 20 20 20 20 60 20 20 20 20 20 200 50 50 50 0 +MonIceSpear 347 6 2 1 4 h2h A1 A1 A1 1 1 1 1 1 1 1 20 15 8 128 cold 10 8 8 8 8 8 14 9 9 9 9 9 125 25 25 25 0 +ShamanIce 348 glacialspike ln34 * (100 + skill('Blizzard'.blvl) * par7) / 100 ln12 sorceress_cast_cold glacialspike 1 7 none SC SC xx 1 1 1 4 radius 0 radius per level 50 freeze frames 3 freeze frames per level 1 8 cold 4 10 14 14 14 14 12 10 15 15 15 15 125 50 50 50 0 +Diablogeddon 349 124 diablogeddoncontrol diablogeddoncontrol diablogeddoncontrol armageddon ln12 par3 druid_firecast_a 92 diablogeddontail diablogeddonrock 25 frames 25 fall rate 15 slide rate 1 0 none SC SC S3 1 1 1 1000 base duration 50 duration per level 8 radius to drop meteors 8 frame delay between rocks 1 8 4 4 6 8 10 12 16 4 7 9 12 14 fire 25 15 20 25 30 35 75 16 22 27 33 38 0 +Delerium Change 350 delerium change 116 delerium 1500 velocitypercent 33 attackrate 33 other_animrate 33 45 1 0 none SC SC NU 1 1 1 1 8 0 +NihlathakCorpseExplosion 351 17 55 "min(30,16+lvl)" 1 necromancer_corpse_cast necromancer_corpseexp_1 21 32 corpseexplosion explodingarrowexp redlightmissile 1 0 none SC SC xx 1 1 1 1 1 1 par1 % target hp min damage par2 % target hp max damage par5 % damage to do as elemental 10 % of base monster HP min damage 20 % of base monster HP max damage 50 % damage to do as elemental 1 8 fire 0 +SerpentCharge 352 31 67 25 37 1 2 none SQ A1 xx 4 1 1 1 1 150 percent increase in velocity 0 plus % damage 0 plus % dam per level 1 50 15 8 128 0 +Trap Nova 353 22 trapnova trapnova trapnova sorceress_cast_lightning light_cast_1 25 trapnova 1 2 none SC SC xx sorceress_cast_lightning 1 12 number of missiles 4 additional missiles per level 1 8 0 +UnHolyBoltEx 354 unholybolt1 unholybolt1 1 0 none SQ SQ xx 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +ShamanFireEx 355 shafire1 shafire1 1 0 none SQ SQ xx 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Imp Fire Missile Ex 356 impmiss21 sorceress_cast_fire fist_will_cast impmiss21 1 0 none A1 A1 A1 1 1 lvl-1 range adder ? ? ? ? ? ? 1 8 0 +Blink 357 blink 155 sorceress_teleport teleport 1 1 0 none SC SC xx 1 1 2 sorceress_teleport teleport 18 20 1 8 24 -1 1 0 debuff frames 0 base dmg reduction 1 8 640 60000 +proc_SplashDamage 358 proc skill (special, melee splash) 163 1 5 none A1 A1 xx 1 1 1 1 1 8 4 1 1 0 extra phys dmg% "max(6 - lvl + (stat('inc_splash_radius'.accr)/20), 0)" range 1 5 2 8 128 0 +RoguePierce 359 pierce skill_pierce 66 1 0 rng miss xx 1 1 1 1 66 min % chance 66 max % chance 1 8 0 +BattleOrdersCTA 360 battle orders 68 battleorders battleorders battleorders ln12+(skill('Shout'.blvl)+skill('Battle Command'.blvl))*par8 item_maxmana_percent ln34/2 item_maxhp_percent ln34/2 skill_staminapercent ln34/2 barbarian_battleorders_1 25 battleorders 1 9 none SC SC xx 1 24 20 1 8 7 0 1 750 duration 250 duration/level 35 Base % increase 3 Increase per level 125 duration synergy 1 50 10 8 768 70000 +ExtraDrop 361 14 144 tcextradrop none DT 17 1 7 none xx 1 1 1 1 1 250 duration 0 additional duration/level 1 7 0 +BloodRavenImmo 362 immolation arrow 4 bloodravenimmolationarrow 11 immolationarrowBloodraven 1 6 rng miss A1 A1 xx 1 1 1 1 1 7 12 1 1 par1 fire disc radius par2 damage radius 3 Fire disc radius 4 Radial Damage Radius 10 damage synergy 1 30 9 8 128 fire 1 50 100 4 6 8 2 50 100 4 6 8 0 +DollMeteor 363 169 dollmeteorcenter dollmeteorcenter dollmeteorcenter ln12 105 dollmeteorcenter 1 6 none SC SC xx 4 1 1 1 1 7 34 1 1 ln12 radius 4 radius of explosion 0 radius per level 0 Frames of fire 0 Frames of fire per level 5 damage synergy 1 8 18 36 24 48 48 49 30 66 24 48 48 50 0 +Holy Nova 364 pal holy nova 22 holynova holynova holynova paladin_holybolt_cast cast_undead 25 holynova ln12 + (skill('Prayer'.blvl) + skill('Holy Light'.blvl)) * par7 min heal ln12 + (skill('Prayer'.blvl) + skill('Holy Light'.blvl)) * par7 max heal 1 2 none SC SC xx 1 1 183 10 1 paladin_holybolt_cast 30 20 Fist of the Heavens Holy Sword 100 1 1 8 20 1 1 100 min hitpoints healed 20 hitpoints healed per level 8 damage synergy1 10 heal synergy 15 damage synergy2 1 8 mag 8 8 10 13 16 20 16 8 11 15 18 23 (skill('Fist of the Heavens'.blvl)+skill('Holy Bolt'.blvl))*par8 896 80000 +Shattering Arrow 365 ama shattering arrow 4 shatteringarrow 11 shatteringarrow 1 6 rng miss A1 A1 xx 1 24 20 Ice Arrow 1 1 1 7 12 1 1 par1 fire disc radius par2 damage radius 3 Fire disc radius 4 Radial Damage Radius 12 damage synergy 1 30 9 8 128 cold 12 12 23 34 36 38 23 12 23 34 36 38 skill('Ice Arrow'.blvl)*par8 + (skill('Cold Arrow'.blvl)+skill('Freezing Arrow'.blvl)) * (par8/2) 896 80000 +Lightning Sentry 366 ass lightning sentry 45 passive_ltng_mastery stat('passive_ltng_mastery'.accr) lightningsentry assassintrap 5 S1 Sentry Lightning lvl Fire Trauma skill('Fire Trauma'.blvl) Charged Bolt Sentry skill('Charged Bolt Sentry'.blvl) Chain Lightning Sentry skill('Chain Lightning Sentry'.blvl) assassin_summon 1 0 rng S2 S2 S2 1 4 24 20 Charged Bolt Sentry 1 1 5 56 1 1 7 Shots fired 16 damage synergy 1 8 ltng 7 3 4 5 7 8 30 15 21 27 33 39 (skill('Fire Trauma'.blvl) + skill('Charged Bolt Sentry'.blvl) + skill('Chain Lightning Sentry'.blvl))*par8 3 768 60000 +Blood Warp 367 nec blood warp 66 157 bloodwarp 125 hpregen 1 necromancer_golem_cast blood_warp 56 1 1 1 none SC SC xx 1 2 24 20 BloodGolem "max(150 - lvl * 5, 0)" 1 1 8 10 0 1 12 - stat('blood_warp_life_reduction'.accr) %max hp drain "min(ln34 * 256,15360)" minimum flat life cost 12 %max hp drain 0 %max hp drain per level 2 minimum flat life cost 2 min flat life per level 1 8 640 40000 +Deep Wounds 368 bar Deep Wounds deepwounds deep_wounds edmx item_openwounds par1 + (par2 * lvl / 2) 1 0 none SC SC xx 1 30 20 Iron Skin Increased Speed 0 8 0 0 1 1 5 Open Wounds % Base 1 open wounds % per level 4 damage synergy 1 8 80 20 28 36 44 52 (skill('Grim Ward'.blvl))*par8 384 10000 +Ice Barrage 369 sor ice barrage 8 icebarrage icebarrage ln34 * (100 + skill('Blizzard'.blvl) * par7) / 100 ln12 sorceress_cast_cold ice_cast_2 17 icebarrage icebarrage 1 7 none SC SC SC 1 sorceress_cast_cold 24 20 Glacial Spike 1 1 6 32 1 1 par5+(min(blvl/3,par6)) # missiles 7 radius 0 radius per level 0 freeze frames 3 freeze frames per level 3 number of missiles 2 maximum missile added 0 Acivation frame of teeth 8 damage synergy 1 7 cold 32 5 9 13 17 21 46 6 10 14 18 22 (skill('Ice Bolt'.blvl)+skill('Glacial Spike'.blvl))*par8 768 60000 +Gust 370 dru gust 156 gust par3 druid_windcast arctic_blast_cast 1 1 1 none SC SC xx 1 2 18 20 Cyclone Armor "max(163 - (lvl * 5 + stat('gustreduction'.accr)), 13)" 1 1 8 20 0 1 ln12 chill length par3 stun range 12 chill length 0 stun length per level 4 stun range 1 5 1 2 8 cold 640 40000 +Holy Light 371 pal holy light 176 holylight valkyriestart 6 paladin_holybolt_cast 36 holylightdelay holylightdelay ln12 + (skill('Prayer'.blvl) * par6) min heal ln34 + (skill('Prayer'.blvl) * par7) max heal 1 0 none SC SC xx 4 1 1 1 1 1 4 12 20 Holy Bolt 1 1 6 20 1 1 30 min heal 5 min heal per level 50 max heal 10 max heal per level 5 heal synergy min 10 heal synergy max 10 damage synergy 1 8 mag 7 2 6 13 21 30 9 3 8 15 23 36 (skill('Holy Bolt'.blvl)+skill('Fist of the Heavens'.blvl))*par8 512 20000 +amatemp2 372 ama attack 1 1 1 1 0 both weap tpot A1 A1 A1 1 1 1 1 1 1 1 1 0 8 0 0 1 1 1 1 8 128 0 +asatemp2 373 ass attack 1 1 1 1 0 both weap tpot A1 A1 A1 1 1 1 1 1 1 1 1 0 8 0 0 1 1 1 1 8 128 0 +CurMas 374 nec curse mastery curse_mastery max_curses blvl / 10 1 0 none SC SC xx 1 20 1 0 8 0 0 1 1 5 base duration increase 5 duration per level 1 base radius 1 raduis per level 1 8 256 5000 +Split Throw 375 bar Split Throw 189 splitthrowaxe splitthrowknife splitthrowjav 118 splitthrowaxe splitthrowknife splitthrowjav 1 7 rng comb TH TH xx 1 1 18 20 Double Throw Concentrate 1 1 1 6 6 1 1 par1+(min(lvl/5,par2)) # missiles 1 activation frame 3 triggered ln56 + (skill('Increased Speed'.blvl) + skill('Concentrate'.blvl))*par8 ED% 3 number of projectiles to fire 4 max additional projectiles 1 Acivation frame of arrows. 80 base dmg% 15 dmg% per level 12 damage synergy 1 40 15 8 128 0 +Combustion 376 sor combustion 159 combustion combustion combustion sorceress_cast_fire fire_cast_2 100 combustion 1 7 none SC SC xx 1 10 sorceress_cast_fire 24 20 Fire Ball 63 1 1 8 10 1 1 par1 # missiles 32 number of missiles 12 damage synergy 1 7 fire 24 12 16 20 24 28 56 14 18 22 26 30 (skill('Fire Bolt'.blvl) + skill('Fire Ball'.blvl))*par8 768 60000 +drutemp2 377 dru attack 1 1 1 1 0 both weap tpot A1 A1 A1 1 1 1 1 1 1 1 1 0 8 0 0 1 1 1 1 8 128 0 +Joust 378 pal joust 162 joust_buff 50 velocitypercent "min(3 + (2 * lvl), 65)" paladin_sacrifice dragonflight 1 1 1 none A1 A1 xx 1 1 1 2 24 20 Vengeance "max(104 - ((lvl * 5) / 2), 38)" - ((stat('joustreduction'.accr)) + (stat('joustreduction_leorics'.accr)) + (stat('joustreduction_zeraes'.accr))) 1 1 8 5 1 1 ln12 % ed ln34 % crit chance 40 % ed 8 % ed 10 % crit 2 %crit per level 1 120 16 8 128 768 60000 +amatemp3 379 ama attack 1 1 1 1 0 both weap tpot A1 A1 A1 1 1 1 1 1 1 1 1 0 8 0 0 1 1 1 1 8 128 0 +Blade Dance 380 ass blade dance 38 76 whirlwind velocitypercent "min(ln56, 65)" item_attackrate 100 1 barbarian_whirlwind 31 45 1 3 none 2 mele SQ A1 xx 10 1 1 30 20 Berserk 1 1 7 25 1 ln12 damage% 30 Damage percent per attack 4 Damage percent per level 5 damage frame delay 20 velocity added 2 velocity increase per level 1 200 15 8 128 896 80000 +Dark Pact 381 nec dark pact 30 darkpactaoe 3 dark_pact 1 par1 + skill('CurMas'.blvl) / 3 necromancer_curse_cast 18 30 curseamplifydamage cursecast 1 9 none SC SC S2 4 1 necromancer_curse_cast 6 20 AmpDmg 1 1 6 4 1 1 3 base aoe range (at 1 curse) 6 radius 1 radius per level 12 dmg synergy2 description 16 dmg synergy description 1 8 mag 3 2 3 4 6 8 4 3 4 6 8 10 (skill('CurMas'.blvl)+skill('Iron Maiden'.blvl))*16+(skill('AmpDmg'.blvl)+skill('Decrepify'.blvl)+skill('Confuse'.blvl)+skill('LowRes'.blvl)+skill('Terror'.blvl)+skill('Attract'.blvl)+skill('Dim Vision'.blvl)+skill('Life Tap'.blvl)+skill('Weaken'.blvl))*12 384 10000 +bartemp3 382 bar attack 1 1 1 1 0 both weap tpot A1 A1 A1 1 1 1 1 1 1 1 1 0 8 0 0 1 1 1 1 8 128 0 +Lesser Hydra 383 sor lesser hydra 14 144 passive_fire_mastery stat('passive_fire_mastery'.accr) lesserhydra1 hydra 9 S2 HydraMissile lvl Fire Bolt skill('Fire Bolt'.blvl) Hydra skill('Hydra'.blvl) 1 sorceress_cast_fire fire_cast_2 17 1 7 none SC SC S1 4 1 1 sorceress_cast_fire fire_cast_2 12 20 Warmth 1 1 7 20 1 1 125 duration 0 additional duration/level 12 firebolt synergy 12 hydra synergy 1 7 fire 7 6 14 24 34 34 13 8 16 26 36 36 skill('Fire Bolt'.blvl)*par7 + skill('Hydra'.blvl)*par8 512 20000 +drutemp3 384 dru attack 1 1 1 1 0 both weap tpot A1 A1 A1 1 1 1 1 1 1 1 1 0 8 0 0 1 1 1 1 8 128 0 +Merc Fire Arrow 385 fire arrow 4 mercfirearrow 11 mercfirearrow 1 0 rng miss A1 A1 xx 1 6 20 Magic Arrow 1 1 0 4 16 1 1 12 damage synergy 1 10 9 8 128 fire 2 2 6 12 24 48 8 5 6 14 28 54 (skill('Exploding Arrow'.blvl)+skill('Magic Arrow'.blvl)) * par8 256 30000 +Merc Cold Arrow 386 cold arrow 4 merccoldarrow 11 merccoldarrow 1 4 rng miss A1 A1 xx 1 6 20 Magic Arrow 1 1 0 4 16 1 1 18 damage synergy 1 10 9 7 128 cold 12 2 3 16 32 84 16 4 5 18 34 88 (skill('Ice Arrow'.blvl)+skill('Freezing Arrow'.blvl)) * par8 100 30 30 30 384 40000 +Raven Splash 387 ravensplash ravensplash 1 5 none A1 A1 A1 1 1 1 1 damage synergy 1 8 0 +Vampire Form 388 Vampire Form 116 monsterset 249975 passive_pois_mastery par3 item_fastercastrate par1 passive_mag_mastery par2 max_curses 1 item_healafterkill 10 wolf_into wolf_undo 45 1 0 none SC SC xx 1 1 1 20 1 18 1 1 8 15 0 1 40 Faster Cast Rate Bonus 30 magic damage bonus 20 poison damage bonus 0 % max speed increase 20 ed base 4 ed per level 1 0 0 8 128 256 5000 +Golem Splash 389 163 1 5 none A1 A1 A1 1 1 1 1 0 extra phys dmg% 4 range damage synergy 1 5 1 8 128 0 +KanemithBossBlaze 390 23 kanemithblaze2ignite kanemithblaze2trail kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium 73731 blaze 249975 item_cannotbefrozen 1 sorceress_cast_fire ice_cast_3 kanemithblaze2ignite kanemithblaze2trail kanemithblaze2dotfiresmall kanemithblaze2dotfiremedium 1 3 none SC SC xx 1 6 20 50 1 7 22 1 1 75 Min Frames 5 frames per level 65 min % speed increase 65 max % speed increase 1 2 cold 200 0 0 0 0 0 375 0 0 0 0 0 125 384 10000 +Lesser Fade 391 lesser fade 18 fade ln56 fireresist ln12 coldresist ln12 lightresist ln12 poisonresist ln12 curse_resistance ln34 damageresist ln78 fade 2 assassin_fade 1 0 none SC SC SC 1 1 1 20 1 8 10 0 1 1 2 min Elemental resistance 2 max elemental resist 10 min curse length reduction 2 max curse length reduction 750 duration 0 Duration per level 1 damage resist % 1 damage resist % per level 1 8 1 640 50000 +Sentry Lightning 392 sentrylightningbolt sentrylightningbolt 1 0 none SQ SQ xx 1 1 1 par8 shots fired 12 minimum damage 20 max damage 4 increase in dam/level (min & max) 7 Shots Fired 1 8 0 +Skeleton Splash 393 proc skill (special, melee splash) 163 1 5 none A1 A1 xx 1 1 1 1 1 8 4 1 1 0 extra phys dmg% 3 range 1 5 2 8 128 0 +Force Move 394 force move 69 167 54 103 0 h2h weap RN RN RN 1 1 1 1 0 8 0 0 1 1 1 8 128 0 +Immune Aura 395 65 73731 immune_give immune_give 80 immune_stat 1 1 1 8 none xx 30 20 0 8 0 0 1 1 1 50 16 radius 2 additional radius per level 50 min % resist 120 max % resist 1 8 25 4 3 2 1 1 5 2 2 1 1 1 896 80000 +Immune Passive 396 65 73731 immune_get 10 magicresist 200*stat('immune_stat'.accr)+1 lightresist 200*stat('immune_stat'.accr)+1 coldresist 200*stat('immune_stat'.accr)+1 fireresist 200*stat('immune_stat'.accr)+1 poisonresist 200*stat('immune_stat'.accr)+1 damageresist 200*stat('immune_stat'.accr)+1 1 1 8 none xx 1 20 0 8 0 0 1 1 1 25 16 radius 2 additional radius per level 35 min % resist 150 max % resist 1 8 45 4 3 2 1 1 5 3 3 2 2 2 256 30000 +MegademonInfernoBoss 397 53 95 megademoninfernoMapBoss 54 fetishinferno1 fetishinferno2 1 0 none SQ SQ S1 1 1 par1 length of fire 2 density 15 frame length 1 8 0 +MegademonBlazeBoss 398 23 megademonblazeMapBoss megademonblazeMapBoss megademonblazeMapBoss blaze ln12 item_fastermovevelocity ln34 sorceress_cast_fire fire_cast_2 blaze firewall firesmall firemedium 1 3 none SC SC xx 1 12 20 1 7 22 1 1 15000 Min Frames 25 frames per level 5 frw base 1 frw per level 1 damage synergy 4 damage synergy 1 4 fire 50 2 3 4 6 9 100 2 3 4 6 9 skill('Warmth'.blvl)*par8+skill('Fire Wall'.blvl)*par7 512 50000 +MegademonArmaBoss 399 124 armageddoncontrol armageddoncontrol armageddoncontrol armageddon ln12 + skill('Eruption'.blvl) * par7 par3 druid_firecast_a druid_fire_cast_2 92 armageddontail armageddonrock 20 frames 25 fall rate 15 slide rate 1 0 none SC SC xx 1 4 30 20 Volcano Hurricane 1 1 8 35 0 1 15000 base duration 0 duration per level 25 radius to drop meteors 4 frame delay between rocks 50 duration synergy 12 damage synergy 1 8 650 10 13 16 21 25 850 10 15 18 23 27 (skill('Fissure'.blvl)+skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*par8 fire 300 10 13 16 21 25 400 10 15 18 23 27 (skill('Fissure'.blvl)+skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*par8 896 80000 +FingermageBossNova 400 FingermageBossNova 159 fingermagebossteeth necromancer_bone_cast blood_warp 100 fingermagebossteeth fingermagebossteeth fingermagebossteeth 1 0 none S3 S3 S3 1 36 10 1 1 par1 # missiles 32 missiles 1 8 mag 450 0 0 0 0 0 500 0 0 0 0 0 0 +FingermageBossDiabWall 401 166 fingermagebosswallmaker diablo_fire_cast fire_cast_2 58 fingermagebosswallmaker 1 0 none SQ SQ S1 1 1 1 1 3 #missiles 0 ? 0 ? 0 ? 0 ? 1 8 mana 1000 0 0 0 0 0 1000 0 0 0 0 0 0 +FingermageBossShockWave 402 22 fingermagebossshockwave fingermagebossshockwave warcry 25 fingermagebossshockwave fingermagebossshockwave 1 0 none SC SC xx 1 18 20 1 1 8 7 0 1 16 # missiles 6 stun length 0 stun length per level 7 damage synergy 1 8 128 cold 2700 2700 768 70000 +CantorBossEruption 403 28 erruption center druid_firecast_a druid_fire_cast_2 28 erruption center 1 0 none SC SC xx 1 4 1 1 druid_firecast_a druid_fire_cast_2 12 20 Molten Boulder 13 1 8 10 0 1 par1 radius par2 - (blvl / 10) frequency 7 radius 6 Missile delay 0 Change duration in Missiles.xls 6 damage synergy 1 8 fire 15 6 12 16 18 22 25 6 12 16 19 23 (skill('Firestorm'.blvl)+skill('Molten Boulder'.blvl))*par8 512 50000 +CantorBossTornado 404 118 tornado 42371 3 druid_windcast 69 tornado 1 0 none SC SC xx 1 4 1 24 20 Twister 1 1 8 10 0 1 1 # missiles par1 damage delay 15 Frame delay between damage 4 Radius of damage 10 damage synergy 1 8 25 8 14 20 24 28 35 8 15 21 25 29 (skill('Arctic Blast'.blvl)+skill('Twister'.blvl)+skill('Hurricane'.blvl))*par8 768 70000 +UnravelerBossMultiShot 405 4 8 unravelerbossmultishot unravelerbossmultishot cast_undead 11 17 unravelerbossmultishot unravelerbossmultishot 1 7 rng miss A1 A1 xx 1 6 20 Magic Arrow 1 1 1 5 8 1 1 4+stat('immune_stat'.accr) # missiles par3 activation frame 0 triggered 4 number of arrows to fire 1 additional arrows per level 1 Acivation frame of arrows. 5 base dmg% 10 dmg% per level 8 damage synergy 1 10 9 8 128 0 0 0 0 0 0 0 0 0 0 0 0 384 40000 +UnravelerBossBuff 406 68 unravelershout shout shout 125 damagepercent 100 item_tohit_percent 500 25 unravelershout 1 8 none SC SC SC 1 1 6 20 1 1 8 6 0 1 100 % AC bonus for friendlies 10 % AC bonus per level 500 duration 250 duration/level 125 duration synergy 1 8 384 40000 +UnravelerMinionBuff 407 68 unravelershout battlecommand battlecommand 125 immune_stat 5 passive_pois_pierce 75 25 1 8 none SC SC SC 1 1 6 20 1 1 8 6 0 1 100 % AC bonus for friendlies 10 % AC bonus per level 500 duration 250 duration/level 125 duration synergy 1 8 384 40000 +BaalMinionBossBerserk 408 68 2 berserk 13 damageresist -"min(ln34, 30)" armor_override_percent -100 barbarian_grunt_large_1 1 1 4 h2h mele A1 A1 xx 1 1 1 1 24 20 Concentrate 1 1 8 4 0 1 ln12+(skill('Howl'.blvl) + skill('Shout'.blvl))*par8 damage% 15 phys pierce 150 Damage % base 15 Damage % per level 5 -phys res 1 -phys res per level 5 phys pierce 2 phys pierce per level 10 damage synergy 1 100 15 8 128 896 80000 +BaalMinionBossRabies 409 57 121 rabiesplague rabies 1 druidwerewolf_bite_1 1 0 h2h S3 S3 S3 1 1 1 1 18 20 Feral Rage 2 wolf 1 1 8 10 0 1 18 damage synergy 1 50 7 1 2 3 pois 700 4 5 7 11 16 775 4 5 7 11 16 (skill('Plague Poppy'.blvl)+skill('Feral Rage'.blvl))*par8 100 10 10 10 640 60000 +BaalMinionBossCharge 410 31 67 1 paladin_charge 25 37 1 2 none mele SQ A1 xx 4 8 1 1 1 1 12 20 Smite 1 1 8 9 0 ln34+(skill('Vigor'.blvl)+skill('Might'.blvl))*par8 damage % elem conversion% 150 percent increase in velocity 0 ? 100 plus % damage 25 plus % dam per level 2 Trails 0 ? 20 damage synergy 1 50 15 8 128 512 50000 +BaalMinionBossNova 411 22 baalminionbossnova baal_novacast warcry 25 baalminionbossnova 1 0 none S3 S3 S3 1 1 1 8 fire 750 800 0 +MonLeap 412 leap 40 77 leapknockback dm12 1 barbarian_leap_1 29 43 1 0 none SQ A1 xx 13 1 6 20 1 1 8 2 0 1 ln34 knockback radius 4 min distance 30 max distance 4 Knockback range 1 knockback range per level 1 8 384 40000 +MonJab 413 jab 5 7 amazon_jab_1 weapon_1ht_1 weapon_2ht_1 12 16 1 3 h2h spea SQ A1 xx 1 1 1 1 1 1 1 20 1 1 6 8 1 ln34 dmg% -15 Percent damage base 3 Percent damage per level 1 10 9 8 128 256 30000 +MonSmite 414 smite 150 weapon_2hs_large_1 1 1 9 h2h 4 shld S1 S1 xx 1 1 1 1 1 20 1 1 8 2 0 ln34 damage % "min(250,ln12)" stunlen 15 Stun Length 5 additional frames/level 15 Percent bonus damage 15 percent damage per level 1 8 8 256 30000 +MonCharge 415 charge 31 67 1 paladin_charge 25 37 1 2 none mele SQ A1 xx 4 8 1 1 1 1 12 20 Smite 1 1 8 9 0 ln34+(skill('Vigor'.blvl)+skill('Might'.blvl))*par8 damage % elem conversion% 150 percent increase in velocity 0 ? 100 plus % damage 25 plus % dam per level 2 Trails 0 ? 20 damage synergy 1 50 15 8 128 512 50000 +MonHolyFreeze 416 holy freeze 81 303747 holywind holywindcold ln12 velocitypercent -dm34 attackrate -dm34 other_animrate -dm34 coldmindam enms*par5/256 coldmaxdam exms*par5/256 1 8 none xx 18 20 Holy Fire 0 8 0 0 1 1 1 50 6 radius 1 additional radius per level 25 min% slowing 60 max% slowing 5 damage to attack multiplier 0 ? 7 damage synergy 15 damage synergy 1 16385 8 cold 2 1 2 3 4 5 3 1 2 3 4 5 skill('Resist Cold'.blvl)*par8+skill('Salvation'.blvl)*par7 640 60000 +MonGlacialSpike 417 glacial spike glacialspike ln34 * (100 + skill('Blizzard'.blvl) * par7) / 100 ln12 sorceress_cast_cold ice_cast_2 glacialspike 1 7 none SC SC SC 1 sorceress_cast_cold 18 20 Ice Blast 1 1 7 20 1 1 4 radius 0 radius per level 50 freeze frames 3 freeze frames per level 3 freeze synergy 5 damage synergy 1 7 cold 32 14 26 28 30 32 48 15 27 29 31 33 (skill('Ice Bolt'.blvl)+skill('Ice Blast'.blvl)+skill('Frozen Orb'.blvl))*par8 640 60000 +MonFrostNova 418 frost nova 22 frostnova frostnova frostnova sorceress_cast_cold ice_cast_2 25 frostnova 1 6 none SC SC SC 183 10 1 sorceress_cast_cold 6 20 1 8 9 1 1 9 radius of freeze 3 additional radius/level 10 damage synergy 1 7 cold 4 4 6 8 10 12 8 5 7 9 11 13 (skill('Blizzard'.blvl)+skill('Frozen Orb'.blvl))*par8 200 25 25 25 384 40000 +MonFireBall 419 fire ball fireball sorceress_cast_fire fire_cast_2 fireball 1 5 none SC SC xx 1 sorceress_cast_fire 12 20 Fire Bolt 1 1 7 10 1 1 14 damage synergy 1 7 fire 12 13 23 28 33 38 28 15 25 30 35 40 (skill('Fire Bolt'.blvl)+skill('Meteor'.blvl))*par8 512 50000 +MonWeaken 420 weaken 30 3 weaken ln34 ln12 damagepercent -par5 necromancer_curse_cast 18 30 curseweaken cursecast 1 9 none SC SC SC 4 1 necromancer_curse_cast 6 20 Amplify Damage 1 8 4 0 1 9 radius 1 radius per level 300 duration additional duration/level 50 -% damage target can do 1 8 384 40000 +MonHydra 421 hydra 14 144 passive_fire_mastery stat('passive_fire_mastery'.accr) passive_fire_pierce stat('passive_fire_pierce'.accr) monhydra1 hydra 99 S2 HydraMissile lvl Fire Bolt skill('Fire Bolt'.blvl) Fire Ball skill('Fire Ball'.blvl) 1 sorceress_cast_fire fire_cast_2 17 1 7 none SC SC S1 4 1 1 sorceress_cast_fire fire_cast_2 30 20 Enchant 40 1 7 40 1 1 250 duration 0 additional duration/level 3 damage synergy 1 7 fire 28 11 15 19 23 27 39 13 17 21 25 29 (skill('Fire Bolt'.blvl) + skill('Fire Ball'.blvl))*par8 896 64000 +MonLightning 422 lightning lightningbolt sorceress_cast_lightning light_cast_1 lightningbolt 1 6 none SQ SC xx 12 1 1 sorceress_cast_lightning 12 20 Charged Bolt 1 1 7 16 1 1 10 minimum damage 20 max damage 4 increase in dam/level (min & max) 8 damage synergy 1 8 ltng 1 0 0 0 0 0 40 8 12 20 28 36 (skill('Charged Bolt'.blvl)+skill('Chain Lightning'.blvl)+skill('Nova'.blvl))*par8 512 50000 +Fixed Siege Beast Stomp 423 22 siege beast stomp missile siege beast stomp missile siege beast stomp missile siegebeast_attack_1 siege_beast_dust 25 siege beast stomp missile 1 0 none A2 A2 A2 1 1 1 1 1 8 20 10 10 10 10 10 60 10 10 10 10 10 0 +MonAmplifyDamage 424 30 3 amplifydamage ln34 ln12 damageresist -par5 necromancer_curse_cast 18 30 curseamplifydamage cursecast 1 10 none SC SC S2 4 1 necromancer_curse_cast 1 20 1 8 4 0 1 3 radius 1 radius per level 300 duration additional duration/level 50 % additional damage taken 1 8 256 30000 +MonWhirlwind 425 whirlwind 38 76 whirlwind 1 barbarian_whirlwind 31 45 1 3 none 2 mele SQ A1 xx 10 1 1 1 30 20 Leap Attack Concentrate 1 1 7 25 1 ln12 damage% -74 Damage percent per attack 8 Damage percent per level 1 Attacks per tick 1 5 8 128 896 80000 +MonShout 426 shout 68 shout shout shout ln34+(skill('Battle Orders'.blvl)+skill('Battle Command'.blvl))*par8 skill_armor_percent ln12 barbarian_shout_1 25 shout 1 8 none SC SC SC 1 6 20 Howl 1 8 6 0 1 100 % AC bonus for friendlies 10 % AC bonus per level 500 duration 250 duration/level 125 duration synergy 1 8 384 40000 +MonDecrepify 427 decrepify 30 3 decrepify ln34 ln12 velocitypercent par5 attackrate par5 item_fastercastrate par5 item_leap_speed par5 damageresist -10 necromancer_curse_cast 18 30 cursedecrepify cursecast 1 9 none SC SC S2 4 1 necromancer_curse_cast 24 20 Terror 1 8 11 0 1 6 radius 0 radius per level 300 duration additional duration/level -30 "% slowed, -dam, -dam resist" 1 8 768 70000 +MonChainLightning 428 chain lightning 26 chainlightning chainlightning chainlightning par1 sorceress_cast_lightning light_cast_1 27 chainlightning chainlightning chainlightning 1 2 none SQ SC SC 12 1 151 96 sorceress_cast_lightning 18 20 Lightning 1 1 8 9 1 1 ln34 / 5 # hits 20 radius of jump to next target 26 bolts (5ths) 1 bolts per level (5ths) 5 5ths 4 damage synergy 1 8 ltng 1 0 0 0 0 0 40 11 13 15 15 15 (skill('Charged Bolt'.blvl)+skill('Lightning'.blvl)+skill('Nova'.blvl))*par8 640 60000 +MonChillingArmor 429 chilling armor 18 chillingarmorbolt chillingarmor ln34+(skill('Frozen Armor'.blvl)+skill('Shiver Armor'.blvl))*par7 skill_armor_percent ln12 hitbymissile 1 sorceress_cast_cold sorceress_shiverarmor ice_cast_3 chillarmor_hit chillingarmorbolt 1 5 none SC SC xx 1 sorceress_cast_cold 24 20 Shiver Armor 1 8 17 0 1 1 45 % AC Bonus 5 % AC bonus per level 3600 duration 150 duration per level 250 duration synergy 7 damage synergy 1 7 cold 8 2 4 6 8 10 12 3 5 7 9 11 (skill('Frozen Armor'.blvl)+skill('Shiver Armor'.blvl))*par8 100 25 25 768 70000 +UberDiabloMeteor 430 meteor 28 ubermeteorcenter par1 sorceress_meteor fire_cast_2 28 ubermeteorcenter 1 0 none SQ SQ SC 1 1 ln12 3 radius of explosion 0 radius/level 5 Frames of fire 0 Frames of fire per level 1 8 125 0 20 20 20 20 175 0 29 29 29 29 fire 725 0 120 120 120 120 900 0 150 150 150 150 0 +UberDiabloBoulder 431 immolation arrow 4 10 uberimmolationarrow druid_firecast_b warcry 11 18 uberimmolationarrow 1 6 1 none A1 A1 xx 1 30 20 Exploding Arrow 1 1 7 12 1 1 par1 fire disc radius par2 damage radius 3 Fire disc radius 4 Radial Damage Radius 8 damage synergy 1 8 fire 0 0 0 0 0 0 0 0 0 0 0 0 768 70000 +UberDiabWall 432 166 uberwallmaker diablo_fire_cast 58 uberwallmaker 1 0 none SQ SQ S1 1 1 1 1 lvl #missiles 0 ? 0 ? 0 ? 0 ? 1 8 0 +UberDiabLight 433 53 152 uberdiablight diablo_laser_cast 40 56 uberdiablight 0 interval 1 0 none SQ SQ SC 1 1 1 100 length of fire 2 density 40 frame length 0 ? 0 ? 0 ? 1 8 0 +UberDiabCold 434 100 diablo_cold_cast 1 0 none SQ SQ S2 1 1 1 0 ? 200 Frames 0 ? 0 ? 1 8 87 0 15 15 15 15 121 0 20 20 20 20 cold 87 0 15 15 15 15 121 0 20 20 20 20 5000 50 50 50 0 +UberDiabFire 435 22 uberdiabfire diablo_fire_cast 25 uberdiabfire 1 0 none SQ SQ S1 1 1 1 0 ? 0 ? 0 ? 0 ? 1 8 0 +UberDiabSuperFire 436 22 ubernova diablo_fire_cast 25 ubernova 1 0 none SQ SQ S1 1 1 1 0 ? 0 ? 0 ? 0 ? 1 8 cold 1250 0 208 208 208 208 1350 0 225 225 225 225 stat('passive_cold_mastery'.accr) 5000 0 +WispBossChainLightning 437 chain lightning 26 wispbosschainlightning wispbosschainlightning wispbosschainlightning par1 sorceress_cast_lightning light_cast_1 27 wispbosschainlightning wispbosschainlightning wispbosschainlightning 1 2 none SQ SC SC 12 1 151 96 sorceress_cast_lightning 24 20 Lightning 1 1 7 16 1 1 8 # hits 20 radius of jump to next target 26 bolts (5ths) 1 bolts per level (5ths) 5 5ths 5 damage synergy 1 8 ltng 400 0 0 0 0 0 500 0 0 0 0 0 640 60000 +WispMinionLightning 438 lightning wispminionlightningbolt sorceress_cast_lightning light_cast_1 wispminionlightningbolt 1 6 none SQ SC xx 12 1 1 sorceress_cast_lightning 12 20 Charged Bolt 1 1 7 16 1 1 10 minimum damage 20 max damage 4 increase in dam/level (min & max) 6 damage synergy 1 8 ltng 200 0 0 0 0 0 300 0 0 0 0 0 512 50000 +WispTotemConviction 439 conviction 66 42371 conviction conviction ln12 maxlightresist -5 lightresist -45 1 6 none mele xx 5 1 30 20 Sanctuary 0 8 0 0 1 1 1 25 20 radius 0 additional radius per level 12 % resist reduction 2 % resist reduction per level 10 min % AC reduction 75 max % AC reduction 1 8 896 64000 +MonLeapAttack 440 leap attack 41 78 bash 1 barbarian_leapattack_1 30 44 1 6 none mele SQ A1 xx 14 1 1 18 20 Leap 1 1 8 9 0 1 ln34+skill('Leap'.blvl)*par8 4 min distance 30 max distance 100 Min % damage bonus 30 % damage bonus 4 Knockback range 2 knockback range per level 10 damage synergy 1 50 15 8 128 640 16000 +FingerMageBossSpider 441 101 fingermagebossspider fingermagecurse ln12 manarecovery -(par3 * lvl) fingermage_bolt_cast_1 57 fingermagespider 1 0 none SQ SQ S1 1 1 lvl-1 #subloops 10 base frames 0 frames per level 120 unshifted damage per frame 0 ? 1 8 0 +AmpDmg Proc 442 amplify damage proc 30 3 amplifydamage ln34 par1 damageresist -(par5 + par6*lvl) necromancer_curse_cast 18 30 curseamplifydamage cursecast 1 10 none SC SC S2 4 1 necromancer_curse_cast 1 20 1 1 7 4 1 1 14 radius 1 radius per level 150 duration 5 additional duration/level 10 % additional damage taken 1 increase per base level 1 8 256 30000 +Weaken Proc 443 weaken proc 30 3 weaken ln34 par1 damagepercent -ln56 necromancer_curse_cast 18 30 curseweaken cursecast 1 9 none SC SC SC 4 1 necromancer_curse_cast 18 20 1 7 8 1 1 17 radius 1 radius per level 250 duration 35 additional duration/level 10 % damage reduc 1 % damage reduc per level 1 8 384 40000 +Iron Maiden Proc 444 iron maiden proc 30 3 ironmaiden ln34 par1 domeleedamage 4 necromancer_curse_cast 18 30 curseironmaiden cursecast 1 9 none SC SC S2 4 1 12 20 1 7 10 1 1 ln56 % damage to return (ln56) / 4 % damage to return vs. players (ln56) / 4 % damage to return other 17 radius 0 radius per level 150 duration 30 additional duration/level 200 % damage returned to accursed 25 % additional returned/level 6 damage synergy 1 16385 141 8 512 50000 +Life Tap Proc 445 life tap proc 30 3 lifetap "min(ln34, 500)" par1 damagedinmelee 5 damagedbymissile 5 necromancer_curse_cast steallife 18 30 cursereversevampire cursecast 1 4 none SC SC S2 4 1 necromancer_curse_cast 12 20 1 7 8 1 1 par5 + par6 * lvl hp % returned 11 radius 1 radius per level 175 duration 35 additional duration/level 8 % damage healed 1 % additional heal/level 1 8 640 60000 +Decrepify Proc 446 decrepify proc 30 3 decrepify ln34 par1 velocitypercent -(par5 + lvl) attackrate -(par6 + lvl) item_fastercastrate -(par6 + lvl) item_leap_speed -(par6 + lvl) damageresist -10 necromancer_curse_cast 18 30 cursedecrepify cursecast 1 9 none SC SC S2 4 1 necromancer_curse_cast 24 20 1 7 22 1 1 17 radius 1 radius per level 100 duration 10 additional duration/level 10 movespeed 15 attack/cast speed 1 8 768 70000 +LowRes Proc 447 lower resist proc 30 3 lowerresist ln34 par1 fireresist -1 * (par5 + par6*lvl) lightresist -1 * (par5 + par6*lvl) coldresist -1 * (par5 + par6*lvl) poisonresist -1 * (par5 + par6*lvl) necromancer_curse_cast 18 30 curselowerresist cursecast 1 8 none SC SC S2 4 1 necromancer_curse_cast 30 20 1 7 44 1 1 14 radius 1 radius per level 200 duration 25 additional duration/level 10 min % resist lower 1 -% per level 1 8 896 80000 +Iceboss Freezing Arrow 448 freezing arrow 4 freezingarrow par1+(blvl / 4) 11 freezingarrow 1 7 1 rng miss A1 A1 xx 1 30 20 Ice Arrow 1 1 1 6 18 1 1 par1 damage radius 8 Radius of impact 6 damage synergy2 0 length synergy 6 damage synergy 1 40 10 8 128 cold 35 10 15 20 25 30 55 10 15 20 25 28 (skill('Ice Arrow'.blvl))*par8 + skill('Cold Arrow'.blvl)*par6 25 896 80000 +Iceboss Blizzard 449 blizzard 28 blizzardcenter blizzardcenter blizzardcenter sorceress_cast_cold ice_cast_3 28 blizzardcenter 1 7 none SC SC xx 4 1 1 sorceress_cast_cold ice_cast_3 24 20 Frost Nova Glacial Spike 25 1 1 7 26 1 1 par1 radius par3 frequency 7 radius 2 Missile delay 0 Change duration in Missiles.xls 12 damage synergy 1 8 cold 15 3 6 9 12 15 25 5 8 11 14 17 (skill('Ice Bolt'.blvl)+skill('Glacial Spike'.blvl))*par8 100 768 70000 +Lightning Strike Cowboss 450 lightning strike 10 14 lightningstrike lightningstrike lightningstrike par1 22 lightningstrike lightningstrike lightningstrike 1 8 h2h A1 A1 xx 1 1 1 1 30 20 Charged Strike 1 1 6 24 1 1 20 radius "min(ln34,12)" hits 20 radius of jump to next target 4 Target hits 1 Target hits per level 14 damage synergy 1 8 ltng 1 0 0 0 0 0 1000 0 0 0 0 0 (skill('Charged Strike'.blvl)+skill('Power Strike'.blvl)) * par8 896 80000 +Poison Nova Tomb Boss 451 poison nova 22 poisonnova necromancer_poison_cast 25 poisonnova 1 3 none SC SC xx 1 necromancer_poison_cast 30 20 Desecrate 1 1 8 20 0 1 15 damage synergy 1 4 pois 16 4 6 10 16 24 29 4 6 10 16 24 (skill('Poison Dagger'.blvl)+skill('Desecrate'.blvl))*par8 50 896 80000 +Power Strike Tomb Boss 452 power strike 10 14 powerstrikenova1 powerstrikenova1 powerstrikenova1 20 22 powerstrikenova1 powerstrikenova1 powerstrikenova1 1 4 h2h spea A1 A1 xx 1 1 1 1 6 20 Jab 1 1 4 32 3 1 1000 radius 0 hits 20 damage synergy 1 20 12 8 128 ltng 1 0 0 0 0 0 1 0 0 0 0 0 (skill('Lightning Bolt'.blvl) + skill('Lightning Strike'.blvl)) * par8 4 384 40000 +PoisonEggSpawn 453 43 173 poisonnova necromancer_poison_cast 109 poisonnova 1 3 none SC SC xx 1 necromancer_poison_cast 30 20 Desecrate 1 1 8 20 0 1 15 damage synergy 1 4 pois 16 4 6 10 16 24 29 4 6 10 16 24 (skill('Poison Dagger'.blvl)+skill('Desecrate'.blvl))*par8 50 896 80000 +Hydra Throne Boss 454 hydra 14 144 passive_fire_mastery stat('passive_fire_mastery'.accr) passive_fire_pierce stat('passive_fire_pierce'.accr) / 2 hydra1 hydra 20 S2 HydraFireball lvl Fire Bolt skill('Fire Bolt'.blvl) Fire Ball skill('Fire Ball'.blvl) 1 sorceress_cast_fire fire_cast_2 17 1 7 none SC SC S1 4 1 1 sorceress_cast_fire fire_cast_2 30 20 Enchant 1 1 7 40 1 1 500 duration 0 additional duration/level 6 damage synergy 1 7 fire 84 16 23 31 38 44 117 20 25 35 41 47 (skill('Fire Bolt'.blvl) + skill('Lesser Hydra'.blvl))*par8 896 80000 +HurricaneTortureBoss 455 hurricane 124 42883 hurricane 75 par3 velocitypercent -80 druid_windcast druid_hurricane hurricaneswoosh hurricanerocktortureboss hurricanerocktortureboss 2 debris/frame 150 height 1 0 none SC SC xx 1 30 20 Tornado 1 1 8 30 0 1 1500 base duration 75 duration per level 9 radius 10 frames per hit search 0 duration synergy 12 damage synergy 1 1 2 8 110 150 fire 175 225 (skill('Arctic Blast'.blvl)+skill('Tornado'.blvl))*par8 896 80000 +A3 Mastery Fire 456 merc_passive_mastery passive_fire_mastery 10 + lvl * 5 + "min(blvl * 4, 384)" passive_fire_pierce "min(lvl * 1, 20)" item_healafterkill 10 + lvl * 2 1 3 none xx 1 32 0 8 0 0 1 1 1 8 fire 512 50000 +A3 Mastery Cold 457 merc_passive_mastery passive_cold_mastery 4 + lvl * 3 + "min(blvl * 3, 150)" passive_cold_pierce "min(2 + (lvl * 2), 30)" item_healafterkill 10 + lvl * 2 1 3 none xx 1 32 0 8 0 0 1 1 1 8 cold 512 50000 +A3 Mastery Ltng 458 merc_passive_mastery passive_ltng_mastery 20 + lvl * 19 + "min(blvl * 6, 256)" item_healafterkill 10 + lvl * 2 1 3 none xx 1 32 0 8 0 0 1 1 1 8 ltng 512 50000 +Merc Static Field 459 static field 160 34691 staticfield_debuff 325 "min(ln12, 26)" lightresist "-min((par5+(lvl<22)?lvl:(22+((lvl-22)/2))), 100)" sorceress_cast_lightning light_cast_1 1 10 none SC SC xx 4 1 sorceress_cast_lightning 1 20 50 1 1 8 9 0 1 par4 damage % par3 min damage 12 Base radius of effect. 2 Level radius bonus. 0 Minimum Damage. 25 Percent Damage. 20 base -lite res 1 8 ltng 384 40000 +A3 Merc Lightning 460 lightning lightningbolt sorceress_cast_lightning light_cast_1 lightningbolt 1 6 none SQ SC xx 12 1 1 sorceress_cast_lightning 12 20 Charged Bolt 1 1 7 16 1 1 10 minimum damage 20 max damage 4 increase in dam/level (min & max) 8 damage synergy 1 8 ltng 1 0 0 0 0 0 20 8 16 26 38 50 512 50000 +A3 Merc Meteor 461 meteor 28 A3 Merc meteorcenter A3 Merc meteorcenter A3 Merc meteorcenter ln12 sorceress_cast_fire fire_cast_2 28 meteorcenter 1 6 none SC SC xx 4 1 1 sorceress_cast_fire fire_cast_2 24 20 Fire Ball Fire Wall 16 1 1 7 34 1 1 ln12 radius 6 radius of explosion 0 radius per level 12 Frames of fire 0 Frames of fire per level 1 8 4 5 8 11 14 18 6 5 8 11 14 18 (stat('passive_fire_mastery'.accr)) fire 4 5 8 11 14 18 6 5 8 11 14 18 768 70000 +A3 Merc Fire Ball 462 fire ball A3 Merc fireball 4 + blvl / 5 sorceress_cast_fire fire_cast_2 fireball 1 5 none SC SC xx 1 sorceress_cast_fire 12 20 Fire Bolt 1 1 7 10 1 1 16 damage synergy 1 7 fire 3 4 6 8 12 18 6 7 9 11 15 21 512 50000 +A3 Merc Blizzard 463 blizzard 28 blizzardcenter blizzardcenter blizzardcenter sorceress_cast_cold ice_cast_3 28 blizzardcenter 1 7 none SC SC xx 4 1 1 sorceress_cast_cold ice_cast_3 24 20 Frost Nova Glacial Spike 25 1 1 7 26 1 1 par1 radius par3 frequency 7 radius 2 Missile delay 0 Change duration in Missiles.xls 12 damage synergy 1 8 cold 5 2 4 6 8 10 8 6 8 10 12 14 100 768 70000 +A3 Merc Ice Blast 464 ice blast iceblast sorceress_cast_cold ice_cast_1 iceblast 1 6 none SC SC xx 1 sorceress_cast_cold 6 20 Ice Bolt 1 1 7 12 1 1 50 Duration of freeze 0 additional duration/level 0 freeze synergy 6 damage synergy 1 7 cold 2 2 4 8 14 20 5 4 6 10 16 22 50 0 0 0 384 40000 +TraitorBossBlessedAim 465 blessed aim 18 73731 blessedaim blessedaim 200 ln12 item_tohit_percent ln34 penetrate item_tohit_percent skill('Blessed Aim'.blvl) * par8 1 1 6 none xx 12 20 Might 0 8 0 0 1 1 50 20 radius 2 additional radius per level 75 % attack# bonus 10 % additional attack# bonus 0 ? 0 ? 10 passive to hit bonus 1 8 512 50000 +TraitorBossVigor 466 vigor 18 73731 stamina stamina 200 ln12 staminarecoverybonus ln34 skill_staminapercent ln34 velocitypercent dm56 passive_runwalk item_fastermovevelocity blvl/2 1 1 1 none xx 18 20 Defiance 0 8 0 0 1 1 50 26 radius 3 additional radius per level 50 % faster stamina recovery and max stamina 25 % additional stamina recovery and max stamina 7 min % speed increase 50 max % speed increase 1 8 640 60000 +TraitorBossConeJab 467 teeth 8 traitorbossconejavelin traitorbossconejavelin paladin_zeal warcry 19 17 traitorbossconejavelin traitorbossconejavelin traitorbossconejavelin 1 1 none SC SC xx 1 necromancer_bone_cast 1 20 1 1 7 6 1 1 5 # missiles 10 activation frame 2 number of missiles 1 additional missiles/level 0 Acivation frame of teeth 25 damage synergy 1 8 mag 4 2 2 6 14 22 8 2 4 10 18 26 (skill('Bone Armor'.blvl)+skill('Bone Spear'.blvl)+skill('Bone Spirit'.blvl))*par8 256 30000 +TraitorBossStunSpear 468 bone spear 8 traitorbossstunspear traitorbossstunspear 42371 player_stun 100 5 velocitypercent -50 attackrate -100 item_fastercastrate -100 necromancer_bone_cast 19 17 traitorbossstunspear traitorbossstunspear bonecast 1 6 none SC SC xx 1 necromancer_bone_cast 18 20 Teeth 1 1 6 28 1 1 1 # missiles 50 10 Bone Armor Synergy 10 damage synergy 1 8 mag 500 7 9 12 26 46 750 7 9 13 28 50 (skill('Teeth'.blvl)+skill('Bone Spirit'.blvl))*par8+skill('Bone Armor'.blvl)*par7 640 60000 +ArcherBossArrowRain 469 blizzard 28 archerbossarrowraincenter archerbossarrowraincenter archerbossarrowraincenter sorceress_cast_lightning light_cast_1 28 archerbossarrowraincenter 1 7 none SC SC xx 4 1 1 sorceress_cast_lightning 24 20 Frost Nova Glacial Spike 25 1 1 7 26 1 1 par1 radius par3 frequency 7 radius 3 Missile delay 0 Change duration in Missiles.xls 12 damage synergy 1 8 ltng 131 6 8 10 12 14 175 8 10 12 14 16 768 70000 +ArcherBossBoomerShot 470 multiple shot 4 8 archerbossmultipleshot archerbossmultipleshot 11 17 archerbossmultipleshot archerbossmultipleshot 1 7 1 rng miss A1 A1 xx 1 1 6 20 Magic Arrow 1 1 1 5 12 1 1 "min(24,ln12)" # missiles par3 activation frame 2 triggered 3 number of arrows to fire 1 additional arrows per level 1 Acivation frame of arrows. 5 base dmg% 5 dmg% per level 8 damage synergy 1 50 20 8 128 1 0 1 2 3 4 2 0 1 2 3 4 384 40000 +ArcherBossCageShot 471 multiple shot 4 8 archerbosscageshot archerbosscageshot 11 17 archerbosscageshot archerbosscageshot 1 7 1 rng miss A1 A1 xx 1 1 6 20 Magic Arrow 1 1 1 5 12 1 1 1 # missiles par3 activation frame 2 triggered 3 number of arrows to fire 1 additional arrows per level 1 Acivation frame of arrows. 5 base dmg% 5 dmg% per level 8 damage synergy 1 50 20 8 128 1 0 1 2 3 4 2 0 1 2 3 4 384 40000 +Mon Conviction 472 conviction 66 42371 conviction conviction ln12 skill_armor_percent -dm56 fireresist "-min(ln34,150)" coldresist "-min(ln34,150)" lightresist "-min(ln34,150)" 1 6 none mele xx 5 1 30 20 Sanctuary 0 8 0 0 1 1 1 50 20 radius 0 additional radius per level 27 % resist reduction 4 % resist reduction per level 40 min % AC reduction 100 max % AC reduction 1 8 896 80000 +Mon Fanaticism 473 fanaticism 65 73731 fanaticism fanaticism ln12 attackrate dm34 item_tohit_percent toht damagepercent ln56/2 damagepercent ln56 1 1 8 none S1 30 20 Concentration 0 8 0 0 1 1 1 50 11 radius 1 additional radius per level 10 min% boost 40 max% boost 50 % damage boost 17 % damage bonus per level 1 40 5 8 896 80000 +Mon Holy Shock 474 holy shock 66 42883 holyshock ln12 lightmindam edns*par5/256 lightmaxdam edxs*par5/256 1 4 none xx 24 20 Holy Freeze 0 8 0 0 1 1 1 25 12 radius 0 additional radius per level 12 damage to attack multiplier 0 ? 8 damage synergy 8 damage synergy 1 16385 7 ltng 1 5 7 9 10 13 16 (skill('Resist Lightning'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 768 70000 +Mon Holy Freeze 475 holy freeze 81 303747 holywind holywindcold ln12 velocitypercent -dm34 attackrate -dm34 other_animrate -dm34 coldmindam edns*par5/256 coldmaxdam edxs*par5/256 1 8 none xx 18 20 Holy Fire 0 8 0 0 1 1 1 25 12 radius 0 additional radius per level 25 min% slowing 60 max% slowing 10 damage to attack multiplier 0 ? 12 damage synergy 12 damage synergy 1 16385 7 cold 4 1 1 2 4 5 6 1 2 3 4 5 (skill('Resist Cold'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 640 60000 +Mon Holy Fire 476 holy fire 66 42883 holyfire ln12 firemindam edns*par5/256 firemaxdam edxs*par5/256 1 0 none xx 6 20 Might 0 8 0 0 1 1 1 25 9 radius 0 additional radius per level 4 damage to attack multiplier 20 damage synergy 20 damage synergy 1 16385 6 fire 4 1 3 10 19 23 9 1 3 10 19 23 (skill('Resist Fire'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 384 40000 +Mon Might 477 might 65 73731 might might ln12 damagepercent edmn 1 1 9 none xx 1 20 1 8 0 0 1 1 1 50 16 radius 2 additional radius per level 1 8 40 10 12 14 16 18 256 30000 +Mon Concentration 478 concentration 65 73731 concentration concentration ln12 damagepercent ln34 skill_concentration par5 item_tohit_percent toht 1 1 6 none xx 18 20 Blessed Aim 0 8 0 0 1 1 1 50 16 radius 2 additional radius per level 30 % additional damage 5 % additional damage/level 20 percent chance that attack will not be interrupted 0 ? 1 25 4 8 640 60000 +Mon Vigor 479 vigor 65 73731 stamina stamina ln12 staminarecoverybonus ln34 skill_staminapercent ln34 velocitypercent dm56 passive_runwalk item_fastermovevelocity blvl/2 1 1 1 none xx 18 20 Defiance 0 8 0 0 1 1 1 50 16 radius 3 additional radius per level 50 % faster stamina recovery and max stamina 25 % additional stamina recovery and max stamina 15 min % speed increase 75 max % speed increase 1 8 640 60000 +Baal Lowres 480 lower resist 30 3 lowerresist ln34 par1 + lvl / 3 + skill('CurMas'.blvl) / 3 fireresist -75 lightresist -75 coldresist -75 poisonresist -75 necromancer_curse_cast 18 30 curselowerresist cursecast 1 8 none SC SC S2 4 1 necromancer_curse_cast 30 20 Weaken 1 6 40 1 1 10 radius 1 radius per level 500 duration additional duration/level 10 min % resist lower 1 -% per level 1 8 mag 896 80000 +Poison Dagger Spider Boss 481 poison dagger 164 poisondaggercloud spiderboss 102 poisondaggercloud spiderboss 1 4 h2h knif A1 A1 xx 1 1 1 1 20 1 1 5 12 1 1 "min(ln12, 20)" poison pierce 1 pierce base 1 pierce per level 22 damage synergy 1 30 20 4 128 pois 1 1 4 10 18 26 2 1 4 10 18 26 (skill('Desecrate'.blvl)+skill('Poison Nova'.blvl))*par8 50 384 40000 +AndyPoisonBolt Spider Boss 482 andypoisonbolt spiderboss andypoisonbolt spiderboss 1 0 none SQ SQ A1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Tornado Arcane Boss 483 tornado 118 tornado arcaneboss 42371 par2 druid_windcast 69 tornado arcaneboss 1 0 none SC SC xx 1 4 1 24 20 Twister 1 1 8 10 0 1 1 # missiles par1 damage delay 50 Frame delay between damage 4 Radius of damage 14 damage synergy 1 8 225 325 768 60000 +Skeleton Archer Bow 484 4 necroarcher pierce skill_pierce 100 11 necroarcher 1 0 rng A1 A1 A1 1 1 1 1 8 128 0 +RathmaDeath 485 169 rathmacenter rathmacenter rathmacenter 3 monfrenzy 249975 5 passive_pois_mastery 20 passive_cold_mastery 20 passive_mag_mastery 10 mephisto_death 105 rathmacenter 1 6 none SC SC xx 4 1 1 1 1 7 34 1 1 ln12 radius 4 radius of explosion 0 radius per level 0 Frames of fire 0 Frames of fire per level 5 damage synergy 1 8 18 36 24 48 48 49 30 66 24 48 48 50 0 +NihlathakMapMobSpawn 486 necromancer_corpse_cast ice_cast_1 rathmafiremedium_short 1 0 none SC SC xx 1 ice_cast_3 1 1 1 8 0 +NihlathakMapDeath 487 ln12 105 nehlithakhole 1 6 none SC SC xx 4 1 1 1 1 7 34 1 1 ln12 radius 4 radius of explosion 0 radius per level 0 Frames of fire 0 Frames of fire per level 5 damage synergy 1 0 +DoppleZonStrafe 488 8 12 dopplestrafearrow par5 amazon_dodge_1 paladin_charge 13 20 dopplestrafearrow 1 0 1 rng miss A1 A1 xx 1 1 20 1 1 2 #nearby target to fire missiles at damage % 2 #missiles to fire at nearby targets Damage increase Damage increase per level Base Shots to take (+1 per level) Max shots to take 1 Radius % frame rollback damage synergy 1 8 5 768 60000 +Valk Power Strike 489 power strike 10 14 powerstrikenova1valk powerstrikenova1valk powerstrikenova1valk 20 22 powerstrikenova1valk powerstrikenova1valk powerstrikenova1valk 1 4 h2h spea A1 A1 xx 1 1 1 1 6 20 Jab 1 1 4 32 3 1 1000 radius 0 hits 20 damage synergy 1 20 12 8 128 ltng 1 0 0 0 0 0 1 2 4 11 25 35 4 384 10000 +RathmaSummon 490 14 179 rathmaBoneGolem rathmasummon 99 S1 necromancer_golem_cast 1 6 none S2 S2 xx 1 1 1 7 28 1 1 1 # min golems 1 8 896 80000 +RathmaBoneSpear 491 bone spear 8 rathmabonespeartraildelay rathmabonespeardelay rathmabonespeardelay necromancer_corpse_cast sorceress_cast_cold 19 17 rathmabonespeartraildelay rathmabonespeardelay rathmabonespeardelay bonecast 1 6 none SC SC xx 1 necromancer_bone_cast 18 20 1 1 6 28 1 1 1 # missiles 1 8 640 40000 +RathmaTeethNova 492 teeth 159 rathmateethnova necromancer_bone_cast blood_warp 100 rathmateethnova rathmateethnova rathmateethnova 1 0 none S3 S3 S3 1 36 10 1 1 par1 # missiles 16 missiles 1 8 mag 160 0 50 50 50 50 170 0 50 50 50 50 0 +VoidBolt 493 voidbolt voidbolt 1 6 rng A1 A1 xx 30 20 1 1 1 7 12 1 1 8 damage synergy 1 30 9 8 mag 12 12 23 34 36 38 23 12 23 34 36 38 896 80000 +SummonVoidling 494 49 voidling rathmasummon 3 S2 necromancer_curse_cast 1 5 none SC SC xx 4 18 20 1 7 25 1 1 par7*lvl hp % adjustment 18 damage synergy 75 %additional golem damage per level 10 hp per level 1 8 640 40000 +IskatuHurricane 495 hurricane 124 42883 hurricane ln12 par3 druid_windcast druid_hurricane iskatuhurricaneswoosh iskatuhurricanerock iskatuhurricanetree 3 debris/frame 75 height 1 0 none SC SC xx 1 30 20 1 1 8 30 0 1 100 base duration 25 duration per level 9 radius 20 frames per hit search 0 duration synergy 12 damage synergy 1 1 2 8 cold 100 4 8 12 16 20 100 4 8 12 16 20 50 896 80000 +RathmaPoisonOrb 496 rathmapoisonorb necromancer_poison_cast 29 rathmapoisonorb 1 8 none SQ SC SC 12 necromancer_poison_cast 30 20 1 1 7 28 1 1 4 damage synergy 1 6 pois 220 0 90 90 90 90 220 0 90 90 90 90 50 896 80000 +RathmaFissure 497 eruption 28 rathma_fissurecenter druid_windcast ice_cast_1 28 rathma_fissurecenter 1 0 none SC SC xx 1 4 1 1 sorceress_cast_cold ice_cast_3 12 20 1 1 8 10 0 1 par1 radius par2 - (blvl / 10) frequency 7 radius 6 Missile delay 0 Change duration in Missiles.xls 8 damage synergy 1 8 fire 410 0 100 100 100 100 460 0 115 115 115 115 512 20000 +RathmaOuterNova 498 poison nova 159 rathma_outernova_travel necromancer_poison_cast 100 rathma_outernova_travel rathma_outernova_travel rathma_outernova_travel 1 3 none SC SC xx 1 necromancer_poison_cast 30 20 1 1 8 20 0 1 par1 # missiles 16 missiles 15 damage synergy 1 3 pois 50 0 25 25 25 25 60 0 30 30 30 30 50 896 80000 +Horror Arctic Blast Boss 499 53 95 frozenhorror arcticblast1 boss 54 frozenhorror arcticblast1 boss frozenhorror arcticblast1 boss 1 0 none SQ SQ xx 18 1 1 par1 length of fire 6 density 75 frame length 1 8 0 +Frost Nova Horror Boss 500 frost nova 22 frostnova boss frostnova boss frostnova boss sorceress_cast_cold ice_cast_2 25 frostnova boss 1 6 none SC SC SC 183 10 1 sorceress_cast_cold 6 20 1 1 7 18 1 1 9 radius of freeze 3 additional radius/level 9 damage synergy 1 7 cold 100 50 100 100 100 100 200 50 100 100 100 100 (skill('Ice Bolt'.blvl)+skill('Shiver Armor'.blvl))*par8 200 5 5 5 384 10000 +Mon Holy Freeze Wide 501 holy freeze 81 303747 holywind holywindcold ln12 velocitypercent -dm34 attackrate -dm34 other_animrate -dm34 coldmindam edns*par5/256 coldmaxdam edxs*par5/256 1 8 none xx 18 20 Holy Fire 0 8 0 0 1 1 1 25 20 radius 0 additional radius per level 25 min% slowing 60 max% slowing 10 damage to attack multiplier 0 ? 12 damage synergy 12 damage synergy 1 16385 7 cold 4 1 1 2 4 5 6 1 2 3 4 5 (skill('Resist Cold'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 640 60000 +RathmaPacman 502 poison nova 159 rathmapacmanstart necromancer_poison_cast 100 rathmapacmanstart rathmapacmanstart rathmapacmanstart 1 3 none SC SC xx 1 necromancer_poison_cast 30 20 Desecrate 1 1 8 20 0 1 par1 # missiles 64 missiles 15 damage synergy 1 8 pois 3800 0 700 700 700 700 3800 0 700 700 700 700 896 80000 +Shock Wave Boss 503 shock wave 8 shockwave boss shockwave boss 17 shockwave boss shockwave boss 1 0 none SC SC xx 1 18 20 Maul 2 bear 1 1 8 7 0 1 15 # missiles 20 stun length 0 stun length per level 18 damage synergy 1 8 50 50 50 50 50 100 50 50 50 50 50 50 (skill('Wearbear'.blvl)+skill('Twister'.blvl)+skill('Tornado'.blvl))*par8 640 40000 +RathmaPrison 504 104 3 disable_tele 75 5 boneprison1 none diablo_boneprison_rise 1 0 none SQ SQ S2 1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +RathmaColdMissiles 505 139 rathmacoldmaker baal_coldtrailcast 81 rathmacoldmaker 1 0 none A1 A1 S1 1 1 1 8 cold 460 0 200 200 200 200 460 0 200 200 200 200 200 50 50 50 0 +Glacial Spike Spire 506 glacial spike glacialspikeSpire ln34 * (100 + skill('Blizzard'.blvl) * par7) / 100 ln12 sorceress_cast_cold ice_cast_2 glacialspikeSpire 1 7 none SC SC SC 1 sorceress_cast_cold 18 20 Ice Blast 1 1 7 20 1 1 8 radius 0 radius per level 50 freeze frames 0 freeze frames per level 5 freeze synergy 5 damage synergy 1 7 cold 6000 0 1400 1400 1400 1400 6000 0 1400 1400 1400 1400 800 640 40000 +Poison Nova Rathma 507 poison nova 22 poisonnovaRathma necromancer_poison_cast 25 poisonnovaRathma 1 3 none SC SC xx 1 necromancer_poison_cast 30 20 Desecrate 1 1 8 20 0 1 15 damage synergy 1 4 pois 2000 0 600 600 600 600 2000 0 600 600 600 600 500 100 100 100 896 80000 +Teeth Rathma 508 teeth 8 teethRathma teethRathma necromancer_bone_cast 19 17 teethRathma teethRathma bonecast 1 1 none SC SC xx 1 necromancer_bone_cast 1 20 1 1 7 6 1 1 30 # missiles par3 activation frame 2 number of missiles 1 additional missiles/level 0 Acivation frame of teeth 25 damage synergy 1 7 mag 420 0 95 95 95 95 480 0 105 105 105 105 256 5000 +UberTalicBlaze 509 blaze 23 blaze2igniteUberTalic blaze2trail 73731 blaze 7500 velocitypercent dm34 sorceress_cast_fire fire_cast_2 blaze2igniteUberTalic blaze2trail blaze2dotfiresmall blaze2dotfiremedium 1 3 none SC SC xx 1 6 20 1 7 22 1 1 75 Min Frames 0 frames per level 30 min % speed increase 50 max % speed increase 3 firewall damage synergy 3 warmth damage synergy 1 2 fire 2000 2000 (skill('Warmth'.blvl)+skill('Fire Wall'.blvl))*par8 11 11 11 11 11 11 11 11 11 +UberTalicWhirlwind 510 whirlwind 38 76 whirlwind barbarian_whirlwind barbarian_whirlwind 31 45 1 3 none 2 mele SQ A1 xx 10 1 1 30 20 1 1 7 25 1 ln12 damage% 0 Damage percent per attack 0 Damage percent per level 1 Attacks per tick 1 5 8 128 fire 250 275 896 80000 +UberTalicBash 511 bash 32 158 barbarian_grunt_small_1 1 1 7 h2h A1 A1 xx 1 1 1 1 1 20 1 1 6 8 1 1 ln56 + (skill('Stun'.blvl) + skill('Berserk'.blvl)) * par8 dmg% ln34 post dmg add attack rate bonus 1 Min Damage 1 Min Damager per level 50 % bash damage 18 % bash damage increase per level 10 to hit synergy 12 damage synergy 1 15+lvl*12+skill('Concentrate'.blvl)*par7 112 8 128 256 5000 +UberTalicMeteor 512 meteor 28 ubertalictargetindicator ln12 sorceress_cast_fire fire_cast_2 28 ubertalictargetindicator 1 6 none SC SC xx 4 1 1 sorceress_cast_fire fire_cast_2 24 20 1 1 7 34 1 1 ln12 radius 8 radius of explosion 0 radius per level 50 Frames of fire 0 Frames of fire per level 1 8 768 60000 +Book of Unlimited Identify 513 book of unlimited identify 113 cast_innersight 0 none SC SC xx 1 1 5 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +Book of Unlimited Townportal 514 book of unlimited townportal 113 0 none SC SC xx 1 1 5 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +BruteFireSlam 515 meteor 28 bruteSlamCenter bruteSlamCenter bruteSlamCenter ln12 sorceress_cast_fire fire_cast_2 28 bruteSlamCenter 1 6 none SC SC xx 4 1 1 sorceress_cast_fire fire_cast_2 24 20 1 1 7 34 1 1 ln12 radius 8 radius of explosion 0 radius per level 37 Frames of fire 0 Frames of fire per level 1 8 768 60000 +BruteMoltenBoulder 516 molten boulder brutemoltenboulderemerge par1 druid_firecast_b druid_fire_cast_1 brutemoltenboulderemerge 1 0 none SC SC xx 1 1 druid_firecast_b druid_fire_cast_1 6 20 1 1 5 40 1 1 7 Explosion Radius 12 fire damage synergy 1 8 65 75 fire 172 181 384 10000 +BruteShockWave 517 shock wave 8 bruteshockwave bruteshockwave 42371 player_stun 250 5 velocitypercent -90 17 bruteshockwave bruteshockwave 1 0 none SC SC xx 1 18 20 1 1 8 7 0 1 7 # missiles 6 stun length 0 stun length per level 18 damage synergy 1 8 40 2 4 16 26 36 90 3 6 18 28 38 (skill('Wearbear'.blvl)+skill('Twister'.blvl)+skill('Tornado'.blvl))*par8 640 40000 +BruteVigor 518 vigor 18 73731 stamina stamina 25000 ln12 staminarecoverybonus ln34 skill_staminapercent ln34 velocitypercent 200 passive_runwalk item_fastermovevelocity blvl/2 1 1 1 none xx 18 20 0 8 0 0 1 1 50 26 radius 3 additional radius per level 50 % faster stamina recovery and max stamina 25 % additional stamina recovery and max stamina 7 min % speed increase 50 max % speed increase 1 8 640 60000 +UberMadawcDoubleThrow 519 154 ubermadawcchargedaxe ubermadawcchargedaxe ubermadawcchargedaxe par3 barbarian_grunt_small_1 light_cast_1 98 ubermadawcchargedaxe ubermadawcchargedaxe ubermadawcchargedaxe 1 5 rng 3 comb comb A1 A1 xx 1 1 1 20 1 6 1 6 6 1 1 ln12 + skill('Double Swing'.blvl)*par8 damage% "min(par5 + lvl / par6, 5)" #bounces par4 first hit bonus 45 base dmg% 6 dmg% per level 15 bounce range 0 base first hit bonus 3 # bounces 3 #bounces lvl increase damage synergy2 5 damage synergy 1 35 15 8 30 15 30 512 20000 +UberMadawcCursedAxe 520 4 ubermadawccursedaxe 42371 amplifydamage 200 20 damageresist -15 barbarian_grunt_small_1 1 psychic_hammer_curse 11 ubermadawccursedaxe 1 2 1 rng thro A1 A1 xx 1 1 20 1 1 6 6 1 1 24 damage synergy 1 35 15 6 256 5000 +UberMadawcOWAxe 521 8 ubermadawcowaxe ubermadawcowaxe 42371 fingermagecurse 200 20 hpregen -256 barbarian_grunt_small_1 1 warcry 19 17 ubermadawcowaxe ubermadawcowaxe cursecast 1 1 rng A1 A1 xx 1 1 20 1 1 7 6 1 1 5 # missiles 2 activation frame 5 number of missiles 0 additional missiles/level 1 Acivation frame of teeth 25 damage synergy 1 35 15 6 ltng 120 150 256 30000 +UberTalicSmite 522 smite 150 barbarian_grunt_small_1 1 1 9 h2h A1 A1 xx 1 1 1 1 1 20 1 1 8 2 0 ln34 damage % "min(250,ln12)" stunlen 0 Stun Length 0 additional frames/level 0 Percent bonus damage 0 percent damage per level 10 damage synergy 1 8 8 128 170 220 fire 180 260 256 5000 +UberMadawcFakeBO 523 battle orders 68 battleorders battleorders battleorders 15000 barbarian_battleorders_1 25 battleorders 1 9 none SC SC xx 1 24 20 Shout 1 1 8 7 0 1 750 duration 250 duration/level 50 Base increase 15 Increase per level 125 duration synergy 1 50 10 8 768 60000 +UberMadawcLightningStorm 524 blizzard 28 ubermadawclightningstormcenter ubermadawclightningstormcenter ubermadawclightningstormcenter sorceress_cast_lightning light_cast_1 28 ubermadawclightningstormcenter 1 7 none SC SC xx 4 1 1 sorceress_cast_lightning 24 20 Frost Nova Glacial Spike 25 1 1 7 26 1 1 par1 radius par3 frequency 7 radius 3 Missile delay 0 Change duration in Missiles.xls 12 damage synergy 1 8 ltng 190 6 8 10 12 14 235 8 10 12 14 16 768 70000 +Cyclone ArmorMon 525 cyclone armor 18 cyclonearmor bonearmor ((stat('energy'.accr) * 2) + ln12)*256) bonearmormax ((stat('energy'.accr) * 2) + ln12)*256) absorbdamage 25 druid_cyclonearmor 1 0 none SC SC xx 1 1 6 20 Arctic Blast 13 1 8 5 1 1 1 1000 damage absorbed 1000 additional absorbed/level 4 absorb synergy 1 8 384 10000 +LeoricSummonNova 526 159 leoricsummonnova necromancer_bone_cast blood_warp 100 leoricsummonnova leoricsummonnova leoricsummonnova 1 0 none SC SC SC 1 36 10 1 1 par1 # missiles 8 missiles 1 8 mag 100 0 0 0 0 0 100 0 0 0 0 0 0 +SiegeBeastClusterbomb 527 volcano 123 siegebeastvolcano par1 druid_firecast_a druid_fire_cast_2 91 siegebeastvolcano overlay fire siegebeastvolcano 1 0 none SC SC xx 1 4 1 1 sorceress_cast_fire druid_fire_cast_2 24 20 Eruption 13 1 1 8 12 0 1 par2 damage delay 14 debris range 7 delay between debris 10 damage synergy 10 fire damage synergy 1 8 8 3 5 7 8 9 10 3 5 7 8 9 (skill('Eruption'.blvl)+skill('Armageddon'.blvl)+skill('Molten Boulder'.blvl))*par8 fire 2000 0 0 0 0 0 2000 0 0 0 0 0 (skill('Eruption'.blvl)+skill('Armageddon'.blvl)+skill('Molten Boulder'.blvl))*par8 768 60000 +SiegeBeastFireNova 528 nova 22 siegebeastfirenova siegebeastfirenova siegebeastfirenova druid_firecast_a druid_fire_cast_1 25 siegebeastfirenova 1 2 none SC SC xx 183 10 1 druid_firecast_b 12 20 Charged Bolt 1 1 7 16 1 1 12 number of missiles 4 additional missiles per level 3 damage synergy 1 8 ltng 2500 0 0 0 0 0 2500 0 0 0 0 0 (skill('Charged Bolt'.blvl)+skill('Telekinesis'.blvl))*par8 512 20000 +SiegeBeastBuffNova 529 68 siegebeastbuffnova 76730 frenzy frenzy 125 attackrate 40 item_tohit_percent 500 velocitypercent 70 lightmindam 50 lightmaxdam 400 siege_beast_dust 25 siegebeastbuffnova 1 8 none SC SC SC 1 1 6 20 1 1 8 6 0 1 100 % AC bonus for friendlies 10 % AC bonus per level 500 duration 250 duration/level 125 duration synergy 1 8 384 40000 +SiegeBeastOrb 530 frozen orb siegebeastorb druid_windcast light_cast_2 29 siegebeastorb 1 8 none SQ SC SC 12 1 30 20 Blizzard 1 1 7 28 1 1 4 damage synergy 1 7 cold 1500 0 0 0 0 0 1500 0 0 0 0 0 (skill('Ice Bolt'.blvl)+skill('Frost Nova'.blvl))*par8 200 5 5 5 896 80000 +Holy Fire Fire Golem 531 holy fire 66 42883 holyfire ln12 firemindam edns*par5/256 firemaxdam edxs*par5/256 54 103 1 0 h2h weap RN RN RN 6 20 Might 1 0 8 0 0 1 1 1 30 12 radius 0 additional radius per level damage to attack multiplier 9 damage synergy 9 damage synergy 1 16385 8 fire 7 2 3 4 5 6 10 3 4 5 6 7 (skill('Clay Golem'.blvl)+skill('BloodGolem'.blvl)+skill('IronGolem'.blvl)+skill('Golem Mastery'.blvl))*par8 384 10000 +Holy Freeze Korlic 532 holy freeze 81 303747 holywind holywindcold 15 velocitypercent -20 coldmindam 200 coldmaxdam 300 54 103 1 8 h2h weap RN RN RN 18 20 Holy Fire 1 0 8 0 0 1 1 1 25 8 radius 0 additional radius per level 25 min% slowing 60 max% slowing 10 damage to attack multiplier 0 ? 12 damage synergy 12 damage synergy 1 16385 7 cold 200 300 (skill('Resist Cold'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 640 40000 +Leap Attack Korlic 533 leap attack 40 153 leapattacknova bash 30 29 97 leapattacknova 1 6 none mele SQ A1 xx 13 1 24 20 Leap Concentrate 1 1 6 28 1 1 ln34+(skill('Leap'.blvl)+skill('Bash'.blvl))*par8 %phys damage 60 + stat('item_leap_speed'.accr) / 4 speed bonus par5 aoe range 4 min distance 40 max distance 0 dmg % base 0 dmg % per level 7 aoe range 8 damage synergy 1 8 128 768 60000 +Holy Fire Sanctuaryboss 534 holy fire 66 42883 holyfire 37 firemindam edns*par5/256 firemaxdam edxs*par5/256 54 103 1 0 h2h weap RN RN RN 6 20 Might 1 0 8 0 0 1 1 1 25 40 radius 0 additional radius per level 0 damage to attack multiplier 20 damage synergy 20 damage synergy 1 16385 6 fire 800 0 0 0 0 0 1000 0 0 0 0 0 (skill('Resist Fire'.blvl)+skill('Salvation'.blvl)+skill('Blessed Aim'.blvl))*par8 384 10000 +Howl Monster 535 howl 22 howl terror barbarian_howl_1 25 howl par1 * (lvl-1) velocity adder 1 0 none SC SC xx 1 1 25 1 20 1 1 1 8 4 0 1 par1 * (lvl-1) velocity adder 1 Velocity/level increase 1 Plev+Slev+n 24 Distance to retreat 5 Distance per level 150 Time to retreat Time per level 1 8 256 5000 +Bone Spear Serpent 536 bone spear 8 serpentspear serpentspear necromancer_bone_cast 19 17 serpentspear serpentspear bonecast 1 6 none SC SC xx 1 necromancer_bone_cast 18 20 Teeth 1 1 6 28 1 1 1 # missiles 10 Bone Armor Synergy 10 damage synergy 1 8 pois 135 175 640 40000 +Fire Ball Ashen Boss 537 fire ball 8 fireball Ashen Boss 4 + blvl / 5 sorceress_cast_fire fire_cast_2 11 17 fireball Ashen Boss fireball Ashen Boss fireball Ashen Boss 1 5 none SC SC xx 1 sorceress_cast_fire 12 20 Fire Bolt 1 1 5 40 2 1 25 # missiles 15 damage synergy 1 20000 8 fire 788 1050 (skill('Fire Bolt'.blvl)+skill('Combustion'.blvl))*par8 512 20000 +Fire Nova 538 frost nova 22 Fire Nova Fire Nova Fire Nova druid_firecast_a druid_fire_cast_1 25 Fire Nova 1 6 none SC SC SC 183 10 1 druid_firecast_b 6 20 1 1 6 32 1 1 0 radius of freeze 0 additional radius/level 7 damage synergy 1 8 fire 963 1225 (skill('Ice Bolt'.blvl)+skill('Shiver Armor'.blvl))*par8 384 10000 +ZharBarrage 539 ice barrage 8 ZharBolts ZharBolts ln34 * (100 + skill('Blizzard'.blvl) * par7) / 100 ln12 necromancer_bone_cast 17 ZharBolts 1 7 none SC SC SC 1 sorceress_cast_cold 24 20 1 1 6 32 1 1 par5+(min(blvl/3,par6)) # missiles 6 radius 0 radius per level 12 number of missiles 2 maximum missile added 0 Acivation frame of teeth 8 damage synergy 1 8 mag 160 0 0 0 0 0 250 0 0 0 0 0 0 768 60000 +ZharStrike 540 ZharFireball ZharFireball 1 0 none SQ SQ SC 1 1 1 8 fire 0 +ZharArmageddon 541 armageddon 124 Zhararmageddoncontrol Zhararmageddoncontrol Zhararmageddoncontrol armageddon ln12 par3 sorceress_cast_lightning light_cast_2 92 Zhararmageddontail Zhararmageddonrock 20 frames 30 fall rate 15 slide rate 1 0 none SC SC xx 1 4 30 20 1 1 8 35 0 1 120 base duration 85 duration per level 20 radius to drop meteors 9 frame delay between rocks 0 duration synergy 12 damage synergy 1 80 6 8 ltng 344 438 (skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*par8 896 80000 +ZharNovaOrb 542 rathmapoisonorb necromancer_poison_cast 29 ZharNovaOrb 1 8 none SQ SC SC 12 necromancer_poison_cast 30 20 1 1 7 28 1 1 4 damage synergy 1 7 fire 162 4 7 10 12 14 162 4 7 10 12 14 50 896 80000 +ZharCloak 543 cloak of shadows 47 57347 cloak_of_shadows cloaked ln34 dm12 skill_handofathena "max(edln,25)" velocitypercent -"min(ln78,65)" item_armor_percent ln78 / 2 7 1 0 none SC SC SC 1 12 20 1 8 13 0 1 30 min radius of effect 50 max radius of effect 125 duration 0 Duration per level 10 percent armor bonus 75 slow percent 3 percent armor bonus per level 1 8 2 512 20000 +DemonPillar Fireball 544 4 demonpillarfireball sorceress_cast_fire fire_cast_2 11 demonpillarfireball 1 0 none A1 A1 A1 1 1 par1 fire disc radius par2 damage radius 3 Fire disc radius 4 Radial Damage Radius 1 8 fire 280 0 0 0 0 0 280 0 0 0 0 0 0 +Merc Magic Arrow 545 magic arrow 4 8 magicarrow 11 17 magicarrow 1 0 1 rng miss A1 A1 xx 1 1 20 1 0 5 16 1 1 1 # of arrows 75 mag dmg% conversion 10 extra arrows level 18 damage synergy 1 10 9 8 96 mag 3 2 5 15 30 45 5 3 7 17 34 51 (skill('Inner Sight'.blvl)+skill('Slow Movement'.blvl)+skill('Guided Arrow'.blvl))*par8 256 5000 +UberDiabRun 546 71 103 diablo_run 41 59 1 0 none SQ SQ xx 22 1 1 1 20 velocity 8 stop anim len 14 stop anim frame 5 start frame 13 repeat on frame 16 repeat len 6 repeat back frame 1 5 8 300 0 75 75 75 75 550 0 125 125 125 125 0 +ZharMiniBossMeteorBlizzard 547 28 ZharMiniBossMeteorBlizzardCenter ZharMiniBossMeteorBlizzardCenter ZharMiniBossMeteorBlizzardCenter monster_cast_fire fire_cast_2 28 ZharMiniBossMeteorBlizzardCenter 1 3 none SQ SQ S1 1 1 0 radius 0 Missile delay 0 Change duration in Missiles.xls 0 ? 0 ? 1 8 fire 500 750 0 +ZharMiniBossCombustion 548 159 combustion combustion combustion sorceress_cast_fire fire_cast_2 100 combustion 1 7 none SC SC xx 1 10 sorceress_cast_fire 24 20 1 1 8 10 1 1 par1 # missiles 32 number of missiles 12 damage synergy 1 7 fire 800 1000 768 60000 +DemonPillar Lightning 549 139 demonpillarlightmaker fingermage_bolt_cast_1 light_cast_2 81 demonpillarlightmaker 1 0 none A1 A1 S1 1 1 1 8 ltng 480 0 180 180 180 180 480 0 180 180 180 180 0 +GuardianOfFateSummon 550 GuardianOfFateSummonOrb necromancer_bone_cast blood_warp 29 GuardianOfFateSummonOrb 1 8 none SQ SC SC 1 necromancer_bone_cast 30 20 1 1 7 28 1 1 4 damage synergy 1 7 80000 +A4 Mastery 551 merc_passive_mastery item_healafterkill 10 + lvl * 2 hpregen 5 + lvl * 2 1 3 none xx 1 32 0 8 0 0 1 1 1 8 512 50000 +A4 AmpDmg 552 amplify damage 30 3 amplifydamage ln34 par1 damageresist -(par5 + par6*lvl) necromancer_curse_cast 18 30 curseamplifydamage cursecast 1 10 none SC SC S2 4 1 necromancer_curse_cast 1 20 1 1 6 8 1 1 12 radius 0 radius per level 150 duration 5 additional duration/level 10 % additional damage taken 1 increase per level 1 8 mag 256 5000 +WarlordMiniBoss1BaalFire 553 139 warlordminiboss1baalmaker druid_firecast_a 81 warlordminiboss1baalmaker 1 0 none A1 A1 A1 1 1 1 8 fire 500 850 0 +Energy Shield SelfAura 554 energy shield selfaura 18 32769 energyshield absorbdamage 24 sorceress_cast_lightning sorceress_energyshield energyshieldhit0 light_cast_2 54 103 1 1 4 none RN RN RN 30 20 0 8 0 0 1 1 1 25 "min(edmn,90)" damage absorption "max(par5-blvl-(stat('es_efficiency'.accr)), 14)" ratio 34 Mana Damage mult in sixteenths 1 8 ltng 15 2 2 2 2 2 896 80000 +Chilling Armor SelfAura 555 chilling armor selfaura 18 chillingarmorbolt 32769 chillingarmor skill_armor_percent ln12 toblock 5 hitbymissile 1 damagedinmelee 3 sorceress_cast_cold sorceress_shiverarmor ice_cast_3 chillarmor_hit 54 103 chillingarmorbolt 1 1 5 none RN RN RN 4 1 1 24 20 0 8 0 0 1 1 1 25 45 % AC Bonus 5 % AC bonus per level 20 damage synergy 1 7 cold 10 3 6 9 12 15 14 4 7 10 13 16 skill('Cold Enchant'.blvl)*par8 100 5 5 5 768 60000 +Quickness SelfAura 556 quickness selfaura 18 32769 quickness velocitypercent edln attackrate ((110*blvl) * (par4-par3))/(100 * (blvl+6)) + par3 assassin_quickness 1 1 0 none RN RN RN 6 20 0 8 0 0 1 1 1 25 15 min % increased attack speed 60 max % increased attack speed 1 8 20 2 1 1 384 10000 +Blade Shield SelfAura 557 blade shield selfaura 28 54 par4 blade shield attachment 33667 bladeshield 7500 par4 par4 assassin_bladeshield 1 0 none RN RN RN 24 20 0 8 0 0 1 1 1 1 par3 - (blvl / 2) 20 delay 4 radius to attack in 10 damage synergy 1 33 3 8 32 1 5 7 10 13 16 30 5 7 10 13 16 (skill('Blade Sentinel'.blvl)+skill('Blade Fury'.blvl))*par8 768 60000 +IskatuBlizzard 558 28 iskatublizcenter amazon_cast_poison 28 iskatublizcenter 1 3 none SQ SQ S1 1 1 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 8 0 +ButcherAura 559 66 42371 butchermap butchermap 40 item_magicbonus 250 item_goldbonus 500 1 6 none mele xx 5 1 30 20 0 8 0 0 1 1 1 25 1 8 896 80000 +IskatuMagicOrb 560 IskatuMagicOrb necromancer_bone_cast death_sentry 29 IskatuMagicOrb 1 8 none SQ SC SC 12 necromancer_bone_cast 30 20 1 1 7 28 1 1 4 damage synergy 1 7 magic 400 0 85 85 85 85 500 0 85 85 85 85 50 896 80000 +RakanothStrike 561 cobra strike 23 170 1 171 172 par5 64 2 bladefragment1 fistsoffireexplode rakanoth_steal par3 progressive_steal progressive_tohit par4 106 13 11 bladefragment1 fistsoffireexplode par5 # missiles 64 # nova missiles 1 0 h2h asm A1 A1 A2 1 1 1 1 12 20 1 1 ln12 %lifesteal 40 Base percent life steal 5 Percent life steal per level 7500 duration 50 tohit bonus for each charge-up 8 # of missiles 1 60 14 8 128 25 0 0 0 12 512 20000 +TorajanBossNest 562 49 181 36 50 1 0 none SQ SQ xx 1 1 35 Max # of egg spawns 1 8 0 +KanemithFirestorm 563 firestorm 166 kanemithfirestormmaker druid_firecast_b ice_cast_2 58 kanemithfirestormmaker 1 0 none A1 A1 A1 1 sorceress_cast_cold 1 20 1 1 8 4 0 1 par1+(blvl/5) # missiles 5 Number of missiles 0 Number of missiles per level 0 ? 0 ? 0 ? 0 ? 0 damage synergy 1 4 cold 175 225 100 256 5000 +KanemithShockWeb 564 shock field 43 par1+lvl/par2 kanemithshock field in air (par1+lvl/par2)/3+1 weapon_throw_1 5 kanemithshock field in air 1 0 rng A2 A2 A2 1 6 20 1 1 8 6 0 1 14 Number of missiles 0 Levels per missile 0 damage synergy 1 6 ltng 1 800 11 384 10000 +SharptoothUnholyOrb 565 frozen orb sharptoothunholyorb sorceress_cast_cold 29 sharptoothunholyorb 1 8 none SQ SC SC 12 1 necromancer_curse_cast 30 20 1 1 7 28 1 1 0 damage synergy 1 7 magic 300 3 9 15 21 28 400 5 11 17 23 30 896 80000 +SharptoothChainPoison 566 chain lightning 26 sharptoothchainpoison sharptoothchainpoison sharptoothchainpoison par1 sorceress_cast_lightning light_cast_1 27 sharptoothchainpoison sharptoothchainpoison sharptoothchainpoison 1 2 none SQ SC SC 12 1 necromancer_curse_cast 24 20 1 1 7 8 1 1 "min(ln34 / 5, 14)" # hits 20 radius of jump to next target 26 bolts (5ths) 1 bolts per level (5ths) 5 5ths 6 damage synergy 1 4 pois 650 0 0 0 0 0 750 75 768 60000 +SharptoothArmageddon 567 124 sharptootharmageddoncontrol sharptootharmageddoncontrol sharptootharmageddoncontrol armageddon ln12 par3 druid_firecast_a druid_fire_cast_2 92 sharptootharmageddoncontrol sharptootharmageddonrock 15 frames 34 fall rate 15 slide rate 1 0 none A1 A1 A1 1 1 1500 base duration 0 duration per level 30 radius to drop meteors 17 frame delay between rocks ? ? 1 8 300 10 13 17 21 25 400 11 15 19 23 27 fire 300 10 13 17 21 25 400 11 15 19 23 27 896 80000 +RadamentBossRoyalFire 568 143 radamentbossroyalfiremaker druid_firecast_b druid_fire_cast_2 83 radamentbossroyalfiremaker 1 0 none SC SC SC 1 1 30 20 1 1 8 4 0 1 par6 # missiles 8 radius of jump to next target 13 256 / (x * 4) #missiles 1 8 fire 500 600 896 80000 +WispBossNova 569 nova 41 20 willowispbossnova willowispbossnova willowispbossnova willowispbossnova sorceress_cast_lightning light_cast_1 15 willowispbossnova willowispbossnova 1 2 none SC SC xx sorceress_cast_lightning 1 1 1 7 16 1 1 12 number of missiles 4 additional missiles per level 4 damage synergy 1 8 ltng 600 0 0 0 0 0 700 0 0 0 0 0 512 20000 +RadamentBossMeteor 570 meteor 28 radamentmeteorcenter radamentmeteorcenter radamentmeteorcenter ln12 - (stat('pvp_disable'.accr)*3) sorceress_cast_fire fire_cast_2 28 radamentmeteorcenter 1 6 none SC SC xx 4 1 1 sorceress_cast_fire fire_cast_2 24 20 Fire Ball Fire Wall 13 1 1 7 20 1 1 ln12 radius 10 radius of explosion 0 radius per level 175 Frames of fire 0 Frames of fire per level 6 ele damage synergy 6 phys damage synergy 1 8 25 7 10 13 15 17 30 9 12 15 18 21 ((100+(skill('Fire Ball'.blvl) + skill('Blaze'.blvl) + skill('Inferno'.blvl))*par7) * (100+stat('passive_fire_mastery'.accr)) / 100) - 100 fire 25 7 10 13 15 17 30 9 12 15 18 21 (skill('Fire Ball'.blvl) + skill('Blaze'.blvl) + skill('Inferno'.blvl))*par7 768 60000 +LucionNova 571 184 lucionnovaslow lucionnovafast sorceress_cast_lightning light_cast_1 1 0 none SC SC xx sorceress_cast_lightning 1 20 1 1 5 40 1 1 1 8 1 1 2 5 9 13 2 1 2 6 12 18 ltng 1 1 2 6 10 14 1 1 2 7 13 19 384 10000 +LucionBoneWave 572 lucionbonefingers necromancer_bone_cast lucionbonefingers 1 6 none SC SC xx necromancer_bone_cast 12 20 1 1 6 16 1 1 1 8 512 20000 +LucionBlink 573 155 lucionblinknova druid_windcast siege_beast_dust 113 lucionblinknova 32 # cltMissileA @target 1 1 0 none SC SC xx 1 1 2 sorceress_teleport teleport 18 20 1 8 24 -1 1 %dmg increase 32 # cltMissileA @target 0 debuff frames 0 base dmg reduction 1 8 640 60000 +LucionRoyalFire 574 143 lucionroyalfiremaker 83 lucionroyalfiremaker 1 0 none SC SC SC 30 20 1 1 8 4 0 1 par6 # missiles 8 radius of jump to next target 21 256 / (x * 4) #missiles 1 8 ltng 1925 275 1925 275 896 80000 +LucionDash 575 charge 76 185 luciondashnova luciondashtrail 1 paladin_charge 58 114 luciondashnova luciondashtrail 32 # nova missileA on leave 16 # nova missileB on arrive 1 2 none SQ A1 xx 4 12 20 1 1 8 9 0 32 # nova MissileA on leave 16 # nova MissileB on arrive 150 percent increase in velocity 0 ? plus % damage plus % dam per level 2 Trails attack speed bonus 20 damage synergy 1 75 15 8 128 512 20000 +LucionPunish 576 186 lucionpunishtargetindicator sorceress_cast_lightning light_cast_1 1 6 none SC SC xx 1 sorceress_cast_lightning 24 20 1 1 7 34 1 1 16 # missiles 6 radius 1 8 768 60000 +EruptionDemonRoadBoss 577 eruption 28 erruption center demon road boss 28 erruption center demon road boss 1 0 none A1 A1 xx 1 4 1 1 12 20 Molten Boulder 13 1 1 8 10 0 1 par1 radius par2 - (blvl / 10) frequency 5 radius 7 Missile delay 0 Change duration in Missiles.xls 10 damage synergy 1 8 110 160 (skill('Firestorm'.blvl)+skill('Molten Boulder'.blvl))*par8 512 20000 +Tentacle 578 hydra 14 144 passive_fire_mastery stat('passive_fire_mastery'.accr) baaltentacle5 hydra "min(9 + stat('extra_hydra'.accr) * 3, 15)" S2 HydraFireball lvl Fire Bolt skill('Fire Bolt'.blvl) Fire Ball skill('Fire Ball'.blvl) 1 sorceress_cast_fire fire_cast_2 17 1 7 none SC SC S1 4 1 1 sorceress_cast_fire fire_cast_2 30 20 Enchant 1 1 7 40 1 1 125 duration 0 additional duration/level 6 damage synergy 1 7 fire 84 16 23 31 38 44 117 20 25 35 41 47 (skill('Fire Bolt'.blvl) + skill('Lesser Hydra'.blvl))*par8 896 80000 +LucionCharge 579 charge 31 67 1 paladin_charge 25 37 1 2 none mele SQ A1 xx 4 8 1 1 1 1 12 20 Smite 1 1 8 9 0 ln34+(skill('Vigor'.blvl)+skill('Might'.blvl))*par8 damage % elem conversion% 150 percent increase in velocity 0 ? 25 plus % damage plus % dam per level 2 Trails 0 ? 20 damage synergy 1 50 15 8 128 512 50000 +LucionDeath1 580 169 luciondeathcontrol 3 monfrenzy 249975 5 passive_pois_mastery 20 passive_cold_mastery 20 passive_mag_mastery 10 izual_death 105 luciondeathcontrol luciondeathcontrol luciondeathcontrol 1 6 none SC SC xx 4 1 1 1 1 7 34 1 1 ln12 radius 4 radius of explosion 0 radius per level 0 Frames of fire 0 Frames of fire per level 5 damage synergy 1 8 18 36 24 48 48 49 30 66 24 48 48 50 0 +LucionDeath2 581 169 lucioncenter 3 monfrenzy 249975 5 passive_pois_mastery 20 passive_cold_mastery 20 passive_mag_mastery 10 izual_death 105 lucioncenter lucioncenter lucioncenter 1 6 none SC SC xx 4 1 1 1 1 7 34 1 1 ln12 radius 4 radius of explosion 0 radius per level 0 Frames of fire 0 Frames of fire per level 5 damage synergy 1 8 18 36 24 48 48 49 30 66 24 48 48 50 0 +LucionDeath3 582 169 luciondeathcontrol 3 monfrenzy 249975 5 passive_pois_mastery 20 passive_cold_mastery 20 passive_mag_mastery 10 izual_death 105 luciondeathcontrol luciondeathcontrol luciondeathcontrol 1 6 none SC SC xx 4 1 1 1 1 7 34 1 1 ln12 radius 4 radius of explosion 0 radius per level 0 Frames of fire 0 Frames of fire per level 5 damage synergy 1 8 18 36 24 48 48 49 30 66 24 48 48 50 0 +LucionDeath4 583 169 luciondeathcontrol 3 monfrenzy 249975 5 passive_pois_mastery 20 passive_cold_mastery 20 passive_mag_mastery 10 izual_death 105 luciondeathcontrol luciondeathcontrol luciondeathcontrol 1 6 none SC SC xx 4 1 1 1 1 7 34 1 1 ln12 radius 4 radius of explosion 0 radius per level 0 Frames of fire 0 Frames of fire per level 5 damage synergy 1 8 18 36 24 48 48 49 30 66 24 48 48 50 0 +MonSmiteLucion 584 smite 150 weapon_2hs_large_1 1 1 9 h2h 4 shld S1 S1 xx 1 1 1 1 1 20 1 1 8 2 0 ln34 damage % "min(250,ln12)" stunlen 25 Stun Length 0 additional frames/level 15 Percent bonus damage 15 percent damage per level 1 8 8 256 30000 +MonLowerRes 585 lower resist 30 3 lowerresist ln34 ln12 fireresist -ln56 lightresist -ln56 coldresist -ln56 poisonresist -ln56 necromancer_curse_cast 18 30 curselowerresist cursecast 1 8 none SC SC S2 4 1 necromancer_curse_cast 1 20 1 1 6 20 1 1 6 radius 0 radius per level 300 duration 0 additional duration/level 25 min % resist lower 0 -% per level 1 8 mag 896 80000 +HydraFireball 586 hydrafireball hydrafireball 1 0 none SC SC SC 1 1 1 1 8 0 +SummonVoidlingUniqueMap 587 49 voidlingUniqueMapSummon rathmasummon 3 S2 necromancer_curse_cast 1 5 none SC SC xx 4 18 20 1 7 25 1 1 par7*lvl hp % adjustment 18 damage synergy 75 %additional golem damage per level 10 hp per level 1 8 640 40000 +Bone Spear Putrid Defiler 588 bone spear 8 putriddefilerdungeonspear putriddefilerdungeonspear necromancer_bone_cast 19 17 putriddefilerdungeonspear putriddefilerdungeonspear bonecast 1 6 none SC SC xx 1 necromancer_bone_cast 18 20 Teeth 1 1 6 28 1 1 1 # missiles 10 Bone Armor Synergy 10 damage synergy 1 8 pois 220 300 640 40000 +SummonViperUniqueMap 589 49 clawviper3ImperialPalaceBoss rathmasummon 3 S2 spawnedminion necromancer_curse_cast 1 5 none SC SC xx 4 18 20 1 7 25 1 1 par7*lvl hp % adjustment 18 damage synergy 75 %additional golem damage per level 10 hp per level 1 8 640 40000 +ChargedBoltImperialMiniBoss 590 charged bolt 17 chargedboltImperialMiniBoss chargedboltImperialMiniBoss chargedboltImperialMiniBoss necromancer_poison_cast 23 chargedboltImperialMiniBoss 1 1 none SC SC xx 1 necromancer_poison_cast 1 20 1 1 5 24 4 1 "min(28,ln12)" # bolts 35 Bolts to send out 0 Additional bolts per level 7 damage synergy 1 7 80 100 pois 40 50 125 256 5000 +ImperialMiniBossBlast 591 53 95 ImperialMiniBossArcticBlast 54 ImperialMiniBossArcticBlast ImperialMiniBossArcticBlast 1 0 none SQ SQ xx 18 1 1 par1 length of fire 2 density 15 frame length 1 8 0 +UberDiabSummon 592 14 177 dcloneskele dclonesummon 99 S1 monster_diablo_taunt_1 1 6 none SC SC xx 1 1 1 7 28 1 1 par1 + (lvl - 8) #skele summons, base level is 8 par2 + (lvl - 8) #arch summons, base level is 8 par3 + (lvl - 8) #mage summons, base level is 8 12 # normal skeles 7 # skele archers 7 # skele mages 85 %hp for phase 1 60 %hp for phase 2 35 %hp for phase 3 1 8 896 80000 +Armageddon SelfAura 593 armageddon selfaura 124 armageddoncontrol armageddoncontrol armageddoncontrol 32769 armageddon 7500 par3 druid_firecast_a druid_fire_cast_2 92 armageddontail armageddonrock 20 frames 30 fall rate 15 slide rate 1 0 none SC SC xx 1 30 20 0 8 0 0 1 1 1 1 25 1500 base duration 75 duration per level 9 radius to drop meteors 9 frame delay between rocks 0 duration synergy 12 damage synergy 1 80 6 8 15 10 13 17 21 25 45 11 15 19 23 27 (skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*par8 fire 15 10 13 17 21 25 45 11 15 19 23 27 (skill('Molten Boulder'.blvl)+skill('Volcano'.blvl))*par8 896 80000 +Shock Field Ureh Boss 594 shock field 43 par1+lvl/par2 shock field in air Ureh Boss (par1+lvl/par2)/3+1 weapon_throw_1 5 shock field in air Ureh Boss 1 0 rng S2 S2 S2 1 1 6 20 Fire Trauma 25 1 1 8 6 0 1 16 Number of missiles Levels per missile 17 damage synergy 1 4 ltng 500 600 11 384 10000 +Fire Trauma Ureh Boss 595 fire trauma 43 par1+blvl/par2 bomb in air Ureh Boss (par1+blvl/par2)/2+1 weapon_throw_1 5 bomb in air Ureh Boss 1 0 rng S2 S2 S2 1 1 20 1 1 5 16 1 1 12 # missiles 0 levels per missile 18 damage synergy 1 7 fire 200 300 (skill('Shock Field'.blvl) + skill('Charged Bolt Sentry'.blvl) + skill('Lightning Sentry'.blvl) + skill('Chain Lightning Sentry'.blvl) + skill('Wake of Fire Sentry'.blvl) + skill('Inferno Sentry'.blvl)) * par8 5 256 5000 +Thunder Storm SelfAura 596 thunder storm selfaura 13 29 thunderstorm1 32769 thunderstorm sorceress_thunder_cast lightning light_cast_2 84 thunderstorm1 1 1 5 none SC SC xx 1 24 20 1 8 19 0 1 1 1 1 par3 - (blvl * 25 / 20) 800 duration 200 additional duration/level 50 base repeat time 1 frame decrease per level 17 radius 8 damage synergy 1 8 ltng 1 2 3 4 5 6 100 4 5 6 7 8 (skill('Charged Bolt'.blvl) + skill('Nova'.blvl)) * par8 768 60000 +VolcanoInvaderDruid 597 volcano 123 volcano par1 druid_firecast_a druid_fire_cast_2 91 volcano overlay fire volcano 1 0 none SC SC xx 1 4 1 1 sorceress_cast_fire druid_fire_cast_2 24 20 Eruption 13 1 1 8 12 0 1 par2 damage delay 12 debris range 2 delay between debris 8 damage synergy 8 fire damage synergy 1 8 8 22 fire 8 22 768 60000 +ArmageddonInvaderDruid 598 armageddon 124 armageddoncontrol armageddoncontrol armageddoncontrol armageddon ln12 par3 druid_firecast_a druid_fire_cast_2 92 armageddontail armageddonrock 20 frames 30 fall rate 15 slide rate 1 0 none SC SC xx 1 4 30 20 Volcano 1 1 8 35 0 1 5000 base duration 75 duration per level 12 radius to drop meteors 12 frame delay between rocks 5 fire claw damage synergy 0 duration synergy 10 damage synergy 1 80 6 8 60 80 fire 60 80 896 80000 +Frozen Orb Light 599 frozen orb frozenorb light sorceress_cast_lightning light_cast_1 29 frozenorb light 1 8 none SQ SC SC 12 188 117 sorceress_cast_lightning 30 20 Blizzard 1 1 7 28 1 1 4 damage synergy 1 8 ltng 400 500 896 80000 +Charged Bolt Djinnboss 600 charged bolt 17 chargedbolt Djinnboss chargedbolt Djinnboss chargedbolt Djinnboss sorceress_cast_lightning light_cast_1 23 chargedbolt Djinnboss 1 1 none SC SC xx 1 sorceress_cast_lightning 1 20 1 1 5 24 2 1 "min(28,ln12)" # bolts 25 Bolts to send out Additional bolts per level 7 damage synergy 1 8 ltng 150 250 256 5000 +DjinnBoss Poison Bolt 601 fire ball 8 poisonbolt Djinboss 4 + blvl / 5 necromancer_poison_cast 11 17 poisonbolt Djinboss poisonbolt Djinboss poisonbolt Djinboss 1 5 none SC SC xx 1 necromancer_poison_cast 12 20 Fire Bolt 1 1 5 40 2 1 12 # missiles 15 damage synergy 1 20000 8 (skill('Fire Bolt'.blvl)+skill('Combustion'.blvl))*par8 512 20000 +UnHolyBolt DjinnBoss 602 85 unholybolt Djinboss unholybolt Djinboss 1 0 none SQ SQ xx 1 1 1 8 0 diff --git a/api/src/index.ts b/api/src/index.ts index 8a32a85..6797ba2 100644 --- a/api/src/index.ts +++ b/api/src/index.ts @@ -1,18 +1,23 @@ import { createServer, startServer } from "./server"; -import { closeAllDatabases } from "./database"; +import { characterDB, closeAllDatabases, economyDB } from "./database"; import { initializeRedis, closeRedis } from "./utils/cache"; import { logger as mainLogger } from "./config"; const logger = mainLogger.createNamedLogger("API"); -// Initialize Redis -initializeRedis().catch((err) => { - logger.error("Failed to initialize Redis on startup", { error: err }); -}); +async function main(): Promise { + try { + await Promise.all([characterDB.ready, economyDB.ready, initializeRedis()]); + + const app = createServer(); + startServer(app); + } catch (error) { + logger.error("Failed to initialize API", { error }); + process.exit(1); + } +} -// Create and start the server -const app = createServer(); -startServer(app); +void main(); // Graceful shutdown process.on("SIGTERM", async () => { diff --git a/api/src/jobs.ts b/api/src/jobs.ts index 0107687..a700f90 100644 --- a/api/src/jobs.ts +++ b/api/src/jobs.ts @@ -2,19 +2,29 @@ import { startCharacterScraper } from "./jobs/character-scraper"; import { startOnlinePlayersTracker } from "./jobs/online-players-tracker"; import { startLeaderboardUpdater } from "./jobs/leaderboard-updater"; import { logger as mainLogger } from "./config"; +import { characterDB, economyDB } from "./database"; const logger = mainLogger.createNamedLogger("Jobs"); /* We use a seperate jobs.ts file instead of placing it all in the main index.ts since we scale to 20 instances of the API in production */ -//Start background jobs -startCharacterScraper().catch((error) => { - logger.error("Failed to start character scraper:", error); -}); +async function main(): Promise { + await Promise.all([characterDB.ready, economyDB.ready]); -startOnlinePlayersTracker().catch((error) => { - logger.error("Failed to start online players tracker:", error); -}); + // Start background jobs after the database schema is ready. + startCharacterScraper().catch((error) => { + logger.error("Failed to start character scraper:", error); + }); + + startOnlinePlayersTracker().catch((error) => { + logger.error("Failed to start online players tracker:", error); + }); + + startLeaderboardUpdater().catch((error) => { + logger.error("Failed to start leaderboard updater:", error); + }); +} -startLeaderboardUpdater().catch((error) => { - logger.error("Failed to start leaderboard updater:", error); +void main().catch((error) => { + logger.error("Failed to initialize jobs", { error }); + process.exit(1); }); diff --git a/api/src/routes/characters.ts b/api/src/routes/characters.ts index 2613bf9..daa5569 100644 --- a/api/src/routes/characters.ts +++ b/api/src/routes/characters.ts @@ -11,12 +11,46 @@ import { deleteCachePattern, } from "../utils/cache"; import { calculateTotalSkills } from "../utils/skill-calculator"; -import { CharacterResponse } from "../types"; +import { CharacterResponse, CharacterData } from "../types"; import fetch from "node-fetch"; +import { calculateDamage } from "../utils/damage-calculator"; +import { enrichArmoryPayload } from "../utils/armory-payload"; const logger = mainLogger.createNamedLogger("API"); const router = Router(); +function hasDamageCalculatorInput( + data: Partial | null | undefined +): data is CharacterData { + const character = data?.character; + + return Boolean( + character && + Array.isArray(data?.items) && + Array.isArray(character.skills) && + character.class?.name && + character.attributes + ); +} + +function attachDamageCalculation( + data: Partial | null | undefined +) { + if (!hasDamageCalculatorInput(data)) { + return; + } + + try { + enrichArmoryPayload(data); + data.damageCalculation = calculateDamage(data); + } catch (error: unknown) { + logger.warn("Damage calculation failed", { + character: data.character?.name, + error: error instanceof Error ? error.message : String(error), + }); + } +} + const characterRefreshLimiter = rateLimit({ windowMs: 60 * 60 * 1000, max: 10, @@ -122,9 +156,7 @@ router.get( const { name } = req.params; const { gameMode = "softcore", season } = req.query; - const seasonNumber = season - ? parseInt(season as string, 10) - : config.currentSeason; + const seasonNumber = season ? parseInt(season as string, 10) : undefined; const MODES = ["hardcore", "softcore"]; let character = await characterDB.getCharacterByName( @@ -146,8 +178,8 @@ router.get( } } - //TODO: pass season param and remove this - if (!character) { + // Keep explicit-season links tolerant of the previous default-season behavior. + if (!character && seasonNumber !== undefined) { for (const gm of MODES) { character = await characterDB.getCharacterByName( gm, @@ -164,12 +196,15 @@ router.get( } // Calculate realStats from items before returning + enrichArmoryPayload(character as unknown as Partial); if (character.items && character.items.length > 0) { // @ts-expect-error - character structure is validated by DB const statParser = new CharacterStatParser(character); character.realStats = statParser.parseAndGetCharStats(); } + attachDamageCalculation(character as unknown as Partial); + res.json(character); } catch (error: unknown) { logger.error("Error fetching character", { @@ -293,12 +328,15 @@ router.get( } // Calculate realStats from items before returning + enrichArmoryPayload(snapshot as unknown as Partial); if (snapshot.items && snapshot.items.length > 0) { // @ts-expect-error - snapshot structure is validated by DB const statParser = new CharacterStatParser(snapshot); snapshot.realStats = statParser.parseAndGetCharStats(); } + attachDamageCalculation(snapshot as unknown as Partial); + res.json(snapshot); } catch (error: unknown) { logger.error("Error fetching character snapshot", { @@ -724,6 +762,7 @@ router.post("/:name/refresh", characterRefreshLimiter, async (req: Request, res: // Set lastUpdated and calculate realSkills (same as scraper does) charData.lastUpdated = now; + enrichArmoryPayload(charData as unknown as Partial); charData.realSkills = calculateTotalSkills( charData as unknown as CharacterResponse ); @@ -754,12 +793,15 @@ router.post("/:name/refresh", characterRefreshLimiter, async (req: Request, res: } // Calculate realStats from items (same as GET endpoint does) + enrichArmoryPayload(updatedChar as unknown as Partial); if (updatedChar.items && updatedChar.items.length > 0) { // @ts-expect-error - character structure is validated by DB const statParser = new CharacterStatParser(updatedChar); updatedChar.realStats = statParser.parseAndGetCharStats(); } + attachDamageCalculation(updatedChar as unknown as Partial); + logger.info(`Character ${name} successfully refreshed`); // Return same format as GET endpoint (character directly, not wrapped) diff --git a/api/src/routes/routes.test.ts b/api/src/routes/routes.test.ts index 7d165c7..52ad9bf 100644 --- a/api/src/routes/routes.test.ts +++ b/api/src/routes/routes.test.ts @@ -7,6 +7,19 @@ import statisticsRoutes from "./statistics"; import healthRoutes from "./health"; import leaderboardRoutes from "./leaderboard"; import { characterDB, economyDB } from "../database"; +import { calculateDamage } from "../utils/damage-calculator"; + +jest.mock("../utils/damage-calculator", () => ({ + calculateDamage: jest.fn(() => ({ + weaponOptions: [], + skillOptions: [], + playerAuraOptions: [], + transformationOptions: [], + alwaysActiveAuras: [], + profiles: [], + notes: [], + })), +})); jest.mock("../utils/cache", () => ({ getCacheValue: jest.fn(() => Promise.resolve(undefined)), // Default: no cache hit @@ -291,7 +304,7 @@ describe("API Routes", () => { expect(characterDB.getCharacterByName).toHaveBeenCalledWith( "softcore", "TestChar", - 12 + undefined ); }); @@ -306,7 +319,7 @@ describe("API Routes", () => { expect(characterDB.getCharacterByName).toHaveBeenCalledWith( "hardcore", "TestChar", - 12 + undefined ); }); @@ -350,6 +363,33 @@ describe("API Routes", () => { error: { message: "Failed to fetch character" }, }); }); + + it("should return character data when damage calculation fails", async () => { + const mockCharacter = { + character: { + name: "TestChar", + level: 90, + class: { name: "Druid" }, + attributes: {}, + skills: [], + }, + items: [], + }; + + (characterDB.getCharacterByName as jest.Mock).mockResolvedValue( + mockCharacter + ); + (calculateDamage as jest.Mock).mockImplementationOnce(() => { + throw new Error("Damage calculation error"); + }); + + const response = await request(app) + .get("/api/v1/characters/TestChar") + .expect(200); + + expect(response.body).toEqual(mockCharacter); + expect(calculateDamage).toHaveBeenCalled(); + }); }); describe("GET /api/v1/characters/accounts/:accountName", () => { diff --git a/api/src/types/damage.ts b/api/src/types/damage.ts new file mode 100644 index 0000000..6ee5018 --- /dev/null +++ b/api/src/types/damage.ts @@ -0,0 +1,229 @@ +export type DamageElement = + | "physical" + | "fire" + | "cold" + | "lightning" + | "magic" + | "poison"; + +export interface DamageRange { + min: number; + max: number; +} + +export interface PoisonDamage { + total: number; + durationSeconds: number; +} + +export interface PoisonDamagePayload extends PoisonDamage { + damage: DamageRange; +} + +export type DamageComponentSource = + | "weapon" + | "item" + | "skill" + | "summon" + | "monster" + | "missile" + | "aura" + | "passive" + | "stat" + | "transformation" + | "unknown"; + +export type DamageComponentTiming = "instant" | "over_time"; + +export interface DamageSourceReference { + table: string; + row?: string; + columns: string[]; + note?: string; +} + +export interface DamageComponent { + id: string; + label: string; + source: DamageComponentSource; + damageType: DamageElement; + timing: DamageComponentTiming; + damage: DamageRange; + baseDamage?: DamageRange; + poisonDamage?: PoisonDamage; + sourceRefs: DamageSourceReference[]; + notes: string[]; +} + +export interface DamageTotals { + instantDamage: DamageRange; + overTimeDamage: DamageRange; + combinedDamage: DamageRange; + averageInstantDamage: number; + averageCombinedDamage: number; + byElement: Partial>; + poisonDamage?: PoisonDamage; +} + +export interface DamageWeaponOption { + id: string; + label: string; + weaponSet: "primary" | "secondary"; + slot: "right" | "left" | "feet" | "summon"; + handMode: + | "one_handed" + | "two_handed" + | "missile" + | "kick" + | "summon" + | "unarmed" + | "dual_wield" + | "dual_throw"; + itemName: string; + baseName: string; + weaponType: string; + sequenceHits?: DamageSequenceHit[]; +} + +export interface DamageSkillOption { + id: string; + name: string; + level: number; + damageMode: "weapon" | "spell" | "summon"; + sourceSkillName?: string; + summonVariant?: string; + canUseTransformation: boolean; + allowedTransformationIds: string[]; +} + +export interface DamageAuraOption { + id: string; + name: string; + level: number; + levelOptions: number[]; + levelBonuses: DamageAuraLevelBonus[]; + selfLevelBonuses: DamageAuraLevelBonus[]; + partyLevelBonuses: DamageAuraLevelBonus[]; + source: "none" | "character_skill" | "manual"; +} + +export interface DamageAuraLevelBonus { + level: number; + skillLevelBonus: number; + physicalBonusPercent: number; + elementalDamage: Partial, DamageRange>>; + poisonDamage?: PoisonDamagePayload; +} + +export interface DamageTransformationOption { + id: string; + name: string; + level: number; + levelOptions: number[]; + levelBonuses: Array<{ + level: number; + physicalBonusPercent: number; + }>; +} + +export interface ActiveAuraSummary { + name: string; + level: number; + source: + | "player_skill" + | "player_item" + | "mercenary_native" + | "mercenary_item" + | "manual"; + carrier: "self" | "party"; +} + +export interface DamageSequenceHit { + label: string; + weaponId: string; + weaponSet: "primary" | "secondary"; + slot: "right" | "left"; + handMode: "one_handed" | "two_handed" | "missile" | "unarmed"; + itemName: string; +} + +export interface DamageProfileBreakdown { + weaponDamage: DamageRange; + flatPhysicalDamage: DamageRange; + physicalBonusPercent: { + stat: number; + nonWeapon: number; + passive: number; + selectedSkill: number; + selectedSkillSynergy: number; + transformation: number; + activeAuras: number; + total: number; + }; + elementalDamage: Partial, DamageRange>>; + poisonDamage?: PoisonDamage; +} + +export interface DamageProfileScope { + label: string; + count?: number; + countLabel?: string; + note: string; + sourceRefs: DamageSourceReference[]; +} + +export interface DamageProfile { + key: string; + weaponId: string; + skillId: string; + playerAuraId: string; + playerAuraCarrier: "self" | "party"; + playerAuraLevel: number; + transformationId: string; + skillDamageMode: "weapon" | "spell" | "summon"; + skillName: string; + sourceSkillName?: string; + summonVariant?: string; + skillLevel: number; + sequenceHits?: DamageSequenceHit[]; + selectedPlayerAura?: { + name: string; + level: number; + carrier: "self" | "party"; + }; + selectedTransformation?: { + name: string; + level: number; + }; + activeAuras: ActiveAuraSummary[]; + damageScope: DamageProfileScope; + damageComponents: DamageComponent[]; + damageTotals: DamageTotals; + totalPhysicalDamage: DamageRange; + totalElementalDamage: Partial< + Record, DamageRange> + >; + totalPoisonDamage?: PoisonDamage; + totalDamage: DamageRange; + averageHitDamage: number; + breakdown: DamageProfileBreakdown; + notes: string[]; +} + +export interface DamageCalculation { + weaponOptions: DamageWeaponOption[]; + skillOptions: DamageSkillOption[]; + playerAuraOptions: DamageAuraOption[]; + transformationOptions: DamageTransformationOption[]; + alwaysActiveAuras: ActiveAuraSummary[]; + defaultSelection?: { + weaponId: string; + skillId: string; + playerAuraId: string; + playerAuraCarrier: "self" | "party"; + playerAuraLevel: number; + transformationId: string; + }; + profiles: DamageProfile[]; + notes: string[]; +} diff --git a/api/src/types/index.ts b/api/src/types/index.ts index 8809cad..c05ea75 100644 --- a/api/src/types/index.ts +++ b/api/src/types/index.ts @@ -24,3 +24,6 @@ export * from "./stats"; // Service types export * from "./services"; + +// Damage types +export * from "./damage"; diff --git a/api/src/types/item.ts b/api/src/types/item.ts index 671e178..5d6140c 100644 --- a/api/src/types/item.ts +++ b/api/src/types/item.ts @@ -24,6 +24,12 @@ export interface IItemDamage { one_handed: IHandDamage; two_handed: IHandDamage; missile: IHandDamage; + kick?: IHandDamage; +} + +export interface IStatBonus { + strength?: number; + dexterity?: number; } export interface IBaseItem { @@ -43,6 +49,7 @@ export interface IBaseItem { "2hd": string; }; damage?: IItemDamage; + stat_bonus?: IStatBonus; } export interface IItemQuality { diff --git a/api/src/types/responses.ts b/api/src/types/responses.ts index 5999abc..0705704 100644 --- a/api/src/types/responses.ts +++ b/api/src/types/responses.ts @@ -1,16 +1,29 @@ import { ICharacter } from "./character"; import { IItem } from "./item"; import { IMercenary } from "./mercenary"; +import { DamageCalculation } from "./damage"; +import { CharStats } from "./stats"; + +export interface CalculatedSkillLevel { + skill: string; + level: number; + baseLevel?: number; +} export interface CharacterResponse { character: ICharacter | null; - mercenary?: unknown; + mercenary?: IMercenary | null; items: IItem[] | null; nullReason?: string; + realSkills?: CalculatedSkillLevel[]; + realStats?: CharStats; + damageCalculation?: DamageCalculation; + lastUpdated?: number; + accountName?: string; + [key: string]: unknown; } -export interface CharacterData { +export interface CharacterData extends CharacterResponse { character: ICharacter; - mercenary?: IMercenary; items: IItem[]; } diff --git a/api/src/utils/armory-payload.ts b/api/src/utils/armory-payload.ts new file mode 100644 index 0000000..71817f6 --- /dev/null +++ b/api/src/utils/armory-payload.ts @@ -0,0 +1,183 @@ +import fs from "fs"; +import path from "path"; +import { IItem } from "../types"; + +type ArmoryPayload = { + items?: IItem[] | null; +}; + +type ArmorTable = { + columns: string[]; + rowsByCode: Map; +}; + +type ArmorBootData = { + damage: { minimum: number; maximum: number }; + statBonus?: { strength?: number; dexterity?: number }; +}; + +const PD2_GAME_DATA_DIRECTORY = path.resolve( + process.cwd(), + "src", + "game-data", + "pd2", + "season-13" +); + +let cachedArmorTable: ArmorTable | null | undefined; + +function parseArmorTable(filePath: string): ArmorTable { + const text = fs.readFileSync(filePath, "utf8").replace(/^\uFEFF/, ""); + const lines = text.split(/\r?\n/).filter((line, index, allLines) => { + return line.length > 0 || index < allLines.length - 1; + }); + const columns = (lines.shift() || "").split("\t"); + const codeIndex = columns.indexOf("code"); + if (codeIndex < 0) { + throw new Error(`${path.basename(filePath)} is missing code column`); + } + + const rowsByCode = new Map(); + lines.forEach((line) => { + const row = line.split("\t"); + const code = row[codeIndex]; + if (code && !rowsByCode.has(code)) { + rowsByCode.set(code, row); + } + }); + + return { columns, rowsByCode }; +} + +function getArmorTable(): ArmorTable | null { + if (cachedArmorTable !== undefined) { + return cachedArmorTable; + } + + const armorPath = path.join(PD2_GAME_DATA_DIRECTORY, "Armor.txt"); + + cachedArmorTable = fs.existsSync(armorPath) ? parseArmorTable(armorPath) : null; + return cachedArmorTable; +} + +function getArmorCell(table: ArmorTable, row: string[], columnName: string): string { + const index = table.columns.indexOf(columnName); + return index >= 0 ? row[index] || "" : ""; +} + +function getArmorNumber(table: ArmorTable, row: string[], columnName: string): number { + const value = Number(getArmorCell(table, row, columnName)); + return Number.isFinite(value) ? value : 0; +} + +function getBaseCodes(item: IItem): string[] { + return [ + item.base?.id, + item.base_code, + item.base?.codes?.elite, + item.base?.codes?.exceptional, + item.base?.codes?.normal, + ].filter((code): code is string => Boolean(code)); +} + +function getArmorRowForItem(item: IItem): [ArmorTable, string[]] | undefined { + const table = getArmorTable(); + if (!table) { + return undefined; + } + + for (const code of getBaseCodes(item)) { + const direct = table.rowsByCode.get(code); + if (direct) { + return [table, direct]; + } + + const lowerCode = code.toLowerCase(); + const row = Array.from(table.rowsByCode.entries()).find( + ([rowCode]) => rowCode.toLowerCase() === lowerCode + )?.[1]; + if (row) { + return [table, row]; + } + } + + return undefined; +} + +function isEquippedBootItem(item: IItem): boolean { + if (item.location?.zone !== "Equipped" || item.location?.equipment !== "Boots") { + return false; + } + + const typeCode = item.base?.type_code?.toLowerCase(); + const typeName = item.base?.type?.toLowerCase() || ""; + return typeCode === "boot" || typeName.includes("boot"); +} + +function getArmorBootData(item: IItem): ArmorBootData | undefined { + const tableRow = getArmorRowForItem(item); + if (!tableRow) { + return undefined; + } + + const [table, row] = tableRow; + const minimum = getArmorNumber(table, row, "mindam"); + const maximum = getArmorNumber(table, row, "maxdam"); + if (minimum <= 0 && maximum <= 0) { + return undefined; + } + + const strength = getArmorNumber(table, row, "StrBonus"); + const dexterity = getArmorNumber(table, row, "DexBonus"); + + return { + damage: { minimum, maximum }, + statBonus: + strength > 0 || dexterity > 0 + ? { + ...(strength > 0 ? { strength } : {}), + ...(dexterity > 0 ? { dexterity } : {}), + } + : undefined, + }; +} + +function enrichBootItem(item: IItem): void { + if (!isEquippedBootItem(item)) { + return; + } + + const bootData = getArmorBootData(item); + if (!bootData) { + return; + } + + item.base.damage = { + one_handed: item.base.damage?.one_handed || {}, + two_handed: item.base.damage?.two_handed || {}, + missile: item.base.damage?.missile || {}, + kick: bootData.damage, + }; + item.damage = { + one_handed: item.damage?.one_handed || {}, + two_handed: item.damage?.two_handed || {}, + missile: item.damage?.missile || {}, + kick: bootData.damage, + }; + + if (bootData.statBonus) { + item.base.stat_bonus = { + ...item.base.stat_bonus, + ...bootData.statBonus, + }; + } +} + +export function enrichArmoryPayload(payload: T): T { + if (!Array.isArray(payload.items)) { + return payload; + } + + payload.items.forEach(enrichBootItem); + return payload; +} diff --git a/api/src/utils/damage-calculator.test.ts b/api/src/utils/damage-calculator.test.ts new file mode 100644 index 0000000..75571db --- /dev/null +++ b/api/src/utils/damage-calculator.test.ts @@ -0,0 +1,2169 @@ +//@ts-nocheck +import fs from "fs"; +import path from "path"; +import { CharacterData, IItem } from "../types"; + +const requiredGameFiles = [ + "Skills.txt", + "Missiles.txt", + "SkillDesc.txt", +]; +const gameDataPath = path.resolve( + process.cwd(), + "src", + "game-data", + "pd2", + "season-13" +); +const hasRequiredGameData = requiredGameFiles.every((fileName) => + fs.existsSync(path.join(gameDataPath, fileName)) +); + +type DamageCalculatorModule = typeof import("./damage-calculator"); +let calculateDamage: DamageCalculatorModule["calculateDamage"]; +type ArmoryPayloadModule = typeof import("./armory-payload"); +let enrichArmoryPayload: ArmoryPayloadModule["enrichArmoryPayload"]; + +function createStats() { + return { + fireRes: -70, + maxFireRes: 75, + coldRes: -70, + maxColdRes: 75, + lightningRes: -70, + maxLightningRes: 75, + poisonRes: -70, + maxPoisonRes: 75, + strength: 0, + dexterity: 0, + vitality: 0, + energy: 0, + fasterCastRate: 0, + increasedAttackSpeed: 0, + fasterHitRecovery: 0, + fasterRunWalk: 0, + crushingBlow: 0, + deadlyStrike: 0, + openWounds: 0, + openWoundsDPS: 0, + physicalDamageReduction: 0, + magicFind: 0, + goldFind: 0, + lifeLeech: 0, + manaLeech: 0, + hpPerKill: 0, + mpPerKill: 0, + lAbsorbPct: 0, + lAbsorbFlat: 0, + cAbsorbPct: 0, + cAbsorbFlat: 0, + fAbsorbPct: 0, + fAbsorbFlat: 0, + mAbsorbFlat: 0, + fireSkillDamage: 0, + coldSkillDamage: 0, + lightningSkillDamage: 0, + poisonSkillDamage: 0, + firePierce: 0, + coldPierce: 0, + lightningPierce: 0, + poisonPierce: 0, + }; +} + +function createWeapon(overrides: Partial = {}): IItem { + return { + id: overrides.id ?? "test-weapon", + hash: overrides.hash ?? "test-weapon", + name: overrides.name ?? "Test Club", + category: "weapon", + base_code: "clb", + base: { + id: "clb", + category: "weapon", + codes: {}, + name: "Club", + stackable: false, + type: "Club", + type_code: "club", + size: { height: 3, width: 1 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + }, + quality: { id: 2, name: "Normal" }, + location: + overrides.location ?? + { + zone: "Equipped", + storage: "Equipped", + zone_id: 1, + storage_id: 0, + equipment: "Right Hand", + equipment_id: 4, + }, + position: { row: 0, column: 0 }, + properties: [], + damage: { + one_handed: { minimum: 10, maximum: 20 }, + two_handed: {}, + missile: {}, + }, + is_identified: true, + is_socketed: false, + is_new: false, + is_ear: false, + is_starter: false, + is_simple: true, + is_ethereal: false, + is_personalized: false, + is_runeword: false, + socketed_count: 0, + item_level: 1, + graphic_id: 0, + class_specifics: false, + socket_count: 0, + modifiers: [], + corrupted: false, + desecrated: false, + ...overrides, + } as unknown as IItem; +} + +function createBoot(overrides: Partial = {}): IItem { + return { + id: overrides.id ?? "test-boots", + hash: overrides.hash ?? "test-boots", + name: overrides.name ?? "Test Boots", + category: "armor", + base_code: "test_boots", + base: { + id: "test_boots", + category: "armor", + codes: {}, + name: "Test Boots", + stackable: false, + type: "Boots", + type_code: "boot", + size: { height: 2, width: 2 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + damage: { + one_handed: {}, + two_handed: {}, + missile: {}, + kick: { minimum: 20, maximum: 30 }, + }, + stat_bonus: { strength: 100 }, + }, + quality: { id: 2, name: "Normal" }, + location: + overrides.location ?? + { + zone: "Equipped", + storage: "Equipped", + zone_id: 1, + storage_id: 0, + equipment: "Boots", + equipment_id: 9, + }, + position: { row: 0, column: 0 }, + properties: [], + is_identified: true, + is_socketed: false, + is_new: false, + is_ear: false, + is_starter: false, + is_simple: true, + is_ethereal: false, + is_personalized: false, + is_runeword: false, + socketed_count: 0, + item_level: 1, + graphic_id: 0, + class_specifics: false, + socket_count: 0, + modifiers: [], + corrupted: false, + desecrated: false, + ...overrides, + } as unknown as IItem; +} + +function createCharacter(skillName: string, level: number): CharacterData { + return { + character: { + name: "DamageTester", + status: { + is_hardcore: false, + is_dead: false, + is_expansion: true, + is_ladder: true, + }, + class: { id: 4, name: "Druid" }, + attributes: { + strength: 0, + dexterity: 0, + vitality: 0, + energy: 0, + }, + gold: { character: 0, stash: 0, total: 0 }, + points: { stat: 0, skill: 0 }, + life: 0, + mana: 0, + stamina: 0, + experience: 0, + level: 90, + skills: [{ id: 238, name: skillName, level }], + season: 13, + }, + items: [createWeapon()], + realSkills: [{ skill: skillName, level, baseLevel: level }], + realStats: createStats(), + } as unknown as CharacterData; +} + +const describeWithGameData = hasRequiredGameData ? describe : describe.skip; +const describeWithArmorData = + hasRequiredGameData && + fs.existsSync(path.join(gameDataPath, "Armor.txt")) + ? describe + : describe.skip; +const describeWithMonStatsData = + hasRequiredGameData && + fs.existsSync(path.join(gameDataPath, "MonStats.txt")) + ? describe + : describe.skip; + +function loadGameFile(fileName: string, keyColumn: string) { + const text = fs + .readFileSync(path.join(gameDataPath!, fileName), "utf8") + .replace(/^\uFEFF/, ""); + const lines = text.trimEnd().split(/\r?\n/); + const columns = lines[0].split("\t"); + const keyIndex = columns.indexOf(keyColumn); + const rowsByKey = new Map(); + + lines.slice(1).forEach((line) => { + const cells = line.split("\t"); + rowsByKey.set(cells[keyIndex], cells); + }); + + return { columns, rowsByKey }; +} + +function getGameFileCell(table, row: string[], columnName: string): string { + return row[table.columns.indexOf(columnName)] || ""; +} + +function getGameFileNumber(table, row: string[], columnName: string): number { + const value = Number(getGameFileCell(table, row, columnName)); + return Number.isFinite(value) ? value : 0; +} + +function getSourceLevelScaledValue( + table, + row: string[], + level: number, + baseColumn: string, + levelColumns: readonly string[] +): number { + let value = getGameFileNumber(table, row, baseColumn); + let currentLevel = 1; + const thresholds = [8, 16, 22, 28, Number.MAX_SAFE_INTEGER]; + + thresholds.forEach((threshold, index) => { + const scale = getGameFileNumber(table, row, levelColumns[index]); + while (currentLevel < level && currentLevel < threshold) { + value += scale; + currentLevel += 1; + } + }); + + const hitShift = getGameFileNumber(table, row, "HitShift"); + return value / 2 ** (8 - hitShift); +} + +function getExpectedAuraPayloadsFromSkillsTxt(skillName: string, level: number) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get(skillName)!; + const min = getSourceLevelScaledValue(skills, row, level, "EMin", [ + "EMinLev1", + "EMinLev2", + "EMinLev3", + "EMinLev4", + "EMinLev5", + ]); + const max = getSourceLevelScaledValue(skills, row, level, "EMax", [ + "EMaxLev1", + "EMaxLev2", + "EMaxLev3", + "EMaxLev4", + "EMaxLev5", + ]); + const minCalc = getGameFileCell(skills, row, "passivecalc1"); + const maxCalc = getGameFileCell(skills, row, "passivecalc2"); + const minParam = minCalc.match(/^edns\*par(\d+)\/256$/)?.[1]; + const maxParam = maxCalc.match(/^edxs\*par(\d+)\/256$/)?.[1]; + + expect(minParam).toBeDefined(); + expect(maxParam).toBeDefined(); + + return { + party: { + min: Math.floor(min), + max: Math.floor(max), + }, + self: { + min: Math.floor((Math.floor(min * 256) * getGameFileNumber(skills, row, `Param${minParam}`)) / 256), + max: Math.floor((Math.floor(max * 256) * getGameFileNumber(skills, row, `Param${maxParam}`)) / 256), + }, + }; +} + +function getExpectedMightPhysicalBonusFromSkillsTxt( + level: number, + source: "self" | "party" +) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get("Might")!; + const calcColumn = source === "self" ? "passivecalc1" : "aurastatcalc1"; + const calc = getGameFileCell(skills, row, calcColumn).replace(/\s+/g, ""); + const scaledMin = getSourceLevelScaledValue(skills, row, level, "EMin", [ + "EMinLev1", + "EMinLev2", + "EMinLev3", + "EMinLev4", + "EMinLev5", + ]); + + if (calc === "edmn") { + return Math.floor(scaledMin); + } + + const divisor = calc.match(/^edmn\/(\d+)$/)?.[1]; + expect(divisor).toBeDefined(); + return Math.floor(scaledMin / Number(divisor)); +} + +function getExpectedBattleCommandSkillLevelBonusFromSkillsTxt(level: number) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get("Battle Command")!; + const stat = getGameFileCell(skills, row, "aurastat1"); + const calc = getGameFileCell(skills, row, "aurastatcalc1").replace(/\s+/g, ""); + + expect(stat).toBe("item_allskills"); + expect(calc).toBe("1+blvl/10"); + + return Math.floor(1 + level / 10); +} + +function getExpectedBattleCommandPhysicalBonusFromSkillsTxt(level: number) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get("Battle Command")!; + const stat = getGameFileCell(skills, row, "aurastat2"); + const calc = getGameFileCell(skills, row, "aurastatcalc2").replace(/\s+/g, ""); + + expect(stat).toBe("damagepercent"); + expect(calc).toBe("ln34"); + + return ( + getGameFileNumber(skills, row, "Param3") + + (level - 1) * getGameFileNumber(skills, row, "Param4") + ); +} + +function getExpectedWarCryPhysicalSynergyFromSkillsTxt({ + howlBaseLevel, + battleCryBaseLevel, + tauntBaseLevel, + shoutBaseLevel, + battleCommandBaseLevel, + battleOrdersBaseLevel, +}: { + howlBaseLevel: number; + battleCryBaseLevel: number; + tauntBaseLevel: number; + shoutBaseLevel: number; + battleCommandBaseLevel: number; + battleOrdersBaseLevel: number; +}) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get("War Cry")!; + + expect(getGameFileCell(skills, row, "DmgSymPerCalc")).toContain( + "skill('Howl'.blvl)" + ); + + return ( + (howlBaseLevel + battleCryBaseLevel) * + getGameFileNumber(skills, row, "Param8") + + ( + tauntBaseLevel + + shoutBaseLevel + + battleCommandBaseLevel + + battleOrdersBaseLevel + ) * + getGameFileNumber(skills, row, "Param7") + ); +} + +function getExpectedVenomPoisonPayloadFromSkillsTxt( + venomLevel: number, + cobraStrikeBaseLevel: number, + poisonSkillDamage: number +) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get("Venom")!; + + expect(getGameFileCell(skills, row, "aurastat1")).toBe("poisonmindam"); + expect(getGameFileCell(skills, row, "aurastatcalc1")).toBe("edns"); + expect(getGameFileCell(skills, row, "aurastat2")).toBe("poisonmaxdam"); + expect(getGameFileCell(skills, row, "aurastatcalc2")).toBe("edxs"); + expect(getGameFileCell(skills, row, "aurastat3")).toBe( + "skill_poison_override_length" + ); + expect(getGameFileCell(skills, row, "aurastatcalc3")).toBe("edln"); + + const min = getSourceLevelScaledValue(skills, row, venomLevel, "EMin", [ + "EMinLev1", + "EMinLev2", + "EMinLev3", + "EMinLev4", + "EMinLev5", + ]); + const max = getSourceLevelScaledValue(skills, row, venomLevel, "EMax", [ + "EMaxLev1", + "EMaxLev2", + "EMaxLev3", + "EMaxLev4", + "EMaxLev5", + ]); + const durationFrames = getGameFileNumber(skills, row, "ELen"); + const synergyPercent = + cobraStrikeBaseLevel * getGameFileNumber(skills, row, "Param8"); + const withSynergy = { + min: Math.floor(min * durationFrames * (1 + synergyPercent / 100)), + max: Math.floor(max * durationFrames * (1 + synergyPercent / 100)), + }; + const damage = { + min: Math.floor(withSynergy.min * (1 + poisonSkillDamage / 100)), + max: Math.floor(withSynergy.max * (1 + poisonSkillDamage / 100)), + }; + + return { + damage, + total: Math.floor((damage.min + damage.max) / 2), + durationSeconds: durationFrames / 25, + }; +} + +function getExpectedHydraFirePayloadFromSkillsTxt( + hydraLevel: number, + fireBoltBaseLevel: number, + lesserHydraBaseLevel: number, + fireMasteryLevel: number +) { + const skills = loadGameFile("Skills.txt", "skill"); + const hydraRow = skills.rowsByKey.get("Hydra")!; + const fireMasteryRow = skills.rowsByKey.get("Fire Mastery")!; + const min = getSourceLevelScaledValue(skills, hydraRow, hydraLevel, "EMin", [ + "EMinLev1", + "EMinLev2", + "EMinLev3", + "EMinLev4", + "EMinLev5", + ]); + const max = getSourceLevelScaledValue(skills, hydraRow, hydraLevel, "EMax", [ + "EMaxLev1", + "EMaxLev2", + "EMaxLev3", + "EMaxLev4", + "EMaxLev5", + ]); + const synergyPercent = + (fireBoltBaseLevel + lesserHydraBaseLevel) * + getGameFileNumber(skills, hydraRow, "Param8"); + const masteryPercent = + getGameFileNumber(skills, fireMasteryRow, "Param1") + + Math.max(0, fireMasteryLevel - 1) * + getGameFileNumber(skills, fireMasteryRow, "Param2"); + + return { + min: Math.floor(Math.floor(min * (1 + synergyPercent / 100)) * (1 + masteryPercent / 100)), + max: Math.floor(Math.floor(max * (1 + synergyPercent / 100)) * (1 + masteryPercent / 100)), + }; +} + +function getExpectedSkeletalMagePayloadFromGameFiles( + missileName: string, + mageLevel: number, + skeletonMasteryLevel: number +) { + const skills = loadGameFile("Skills.txt", "skill"); + const missiles = loadGameFile("Missiles.txt", "Missile"); + const mageRow = skills.rowsByKey.get("Raise Skeletal Mage")!; + const masteryRow = skills.rowsByKey.get("Skeleton Mastery")!; + const missileRow = missiles.rowsByKey.get(missileName)!; + const min = getSourceLevelScaledValue(missiles, missileRow, mageLevel, "EMin", [ + "MinELev1", + "MinELev2", + "MinELev3", + "MinELev4", + "MinELev5", + ]); + const max = getSourceLevelScaledValue(missiles, missileRow, mageLevel, "Emax", [ + "MaxELev1", + "MaxELev2", + "MaxELev3", + "MaxELev4", + "MaxELev5", + ]); + const dotMultiplier = + getGameFileCell(missiles, missileRow, "EType") === "pois" + ? getGameFileNumber(missiles, missileRow, "ELen") || 1 + : 1; + const masteryPercent = + skeletonMasteryLevel * getGameFileNumber(skills, masteryRow, "Param3"); + + expect(getGameFileCell(skills, mageRow, "aurastat3")).toBe( + "passive_fire_mastery" + ); + expect(getGameFileCell(skills, mageRow, "aurastat5")).toBe( + "passive_pois_mastery" + ); + + return { + min: Math.floor(min * dotMultiplier * (1 + masteryPercent / 100)), + max: Math.floor(max * dotMultiplier * (1 + masteryPercent / 100)), + }; +} + +function getExpectedPlaguePoppyPoisonPayloadFromGameFiles({ + plaguePoppyLevel, + rabiesBaseLevel, + cycleOfLifeBaseLevel, + vinesBaseLevel, +}: { + plaguePoppyLevel: number; + rabiesBaseLevel: number; + cycleOfLifeBaseLevel: number; + vinesBaseLevel: number; +}) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get("Plague Poppy")!; + const min = getSourceLevelScaledValue(skills, row, plaguePoppyLevel, "EMin", [ + "EMinLev1", + "EMinLev2", + "EMinLev3", + "EMinLev4", + "EMinLev5", + ]); + const max = getSourceLevelScaledValue(skills, row, plaguePoppyLevel, "EMax", [ + "EMaxLev1", + "EMaxLev2", + "EMaxLev3", + "EMaxLev4", + "EMaxLev5", + ]); + const durationFrames = getGameFileNumber(skills, row, "ELen"); + const synergyPercent = + (rabiesBaseLevel + cycleOfLifeBaseLevel + vinesBaseLevel) * + getGameFileNumber(skills, row, "Param8"); + + expect(getGameFileCell(skills, row, "EDmgSymPerCalc")).toBe( + "(skill('Rabies'.blvl)+skill('Cycle of Life'.blvl)+skill('Vines'.blvl))*par8" + ); + expect(getGameFileCell(skills, row, "passivestat1")).toBe( + "passive_pois_mastery" + ); + expect(getGameFileCell(skills, row, "passivecalc1")).toBe( + getGameFileCell(skills, row, "EDmgSymPerCalc") + ); + + const withSynergy = { + min: Math.floor(min * durationFrames * (1 + synergyPercent / 100)), + max: Math.floor(max * durationFrames * (1 + synergyPercent / 100)), + }; + + return { + min: Math.floor(withSynergy.min * (1 + synergyPercent / 100)), + max: Math.floor(withSynergy.max * (1 + synergyPercent / 100)), + }; +} + +function getExpectedSkeletonDamagePercentFromGameFiles({ + skillName, + skillLevel, + raiseSkeletonBaseLevel = 0, + skeletonArcherBaseLevel = 0, + skeletonMasteryLevel, +}: { + skillName: "Raise Skeleton" | "Raise Skeleton Archer"; + skillLevel: number; + raiseSkeletonBaseLevel?: number; + skeletonArcherBaseLevel?: number; + skeletonMasteryLevel: number; +}) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get(skillName)!; + let total = 0; + + if (skillName === "Raise Skeleton") { + expect(getGameFileCell(skills, row, "aurastat1")).toBe("damagepercent"); + total += + skillLevel < 4 + ? 0 + : (skillLevel - 3) * getGameFileNumber(skills, row, "Param3"); + total += + skeletonArcherBaseLevel * getGameFileNumber(skills, row, "Param7"); + } else { + expect(getGameFileCell(skills, row, "DmgSymPerCalc")).toBe( + getGameFileCell(skills, row, "passivecalc4") + ); + total += raiseSkeletonBaseLevel * getGameFileNumber(skills, row, "Param7"); + } + + expect(getGameFileCell(skills, row, "passivestat4")).toBe("damagepercent"); + total += skeletonMasteryLevel * getGameFileNumber(skills, row, "Param8"); + + return total; +} + +function getExpectedSkeletonFlatPhysicalFromGameFiles({ + skillName, + skillLevel, + damagePercent, + skeletonMasteryLevel, +}: { + skillName: "Raise Skeleton" | "Raise Skeleton Archer"; + skillLevel: number; + damagePercent: number; + skeletonMasteryLevel: number; +}) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get(skillName)!; + const masteryRow = skills.rowsByKey.get("Skeleton Mastery")!; + const elementalMinAlias = getSourceLevelScaledValue( + skills, + row, + skillLevel, + "EMin", + ["EMinLev1", "EMinLev2", "EMinLev3", "EMinLev4", "EMinLev5"] + ); + const base = + skeletonMasteryLevel * getGameFileNumber(skills, masteryRow, "Param2") + + elementalMinAlias; + + expect(getGameFileCell(skills, row, "passivestat2")).toBe( + "item_normaldamage" + ); + + return { + base: { min: Math.floor(base), max: Math.floor(base) }, + damage: { + min: Math.floor(base * (1 + damagePercent / 100)), + max: Math.floor(base * (1 + damagePercent / 100)), + }, + }; +} + +function getExpectedSkeletonArcherDirectPhysicalFromGameFiles({ + archerLevel, + damagePercent, +}: { + archerLevel: number; + damagePercent: number; +}) { + const skills = loadGameFile("Skills.txt", "skill"); + const row = skills.rowsByKey.get("Raise Skeleton Archer")!; + const min = getSourceLevelScaledValue(skills, row, archerLevel, "MinDam", [ + "MinLevDam1", + "MinLevDam2", + "MinLevDam3", + "MinLevDam4", + "MinLevDam5", + ]); + const max = getSourceLevelScaledValue(skills, row, archerLevel, "MaxDam", [ + "MaxLevDam1", + "MaxLevDam2", + "MaxLevDam3", + "MaxLevDam4", + "MaxLevDam5", + ]); + + return { + min: Math.floor(min * (1 + damagePercent / 100)), + max: Math.floor(max * (1 + damagePercent / 100)), + }; +} + +describeWithGameData("damage calculator component model", () => { + beforeAll(async () => { + ({ calculateDamage } = await import("./damage-calculator")); + }); + + it("keeps Rabies weapon source damage and poison payload as independent components", () => { + const calculation = calculateDamage(createCharacter("Rabies", 20)); + const rabiesProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Rabies" && + profile.weaponId.startsWith("primary:right:one_handed") + ); + + expect(rabiesProfile).toBeDefined(); + + const weaponComponent = rabiesProfile!.damageComponents.find( + (component) => component.source === "weapon" + ); + const poisonComponent = rabiesProfile!.damageComponents.find( + (component) => + component.damageType === "poison" && component.timing === "over_time" + ); + + expect(weaponComponent).toMatchObject({ + source: "weapon", + damageType: "physical", + timing: "instant", + damage: { min: 10, max: 20 }, + }); + expect(weaponComponent!.sourceRefs).toEqual( + expect.arrayContaining([ + expect.objectContaining({ table: "Skills.txt", row: "Rabies" }), + ]) + ); + expect(poisonComponent).toBeDefined(); + expect(poisonComponent!.sourceRefs).toEqual( + expect.arrayContaining([ + expect.objectContaining({ table: "Skills.txt", row: "Rabies" }), + ]) + ); + expect(rabiesProfile!.damageTotals.instantDamage.max).toBeGreaterThan(0); + expect(rabiesProfile!.damageTotals.overTimeDamage.max).toBeGreaterThan(0); + expect(rabiesProfile!.damageTotals.combinedDamage).toEqual({ + min: + rabiesProfile!.damageTotals.instantDamage.min + + rabiesProfile!.damageTotals.overTimeDamage.min, + max: + rabiesProfile!.damageTotals.instantDamage.max + + rabiesProfile!.damageTotals.overTimeDamage.max, + }); + }); + + it("treats direct missile spells without source damage as spell profiles", () => { + const character = createCharacter("Charged Bolt", 20); + character.character.class = { id: 1, name: "Sorceress" }; + character.realSkills = [ + { skill: "Charged Bolt", level: 44, baseLevel: 20 }, + { skill: "Lightning", level: 25, baseLevel: 1 }, + { skill: "Telekinesis", level: 44, baseLevel: 20 }, + { skill: "Lightning Mastery", level: 47, baseLevel: 20 }, + ]; + character.realStats!.lightningSkillDamage = 25; + + const calculation = calculateDamage(character); + const chargedBoltOption = calculation.skillOptions.find( + (skill) => skill.name === "Charged Bolt" + ); + const chargedBoltProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Charged Bolt" && + profile.playerAuraId === "none" + ); + + expect(chargedBoltOption).toMatchObject({ damageMode: "spell" }); + expect(chargedBoltProfile).toMatchObject({ + skillDamageMode: "spell", + damageScope: expect.objectContaining({ + label: "per bolt", + count: 28, + countLabel: "bolts", + }), + }); + expect( + chargedBoltProfile!.damageComponents.some( + (component) => component.source === "weapon" + ) + ).toBe(false); + expect(chargedBoltProfile!.damageTotals.combinedDamage.max).toBeGreaterThan( + 900 + ); + }); + + it("defaults to the highest combined damage base profile", () => { + const calculation = calculateDamage(createCharacter("Rabies", 20)); + const defaultProfile = calculation.profiles.find( + (profile) => + profile.weaponId === calculation.defaultSelection?.weaponId && + profile.skillId === calculation.defaultSelection?.skillId && + profile.playerAuraId === calculation.defaultSelection?.playerAuraId && + profile.playerAuraCarrier === + calculation.defaultSelection?.playerAuraCarrier && + profile.transformationId === "none" + ); + const maxAverageCombinedDamage = Math.max( + ...calculation.profiles + .filter( + (profile) => + profile.playerAuraId === "none" && + profile.playerAuraCarrier === "self" && + profile.transformationId === "none" + ) + .map((profile) => profile.damageTotals.averageCombinedDamage) + ); + + expect(defaultProfile).toBeDefined(); + expect(defaultProfile!.skillName).toBe("Rabies"); + expect(calculation.defaultSelection?.transformationId).toMatch( + /^Werewolf:/ + ); + expect(defaultProfile!.damageTotals.averageCombinedDamage).toBe( + maxAverageCombinedDamage + ); + }); + + it("applies game-file Rabies synergies through source-data skill aliases", () => { + const character = createCharacter("Rabies", 41); + character.realSkills = [ + { skill: "Rabies", level: 41, baseLevel: 20 }, + { skill: "Poison Creeper", level: 29, baseLevel: 20 }, + { skill: "Feral Rage", level: 41, baseLevel: 20 }, + { skill: "Lycanthropy", level: 41, baseLevel: 20 }, + ]; + character.realStats!.poisonSkillDamage = 78; + + const calculation = calculateDamage(character); + const rabiesProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Rabies" && + profile.weaponId.startsWith("primary:right:one_handed") + ); + const poisonComponent = rabiesProfile!.damageComponents.find( + (component) => + component.damageType === "poison" && component.timing === "over_time" + ); + + expect(rabiesProfile).toBeDefined(); + expect(poisonComponent).toBeDefined(); + expect(poisonComponent!.damage.min).toBeGreaterThan(35000); + expect(poisonComponent!.damage.max).toBeLessThan(36000); + expect(rabiesProfile!.totalPoisonDamage!.total).toBeGreaterThan(35000); + }); + + it("models elemental attack aura payloads from Skills.txt fixed-point formulas", () => { + const calculation = calculateDamage(createCharacter("Rabies", 20)); + const cases = [ + { skill: "Holy Fire", element: "fire", level: 20 }, + { skill: "Holy Freeze", element: "cold", level: 20 }, + { skill: "Holy Shock", element: "lightning", level: 20 }, + { skill: "Sanctuary", element: "magic", level: 12 }, + ]; + + cases.forEach(({ skill, element, level }) => { + const option = calculation.playerAuraOptions.find( + (aura) => aura.name === skill + ); + const expected = getExpectedAuraPayloadsFromSkillsTxt(skill, level); + + expect(option).toBeDefined(); + expect( + option!.selfLevelBonuses.find((bonus) => bonus.level === level)! + .elementalDamage[element] + ).toEqual(expected.self); + expect( + option!.partyLevelBonuses.find((bonus) => bonus.level === level)! + .elementalDamage[element] + ).toEqual(expected.party); + }); + }); + + it("models party physical aura bonuses from Skills.txt aurastatcalc formulas", () => { + const calculation = calculateDamage(createCharacter("Rabies", 20)); + const might = calculation.playerAuraOptions.find( + (aura) => aura.name === "Might" + ); + const selfLevel20 = might!.selfLevelBonuses.find( + (bonus) => bonus.level === 20 + ); + const partyLevel20 = might!.partyLevelBonuses.find( + (bonus) => bonus.level === 20 + ); + const baseProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Basic Attack" && + profile.playerAuraId === "none" + ); + const partyProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Basic Attack" && + profile.playerAuraId === "Might" && + profile.playerAuraCarrier === "party" + ); + + expect(might).toBeDefined(); + expect(selfLevel20!.physicalBonusPercent).toBe( + getExpectedMightPhysicalBonusFromSkillsTxt(20, "self") + ); + expect(partyLevel20!.physicalBonusPercent).toBe( + getExpectedMightPhysicalBonusFromSkillsTxt(20, "party") + ); + expect(partyProfile!.breakdown.physicalBonusPercent.activeAuras).toBe( + getExpectedMightPhysicalBonusFromSkillsTxt(1, "party") + ); + expect(partyProfile!.damageTotals.combinedDamage.min).toBeGreaterThan( + baseProfile!.damageTotals.combinedDamage.min + ); + }); + + it("applies Battle Command all-skills bonuses to spell damage profiles", () => { + const character = createCharacter("War Cry", 20); + character.character.class = { id: 4, name: "Barbarian" }; + character.character.skills = [ + { id: 154, name: "War Cry", level: 20 }, + { id: 155, name: "Battle Command", level: 20 }, + ]; + character.realSkills = [ + { skill: "War Cry", level: 20, baseLevel: 20 }, + { skill: "Battle Command", level: 20, baseLevel: 20 }, + ]; + + const calculation = calculateDamage(character); + const battleCommand = calculation.playerAuraOptions.find( + (aura) => aura.name === "Battle Command" + ); + const skillLevelBonus = getExpectedBattleCommandSkillLevelBonusFromSkillsTxt(20); + const physicalBonus = getExpectedBattleCommandPhysicalBonusFromSkillsTxt(20); + const baseProfile = calculation.profiles.find( + (profile) => + profile.skillName === "War Cry" && + profile.playerAuraId === "none" + ); + const battleCommandProfile = calculation.profiles.find( + (profile) => + profile.weaponId === baseProfile?.weaponId && + profile.skillName === "War Cry" && + profile.playerAuraId === "Battle Command" && + profile.playerAuraCarrier === "self" + ); + + expect(battleCommand).toBeDefined(); + expect( + battleCommand!.selfLevelBonuses.find((bonus) => bonus.level === 20) + ).toMatchObject({ + skillLevelBonus, + physicalBonusPercent: physicalBonus, + }); + expect(baseProfile).toBeDefined(); + expect(battleCommandProfile).toBeDefined(); + expect(battleCommandProfile!.skillLevel).toBe( + baseProfile!.skillLevel + skillLevelBonus + ); + expect(battleCommandProfile!.damageTotals.combinedDamage.min).toBeGreaterThan( + baseProfile!.damageTotals.combinedDamage.min + ); + expect(battleCommandProfile!.breakdown.physicalBonusPercent.activeAuras).toBe(0); + expect(battleCommandProfile!.activeAuras).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + name: "Battle Command", + level: 20, + source: "player_skill", + carrier: "self", + }), + ]) + ); + }); + + it("reports direct physical skill synergies in spell breakdowns", () => { + const character = createCharacter("War Cry", 20); + character.character.class = { id: 4, name: "Barbarian" }; + character.character.skills = [ + { id: 154, name: "War Cry", level: 20 }, + { id: 130, name: "Howl", level: 20 }, + { id: 146, name: "Battle Cry", level: 10 }, + { id: 131, name: "Taunt", level: 5 }, + { id: 138, name: "Shout", level: 5 }, + { id: 155, name: "Battle Command", level: 1 }, + { id: 149, name: "Battle Orders", level: 1 }, + ]; + character.realSkills = [ + { skill: "War Cry", level: 20, baseLevel: 20 }, + { skill: "Howl", level: 20, baseLevel: 20 }, + { skill: "Battle Cry", level: 10, baseLevel: 10 }, + { skill: "Taunt", level: 5, baseLevel: 5 }, + { skill: "Shout", level: 5, baseLevel: 5 }, + { skill: "Battle Command", level: 1, baseLevel: 1 }, + { skill: "Battle Orders", level: 1, baseLevel: 1 }, + ]; + + const calculation = calculateDamage(character); + const expectedSynergy = getExpectedWarCryPhysicalSynergyFromSkillsTxt({ + howlBaseLevel: 20, + battleCryBaseLevel: 10, + tauntBaseLevel: 5, + shoutBaseLevel: 5, + battleCommandBaseLevel: 1, + battleOrdersBaseLevel: 1, + }); + const warCryProfile = calculation.profiles.find( + (profile) => + profile.skillName === "War Cry" && + profile.playerAuraId === "none" + ); + + expect(warCryProfile).toBeDefined(); + expect(warCryProfile!.skillDamageMode).toBe("spell"); + expect( + warCryProfile!.breakdown.physicalBonusPercent.selectedSkillSynergy + ).toBe(expectedSynergy); + expect(warCryProfile!.breakdown.physicalBonusPercent.total).toBe( + expectedSynergy + ); + expect(warCryProfile!.totalPhysicalDamage.min).toBeGreaterThan(0); + }); + + it("labels stream skills as per-second damage", () => { + const character = createCharacter("Arctic Blast", 20); + + const calculation = calculateDamage(character); + const arcticBlastProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Arctic Blast" && + profile.playerAuraId === "none" + ); + + expect(arcticBlastProfile).toBeDefined(); + expect(arcticBlastProfile!.damageScope.label).toBe("per second"); + expect(arcticBlastProfile!.damageScope.note).toContain("stream damage"); + }); + + it("does not add Fists of Fire meteor physical payload as direct damage", () => { + const character = createCharacter("Fists of Fire", 20); + character.character.class = { id: 6, name: "Assassin" }; + character.character.skills = [ + { id: 259, name: "Fists of Fire", level: 20 }, + { id: 254, name: "Tiger Strike", level: 20 }, + { id: 365, name: "Dragon Flight", level: 20 }, + ]; + character.realSkills = [ + { skill: "Fists of Fire", level: 20, baseLevel: 20 }, + { skill: "Tiger Strike", level: 20, baseLevel: 20 }, + { skill: "Dragon Flight", level: 20, baseLevel: 20 }, + ]; + character.items = [ + createWeapon({ + base_code: "ktr", + base: { + id: "ktr", + category: "weapon", + codes: {}, + name: "Katar", + stackable: false, + type: "Katar", + type_code: "h2h", + size: { height: 3, width: 1 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + }, + } as Partial), + ]; + + const calculation = calculateDamage(character); + const fistsOfFireProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Fists of Fire" && + profile.playerAuraId === "none" + ); + const missilePhysicalComponents = + fistsOfFireProfile?.damageComponents.filter( + (component) => + component.source === "missile" && + component.damageType === "physical" + ) || []; + const meteorFireComponent = fistsOfFireProfile?.damageComponents.find( + (component) => + component.source === "missile" && + component.damageType === "fire" && + component.sourceRefs.some((ref) => ref.row === "fofmeteor") + ); + + expect(fistsOfFireProfile).toBeDefined(); + expect(fistsOfFireProfile!.damageScope.label).toBe( + "per full charge release" + ); + expect(missilePhysicalComponents).toHaveLength(0); + expect(meteorFireComponent).toBeDefined(); + }); + + it("models Venom as a self-only poison attack buff from Skills.txt", () => { + const venomLevel = 20; + const cobraStrikeBaseLevel = 20; + const poisonSkillDamage = 25; + const character = createCharacter("Venom", venomLevel); + character.character.class = { id: 6, name: "Assassin" }; + character.character.skills = [ + { id: 278, name: "Venom", level: venomLevel }, + { id: 271, name: "Cobra Strike", level: cobraStrikeBaseLevel }, + ]; + character.realSkills = [ + { skill: "Venom", level: venomLevel, baseLevel: venomLevel }, + { + skill: "Cobra Strike", + level: cobraStrikeBaseLevel, + baseLevel: cobraStrikeBaseLevel, + }, + ]; + character.realStats!.poisonSkillDamage = poisonSkillDamage; + + const calculation = calculateDamage(character); + const venom = calculation.playerAuraOptions.find( + (aura) => aura.name === "Venom" + ); + const expectedLevelBonus = getExpectedVenomPoisonPayloadFromSkillsTxt( + venomLevel, + 0, + 0 + ); + const expectedProfileDamage = getExpectedVenomPoisonPayloadFromSkillsTxt( + venomLevel, + cobraStrikeBaseLevel, + poisonSkillDamage + ); + const baseProfile = calculation.profiles.find( + (profile) => + profile.skillName === "Basic Attack" && + profile.playerAuraId === "none" + ); + const venomProfile = calculation.profiles.find( + (profile) => + profile.weaponId === baseProfile?.weaponId && + profile.skillName === "Basic Attack" && + profile.playerAuraId === "Venom" && + profile.playerAuraCarrier === "self" + ); + const venomPartyProfile = calculation.profiles.find( + (profile) => + profile.weaponId === baseProfile?.weaponId && + profile.skillName === "Basic Attack" && + profile.playerAuraId === "Venom" && + profile.playerAuraCarrier === "party" + ); + const venomComponent = venomProfile?.damageComponents.find( + (component) => + component.source === "aura" && + component.damageType === "poison" && + component.label === "Venom poison" + ); + + expect(venom).toBeDefined(); + expect(venom!.selfLevelBonuses.find((bonus) => bonus.level === venomLevel)) + .toMatchObject({ + poisonDamage: expectedLevelBonus, + }); + expect( + venom!.partyLevelBonuses.find((bonus) => bonus.level === venomLevel)! + .poisonDamage + ).toBeUndefined(); + expect(baseProfile).toBeDefined(); + expect(venomProfile).toBeDefined(); + expect(venomComponent).toMatchObject({ + source: "aura", + damageType: "poison", + timing: "over_time", + damage: expectedProfileDamage.damage, + poisonDamage: { + total: expectedProfileDamage.total, + durationSeconds: expectedProfileDamage.durationSeconds, + }, + }); + expect(venomProfile!.damageTotals.overTimeDamage).toEqual( + expectedProfileDamage.damage + ); + expect(venomProfile!.damageTotals.combinedDamage.min).toBe( + baseProfile!.damageTotals.combinedDamage.min + + expectedProfileDamage.damage.min + ); + expect(venomPartyProfile).toBeDefined(); + expect( + venomPartyProfile!.damageComponents.some( + (component) => + component.source === "aura" && component.damageType === "poison" + ) + ).toBe(false); + }); + + it("uses item-granted aura levels without borrowing native skill synergies", () => { + const character = createCharacter("Rabies", 20); + character.items[0].properties = ["Level 12 Sanctuary Aura When Equipped"]; + character.realSkills = [ + { skill: "Might", level: 13, baseLevel: 1 }, + { skill: "Blessed Aim", level: 32, baseLevel: 20 }, + ]; + + const calculation = calculateDamage(character); + const profile = calculation.profiles.find( + (candidate) => candidate.playerAuraId === "none" + ); + const sanctuaryComponent = profile!.damageComponents.find( + (component) => component.id === "aura-Sanctuary-12-self-magic" + ); + + expect(sanctuaryComponent!.damage).toEqual( + getExpectedAuraPayloadsFromSkillsTxt("Sanctuary", 12).self + ); + }); + + it("adds source-backed two-weapon sequence profiles for optional dual-wield cycles", () => { + const character = createCharacter("Whirlwind", 20); + character.character.class = { id: 4, name: "Barbarian" }; + character.items = [ + createWeapon({ + id: "right-weapon", + hash: "right-weapon", + name: "Right Club", + damage: { + one_handed: { minimum: 10, maximum: 20 }, + two_handed: {}, + missile: {}, + }, + } as Partial), + createWeapon({ + id: "left-weapon", + hash: "left-weapon", + name: "Left Club", + location: { + zone: "Equipped", + storage: "Equipped", + zone_id: 1, + storage_id: 0, + equipment: "Left Hand", + equipment_id: 5, + }, + damage: { + one_handed: { minimum: 30, maximum: 40 }, + two_handed: {}, + missile: {}, + }, + } as Partial), + ]; + + const calculation = calculateDamage(character); + const sequenceOption = calculation.weaponOptions.find( + (option) => option.handMode === "dual_wield" + ); + const sequenceProfile = calculation.profiles.find( + (profile) => + profile.weaponId === sequenceOption?.id && + profile.skillId === "Whirlwind" && + profile.playerAuraId === "none" + ); + const rightProfile = calculation.profiles.find( + (profile) => + profile.weaponId.includes("right-weapon") && + profile.skillId === "Whirlwind" && + profile.playerAuraId === "none" + ); + const leftProfile = calculation.profiles.find( + (profile) => + profile.weaponId.includes("left-weapon") && + profile.skillId === "Whirlwind" && + profile.playerAuraId === "none" + ); + + expect(sequenceOption?.sequenceHits).toHaveLength(2); + expect(sequenceProfile?.sequenceHits).toHaveLength(2); + expect(sequenceProfile?.damageTotals.combinedDamage).toEqual( + { + min: + rightProfile!.damageTotals.combinedDamage.min + + leftProfile!.damageTotals.combinedDamage.min, + max: + rightProfile!.damageTotals.combinedDamage.max + + leftProfile!.damageTotals.combinedDamage.max, + } + ); + expect(sequenceProfile?.notes.join(" ")).toContain("weapsel=2"); + }); + + it("restricts required dual-wield skills to paired weapon profiles", () => { + const character = createCharacter("Frenzy", 20); + character.character.class = { id: 4, name: "Barbarian" }; + character.items = [ + createWeapon({ + id: "right-weapon", + hash: "right-weapon", + name: "Right Club", + damage: { + one_handed: { minimum: 10, maximum: 20 }, + two_handed: {}, + missile: {}, + }, + } as Partial), + createWeapon({ + id: "left-weapon", + hash: "left-weapon", + name: "Left Club", + location: { + zone: "Equipped", + storage: "Equipped", + zone_id: 1, + storage_id: 0, + equipment: "Left Hand", + equipment_id: 5, + }, + damage: { + one_handed: { minimum: 30, maximum: 40 }, + two_handed: {}, + missile: {}, + }, + } as Partial), + ]; + + const calculation = calculateDamage(character); + const frenzyProfiles = calculation.profiles.filter( + (profile) => profile.skillId === "Frenzy" && profile.playerAuraId === "none" + ); + const profileWeaponOptions = frenzyProfiles.map((profile) => + calculation.weaponOptions.find((option) => option.id === profile.weaponId) + ); + + expect(frenzyProfiles).toHaveLength(1); + expect(profileWeaponOptions.every((option) => option?.handMode === "dual_wield")).toBe( + true + ); + expect(frenzyProfiles[0].sequenceHits).toHaveLength(2); + expect(frenzyProfiles[0].notes.join(" ")).toContain("required two-weapon"); + }); + + it("restricts Double Throw to paired thrown weapon profiles", () => { + const character = createCharacter("Double Throw", 20); + character.character.class = { id: 4, name: "Barbarian" }; + character.items = [ + createWeapon({ + id: "right-throw", + hash: "right-throw", + name: "Right Throwing Axe", + base_code: "tax", + base: { + id: "tax", + category: "weapon", + codes: {}, + name: "Throwing Axe", + stackable: true, + type: "Throwing Axe", + type_code: "taxe", + size: { height: 3, width: 1 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + }, + damage: { + one_handed: { minimum: 10, maximum: 20 }, + two_handed: {}, + missile: { minimum: 15, maximum: 25 }, + }, + } as Partial), + createWeapon({ + id: "left-throw", + hash: "left-throw", + name: "Left Throwing Knife", + base_code: "tkf", + base: { + id: "tkf", + category: "weapon", + codes: {}, + name: "Throwing Knife", + stackable: true, + type: "Throwing Knife", + type_code: "tkni", + size: { height: 2, width: 1 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + }, + location: { + zone: "Equipped", + storage: "Equipped", + zone_id: 1, + storage_id: 0, + equipment: "Left Hand", + equipment_id: 5, + }, + damage: { + one_handed: { minimum: 30, maximum: 40 }, + two_handed: {}, + missile: { minimum: 35, maximum: 45 }, + }, + } as Partial), + ]; + + const calculation = calculateDamage(character); + const doubleThrowProfiles = calculation.profiles.filter( + (profile) => + profile.skillId === "Double Throw" && profile.playerAuraId === "none" + ); + const profileWeaponOptions = doubleThrowProfiles.map((profile) => + calculation.weaponOptions.find((option) => option.id === profile.weaponId) + ); + + expect( + calculation.weaponOptions.some((option) => option.handMode === "missile") + ).toBe(true); + expect(doubleThrowProfiles).toHaveLength(1); + expect(profileWeaponOptions.every((option) => option?.handMode === "dual_throw")).toBe( + true + ); + expect(doubleThrowProfiles[0].sequenceHits).toEqual([ + expect.objectContaining({ + handMode: "missile", + itemName: "Right Throwing Axe", + }), + expect.objectContaining({ + handMode: "missile", + itemName: "Left Throwing Knife", + }), + ]); + expect(doubleThrowProfiles[0].notes.join(" ")).toContain("required two-throw"); + }); + + it("uses bow two-handed armory damage as a missile weapon option", () => { + const character = createCharacter("Magic Arrow", 20); + character.character.class = { id: 0, name: "Amazon" }; + character.realStats!.dexterity = 100; + character.items = [ + createWeapon({ + id: "test-bow", + hash: "test-bow", + name: "Test Bow", + base_code: "hbw", + base: { + id: "hbw", + category: "weapon", + codes: {}, + name: "Hunter's Bow", + stackable: false, + type: "Bow", + type_code: "bow", + size: { height: 3, width: 2 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + }, + location: { + zone: "Equipped", + storage: "Equipped", + zone_id: 1, + storage_id: 0, + equipment: "Left Hand", + equipment_id: 5, + }, + damage: { + one_handed: {}, + two_handed: { minimum: 30, maximum: 60 }, + missile: {}, + }, + } as Partial), + { + id: "test-charm", + hash: "test-charm", + name: "Sharp Charm", + category: "charm", + base_code: "cm1", + base: { + id: "cm1", + category: "charm", + codes: {}, + name: "Small Charm", + stackable: false, + type: "Small Charm", + type_code: "scha", + size: { height: 1, width: 1 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + }, + quality: { id: 4, name: "Magic" }, + location: { + zone: "Inventory", + storage: "Inventory", + zone_id: 2, + storage_id: 1, + }, + position: { row: 0, column: 0 }, + properties: ["+12 to Minimum Damage"], + is_identified: true, + is_socketed: false, + is_new: false, + is_ear: false, + is_starter: false, + is_simple: false, + is_ethereal: false, + is_personalized: false, + is_runeword: false, + socketed_count: 0, + item_level: 1, + graphic_id: 0, + class_specifics: false, + socket_count: 0, + modifiers: [], + corrupted: false, + desecrated: false, + } as unknown as IItem, + ]; + + const calculation = calculateDamage(character); + const primaryWeaponOptions = calculation.weaponOptions.filter( + (option) => option.weaponSet === "primary" + ); + const bowOption = primaryWeaponOptions.find( + (option) => option.itemName === "Test Bow" + ); + const magicArrowProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Magic Arrow" && + profile.weaponId === bowOption?.id && + profile.playerAuraId === "none" + ); + + expect(bowOption).toMatchObject({ + handMode: "missile", + itemName: "Test Bow", + }); + expect(primaryWeaponOptions.some((option) => option.handMode === "unarmed")).toBe( + false + ); + expect(magicArrowProfile?.breakdown.flatPhysicalDamage).toEqual({ + min: 12, + max: 12, + }); + expect(magicArrowProfile?.damageTotals.combinedDamage.max).toBeGreaterThan(0); + }); + + it("uses equipped boots as the source item for kick skills", () => { + const character = createCharacter("Dragon Talon", 20); + character.character.class = { id: 6, name: "Assassin" }; + character.items = [createWeapon(), createBoot()]; + + const calculation = calculateDamage(character); + const kickOptions = calculation.weaponOptions.filter( + (option) => option.handMode === "kick" + ); + const dragonTalonProfiles = calculation.profiles.filter( + (profile) => + profile.skillId === "Dragon Talon" && + profile.playerAuraId === "none" + ); + const dragonTalonWeaponOptions = dragonTalonProfiles.map((profile) => + calculation.weaponOptions.find((option) => option.id === profile.weaponId) + ); + const primaryKickProfile = dragonTalonProfiles.find((profile) => + profile.weaponId.startsWith("primary:feet:kick") + ); + const bootComponent = primaryKickProfile?.damageComponents.find( + (component) => component.source === "weapon" + ); + const basicAttackProfiles = calculation.profiles.filter( + (profile) => profile.skillId === "Basic Attack" + ); + + expect(kickOptions).toHaveLength(2); + expect(kickOptions.every((option) => option.slot === "feet")).toBe(true); + expect(dragonTalonProfiles).toHaveLength(2); + expect( + dragonTalonWeaponOptions.every((option) => option?.handMode === "kick") + ).toBe(true); + expect( + basicAttackProfiles.some((profile) => + profile.weaponId.includes(":feet:kick:") + ) + ).toBe(false); + expect(bootComponent).toMatchObject({ + label: "Boot source (Dragon Talon)", + baseDamage: { min: 20, max: 30 }, + sourceRefs: expect.arrayContaining([ + expect.objectContaining({ table: "Armory item data" }), + expect.objectContaining({ + table: "Skills.txt", + row: "Dragon Talon", + columns: ["Kick", "leftskill", "descatt"], + }), + ]), + }); + }); + + it("does not offer kick skill profiles without equipped boots", () => { + const character = createCharacter("Dragon Talon", 20); + character.character.class = { id: 6, name: "Assassin" }; + + const calculation = calculateDamage(character); + + expect( + calculation.profiles.some((profile) => profile.skillId === "Dragon Talon") + ).toBe(false); + expect( + calculation.weaponOptions.some((option) => option.handMode === "kick") + ).toBe(false); + }); + + it("marks transformation eligibility from Skills.txt state restrictions", () => { + const whirlwindCharacter = createCharacter("Whirlwind", 20); + whirlwindCharacter.character.class = { id: 4, name: "Barbarian" }; + const whirlwindCalculation = calculateDamage(whirlwindCharacter); + const whirlwindOption = whirlwindCalculation.skillOptions.find( + (option) => option.id === "Whirlwind" + ); + const basicAttackOption = whirlwindCalculation.skillOptions.find( + (option) => option.id === "Basic Attack" + ); + + const furyCharacter = createCharacter("Fury", 20); + const furyCalculation = calculateDamage(furyCharacter); + const furyOption = furyCalculation.skillOptions.find( + (option) => option.id === "Fury" + ); + + expect(basicAttackOption?.canUseTransformation).toBe(true); + expect(whirlwindOption?.canUseTransformation).toBe(false); + expect(whirlwindOption?.allowedTransformationIds).toEqual([]); + expect(furyOption?.canUseTransformation).toBe(true); + expect(furyOption?.allowedTransformationIds).toEqual(["Werewolf"]); + }); +}); + +describeWithMonStatsData("summon damage modeling", () => { + it("offers source-backed summon skills through summon source options", () => { + const character = createCharacter("Summon Grizzly", 20); + character.character.class = { id: 5, name: "Druid" }; + character.character.skills = [ + { id: 247, name: "Summon Grizzly", level: 20 }, + { id: 221, name: "Raven", level: 20 }, + { id: 227, name: "Summon Spirit Wolf", level: 20 }, + ]; + character.realSkills = [ + { skill: "Summon Grizzly", level: 20, baseLevel: 20 }, + { skill: "Raven", level: 20, baseLevel: 20 }, + { skill: "Summon Spirit Wolf", level: 20, baseLevel: 20 }, + ]; + + const calculation = calculateDamage(character); + const summonSkill = calculation.skillOptions.find( + (option) => option.id === "Summon Grizzly" + ); + const summonWeapon = calculation.weaponOptions.find( + (option) => option.id === "primary:summon:summon-grizzly" + ); + const grizzlyProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Summon Grizzly" && + profile.playerAuraId === "none" + ); + const summonComponent = grizzlyProfile?.damageComponents.find( + (component) => component.source === "summon" + ); + + expect(summonSkill?.damageMode).toBe("summon"); + expect(summonWeapon).toMatchObject({ + handMode: "summon", + slot: "summon", + itemName: "Summon Grizzly", + }); + expect(grizzlyProfile?.weaponId).toBe("primary:summon:summon-grizzly"); + expect(grizzlyProfile?.skillDamageMode).toBe("summon"); + expect(summonComponent).toMatchObject({ + label: "Summon payload: Physical", + damageType: "physical", + sourceRefs: expect.arrayContaining([ + expect.objectContaining({ + table: "Skills.txt", + row: "Summon Grizzly", + }), + ]), + }); + expect(grizzlyProfile?.notes.join(" ")).toContain("per-summon damage profile"); + }); + + it("uses MonStats attack damage and summon damagepercent for melee summons", () => { + const raiseSkeletonLevel = 20; + const skeletonMasteryLevel = 20; + const character = createCharacter("Raise Skeleton", raiseSkeletonLevel); + character.character.class = { id: 2, name: "Necromancer" }; + character.character.skills = [ + { id: 70, name: "Raise Skeleton", level: raiseSkeletonLevel }, + { id: 79, name: "Skeleton Mastery", level: skeletonMasteryLevel }, + ]; + character.realSkills = [ + { + skill: "Raise Skeleton", + level: raiseSkeletonLevel, + baseLevel: raiseSkeletonLevel, + }, + { + skill: "Skeleton Mastery", + level: skeletonMasteryLevel, + baseLevel: skeletonMasteryLevel, + }, + ]; + + const calculation = calculateDamage(character); + const damagePercent = getExpectedSkeletonDamagePercentFromGameFiles({ + skillName: "Raise Skeleton", + skillLevel: raiseSkeletonLevel, + skeletonMasteryLevel, + }); + const expectedFlatPhysical = getExpectedSkeletonFlatPhysicalFromGameFiles({ + skillName: "Raise Skeleton", + skillLevel: raiseSkeletonLevel, + damagePercent, + skeletonMasteryLevel, + }); + const skeletonProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Raise Skeleton" && + profile.playerAuraId === "none" + ); + const monsterComponent = skeletonProfile?.damageComponents.find( + (component) => component.source === "monster" + ); + const flatPhysicalComponent = skeletonProfile?.damageComponents.find( + (component) => + component.label === "Summon flat physical" && + component.source === "skill" + ); + + expect(skeletonProfile?.skillDamageMode).toBe("summon"); + expect(skeletonProfile?.damageScope.label).toBe("per summon hit"); + expect(flatPhysicalComponent).toMatchObject({ + damageType: "physical", + baseDamage: expectedFlatPhysical.base, + damage: expectedFlatPhysical.damage, + sourceRefs: expect.arrayContaining([ + expect.objectContaining({ + table: "Skills.txt", + row: "Raise Skeleton", + columns: ["passivestat2", "passivecalc2"], + }), + ]), + }); + expect(monsterComponent).toMatchObject({ + label: "Summon A1 attack", + baseDamage: { min: 1, max: 2 }, + damage: { + min: Math.floor(1 * (1 + damagePercent / 100)), + max: Math.floor(2 * (1 + damagePercent / 100)), + }, + sourceRefs: expect.arrayContaining([ + expect.objectContaining({ + table: "MonStats.txt", + row: "necroskeleton", + }), + ]), + }); + expect(monsterComponent?.damage.min).toBeGreaterThan( + monsterComponent?.baseDamage?.min ?? 0 + ); + expect( + skeletonProfile?.breakdown.physicalBonusPercent.selectedSkill + ).toBe(damagePercent); + expect(skeletonProfile?.damageTotals.combinedDamage.min).toBeGreaterThan(100); + }); + + it("applies Skeleton Mastery once to skeleton archer direct and flat physical damage", () => { + const archerLevel = 20; + const raiseSkeletonBaseLevel = 20; + const skeletonMasteryLevel = 20; + const character = createCharacter("Raise Skeleton Archer", archerLevel); + character.character.class = { id: 2, name: "Necromancer" }; + character.character.skills = [ + { id: 89, name: "Raise Skeleton Archer", level: archerLevel }, + { id: 70, name: "Raise Skeleton", level: raiseSkeletonBaseLevel }, + { id: 79, name: "Skeleton Mastery", level: skeletonMasteryLevel }, + ]; + character.realSkills = [ + { + skill: "Raise Skeleton Archer", + level: archerLevel, + baseLevel: archerLevel, + }, + { + skill: "Raise Skeleton", + level: raiseSkeletonBaseLevel, + baseLevel: raiseSkeletonBaseLevel, + }, + { + skill: "Skeleton Mastery", + level: skeletonMasteryLevel, + baseLevel: skeletonMasteryLevel, + }, + ]; + + const calculation = calculateDamage(character); + const damagePercent = getExpectedSkeletonDamagePercentFromGameFiles({ + skillName: "Raise Skeleton Archer", + skillLevel: archerLevel, + raiseSkeletonBaseLevel, + skeletonMasteryLevel, + }); + const expectedDirectPhysical = getExpectedSkeletonArcherDirectPhysicalFromGameFiles( + { + archerLevel, + damagePercent, + } + ); + const expectedFlatPhysical = getExpectedSkeletonFlatPhysicalFromGameFiles({ + skillName: "Raise Skeleton Archer", + skillLevel: archerLevel, + damagePercent, + skeletonMasteryLevel, + }); + const archerProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Raise Skeleton Archer" && + profile.playerAuraId === "none" + ); + const directComponent = archerProfile?.damageComponents.find( + (component) => + component.label === "Summon payload: Physical" && + component.source === "summon" + ); + const flatPhysicalComponent = archerProfile?.damageComponents.find( + (component) => + component.label === "Summon flat physical" && + component.source === "skill" + ); + + expect(directComponent).toMatchObject({ + damageType: "physical", + damage: expectedDirectPhysical, + }); + expect(flatPhysicalComponent).toMatchObject({ + damageType: "physical", + baseDamage: expectedFlatPhysical.base, + damage: expectedFlatPhysical.damage, + }); + expect(archerProfile?.damageTotals.combinedDamage).toEqual({ + min: expectedDirectPhysical.min + expectedFlatPhysical.damage.min, + max: expectedDirectPhysical.max + expectedFlatPhysical.damage.max, + }); + expect(archerProfile?.breakdown.physicalBonusPercent.selectedSkill).toBe( + damagePercent + ); + expect( + archerProfile?.breakdown.physicalBonusPercent.selectedSkillSynergy + ).toBe(damagePercent); + }); + + it("includes summon-owned aura payloads without pulling class synergy rows", () => { + const character = createCharacter("FireGolem", 20); + character.character.class = { id: 2, name: "Necromancer" }; + character.character.skills = [ + { id: 94, name: "FireGolem", level: 20 }, + { id: 75, name: "Clay Golem", level: 20 }, + { id: 85, name: "BloodGolem", level: 20 }, + { id: 90, name: "IronGolem", level: 20 }, + { id: 79, name: "Golem Mastery", level: 20 }, + { id: 62, name: "Hydra", level: 20 }, + { id: 36, name: "Fire Bolt", level: 20 }, + { id: 383, name: "Lesser Hydra", level: 20 }, + ]; + character.realSkills = character.character.skills.map((skill) => ({ + skill: skill.name, + level: skill.level, + baseLevel: skill.level, + })); + + const calculation = calculateDamage(character); + const fireGolemProfile = calculation.profiles.find( + (profile) => profile.skillId === "FireGolem" && profile.playerAuraId === "none" + ); + const hydraProfile = calculation.profiles.find( + (profile) => profile.skillId === "Hydra" && profile.playerAuraId === "none" + ); + + expect( + fireGolemProfile?.damageComponents.some((component) => + component.label.includes("Holy Fire Fire Golem") + ) + ).toBe(true); + expect( + hydraProfile?.damageComponents.some((component) => + component.label.includes("Fire Bolt") + ) + ).toBe(false); + expect( + hydraProfile?.damageComponents.some((component) => + component.label.includes("Lesser Hydra") + ) + ).toBe(false); + }); + + it("does not count pure summon mastery passthrough rows as extra player mastery", () => { + const character = createCharacter("Hydra", 20); + character.character.class = { id: 1, name: "Sorceress" }; + character.character.skills = [ + { id: 36, name: "Fire Bolt", level: 20 }, + { id: 61, name: "Fire Mastery", level: 20 }, + { id: 62, name: "Hydra", level: 20 }, + { id: 383, name: "Lesser Hydra", level: 20 }, + ]; + character.realSkills = character.character.skills.map((skill) => ({ + skill: skill.name, + level: skill.level, + baseLevel: skill.level, + })); + + const calculation = calculateDamage(character); + const hydraProfile = calculation.profiles.find( + (profile) => profile.skillId === "Hydra" && profile.playerAuraId === "none" + ); + const hydraFireComponent = hydraProfile?.damageComponents.find( + (component) => component.label === "Summon payload: Fire" + ); + const expectedFireDamage = getExpectedHydraFirePayloadFromSkillsTxt( + 20, + 20, + 20, + 20 + ); + + expect(hydraFireComponent?.damage).toEqual(expectedFireDamage); + expect(hydraProfile?.damageTotals.combinedDamage).toEqual( + expectedFireDamage + ); + }); + + it("models skeletal mage elemental variants as separate summon options", () => { + const mageLevel = 20; + const skeletonMasteryLevel = 20; + const character = createCharacter("Raise Skeletal Mage", mageLevel); + character.character.class = { id: 2, name: "Necromancer" }; + character.character.skills = [ + { id: 80, name: "Raise Skeletal Mage", level: mageLevel }, + { id: 79, name: "Skeleton Mastery", level: skeletonMasteryLevel }, + ]; + character.realSkills = character.character.skills.map((skill) => ({ + skill: skill.name, + level: skill.level, + baseLevel: skill.level, + })); + + const calculation = calculateDamage(character); + const mageOptions = calculation.skillOptions.filter((option) => + option.name.startsWith("Raise Skeletal Mage") + ); + const fireProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Raise Skeletal Mage::fire-mage" && + profile.playerAuraId === "none" + ); + const coldProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Raise Skeletal Mage::cold-mage" && + profile.playerAuraId === "none" + ); + const lightningProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Raise Skeletal Mage::lightning-mage" && + profile.playerAuraId === "none" + ); + const poisonProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Raise Skeletal Mage::poison-mage" && + profile.playerAuraId === "none" + ); + + expect(mageOptions.map((option) => option.name).sort()).toEqual([ + "Raise Skeletal Mage (Cold Mage)", + "Raise Skeletal Mage (Fire Mage)", + "Raise Skeletal Mage (Lightning Mage)", + "Raise Skeletal Mage (Poison Mage)", + ]); + expect( + calculation.skillOptions.some((option) => option.id === "Raise Skeletal Mage") + ).toBe(false); + expect(fireProfile?.weaponId).toBe("primary:summon:raise-skeletal-mage"); + expect(fireProfile?.sourceSkillName).toBe("Raise Skeletal Mage"); + expect(fireProfile?.damageComponents).toHaveLength(1); + expect(fireProfile?.damageComponents[0]).toMatchObject({ + label: "Fire Mage payload: Necromage3", + damageType: "fire", + damage: getExpectedSkeletalMagePayloadFromGameFiles( + "necromage3", + mageLevel, + skeletonMasteryLevel + ), + }); + expect( + fireProfile?.damageComponents.some((component) => + component.label.includes("Necromage2") + ) + ).toBe(false); + expect(coldProfile?.damageComponents[0]).toMatchObject({ + label: "Cold Mage payload: Necromage2", + damageType: "cold", + damage: getExpectedSkeletalMagePayloadFromGameFiles( + "necromage2", + mageLevel, + skeletonMasteryLevel + ), + }); + expect(lightningProfile?.damageComponents[0]).toMatchObject({ + label: "Lightning Mage payload: Necromage4", + damageType: "lightning", + damage: getExpectedSkeletalMagePayloadFromGameFiles( + "necromage4", + mageLevel, + skeletonMasteryLevel + ), + }); + expect(poisonProfile?.damageComponents[0]).toMatchObject({ + label: "Poison Mage payload: Necromage1", + damageType: "poison", + damage: getExpectedSkeletalMagePayloadFromGameFiles( + "necromage1", + mageLevel, + skeletonMasteryLevel + ), + }); + }); + + it("applies summon-owned poison mastery to Plague Poppy poison payloads", () => { + const plaguePoppyLevel = 20; + const rabiesBaseLevel = 20; + const cycleOfLifeBaseLevel = 20; + const vinesBaseLevel = 20; + const character = createCharacter("Plague Poppy", plaguePoppyLevel); + character.character.class = { id: 4, name: "Druid" }; + character.character.skills = [ + { id: 222, name: "Plague Poppy", level: plaguePoppyLevel }, + { id: 238, name: "Rabies", level: rabiesBaseLevel }, + { id: 231, name: "Cycle of Life", level: cycleOfLifeBaseLevel }, + { id: 241, name: "Vines", level: vinesBaseLevel }, + ]; + character.realSkills = character.character.skills.map((skill) => ({ + skill: skill.name, + level: skill.level, + baseLevel: skill.level, + })); + + const calculation = calculateDamage(character); + const plaguePoppyProfile = calculation.profiles.find( + (profile) => + profile.skillId === "Plague Poppy" && profile.playerAuraId === "none" + ); + const poisonComponent = plaguePoppyProfile?.damageComponents.find( + (component) => + component.label === "Summon payload: Poison" && + component.damageType === "poison" + ); + const expectedPoisonDamage = getExpectedPlaguePoppyPoisonPayloadFromGameFiles( + { + plaguePoppyLevel, + rabiesBaseLevel, + cycleOfLifeBaseLevel, + vinesBaseLevel, + } + ); + + expect(poisonComponent).toBeDefined(); + expect(poisonComponent?.damage).toEqual(expectedPoisonDamage); + }); + + it("uses primary monster attack columns when no summoned skill links a mode", () => { + const character = createCharacter("Clay Golem", 20); + character.character.class = { id: 2, name: "Necromancer" }; + character.character.skills = [ + { id: 75, name: "Clay Golem", level: 20 }, + { id: 79, name: "Golem Mastery", level: 20 }, + ]; + character.realSkills = character.character.skills.map((skill) => ({ + skill: skill.name, + level: skill.level, + baseLevel: skill.level, + })); + + const calculation = calculateDamage(character); + const clayProfile = calculation.profiles.find( + (profile) => profile.skillId === "Clay Golem" && profile.playerAuraId === "none" + ); + const monsterComponent = clayProfile?.damageComponents.find( + (component) => component.source === "monster" + ); + + expect(monsterComponent).toMatchObject({ + label: "Summon A1 attack", + baseDamage: { min: 11, max: 15 }, + }); + }); + + it("keeps elemental summon damage when realStats omits optional bonus fields", () => { + const character = createCharacter("Raven", 20); + character.character.class = { id: 5, name: "Druid" }; + character.realStats = { + strength: 0, + dexterity: 0, + } as CharacterData["realStats"]; + + const calculation = calculateDamage(character); + const ravenProfile = calculation.profiles.find( + (profile) => profile.skillId === "Raven" && profile.playerAuraId === "none" + ); + + expect(ravenProfile?.damageComponents[0]).toMatchObject({ + label: "Summon payload: Cold", + damageType: "cold", + }); + expect(ravenProfile?.damageComponents[0]?.damage.max).toBeGreaterThan(0); + }); + + it("does not offer variable summons without stable file-backed damage payloads", () => { + const character = createCharacter("Shadow Master", 20); + character.character.class = { id: 6, name: "Assassin" }; + character.character.skills = [ + { id: 279, name: "Shadow Master", level: 20 }, + { id: 95, name: "Revive", level: 20 }, + ]; + character.realSkills = [ + { skill: "Shadow Master", level: 20, baseLevel: 20 }, + { skill: "Revive", level: 20, baseLevel: 20 }, + ]; + + const calculation = calculateDamage(character); + + expect( + calculation.skillOptions.some((option) => option.id === "Shadow Master") + ).toBe(false); + expect( + calculation.skillOptions.some((option) => option.id === "Revive") + ).toBe(false); + expect( + calculation.weaponOptions.some((option) => option.handMode === "summon") + ).toBe(false); + }); +}); + +describeWithArmorData("armory payload kick enrichment", () => { + beforeAll(async () => { + ({ enrichArmoryPayload } = await import("./armory-payload")); + }); + + it("adds Armor.txt boot kick damage to equipped boots", () => { + const payload = { + items: [ + createBoot({ + base_code: "utb", + base: { + id: "utb", + category: "armor", + codes: { normal: "tbt", exceptional: "xtb", elite: "utb" }, + name: "Mirrored Boots", + stackable: false, + type: "Boots", + type_code: "boot", + size: { height: 2, width: 2 }, + requirements: { level: 60, strength: 163, dexterity: 0 }, + }, + } as Partial), + ], + }; + + enrichArmoryPayload(payload); + + expect(payload.items[0].base.damage?.kick).toEqual({ + minimum: 69, + maximum: 147, + }); + expect(payload.items[0].damage?.kick).toEqual({ + minimum: 69, + maximum: 147, + }); + expect(payload.items[0].base.stat_bonus).toEqual({ strength: 100 }); + }); +}); diff --git a/api/src/utils/damage-calculator.ts b/api/src/utils/damage-calculator.ts new file mode 100644 index 0000000..6b6d2b6 --- /dev/null +++ b/api/src/utils/damage-calculator.ts @@ -0,0 +1,5861 @@ +import fs from "fs"; +import path from "path"; +import CharacterStatParser from "./character-stats"; +import { calculateTotalSkills } from "./skill-calculator"; +import { + ActiveAuraSummary, + CharacterResponse, + DamageAuraLevelBonus, + DamageAuraOption, + DamageCalculation, + DamageComponent, + DamageElement, + DamageProfile, + DamageRange, + DamageSourceReference, + DamageTotals, + DamageSkillOption, + DamageTransformationOption, + DamageWeaponOption, + CharacterData, + IItem, + PoisonDamage, +} from "../types"; + +type SkillEntry = { + level: number; + baseLevel: number; +}; + +type AuraSourceKind = + | "player_skill" + | "player_item" + | "mercenary_native" + | "mercenary_item" + | "manual"; + +type AuraCarrier = "self" | "party"; + +type AuraSource = { + name: string; + level: number; + source: AuraSourceKind; + carrier: AuraCarrier; +}; + +type AuraSelection = { + option: DamageAuraOption; + carrier: AuraCarrier; +}; + +type PlayerAuraDefinition = { + id: string; + name: string; + skillName: string; + sourceSkillNames?: string[]; +}; + +type GameTableName = "Skills" | "Missiles" | "SkillDesc" | "MonStats"; + +type GameTable = { + columns: string[]; + rowsByKey: Record; +}; + +type GameTableDefinition = { + fileName: string; + keyColumn: string; + required?: boolean; +}; + +type GameData = { + tables: Partial>; +}; + +type DamageScopeDefinition = { + label: string; + countColumn?: "calc1" | "calc2" | "calc3" | "calc4"; + countLabel?: string; + note: string; +}; + +const PD2_GAME_DATA_DIRECTORY = path.resolve( + process.cwd(), + "src", + "game-data", + "pd2", + "season-13" +); + +const DEFAULT_DAMAGE_SCOPE: DamageProfile["damageScope"] = { + label: "per modeled hit", + note: "Displayed totals are per modeled hit; attack speed, cast rate, hit chance, target count, and repeated hit frequency are not multiplied into totals.", + sourceRefs: [], +}; + +const SKILL_DAMAGE_SCOPE_DEFINITIONS: Record = { + [normalizeSkillName("Charged Bolt").toLowerCase()]: { + label: "per bolt", + countColumn: "calc1", + countLabel: "bolts", + note: "Charged Bolt totals are per bolt. Skills.txt calc1 exposes the bolt count, but projectile overlap and target count are not multiplied into totals.", + }, + [normalizeSkillName("Multiple Shot").toLowerCase()]: { + label: "per arrow", + countColumn: "calc1", + countLabel: "arrows", + note: "Multiple Shot totals are per arrow hit. Skills.txt calc1 exposes the arrow count, but target count and overlap are not multiplied into totals.", + }, + [normalizeSkillName("Strafe").toLowerCase()]: { + label: "per arrow", + note: "Strafe totals are per arrow hit. The full attack sequence length, hit chance, and target count are not multiplied into totals.", + }, + [normalizeSkillName("Teeth").toLowerCase()]: { + label: "per projectile", + countColumn: "calc1", + countLabel: "projectiles", + note: "Teeth totals are per projectile. Skills.txt calc1 exposes the projectile count, but target count and overlap are not multiplied into totals.", + }, + [normalizeSkillName("Nova").toLowerCase()]: { + label: "per target hit", + note: "Nova totals are per target hit. Target count is not multiplied into totals.", + }, + [normalizeSkillName("Frost Nova").toLowerCase()]: { + label: "per target hit", + note: "Frost Nova totals are per target hit. Target count is not multiplied into totals.", + }, + [normalizeSkillName("Poison Nova").toLowerCase()]: { + label: "per target", + note: "Poison Nova totals are per target over the modeled poison duration. Target count is not multiplied into totals.", + }, + [normalizeSkillName("Volcano").toLowerCase()]: { + label: "per impact", + note: "Volcano totals are per modeled impact from Skills.txt damage fields. Eruption timing, target overlap, and repeated impacts are not multiplied into totals.", + }, + [normalizeSkillName("Whirlwind").toLowerCase()]: { + label: "per weapon hit", + note: "Whirlwind totals are per modeled weapon hit. Movement duration, attack sequence timing, hit chance, and target count are not multiplied into totals.", + }, + [normalizeSkillName("Inferno").toLowerCase()]: { + label: "per second", + note: "Inferno totals use Skills.txt stream damage scaled to a per-second value. Channel duration, target count, and cast rate are not multiplied into totals.", + }, + [normalizeSkillName("Arctic Blast").toLowerCase()]: { + label: "per second", + note: "Arctic Blast totals use Skills.txt stream damage scaled to a per-second value. Channel duration, target count, debuff behavior, and cast rate are not multiplied into totals.", + }, + [normalizeSkillName("Blaze").toLowerCase()]: { + label: "per second", + note: "Blaze totals use Skills.txt ground-fire damage scaled to a per-second value. Ground path overlap, target count, and duration are not multiplied into totals.", + }, + [normalizeSkillName("Fire Wall").toLowerCase()]: { + label: "per second", + note: "Fire Wall totals use Skills.txt ground-fire damage scaled to a per-second value. Wall segment overlap, target count, and duration are not multiplied into totals.", + }, + [normalizeSkillName("Firestorm").toLowerCase()]: { + label: "per second", + note: "Firestorm totals use Skills.txt stream damage scaled to a per-second value. Stream overlap, target count, and cast rate are not multiplied into totals.", + }, + [normalizeSkillName("Fists of Fire").toLowerCase()]: { + label: "per full charge release", + note: "Fists of Fire totals include the modeled charge-release payloads exposed by Skills.txt and referenced Missiles.txt rows. Charge-building attacks, hit chance, attack speed, target count, and ground-fire duration are not multiplied into totals.", + }, + [normalizeSkillName("Cobra Strike").toLowerCase()]: { + label: "per full charge release", + note: "Cobra Strike totals include the modeled charge-release payloads exposed by Skills.txt and referenced Missiles.txt rows. Charge-building attacks, hit chance, attack speed, target count, and poison cloud overlap are not multiplied into totals.", + }, + [normalizeSkillName("Claws of Thunder").toLowerCase()]: { + label: "per full charge release", + note: "Claws of Thunder totals include the modeled charge-release payloads exposed by Skills.txt and referenced Missiles.txt rows. Charge-building attacks, hit chance, attack speed, target count, and projectile overlap are not multiplied into totals.", + }, + [normalizeSkillName("Blades of Ice").toLowerCase()]: { + label: "per full charge release", + note: "Blades of Ice totals include the modeled charge-release payloads exposed by Skills.txt and referenced Missiles.txt rows. Charge-building attacks, hit chance, attack speed, target count, and missile overlap are not multiplied into totals.", + }, + [normalizeSkillName("Royal Strike").toLowerCase()]: { + label: "per full charge release", + note: "Royal Strike totals include the modeled charge-release payloads exposed by Skills.txt and referenced Missiles.txt rows. Charge-building attacks, hit chance, attack speed, target count, and missile overlap are not multiplied into totals.", + }, +}; + +type SkillSynergyBonuses = { + physicalPct: number; + firePct: number; + coldPct: number; + lightningPct: number; + magicPct: number; + poisonPct: number; +}; + +type DirectSkillDamage = { + components: Array<{ + label: string; + element: DamageElement; + damage: DamageRange; + source: "skill" | "missile"; + timing: "instant" | "over_time"; + sourceRefs: DamageSourceReference[]; + notes?: string[]; + }>; + physical: DamageRange; + elemental: Partial>; + poisonRange?: DamageRange; + poisonDamage?: PoisonDamage; +}; + +type WeaponSet = "primary" | "secondary"; + +type DamageRangeWithSource = { + damage: DamageRange; + sourceRefs: DamageSourceReference[]; +}; + +type SingleWeaponHandMode = Extract< + DamageWeaponOption["handMode"], + "one_handed" | "two_handed" | "missile" | "unarmed" +>; + +type WeaponSequenceHandMode = Extract< + DamageWeaponOption["handMode"], + "dual_wield" | "dual_throw" +>; + +type RequiredWeaponSequenceRule = { + handMode: WeaponSequenceHandMode; + weapsel: string; + seqnum?: string; + srvstfunc?: string; + srvdofunc?: string; + itypea1?: string; + itypeb1?: string; + requiresMissilePayload: boolean; +}; + +type WeaponSelection = { + option: DamageWeaponOption; + item: IItem; + damage: DamageRange; + weaponSet: WeaponSet; + slot: "right" | "left" | "feet" | "summon"; + damageSourceRefs?: DamageSourceReference[]; + baseDamageUnavailable?: boolean; + summonSkillName?: string; + sequenceHits?: WeaponSequenceHit[]; +}; + +type WeaponSequenceHit = { + label: string; + selection: Omit; +}; + +type WeaponSetContext = { + weaponSet: WeaponSet; + realStats?: CharacterData["realStats"]; + skillMap: Map; + playerItems: IItem[]; + alwaysActiveAuras: AuraSource[]; +}; + +type SummonVariantDefinition = { + id: string; + label: string; + componentLabels: string[]; + includeMonsterAttack?: boolean; + includeSummonedSkills?: boolean; +}; + +const TRANSFORMATION_SKILL_DEFINITIONS = [ + { id: "Werewolf", name: "Werewolf", gameSkillName: "Wearwolf" }, + { id: "Werebear", name: "Werebear", gameSkillName: "Wearbear" }, +] as const; + +const GAME_STATE_TO_TRANSFORMATION_ID: Record = { + wolf: "Werewolf", + bear: "Werebear", +}; + +const EMPTY_SKILL_MAP = new Map(); + +const GAME_TABLE_DEFINITIONS: Record = { + Skills: { fileName: "Skills.txt", keyColumn: "skill", required: true }, + Missiles: { fileName: "Missiles.txt", keyColumn: "Missile", required: true }, + SkillDesc: { fileName: "SkillDesc.txt", keyColumn: "skilldesc", required: true }, + MonStats: { fileName: "MonStats.txt", keyColumn: "Id" }, +}; + +function getRequiredGameTableFiles(): string[] { + return Object.values(GAME_TABLE_DEFINITIONS) + .filter((definition) => definition.required) + .map(({ fileName }) => fileName); +} + +function parseGameTableFile(filePath: string, keyColumn: string): GameTable { + const text = fs.readFileSync(filePath, "utf8").replace(/^\uFEFF/, ""); + const lines = text.split(/\r?\n/).filter((line, index, allLines) => { + return line.length > 0 || index < allLines.length - 1; + }); + const columns = (lines.shift() || "").split("\t"); + const keyIndex = columns.indexOf(keyColumn); + if (keyIndex < 0) { + throw new Error(`${path.basename(filePath)} is missing key column ${keyColumn}`); + } + + const rowsByKey: Record = {}; + lines.forEach((line) => { + const row = line.split("\t"); + const key = row[keyIndex]; + if (key && !rowsByKey[key]) { + rowsByKey[key] = row; + } + }); + + if (Object.keys(rowsByKey).length === 0) { + throw new Error(`${path.basename(filePath)} does not contain keyed rows`); + } + + return { columns, rowsByKey }; +} + +function loadPd2GameData(): GameData { + const missingRequiredFiles = getRequiredGameTableFiles().filter( + (fileName) => !fs.existsSync(path.join(PD2_GAME_DATA_DIRECTORY, fileName)) + ); + + if (missingRequiredFiles.length > 0) { + throw new Error( + `Damage calculator requires committed PD2 game tables under api/src/game-data/pd2/season-13. Missing: ${missingRequiredFiles.join(", ")}.` + ); + } + + const tables: Partial> = {}; + (Object.entries(GAME_TABLE_DEFINITIONS) as Array< + [GameTableName, GameTableDefinition] + >).forEach(([tableName, definition]) => { + const tablePath = path.join(PD2_GAME_DATA_DIRECTORY, definition.fileName); + if (!definition.required && !fs.existsSync(tablePath)) { + return; + } + + tables[tableName] = parseGameTableFile( + tablePath, + definition.keyColumn + ); + }); + + return { tables }; +} + +const pd2GameData = loadPd2GameData(); + +const GAME_DAMAGE_LEVEL_THRESHOLDS = [8, 16, 22, 28, 60] as const; + +const FRAME_RATE_DAMAGE_MULTIPLIER = 75; +const FISTS_OF_FIRE_METEOR_PHYSICAL_MULTIPLIER = 2; +const INFERNO_SENTRY_STREAM_MULTIPLIER = 25 / 3; +const FIRE_STREAM_DAMAGE_MULTIPLIER = 25; +const HALF_RATE_DAMAGE_MULTIPLIER = 1 / 2; + +const GAME_ETYPES: Record< + string, + "fire" | "cold" | "lightning" | "magic" | "poison" +> = { + fire: "fire", + cold: "cold", + ltng: "lightning", + mag: "magic", + pois: "poison", +}; + +const SKILL_MISSILE_COLUMNS = [ + "srvmissile", + "srvmissilea", + "srvmissileb", + "srvmissilec", + "cltmissile", + "cltmissilea", + "cltmissileb", + "cltmissilec", + "cltmissiled", +] as const; + +const SKILL_DESC_MISSILE_COLUMNS = [ + "descmissile1", + "descmissile2", + "descmissile3", +] as const; + +const REQUIRED_WEAPON_SEQUENCE_SKILLS: Record< + string, + RequiredWeaponSequenceRule +> = { + "Double Throw": { + handMode: "dual_throw", + weapsel: "3", + seqnum: "15", + srvdofunc: "154", + itypea1: "comb", + itypeb1: "comb", + requiresMissilePayload: true, + }, + "Double Swing": { + handMode: "dual_wield", + weapsel: "3", + seqnum: "11", + srvdofunc: "70", + itypea1: "mele", + itypeb1: "mele", + requiresMissilePayload: false, + }, + Frenzy: { + handMode: "dual_wield", + weapsel: "3", + seqnum: "11", + srvstfunc: "78", + srvdofunc: "9", + itypea1: "mele", + itypeb1: "mele", + requiresMissilePayload: false, + }, + "Dragon Claw": { + handMode: "dual_wield", + weapsel: "3", + seqnum: "16", + srvstfunc: "25", + srvdofunc: "46", + itypea1: "h2h", + itypeb1: "h2h", + requiresMissilePayload: false, + }, +}; + +const MISSILE_CHILD_COLUMNS = [ + "ExplosionMissile", + "SubMissile1", + "SubMissile2", + "SubMissile3", + "HitSubMissile1", + "HitSubMissile2", + "HitSubMissile3", + "HitSubMissile4", + "CltSubMissile1", + "CltSubMissile2", + "CltSubMissile3", + "CltHitSubMissile1", + "CltHitSubMissile2", + "CltHitSubMissile3", + "CltHitSubMissile4", +] as const; + +const SKILL_NAME_ALIASES: Record = { + "Amplify Damage": "AmpDmg", + "Blood Golem": "BloodGolem", + "Curse Mastery": "CurMas", + Decoy: "Dopplezon", + "Fire Blast": "Fire Trauma", + "Fire Golem": "FireGolem", + "Iron Golem": "IronGolem", + "Lower Resist": "LowRes", + "Shock Web": "Shock Field", + "Slow Missiles": "Slow Movement", + "Wake of Fire": "Wake of Fire Sentry", + "Wake of Inferno": "Inferno Sentry", + "Claw Mastery": "Claw and Dagger Mastery", + "One Hand Mastery": "One Handed Mastery", + "Two Hand Mastery": "Two Handed Mastery", + Berserker: "Berserk", + "Blessed Shield": "Holy Shield", + "Raise Skeleton": "Raise Skeleton Warrior", + "Phoenix Strike": "Royal Strike", + "Poison Creeper": "Plague Poppy", + Lycanthropy: "Shape Shifting", + "Carrion Vine": "Cycle of Life", + Fissure: "Eruption", + "Summon Dire Wolf": "Summon Fenris", + "Solar Creeper": "Vines", + Werewolf: "Wearwolf", + Werebear: "Wearbear", +}; + +const REVERSE_SKILL_NAME_ALIASES = Object.fromEntries( + Object.entries(SKILL_NAME_ALIASES).map(([from, to]) => [to, from]) +); + +const PRIMARY_WEAPON_EQUIPMENT_SLOTS = new Set(["Right Hand", "Left Hand"]); +const SECONDARY_WEAPON_EQUIPMENT_SLOTS = new Set([ + "Right Hand Switch", + "Left Hand Switch", +]); +const ALL_HAND_EQUIPMENT_SLOTS = new Set([ + ...PRIMARY_WEAPON_EQUIPMENT_SLOTS, + ...SECONDARY_WEAPON_EQUIPMENT_SLOTS, +]); + +function normalizeSkillName(skillName: string): string { + return skillName.trim(); +} + +function getCaseInsensitiveRecordValue( + record: Record, + key: string +): string | undefined { + const normalizedKey = key.toLowerCase(); + const matchingKey = Object.keys(record).find( + (candidate) => candidate.toLowerCase() === normalizedKey + ); + return matchingKey ? record[matchingKey] : undefined; +} + +function getEquivalentSkillNames(skillName: string): string[] { + const normalized = normalizeSkillName(skillName); + const names = new Set([normalized]); + const aliasTarget = getCaseInsensitiveRecordValue( + SKILL_NAME_ALIASES, + normalized + ); + const reverseAliasTarget = getCaseInsensitiveRecordValue( + REVERSE_SKILL_NAME_ALIASES, + normalized + ); + + if (aliasTarget) { + names.add(aliasTarget); + } + + if (reverseAliasTarget) { + names.add(reverseAliasTarget); + } + + for (const [from, to] of Object.entries(SKILL_NAME_ALIASES)) { + if (to.toLowerCase() === normalized.toLowerCase()) { + names.add(from); + } + } + + return Array.from(names); +} + +const gameColumnIndexes = new Map>(); + +function getGameTable(tableName: GameTableName): GameTable { + const table = pd2GameData.tables[tableName]; + if (!table) { + throw new Error(`PD2 game table ${tableName} is not available in the extract`); + } + + return table; +} + +function getOptionalGameTable(tableName: GameTableName): GameTable | undefined { + return pd2GameData.tables[tableName]; +} + +function getGameColumnIndex(tableName: GameTableName, columnName: string): number { + const cached = gameColumnIndexes.get(tableName); + if (cached) { + return cached.get(columnName) ?? -1; + } + + const indexes = new Map(); + getGameTable(tableName).columns.forEach((column, index) => { + indexes.set(column, index); + }); + gameColumnIndexes.set(tableName, indexes); + return indexes.get(columnName) ?? -1; +} + +function getGameRow( + tableName: GameTableName, + key: string +): string[] | undefined { + const table = getGameTable(tableName); + for (const candidate of getEquivalentSkillNames(key)) { + const direct = table.rowsByKey[candidate]; + if (direct) { + return direct; + } + } + + const normalizedKey = key.toLowerCase(); + return Object.entries(table.rowsByKey).find( + ([rowKey]) => rowKey.toLowerCase() === normalizedKey + )?.[1]; +} + +function getOptionalGameRow( + tableName: GameTableName, + key: string +): string[] | undefined { + const table = getOptionalGameTable(tableName); + if (!table) { + return undefined; + } + + const direct = table.rowsByKey[key]; + if (direct) { + return direct; + } + + const normalizedKey = key.toLowerCase(); + return Object.entries(table.rowsByKey).find( + ([rowKey]) => rowKey.toLowerCase() === normalizedKey + )?.[1]; +} + +function getGameRowString( + tableName: GameTableName, + row: string[], + columnName: string +): string { + const index = getGameColumnIndex(tableName, columnName); + return index >= 0 ? row[index] || "" : ""; +} + +function getGameRowNumber( + tableName: GameTableName, + row: string[], + columnName: string +): number { + const value = Number(getGameRowString(tableName, row, columnName)); + return Number.isFinite(value) ? value : 0; +} + +function getGameSkillDescRow(skillRow: string[]): string[] | undefined { + const descKey = getGameRowString("Skills", skillRow, "skilldesc"); + return descKey ? getGameRow("SkillDesc", descKey) : undefined; +} + +function getGameSkillId(skillName: string): number { + const row = getGameRow("Skills", skillName); + return row ? getGameRowNumber("Skills", row, "Id") : Number.MAX_SAFE_INTEGER; +} + +function getGameSkillNamesById(skillNames: string[]): string[] { + return [...skillNames].sort( + (left, right) => getGameSkillId(left) - getGameSkillId(right) + ); +} + +function getGameSkillStats( + skillRow: string[], + prefix: "aura" | "passive", + count: number +): string[] { + return Array.from({ length: count }, (_, index) => + getGameRowString("Skills", skillRow, `${prefix}stat${index + 1}`) + ).filter(Boolean); +} + +function getGameStatCalcColumn( + prefix: "aura" | "passive", + index: number +): string { + return prefix === "aura" + ? `aurastatcalc${index}` + : `passivecalc${index}`; +} + +function getPassiveStatVisitKey(skillName: string, statName: string): string { + return `${normalizeSkillName(skillName).toLowerCase()}::${statName.toLowerCase()}`; +} + +function normalizeGameCalcFormula(expression: string): string { + return expression + .replace(/^"|"$/g, "") + .replace(/\s+/g, "") + .toLowerCase(); +} + +function isPureStatPassthrough(statName: string, expression: string): boolean { + const normalizedExpression = normalizeGameCalcFormula(expression); + const normalizedStat = statName.toLowerCase(); + + return ( + normalizedExpression === `stat('${normalizedStat}'.accr)` || + normalizedExpression === `stat("${normalizedStat}".accr)` + ); +} + +function getGameSkillStatValue( + skillName: string, + statNames: readonly string[], + prefix: "aura" | "passive", + count: number, + skillMap: Map, + visitingPassiveStats = new Set() +): number | undefined { + const skillRow = getGameRow("Skills", skillName); + const level = getGameSkillEntry(skillMap, skillName).level; + if (!skillRow || level <= 0) { + return undefined; + } + + for (let index = 1; index <= count; index += 1) { + const stat = getGameRowString("Skills", skillRow, `${prefix}stat${index}`); + if (!statNames.includes(stat)) { + continue; + } + + const expression = getGameRowString( + "Skills", + skillRow, + getGameStatCalcColumn(prefix, index) + ); + if (isPureStatPassthrough(stat, expression)) { + continue; + } + + const visitKey = getPassiveStatVisitKey(skillName, stat); + if (visitingPassiveStats.has(visitKey)) { + continue; + } + + const nextVisitingPassiveStats = new Set(visitingPassiveStats); + nextVisitingPassiveStats.add(visitKey); + + return evaluateGameCalcExpression( + expression, + skillRow, + skillMap, + level, + nextVisitingPassiveStats + ); + } + + return undefined; +} + +function getGameSkillPassiveStatValue( + skillName: string, + statNames: readonly string[], + skillMap: Map, + visitingPassiveStats = new Set() +): number | undefined { + return getGameSkillStatValue( + skillName, + statNames, + "passive", + 5, + skillMap, + visitingPassiveStats + ); +} + +function getGameSkillAuraStatValue( + skillName: string, + statNames: readonly string[], + skillMap: Map, + visitingPassiveStats = new Set() +): number | undefined { + return getGameSkillStatValue( + skillName, + statNames, + "aura", + 6, + skillMap, + visitingPassiveStats + ); +} + +function getGamePassiveStatValue( + statName: string, + skillMap: Map, + visitingPassiveStats = new Set() +): number { + let total = 0; + + skillMap.forEach((entry, skillName) => { + if (entry.level <= 0) { + return; + } + + total += + getGameSkillPassiveStatValue( + skillName, + [statName], + skillMap, + visitingPassiveStats + ) || 0; + }); + + return total; +} + +const SUPPORTED_AURA_DAMAGE_STATS = new Set([ + "damagepercent", + "firemindam", + "firemaxdam", + "coldmindam", + "coldmaxdam", + "lightmindam", + "lightmaxdam", + "magicmindam", + "magicmaxdam", +]); + +const SUPPORTED_AURA_POISON_STATS = new Set([ + "poisonmindam", + "poisonmaxdam", +]); + +const SUPPORTED_AURA_SKILL_LEVEL_STATS = new Set([ + "item_allskills", +]); + +const SUPPORTED_AURA_EFFECT_STATS = new Set([ + ...SUPPORTED_AURA_DAMAGE_STATS, + ...SUPPORTED_AURA_SKILL_LEVEL_STATS, +]); + +const NON_SELECTABLE_BUFF_DAMAGE_STATS = new Set([ + ...SUPPORTED_AURA_DAMAGE_STATS, + "poisonmindam", + "poisonmaxdam", +]); + +const NON_DAMAGE_SUMMON_PET_TYPES = new Set([ + "none", + "totem", + "revive", +]); + +const NON_SELECTABLE_SUMMON_PET_TYPES = new Set([ + ...NON_DAMAGE_SUMMON_PET_TYPES, + "assassintrap", + "bladesent", + "desecrate", +]); + +const SUMMON_VARIANT_DEFINITIONS: Record = { + "Raise Skeletal Mage": [ + { + id: "fire-mage", + label: "Fire Mage", + componentLabels: ["Necromage3"], + }, + { + id: "cold-mage", + label: "Cold Mage", + componentLabels: ["Necromage2"], + }, + { + id: "lightning-mage", + label: "Lightning Mage", + componentLabels: ["Necromage4"], + }, + { + id: "poison-mage", + label: "Poison Mage", + componentLabels: ["Necromage1"], + }, + ], +}; + +function getSummonVariantDefinitions(skillName: string): SummonVariantDefinition[] { + return SUMMON_VARIANT_DEFINITIONS[skillName] || []; +} + +function getSummonVariantDefinition( + skillName: string, + variantId?: string +): SummonVariantDefinition | undefined { + if (!variantId) { + return undefined; + } + + return getSummonVariantDefinitions(skillName).find( + (variant) => variant.id === variantId + ); +} + +function hasAnyGameStat(skillRow: string[], stats: Set): boolean { + return [ + ...getGameSkillStats(skillRow, "aura", 6), + ...getGameSkillStats(skillRow, "passive", 5), + ].some((stat) => stats.has(stat)); +} + +function hasAllGameStats( + skillRow: string[], + stats: readonly string[], + prefix: "aura" | "passive", + count: number +): boolean { + const rowStats = new Set(getGameSkillStats(skillRow, prefix, count)); + return stats.every((stat) => rowStats.has(stat)); +} + +function isInGamePlayerSkill(skillRow: string[]): boolean { + return ( + Boolean(getGameRowString("Skills", skillRow, "charclass")) && + getGameRowString("Skills", skillRow, "InGame") === "1" + ); +} + +function isGameSelfOnlyPoisonBuffSkill(skillRow: string[]): boolean { + return ( + isInGamePlayerSkill(skillRow) && + getGameRowString("Skills", skillRow, "aura") !== "1" && + !getGameRowString("Skills", skillRow, "leftskill") && + !getGameRowString("Skills", skillRow, "summon") && + Boolean(getGameRowString("Skills", skillRow, "aurastate")) && + !getGameRowString("Skills", skillRow, "auratargetstate") && + getGameRowString("Skills", skillRow, "EType") === "pois" && + getGameRowNumber("Skills", skillRow, "ELen") > 0 && + hasAllGameStats( + skillRow, + [...SUPPORTED_AURA_POISON_STATS], + "aura", + 6 + ) + ); +} + +function isGameSummonSkill(skillName: string): boolean { + const skillRow = getGameRow("Skills", skillName); + const petType = skillRow ? getGameRowString("Skills", skillRow, "pettype") : ""; + if (NON_SELECTABLE_SUMMON_PET_TYPES.has(petType.toLowerCase())) { + return false; + } + + return Boolean( + skillRow && + (getGameRowString("Skills", skillRow, "summon") || + petType) + ); +} + +function isSelectableSummonSkill(skillName: string): boolean { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow || !isInGamePlayerSkill(skillRow)) { + return false; + } + + const summon = getGameRowString("Skills", skillRow, "summon"); + const petType = getGameRowString("Skills", skillRow, "pettype").toLowerCase(); + if (!summon && !petType) { + return false; + } + + if (NON_SELECTABLE_SUMMON_PET_TYPES.has(petType)) { + return false; + } + + return getSummonDamageComponents( + skillName, + 1, + EMPTY_SKILL_MAP + ).length > 0; +} + +function isGameSelfOrPartyBuffSkill(skillName: string): boolean { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow || !isInGamePlayerSkill(skillRow)) { + return false; + } + + if (getGameRowString("Skills", skillRow, "leftskill")) { + return false; + } + + return hasAnyGameStat(skillRow, NON_SELECTABLE_BUFF_DAMAGE_STATS); +} + +function isGameWeaponCarriedPhysicalDamageSkill(skillName: string): boolean { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow) { + return false; + } + + const hasDirectPhysicalDamage = + Boolean(getGameRowString("Skills", skillRow, "MinDam")) || + Boolean(getGameRowString("Skills", skillRow, "MaxDam")); + + return ( + hasDirectPhysicalDamage && + getGameRowNumber("Skills", skillRow, "SrcDam") > 0 && + !getGameRowString("Skills", skillRow, "EType") + ); +} + +function isGameKickSkill(skillName: string): boolean { + const skillRow = getGameRow("Skills", skillName); + return Boolean(skillRow && getGameRowNumber("Skills", skillRow, "Kick") > 0); +} + +function isGameWeaponAttackSkill(skillName: string): boolean { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow || !isInGamePlayerSkill(skillRow)) { + return false; + } + + if (isGameWeaponCarriedPhysicalDamageSkill(skillName)) { + return true; + } + + if ( + getGameRowString("Skills", skillRow, "aura") === "1" || + getGameRowString("Skills", skillRow, "passive") === "1" || + getGameRowString("Skills", skillRow, "summon") + ) { + return false; + } + + const descRow = getGameSkillDescRow(skillRow); + const hasWeaponSourceDamage = + getGameRowNumber("Skills", skillRow, "SrcDam") > 0 || + Boolean(getGameRowString("Skills", skillRow, "itypea1")) || + Boolean(getGameRowString("Skills", skillRow, "itypeb1")); + const hasKickDamage = getGameRowNumber("Skills", skillRow, "Kick") > 0; + const hasAttackDescription = Boolean( + descRow && getGameRowString("SkillDesc", descRow, "descatt") + ); + + return ( + (getGameRowString("Skills", skillRow, "leftskill") === "1" && + (hasWeaponSourceDamage || + hasKickDamage || + hasAttackDescription)) + ); +} + +function getSkillAllowedTransformationIds(skillName: string): string[] { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow || !getGameRowString("Skills", skillRow, "restrict")) { + return []; + } + + const stateColumns = ["State1", "State2", "State3"] as const; + const transformationIds = stateColumns + .map((columnName) => + GAME_STATE_TO_TRANSFORMATION_ID[ + getGameRowString("Skills", skillRow, columnName).toLowerCase() + ] + ) + .filter((id): id is string => Boolean(id)); + + return Array.from(new Set(transformationIds)); +} + +function getGameAuraDefinitionNames(definition: PlayerAuraDefinition): string[] { + return [ + definition.id, + definition.name, + definition.skillName, + ...(definition.sourceSkillNames || []), + ]; +} + +function namesIncludeSkillName(names: readonly string[], skillName: string): boolean { + const normalized = normalizeSkillName(skillName).toLowerCase(); + return names.some((name) => normalizeSkillName(name).toLowerCase() === normalized); +} + +function getDamageScopeCount( + skillRow: string[] | undefined, + definition: DamageScopeDefinition, + skillMap: Map, + level: number +): number | undefined { + if (!skillRow || !definition.countColumn) { + return undefined; + } + + const expression = getGameRowString("Skills", skillRow, definition.countColumn); + if (!expression) { + return undefined; + } + + const count = evaluateGameCalcExpression(expression, skillRow, skillMap, level); + return count > 0 ? count : undefined; +} + +function getDamageScope( + skillName: string, + level: number, + skillMap: Map, + damageMode: DamageSkillOption["damageMode"], + weaponSelection: WeaponSelection +): DamageProfile["damageScope"] { + if (damageMode === "summon") { + return { + label: "per summon hit", + note: "Displayed totals are per summon hit. Summon count, AI choices, attack rate, hit chance, target count, and uptime are not multiplied into totals.", + sourceRefs: [ + { + table: "Skills.txt", + row: skillName, + columns: ["summon", "sumskill*", "petmax"], + }, + ], + }; + } + + if (weaponSelection.sequenceHits?.length) { + return { + label: "per weapon cycle", + count: weaponSelection.sequenceHits.length, + countLabel: "modeled hits", + note: "Displayed totals are for one modeled weapon cycle. Movement duration, animation timing, hit chance, and target count are not multiplied into totals.", + sourceRefs: [ + { + table: "Skills.txt", + row: skillName, + columns: ["weapsel", "seqnum", "SrcDam", "srvstfunc", "srvdofunc"], + }, + ], + }; + } + + const skillRow = getGameRow("Skills", skillName); + const definition = + SKILL_DAMAGE_SCOPE_DEFINITIONS[normalizeSkillName(skillName).toLowerCase()]; + if (definition) { + return { + label: definition.label, + count: getDamageScopeCount(skillRow, definition, skillMap, level), + countLabel: definition.countLabel, + note: definition.note, + sourceRefs: [ + { + table: "Skills.txt", + row: skillName, + columns: [ + ...(definition.countColumn ? [definition.countColumn] : []), + "srvstfunc", + "srvdofunc", + "srvmissile*", + "cltmissile*", + ], + }, + ], + }; + } + + if (damageMode === "spell") { + return { + label: "per target hit", + note: "Displayed totals are per target hit. Target count, repeated hit frequency, and cast rate are not multiplied into totals.", + sourceRefs: [ + { + table: "Skills.txt", + row: skillName, + columns: ["EType", "EMin", "EMax", "srvdofunc", "srvmissile*"], + }, + ], + }; + } + + if (weaponSelection.option.handMode === "missile") { + return { + label: isBowOrCrossbow(weaponSelection.item) + ? "per projectile hit" + : "per throw hit", + note: "Displayed totals are per projectile hit. Projectile count, target count, hit chance, and attack rate are not multiplied into totals.", + sourceRefs: [ + { + table: "Skills.txt", + row: skillName, + columns: ["SrcDam", "srvmissile*", "cltmissile*"], + }, + ], + }; + } + + return DEFAULT_DAMAGE_SCOPE; +} + +function getPlayerAuraDefinitionsFromGameData(): PlayerAuraDefinition[] { + const definitions = new Map(); + const addDefinition = (definition: PlayerAuraDefinition) => { + if (!definitions.has(definition.id)) { + definitions.set(definition.id, definition); + } + }; + + getGameSkillNamesById( + Object.entries(getGameTable("Skills").rowsByKey) + .filter(([, skillRow]) => { + return ( + isInGamePlayerSkill(skillRow) && + getGameRowString("Skills", skillRow, "charclass") === "pal" && + getGameRowString("Skills", skillRow, "aura") === "1" + ); + }) + .map(([skillName]) => skillName) + ).forEach((skillName) => { + addDefinition({ id: skillName, name: skillName, skillName }); + }); + + getGameSkillNamesById( + Object.entries(getGameTable("Skills").rowsByKey) + .filter(([, skillRow]) => { + return ( + isInGamePlayerSkill(skillRow) && + getGameRowString("Skills", skillRow, "pettype") === "totem" + ); + }) + .map(([skillName]) => skillName) + ).forEach((sourceSkillName) => { + const sourceRow = getGameRow("Skills", sourceSkillName); + if (!sourceRow) { + return; + } + + for (let index = 1; index <= 5; index += 1) { + const auraSkillName = getGameRowString("Skills", sourceRow, `sumskill${index}`); + const auraRow = auraSkillName ? getGameRow("Skills", auraSkillName) : undefined; + if (auraRow && getGameRowString("Skills", auraRow, "aura") === "1") { + addDefinition({ + id: sourceSkillName, + name: sourceSkillName, + skillName: auraSkillName, + sourceSkillNames: [sourceSkillName], + }); + } + } + }); + + getGameSkillNamesById( + Object.entries(getGameTable("Skills").rowsByKey) + .filter(([, skillRow]) => { + return ( + isInGamePlayerSkill(skillRow) && + getGameRowString("Skills", skillRow, "aura") !== "1" && + !getGameRowString("Skills", skillRow, "summon") && + Boolean(getGameRowString("Skills", skillRow, "auratargetstate")) && + getGameRowString("Skills", skillRow, "aurastate") === + getGameRowString("Skills", skillRow, "auratargetstate") && + hasAnyGameStat(skillRow, SUPPORTED_AURA_EFFECT_STATS) + ); + }) + .map(([skillName]) => skillName) + ).forEach((skillName) => { + addDefinition({ id: skillName, name: skillName, skillName }); + }); + + getGameSkillNamesById( + Object.entries(getGameTable("Skills").rowsByKey) + .filter(([, skillRow]) => isGameSelfOnlyPoisonBuffSkill(skillRow)) + .map(([skillName]) => skillName) + ).forEach((skillName) => { + addDefinition({ id: skillName, name: skillName, skillName }); + }); + + return Array.from(definitions.values()); +} + +const PLAYER_AURA_DEFINITIONS = getPlayerAuraDefinitionsFromGameData(); + +function getPlayerAuraDefinition(auraName: string): PlayerAuraDefinition | undefined { + return PLAYER_AURA_DEFINITIONS.find((definition) => + namesIncludeSkillName(getGameAuraDefinitionNames(definition), auraName) + ); +} + +function isPlayerAuraSkill(skillName: string): boolean { + return Boolean(getPlayerAuraDefinition(skillName)); +} + +function getMaxModeledSkillLevel(skillName: string): number { + const skillRow = getGameRow("Skills", skillName); + const maxSkillLevel = skillRow + ? getGameRowNumber("Skills", skillRow, "maxlvl") + : 0; + const maxScalingLevel = + GAME_DAMAGE_LEVEL_THRESHOLDS[GAME_DAMAGE_LEVEL_THRESHOLDS.length - 1]; + + return Math.max(maxSkillLevel, maxScalingLevel); +} + +function getManualAuraLevelOptions(definition: PlayerAuraDefinition): number[] { + const maxLevel = getMaxModeledSkillLevel(definition.skillName); + return Array.from({ length: maxLevel }, (_, index) => index + 1); +} + +function getGameSkillParam(row: string[], paramNumber: number): number { + return getGameRowNumber("Skills", row, `Param${paramNumber}`); +} + +function getGameLevelScaledValue( + tableName: "Skills" | "Missiles", + row: string[], + level: number, + baseColumn: string, + levelColumns: readonly string[] +): number { + let value = getGameRowNumber(tableName, row, baseColumn); + let currentLevel = 1; + + GAME_DAMAGE_LEVEL_THRESHOLDS.forEach((threshold, index) => { + const scale = getGameRowNumber(tableName, row, levelColumns[index]); + while (currentLevel < level && currentLevel < threshold) { + value += scale; + currentLevel += 1; + } + }); + + return value * getGameHitShiftMultiplier(tableName, row); +} + +function getGameHitShiftMultiplier(tableName: GameTableName, row: string[]): number { + const hitShift = getGameRowNumber(tableName, row, "HitShift"); + return 1 / 2 ** (8 - hitShift); +} + +function getGameLevelScaledRange( + tableName: "Skills" | "Missiles", + row: string[], + level: number, + minBaseColumn: string, + maxBaseColumn: string, + minLevelColumns: readonly string[], + maxLevelColumns: readonly string[] +): DamageRange | undefined { + const minBase = getGameRowString(tableName, row, minBaseColumn); + const maxBase = getGameRowString(tableName, row, maxBaseColumn); + if (!minBase || !maxBase) { + return undefined; + } + + let min = getGameRowNumber(tableName, row, minBaseColumn); + let max = getGameRowNumber(tableName, row, maxBaseColumn); + let currentLevel = 1; + + GAME_DAMAGE_LEVEL_THRESHOLDS.forEach((threshold, index) => { + const minScale = getGameRowNumber(tableName, row, minLevelColumns[index]); + const maxScale = getGameRowNumber(tableName, row, maxLevelColumns[index]); + while (currentLevel < level && currentLevel < threshold) { + min += minScale; + max += maxScale; + currentLevel += 1; + } + }); + + const hitShift = getGameHitShiftMultiplier(tableName, row); + return { + min: min * hitShift, + max: max * hitShift, + }; +} + +function getGameDescDam(skillRow: string[]): string { + const descKey = getGameRowString("Skills", skillRow, "skilldesc"); + const descRow = getGameRow("SkillDesc", descKey); + return descRow ? getGameRowString("SkillDesc", descRow, "descdam") : ""; +} + +function getGameDotMultiplier( + tableName: "Skills" | "Missiles", + row: string[], + elementType: string, + skillName: string, + rowKey: string, + maxLevelColumns: readonly string[] +): number { + if (elementType === "pois") { + if (tableName === "Skills") { + return getGameRowNumber(tableName, row, "ELen") || 1; + } + return getGameRowNumber(tableName, row, "ELen") || 1; + } + + if ( + tableName === "Missiles" && + rowKey[0] === rowKey[0]?.toLowerCase() && + rowKey.includes("fire") && + rowKey !== "fistsoffirenova" + ) { + return FRAME_RATE_DAMAGE_MULTIPLIER; + } + + if (rowKey === "fofmeteor") { + return FISTS_OF_FIRE_METEOR_PHYSICAL_MULTIPLIER; + } + + if (tableName === "Skills") { + const descDam = getGameDescDam(row); + if (skillName === "Inferno Sentry") { + return INFERNO_SENTRY_STREAM_MULTIPLIER; + } + if (descDam === "9" || descDam === "27") { + return FRAME_RATE_DAMAGE_MULTIPLIER; + } + if (descDam === "8") { + return FIRE_STREAM_DAMAGE_MULTIPLIER; + } + if (descDam === "26") { + return HALF_RATE_DAMAGE_MULTIPLIER; + } + } + + void maxLevelColumns; + return 1; +} + +function getGameMasteryDamageBonusPercent( + element: "fire" | "cold" | "lightning", + skillMap: Map +): number { + return getElementalMasteryDamageBonusPercent(element, skillMap); +} + +function getGameSkillEntry( + skillMap: Map, + skillName: string +): SkillEntry { + const direct = getSkillEntry(skillMap, skillName); + if (direct.level > 0 || direct.baseLevel > 0) { + return direct; + } + + const normalized = skillName.toLowerCase(); + for (const [name, entry] of skillMap.entries()) { + if (name.toLowerCase() === normalized) { + return entry; + } + } + + const skillRow = getGameRow("Skills", skillName); + const skillDescName = skillRow + ? getGameRowString("Skills", skillRow, "skilldesc").toLowerCase() + : ""; + if (skillDescName) { + for (const [name, entry] of skillMap.entries()) { + if (name.toLowerCase() === skillDescName) { + return entry; + } + } + } + + return direct; +} + +function evaluateGameCalcExpression( + expression: string, + skillRow: string[], + skillMap: Map, + level = 0, + visitingPassiveStats = new Set(), + options: { elementalAliasMode?: "scaled" | "fixed" } = {} +): number { + if (!expression) { + return 0; + } + + const linear = (_: string, firstParam: string, secondParam: string) => { + const base = getGameSkillParam(skillRow, Number(firstParam)); + const perLevel = getGameSkillParam(skillRow, Number(secondParam)); + return String(base + Math.max(0, level - 1) * perLevel); + }; + const elementalMin = getGameLevelScaledValue( + "Skills", + skillRow, + Math.max(1, level), + "EMin", + ["EMinLev1", "EMinLev2", "EMinLev3", "EMinLev4", "EMinLev5"] + ); + const elementalMax = getGameLevelScaledValue( + "Skills", + skillRow, + Math.max(1, level), + "EMax", + ["EMaxLev1", "EMaxLev2", "EMaxLev3", "EMaxLev4", "EMaxLev5"] + ); + const usesSynergizedElemental = /\bed(?:ns|xs)\b/.test(expression); + const elementalSynergyPercent = usesSynergizedElemental + ? evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, "EDmgSymPerCalc"), + skillRow, + skillMap, + level, + visitingPassiveStats + ) + : 0; + const elementalAliasMultiplier = + options.elementalAliasMode === "fixed" ? 256 : 1; + const elementalMinAlias = Math.floor(elementalMin * elementalAliasMultiplier); + const elementalMaxAlias = Math.floor(elementalMax * elementalAliasMultiplier); + const synergizedElementalMinAlias = Math.floor( + elementalMin * (1 + elementalSynergyPercent / 100) * elementalAliasMultiplier + ); + const synergizedElementalMaxAlias = Math.floor( + elementalMax * (1 + elementalSynergyPercent / 100) * elementalAliasMultiplier + ); + + const normalized = expression + .replace(/^"|"$/g, "") + .replace(/\bmin\(/g, "Math.min(") + .replace(/\bmax\(/g, "Math.max(") + .replace(/skill\('([^']+)'\.blvl\)/g, (_, skillName: string) => + String(getGameSkillEntry(skillMap, skillName).baseLevel) + ) + .replace(/skill\('([^']+)'\.lvl\)/g, (_, skillName: string) => + String(getGameSkillEntry(skillMap, skillName).level) + ) + .replace(/skill\('([^']+)'\.par([1-8])\)/g, (_, skillName: string, paramNumber: string) => { + const sourceRow = getGameRow("Skills", skillName); + return String( + sourceRow ? getGameSkillParam(sourceRow, Number(paramNumber)) : 0 + ); + }) + .replace(/\bln([1-8])([1-8])\b/g, linear) + .replace(/\btoht\b/g, () => + String( + getGameRowNumber("Skills", skillRow, "ToHit") + + Math.max(0, level - 1) * getGameRowNumber("Skills", skillRow, "LevToHit") + ) + ) + .replace(/\bedmn\b/g, String(elementalMinAlias)) + .replace(/\bedmx\b/g, String(elementalMaxAlias)) + .replace(/\bedns\b/g, String(synergizedElementalMinAlias)) + .replace(/\bedxs\b/g, String(synergizedElementalMaxAlias)) + .replace(/\bclc([1-4])\b/g, (_, calcNumber: string) => + String( + evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, `calc${calcNumber}`), + skillRow, + skillMap, + level, + visitingPassiveStats + ) + ) + ) + .replace(/\blvl\b/g, String(level)) + .replace(/\bblvl\b/g, String(level)) + .replace(/stat\('([^']+)'\.accr\)/g, (_, statName: string) => + String(getGamePassiveStatValue(statName, skillMap, visitingPassiveStats)) + ) + .replace(/\bpar(\d+)\b/g, (_, paramNumber: string) => + String(getGameSkillParam(skillRow, Number(paramNumber))) + ); + + if (!/^[\d+\-*/().,\sMathminax<>!=?:]+$/.test(normalized)) { + return 0; + } + + try { + return Math.floor(Function(`"use strict"; return (${normalized});`)()); + } catch { + return 0; + } +} + +function getGameElementalBonusPercent( + element: "fire" | "cold" | "lightning" | "magic" | "poison", + skillMap: Map, + realStats?: CharacterData["realStats"], + sourceSkillName?: string +): number { + const localMastery = + sourceSkillName && element !== "magic" + ? getLocalElementalMasteryDamageBonusPercent( + element, + sourceSkillName, + skillMap + ) + : undefined; + + if (element === "poison") { + return getPoisonSkillDamageBonusPercent(realStats) + (localMastery || 0); + } + + if (element === "magic") { + return 0; + } + + return ( + getElementalSkillDamageBonusPercent(element, realStats) + + (localMastery ?? getGameMasteryDamageBonusPercent(element, skillMap)) + ); +} + +function scaleDamageRangeInStages( + range: DamageRange, + firstPercent: number, + secondPercent: number +): DamageRange { + return scaleDamageRange(scaleDamageRange(range, firstPercent), secondPercent); +} + +function createGameComponent( + label: string, + element: DamageElement, + baseRange: DamageRange, + synergyPercent: number, + elementalBonusPercent: number, + source: "skill" | "missile", + sourceRefs: DamageSourceReference[], + timing: "instant" | "over_time" = "instant", + notes: string[] = [] +): DirectSkillDamage["components"][number] { + return { + label, + element, + damage: scaleDamageRangeInStages( + baseRange, + synergyPercent, + elementalBonusPercent + ), + source, + timing, + sourceRefs, + notes, + }; +} + +function applyGameDotMultiplier(range: DamageRange, multiplier: number): DamageRange { + return { + min: range.min * multiplier, + max: range.max * multiplier, + }; +} + +function hasGameMissileDamage(missileRow: string[]): boolean { + return Boolean( + getGameRowString("Missiles", missileRow, "MinDamage") || + getGameRowString("Missiles", missileRow, "MaxDamage") || + getGameRowString("Missiles", missileRow, "EMin") || + getGameRowString("Missiles", missileRow, "Emax") + ); +} + +function getGameSkillMissileNames(skillRow: string[]): string[] { + const pending: string[] = []; + const queued = new Set(); + const damageMissiles: string[] = []; + const skillDescRow = getGameSkillDescRow(skillRow); + + const queueMissile = (missileName: string) => { + if (!missileName || queued.has(missileName)) { + return; + } + + queued.add(missileName); + pending.push(missileName); + }; + + SKILL_MISSILE_COLUMNS.forEach((columnName) => { + queueMissile(getGameRowString("Skills", skillRow, columnName)); + }); + + if (skillDescRow) { + SKILL_DESC_MISSILE_COLUMNS.forEach((columnName) => { + queueMissile(getGameRowString("SkillDesc", skillDescRow, columnName)); + }); + + for (let index = 1; index <= 6; index += 1) { + [ + getGameRowString("SkillDesc", skillDescRow, `desccalca${index}`), + getGameRowString("SkillDesc", skillDescRow, `desccalcb${index}`), + ].forEach((calc) => { + for (const match of calc.matchAll(/miss\('([^']+)'\./g)) { + queueMissile(match[1]); + } + }); + } + } + + while (pending.length > 0) { + const missileName = pending.shift()!; + const missileRow = getGameRow("Missiles", missileName); + if (!missileRow) { + continue; + } + + if (hasGameMissileDamage(missileRow)) { + damageMissiles.push(missileName); + } + + MISSILE_CHILD_COLUMNS.forEach((columnName) => { + queueMissile(getGameRowString("Missiles", missileRow, columnName)); + }); + } + + return damageMissiles; +} + +function formatGameMissileLabel(missileName: string): string { + return missileName + .replace(/([a-z])([A-Z])/g, "$1 $2") + .replace(/[_-]+/g, " ") + .replace(/\s+/g, " ") + .trim() + .replace(/\b\w/g, (letter) => letter.toUpperCase()); +} + +function getGamePoisonDurationSeconds(skillName: string): number | undefined { + const skillRow = getGameRow("Skills", skillName); + if (skillRow && getGameRowString("Skills", skillRow, "EType") === "pois") { + const frames = getGameRowNumber("Skills", skillRow, "ELen"); + return frames > 0 ? frames / 25 : undefined; + } + + if (!skillRow) { + return undefined; + } + + const missileDurations = getGameSkillMissileNames(skillRow) + .map((missileName) => getGameRow("Missiles", missileName)) + .filter((missileRow): missileRow is string[] => Boolean(missileRow)) + .filter((missileRow) => getGameRowString("Missiles", missileRow, "EType") === "pois") + .map((missileRow) => getGameRowNumber("Missiles", missileRow, "ELen") / 25) + .filter((duration) => duration > 0); + + return missileDurations.length > 0 + ? Math.max(...missileDurations) + : undefined; +} + +function getGameSkillComponents( + skillName: string, + level: number, + skillMap: Map, + realStats?: CharacterData["realStats"] +): DirectSkillDamage["components"] { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow) { + return []; + } + + const components: DirectSkillDamage["components"] = []; + const physicalRange = getGameLevelScaledRange( + "Skills", + skillRow, + level, + "MinDam", + "MaxDam", + ["MinLevDam1", "MinLevDam2", "MinLevDam3", "MinLevDam4", "MinLevDam5"], + ["MaxLevDam1", "MaxLevDam2", "MaxLevDam3", "MaxLevDam4", "MaxLevDam5"] + ); + if (physicalRange) { + const multiplier = getGameDotMultiplier( + "Skills", + skillRow, + "Physical", + skillName, + skillName, + ["MaxLevDam1", "MaxLevDam2", "MaxLevDam3", "MaxLevDam4", "MaxLevDam5"] + ); + components.push( + createGameComponent( + "Physical", + "physical", + applyGameDotMultiplier(physicalRange, multiplier), + evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, "DmgSymPerCalc"), + skillRow, + skillMap + ), + 0, + "skill", + [ + { + table: "Skills.txt", + row: getGameRowString("Skills", skillRow, "skill") || skillName, + columns: [ + "MinDam", + "MaxDam", + "MinLevDam1..5", + "MaxLevDam1..5", + "DmgSymPerCalc", + "HitShift", + ], + }, + ] + ) + ); + } + + const eType = getGameRowString("Skills", skillRow, "EType"); + const element = GAME_ETYPES[eType]; + const elementalRange = getGameLevelScaledRange( + "Skills", + skillRow, + level, + "EMin", + "EMax", + ["EMinLev1", "EMinLev2", "EMinLev3", "EMinLev4", "EMinLev5"], + ["EMaxLev1", "EMaxLev2", "EMaxLev3", "EMaxLev4", "EMaxLev5"] + ); + if (element && elementalRange) { + const multiplier = getGameDotMultiplier( + "Skills", + skillRow, + eType, + skillName, + skillName, + ["EMaxLev1", "EMaxLev2", "EMaxLev3", "EMaxLev4", "EMaxLev5"] + ); + components.push( + createGameComponent( + element[0].toUpperCase() + element.slice(1), + element, + applyGameDotMultiplier(elementalRange, multiplier), + evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, "EDmgSymPerCalc"), + skillRow, + skillMap + ), + getGameElementalBonusPercent(element, skillMap, realStats, skillName), + "skill", + [ + { + table: "Skills.txt", + row: getGameRowString("Skills", skillRow, "skill") || skillName, + columns: [ + "EType", + "EMin", + "EMax", + "EMinLev1..5", + "EMaxLev1..5", + "EDmgSymPerCalc", + "ELen", + "ELevLen1..3", + "HitShift", + ], + }, + ], + element === "poison" ? "over_time" : "instant" + ) + ); + } + + for (const missileName of getGameSkillMissileNames(skillRow)) { + components.push( + ...getGameMissileComponents( + skillName, + formatGameMissileLabel(missileName), + missileName, + level, + skillRow, + skillMap, + realStats + ) + ); + } + + return components; +} + +function shouldIncludeGameMissilePhysicalDamage( + sourceSkillName: string, + missileName: string +): boolean { + if ( + normalizeSkillName(sourceSkillName) === normalizeSkillName("Fists of Fire") && + missileName === "fofmeteor" + ) { + return false; + } + + return true; +} + +function getGameMissileComponents( + sourceSkillName: string, + label: string, + missileName: string, + level: number, + sourceSkillRow: string[], + skillMap: Map, + realStats?: CharacterData["realStats"] +): DirectSkillDamage["components"] { + const missileRow = getGameRow("Missiles", missileName); + if (!missileRow) { + return []; + } + + const components: DirectSkillDamage["components"] = []; + const physicalRange = getGameLevelScaledRange( + "Missiles", + missileRow, + level, + "MinDamage", + "MaxDamage", + ["MinLevDam1", "MinLevDam2", "MinLevDam3", "MinLevDam4", "MinLevDam5"], + ["MaxLevDam1", "MaxLevDam2", "MaxLevDam3", "MaxLevDam4", "MaxLevDam5"] + ); + if ( + physicalRange && + shouldIncludeGameMissilePhysicalDamage(sourceSkillName, missileName) + ) { + const multiplier = getGameDotMultiplier( + "Missiles", + missileRow, + "Physical", + sourceSkillName, + missileName, + ["MaxLevDam1", "MaxLevDam2", "MaxLevDam3", "MaxLevDam4", "MaxLevDam5"] + ); + components.push( + createGameComponent( + label.includes("Physical") ? label : "Physical", + "physical", + applyGameDotMultiplier(physicalRange, multiplier), + evaluateGameCalcExpression( + getGameRowString("Missiles", missileRow, "DmgSymPerCalc"), + sourceSkillRow, + skillMap + ), + 0, + "missile", + [ + { + table: "Missiles.txt", + row: missileName, + columns: [ + "MinDamage", + "MaxDamage", + "MinLevDam1..5", + "MaxLevDam1..5", + "DmgSymPerCalc", + "SrcDamage", + "SrcMissDmg", + "HitShift", + ], + }, + ] + ) + ); + } + + const eType = getGameRowString("Missiles", missileRow, "EType"); + const element = GAME_ETYPES[eType]; + const elementalRange = getGameLevelScaledRange( + "Missiles", + missileRow, + level, + "EMin", + "Emax", + ["MinELev1", "MinELev2", "MinELev3", "MinELev4", "MinELev5"], + ["MaxELev1", "MaxELev2", "MaxELev3", "MaxELev4", "MaxELev5"] + ); + if (element && elementalRange) { + const multiplier = getGameDotMultiplier( + "Missiles", + missileRow, + eType, + sourceSkillName, + missileName, + ["MaxELev1", "MaxELev2", "MaxELev3", "MaxELev4", "MaxELev5"] + ); + components.push( + createGameComponent( + label, + element, + applyGameDotMultiplier(elementalRange, multiplier), + evaluateGameCalcExpression( + getGameRowString("Missiles", missileRow, "EDmgSymPerCalc"), + sourceSkillRow, + skillMap + ), + getGameElementalBonusPercent( + element, + skillMap, + realStats, + sourceSkillName + ), + "missile", + [ + { + table: "Missiles.txt", + row: missileName, + columns: [ + "EType", + "EMin", + "Emax", + "MinELev1..5", + "MaxELev1..5", + "EDmgSymPerCalc", + "ELen", + "ELevLen1..3", + "DamageRate", + "HitShift", + ], + }, + ], + element === "poison" ? "over_time" : "instant" + ) + ); + } + + return components; +} + +function summarizeGameComponents( + components: DirectSkillDamage["components"], + skillName: string +): DirectSkillDamage { + const physical = createEmptyDamageRange(); + const elemental: DirectSkillDamage["elemental"] = {}; + let poisonRange: DamageRange | undefined; + + for (const component of components) { + if (component.element === "physical") { + physical.min += component.damage.min; + physical.max += component.damage.max; + continue; + } + + if (component.element === "poison") { + poisonRange = addDamageRange( + poisonRange || createEmptyDamageRange(), + component.damage + ); + continue; + } + + elemental[component.element] = addDamageRange( + elemental[component.element] || createEmptyDamageRange(), + component.damage + ); + } + + const poisonDuration = + getGamePoisonDurationSeconds(skillName) || 2; + + return { + components, + physical, + elemental, + poisonRange, + poisonDamage: poisonRange + ? { + total: Math.floor((poisonRange.min + poisonRange.max) / 2), + durationSeconds: poisonDuration, + } + : undefined, + }; +} + +function getGameDirectSkillDamage( + skillName: string, + level: number, + skillMap: Map, + realStats?: CharacterData["realStats"] +): DirectSkillDamage | undefined { + const components = getGameSkillComponents(skillName, level, skillMap, realStats); + if (components.length === 0) { + return undefined; + } + + return summarizeGameComponents(components, skillName); +} + +function getSkillMap(characterData: CharacterData): Map { + const skillMap = new Map(); + + if (characterData.realSkills && characterData.realSkills.length > 0) { + characterData.realSkills.forEach((skill) => { + skillMap.set(normalizeSkillName(skill.skill), { + level: skill.level, + baseLevel: skill.baseLevel ?? skill.level, + }); + }); + } + + (characterData.character.skills || []).forEach((skill) => { + const name = normalizeSkillName(skill.name); + if (!skillMap.has(name)) { + skillMap.set(name, { + level: skill.level, + baseLevel: skill.level, + }); + } + }); + + return skillMap; +} + +function getSkillEntry(skillMap: Map, skillName: string): SkillEntry { + const candidates = getEquivalentSkillNames(skillName); + for (const candidate of candidates) { + const entry = skillMap.get(candidate); + if (entry) { + return entry; + } + } + + const normalizedCandidates = new Set( + candidates.map((candidate) => candidate.toLowerCase()) + ); + for (const [name, entry] of skillMap.entries()) { + if (normalizedCandidates.has(name.toLowerCase())) { + return entry; + } + } + + return { + level: 0, + baseLevel: 0, + }; +} + +function getLogicalHandSlot( + equipment?: string +): "right" | "left" | undefined { + if (!equipment) { + return undefined; + } + + if (equipment.includes("Right Hand")) { + return "right"; + } + + if (equipment.includes("Left Hand")) { + return "left"; + } + + return undefined; +} + +function getWeaponSetForEquipment(equipment?: string): WeaponSet | undefined { + if (!equipment) { + return undefined; + } + + if (PRIMARY_WEAPON_EQUIPMENT_SLOTS.has(equipment)) { + return "primary"; + } + + if (SECONDARY_WEAPON_EQUIPMENT_SLOTS.has(equipment)) { + return "secondary"; + } + + return undefined; +} + +function getPlayerItemsForWeaponSet( + items: IItem[], + weaponSet: WeaponSet +): IItem[] { + return items.filter((item) => { + const itemWeaponSet = getWeaponSetForEquipment(item.location?.equipment); + return !itemWeaponSet || itemWeaponSet === weaponSet; + }); +} + +function normalizeItemsForWeaponSet( + items: IItem[], + weaponSet: WeaponSet +): IItem[] { + if (weaponSet === "primary") { + return items; + } + + return items.map((item) => { + const equipment = item.location?.equipment; + if (!equipment) { + return item; + } + + switch (equipment) { + case "Right Hand": + return { + ...item, + location: { ...item.location, equipment: "Right Hand Switch" }, + }; + case "Left Hand": + return { + ...item, + location: { ...item.location, equipment: "Left Hand Switch" }, + }; + case "Right Hand Switch": + return { + ...item, + location: { ...item.location, equipment: "Right Hand" }, + }; + case "Left Hand Switch": + return { + ...item, + location: { ...item.location, equipment: "Left Hand" }, + }; + default: + return item; + } + }); +} + +function buildWeaponSetContext( + characterData: CharacterData, + weaponSet: WeaponSet +): WeaponSetContext { + let realStats = + weaponSet === "primary" ? characterData.realStats : undefined; + let realSkills = + weaponSet === "primary" ? characterData.realSkills : undefined; + + if (!realStats || !realSkills) { + const normalizedItems = normalizeItemsForWeaponSet( + characterData.items, + weaponSet + ); + const normalizedCharacterData = { + ...characterData, + items: normalizedItems, + } as unknown as CharacterResponse; + + if (!realStats) { + try { + const statParser = new CharacterStatParser( + normalizedCharacterData as unknown as CharacterData + ); + realStats = statParser.parseAndGetCharStats(); + } catch { + realStats = characterData.realStats; + } + } + + if (!realSkills) { + try { + realSkills = calculateTotalSkills(normalizedCharacterData); + } catch { + realSkills = characterData.realSkills; + } + } + } + + const setAwareCharacterData = { + ...characterData, + realSkills, + } as CharacterData; + const playerItems = getPlayerItemsForWeaponSet(characterData.items, weaponSet); + + return { + weaponSet, + realStats, + skillMap: getSkillMap(setAwareCharacterData), + playerItems, + alwaysActiveAuras: dedupeAuras( + collectAlwaysActiveAuras(playerItems, characterData.mercenary) + ), + }; +} + +function buildWeaponSetContexts( + characterData: CharacterData +): Record { + return { + primary: buildWeaponSetContext(characterData, "primary"), + secondary: buildWeaponSetContext(characterData, "secondary"), + }; +} + +function hasDamageRange( + damage?: { minimum?: number; maximum?: number } +): damage is { minimum: number; maximum: number } { + return ( + typeof damage?.minimum === "number" && + typeof damage?.maximum === "number" && + (damage.minimum > 0 || damage.maximum > 0) + ); +} + +function getDamageFromArmoryItemData(item: IItem): DamageRangeWithSource | undefined { + const itemWithPossibleKickDamage = item as IItem & { + damage?: IItem["damage"] & { kick?: { minimum?: number; maximum?: number } }; + base?: IItem["base"] & { + damage?: IItem["damage"] & { kick?: { minimum?: number; maximum?: number } }; + }; + }; + const damageCandidates = [ + itemWithPossibleKickDamage.base?.damage?.kick, + itemWithPossibleKickDamage.damage?.kick, + ]; + const damage = damageCandidates.find(hasDamageRange); + if (!damage) { + return undefined; + } + + return { + damage: normalizeItemDamageRange(damage), + sourceRefs: [ + { + table: "Armory item data", + row: item.base?.name || item.name, + columns: ["base.damage.kick", "damage.kick"], + note: "Equipped boot kick damage enriched from Armor.txt mindam/maxdam.", + }, + ], + }; +} + +function getBootKickDamage(item: IItem): DamageRangeWithSource | undefined { + return getDamageFromArmoryItemData(item); +} + +function isEquippedBootItem(item: IItem): boolean { + if (item.location?.zone !== "Equipped" || item.location?.equipment !== "Boots") { + return false; + } + + const typeCode = item.base?.type_code?.toLowerCase(); + const typeName = item.base?.type?.toLowerCase() || ""; + return typeCode === "boot" || typeName.includes("boot"); +} + +function createUnarmedItem(weaponSet: WeaponSet): IItem { + return { + id: `unarmed-${weaponSet}`, + hash: `unarmed-${weaponSet}`, + name: "Unarmed", + category: "weapon", + base_code: "unarmed", + base: { + id: "unarmed", + category: "weapon", + codes: {}, + name: "Unarmed", + stackable: false, + type: "Unarmed", + type_code: "unarmed", + size: { height: 1, width: 1 }, + requirements: { level: 0, strength: 0, dexterity: 0 }, + }, + quality: { id: 2, name: "Normal" }, + location: { + zone: "Equipped", + storage: "Equipped", + zone_id: 1, + storage_id: 0, + equipment: weaponSet === "primary" ? "Right Hand" : "Right Hand Switch", + equipment_id: 0, + }, + position: { row: 0, column: 0 }, + properties: [], + damage: { + one_handed: { minimum: 1, maximum: 2 }, + two_handed: {}, + missile: {}, + }, + is_identified: true, + is_socketed: false, + is_new: false, + is_ear: false, + is_starter: false, + is_simple: true, + is_ethereal: false, + is_personalized: false, + is_runeword: false, + socketed_count: 0, + item_level: 0, + graphic_id: false, + class_specifics: false, + socket_count: 0, + modifiers: [], + requirements: { level: 0, strength: 0, dexterity: 0 }, + corrupted: false, + desecrated: false, + } as IItem; +} + +function createUnarmedSelection(weaponSet: WeaponSet): WeaponSelection { + const setLabel = weaponSet === "primary" ? "Primary" : "Secondary"; + const item = createUnarmedItem(weaponSet); + return { + option: { + id: `${weaponSet}:right:unarmed`, + label: `${setLabel} unarmed`, + weaponSet, + slot: "right", + handMode: "unarmed", + itemName: "Unarmed", + baseName: "Unarmed", + weaponType: "Unarmed", + }, + item, + damage: { min: 1, max: 2 }, + weaponSet, + slot: "right", + }; +} + +function createKickSelection( + weaponSet: WeaponSet, + item: IItem +): WeaponSelection { + const setLabel = weaponSet === "primary" ? "Primary" : "Secondary"; + const key = item.hash || String(item.id); + const baseName = item.base?.name || item.name; + const kickDamage = getBootKickDamage(item); + + return { + option: { + id: `${weaponSet}:feet:kick:${key}`, + label: `${setLabel} boots (Kick)`, + weaponSet, + slot: "feet", + handMode: "kick", + itemName: item.name, + baseName, + weaponType: item.base?.type || "Boots", + }, + item, + damage: kickDamage?.damage || createEmptyDamageRange(), + weaponSet, + slot: "feet", + damageSourceRefs: kickDamage?.sourceRefs, + baseDamageUnavailable: !kickDamage, + }; +} + +function createSummonSourceItem(skillName: string): IItem { + const id = `summon-source-${skillName.toLowerCase().replace(/[^a-z0-9]+/g, "-")}`; + const item = createUnarmedItem("primary"); + return { + ...item, + id, + hash: id, + name: "Summon source", + base_code: "summon-source", + base: { + ...item.base, + id: "summon-source", + name: "Summon source", + type: "Summon", + type_code: "summon", + }, + damage: { + one_handed: {}, + two_handed: {}, + missile: {}, + }, + } as IItem; +} + +function createSummonSelection(skillName: string): WeaponSelection { + const item = createSummonSourceItem(skillName); + const key = skillName.toLowerCase().replace(/[^a-z0-9]+/g, "-"); + + return { + option: { + id: `primary:summon:${key}`, + label: `Summon source (${skillName})`, + weaponSet: "primary", + slot: "summon", + handMode: "summon", + itemName: skillName, + baseName: "Summon", + weaponType: "Summon", + }, + item, + damage: createEmptyDamageRange(), + weaponSet: "primary", + slot: "summon", + summonSkillName: skillName, + }; +} + +function getSequenceHitOption(hit: WeaponSequenceHit) { + return { + label: hit.label, + weaponId: hit.selection.option.id, + weaponSet: hit.selection.weaponSet, + slot: hit.selection.slot as "right" | "left", + handMode: hit.selection.option.handMode as SingleWeaponHandMode, + itemName: hit.selection.item.name, + }; +} + +function createWeaponSequenceSelection( + weaponSet: WeaponSet, + handMode: "dual_wield" | "dual_throw", + hits: WeaponSequenceHit[] +): WeaponSelection { + const setLabel = weaponSet === "primary" ? "Primary" : "Secondary"; + const label = + handMode === "dual_throw" + ? `${setLabel} dual throw cycle` + : `${setLabel} dual wield cycle`; + const itemNames = hits.map((hit) => hit.selection.item.name).join(" + "); + const idSuffix = hits.map((hit) => hit.selection.option.id).join("+"); + + return { + option: { + id: `${weaponSet}:${handMode}:${idSuffix}`, + label, + weaponSet, + slot: "right", + handMode, + itemName: itemNames, + baseName: handMode === "dual_throw" ? "Thrown pair" : "Dual wield pair", + weaponType: handMode === "dual_throw" ? "Dual throw" : "Dual wield", + sequenceHits: hits.map(getSequenceHitOption), + }, + item: hits[0].selection.item, + damage: hits.reduce( + (total, hit) => addDamageRange(total, hit.selection.damage), + createEmptyDamageRange() + ), + weaponSet, + slot: "right", + sequenceHits: hits, + }; +} + +function addWeaponSequenceSelections( + selections: WeaponSelection[] +): WeaponSelection[] { + const sequenceSelections: WeaponSelection[] = []; + + (["primary", "secondary"] as const).forEach((weaponSet) => { + const setSelections = selections.filter( + (selection) => selection.weaponSet === weaponSet && !selection.sequenceHits + ); + const rightOneHanded = setSelections.find( + (selection) => + selection.slot === "right" && selection.option.handMode === "one_handed" + ); + const leftOneHanded = setSelections.find( + (selection) => + selection.slot === "left" && selection.option.handMode === "one_handed" + ); + const rightThrown = setSelections.find( + (selection) => + selection.slot === "right" && selection.option.handMode === "missile" + ); + const leftThrown = setSelections.find( + (selection) => + selection.slot === "left" && selection.option.handMode === "missile" + ); + + if (rightOneHanded && leftOneHanded) { + sequenceSelections.push( + createWeaponSequenceSelection(weaponSet, "dual_wield", [ + { label: "Right hand", selection: rightOneHanded }, + { label: "Left hand", selection: leftOneHanded }, + ]) + ); + } + + if (rightThrown && leftThrown) { + sequenceSelections.push( + createWeaponSequenceSelection(weaponSet, "dual_throw", [ + { label: "Right hand throw", selection: rightThrown }, + { label: "Left hand throw", selection: leftThrown }, + ]) + ); + } + }); + + return [...selections, ...sequenceSelections]; +} + +function getWeaponOptions(characterData: CharacterData): WeaponSelection[] { + const selections: WeaponSelection[] = []; + + (["primary", "secondary"] as const).forEach((weaponSet) => { + const setSelectionStart = selections.length; + const items = getPlayerItemsForWeaponSet(characterData.items, weaponSet); + const leftHandOccupied = items.some((item) => { + const equipment = item.location?.equipment; + return ( + item.location?.zone === "Equipped" && + getLogicalHandSlot(equipment) === "left" && + getWeaponSetForEquipment(equipment) === weaponSet && + item.category !== "weapon" + ); + }); + + items.forEach((item) => { + const equipment = item.location?.equipment; + if ( + item.location?.zone !== "Equipped" || + !equipment || + !ALL_HAND_EQUIPMENT_SLOTS.has(equipment) || + getWeaponSetForEquipment(equipment) !== weaponSet || + item.category !== "weapon" + ) { + return; + } + + const slot = getLogicalHandSlot(equipment); + if (!slot) { + return; + } + + const setLabel = weaponSet === "primary" ? "Primary" : "Secondary"; + const key = item.hash || String(item.id); + const baseName = item.base?.name || item.name; + const weaponType = item.base?.type || "Weapon"; + const isBowWeapon = isBowOrCrossbow(item); + const missileDamage = hasDamageRange(item.damage?.missile) + ? item.damage!.missile + : isBowWeapon && hasDamageRange(item.damage?.two_handed) + ? item.damage!.two_handed + : undefined; + + if (hasDamageRange(item.damage?.one_handed)) { + selections.push({ + option: { + id: `${weaponSet}:${slot}:one_handed:${key}`, + label: `${setLabel} ${slot === "right" ? "right" : "left"} hand (1H)`, + weaponSet, + slot, + handMode: "one_handed", + itemName: item.name, + baseName, + weaponType, + }, + item, + damage: normalizeItemDamageRange(item.damage!.one_handed), + weaponSet, + slot, + }); + } + + if ( + !isBowWeapon && + slot === "right" && + !leftHandOccupied && + hasDamageRange(item.damage?.two_handed) + ) { + selections.push({ + option: { + id: `${weaponSet}:${slot}:two_handed:${key}`, + label: `${setLabel} right hand (2H)`, + weaponSet, + slot, + handMode: "two_handed", + itemName: item.name, + baseName, + weaponType, + }, + item, + damage: normalizeItemDamageRange(item.damage!.two_handed), + weaponSet, + slot, + }); + } + + if (missileDamage) { + selections.push({ + option: { + id: `${weaponSet}:${slot}:missile:${key}`, + label: isBowWeapon + ? `${setLabel} bow/crossbow` + : `${setLabel} ${slot === "right" ? "right" : "left"} hand (Thrown)`, + weaponSet, + slot, + handMode: "missile", + itemName: item.name, + baseName, + weaponType, + }, + item, + damage: normalizeItemDamageRange(missileDamage), + weaponSet, + slot, + }); + } + }); + + if (selections.length === setSelectionStart) { + selections.push(createUnarmedSelection(weaponSet)); + } + + const equippedBoots = items.find(isEquippedBootItem); + if (equippedBoots) { + selections.push(createKickSelection(weaponSet, equippedBoots)); + } + }); + + const summonSkillNames = Array.from(getSkillMap(characterData).entries()) + .filter(([skillName, entry]) => entry.level > 0 && isSelectableSummonSkill(skillName)) + .map(([skillName]) => skillName); + uniqueStrings(summonSkillNames).forEach((skillName) => { + selections.push(createSummonSelection(skillName)); + }); + + return addWeaponSequenceSelections(selections); +} + +function isBowOrCrossbow(item: IItem): boolean { + const typeCode = item.base?.type_code?.toLowerCase(); + return typeCode === "bow" || typeCode === "abow" || typeCode === "xbow"; +} + +function isClawWeapon(item: IItem): boolean { + const typeCode = item.base?.type_code?.toLowerCase(); + return typeCode === "h2h" || typeCode === "h2h2"; +} + +function isJavelinOrSpear(item: IItem): boolean { + const typeCode = item.base?.type_code?.toLowerCase(); + const typeName = item.base?.type?.toLowerCase() || ""; + + return ( + typeCode === "jave" || + typeCode === "spea" || + typeName.includes("javelin") || + typeName.includes("spear") + ); +} + +function isHammerWeapon(item: IItem): boolean { + const typeCode = item.base?.type_code?.toLowerCase(); + const typeName = item.base?.type?.toLowerCase() || ""; + return typeCode === "hamm" || typeName.includes("hammer"); +} + +function getPayloadStatBonusPercent( + item: IItem, + strength: number, + dexterity: number +): number | undefined { + const strengthBonus = item.base?.stat_bonus?.strength || 0; + const dexterityBonus = item.base?.stat_bonus?.dexterity || 0; + if (strengthBonus <= 0 && dexterityBonus <= 0) { + return undefined; + } + + return strength * (strengthBonus / 100) + dexterity * (dexterityBonus / 100); +} + +function getStatBonusPercent( + characterClass: string, + weaponSelection: WeaponSelection, + strength: number, + dexterity: number +): number { + if (weaponSelection.option.handMode === "kick") { + return ( + getPayloadStatBonusPercent(weaponSelection.item, strength, dexterity) ?? + strength + ); + } + + if (isBowOrCrossbow(weaponSelection.item)) { + return dexterity; + } + + if (isClawWeapon(weaponSelection.item)) { + return strength * 0.75 + dexterity * 0.75; + } + + if (weaponSelection.option.handMode === "missile" && !isBowOrCrossbow(weaponSelection.item)) { + return strength * 0.75 + dexterity * 0.75; + } + + if ( + characterClass.toLowerCase() === "amazon" && + isJavelinOrSpear(weaponSelection.item) + ) { + return strength * 0.8 + dexterity * 0.5; + } + + if (isHammerWeapon(weaponSelection.item)) { + return strength * 1.1; + } + + return strength; +} + +function parseAuraProperty(property: string): { name: string; level: number } | null { + const match = property.match(/^Level (\d+) (.+?) Aura When Equipped$/i); + if (!match) { + return null; + } + + return { + level: Number(match[1]), + name: normalizeSkillName(match[2]), + }; +} + +function isDamageAura(auraName: string): boolean { + if (getPlayerAuraDefinition(auraName)) { + return true; + } + + const skillRow = getGameRow("Skills", auraName); + return Boolean( + skillRow && + (hasAnyGameStat(skillRow, SUPPORTED_AURA_DAMAGE_STATS) || + GAME_ETYPES[getGameRowString("Skills", skillRow, "EType")]) + ); +} + +function collectAlwaysActiveAuras( + playerItems: IItem[], + mercenary?: CharacterData["mercenary"] +): AuraSource[] { + const auras: AuraSource[] = []; + + playerItems.forEach((item) => { + item.properties.forEach((property) => { + if (!property) { + return; + } + + const aura = parseAuraProperty(property); + if (aura && isDamageAura(aura.name)) { + auras.push({ + name: aura.name, + level: aura.level, + source: "player_item", + carrier: "self", + }); + } + }); + }); + + if (mercenary?.items) { + mercenary.items.forEach((item) => { + item.properties.forEach((property) => { + if (!property) { + return; + } + + const aura = parseAuraProperty(property); + if (aura && isDamageAura(aura.name)) { + auras.push({ + name: aura.name, + level: aura.level, + source: "mercenary_item", + carrier: "party", + }); + } + }); + }); + } + + return auras; +} + +function summarizeAuraSource(source: AuraSource): ActiveAuraSummary { + return { + name: source.name, + level: source.level, + source: source.source, + carrier: source.carrier, + }; +} + +function getAuraSourcePriority(source: AuraSource): number { + switch (source.source) { + case "player_skill": + return 4; + case "player_item": + return 3; + case "mercenary_native": + return 2; + case "mercenary_item": + return 1; + case "manual": + return 0; + } +} + +function dedupeAuras(auraSources: AuraSource[]): AuraSource[] { + const byName = new Map(); + + auraSources.forEach((source) => { + const current = byName.get(source.name); + if (!current) { + byName.set(source.name, source); + return; + } + + if (source.level > current.level) { + byName.set(source.name, source); + return; + } + + if ( + source.level === current.level && + getAuraSourcePriority(source) > getAuraSourcePriority(current) + ) { + byName.set(source.name, source); + } + }); + + return Array.from(byName.values()).sort((left, right) => + left.name.localeCompare(right.name) + ); +} + +function collectPlayerAuraOptions( + contexts: Record +): DamageAuraOption[] { + const options: DamageAuraOption[] = [ + { + id: "none", + name: "No active aura", + level: 0, + levelOptions: [0], + levelBonuses: [], + selfLevelBonuses: [], + partyLevelBonuses: [], + source: "none", + }, + ]; + + const auraLevels = new Map(); + + Object.values(contexts).forEach((context) => { + Array.from(context.skillMap.entries()) + .filter( + ([skillName, entry]) => + entry.level > 0 && isPlayerAuraSkill(skillName) + ) + .forEach(([skillName, entry]) => { + const definition = getPlayerAuraDefinition(skillName); + const auraId = definition?.id || normalizeSkillName(skillName); + auraLevels.set(auraId, Math.max(auraLevels.get(auraId) || 0, entry.level)); + }); + }); + + PLAYER_AURA_DEFINITIONS.forEach((definition) => { + const ownedLevel = auraLevels.get(definition.id) || 0; + const levelOptions = getManualAuraLevelOptions(definition); + const selfLevelBonuses = levelOptions.map((level) => + getManualAuraLevelBonus(definition.id, level, "self") + ); + const partyLevelBonuses = levelOptions.map((level) => + getManualAuraLevelBonus(definition.id, level, "party") + ); + options.push({ + id: definition.id, + name: definition.name, + level: ownedLevel || 1, + levelOptions, + levelBonuses: selfLevelBonuses, + selfLevelBonuses, + partyLevelBonuses, + source: ownedLevel > 0 ? "character_skill" : "manual", + }); + }); + + return options; +} + +function collectPlayerAuraSelections( + playerAuraOptions: DamageAuraOption[] +): AuraSelection[] { + return playerAuraOptions.flatMap((option) => + option.id === "none" + ? [{ option, carrier: "self" as const }] + : [ + { option, carrier: "self" as const }, + { option, carrier: "party" as const }, + ] + ); +} + +function isSelectableAttackSkill(skillName: string): boolean { + return isGameWeaponAttackSkill(skillName); +} + +function isSelectableSpellSkill(skillName: string): boolean { + const resolvedSkillName = getEquivalentSkillNames(skillName).find((candidate) => + Boolean(getGameRow("Skills", candidate)) + ) || skillName; + if ( + isPlayerAuraSkill(resolvedSkillName) || + isGameSummonSkill(resolvedSkillName) || + isGameSelfOrPartyBuffSkill(resolvedSkillName) + ) { + return false; + } + + return ( + !isSelectableAttackSkill(skillName) && + getGameSkillComponents(resolvedSkillName, 1, new Map()).length > 0 + ); +} + +function collectDamageSkillOptions( + contexts: Record +): DamageSkillOption[] { + const options: DamageSkillOption[] = [ + { + id: "Basic Attack", + name: "Basic Attack", + level: 1, + damageMode: "weapon", + canUseTransformation: true, + allowedTransformationIds: [], + }, + ]; + + const damageSkillLevels = new Map< + string, + { + id: string; + name: string; + level: number; + damageMode: DamageSkillOption["damageMode"]; + sourceSkillName?: string; + summonVariant?: string; + canUseTransformation: boolean; + allowedTransformationIds: string[]; + } + >(); + + Object.values(contexts).forEach((context) => { + Array.from(context.skillMap.entries()) + .filter( + ([skillName, entry]) => + entry.level > 0 && + (isSelectableAttackSkill(skillName) || + isSelectableSpellSkill(skillName) || + isSelectableSummonSkill(skillName)) + ) + .forEach(([skillName, entry]) => { + const damageMode = isSelectableAttackSkill(skillName) + ? "weapon" + : isSelectableSummonSkill(skillName) + ? "summon" + : "spell"; + const optionSources = + damageMode === "summon" && getSummonVariantDefinitions(skillName).length > 0 + ? getSummonVariantDefinitions(skillName).map((variant) => ({ + id: `${skillName}::${variant.id}`, + name: `${skillName} (${variant.label})`, + sourceSkillName: skillName, + summonVariant: variant.id, + })) + : [ + { + id: skillName, + name: skillName, + sourceSkillName: undefined, + summonVariant: undefined, + }, + ]; + + optionSources.forEach((source) => { + const current = damageSkillLevels.get(source.id); + const allowedTransformationIds = Array.from( + new Set([ + ...(current?.allowedTransformationIds || []), + ...getSkillAllowedTransformationIds(skillName), + ]) + ); + + damageSkillLevels.set(source.id, { + id: source.id, + name: source.name, + sourceSkillName: source.sourceSkillName, + summonVariant: source.summonVariant, + damageMode, + canUseTransformation: + Boolean(current?.canUseTransformation) || + allowedTransformationIds.length > 0, + allowedTransformationIds, + level: Math.max(current?.level || 0, entry.level), + }); + }); + }); + }); + + Array.from(damageSkillLevels.entries()) + .sort( + (left, right) => + right[1].level - left[1].level || left[1].name.localeCompare(right[1].name) + ) + .forEach(([, metadata]) => { + options.push({ + id: metadata.id, + name: metadata.name, + level: metadata.level, + damageMode: metadata.damageMode, + sourceSkillName: metadata.sourceSkillName, + summonVariant: metadata.summonVariant, + canUseTransformation: metadata.canUseTransformation, + allowedTransformationIds: metadata.allowedTransformationIds, + }); + }); + + return options; +} + +function collectTransformationOptions( + contexts: Record +): DamageTransformationOption[] { + const getLevelOptions = (gameSkillName: string) => + Array.from( + { length: getMaxModeledSkillLevel(gameSkillName) }, + (_, index) => index + 1 + ); + const getLevelBonuses = (gameSkillName: string, levels: number[]) => + levels.map((level) => ({ + level, + physicalBonusPercent: getTransformationDamagePercent(gameSkillName, level), + })); + const getTransformationLevel = ( + definition: (typeof TRANSFORMATION_SKILL_DEFINITIONS)[number] + ) => + Math.max( + 1, + ...Object.values(contexts).map( + (context) => + getSkillEntry(context.skillMap, definition.id).level || + getGameSkillEntry(context.skillMap, definition.gameSkillName).level + ) + ); + + const options: DamageTransformationOption[] = [ + { + id: "none", + name: "No transformation", + level: 0, + levelOptions: [0], + levelBonuses: [{ level: 0, physicalBonusPercent: 0 }], + }, + ]; + + TRANSFORMATION_SKILL_DEFINITIONS.forEach((definition) => { + const levelOptions = getLevelOptions(definition.gameSkillName); + options.push({ + id: definition.id, + name: definition.name, + level: getTransformationLevel(definition), + levelOptions, + levelBonuses: getLevelBonuses(definition.gameSkillName, levelOptions), + }); + }); + + return options; +} + +function createEmptyDamageRange(): DamageRange { + return { min: 0, max: 0 }; +} + +function createEmptyDirectSkillDamage(): DirectSkillDamage { + return { + components: [], + physical: createEmptyDamageRange(), + elemental: {}, + }; +} + +function normalizeDamageRange(range: DamageRange): DamageRange { + return { + min: Math.max(0, range.min), + max: Math.max(Math.max(0, range.min), range.max), + }; +} + +function normalizeItemDamageRange(damage: { + minimum: number; + maximum: number; +}): DamageRange { + return normalizeDamageRange({ + min: damage.minimum, + max: damage.maximum, + }); +} + +function addDamageRange(target: DamageRange, addition?: DamageRange): DamageRange { + if (!addition) { + return target; + } + + return { + min: target.min + addition.min, + max: target.max + addition.max, + }; +} + +function addPoisonDamage( + current: PoisonDamage | undefined, + addition: PoisonDamage | undefined +): PoisonDamage | undefined { + if (!addition) { + return current; + } + + if (!current) { + return addition; + } + + return { + total: current.total + addition.total, + durationSeconds: Math.max(current.durationSeconds, addition.durationSeconds), + }; +} + +function isNonZeroDamageRange(range?: DamageRange): range is DamageRange { + return Boolean(range && (range.min > 0 || range.max > 0)); +} + +function averageDamageRange(range: DamageRange): number { + return Number(((range.min + range.max) / 2).toFixed(1)); +} + +function getCombinedDamageScore(profile: DamageProfile): [number, number, number] { + const combinedDamage = profile.damageTotals.combinedDamage; + const averageCombinedDamage = Number.isFinite( + profile.damageTotals.averageCombinedDamage + ) + ? profile.damageTotals.averageCombinedDamage + : averageDamageRange(combinedDamage); + + return [averageCombinedDamage, combinedDamage.max, combinedDamage.min]; +} + +function hasHigherCombinedDamage( + profile: DamageProfile, + currentBest: DamageProfile +): boolean { + const profileScore = getCombinedDamageScore(profile); + const currentBestScore = getCombinedDamageScore(currentBest); + + for (let index = 0; index < profileScore.length; index += 1) { + if (profileScore[index] !== currentBestScore[index]) { + return profileScore[index] > currentBestScore[index]; + } + } + + return false; +} + +function getDefaultDamageProfile(profiles: DamageProfile[]): DamageProfile | null { + const noManualAuraProfiles = profiles.filter( + (profile) => + profile.playerAuraId === "none" && + profile.playerAuraCarrier === "self" && + profile.transformationId === "none" + ); + const candidates = + noManualAuraProfiles.length > 0 ? noManualAuraProfiles : profiles; + + return candidates.reduce( + (bestProfile, profile) => + !bestProfile || hasHigherCombinedDamage(profile, bestProfile) + ? profile + : bestProfile, + null + ); +} + +function getDefaultTransformationSelection( + skillOption: DamageSkillOption | undefined, + transformationOptions: DamageTransformationOption[], + fallbackTransformationId: string +): string { + const requiredTransformation = skillOption?.allowedTransformationIds + .map((transformationId) => + transformationOptions.find((option) => option.id === transformationId) + ) + .find( + (option): option is DamageTransformationOption => + Boolean(option && option.id !== "none") + ); + + if (!requiredTransformation) { + return fallbackTransformationId; + } + + const level = + requiredTransformation.level || + requiredTransformation.levelOptions.find((optionLevel) => optionLevel > 0) || + 1; + + return `${requiredTransformation.id}:${level}`; +} + +function floorScaleDamageRange(range: DamageRange, multiplier: number): DamageRange { + return normalizeDamageRange({ + min: Math.floor(range.min * multiplier), + max: Math.floor(range.max * multiplier), + }); +} + +function createDamageComponent(component: { + id: string; + label: string; + source: DamageComponent["source"]; + damageType: DamageElement; + timing?: DamageComponent["timing"]; + damage: DamageRange; + baseDamage?: DamageRange; + poisonDamage?: PoisonDamage; + sourceRefs?: DamageSourceReference[]; + notes?: string[]; +}): DamageComponent { + return { + id: component.id, + label: component.label, + source: component.source, + damageType: component.damageType, + timing: component.timing || "instant", + damage: normalizeDamageRange(component.damage), + baseDamage: component.baseDamage + ? normalizeDamageRange(component.baseDamage) + : undefined, + poisonDamage: component.poisonDamage, + sourceRefs: component.sourceRefs || [], + notes: component.notes || [], + }; +} + +function scalePhysicalDamageComponent( + component: DamageComponent, + multiplier: number +): DamageComponent { + return { + ...component, + baseDamage: component.baseDamage || component.damage, + damage: floorScaleDamageRange(component.baseDamage || component.damage, multiplier), + }; +} + +function sumDamageComponents( + components: readonly DamageComponent[], + filter: (component: DamageComponent) => boolean +): DamageRange { + return components + .filter(filter) + .reduce( + (total, component) => addDamageRange(total, component.damage), + createEmptyDamageRange() + ); +} + +function buildDamageTotals(components: readonly DamageComponent[]): DamageTotals { + const byElement: Partial> = {}; + let poisonDamage: PoisonDamage | undefined; + + components.forEach((component) => { + if (!isNonZeroDamageRange(component.damage)) { + return; + } + + byElement[component.damageType] = addDamageRange( + byElement[component.damageType] || createEmptyDamageRange(), + component.damage + ); + + if (component.damageType === "poison") { + poisonDamage = addPoisonDamage( + poisonDamage, + component.poisonDamage || { + total: Math.floor(averageDamageRange(component.damage)), + durationSeconds: 0, + } + ); + } + }); + + const instantDamage = sumDamageComponents( + components, + (component) => component.timing === "instant" + ); + const overTimeDamage = sumDamageComponents( + components, + (component) => component.timing === "over_time" + ); + const combinedDamage = addDamageRange(instantDamage, overTimeDamage); + + return { + instantDamage, + overTimeDamage, + combinedDamage, + averageInstantDamage: averageDamageRange(instantDamage), + averageCombinedDamage: averageDamageRange(combinedDamage), + byElement, + poisonDamage, + }; +} + +function elementalDamageFromTotals( + totals: DamageTotals +): Partial> { + const elemental: Partial> = {}; + (["fire", "cold", "lightning", "magic"] as const).forEach((element) => { + const range = totals.byElement[element]; + if (isNonZeroDamageRange(range)) { + elemental[element] = range; + } + }); + return elemental; +} + +function directSkillDamageToComponents( + skillName: string, + directDamage: DirectSkillDamage +): DamageComponent[] { + const poisonDuration = getGamePoisonDurationSeconds(skillName) || 0; + return directDamage.components + .map((component, index) => { + const damageComponent = createDamageComponent({ + id: `${component.source}:${skillName}:${index}:${component.element}:${component.label}`, + label: + component.source === "missile" + ? `Missile: ${component.label}` + : `Skill: ${component.label}`, + source: component.source, + damageType: component.element, + timing: component.timing, + damage: component.damage, + poisonDamage: + component.element === "poison" + ? { + total: Math.floor(averageDamageRange(component.damage)), + durationSeconds: poisonDuration, + } + : undefined, + sourceRefs: component.sourceRefs, + notes: component.notes, + }); + return damageComponent; + }) + .filter((component) => isNonZeroDamageRange(component.damage)); +} + +function directSummonDamageToComponents( + ownerSkillName: string, + sourceSkillName: string, + directDamage: DirectSkillDamage, + labelPrefix: string, + extraSourceRefs: DamageSourceReference[] = [] +): DamageComponent[] { + const poisonDuration = getGamePoisonDurationSeconds(sourceSkillName) || 0; + return directDamage.components + .map((component, index) => + createDamageComponent({ + id: `summon:${ownerSkillName}:${sourceSkillName}:${index}:${component.element}:${component.label}`, + label: `${labelPrefix}: ${component.label}`, + source: "summon", + damageType: component.element, + timing: component.timing, + damage: component.damage, + baseDamage: + component.element === "physical" ? component.damage : undefined, + poisonDamage: + component.element === "poison" + ? { + total: Math.floor(averageDamageRange(component.damage)), + durationSeconds: poisonDuration, + } + : undefined, + sourceRefs: [...extraSourceRefs, ...component.sourceRefs], + notes: component.notes, + }) + ) + .filter((component) => isNonZeroDamageRange(component.damage)); +} + +const MONSTER_ATTACK_MODE_COLUMNS = { + A1: ["A1MinD", "A1MaxD"], + A2: ["A2MinD", "A2MaxD"], + S1: ["S1MinD", "S1MaxD"], +} as const; + +type MonsterAttackMode = keyof typeof MONSTER_ATTACK_MODE_COLUMNS; + +function getMonsterAttackRange( + monsterRow: string[], + mode: MonsterAttackMode +): DamageRange | undefined { + const [minColumn, maxColumn] = MONSTER_ATTACK_MODE_COLUMNS[mode]; + const minValue = getGameRowString("MonStats", monsterRow, minColumn); + const maxValue = getGameRowString("MonStats", monsterRow, maxColumn); + if (!minValue && !maxValue) { + return undefined; + } + + return normalizeDamageRange({ + min: getGameRowNumber("MonStats", monsterRow, minColumn), + max: getGameRowNumber("MonStats", monsterRow, maxColumn), + }); +} + +function getSummonMonsterRow(skillRow: string[]): string[] | undefined { + const summonId = getGameRowString("Skills", skillRow, "summon"); + return summonId ? getOptionalGameRow("MonStats", summonId) : undefined; +} + +function getSummonedSkillNames(skillRow: string[]): string[] { + const names: string[] = []; + for (let index = 1; index <= 5; index += 1) { + const name = getGameRowString("Skills", skillRow, `sumskill${index}`); + if (name) { + names.push(name); + } + } + + return names; +} + +function getMonsterSkillNames(monsterRow: string[] | undefined): Set { + const names = new Set(); + if (!monsterRow) { + return names; + } + + for (let index = 1; index <= 8; index += 1) { + const name = getGameRowString("MonStats", monsterRow, `Skill${index}`); + if (name) { + names.add(name.toLowerCase()); + } + } + + return names; +} + +function getPreferredMonsterAttackMode( + monsterRow: string[], + summonedSkillNames: string[] +): MonsterAttackMode | undefined { + const summonedNames = new Set( + summonedSkillNames.map((name) => name.toLowerCase()) + ); + + for (let index = 1; index <= 8; index += 1) { + const monsterSkillName = getGameRowString("MonStats", monsterRow, `Skill${index}`); + const mode = getGameRowString("MonStats", monsterRow, `Sk${index}mode`) + .toUpperCase() as MonsterAttackMode; + if ( + summonedNames.has(monsterSkillName.toLowerCase()) && + mode in MONSTER_ATTACK_MODE_COLUMNS && + isNonZeroDamageRange(getMonsterAttackRange(monsterRow, mode)) + ) { + return mode; + } + } + + return (Object.keys(MONSTER_ATTACK_MODE_COLUMNS) as MonsterAttackMode[]).find( + (mode) => isNonZeroDamageRange(getMonsterAttackRange(monsterRow, mode)) + ); +} + +function getSummonMonsterAttackComponent( + skillName: string, + skillRow: string[], + monsterRow: string[], + summonedSkillNames: string[], + hasDirectPhysicalDamage: boolean +): DamageComponent | undefined { + if (hasDirectPhysicalDamage) { + return undefined; + } + + const mode = getPreferredMonsterAttackMode(monsterRow, summonedSkillNames); + if (!mode) { + return undefined; + } + + const range = getMonsterAttackRange(monsterRow, mode); + if (!isNonZeroDamageRange(range)) { + return undefined; + } + + const monsterId = getGameRowString("MonStats", monsterRow, "Id"); + const [minColumn, maxColumn] = MONSTER_ATTACK_MODE_COLUMNS[mode]; + return createDamageComponent({ + id: `monster:${skillName}:${monsterId}:${mode}`, + label: `Summon ${mode} attack`, + source: "monster", + damageType: "physical", + damage: range, + baseDamage: range, + sourceRefs: [ + { + table: "Skills.txt", + row: getGameRowString("Skills", skillRow, "skill") || skillName, + columns: ["summon", "pettype", "sumskill*", "sumsk*calc"], + }, + { + table: "MonStats.txt", + row: monsterId, + columns: [minColumn, maxColumn, `Skill1..Skill8`, `Sk1mode..Sk8mode`], + note: "Mode-linked monster attack damage is treated as the primary modeled summon hit; alternate monster modes are not summed.", + }, + ], + }); +} + +function getSummonedSkillLevel( + skillRow: string[], + skillMap: Map, + ownerLevel: number, + index: number +): number { + const calc = getGameRowString("Skills", skillRow, `sumsk${index}calc`); + const calculated = evaluateGameCalcExpression( + calc, + skillRow, + skillMap, + ownerLevel + ); + + return Math.max(1, calculated || ownerLevel); +} + +function getSummonedSkillComponents( + ownerSkillName: string, + skillRow: string[], + ownerLevel: number, + skillMap: Map, + realStats: CharacterData["realStats"] | undefined, + allowedSummonedSkillNames: Set +): DamageComponent[] { + const components: DamageComponent[] = []; + for (let index = 1; index <= 5; index += 1) { + const summonedSkillName = getGameRowString("Skills", skillRow, `sumskill${index}`); + if (!summonedSkillName) { + continue; + } + const summonedSkillRow = getGameRow("Skills", summonedSkillName); + const isMonsterListedSkill = allowedSummonedSkillNames.has( + summonedSkillName.toLowerCase() + ); + const isSummonOwnedAuraSkill = Boolean( + summonedSkillRow && + getGameRowString("Skills", summonedSkillRow, "aura") === "1" && + !getGameRowString("Skills", summonedSkillRow, "charclass") + ); + if (!isMonsterListedSkill && !isSummonOwnedAuraSkill) { + continue; + } + + const summonedLevel = getSummonedSkillLevel( + skillRow, + skillMap, + ownerLevel, + index + ); + const directDamage = getGameDirectSkillDamage( + summonedSkillName, + summonedLevel, + skillMap, + realStats + ); + if (!directDamage) { + continue; + } + + components.push( + ...directSummonDamageToComponents( + ownerSkillName, + summonedSkillName, + directDamage, + `Summoned skill (${summonedSkillName} lvl ${summonedLevel})`, + [ + { + table: "Skills.txt", + row: getGameRowString("Skills", skillRow, "skill") || ownerSkillName, + columns: [`sumskill${index}`, `sumsk${index}calc`], + }, + ] + ) + ); + } + + return components; +} + +function getSummonFlatPhysicalComponents( + skillName: string, + skillRow: string[], + level: number, + skillMap: Map +): DamageComponent[] { + const components: DamageComponent[] = []; + + (["aura", "passive"] as const).forEach((prefix) => { + const maxIndex = prefix === "aura" ? 6 : 5; + for (let index = 1; index <= maxIndex; index += 1) { + const stat = getGameRowString("Skills", skillRow, `${prefix}stat${index}`); + if (stat !== "item_normaldamage") { + continue; + } + + const damage = evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, getGameStatCalcColumn(prefix, index)), + skillRow, + skillMap, + level + ); + if (damage <= 0) { + continue; + } + + components.push( + createDamageComponent({ + id: `summon-flat-physical:${skillName}:${prefix}${index}`, + label: "Summon flat physical", + source: "skill", + damageType: "physical", + damage: { min: damage, max: damage }, + baseDamage: { min: damage, max: damage }, + sourceRefs: [ + { + table: "Skills.txt", + row: getGameRowString("Skills", skillRow, "skill") || skillName, + columns: [ + `${prefix}stat${index}`, + getGameStatCalcColumn(prefix, index), + ], + note: "item_normaldamage is modeled as flat physical damage on the summoned unit before summon damage percent scaling.", + }, + ], + }) + ); + } + }); + + return components; +} + +function getSummonDamageComponents( + skillName: string, + level: number, + skillMap: Map, + realStats?: CharacterData["realStats"], + variantId?: string +): DamageComponent[] { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow) { + return []; + } + + const variantDefinition = getSummonVariantDefinition(skillName, variantId); + const directDamage = getGameDirectSkillDamage( + skillName, + level, + skillMap, + realStats + ); + const variantDirectDamage = + directDamage && variantDefinition + ? { + ...directDamage, + components: directDamage.components.filter((component) => + variantDefinition.componentLabels.includes(component.label) + ), + } + : directDamage; + const directComponents = variantDirectDamage + ? directSummonDamageToComponents( + skillName, + skillName, + variantDirectDamage, + variantDefinition + ? `${variantDefinition.label} payload` + : "Summon payload", + variantDefinition + ? [ + { + table: "Skills.txt", + row: getGameRowString("Skills", skillRow, "skill") || skillName, + columns: ["skilldesc", "summon", "pettype"], + note: "Summon variant payload selected from SkillDesc.txt missile references instead of summing all mage variants.", + }, + ] + : [] + ) + : []; + const flatPhysicalComponents = getSummonFlatPhysicalComponents( + skillName, + skillRow, + level, + skillMap + ); + const summonedSkillNames = getSummonedSkillNames(skillRow); + const monsterRow = getSummonMonsterRow(skillRow); + const includeSummonedSkills = + variantDefinition?.includeSummonedSkills ?? !variantDefinition; + const includeMonsterAttack = + variantDefinition?.includeMonsterAttack ?? !variantDefinition; + const summonedSkillComponents = includeSummonedSkills + ? getSummonedSkillComponents( + skillName, + skillRow, + level, + skillMap, + realStats, + getMonsterSkillNames(monsterRow) + ) + : []; + const monsterComponent = monsterRow && includeMonsterAttack + ? getSummonMonsterAttackComponent( + skillName, + skillRow, + monsterRow, + summonedSkillNames, + directComponents.some((component) => component.damageType === "physical") + ) + : undefined; + + return [ + ...directComponents, + ...flatPhysicalComponents, + ...(monsterComponent ? [monsterComponent] : []), + ...summonedSkillComponents, + ].filter((component) => isNonZeroDamageRange(component.damage)); +} + +function getSummonDamagePercent( + skillName: string, + level: number, + skillMap: Map +): number { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow) { + return 0; + } + + let total = 0; + (["aura", "passive"] as const).forEach((prefix) => { + const maxIndex = prefix === "aura" ? 6 : 5; + for (let index = 1; index <= maxIndex; index += 1) { + if ( + getGameRowString("Skills", skillRow, `${prefix}stat${index}`) !== + "damagepercent" + ) { + continue; + } + + total += evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, getGameStatCalcColumn(prefix, index)), + skillRow, + skillMap, + level + ); + } + }); + + return total; +} + +function componentReferencesSkillDamageSynergy( + component: DamageComponent, + skillName: string +): boolean { + const normalizedSkillName = normalizeSkillName(skillName).toLowerCase(); + return component.sourceRefs.some((ref) => { + if ( + ref.table !== "Skills.txt" || + normalizeSkillName(ref.row || "").toLowerCase() !== normalizedSkillName + ) { + return false; + } + + return ref.columns.some((column) => column === "DmgSymPerCalc"); + }); +} + +function getDuplicateDirectSummonDamagePercent( + component: DamageComponent, + skillName: string, + skillRow: string[] | undefined, + level: number, + skillMap: Map +): number { + if ( + component.damageType !== "physical" || + !skillRow || + !componentReferencesSkillDamageSynergy(component, skillName) + ) { + return 0; + } + + const damageSynergyFormula = normalizeGameCalcFormula( + getGameRowString("Skills", skillRow, "DmgSymPerCalc") + ); + if (!damageSynergyFormula) { + return 0; + } + + let total = 0; + (["aura", "passive"] as const).forEach((prefix) => { + const maxIndex = prefix === "aura" ? 6 : 5; + for (let index = 1; index <= maxIndex; index += 1) { + if ( + getGameRowString("Skills", skillRow, `${prefix}stat${index}`) !== + "damagepercent" + ) { + continue; + } + + const expression = getGameRowString( + "Skills", + skillRow, + getGameStatCalcColumn(prefix, index) + ); + if (normalizeGameCalcFormula(expression) !== damageSynergyFormula) { + continue; + } + + total += evaluateGameCalcExpression(expression, skillRow, skillMap, level); + } + }); + + return total; +} + +function getElementalSkillDamageBonusPercent( + element: Exclude, "">, + realStats?: CharacterData["realStats"] +): number { + if (!realStats) { + return 0; + } + + switch (element) { + case "fire": + return realStats.fireSkillDamage ?? 0; + case "cold": + return realStats.coldSkillDamage ?? 0; + case "lightning": + return realStats.lightningSkillDamage ?? 0; + case "magic": + return 0; + default: + return 0; + } +} + +function getElementalMasteryDamageBonusPercent( + element: "fire" | "cold" | "lightning", + skillMap: Map +): number { + const gamePassiveStat = { + fire: "passive_fire_mastery", + cold: "passive_cold_mastery", + lightning: "passive_ltng_mastery", + }[element]; + const gameValue = getGamePassiveStatValue(gamePassiveStat, skillMap); + return gameValue || 0; +} + +function getGameElementalMasteryStatName( + element: "fire" | "cold" | "lightning" | "poison" +): string { + return { + fire: "passive_fire_mastery", + cold: "passive_cold_mastery", + lightning: "passive_ltng_mastery", + poison: "passive_pois_mastery", + }[element]; +} + +function getLocalElementalMasteryDamageBonusPercent( + element: "fire" | "cold" | "lightning" | "poison", + skillName: string, + skillMap: Map +): number | undefined { + const gamePassiveStat = getGameElementalMasteryStatName(element); + const localAuraValue = getGameSkillAuraStatValue( + skillName, + [gamePassiveStat], + skillMap + ); + if (localAuraValue !== undefined) { + return localAuraValue; + } + + return getGameSkillPassiveStatValue(skillName, [gamePassiveStat], skillMap); +} + +function getPoisonSkillDamageBonusPercent( + realStats?: CharacterData["realStats"] +): number { + return realStats?.poisonSkillDamage || 0; +} + +function scaleDamageRange(range: DamageRange, percent: number): DamageRange { + return { + min: Math.floor(range.min * (1 + percent / 100)), + max: Math.floor(range.max * (1 + percent / 100)), + }; +} + +function getSkillSynergyBonuses( + skillName: string, + skillMap: Map +): SkillSynergyBonuses { + const bonuses: SkillSynergyBonuses = { + physicalPct: 0, + firePct: 0, + coldPct: 0, + lightningPct: 0, + magicPct: 0, + poisonPct: 0, + }; + + const skillRow = getGameRow("Skills", skillName); + if (!skillRow) { + return bonuses; + } + + const elementalSynergyPercent = evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, "EDmgSymPerCalc"), + skillRow, + skillMap, + getGameSkillEntry(skillMap, skillName).level + ); + const element = GAME_ETYPES[getGameRowString("Skills", skillRow, "EType")]; + + if (element === "fire") { + bonuses.firePct = elementalSynergyPercent; + } else if (element === "cold") { + bonuses.coldPct = elementalSynergyPercent; + } else if (element === "lightning") { + bonuses.lightningPct = elementalSynergyPercent; + } else if (element === "magic") { + bonuses.magicPct = elementalSynergyPercent; + } else if (element === "poison") { + bonuses.poisonPct = elementalSynergyPercent; + } + + // Direct physical payload synergies are applied when damage components are + // built from DmgSymPerCalc. Returning them here would apply them again to + // weapon-source damage, so physicalPct remains reserved for future verified + // weapon-source synergy behavior. + return bonuses; +} + +function getDirectPhysicalSkillSynergyPercent( + skillName: string, + skillMap: Map +): number { + const skillRow = getGameRow("Skills", skillName); + if ( + !skillRow || + !getGameRowString("Skills", skillRow, "DmgSymPerCalc") || + (!getGameRowString("Skills", skillRow, "MinDam") && + !getGameRowString("Skills", skillRow, "MaxDam")) + ) { + return 0; + } + + return evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, "DmgSymPerCalc"), + skillRow, + skillMap, + getGameSkillEntry(skillMap, skillName).level + ); +} + +function getDirectSkillDamage( + skillName: string, + level: number, + skillMap: Map, + realStats?: CharacterData["realStats"] +): DirectSkillDamage { + const gameDirectDamage = getGameDirectSkillDamage( + skillName, + level, + skillMap, + realStats + ); + if (gameDirectDamage) { + return gameDirectDamage; + } + + return createEmptyDirectSkillDamage(); +} + +function getWeaponSourceDamageModifier(skillName: string): number { + const skillRow = getGameRow("Skills", skillName); + const srcDam = skillRow ? getGameRowNumber("Skills", skillRow, "SrcDam") : 0; + return srcDam > 0 ? srcDam / 128 : 1; +} + +function getSelectedSkillDamagePercent( + skillName: string, + level: number, + skillMap: Map +): number { + const skillRow = getGameRow("Skills", skillName); + const skillDescRow = skillRow ? getGameSkillDescRow(skillRow) : undefined; + if (skillRow && skillDescRow) { + const gameDamageValues: number[] = []; + + for (let index = 1; index <= 6; index += 1) { + const textKeys = [ + getGameRowString("SkillDesc", skillDescRow, `desctexta${index}`), + getGameRowString("SkillDesc", skillDescRow, `desctextb${index}`), + ]; + if (!textKeys.includes("StrSkill4")) { + continue; + } + + [ + getGameRowString("SkillDesc", skillDescRow, `desccalca${index}`), + getGameRowString("SkillDesc", skillDescRow, `desccalcb${index}`), + ].forEach((calc) => { + const value = evaluateGameCalcExpression(calc, skillRow, skillMap, level); + if (value > 0) { + gameDamageValues.push(value); + } + }); + } + + if (gameDamageValues.length > 0) { + return Math.max(...gameDamageValues); + } + + return 0; + } + + return 0; +} + +function getTransformationDamagePercent( + gameSkillName: string, + level: number +): number { + const skillRow = getGameRow("Skills", gameSkillName); + if (!skillRow) { + return 0; + } + + for (let index = 1; index <= 6; index += 1) { + if (getGameRowString("Skills", skillRow, `aurastat${index}`) !== "damagepercent") { + continue; + } + + return evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, `aurastatcalc${index}`), + skillRow, + EMPTY_SKILL_MAP, + level + ); + } + + return 0; +} + +function getPassiveSkillDamagePercent( + characterClass: string, + weaponSelection: WeaponSelection, + skillMap: Map +): number { + let total = 0; + + if (isJavelinOrSpear(weaponSelection.item)) { + total += getGameSkillPassiveStatValue( + "Javelin and Spear Mastery", + ["passive_mastery_melee_dmg", "passive_mastery_throw_dmg"], + skillMap + ) || 0; + } + + if (isClawWeapon(weaponSelection.item)) { + total += getGameSkillPassiveStatValue( + "Claw Mastery", + ["passive_mastery_melee_dmg"], + skillMap + ) || 0; + } + + if (characterClass.toLowerCase() === "barbarian") { + const masterySkillName = + weaponSelection.option.handMode === "two_handed" + ? "Two Handed Mastery" + : "One Handed Mastery"; + total += getGameSkillPassiveStatValue( + masterySkillName, + ["passive_mastery_melee_dmg", "passive_mastery_throw_dmg"], + skillMap + ) || 0; + } + + return total; +} + +function parseItemDamageStats( + playerItems: IItem[], + selectedWeapon: WeaponSelection +): { + flatPhysicalDamage: DamageRange; + nonWeaponEnhancedDamagePct: number; + elementalDamage: Partial>; + poisonDamage?: PoisonDamage; +} { + const flatPhysicalDamage = createEmptyDamageRange(); + const elementalDamage: Partial< + Record<"fire" | "cold" | "lightning" | "magic", DamageRange> + > = {}; + let nonWeaponEnhancedDamagePct = 0; + let poisonDamage: PoisonDamage | undefined; + + const selectedWeaponKey = selectedWeapon.item.hash || String(selectedWeapon.item.id); + + const addElementalRange = ( + element: "fire" | "cold" | "lightning" | "magic", + min: number, + max: number + ) => { + const normalizedRange = normalizeDamageRange({ min, max }); + elementalDamage[element] = addDamageRange( + elementalDamage[element] || createEmptyDamageRange(), + normalizedRange + ); + }; + + playerItems.forEach((item) => { + const itemKey = item.hash || String(item.id); + const isWeapon = item.category === "weapon"; + const isSelectedWeapon = itemKey === selectedWeaponKey; + const standaloneElementalDamage: Record< + "fire" | "cold" | "lightning" | "magic", + DamageRange + > = { + fire: createEmptyDamageRange(), + cold: createEmptyDamageRange(), + lightning: createEmptyDamageRange(), + magic: createEmptyDamageRange(), + }; + + item.properties.forEach((property) => { + if (!property) { + return; + } + + if (!isWeapon) { + const enhancedDamage = property.match(/^(\d+)% Enhanced Damage$/i); + if (enhancedDamage) { + nonWeaponEnhancedDamagePct += Number(enhancedDamage[1]); + return; + } + + const minDamage = property.match(/^\+(\d+) to Minimum Damage$/i); + if (minDamage) { + flatPhysicalDamage.min += Number(minDamage[1]); + return; + } + + const maxDamage = property.match(/^\+(\d+) to Maximum Damage$/i); + if (maxDamage) { + flatPhysicalDamage.max += Number(maxDamage[1]); + return; + } + + const addedPhysicalDamage = property.match(/^Adds (\d+)-(\d+) Damage$/i); + if (addedPhysicalDamage) { + flatPhysicalDamage.min += Number(addedPhysicalDamage[1]); + flatPhysicalDamage.max += Number(addedPhysicalDamage[2]); + return; + } + } + + if (!isWeapon || isSelectedWeapon) { + const fireDamage = property.match(/^Adds (\d+)-(\d+) Fire Damage$/i); + if (fireDamage) { + addElementalRange("fire", Number(fireDamage[1]), Number(fireDamage[2])); + return; + } + + const coldDamage = property.match(/^Adds (\d+)-(\d+) Cold Damage$/i); + if (coldDamage) { + addElementalRange("cold", Number(coldDamage[1]), Number(coldDamage[2])); + return; + } + + const magicDamage = property.match(/^Adds (\d+)-(\d+) Magic Damage$/i); + if (magicDamage) { + addElementalRange("magic", Number(magicDamage[1]), Number(magicDamage[2])); + return; + } + + const lightningDamage = property.match(/^Adds (\d+)-(\d+) Lightning Damage$/i); + if (lightningDamage) { + addElementalRange( + "lightning", + Number(lightningDamage[1]), + Number(lightningDamage[2]) + ); + return; + } + + const minElementalDamage = property.match( + /^(\+)?(\d+) to Minimum (Fire|Cold|Lightning|Magic) Damage$/i + ); + if (minElementalDamage) { + const element = minElementalDamage[3].toLowerCase() as + | "fire" + | "cold" + | "lightning" + | "magic"; + standaloneElementalDamage[element].min += Number(minElementalDamage[2]); + return; + } + + const maxElementalDamage = property.match( + /^(\+)?(\d+) to Maximum (Fire|Cold|Lightning|Magic) Damage$/i + ); + if (maxElementalDamage) { + const element = maxElementalDamage[3].toLowerCase() as + | "fire" + | "cold" + | "lightning" + | "magic"; + standaloneElementalDamage[element].max += Number(maxElementalDamage[2]); + return; + } + + const poisonMatch = property.match( + /^(?:Adds )?(\d+) Poison Damage over ([\d.]+) Seconds$/i + ); + if (poisonMatch) { + poisonDamage = addPoisonDamage(poisonDamage, { + total: Number(poisonMatch[1]), + durationSeconds: Number(poisonMatch[2]), + }); + } + } + }); + + (["fire", "cold", "lightning", "magic"] as const).forEach((element) => { + const standaloneRange = standaloneElementalDamage[element]; + if (standaloneRange.min > 0 || standaloneRange.max > 0) { + const normalizedRange = normalizeDamageRange(standaloneRange); + addElementalRange(element, normalizedRange.min, normalizedRange.max); + } + }); + }); + + return { + flatPhysicalDamage: normalizeDamageRange(flatPhysicalDamage), + nonWeaponEnhancedDamagePct, + elementalDamage, + poisonDamage, + }; +} + +function getAuraFormulaSkillName(auraName: string): string { + return getPlayerAuraDefinition(auraName)?.skillName || auraName; +} + +function findGameAuraStatCalc( + skillRow: string[], + statNames: readonly string[], + source: "self" | "party" +): string | undefined { + const prefix = source === "self" ? "passive" : "aura"; + const slots = source === "self" ? 5 : 6; + + for (let index = 1; index <= slots; index += 1) { + const stat = getGameRowString("Skills", skillRow, `${prefix}stat${index}`); + if (stat && statNames.includes(stat)) { + return getGameRowString( + "Skills", + skillRow, + getGameStatCalcColumn(prefix, index) + ); + } + } + + return undefined; +} + +const AURA_ELEMENT_STATS = { + fire: ["firemindam", "firemaxdam"], + cold: ["coldmindam", "coldmaxdam"], + lightning: ["lightmindam", "lightmaxdam"], + magic: ["magicmindam", "magicmaxdam"], +} as const; + +const AURA_ELEMENT_DAMAGE_STAT_NAMES = new Set([ + "firemindam", + "firemaxdam", + "coldmindam", + "coldmaxdam", + "lightmindam", + "lightmaxdam", + "magicmindam", + "magicmaxdam", +]); + +function usesFixedPointElementalAliases( + calc: string, + statNames: readonly string[] +): boolean { + return ( + statNames.some((statName) => AURA_ELEMENT_DAMAGE_STAT_NAMES.has(statName)) && + /\bed(?:mn|mx|ns|xs)\b/.test(calc) && + /\/\s*256\b/.test(calc) + ); +} + +function getGameAuraStatValue( + aura: AuraSource, + statNames: readonly string[], + source: "self" | "party", + skillMap: Map +): number | undefined { + const skillRow = getGameRow("Skills", getAuraFormulaSkillName(aura.name)); + if (!skillRow) { + return undefined; + } + + const calc = findGameAuraStatCalc(skillRow, statNames, source); + if (!calc) { + return undefined; + } + + if (/\bedln\b/.test(calc)) { + return undefined; + } + + return evaluateGameCalcExpression( + calc, + skillRow, + skillMap, + aura.level, + new Set(), + { + elementalAliasMode: usesFixedPointElementalAliases(calc, statNames) + ? "fixed" + : "scaled", + } + ); +} + +function getAuraPhysicalDamagePercent(aura: AuraSource): number { + const skillMap = new Map(); + const gameSelfValue = + aura.carrier === "self" + ? getGameAuraStatValue(aura, ["damagepercent"], "self", skillMap) + : undefined; + const gamePartyValue = getGameAuraStatValue( + aura, + ["damagepercent"], + "party", + skillMap + ); + const gameValue = aura.carrier === "self" + ? gameSelfValue ?? gamePartyValue + : gamePartyValue; + if (gameValue !== undefined) { + return gameValue; + } + + return 0; +} + +function getAuraSkillLevelBonus(aura: AuraSource): number { + const skillMap = new Map(); + const gameSelfValue = + aura.carrier === "self" + ? getGameAuraStatValue(aura, ["item_allskills"], "self", skillMap) + : undefined; + const gamePartyValue = getGameAuraStatValue( + aura, + ["item_allskills"], + "party", + skillMap + ); + const gameValue = aura.carrier === "self" + ? gameSelfValue ?? gamePartyValue + : gamePartyValue; + + return gameValue ?? 0; +} + +function getTotalAuraSkillLevelBonus(activeAuras: AuraSource[]): number { + return activeAuras.reduce( + (total, aura) => total + getAuraSkillLevelBonus(aura), + 0 + ); +} + +function applyAuraSkillLevelBonuses( + skillMap: Map, + activeAuras: AuraSource[] +): Map { + const skillLevelBonus = getTotalAuraSkillLevelBonus(activeAuras); + if (skillLevelBonus <= 0) { + return skillMap; + } + + return new Map( + Array.from(skillMap.entries()).map(([skillName, entry]) => [ + skillName, + { + ...entry, + level: entry.level + skillLevelBonus, + }, + ]) + ); +} + +function getGameAuraElementalRange( + aura: AuraSource, + element: keyof typeof AURA_ELEMENT_STATS, + skillMap: Map +): DamageRange | undefined { + const sources: Array<"self" | "party"> = + aura.carrier === "self" ? ["self", "party"] : ["party"]; + const [minStat, maxStat] = AURA_ELEMENT_STATS[element]; + + for (const source of sources) { + const min = getGameAuraStatValue(aura, [minStat], source, skillMap); + const max = getGameAuraStatValue(aura, [maxStat], source, skillMap); + if (min !== undefined && max !== undefined) { + return normalizeDamageRange({ min, max }); + } + } + + return undefined; +} + +function hasSelfElementalAuraDamageStats( + skillRow: string[], + element: keyof typeof AURA_ELEMENT_STATS +): boolean { + const [minStat, maxStat] = AURA_ELEMENT_STATS[element]; + return Boolean( + findGameAuraStatCalc(skillRow, [minStat], "self") && + findGameAuraStatCalc(skillRow, [maxStat], "self") + ); +} + +function getGameBuffElementalRange( + aura: AuraSource, + element: keyof typeof AURA_ELEMENT_STATS, + skillMap: Map +): DamageRange | undefined { + const skillRow = getGameRow("Skills", getAuraFormulaSkillName(aura.name)); + if (!skillRow || GAME_ETYPES[getGameRowString("Skills", skillRow, "EType")] !== element) { + return undefined; + } + + const canUseElementalPayload = + isGameSelfOrPartyBuffSkill(aura.name) || + (isPlayerAuraSkill(aura.name) && + hasSelfElementalAuraDamageStats(skillRow, element)); + if (!canUseElementalPayload) { + return undefined; + } + + const range = getGameLevelScaledRange( + "Skills", + skillRow, + aura.level, + "EMin", + "EMax", + ["EMinLev1", "EMinLev2", "EMinLev3", "EMinLev4", "EMinLev5"], + ["EMaxLev1", "EMaxLev2", "EMaxLev3", "EMaxLev4", "EMaxLev5"] + ); + if (!range) { + return undefined; + } + + return scaleDamageRange( + range, + evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, "EDmgSymPerCalc"), + skillRow, + skillMap, + aura.level + ) + ); +} + +function getAuraAttackDamage( + aura: AuraSource, + skillMap: Map, + realStats?: CharacterData["realStats"] +): Partial> { + const ranges: Partial> = {}; + + const skillDamageBonusApplies = aura.source === "player_skill"; + const auraFormulaSkillMap = + aura.source === "player_skill" ? skillMap : EMPTY_SKILL_MAP; + const getAuraRange = ( + element: "fire" | "cold" | "lightning" | "magic" + ) => + getGameAuraElementalRange(aura, element, auraFormulaSkillMap) || + getGameBuffElementalRange(aura, element, auraFormulaSkillMap); + + const fireRange = getAuraRange("fire"); + if (fireRange) { + const itemBonus = skillDamageBonusApplies + ? getElementalSkillDamageBonusPercent("fire", realStats) + : 0; + ranges.fire = scaleDamageRange(fireRange, itemBonus); + } + + const coldRange = getAuraRange("cold"); + if (coldRange) { + const itemBonus = skillDamageBonusApplies + ? getElementalSkillDamageBonusPercent("cold", realStats) + : 0; + ranges.cold = scaleDamageRange(coldRange, itemBonus); + } + + const lightningRange = getAuraRange("lightning"); + if (lightningRange) { + const itemBonus = skillDamageBonusApplies + ? getElementalSkillDamageBonusPercent("lightning", realStats) + : 0; + ranges.lightning = scaleDamageRange(lightningRange, itemBonus); + } + + const magicRange = getAuraRange("magic"); + if (magicRange) { + ranges.magic = magicRange; + } + + return ranges; +} + +function getAuraPoisonDamage( + aura: AuraSource, + skillMap: Map, + realStats?: CharacterData["realStats"] +): NonNullable | undefined { + if (aura.carrier !== "self") { + return undefined; + } + + const skillRow = getGameRow("Skills", getAuraFormulaSkillName(aura.name)); + if (!skillRow || !isGameSelfOnlyPoisonBuffSkill(skillRow)) { + return undefined; + } + + const range = getGameLevelScaledRange( + "Skills", + skillRow, + aura.level, + "EMin", + "EMax", + ["EMinLev1", "EMinLev2", "EMinLev3", "EMinLev4", "EMinLev5"], + ["EMaxLev1", "EMaxLev2", "EMaxLev3", "EMaxLev4", "EMaxLev5"] + ); + const durationFrames = getGameRowNumber("Skills", skillRow, "ELen"); + if (!range || durationFrames <= 0) { + return undefined; + } + + const auraFormulaSkillMap = + aura.source === "player_skill" ? skillMap : EMPTY_SKILL_MAP; + const poisonSkillDamageBonus = + aura.source === "player_skill" + ? getPoisonSkillDamageBonusPercent(realStats) + : 0; + const damage = scaleDamageRangeInStages( + applyGameDotMultiplier(range, durationFrames), + evaluateGameCalcExpression( + getGameRowString("Skills", skillRow, "EDmgSymPerCalc"), + skillRow, + auraFormulaSkillMap, + aura.level + ), + poisonSkillDamageBonus + ); + + if (!isNonZeroDamageRange(damage)) { + return undefined; + } + + return { + damage, + total: Math.floor(averageDamageRange(damage)), + durationSeconds: durationFrames / 25, + }; +} + +function createAuraPoisonDamageComponent( + aura: AuraSource, + skillMap: Map, + realStats: CharacterData["realStats"] | undefined, + idPrefix: string, + sourceNote?: string +): DamageComponent | undefined { + const poisonDamage = getAuraPoisonDamage(aura, skillMap, realStats); + if (!poisonDamage) { + return undefined; + } + + return createDamageComponent({ + id: `${idPrefix}-${aura.name}-${aura.level}-${aura.carrier}-poison`, + label: `${aura.name} poison`, + source: "aura", + damageType: "poison", + timing: "over_time", + damage: poisonDamage.damage, + poisonDamage: { + total: poisonDamage.total, + durationSeconds: poisonDamage.durationSeconds, + }, + sourceRefs: [ + { + table: "Skills.txt", + row: getAuraFormulaSkillName(aura.name), + columns: [ + "aurastat*", + "aurastatcalc*", + "EType", + "EMin", + "EMax", + "EDmgSymPerCalc", + "ELen", + "HitShift", + ], + note: sourceNote, + }, + ], + }); +} + +function getManualAuraLevelBonus( + auraName: string, + level: number, + carrier: AuraCarrier +): DamageAuraLevelBonus { + const aura: AuraSource = { + name: auraName, + level, + source: "manual", + carrier, + }; + + return { + level, + skillLevelBonus: getAuraSkillLevelBonus(aura), + physicalBonusPercent: getAuraPhysicalDamagePercent(aura), + elementalDamage: getAuraAttackDamage(aura, new Map()), + poisonDamage: getAuraPoisonDamage(aura, new Map()), + }; +} + +function skillHasServerMissiles(skillRow: string[]): boolean { + return SKILL_MISSILE_COLUMNS.some((columnName) => + Boolean(getGameRowString("Skills", skillRow, columnName)) + ); +} + +function getRequiredWeaponSequenceRule( + skillName: string +): RequiredWeaponSequenceRule | undefined { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow) { + return undefined; + } + + const skill = getGameRowString("Skills", skillRow, "skill") || skillName; + const ruleKey = Object.keys(REQUIRED_WEAPON_SEQUENCE_SKILLS).find( + (candidate) => candidate.toLowerCase() === skill.toLowerCase() + ); + const rule = ruleKey ? REQUIRED_WEAPON_SEQUENCE_SKILLS[ruleKey] : undefined; + if (!rule) { + return undefined; + } + + const expectedColumns: Array< + [ + Exclude< + keyof RequiredWeaponSequenceRule, + "handMode" | "requiresMissilePayload" + >, + string, + ] + > = [ + ["weapsel", "weapsel"], + ["seqnum", "seqnum"], + ["srvstfunc", "srvstfunc"], + ["srvdofunc", "srvdofunc"], + ["itypea1", "itypea1"], + ["itypeb1", "itypeb1"], + ]; + const matchesRequiredColumns = expectedColumns.every( + ([ruleProperty, columnName]) => + !rule[ruleProperty] || + getGameRowString("Skills", skillRow, columnName) === rule[ruleProperty] + ); + + if (!matchesRequiredColumns) { + return undefined; + } + + if (skillHasServerMissiles(skillRow) !== rule.requiresMissilePayload) { + return undefined; + } + + return rule; +} + +function getRequiredWeaponSequenceHandMode( + skillName: string +): WeaponSequenceHandMode | undefined { + return getRequiredWeaponSequenceRule(skillName)?.handMode; +} + +function getSkillWeaponSequenceEvidence( + skillName: string, + handMode: DamageWeaponOption["handMode"] +): { supported: boolean; note: string } { + const skillRow = getGameRow("Skills", skillName); + if (!skillRow) { + return { + supported: false, + note: `${skillName} has no Skills.txt row for weapon-sequence modeling.`, + }; + } + + const skill = getGameRowString("Skills", skillRow, "skill") || skillName; + const weapsel = getGameRowString("Skills", skillRow, "weapsel"); + const seqnum = getGameRowString("Skills", skillRow, "seqnum"); + const requiredHandMode = getRequiredWeaponSequenceHandMode(skillName); + + if (requiredHandMode) { + if (handMode !== requiredHandMode) { + return { + supported: false, + note: `${skill} requires ${requiredHandMode.replace("_", "-")} weapon sequence modeling from its validated Skills.txt row.`, + }; + } + + return { + supported: true, + note: + requiredHandMode === "dual_throw" + ? `${skill} is modeled as a required two-throw weapon sequence from Skills.txt skill, weapsel, seqnum, itypea*/itypeb*, SrcDam, srvdofunc, and server missile columns.` + : `${skill} is modeled as a required two-weapon melee sequence from Skills.txt skill, weapsel, seqnum, itypea*/itypeb*, SrcDam, srvstfunc/srvdofunc, and server missile columns.`, + }; + } + + if (handMode === "dual_wield" && weapsel === "2" && seqnum === "10") { + return { + supported: true, + note: `${skill} is modeled as one two-weapon cycle from Skills.txt weapsel=2 and seqnum=10; full movement-duration hit frequency is not inferred.`, + }; + } + + return { + supported: false, + note: `${skill} does not expose a modeled ${handMode.replace("_", "-")} weapon sequence in Skills.txt.`, + }; +} + +function supportsWeaponSequence( + skillName: string, + handMode: DamageWeaponOption["handMode"] +): boolean { + return getSkillWeaponSequenceEvidence(skillName, handMode).supported; +} + +function isWeaponSelectionCompatibleWithSkill( + weaponSelection: WeaponSelection, + skillOption: DamageSkillOption +): boolean { + const sourceSkillName = skillOption.sourceSkillName || skillOption.name; + const isSummonSkill = skillOption.damageMode === "summon"; + if (isSummonSkill) { + return ( + weaponSelection.option.handMode === "summon" && + normalizeSkillName(weaponSelection.summonSkillName || "").toLowerCase() === + normalizeSkillName(sourceSkillName).toLowerCase() + ); + } + + if (weaponSelection.option.handMode === "summon") { + return false; + } + + const isKickSkill = isGameKickSkill(sourceSkillName); + if (isKickSkill) { + return weaponSelection.option.handMode === "kick"; + } + + if (weaponSelection.option.handMode === "kick") { + return false; + } + + const requiredHandMode = getRequiredWeaponSequenceHandMode(sourceSkillName); + + if (requiredHandMode) { + return ( + weaponSelection.option.handMode === requiredHandMode && + Boolean(weaponSelection.sequenceHits?.length) && + supportsWeaponSequence(sourceSkillName, requiredHandMode) + ); + } + + if (weaponSelection.sequenceHits?.length) { + return supportsWeaponSequence(sourceSkillName, weaponSelection.option.handMode); + } + + return true; +} + +function uniqueStrings(values: string[]): string[] { + return Array.from(new Set(values)); +} + +function getSummonAuraSource(aura: AuraSource): AuraSource { + return { + ...aura, + carrier: "party", + }; +} + +function getSummonModeNotes( + skillName: string, + skillRow?: string[], + variantDefinition?: SummonVariantDefinition +): string[] { + const notes = [ + `${skillName} is modeled as a per-summon damage profile from Skills.txt summon/sumskill fields and MonStats.txt attack fields when present; pet count, AI choices, attack speed, hit chance, target count, and uptime are not multiplied into totals.`, + ]; + + if (variantDefinition) { + notes.push( + `${variantDefinition.label} is modeled as one ${skillName} elemental variant; other variants are separate skill options and are not summed into this profile.` + ); + } + + if (!skillRow) { + return notes; + } + + const petMax = getGameRowString("Skills", skillRow, "petmax"); + if (petMax) { + notes.push( + `Summon count is exposed as Skills.txt petmax (${petMax}) but is not multiplied into damage totals.` + ); + } + + const monsterRow = getSummonMonsterRow(skillRow); + if (!monsterRow) { + notes.push( + "MonStats.txt does not expose a stable monster row for this summon in the current extract; only Skills.txt payloads are modeled." + ); + } + + return notes; +} + +function buildSummonProfile( + context: WeaponSetContext, + weaponSelection: WeaponSelection, + skillOption: DamageSkillOption, + playerAuraSelection: AuraSelection +): DamageProfile { + const { option: playerAuraOption } = playerAuraSelection; + const { alwaysActiveAuras, realStats, skillMap } = context; + const sourceSkillName = skillOption.sourceSkillName || skillOption.name; + const variantDefinition = getSummonVariantDefinition( + sourceSkillName, + skillOption.summonVariant + ); + const selectedPlayerAura = + playerAuraOption.id === "none" + ? undefined + : getSummonAuraSource({ + name: playerAuraOption.name, + level: getSkillEntry(skillMap, playerAuraOption.name).level || playerAuraOption.level, + source: + playerAuraOption.source === "character_skill" + ? ("player_skill" as const) + : ("manual" as const), + carrier: "party", + }); + const activeAuras = dedupeAuras([ + ...alwaysActiveAuras.map(getSummonAuraSource), + ...(selectedPlayerAura ? [selectedPlayerAura] : []), + ]); + const effectiveSkillMap = applyAuraSkillLevelBonuses(skillMap, activeAuras); + const selectedSkillLevel = + getSkillEntry(effectiveSkillMap, sourceSkillName).level || skillOption.level; + const selectedSkillRow = getGameRow("Skills", sourceSkillName); + const baseComponents = getSummonDamageComponents( + sourceSkillName, + selectedSkillLevel, + effectiveSkillMap, + realStats, + skillOption.summonVariant + ); + const directPhysicalSynergyPercent = getDirectPhysicalSkillSynergyPercent( + sourceSkillName, + effectiveSkillMap + ); + const summonDamagePercent = getSummonDamagePercent( + sourceSkillName, + selectedSkillLevel, + effectiveSkillMap + ); + const auraPercent = activeAuras.reduce( + (total, aura) => total + getAuraPhysicalDamagePercent(aura), + 0 + ); + const totalPhysicalBonusPercent = summonDamagePercent + auraPercent; + const basePhysicalDamage = sumDamageComponents( + baseComponents, + (component) => component.damageType === "physical" + ); + const scaledBaseComponents = baseComponents.map((component) => { + if (component.damageType !== "physical") { + return component; + } + + const duplicateDirectPercent = getDuplicateDirectSummonDamagePercent( + component, + sourceSkillName, + selectedSkillRow, + selectedSkillLevel, + effectiveSkillMap + ); + const componentPhysicalBonusPercent = + Math.max(0, summonDamagePercent - duplicateDirectPercent) + auraPercent; + return scalePhysicalDamageComponent( + component, + 1 + componentPhysicalBonusPercent / 100 + ); + }); + const auraElementalComponents: DamageComponent[] = []; + activeAuras.forEach((aura) => { + const addition = getAuraAttackDamage(aura, effectiveSkillMap, realStats); + (["fire", "cold", "lightning", "magic"] as const).forEach((element) => { + const damage = addition[element]; + if (!isNonZeroDamageRange(damage)) { + return; + } + + auraElementalComponents.push( + createDamageComponent({ + id: `summon-aura-${aura.name}-${aura.level}-${aura.carrier}-${element}`, + label: `${aura.name} ${element}`, + source: "aura", + damageType: element, + damage, + sourceRefs: [ + { + table: "Skills.txt", + row: getAuraFormulaSkillName(aura.name), + columns: [ + "aurastat*", + "aurastatcalc*", + "passivestat*", + "passivecalc*", + "EType", + "EMin", + "EMax", + "EDmgSymPerCalc", + ], + note: "Summon profiles apply selected attack auras as party aura payloads.", + }, + ], + }) + ); + }); + + const poisonComponent = createAuraPoisonDamageComponent( + aura, + effectiveSkillMap, + realStats, + "summon-aura", + "Summon profiles apply selected attack auras as party aura payloads; self-only poison buffs are not applied." + ); + if (poisonComponent) { + auraElementalComponents.push(poisonComponent); + } + }); + + const damageComponents = [ + ...scaledBaseComponents, + ...auraElementalComponents, + ].filter((component) => isNonZeroDamageRange(component.damage)); + const damageTotals = buildDamageTotals(damageComponents); + const totalPhysicalDamage = + damageTotals.byElement.physical || createEmptyDamageRange(); + const totalElementalDamage = elementalDamageFromTotals(damageTotals); + const damageScope = getDamageScope( + sourceSkillName, + selectedSkillLevel, + effectiveSkillMap, + "summon", + weaponSelection + ); + const notes = getSummonModeNotes( + sourceSkillName, + selectedSkillRow, + variantDefinition + ); + + return { + key: `${weaponSelection.option.id}::${skillOption.id}::${playerAuraOption.id}:${playerAuraOption.level}::party`, + weaponId: weaponSelection.option.id, + skillId: skillOption.id, + playerAuraId: playerAuraOption.id, + playerAuraCarrier: playerAuraOption.id === "none" ? "self" : "party", + playerAuraLevel: playerAuraOption.level, + transformationId: "none", + skillDamageMode: "summon", + skillName: skillOption.name, + sourceSkillName, + summonVariant: skillOption.summonVariant, + skillLevel: selectedSkillLevel, + selectedPlayerAura: + playerAuraOption.id === "none" + ? undefined + : { + name: playerAuraOption.name, + level: selectedPlayerAura?.level || playerAuraOption.level, + carrier: "party", + }, + activeAuras: activeAuras.map(summarizeAuraSource), + damageScope, + damageComponents, + damageTotals, + totalPhysicalDamage, + totalElementalDamage, + totalPoisonDamage: damageTotals.poisonDamage, + totalDamage: damageTotals.combinedDamage, + averageHitDamage: damageTotals.averageCombinedDamage, + breakdown: { + weaponDamage: basePhysicalDamage, + flatPhysicalDamage: createEmptyDamageRange(), + physicalBonusPercent: { + stat: 0, + nonWeapon: 0, + passive: 0, + selectedSkill: Number(summonDamagePercent.toFixed(1)), + selectedSkillSynergy: directPhysicalSynergyPercent, + transformation: 0, + activeAuras: Number(auraPercent.toFixed(1)), + total: Number(totalPhysicalBonusPercent.toFixed(1)), + }, + elementalDamage: totalElementalDamage, + poisonDamage: damageTotals.poisonDamage, + }, + notes, + }; +} + +function buildSpellProfile( + context: WeaponSetContext, + weaponSelection: WeaponSelection, + skillOption: DamageSkillOption, + playerAuraSelection: AuraSelection +): DamageProfile { + const { option: playerAuraOption, carrier: playerAuraCarrier } = + playerAuraSelection; + const { alwaysActiveAuras, realStats, skillMap } = context; + const selectedPlayerAura = + playerAuraOption.id === "none" + ? undefined + : { + name: playerAuraOption.name, + level: getSkillEntry(skillMap, playerAuraOption.name).level || playerAuraOption.level, + source: + playerAuraOption.source === "character_skill" && + playerAuraCarrier === "self" + ? ("player_skill" as const) + : ("manual" as const), + carrier: playerAuraCarrier, + }; + const activeAuras = dedupeAuras([ + ...alwaysActiveAuras, + ...(selectedPlayerAura ? [selectedPlayerAura] : []), + ]); + const effectiveSkillMap = applyAuraSkillLevelBonuses(skillMap, activeAuras); + const selectedSkillLevel = + getSkillEntry(effectiveSkillMap, skillOption.name).level || skillOption.level; + const directDamage = getDirectSkillDamage( + skillOption.name, + selectedSkillLevel, + effectiveSkillMap, + realStats + ); + const damageComponents = directSkillDamageToComponents( + skillOption.name, + directDamage + ); + const directPhysicalSynergyPercent = getDirectPhysicalSkillSynergyPercent( + skillOption.name, + effectiveSkillMap + ); + const damageTotals = buildDamageTotals(damageComponents); + const totalPhysicalDamage = + damageTotals.byElement.physical || createEmptyDamageRange(); + const totalElementalDamage = elementalDamageFromTotals(damageTotals); + const damageScope = getDamageScope( + skillOption.name, + selectedSkillLevel, + effectiveSkillMap, + "spell", + weaponSelection + ); + const auraSkillLevelBonus = getTotalAuraSkillLevelBonus(activeAuras); + const notes: string[] = []; + if (playerAuraOption.id !== "none") { + if (auraSkillLevelBonus > 0) { + notes.push( + `Selected aura all-skills bonus (+${auraSkillLevelBonus}) is applied to this spell profile.` + ); + } + + notes.push("Selected attack aura damage payloads are not applied to spell damage."); + } + + return { + key: `${weaponSelection.option.id}::${skillOption.id}::${playerAuraOption.id}:${playerAuraOption.level}::${playerAuraCarrier}`, + weaponId: weaponSelection.option.id, + skillId: skillOption.id, + playerAuraId: playerAuraOption.id, + playerAuraCarrier, + playerAuraLevel: playerAuraOption.level, + transformationId: "none", + skillDamageMode: "spell", + skillName: skillOption.name, + skillLevel: selectedSkillLevel, + selectedPlayerAura: + playerAuraOption.id === "none" + ? undefined + : { + name: playerAuraOption.name, + level: selectedPlayerAura?.level || playerAuraOption.level, + carrier: playerAuraCarrier, + }, + activeAuras: activeAuras.map(summarizeAuraSource), + damageScope, + damageComponents, + damageTotals, + totalPhysicalDamage, + totalElementalDamage, + totalPoisonDamage: damageTotals.poisonDamage, + totalDamage: damageTotals.combinedDamage, + averageHitDamage: damageTotals.averageCombinedDamage, + breakdown: { + weaponDamage: createEmptyDamageRange(), + flatPhysicalDamage: createEmptyDamageRange(), + physicalBonusPercent: { + stat: 0, + nonWeapon: 0, + passive: 0, + selectedSkill: 0, + selectedSkillSynergy: directPhysicalSynergyPercent, + transformation: 0, + activeAuras: 0, + total: directPhysicalSynergyPercent, + }, + elementalDamage: totalElementalDamage, + poisonDamage: damageTotals.poisonDamage, + }, + notes, + }; +} + +function buildSequenceProfile( + characterData: CharacterData, + context: WeaponSetContext, + weaponSelection: WeaponSelection, + skillOption: DamageSkillOption, + playerAuraSelection: AuraSelection +): DamageProfile { + const sequenceHits = weaponSelection.sequenceHits || []; + const hitProfiles = sequenceHits.map((hit) => ({ + hit, + profile: buildProfile( + characterData, + context, + hit.selection, + skillOption, + playerAuraSelection + ), + })); + const damageComponents = hitProfiles.flatMap(({ hit, profile }, index) => + profile.damageComponents.map((component) => ({ + ...component, + id: `sequence:${index + 1}:${component.id}`, + label: `${hit.label}: ${component.label}`, + })) + ); + const damageTotals = buildDamageTotals(damageComponents); + const totalPhysicalDamage = + damageTotals.byElement.physical || createEmptyDamageRange(); + const totalElementalDamage = elementalDamageFromTotals(damageTotals); + const totalDamage = damageTotals.combinedDamage; + const firstProfile = hitProfiles[0]?.profile; + const selectedSkillLevel = firstProfile?.skillLevel ?? skillOption.level; + const damageScope = getDamageScope( + skillOption.name, + selectedSkillLevel, + context.skillMap, + "weapon", + weaponSelection + ); + const sequenceEvidence = getSkillWeaponSequenceEvidence( + skillOption.name, + weaponSelection.option.handMode + ); + const notes = uniqueStrings([ + ...hitProfiles.flatMap(({ profile }) => profile.notes), + sequenceEvidence.note, + "Weapon sequence totals sum independent hit components; attack speed, animation timing, movement-duration hit frequency, hit chance, and target count are not included.", + ]); + + return { + key: `${weaponSelection.option.id}::${skillOption.id}::${playerAuraSelection.option.id}:${playerAuraSelection.option.level}::${playerAuraSelection.carrier}`, + weaponId: weaponSelection.option.id, + skillId: skillOption.id, + playerAuraId: firstProfile?.playerAuraId ?? playerAuraSelection.option.id, + playerAuraCarrier: + firstProfile?.playerAuraCarrier ?? playerAuraSelection.carrier, + playerAuraLevel: + firstProfile?.playerAuraLevel ?? playerAuraSelection.option.level, + transformationId: "none", + skillDamageMode: "weapon", + skillName: skillOption.name, + skillLevel: selectedSkillLevel, + sequenceHits: weaponSelection.option.sequenceHits, + selectedPlayerAura: firstProfile?.selectedPlayerAura, + activeAuras: firstProfile?.activeAuras ?? [], + damageScope, + damageComponents, + damageTotals, + totalPhysicalDamage, + totalElementalDamage, + totalPoisonDamage: damageTotals.poisonDamage, + totalDamage, + averageHitDamage: damageTotals.averageCombinedDamage, + breakdown: { + weaponDamage: hitProfiles.reduce( + (total, { profile }) => addDamageRange(total, profile.breakdown.weaponDamage), + createEmptyDamageRange() + ), + flatPhysicalDamage: hitProfiles.reduce( + (total, { profile }) => + addDamageRange(total, profile.breakdown.flatPhysicalDamage), + createEmptyDamageRange() + ), + physicalBonusPercent: + firstProfile?.breakdown.physicalBonusPercent ?? { + stat: 0, + nonWeapon: 0, + passive: 0, + selectedSkill: 0, + selectedSkillSynergy: 0, + transformation: 0, + activeAuras: 0, + total: 0, + }, + elementalDamage: totalElementalDamage, + poisonDamage: damageTotals.poisonDamage, + }, + notes, + }; +} + +function buildProfile( + characterData: CharacterData, + context: WeaponSetContext, + weaponSelection: WeaponSelection, + skillOption: DamageSkillOption, + playerAuraSelection: AuraSelection +): DamageProfile { + if (skillOption.damageMode === "summon") { + return buildSummonProfile( + context, + weaponSelection, + skillOption, + playerAuraSelection + ); + } + + if (skillOption.damageMode === "spell") { + return buildSpellProfile( + context, + weaponSelection, + skillOption, + playerAuraSelection + ); + } + + if (weaponSelection.sequenceHits?.length) { + return buildSequenceProfile( + characterData, + context, + weaponSelection, + skillOption, + playerAuraSelection + ); + } + + const { option: playerAuraOption, carrier: playerAuraCarrier } = + playerAuraSelection; + const { alwaysActiveAuras, playerItems, realStats, skillMap } = context; + const characterClass = characterData.character.class.name; + const selectedSkillName = skillOption.name; + + const selectedPlayerAura = + playerAuraOption.id === "none" + ? undefined + : { + name: playerAuraOption.name, + level: getSkillEntry(skillMap, playerAuraOption.name).level || playerAuraOption.level, + source: + playerAuraOption.source === "character_skill" && + playerAuraCarrier === "self" + ? ("player_skill" as const) + : ("manual" as const), + carrier: playerAuraCarrier, + }; + + const activeAuras = dedupeAuras([ + ...alwaysActiveAuras, + ...(selectedPlayerAura ? [selectedPlayerAura] : []), + ]); + const effectiveSkillMap = applyAuraSkillLevelBonuses(skillMap, activeAuras); + const selectedSkillLevel = skillOption.name === "Basic Attack" + ? 1 + : getSkillEntry(effectiveSkillMap, skillOption.name).level || skillOption.level; + + const parsedItemDamage = parseItemDamageStats(playerItems, weaponSelection); + const statBonusPercent = getStatBonusPercent( + characterClass, + weaponSelection, + realStats?.strength ?? characterData.character.attributes.strength, + realStats?.dexterity ?? characterData.character.attributes.dexterity + ); + const passivePercent = getPassiveSkillDamagePercent( + characterClass, + weaponSelection, + effectiveSkillMap + ); + const selectedSkillPercent = + selectedSkillName === "Basic Attack" + ? 0 + : getSelectedSkillDamagePercent( + selectedSkillName, + selectedSkillLevel, + effectiveSkillMap + ); + const selectedSkillSynergies = + selectedSkillName === "Basic Attack" + ? { + physicalPct: 0, + firePct: 0, + coldPct: 0, + lightningPct: 0, + magicPct: 0, + poisonPct: 0, + } + : getSkillSynergyBonuses(selectedSkillName, effectiveSkillMap); + const directPhysicalSynergyPercent = + selectedSkillName === "Basic Attack" + ? 0 + : getDirectPhysicalSkillSynergyPercent( + selectedSkillName, + effectiveSkillMap + ); + const auraPercent = activeAuras.reduce( + (total, aura) => total + getAuraPhysicalDamagePercent(aura), + 0 + ); + + const totalPhysicalBonusPercent = + statBonusPercent + + parsedItemDamage.nonWeaponEnhancedDamagePct + + passivePercent + + selectedSkillPercent + + selectedSkillSynergies.physicalPct + + auraPercent; + + const directDamage = + selectedSkillName === "Basic Attack" + ? createEmptyDirectSkillDamage() + : getDirectSkillDamage( + selectedSkillName, + selectedSkillLevel, + effectiveSkillMap, + realStats + ); + const directDamageComponents = + selectedSkillName === "Basic Attack" + ? [] + : directSkillDamageToComponents(selectedSkillName, directDamage); + const selectedSkillRow = + selectedSkillName === "Basic Attack" + ? undefined + : getGameRow("Skills", selectedSkillName); + const weaponSourceSrcDam = selectedSkillRow + ? getGameRowNumber("Skills", selectedSkillRow, "SrcDam") + : 0; + const weaponSourceModifier = getWeaponSourceDamageModifier(selectedSkillName); + const carriedWeaponDamage = { + min: Math.floor(weaponSelection.damage.min * weaponSourceModifier), + max: Math.floor(weaponSelection.damage.max * weaponSourceModifier), + }; + const usesKickSource = weaponSelection.option.handMode === "kick"; + const weaponSourceLabel = usesKickSource + ? selectedSkillName === "Basic Attack" + ? "Boot source" + : `Boot source (${selectedSkillName})` + : selectedSkillName === "Basic Attack" + ? "Weapon source" + : `Weapon source (${selectedSkillName})`; + const equipmentDamageSourceRefs = + weaponSelection.damageSourceRefs && weaponSelection.damageSourceRefs.length > 0 + ? weaponSelection.damageSourceRefs + : [ + { + table: "Character equipment", + row: weaponSelection.item.name, + columns: [usesKickSource ? "boot kick damage" : "weapon damage"], + }, + ]; + const selectedSkillSourceNote = usesKickSource + ? "Kick=1 marks this as a boot-sourced kick attack in the game-file skill row." + : weaponSourceSrcDam > 0 + ? `SrcDam=${weaponSourceSrcDam} is the game-file source-damage scalar; the extracted files expose the raw value but not the engine denominator.` + : "Source-damage and attack-signal fields are preserved from game files; opaque engine function behavior is not inferred."; + const flatAndSkillPhysicalDamage = addDamageRange( + parsedItemDamage.flatPhysicalDamage, + directDamage.physical + ); + const physicalMultiplier = 1 + totalPhysicalBonusPercent / 100; + const physicalBaseComponents: DamageComponent[] = []; + + if (isNonZeroDamageRange(carriedWeaponDamage)) { + physicalBaseComponents.push( + createDamageComponent({ + id: `weapon:${weaponSelection.option.id}:${selectedSkillName}`, + label: weaponSourceLabel, + source: "weapon", + damageType: "physical", + damage: carriedWeaponDamage, + baseDamage: carriedWeaponDamage, + sourceRefs: [ + ...equipmentDamageSourceRefs, + ...(selectedSkillName === "Basic Attack" + ? [] + : [ + { + table: "Skills.txt", + row: selectedSkillName, + columns: usesKickSource + ? ["Kick", "leftskill", "descatt"] + : ["SrcDam", "leftskill", "descatt"], + note: selectedSkillSourceNote, + }, + ]), + ], + }) + ); + } + + if (isNonZeroDamageRange(parsedItemDamage.flatPhysicalDamage)) { + physicalBaseComponents.push( + createDamageComponent({ + id: `item-flat-physical:${weaponSelection.option.id}`, + label: "Item flat physical", + source: "item", + damageType: "physical", + damage: parsedItemDamage.flatPhysicalDamage, + baseDamage: parsedItemDamage.flatPhysicalDamage, + sourceRefs: [ + { + table: "Armory item text", + columns: ["+minimum damage", "+maximum damage", "adds damage"], + }, + ], + }) + ); + } + + directDamageComponents + .filter((component) => component.damageType === "physical") + .forEach((component) => { + physicalBaseComponents.push({ + ...component, + baseDamage: component.damage, + }); + }); + + const physicalComponents = physicalBaseComponents.map((component) => + scalePhysicalDamageComponent(component, physicalMultiplier) + ); + + const itemElementalComponents: DamageComponent[] = []; + (["fire", "cold", "lightning", "magic"] as const).forEach((element) => { + const damage = parsedItemDamage.elementalDamage[element]; + if (!isNonZeroDamageRange(damage)) { + return; + } + + itemElementalComponents.push( + createDamageComponent({ + id: `item-${element}:${weaponSelection.option.id}`, + label: `Item ${element}`, + source: "item", + damageType: element, + damage, + sourceRefs: [ + { + table: "Armory item text", + columns: [ + `adds ${element} damage`, + `minimum ${element} damage`, + `maximum ${element} damage`, + ], + }, + ], + }) + ); + }); + + const skillPayloadComponents = directDamageComponents.filter( + (component) => component.damageType !== "physical" + ); + + const auraElementalComponents: DamageComponent[] = []; + activeAuras.forEach((aura) => { + const addition = getAuraAttackDamage(aura, effectiveSkillMap, realStats); + (["fire", "cold", "lightning", "magic"] as const).forEach((element) => { + const damage = addition[element]; + if (!isNonZeroDamageRange(damage)) { + return; + } + + auraElementalComponents.push( + createDamageComponent({ + id: `aura-${aura.name}-${aura.level}-${aura.carrier}-${element}`, + label: `${aura.name} ${element}`, + source: "aura", + damageType: element, + damage, + sourceRefs: [ + { + table: "Skills.txt", + row: getAuraFormulaSkillName(aura.name), + columns: [ + "aurastat*", + "aurastatcalc*", + "passivestat*", + "passivecalc*", + "EType", + "EMin", + "EMax", + "EDmgSymPerCalc", + ], + }, + ], + }) + ); + }); + + const poisonComponent = createAuraPoisonDamageComponent( + aura, + effectiveSkillMap, + realStats, + "aura" + ); + if (poisonComponent) { + auraElementalComponents.push(poisonComponent); + } + }); + + const itemPoisonComponents = parsedItemDamage.poisonDamage + ? [ + createDamageComponent({ + id: `item-poison:${weaponSelection.option.id}`, + label: "Item poison", + source: "item", + damageType: "poison", + timing: "over_time", + damage: { + min: parsedItemDamage.poisonDamage.total, + max: parsedItemDamage.poisonDamage.total, + }, + poisonDamage: parsedItemDamage.poisonDamage, + sourceRefs: [ + { + table: "Armory item text", + columns: ["poison damage"], + }, + ], + }), + ] + : []; + + const damageComponents = [ + ...physicalComponents, + ...itemElementalComponents, + ...skillPayloadComponents, + ...auraElementalComponents, + ...itemPoisonComponents, + ].filter((component) => isNonZeroDamageRange(component.damage)); + const damageTotals = buildDamageTotals(damageComponents); + const totalPhysicalDamage = + damageTotals.byElement.physical || createEmptyDamageRange(); + const totalElementalDamage = elementalDamageFromTotals(damageTotals); + const totalDamage = damageTotals.combinedDamage; + const damageScope = getDamageScope( + selectedSkillName, + selectedSkillLevel, + effectiveSkillMap, + "weapon", + weaponSelection + ); + + const notes: string[] = []; + if ( + selectedSkillName !== "Basic Attack" && + directDamageComponents.some((component) => component.damageType !== "physical") + ) { + notes.push( + `${selectedSkillName} includes independent skill or missile payload components from game-file damage fields in addition to weapon-source damage.` + ); + } + + if (usesKickSource && weaponSelection.baseDamageUnavailable) { + notes.push( + "This kick profile uses equipped boots as the attack source from Skills.txt Kick=1, but boot base kick damage is unavailable because Armor.txt is not present in the current extract and the armory payload does not expose boot damage." + ); + } + + if (usesKickSource && !weaponSelection.item.base?.stat_bonus) { + notes.push( + "Kick stat scaling uses the calculator's generic melee strength path because the armory payload does not expose boot StrBonus/DexBonus." + ); + } + + return { + key: `${weaponSelection.option.id}::${skillOption.id}::${playerAuraOption.id}:${playerAuraOption.level}::${playerAuraCarrier}`, + weaponId: weaponSelection.option.id, + skillId: skillOption.id, + playerAuraId: playerAuraOption.id, + playerAuraCarrier, + playerAuraLevel: playerAuraOption.level, + transformationId: "none", + skillDamageMode: "weapon", + skillName: selectedSkillName, + skillLevel: selectedSkillLevel, + selectedPlayerAura: + playerAuraOption.id === "none" + ? undefined + : { + name: playerAuraOption.name, + level: selectedPlayerAura?.level || playerAuraOption.level, + carrier: playerAuraCarrier, + }, + activeAuras: activeAuras.map(summarizeAuraSource), + damageScope, + damageComponents, + damageTotals, + totalPhysicalDamage, + totalElementalDamage, + totalPoisonDamage: damageTotals.poisonDamage, + totalDamage, + averageHitDamage: damageTotals.averageCombinedDamage, + breakdown: { + weaponDamage: carriedWeaponDamage, + flatPhysicalDamage: flatAndSkillPhysicalDamage, + physicalBonusPercent: { + stat: Number(statBonusPercent.toFixed(1)), + nonWeapon: parsedItemDamage.nonWeaponEnhancedDamagePct, + passive: passivePercent, + selectedSkill: selectedSkillPercent, + selectedSkillSynergy: directPhysicalSynergyPercent, + transformation: 0, + activeAuras: auraPercent, + total: Number(totalPhysicalBonusPercent.toFixed(1)), + }, + elementalDamage: totalElementalDamage, + poisonDamage: damageTotals.poisonDamage, + }, + notes, + }; +} + +function getPlayerAuraSelectionsForSkill( + skillOption: DamageSkillOption, + playerAuraSelections: AuraSelection[] +): AuraSelection[] { + if (skillOption.damageMode !== "summon") { + return playerAuraSelections; + } + + return playerAuraSelections.filter( + (selection) => selection.option.id === "none" || selection.carrier === "party" + ); +} + +export function calculateDamage( + characterData: CharacterData +): DamageCalculation { + const contexts = buildWeaponSetContexts(characterData); + const weaponSelections = getWeaponOptions(characterData); + + const skillOptions = collectDamageSkillOptions(contexts); + const playerAuraOptions = collectPlayerAuraOptions(contexts); + const playerAuraSelections = collectPlayerAuraSelections(playerAuraOptions); + const transformationOptions = collectTransformationOptions(contexts); + const alwaysActiveAuras = dedupeAuras( + Object.values(contexts).flatMap((context) => context.alwaysActiveAuras) + ); + + const defaultSkill = skillOptions[1] || skillOptions[0]; + const defaultPlayerAura = playerAuraOptions[0]; + const defaultTransformation = transformationOptions[0]; + + const profiles = weaponSelections.flatMap((weaponSelection) => + skillOptions.flatMap((skillOption) => { + if (!isWeaponSelectionCompatibleWithSkill(weaponSelection, skillOption)) { + return []; + } + + return getPlayerAuraSelectionsForSkill(skillOption, playerAuraSelections).map((playerAuraSelection) => + buildProfile( + characterData, + contexts[weaponSelection.weaponSet], + weaponSelection, + skillOption, + playerAuraSelection + ) + ); + }) + ); + const defaultProfile = getDefaultDamageProfile(profiles); + const defaultSkillSelection = + skillOptions.find((skillOption) => skillOption.id === defaultProfile?.skillId) || + defaultSkill; + const defaultTransformationId = getDefaultTransformationSelection( + defaultSkillSelection, + transformationOptions, + defaultProfile?.transformationId ?? defaultTransformation.id + ); + + const notes = [ + "Damage is an estimate built from PD2 game files. Totals combine immediate hit damage with modeled damage-over-time totals, but they do not include attack speed, cast speed, hit chance, target resistances, crushing blow, deadly strike, critical strike, repeated summon attacks, or conditional buffs.", + ]; + + if (weaponSelections.some((selection) => selection.sequenceHits?.length)) { + notes.push( + "Some skills can use both equipped weapons. When the game files describe that two-weapon cycle, the calculator shows the paired hit, but it does not estimate how many times the skill hits during a movement path or animation." + ); + } + + if (skillOptions.some((skillOption) => skillOption.damageMode === "summon")) { + notes.push( + "Summon skills show one source-backed per-summon hit when the game files expose stable damage data. Summon count, attack rate, AI choices, hit chance, and uptime are not multiplied into totals." + ); + } + + if (weaponSelections.some((selection) => selection.option.handMode === "unarmed")) { + notes.push( + "If a weapon set does not expose readable equipped weapon damage, the calculator falls back to the unarmed 1-2 base damage value." + ); + } + + return { + weaponOptions: weaponSelections.map((selection) => selection.option), + skillOptions, + playerAuraOptions, + transformationOptions, + alwaysActiveAuras: alwaysActiveAuras.map(summarizeAuraSource), + defaultSelection: { + weaponId: defaultProfile?.weaponId ?? weaponSelections[0].option.id, + skillId: defaultProfile?.skillId ?? defaultSkill.id, + playerAuraId: defaultProfile?.playerAuraId ?? defaultPlayerAura.id, + playerAuraCarrier: defaultProfile?.playerAuraCarrier ?? "self", + playerAuraLevel: defaultProfile?.playerAuraLevel ?? defaultPlayerAura.level, + transformationId: defaultTransformationId, + }, + profiles, + notes, + }; +} diff --git a/api/src/utils/skill-calculator.test.ts b/api/src/utils/skill-calculator.test.ts index 5ccd555..e38658a 100644 --- a/api/src/utils/skill-calculator.test.ts +++ b/api/src/utils/skill-calculator.test.ts @@ -469,6 +469,85 @@ describe("D2SkillParser", () => { }); describe("Complex Scenarios", () => { + it("should apply Druid skill bonuses from equipped items and inventory charms", () => { + const shapeCharm = (index: number) => ({ + name: `Spiritual Grand Charm ${index}`, + properties: ["+1 to Shape Shifting Skills (Druid Only)"], + location: { + storage: "Inventory", + equipment: index % 3 === 0 ? "Right Hand" : undefined, + } as ILocation, + }); + const char = createMockCharacter( + "Druid", + [ + { name: "Rabies", level: 20 }, + { name: "Poison Creeper", level: 20 }, + { name: "Feral Rage", level: 20 }, + { name: "Lycanthropy", level: 20 }, + { name: "Werewolf", level: 8 }, + { name: "Oak Sage", level: 11 }, + ], + [ + ...Array.from({ length: 8 }, (_, index) => shapeCharm(index)), + { + name: "Jalal's Mane", + properties: [ + "+2 to Shape Shifting Skills (Druid Only)", + "+2 to Druid Skills", + ], + }, + { name: "Amulet", properties: ["+2 to Druid Skills"] }, + { name: "Gloves", properties: ["+2 to Shape Shifting Skills (Druid Only)"] }, + { name: "Hellfire Torch", properties: ["+2 to Druid Skills"] }, + { name: "Arachnid Mesh", properties: ["+1 to All Skills"] }, + { name: "Annihilus", properties: ["+1 to All Skills"] }, + { name: "Wisp Projector", properties: ["+1 to All Skills"] }, + { + name: "Call to Arms", + properties: ["+1 to All Skills"], + location: { + equipment: "Left Hand Switch", + storage_id: 0, + equipment_id: 0, + zone_id: 0, + zone: "", + storage: "", + }, + }, + { + name: "Lidless Wall", + properties: ["+2 to All Skills"], + location: { + equipment: "Right Hand Switch", + storage_id: 0, + equipment_id: 0, + zone_id: 0, + zone: "", + storage: "", + }, + }, + ] + ); + + const result = parser.calculateTotalSkills(char); + + expect(result).toEqual( + expect.arrayContaining([ + expect.objectContaining({ skill: "Rabies", level: 41, baseLevel: 20 }), + expect.objectContaining({ skill: "Feral Rage", level: 41, baseLevel: 20 }), + expect.objectContaining({ skill: "Lycanthropy", level: 41, baseLevel: 20 }), + expect.objectContaining({ skill: "Werewolf", level: 29, baseLevel: 8 }), + expect.objectContaining({ + skill: "Poison Creeper", + level: 29, + baseLevel: 20, + }), + expect.objectContaining({ skill: "Oak Sage", level: 20, baseLevel: 11 }), + ]) + ); + }); + it("should handle Hammerdin build", () => { const char = createMockCharacter( "Paladin", diff --git a/api/src/utils/skill-calculator.ts b/api/src/utils/skill-calculator.ts index 3fad166..da2ee98 100644 --- a/api/src/utils/skill-calculator.ts +++ b/api/src/utils/skill-calculator.ts @@ -38,6 +38,14 @@ class D2SkillParser { name: "Jab", categories: ["javelin and spear skills", "amazon skills", "jab"], }, + { + name: "Javelin and Spear Mastery", + categories: [ + "javelin and spear skills", + "amazon skills", + "javelin and spear mastery", + ], + }, { name: "Cold Arrow", categories: [ @@ -90,6 +98,14 @@ class D2SkillParser { "slow missiles", ], }, + { + name: "Slow Movement", + categories: [ + "passive and magic skills", + "amazon skills", + "slow movement", + ], + }, { name: "Avoid", categories: ["passive and magic skills", "amazon skills", "avoid"], @@ -306,6 +322,15 @@ class D2SkillParser { "lightning skills", ], }, + { + name: "Chain Lightning Sentry", + categories: [ + "trap skills", + "assassin skills", + "chain lightning sentry", + "lightning skills", + ], + }, { name: "Wake of Inferno", categories: [ @@ -328,10 +353,23 @@ class D2SkillParser { "cold skills", ], }, + { + name: "Claws of Thunder", + categories: [ + "martial arts", + "assassin skills", + "claws of thunder", + "lightning skills", + ], + }, { name: "Dragon Flight", categories: ["martial arts", "assassin skills", "dragon flight"], }, + { + name: "Blade Dance", + categories: ["martial arts", "assassin skills", "blade dance"], + }, { name: "Death Sentry", categories: [ @@ -358,6 +396,10 @@ class D2SkillParser { name: "Shadow Master", categories: ["shadow disciplines", "assassin skills", "shadow master"], }, + { + name: "Shadow Warrior", + categories: ["shadow disciplines", "assassin skills", "shadow warrior"], + }, { name: "Phoenix Strike", categories: [ @@ -420,6 +462,26 @@ class D2SkillParser { "pole arm and spear mastery", ], }, + { + name: "Pole Arm Mastery", + categories: [ + "masteries skills", + "barbarian skills", + "pole arm mastery", + ], + }, + { + name: "Spear Mastery", + categories: ["masteries skills", "barbarian skills", "spear mastery"], + }, + { + name: "Throwing Mastery", + categories: [ + "masteries skills", + "barbarian skills", + "throwing mastery", + ], + }, { name: "Taunt", categories: ["warcries skills", "barbarian skills", "taunt"], @@ -464,10 +526,22 @@ class D2SkillParser { name: "Frenzy", categories: ["combat skills", "barbarian skills", "frenzy"], }, + { + name: "Battle Rage", + categories: ["combat skills", "barbarian skills", "battle rage"], + }, { name: "Increased Speed", categories: ["masteries skills", "barbarian skills", "increased speed"], }, + { + name: "Combat Reflexes", + categories: [ + "masteries skills", + "barbarian skills", + "combat reflexes", + ], + }, { name: "Battle Orders", categories: ["warcries skills", "barbarian skills", "battle orders"], @@ -500,6 +574,10 @@ class D2SkillParser { name: "Battle Command", categories: ["warcries skills", "barbarian skills", "battle command"], }, + { + name: "Grim Ward", + categories: ["warcries skills", "barbarian skills", "grim ward"], + }, { name: "Deep Wounds", categories: ["masteries skills", "barbarian skills", "deep wounds"], @@ -570,6 +648,14 @@ class D2SkillParser { name: "Lycanthropy", categories: ["shape shifting skills", "druid skills", "lycanthropy"], }, + { + name: "Feral Rage", + categories: ["shape shifting skills", "druid skills", "feral rage"], + }, + { + name: "Maul", + categories: ["shape shifting skills", "druid skills", "maul"], + }, { name: "Fire Claws", categories: [ @@ -629,6 +715,10 @@ class D2SkillParser { name: "Fury", categories: ["shape shifting skills", "druid skills", "fury"], }, + { + name: "Shock Wave", + categories: ["shape shifting skills", "druid skills", "shock wave"], + }, { name: "Volcano", categories: [ @@ -707,6 +797,18 @@ class D2SkillParser { name: "Dim Vision", categories: ["curses skills", "necromancer skills", "dim vision"], }, + { + name: "Attract", + categories: ["curses skills", "necromancer skills", "attract"], + }, + { + name: "Teeth", + categories: [ + "poison and bone skills", + "necromancer skills", + "teeth", + ], + }, { name: "Poison Dagger", categories: [ @@ -819,6 +921,14 @@ class D2SkillParser { "bone spirit", ], }, + { + name: "Bone Spikes", + categories: [ + "poison and bone skills", + "necromancer skills", + "bone spikes", + ], + }, { name: "Fire Golem", categories: [ @@ -889,6 +999,22 @@ class D2SkillParser { name: "Holy Bolt", categories: ["combat skills", "paladin skills", "holy bolt"], }, + { + name: "Holy Nova", + categories: ["combat skills", "paladin skills", "holy nova"], + }, + { + name: "Holy Light", + categories: ["combat skills", "paladin skills", "holy light"], + }, + { + name: "Joust", + categories: ["combat skills", "paladin skills", "joust"], + }, + { + name: "Holy Sword", + categories: ["combat skills", "paladin skills", "holy sword"], + }, { name: "Prayer", categories: ["defensive auras", "paladin skills", "prayer"], @@ -901,6 +1027,10 @@ class D2SkillParser { name: "Smite", categories: ["combat skills", "paladin skills", "smite"], }, + { + name: "Thorns", + categories: ["offensive auras", "paladin skills", "thorns"], + }, { name: "Holy Fire", categories: [ @@ -927,6 +1057,10 @@ class D2SkillParser { name: "Zeal", categories: ["combat skills", "paladin skills", "zeal"], }, + { + name: "Conversion", + categories: ["combat skills", "paladin skills", "conversion"], + }, { name: "Charge", categories: ["combat skills", "paladin skills", "charge"], @@ -993,6 +1127,10 @@ class D2SkillParser { name: "Blessed Shield", categories: ["combat skills", "paladin skills", "blessed shield"], }, + { + name: "Holy Shield", + categories: ["combat skills", "paladin skills", "holy shield"], + }, { name: "Holy Shock", categories: [ diff --git a/docker-compose.yml b/docker-compose.yml index 14ed068..001c5fd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,7 +21,7 @@ x-api-service: &api-service REDIS_HOST: redis REDIS_PORT: 6379 CURRENT_SEASON: ${CURRENT_SEASON:-13} - CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost:4173} + CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost:4173,http://127.0.0.1:4173,http://localhost:4174,http://127.0.0.1:4174,http://localhost:5173,http://127.0.0.1:5173} RATE_LIMIT_WINDOW: ${RATE_LIMIT_WINDOW:-15} RATE_LIMIT_MAX: ${RATE_LIMIT_MAX:-100} LOG_LEVEL: ${LOG_LEVEL:-info} diff --git a/web/src/App.tsx b/web/src/App.tsx index ac09468..e11ec61 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -1,5 +1,5 @@ import { BrowserRouter, Routes, Route } from "react-router-dom"; -import { MantineProvider, createTheme } from "@mantine/core"; +import { MantineProvider } from "@mantine/core"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; // Layout @@ -17,10 +17,12 @@ import Statistics from "./pages/Statistics"; import Leaderboard from "./pages/Leaderboard"; import CharacterExport from "./pages/CharacterExport"; import CorruptedZoneTracker from "./pages/CorruptedZoneTracker"; +import DamageCalculator from "./pages/DamageCalculator"; import About from "./pages/About"; import PrivacyPolicy from "./pages/PrivacyPolicy"; import NotFound from "./pages/NotFound"; import { ErrorBoundary } from "./components/shared"; +import { customDarkTheme } from "./theme"; const queryClient = new QueryClient({ defaultOptions: { @@ -32,25 +34,6 @@ const queryClient = new QueryClient({ }, }); -const customDarkTheme = createTheme({ - colorScheme: "dark", - colors: { - dark: [ - "#C1C2C5", - "#A6A7AB", - "#909296", - "#5C5F66", - "#373A40", - "#2C2E33", - "#25262B", - "#1A1B1E", - "#141517", - "#101113", - ], - }, - primaryColor: "blue", -}); - function App() { return ( @@ -104,6 +87,10 @@ function App() { path="/tools/corrupted-zone-tracker" element={} /> + } + /> {/* Info Pages */} } /> diff --git a/web/src/api/characters.ts b/web/src/api/characters.ts index 8d41c4b..59a6ba6 100644 --- a/web/src/api/characters.ts +++ b/web/src/api/characters.ts @@ -1,5 +1,6 @@ import { apiClient } from "./client"; import { API_ENDPOINTS } from "../config/api"; +import { DAMAGE_CALCULATOR_PAYLOAD_VERSION } from "../types"; import type { FullCharacterResponse, CharacterFilter, @@ -53,6 +54,7 @@ export const charactersAPI = { { gameMode, season, + damageCalculatorVersion: DAMAGE_CALCULATOR_PAYLOAD_VERSION, } ); }, diff --git a/web/src/components/builds/CharacterTable/index.tsx b/web/src/components/builds/CharacterTable/index.tsx index 3f3e843..a2b3505 100644 --- a/web/src/components/builds/CharacterTable/index.tsx +++ b/web/src/components/builds/CharacterTable/index.tsx @@ -330,7 +330,9 @@ export default function PlayerTable({ if (filters.season !== DEFAULT_VIEW_SEASON) searchParams.set("season", filters.season.toString()); - const href = `/builds/character/${row.original.name}?${searchParams.toString()}`; + const href = `/builds/character/${encodeURIComponent( + row.original.name + )}?${searchParams.toString()}`; return { component: "a", diff --git a/web/src/components/character/CharacterHeader.tsx b/web/src/components/character/CharacterHeader.tsx index c05dba1..f81eccd 100644 --- a/web/src/components/character/CharacterHeader.tsx +++ b/web/src/components/character/CharacterHeader.tsx @@ -52,8 +52,8 @@ export function CharacterHeader({ const getCharacterUrl = (charName: string) => { const queryString = searchParams.toString(); return queryString - ? `/builds/character/${charName}?${queryString}` - : `/builds/character/${charName}`; + ? `/builds/character/${encodeURIComponent(charName)}?${queryString}` + : `/builds/character/${encodeURIComponent(charName)}`; }; const handleNavClick = (targetName: string) => { diff --git a/web/src/components/character/DamageCalculatorSection.tsx b/web/src/components/character/DamageCalculatorSection.tsx new file mode 100644 index 0000000..ca1f6c2 --- /dev/null +++ b/web/src/components/character/DamageCalculatorSection.tsx @@ -0,0 +1,2385 @@ +import { useEffect, useMemo, useState } from "react"; +import { + Anchor, + Badge, + Button, + Card, + Checkbox, + Collapse, + Divider, + Group, + Select, + SimpleGrid, + Stack, + Text, +} from "@mantine/core"; +import { IconCalculator, IconChevronDown } from "@tabler/icons-react"; +import type { + ActiveAuraSummary, + DamageAuraOption, + DamageCalculation, + DamageCalculatorSectionProps, + DamageProfile, + DamageRange, + DamageTransformationOption, + DamageWeaponOption, +} from "../../types"; +import { STAT_COLORS } from "./stat-colors"; + +const BUG_REPORT_CHANNEL_URL = + "https://discordapp.com/channels/1311407302149931128/1311407430122475580"; +const SPELL_AURA_DAMAGE_NOTE = + "Selected attack aura damage payloads are not applied to spell damage."; + +function formatRange(range?: DamageRange) { + if (!range) { + return "0"; + } + + return `${range.min.toLocaleString()} - ${range.max.toLocaleString()}`; +} + +function getWeaponSetLabel(weaponSet: DamageWeaponOption["weaponSet"]) { + return weaponSet === "primary" ? "primary set" : "swap set"; +} + +function isBowOrCrossbowWeapon(weapon: Pick) { + return /bow|crossbow/i.test( + [weapon.baseName, weapon.itemName, weapon.weaponType].join(" ") + ); +} + +function getHandModeLabel( + handMode: DamageWeaponOption["handMode"], + weapon?: Pick +) { + switch (handMode) { + case "missile": + if (weapon && isBowOrCrossbowWeapon(weapon)) { + return /crossbow/i.test( + [weapon.baseName, weapon.itemName, weapon.weaponType].join(" ") + ) + ? "crossbow" + : "bow"; + } + + return "thrown"; + case "one_handed": + return "1H"; + case "two_handed": + return "2H"; + case "dual_throw": + return "dual throw"; + case "dual_wield": + return "dual wield"; + case "kick": + return "kick"; + case "summon": + return "summon"; + case "unarmed": + default: + return "unarmed"; + } +} + +function getWeaponOptionSelectLabel(weapon: DamageWeaponOption) { + if (weapon.sequenceHits?.length) { + return `${weapon.itemName} (${getHandModeLabel( + weapon.handMode, + weapon + )}): ${getWeaponSetLabel(weapon.weaponSet)} both weapons`; + } + + if (weapon.slot === "feet") { + return `${weapon.itemName} (${getHandModeLabel( + weapon.handMode, + weapon + )}): ${getWeaponSetLabel(weapon.weaponSet)} boots`; + } + + if (weapon.slot === "summon") { + return `${weapon.itemName} (${getHandModeLabel( + weapon.handMode, + weapon + )}): summon source`; + } + + const handLabel = weapon.slot === "right" ? "right" : "left"; + + return `${weapon.itemName} (${getHandModeLabel( + weapon.handMode, + weapon + )}): ${getWeaponSetLabel(weapon.weaponSet)} ${handLabel}`; +} + +function getSequenceWeaponSelectLabel( + weapon: DamageWeaponOption, + hitIndex: number +) { + const hit = weapon.sequenceHits?.[hitIndex]; + if (!hit) { + return `${weapon.label}: ${weapon.itemName}`; + } + + const handLabel = hit.slot === "right" ? "right" : "left"; + + return `${hit.itemName} (${getHandModeLabel( + hit.handMode + )}): ${getWeaponSetLabel(hit.weaponSet)} ${handLabel}`; +} + +function getSequenceSecondaryWeaponSelectLabel( + weapon: DamageWeaponOption, + primaryWeaponId: string | null +) { + const hits = weapon.sequenceHits ?? []; + const primaryHitIndex = hits.findIndex( + (hit) => hit.weaponId === primaryWeaponId + ); + const secondaryHit = + primaryHitIndex >= 0 + ? hits.find((_, index) => index !== primaryHitIndex) + : hits[1]; + + if (!secondaryHit) { + return getWeaponOptionSelectLabel(weapon); + } + + const handLabel = secondaryHit.slot === "right" ? "right" : "left"; + + return `${secondaryHit.itemName} (${getHandModeLabel( + secondaryHit.handMode + )}): ${getWeaponSetLabel(secondaryHit.weaponSet)} ${handLabel}`; +} + +function parseTransformationId(transformationId?: string | null) { + if (!transformationId || transformationId === "none") { + return { id: "none", level: "0" }; + } + + const [id, level] = transformationId.split(":"); + return { + id, + level: level || null, + }; +} + +function getTransformationBonus( + transformationOption: DamageTransformationOption | null, + level: string | null +) { + if (!transformationOption || transformationOption.id === "none" || !level) { + return 0; + } + + const numericLevel = Number(level); + return ( + transformationOption.levelBonuses?.find( + (bonus) => bonus.level === numericLevel + )?.physicalBonusPercent ?? 0 + ); +} + +const DAMAGE_ELEMENTS = ["fire", "cold", "lightning", "magic"] as const; +const DAMAGE_TYPE_COLORS: Record = { + physical: STAT_COLORS.physicalDamageReduction, + fire: STAT_COLORS.fire, + cold: STAT_COLORS.cold, + lightning: STAT_COLORS.lightning, + poison: STAT_COLORS.poison, + magic: STAT_COLORS.magic, +}; + +type AuraSelectionRow = { + rowId: string; + auraId: string; + level: string; + isParty: boolean; +}; + +let auraSelectionRowSequence = 0; + +function createAuraSelectionRow( + overrides: Partial> = {} +): AuraSelectionRow { + auraSelectionRowSequence += 1; + + return { + rowId: `aura-row-${auraSelectionRowSequence}`, + auraId: "none", + level: "0", + isParty: false, + ...overrides, + }; +} + +function getAuraDefaultLevel(auraOption?: DamageAuraOption | null) { + if (!auraOption || auraOption.id === "none") { + return "0"; + } + + return String(auraOption.level ?? auraOption.levelOptions[0] ?? 1); +} + +function normalizeAuraSelectionRows( + rows: AuraSelectionRow[], + auraOptions: DamageAuraOption[] +): AuraSelectionRow[] { + const auraOptionById = new Map( + auraOptions.map((auraOption) => [auraOption.id, auraOption]) + ); + const selectedRows = rows.flatMap((row) => { + const auraOption = auraOptionById.get(row.auraId); + + if (!auraOption || auraOption.id === "none") { + return []; + } + + const level = auraOption.levelOptions.includes(Number(row.level)) + ? row.level + : getAuraDefaultLevel(auraOption); + + return [{ ...row, auraId: auraOption.id, level }]; + }); + + return [...selectedRows, createAuraSelectionRow()]; +} + +function getDamageTypeColor(damageType: string | null | undefined) { + return DAMAGE_TYPE_COLORS[damageType?.toLowerCase() ?? ""] ?? STAT_COLORS.zeroValue; +} + +function getAuraLevelBonus( + auraOption: DamageAuraOption | null, + level: string | number | null, + isParty = false +): DamageAuraOption["levelBonuses"][number] { + const fallback: DamageAuraOption["levelBonuses"][number] = { + level: 0, + skillLevelBonus: 0, + physicalBonusPercent: 0, + elementalDamage: {}, + }; + + if (!auraOption || auraOption.id === "none") { + return fallback; + } + + const requestedLevel = Number(level); + const numericLevel = + Number.isFinite(requestedLevel) && requestedLevel > 0 + ? requestedLevel + : auraOption.level || auraOption.levelOptions[0] || 1; + + const bonuses = isParty + ? auraOption.partyLevelBonuses ?? auraOption.levelBonuses + : auraOption.selfLevelBonuses ?? auraOption.levelBonuses; + + return ( + bonuses.find((bonus) => bonus.level === numericLevel) ?? { + ...fallback, + level: numericLevel, + } + ); +} + +function getAuraBonusScore( + bonus: DamageAuraOption["levelBonuses"][number] +): number { + const elementalScore = DAMAGE_ELEMENTS.reduce((total, element) => { + const range = bonus.elementalDamage[element]; + return total + (range ? (range.min + range.max) / 2 : 0); + }, 0); + const poisonScore = bonus.poisonDamage?.total ?? 0; + + return bonus.skillLevelBonus * 1000000 + + bonus.physicalBonusPercent * 1000 + + elementalScore + + poisonScore; +} + +function getResolvedAuraLevel( + auraOption: DamageAuraOption, + level: string | null, + isParty: boolean +): number { + const selectedBonus = getAuraLevelBonus(auraOption, level, isParty); + return selectedBonus.level || auraOption.level || 1; +} + +function findPrecomputedAuraProfile( + damageCalculation: DamageCalculation, + weaponId: string, + skillId: string, + auraOption: DamageAuraOption, + isParty: boolean, + level: string | null +): DamageProfile | null { + const numericLevel = getResolvedAuraLevel(auraOption, level, isParty); + const carrier = isParty ? "party" : "self"; + + return ( + damageCalculation.profiles.find( + (profile) => + profile.weaponId === weaponId && + profile.skillId === skillId && + profile.playerAuraId === auraOption.id && + profile.playerAuraCarrier === carrier && + profile.playerAuraLevel === numericLevel && + profile.transformationId === "none" + ) ?? null + ); +} + +function getElementalDelta( + next: DamageProfile["totalElementalDamage"], + previous: DamageProfile["totalElementalDamage"] +): DamageProfile["totalElementalDamage"] { + const delta: DamageProfile["totalElementalDamage"] = {}; + + DAMAGE_ELEMENTS.forEach((element) => { + const nextRange = next[element]; + const previousRange = previous[element]; + const min = (nextRange?.min || 0) - (previousRange?.min || 0); + const max = (nextRange?.max || 0) - (previousRange?.max || 0); + + if (min || max) { + delta[element] = { min, max }; + } + }); + + return delta; +} + +function getPoisonDelta( + next: DamageAuraOption["levelBonuses"][number]["poisonDamage"], + previous: DamageAuraOption["levelBonuses"][number]["poisonDamage"] +): DamageAuraOption["levelBonuses"][number]["poisonDamage"] | undefined { + if (!next) { + return undefined; + } + + const min = next.damage.min - (previous?.damage.min || 0); + const max = next.damage.max - (previous?.damage.max || 0); + if (min <= 0 && max <= 0) { + return undefined; + } + + return { + damage: { min, max }, + total: Math.max(0, next.total - (previous?.total || 0)), + durationSeconds: next.durationSeconds, + }; +} + +function createEmptyRange(): DamageRange { + return { min: 0, max: 0 }; +} + +function addRange(base: DamageRange, addition?: DamageRange): DamageRange { + if (!addition) { + return base; + } + + return { + min: base.min + addition.min, + max: base.max + addition.max, + }; +} + +function scaleRange(range: DamageRange, multiplier: number): DamageRange { + return { + min: range.min * multiplier, + max: range.max * multiplier, + }; +} + +function hasRange(range?: DamageRange | null): range is DamageRange { + return Boolean(range && (range.min > 0 || range.max > 0)); +} + +function getRangeColor(range: DamageRange | null | undefined, color: string) { + return hasRange(range) ? color : STAT_COLORS.zeroValue; +} + +function getPercentColor(value: number, color: string) { + return value ? color : STAT_COLORS.zeroValue; +} + +function getProfileSequenceHitCount(profile: DamageProfile) { + return Math.max(1, profile.sequenceHits?.length ?? 1); +} + +function getCombinedDamageLabel(profile: DamageProfile) { + return profile.damageScope?.label + ? `Combined Damage ${profile.damageScope.label}` + : "Combined Damage"; +} + +function getDamageScopeCountLabel(profile: DamageProfile) { + const scope = profile.damageScope; + if (!scope?.count || !scope.countLabel) { + return null; + } + + return `${scope.count.toLocaleString()} ${scope.countLabel}`; +} + +function averageRange(range: DamageRange) { + return Number(((range.min + range.max) / 2).toFixed(1)); +} + +function buildDamageTotalsFromComponents( + components: DamageProfile["damageComponents"] +): DamageProfile["damageTotals"] { + const byElement: DamageProfile["damageTotals"]["byElement"] = {}; + let poisonDamage: DamageProfile["damageTotals"]["poisonDamage"]; + + components.forEach((component) => { + if (!hasRange(component.damage)) { + return; + } + + byElement[component.damageType] = addRange( + byElement[component.damageType] || createEmptyRange(), + component.damage + ); + + if (component.damageType === "poison") { + const addition = + component.poisonDamage ?? + ({ + total: Math.floor(averageRange(component.damage)), + durationSeconds: 0, + } satisfies NonNullable); + poisonDamage = poisonDamage + ? { + total: poisonDamage.total + addition.total, + durationSeconds: Math.max( + poisonDamage.durationSeconds, + addition.durationSeconds + ), + } + : addition; + } + }); + + const instantDamage = components + .filter((component) => component.timing === "instant") + .reduce((total, component) => addRange(total, component.damage), createEmptyRange()); + const overTimeDamage = components + .filter((component) => component.timing === "over_time") + .reduce((total, component) => addRange(total, component.damage), createEmptyRange()); + const combinedDamage = addRange(instantDamage, overTimeDamage); + + return { + instantDamage, + overTimeDamage, + combinedDamage, + averageInstantDamage: averageRange(instantDamage), + averageCombinedDamage: averageRange(combinedDamage), + byElement, + poisonDamage, + }; +} + +function summaryFieldsFromComponents( + components: DamageProfile["damageComponents"] +) { + const damageTotals = buildDamageTotalsFromComponents(components); + const totalElementalDamage: DamageProfile["totalElementalDamage"] = {}; + + DAMAGE_ELEMENTS.forEach((element) => { + const range = damageTotals.byElement[element]; + if (hasRange(range)) { + totalElementalDamage[element] = range; + } + }); + + return { + damageTotals, + totalPhysicalDamage: + damageTotals.byElement.physical || createEmptyRange(), + totalElementalDamage, + totalPoisonDamage: damageTotals.poisonDamage, + totalDamage: damageTotals.combinedDamage, + averageHitDamage: damageTotals.averageCombinedDamage, + }; +} + +type RuntimeDamageProfile = Omit< + DamageProfile, + | "activeAuras" + | "breakdown" + | "damageComponents" + | "damageTotals" + | "totalPhysicalDamage" + | "totalElementalDamage" + | "totalPoisonDamage" + | "totalDamage" + | "averageHitDamage" + | "notes" +> & + Partial< + Pick< + DamageProfile, + | "activeAuras" + | "breakdown" + | "damageComponents" + | "damageTotals" + | "totalPhysicalDamage" + | "totalElementalDamage" + | "totalPoisonDamage" + | "totalDamage" + | "averageHitDamage" + | "notes" + > + >; + +function cloneRange(range?: DamageRange | null): DamageRange | undefined { + if (!range) { + return undefined; + } + + const min = Number(range.min); + const max = Number(range.max); + + if (!Number.isFinite(min) || !Number.isFinite(max)) { + return undefined; + } + + return { min, max }; +} + +function getElementalDamageFromTotals( + totals: DamageProfile["damageTotals"] +): DamageProfile["totalElementalDamage"] { + const totalElementalDamage: DamageProfile["totalElementalDamage"] = {}; + + DAMAGE_ELEMENTS.forEach((element) => { + const range = cloneRange(totals.byElement[element]); + if (hasRange(range)) { + totalElementalDamage[element] = range; + } + }); + + return totalElementalDamage; +} + +function createLegacyDamageComponents( + profile: RuntimeDamageProfile +): DamageProfile["damageComponents"] { + const components: DamageProfile["damageComponents"] = []; + const legacyNote = + "Derived from a legacy damage profile summary; per-source component data was not present in this payload."; + const physicalDamage = cloneRange(profile.totalPhysicalDamage); + + if (hasRange(physicalDamage)) { + components.push({ + id: "legacy-summary:physical", + label: "Physical damage", + source: "unknown", + damageType: "physical", + timing: "instant", + damage: physicalDamage, + sourceRefs: [], + notes: [legacyNote], + }); + } + + DAMAGE_ELEMENTS.forEach((element) => { + const damage = cloneRange(profile.totalElementalDamage?.[element]); + if (!hasRange(damage)) { + return; + } + + components.push({ + id: `legacy-summary:${element}`, + label: `${element[0].toUpperCase()}${element.slice(1)} damage`, + source: "unknown", + damageType: element, + timing: "instant", + damage, + sourceRefs: [], + notes: [legacyNote], + }); + }); + + const poisonDamage = + profile.totalPoisonDamage ?? profile.damageTotals?.poisonDamage; + if (poisonDamage && poisonDamage.total > 0) { + components.push({ + id: "legacy-summary:poison", + label: "Poison damage", + source: "unknown", + damageType: "poison", + timing: "over_time", + damage: { + min: poisonDamage.total, + max: poisonDamage.total, + }, + poisonDamage, + sourceRefs: [], + notes: [legacyNote], + }); + } + + const totalDamage = cloneRange( + profile.totalDamage ?? profile.damageTotals?.combinedDamage + ); + if (components.length === 0 && hasRange(totalDamage)) { + components.push({ + id: "legacy-summary:combined", + label: "Combined damage", + source: "unknown", + damageType: "physical", + timing: "instant", + damage: totalDamage, + sourceRefs: [], + notes: [legacyNote], + }); + } + + return components; +} + +function normalizeDamageTotals( + profile: RuntimeDamageProfile, + components: DamageProfile["damageComponents"] +): DamageProfile["damageTotals"] { + const derivedTotals = buildDamageTotalsFromComponents(components); + const existingTotals = profile.damageTotals; + const combinedDamage = + cloneRange(existingTotals?.combinedDamage) ?? + cloneRange(profile.totalDamage) ?? + derivedTotals.combinedDamage; + const instantDamage = + cloneRange(existingTotals?.instantDamage) ?? + (components.some((component) => component.timing === "instant") + ? derivedTotals.instantDamage + : combinedDamage); + const overTimeDamage = + cloneRange(existingTotals?.overTimeDamage) ?? derivedTotals.overTimeDamage; + const byElement = + existingTotals?.byElement && Object.keys(existingTotals.byElement).length > 0 + ? existingTotals.byElement + : derivedTotals.byElement; + const poisonDamage = + existingTotals?.poisonDamage ?? + profile.totalPoisonDamage ?? + derivedTotals.poisonDamage; + + return { + instantDamage, + overTimeDamage, + combinedDamage, + averageInstantDamage: + existingTotals?.averageInstantDamage ?? averageRange(instantDamage), + averageCombinedDamage: + existingTotals?.averageCombinedDamage ?? + profile.averageHitDamage ?? + averageRange(combinedDamage), + byElement, + poisonDamage, + }; +} + +function createFallbackBreakdown( + profile: RuntimeDamageProfile, + totalElementalDamage: DamageProfile["totalElementalDamage"], + totalPoisonDamage: DamageProfile["totalPoisonDamage"] +): DamageProfile["breakdown"] { + const physicalBonusPercent = profile.breakdown?.physicalBonusPercent; + + return { + weaponDamage: + cloneRange(profile.breakdown?.weaponDamage) ?? createEmptyRange(), + flatPhysicalDamage: + cloneRange(profile.breakdown?.flatPhysicalDamage) ?? createEmptyRange(), + elementalDamage: profile.breakdown?.elementalDamage ?? totalElementalDamage, + poisonDamage: profile.breakdown?.poisonDamage ?? totalPoisonDamage, + physicalBonusPercent: { + stat: physicalBonusPercent?.stat ?? 0, + nonWeapon: physicalBonusPercent?.nonWeapon ?? 0, + passive: physicalBonusPercent?.passive ?? 0, + selectedSkill: physicalBonusPercent?.selectedSkill ?? 0, + selectedSkillSynergy: physicalBonusPercent?.selectedSkillSynergy ?? 0, + transformation: physicalBonusPercent?.transformation ?? 0, + activeAuras: physicalBonusPercent?.activeAuras ?? 0, + total: physicalBonusPercent?.total ?? 0, + }, + }; +} + +function normalizeDamageProfile(profile: DamageProfile): DamageProfile { + const runtimeProfile = profile as RuntimeDamageProfile; + const damageComponents = Array.isArray(runtimeProfile.damageComponents) + ? runtimeProfile.damageComponents + : createLegacyDamageComponents(runtimeProfile); + const damageTotals = normalizeDamageTotals(runtimeProfile, damageComponents); + const totalElementalDamage = + runtimeProfile.totalElementalDamage ?? + getElementalDamageFromTotals(damageTotals); + const totalPoisonDamage = + runtimeProfile.totalPoisonDamage ?? damageTotals.poisonDamage; + + return { + ...profile, + activeAuras: runtimeProfile.activeAuras ?? [], + damageComponents, + damageTotals, + totalPhysicalDamage: + cloneRange(runtimeProfile.totalPhysicalDamage) ?? + cloneRange(damageTotals.byElement.physical) ?? + createEmptyRange(), + totalElementalDamage, + totalPoisonDamage, + totalDamage: + cloneRange(runtimeProfile.totalDamage) ?? damageTotals.combinedDamage, + averageHitDamage: + runtimeProfile.averageHitDamage ?? damageTotals.averageCombinedDamage, + breakdown: createFallbackBreakdown( + runtimeProfile, + totalElementalDamage, + totalPoisonDamage + ), + notes: runtimeProfile.notes ?? [], + }; +} + +function rescalePhysicalComponents( + components: DamageProfile["damageComponents"], + previousMultiplier: number, + nextMultiplier: number +): DamageProfile["damageComponents"] { + return components.map((component) => { + if (component.damageType !== "physical" || component.timing !== "instant") { + return component; + } + + const baseDamage = component.baseDamage || { + min: + previousMultiplier === 0 + ? component.damage.min + : component.damage.min / previousMultiplier, + max: + previousMultiplier === 0 + ? component.damage.max + : component.damage.max / previousMultiplier, + }; + + return { + ...component, + baseDamage, + damage: { + min: Math.floor(baseDamage.min * nextMultiplier), + max: Math.max( + Math.floor(baseDamage.min * nextMultiplier), + Math.floor(baseDamage.max * nextMultiplier) + ), + }, + }; + }); +} + +function buildAuraSummary( + auraOption: DamageAuraOption, + level: number, + isParty: boolean +): ActiveAuraSummary { + return { + name: auraOption.name, + level, + source: + auraOption.source === "character_skill" && !isParty + ? "player_skill" + : "manual", + carrier: isParty ? "party" : "self", + }; +} + +function replaceAuraSummary( + activeAuras: ActiveAuraSummary[], + aura: ActiveAuraSummary +) { + return [ + ...activeAuras.filter((activeAura) => activeAura.name !== aura.name), + aura, + ].sort((left, right) => left.name.localeCompare(right.name)); +} + +function applyAuraToProfile( + profile: DamageProfile, + auraOption: DamageAuraOption | null, + isParty: boolean, + level: string | null +): DamageProfile { + if (!auraOption || auraOption.id === "none") { + return profile; + } + + const auraAppliesAsParty = isParty || profile.skillDamageMode === "summon"; + const selectedBonus = getAuraLevelBonus(auraOption, level, auraAppliesAsParty); + const numericLevel = selectedBonus.level || auraOption.level || 1; + const selectedAura = buildAuraSummary( + auraOption, + numericLevel, + auraAppliesAsParty + ); + const skillLevelNote = + selectedBonus.skillLevelBonus > 0 + ? [ + `Selected aura all-skills bonus (+${selectedBonus.skillLevelBonus}) requires a precomputed profile`, + "to update skill damage at this level.", + ].join(" ") + : null; + const noteAdditions = [ + skillLevelNote, + profile.skillDamageMode === "spell" ? SPELL_AURA_DAMAGE_NOTE : null, + profile.skillDamageMode === "summon" && !isParty + ? "Selected attack auras are applied to summon damage as party aura payloads." + : null, + ].filter((note): note is string => Boolean(note)); + const notes = [ + ...profile.notes, + ...noteAdditions.filter((note) => !profile.notes.includes(note)), + ]; + + if (profile.skillDamageMode === "spell") { + return { + ...profile, + key: `${profile.key}::aura:${auraOption.id}:${numericLevel}:${selectedAura.carrier}`, + playerAuraId: auraOption.id, + playerAuraCarrier: selectedAura.carrier, + playerAuraLevel: numericLevel, + selectedPlayerAura: { + name: auraOption.name, + level: numericLevel, + carrier: selectedAura.carrier, + }, + activeAuras: replaceAuraSummary(profile.activeAuras, selectedAura), + notes, + }; + } + + const existingAura = profile.activeAuras.find( + (activeAura) => activeAura.name === auraOption.name + ); + const existingBonus = existingAura + ? getAuraLevelBonus( + auraOption, + existingAura.level, + existingAura.carrier === "party" + ) + : getAuraLevelBonus(null, null); + const selectedBonusScore = getAuraBonusScore(selectedBonus); + const existingBonusScore = getAuraBonusScore(existingBonus); + const existingAuraIsStronger = + Boolean(existingAura) && + (existingBonusScore > selectedBonusScore || + (existingBonusScore === selectedBonusScore && + existingBonus.level >= selectedBonus.level)); + const effectiveAura = existingAuraIsStronger ? existingAura! : selectedAura; + const nextBonus = existingAuraIsStronger ? existingBonus : selectedBonus; + const physicalBonusDelta = + nextBonus.physicalBonusPercent - existingBonus.physicalBonusPercent; + const elementalDelta = getElementalDelta( + nextBonus.elementalDamage, + existingBonus.elementalDamage + ); + const poisonDelta = getPoisonDelta( + nextBonus.poisonDamage, + existingBonus.poisonDamage + ); + const previousTotalBonus = profile.breakdown.physicalBonusPercent.total; + const nextTotalBonus = previousTotalBonus + physicalBonusDelta; + const previousMultiplier = 1 + previousTotalBonus / 100; + const nextMultiplier = 1 + nextTotalBonus / 100; + const sequenceHitCount = getProfileSequenceHitCount(profile); + const auraDeltaComponents = DAMAGE_ELEMENTS.flatMap((element) => { + const damage = elementalDelta[element]; + if (!hasRange(damage)) { + return []; + } + const sequenceDamage = + sequenceHitCount > 1 ? scaleRange(damage, sequenceHitCount) : damage; + + return [ + { + id: `selected-aura:${auraOption.id}:${numericLevel}:${selectedAura.carrier}:${element}`, + label: existingAura + ? `${auraOption.name} ${element} delta` + : `${auraOption.name} ${element}${ + sequenceHitCount > 1 ? ` (${sequenceHitCount} hits)` : "" + }`, + source: "aura" as const, + damageType: element, + timing: "instant" as const, + damage: sequenceDamage, + sourceRefs: [ + { + table: "Skills.txt", + row: auraOption.name, + columns: ["aurastat*", "aurastatcalc*", "passivestat*", "passivecalc*"], + }, + ], + notes: [], + }, + ]; + }); + const poisonDeltaComponents = poisonDelta + ? [ + { + id: `selected-aura:${auraOption.id}:${numericLevel}:${selectedAura.carrier}:poison`, + label: existingAura + ? `${auraOption.name} poison delta` + : `${auraOption.name} poison${ + sequenceHitCount > 1 ? ` (${sequenceHitCount} hits)` : "" + }`, + source: "aura" as const, + damageType: "poison" as const, + timing: "over_time" as const, + damage: + sequenceHitCount > 1 + ? scaleRange(poisonDelta.damage, sequenceHitCount) + : poisonDelta.damage, + poisonDamage: { + total: + sequenceHitCount > 1 + ? poisonDelta.total * sequenceHitCount + : poisonDelta.total, + durationSeconds: poisonDelta.durationSeconds, + }, + sourceRefs: [ + { + table: "Skills.txt", + row: auraOption.name, + columns: [ + "aurastat*", + "aurastatcalc*", + "EType", + "EMin", + "EMax", + "EDmgSymPerCalc", + "ELen", + ], + }, + ], + notes: [], + }, + ] + : []; + const damageComponents = [ + ...rescalePhysicalComponents( + profile.damageComponents, + previousMultiplier, + nextMultiplier + ), + ...auraDeltaComponents, + ...poisonDeltaComponents, + ].filter((component) => hasRange(component.damage)); + const summary = summaryFieldsFromComponents(damageComponents); + + return { + ...profile, + key: `${profile.key}::aura:${auraOption.id}:${numericLevel}:${selectedAura.carrier}`, + playerAuraId: auraOption.id, + playerAuraCarrier: selectedAura.carrier, + playerAuraLevel: numericLevel, + selectedPlayerAura: { + name: auraOption.name, + level: numericLevel, + carrier: selectedAura.carrier, + }, + activeAuras: replaceAuraSummary(profile.activeAuras, effectiveAura), + damageComponents, + ...summary, + breakdown: { + ...profile.breakdown, + elementalDamage: summary.totalElementalDamage, + poisonDamage: summary.totalPoisonDamage, + physicalBonusPercent: { + ...profile.breakdown.physicalBonusPercent, + activeAuras: Number( + ( + profile.breakdown.physicalBonusPercent.activeAuras + + physicalBonusDelta + ).toFixed(1) + ), + total: Number(nextTotalBonus.toFixed(1)), + }, + }, + notes, + }; +} + +function applyTransformationToProfile( + profile: DamageProfile, + transformationOption: DamageTransformationOption | null, + level: string | null +): DamageProfile { + const transformationBonus = getTransformationBonus( + transformationOption, + level + ); + + if (!transformationOption || transformationOption.id === "none") { + return profile; + } + + const numericLevel = Number(level); + + if (profile.skillDamageMode === "spell") { + const note = + "Selected transformation is recorded for skill eligibility but does not add physical damage to direct spell profiles."; + return { + ...profile, + key: `${profile.key}::${transformationOption.id}:${numericLevel}`, + transformationId: `${transformationOption.id}:${numericLevel}`, + selectedTransformation: { + name: transformationOption.name, + level: numericLevel, + }, + notes: profile.notes.includes(note) ? profile.notes : [...profile.notes, note], + }; + } + + const previousTotalBonus = profile.breakdown.physicalBonusPercent.total; + const nextTotalBonus = previousTotalBonus + transformationBonus; + const previousMultiplier = 1 + previousTotalBonus / 100; + const nextMultiplier = 1 + nextTotalBonus / 100; + const damageComponents = rescalePhysicalComponents( + profile.damageComponents, + previousMultiplier, + nextMultiplier + ); + const summary = summaryFieldsFromComponents(damageComponents); + + return { + ...profile, + key: `${profile.key}::${transformationOption.id}:${numericLevel}`, + transformationId: `${transformationOption.id}:${numericLevel}`, + selectedTransformation: { + name: transformationOption.name, + level: numericLevel, + }, + damageComponents, + ...summary, + breakdown: { + ...profile.breakdown, + elementalDamage: summary.totalElementalDamage, + poisonDamage: summary.totalPoisonDamage, + physicalBonusPercent: { + ...profile.breakdown.physicalBonusPercent, + transformation: transformationBonus, + total: Number(nextTotalBonus.toFixed(1)), + }, + }, + }; +} + +function StatLine({ + label, + value, + color = STAT_COLORS.zeroValue, + isLast = false, +}: { + label: string; + value: string; + color?: string; + isLast?: boolean; +}) { + return ( + + + {label} + + + {value} + + + ); +} + +function formatComponentEvidence( + component: DamageProfile["damageComponents"][number] +) { + const sourceRef = component.sourceRefs?.[0]; + if (!sourceRef) { + return component.timing === "over_time" ? "over time" : "instant"; + } + + const row = sourceRef.row ? `:${sourceRef.row}` : ""; + const columns = sourceRef.columns.slice(0, 3).join(", "); + const columnSuffix = + sourceRef.columns.length > 3 ? `${columns}, ...` : columns; + + return `${component.timing === "over_time" ? "over time" : "instant"} - ${ + sourceRef.table + }${row}${columnSuffix ? ` - ${columnSuffix}` : ""}`; +} + +export function DamageCalculatorSection({ + damageCalculation, + variant = "full", + fullCalculatorUrl, + onOpenFullCalculator, +}: DamageCalculatorSectionProps) { + const isCompact = variant === "compact"; + const [weaponId, setWeaponId] = useState(null); + const [skillId, setSkillId] = useState(null); + const [auraRows, setAuraRows] = useState(() => [ + createAuraSelectionRow(), + ]); + const [transformationId, setTransformationId] = useState(null); + const [transformationLevel, setTransformationLevel] = useState(null); + const [notesExpanded, setNotesExpanded] = useState(false); + + useEffect(() => { + const defaultAuraId = + damageCalculation?.defaultSelection?.playerAuraId ?? null; + const defaultAura = damageCalculation?.playerAuraOptions.find( + (option) => option.id === defaultAuraId + ); + + setWeaponId(damageCalculation?.defaultSelection?.weaponId ?? null); + setSkillId(damageCalculation?.defaultSelection?.skillId ?? null); + setAuraRows( + normalizeAuraSelectionRows( + defaultAuraId && defaultAuraId !== "none" + ? [ + createAuraSelectionRow({ + auraId: defaultAuraId, + isParty: + damageCalculation?.defaultSelection?.playerAuraCarrier === + "party", + level: String( + damageCalculation?.defaultSelection?.playerAuraLevel ?? + defaultAura?.level ?? + defaultAura?.levelOptions[0] ?? + 1 + ), + }), + ] + : [], + damageCalculation?.playerAuraOptions ?? [] + ) + ); + + if (!damageCalculation) { + setTransformationId(null); + setTransformationLevel(null); + return; + } + + const parsedTransformation = parseTransformationId( + damageCalculation.defaultSelection?.transformationId + ); + const transformationOption = damageCalculation.transformationOptions.find( + (option) => option.id === parsedTransformation.id + ); + + setTransformationId(parsedTransformation.id); + setTransformationLevel( + parsedTransformation.id === "none" + ? "0" + : parsedTransformation.level ?? + String( + transformationOption?.level ?? + transformationOption?.levelOptions[0] ?? + 1 + ) + ); + }, [damageCalculation]); + + const selectedTransformationProfileId = useMemo(() => { + if (!transformationId || transformationId === "none") { + return "none"; + } + + if (!transformationLevel) { + return null; + } + + return `${transformationId}:${transformationLevel}`; + }, [transformationId, transformationLevel]); + + const selectedTransformationOption = useMemo(() => { + if (!damageCalculation || !transformationId) { + return null; + } + + return ( + damageCalculation.transformationOptions.find( + (option) => option.id === transformationId + ) ?? null + ); + }, [damageCalculation, transformationId]); + + const selectedSkillOption = useMemo(() => { + if (!damageCalculation || !skillId) { + return null; + } + + return ( + damageCalculation.skillOptions.find((option) => option.id === skillId) ?? + null + ); + }, [damageCalculation, skillId]); + + const availableWeaponOptions = useMemo(() => { + if (!damageCalculation) { + return []; + } + + if (!skillId) { + return damageCalculation.weaponOptions; + } + + const supportedWeaponIds = new Set( + damageCalculation.profiles + .filter( + (profile) => + profile.skillId === skillId && + profile.playerAuraId === "none" && + profile.playerAuraCarrier === "self" && + profile.transformationId === "none" + ) + .map((profile) => profile.weaponId) + ); + + return damageCalculation.weaponOptions.filter((weapon) => + supportedWeaponIds.has(weapon.id) + ); + }, [damageCalculation, skillId]); + + useEffect(() => { + if (availableWeaponOptions.length === 0) { + if (weaponId !== null) { + setWeaponId(null); + } + return; + } + + if (!weaponId || !availableWeaponOptions.some((weapon) => weapon.id === weaponId)) { + setWeaponId(availableWeaponOptions[0].id); + } + }, [availableWeaponOptions, weaponId]); + + const sequenceWeaponOptions = useMemo( + () => + availableWeaponOptions.filter( + (weapon) => (weapon.sequenceHits?.length ?? 0) >= 2 + ), + [availableWeaponOptions] + ); + const hasSequenceWeaponControls = sequenceWeaponOptions.length > 0; + const requiresSequenceWeaponControls = + hasSequenceWeaponControls && + availableWeaponOptions.length === sequenceWeaponOptions.length; + const selectedWeaponOption = useMemo( + () => + availableWeaponOptions.find((weapon) => weapon.id === weaponId) ?? null, + [availableWeaponOptions, weaponId] + ); + const selectedSequenceWeaponOption = + selectedWeaponOption?.sequenceHits?.length ? selectedWeaponOption : null; + const nonSequenceWeaponOptions = useMemo( + () => + availableWeaponOptions.filter( + (weapon) => !weapon.sequenceHits || weapon.sequenceHits.length === 0 + ), + [availableWeaponOptions] + ); + const primaryWeaponValue = + hasSequenceWeaponControls && selectedSequenceWeaponOption + ? selectedSequenceWeaponOption.sequenceHits?.[0]?.weaponId ?? + selectedSequenceWeaponOption.id + : weaponId; + const pairableSequenceWeaponOptions = useMemo(() => { + if (!primaryWeaponValue) { + return requiresSequenceWeaponControls ? sequenceWeaponOptions : []; + } + + if (requiresSequenceWeaponControls) { + return sequenceWeaponOptions; + } + + return sequenceWeaponOptions.filter((weapon) => + weapon.sequenceHits?.some((hit) => hit.weaponId === primaryWeaponValue) + ); + }, [ + primaryWeaponValue, + requiresSequenceWeaponControls, + sequenceWeaponOptions, + ]); + const secondaryWeaponValue = selectedSequenceWeaponOption?.id ?? "none"; + const secondaryWeaponDisabled = + !requiresSequenceWeaponControls && pairableSequenceWeaponOptions.length === 0; + + const selectedSkillAllowedTransformationIds = useMemo( + () => selectedSkillOption?.allowedTransformationIds ?? [], + [selectedSkillOption] + ); + const selectedSkillRequiresTransformation = + selectedSkillAllowedTransformationIds.length > 0; + const selectedSkillCanUseTransformation = + selectedSkillOption?.canUseTransformation ?? + (selectedSkillOption?.name === "Basic Attack" || + selectedSkillRequiresTransformation); + const selectedSkillDisallowsTransformation = Boolean( + selectedSkillOption && !selectedSkillCanUseTransformation + ); + + const availableTransformationOptions = useMemo(() => { + if (!damageCalculation) { + return []; + } + + if (selectedSkillDisallowsTransformation) { + return damageCalculation.transformationOptions.filter( + (option) => option.id === "none" + ); + } + + if (!selectedSkillRequiresTransformation) { + return damageCalculation.transformationOptions; + } + + return damageCalculation.transformationOptions.filter((option) => + selectedSkillAllowedTransformationIds.includes(option.id) + ); + }, [ + damageCalculation, + selectedSkillAllowedTransformationIds, + selectedSkillDisallowsTransformation, + selectedSkillRequiresTransformation, + ]); + + const compactRequiredTransformationOption = useMemo(() => { + if (!isCompact || !damageCalculation || !selectedSkillRequiresTransformation) { + return null; + } + + return ( + damageCalculation.transformationOptions.find((option) => + selectedSkillAllowedTransformationIds.includes(option.id) + ) ?? null + ); + }, [ + damageCalculation, + isCompact, + selectedSkillAllowedTransformationIds, + selectedSkillRequiresTransformation, + ]); + + const effectiveTransformationOption = selectedSkillDisallowsTransformation + ? null + : isCompact + ? compactRequiredTransformationOption + : selectedTransformationOption; + const effectiveTransformationLevel = selectedSkillDisallowsTransformation + ? "0" + : isCompact + ? compactRequiredTransformationOption + ? String( + compactRequiredTransformationOption.level || + compactRequiredTransformationOption.levelOptions[0] || + 1 + ) + : "0" + : transformationLevel; + const transformationSelectValue = selectedSkillDisallowsTransformation + ? "none" + : transformationId; + const transformationLevelSelectValue = selectedSkillDisallowsTransformation + ? "0" + : transformationLevel; + + const auraOptionById = useMemo( + () => + new Map( + damageCalculation?.playerAuraOptions.map((auraOption) => [ + auraOption.id, + auraOption, + ]) ?? [] + ), + [damageCalculation] + ); + + const selectedAuraRows = useMemo( + () => + auraRows.flatMap((row) => { + const auraOption = auraOptionById.get(row.auraId); + + return auraOption && auraOption.id !== "none" + ? [{ row, auraOption }] + : []; + }), + [auraOptionById, auraRows] + ); + + useEffect(() => { + if (!damageCalculation || !selectedSkillOption) { + return; + } + + if (selectedSkillRequiresTransformation) { + const nextTransformationId = + selectedSkillAllowedTransformationIds.includes(transformationId || "") + ? transformationId + : selectedSkillAllowedTransformationIds[0]; + const transformationOption = damageCalculation.transformationOptions.find( + (option) => option.id === nextTransformationId + ); + + if (nextTransformationId && nextTransformationId !== transformationId) { + setTransformationId(nextTransformationId); + } + + if ( + nextTransformationId && + (!transformationLevel || transformationLevel === "0") + ) { + setTransformationLevel( + String( + transformationOption?.level ?? + transformationOption?.levelOptions[0] ?? + 1 + ) + ); + } + + return; + } + + if (selectedSkillDisallowsTransformation) { + setTransformationId("none"); + setTransformationLevel("0"); + } + }, [ + damageCalculation, + selectedSkillAllowedTransformationIds, + selectedSkillDisallowsTransformation, + selectedSkillOption, + selectedSkillRequiresTransformation, + transformationId, + transformationLevel, + ]); + + const updateAuraRows = ( + updater: (currentRows: AuraSelectionRow[]) => AuraSelectionRow[] + ) => { + setAuraRows((currentRows) => + normalizeAuraSelectionRows( + updater(currentRows), + damageCalculation?.playerAuraOptions ?? [] + ) + ); + }; + + const handlePlayerAuraChange = (rowId: string, value: string | null) => { + updateAuraRows((currentRows) => + currentRows.map((row) => { + if (row.rowId !== rowId) { + return row; + } + + const auraId = value || "none"; + const auraOption = auraOptionById.get(auraId); + + if (!auraOption || auraOption.id === "none") { + return { + ...row, + auraId: "none", + level: "0", + isParty: false, + }; + } + + return { + ...row, + auraId, + level: getAuraDefaultLevel(auraOption), + }; + }) + ); + }; + + const handlePlayerAuraLevelChange = (rowId: string, value: string | null) => { + updateAuraRows((currentRows) => + currentRows.map((row) => + row.rowId === rowId ? { ...row, level: value || "0" } : row + ) + ); + }; + + const handlePlayerAuraPartyChange = (rowId: string, checked: boolean) => { + updateAuraRows((currentRows) => + currentRows.map((row) => + row.rowId === rowId ? { ...row, isParty: checked } : row + ) + ); + }; + + const handleTransformationChange = (value: string | null) => { + setTransformationId(value); + + if (!value || value === "none") { + setTransformationLevel("0"); + return; + } + + const transformationOption = damageCalculation?.transformationOptions.find( + (option) => option.id === value + ); + + setTransformationLevel( + String( + transformationOption?.level ?? + transformationOption?.levelOptions[0] ?? + 1 + ) + ); + }; + + const handlePrimaryWeaponChange = (value: string | null) => { + if (!value) { + return; + } + + if (requiresSequenceWeaponControls) { + setWeaponId(value); + return; + } + + if (selectedSequenceWeaponOption) { + const matchingSequence = sequenceWeaponOptions.find((weapon) => + weapon.sequenceHits?.some((hit) => hit.weaponId === value) + ); + + setWeaponId(matchingSequence?.id ?? value); + return; + } + + setWeaponId(value); + }; + + const handleSecondaryWeaponChange = (value: string | null) => { + if (requiresSequenceWeaponControls) { + if (value) { + setWeaponId(value); + } + return; + } + + if (!value || value === "none") { + setWeaponId(primaryWeaponValue); + return; + } + + setWeaponId(value); + }; + + const selectedProfile = useMemo(() => { + if ( + !damageCalculation || + !weaponId || + !skillId || + (!isCompact && !selectedTransformationProfileId) + ) { + return null; + } + + const baseProfile = damageCalculation.profiles.find( + (profile) => + profile.weaponId === weaponId && + profile.skillId === skillId && + profile.playerAuraId === "none" && + profile.playerAuraCarrier === "self" && + profile.transformationId === "none" + ); + + if (!baseProfile) { + return null; + } + + const normalizedBaseProfile = normalizeDamageProfile(baseProfile); + const effectiveAuraRows = isCompact ? [] : selectedAuraRows; + const precomputedAuraProfileIndex = effectiveAuraRows.findIndex( + ({ row, auraOption }) => { + const auraAppliesAsParty = + row.isParty || normalizedBaseProfile.skillDamageMode === "summon"; + const selectedBonus = getAuraLevelBonus( + auraOption, + row.level, + auraAppliesAsParty + ); + + return selectedBonus.skillLevelBonus > 0 || Boolean(selectedBonus.poisonDamage); + } + ); + const precomputedAuraProfileRow = + precomputedAuraProfileIndex >= 0 + ? effectiveAuraRows[precomputedAuraProfileIndex] + : undefined; + const precomputedAuraProfile = precomputedAuraProfileRow + ? findPrecomputedAuraProfile( + damageCalculation, + weaponId, + skillId, + precomputedAuraProfileRow.auraOption, + precomputedAuraProfileRow.row.isParty || + normalizedBaseProfile.skillDamageMode === "summon", + precomputedAuraProfileRow.row.level + ) + : null; + const auraBaseProfile = precomputedAuraProfile + ? normalizeDamageProfile(precomputedAuraProfile) + : normalizedBaseProfile; + const clientAppliedAuraRows = precomputedAuraProfile + ? effectiveAuraRows.filter( + (_, index) => index !== precomputedAuraProfileIndex + ) + : effectiveAuraRows; + const auraAdjustedProfile = clientAppliedAuraRows.reduce( + (profile, { row, auraOption }) => + applyAuraToProfile(profile, auraOption, row.isParty, row.level), + auraBaseProfile + ); + + return normalizeDamageProfile( + applyTransformationToProfile( + auraAdjustedProfile, + effectiveTransformationOption, + effectiveTransformationLevel + ) + ); + }, [ + damageCalculation, + isCompact, + weaponId, + skillId, + selectedAuraRows, + selectedTransformationProfileId, + effectiveTransformationOption, + effectiveTransformationLevel, + ]); + + const skillSelectOptions = useMemo( + () => + damageCalculation?.skillOptions.map((skill) => { + const selectedSkillLevel = + skill.id === skillId && selectedProfile + ? selectedProfile.skillLevel + : skill.level; + + return { + value: skill.id, + label: + skill.name === "Basic Attack" + ? "Basic Attack" + : `${skill.name} (${ + skill.damageMode === "spell" + ? "spell " + : skill.damageMode === "summon" + ? "summon " + : "" + }lvl ${selectedSkillLevel})`, + }; + }) ?? [], + [damageCalculation, selectedProfile, skillId] + ); + + const skillSelect = ( + ({ + value: weapon.id, + label: getSequenceWeaponSelectLabel(weapon, 0), + })) + : nonSequenceWeaponOptions.map((weapon) => ({ + value: weapon.id, + label: getWeaponOptionSelectLabel(weapon), + })) + } + allowDeselect={false} + /> + ({ + value: weapon.id, + label: getWeaponOptionSelectLabel(weapon), + }))} + allowDeselect={false} + /> + ); + const fullCalculatorButton = fullCalculatorUrl ? ( + + ) : null; + + return ( + + + Damage Calculator + + + {!damageCalculation ? ( + + + Damage data is unavailable for this character. + + {isCompact ? fullCalculatorButton : null} + + ) : isCompact ? ( + + + {skillSelect} + {weaponSelect} + + + {selectedProfile ? ( + + +
+ + {getCombinedDamageLabel(selectedProfile)} + + + {formatRange(selectedProfile.damageTotals.combinedDamage)} + + + Avg{" "} + {selectedProfile.damageTotals.averageCombinedDamage.toLocaleString()} + + {getDamageScopeCountLabel(selectedProfile) ? ( + + {getDamageScopeCountLabel(selectedProfile)} + + ) : null} +
+ {fullCalculatorButton} +
+
+ ) : ( + + + No profile matched the selected weapon and skill. + + {fullCalculatorButton} + + )} +
+ ) : ( + + + {skillSelect} + {weaponSelect} + + ({ + value: String(level), + label: level === 0 ? "N/A" : String(level), + })) ?? [] + } + disabled={ + !transformationId || + transformationId === "none" || + selectedSkillDisallowsTransformation + } + allowDeselect={false} + /> + + + + + + Selected Auras + + Selecting an aura adds another row; choose No aura to remove one. + + + + {auraRows.map((row, index) => { + const auraOption = auraOptionById.get(row.auraId) ?? null; + const auraIsSelected = Boolean( + auraOption && auraOption.id !== "none" + ); + + return ( + + + handlePlayerAuraLevelChange(row.rowId, value) + } + data={ + auraOption?.levelOptions.map((level) => ({ + value: String(level), + label: level === 0 ? "N/A" : String(level), + })) ?? [] + } + disabled={!auraIsSelected} + allowDeselect={false} + /> + + + handlePlayerAuraPartyChange( + row.rowId, + event.currentTarget.checked + ) + } + disabled={!auraIsSelected} + mt={{ base: 0, sm: 28 }} + /> + + ); + })} + + + + {selectedProfile ? ( + <> + + + + {getCombinedDamageLabel(selectedProfile)} + + + {formatRange(selectedProfile.damageTotals.combinedDamage)} + + + Avg{" "} + {selectedProfile.damageTotals.averageCombinedDamage.toLocaleString()} + + {getDamageScopeCountLabel(selectedProfile) ? ( + + {getDamageScopeCountLabel(selectedProfile)} + + ) : null} + + + + + Instant Damage + + + {formatRange(selectedProfile.damageTotals.instantDamage)} + + + Avg{" "} + {selectedProfile.damageTotals.averageInstantDamage.toLocaleString()} + + + + + + Physical + + + {formatRange(selectedProfile.totalPhysicalDamage)} + + + +{selectedProfile.breakdown.physicalBonusPercent.total}% total bonus + + + + + + Active Auras + + + {selectedProfile.activeAuras.length > 0 ? ( + selectedProfile.activeAuras.map((aura) => ( + + {aura.name} {aura.level} + {aura.carrier === "party" ? " party" : ""} + + )) + ) : ( + + None + + )} + + + + + + Over-Time + + {selectedProfile.totalPoisonDamage || + selectedProfile.damageTotals.overTimeDamage.max > 0 ? ( + <> + + {formatRange(selectedProfile.damageTotals.overTimeDamage)} + + {selectedProfile.totalPoisonDamage ? ( + + poison total{" "} + {selectedProfile.totalPoisonDamage.total.toLocaleString()} over{" "} + {selectedProfile.totalPoisonDamage.durationSeconds}s + + ) : null} + + ) : ( + + None + + )} + + + + + + Damage Components + + + {selectedProfile.damageComponents.length > 0 ? ( + selectedProfile.damageComponents.map((component) => { + const damageTypeColor = getDamageTypeColor( + component.damageType + ); + + return ( + + + + + {component.damageType} + + + {component.source} + + + {component.label} + + + + {formatComponentEvidence(component)} + + + + {formatRange(component.damage)} + + + ); + }) + ) : ( + + No modeled damage components. + + )} + + + + + + + Elemental Damage + + + {(["fire", "cold", "lightning", "magic"] as const).map( + (element, index, elements) => { + const range = + selectedProfile.totalElementalDamage[element]; + const color = getDamageTypeColor(element); + + return ( + + ); + } + )} + + + + + + Physical Breakdown + + + + + + + + + + + + + + + + {!isCompact && + (selectedProfile.notes.length > 0 || + Boolean(selectedProfile.damageScope?.note) || + damageCalculation.notes.length > 0) && ( + <> + + + + + Damage model notes + + + + + + + This calculator is intended to be a close model, not a + perfect guarantee. If you notice a significant + difference from the damage you expect,{" "} + + make a #bug-report + + . + + {selectedProfile.damageScope?.note ? ( + + {selectedProfile.damageScope.note} + + ) : null} + {selectedProfile.notes.map((note) => ( + + {note} + + ))} + {damageCalculation.notes.map((note) => ( + + {note} + + ))} + + + + + )} + + ) : ( + + No profile matched the selected options. + + )} + + )} +
+ ); +} diff --git a/web/src/components/character/StatsSection.tsx b/web/src/components/character/StatsSection.tsx index 338f80f..cc542d8 100644 --- a/web/src/components/character/StatsSection.tsx +++ b/web/src/components/character/StatsSection.tsx @@ -1,34 +1,7 @@ import { ActionIcon, Card, Text, Tooltip } from "@mantine/core"; import { IconInfoCircle } from "@tabler/icons-react"; import type { StatsSectionProps } from "../../types"; - -// Color definitions for consistency -const COLORS = { - life: "rgb(239, 78, 78)", - mana: "rgb(36, 135, 235)", - strength: "rgb(239, 78, 78)", - dexterity: "rgb(49, 180, 56)", - vitality: "rgb(239, 78, 78)", - energy: "rgb(36, 135, 235)", - fire: "rgb(148, 0, 0)", - cold: "rgb(54, 99, 145)", - lightning: "rgb(255, 217, 0)", - poison: "#00991c", - magic: "rgb(255, 140, 0)", - fasterCastRate: "rgb(0, 200, 255)", - fasterHitRecovery: "rgb(190, 80, 255)", - fasterRunWalk: "rgb(80, 255, 80)", - increasedAttackSpeed: "rgb(80, 120, 255)", - crushingBlow: "rgb(255, 140, 0)", - deadlyStrike: "rgb(255, 220, 0)", - openWounds: "rgb(255, 60, 60)", - lifeLeech: "rgb(255, 80, 80)", - manaLeech: "rgb(60, 140, 255)", - magicFind: "rgb(200, 90, 255)", - goldFind: "rgb(255, 230, 80)", - physicalDamageReduction: "#bdbc99", - zeroValue: "rgb(107, 114, 128)" -} as const; +import { STAT_COLORS as COLORS } from "./stat-colors"; interface StatRowProps { label: string; diff --git a/web/src/components/character/index.ts b/web/src/components/character/index.ts index 435fd32..8324e56 100644 --- a/web/src/components/character/index.ts +++ b/web/src/components/character/index.ts @@ -3,3 +3,4 @@ export { EquipmentSection } from "./EquipmentSection"; export { SkillsSection } from "./SkillsSection"; export { StatsSection } from "./StatsSection"; export { LevelProgressChart } from "./LevelProgressChart"; +export { DamageCalculatorSection } from "./DamageCalculatorSection"; diff --git a/web/src/components/character/stat-colors.ts b/web/src/components/character/stat-colors.ts new file mode 100644 index 0000000..2d1d792 --- /dev/null +++ b/web/src/components/character/stat-colors.ts @@ -0,0 +1,33 @@ +import { THEME_COLORS } from "../../theme"; + +const PHYSICAL_DAMAGE_COLOR = "#bdbc99"; +const COMBINED_DAMAGE_COLOR = "#2dd4bf"; + +export const STAT_COLORS = { + life: THEME_COLORS.red, + mana: THEME_COLORS.blue, + strength: THEME_COLORS.red, + dexterity: THEME_COLORS.green, + vitality: THEME_COLORS.red, + energy: THEME_COLORS.blue, + fire: THEME_COLORS.red, + cold: THEME_COLORS.blue, + lightning: THEME_COLORS.yellow, + poison: THEME_COLORS.green, + magic: THEME_COLORS.orange, + combinedDamage: COMBINED_DAMAGE_COLOR, + combinedDamageText: THEME_COLORS.white, + fasterCastRate: THEME_COLORS.cyan, + fasterHitRecovery: THEME_COLORS.grape, + fasterRunWalk: THEME_COLORS.green, + increasedAttackSpeed: THEME_COLORS.blue, + crushingBlow: THEME_COLORS.orange, + deadlyStrike: THEME_COLORS.yellow, + openWounds: THEME_COLORS.red, + lifeLeech: THEME_COLORS.red, + manaLeech: THEME_COLORS.blue, + magicFind: THEME_COLORS.violet, + goldFind: THEME_COLORS.yellow, + physicalDamageReduction: PHYSICAL_DAMAGE_COLOR, + zeroValue: THEME_COLORS.gray, +} as const; diff --git a/web/src/components/layout/NavBar/index.tsx b/web/src/components/layout/NavBar/index.tsx index 02ffc6a..63c7f48 100644 --- a/web/src/components/layout/NavBar/index.tsx +++ b/web/src/components/layout/NavBar/index.tsx @@ -1,4 +1,9 @@ -import { IconAlarm, IconChevronDown, IconDownload } from "@tabler/icons-react"; +import { + IconAlarm, + IconCalculator, + IconChevronDown, + IconDownload, +} from "@tabler/icons-react"; import { GitHubStarsButton } from "../GitHubStarsButton"; import { DiscordOnlineButton } from "../DiscordOnlineButton"; import { @@ -25,6 +30,21 @@ const links = [ { label: "Tools", subLinks: [ + { + link: "/tools/damage-calculator", + label: ( + + + Damage Calculator + + ), + }, { link: "/tools/character-export", label: ( diff --git a/web/src/pages/Account.tsx b/web/src/pages/Account.tsx index eed96fb..b2ac851 100644 --- a/web/src/pages/Account.tsx +++ b/web/src/pages/Account.tsx @@ -17,10 +17,37 @@ import { useMediaQuery } from "@mantine/hooks"; import { Helmet } from "react-helmet"; import { IconUser } from "@tabler/icons-react"; import RelativeTime from "@yaireo/relative-time"; -import type { FullCharacterResponse } from "../types"; +import { + DEFAULT_VIEW_SEASON, + GAME_MODES, + type FullCharacterResponse, +} from "../types"; const relativeTime = new RelativeTime(); +function getCharacterHref(char: FullCharacterResponse) { + const name = char.character?.name; + if (!name) { + return "/builds"; + } + + const params = new URLSearchParams(); + const isHardcore = char.character.status?.is_hardcore; + const season = char.character.season; + + if (isHardcore) { + params.set("gameMode", GAME_MODES.HARDCORE); + } + if (season && season !== DEFAULT_VIEW_SEASON) { + params.set("season", String(season)); + } + + const queryString = params.toString(); + const path = `/builds/character/${encodeURIComponent(name)}`; + + return queryString ? `${path}?${queryString}` : path; +} + export default function Account() { const { accountName } = useParams<{ accountName: string }>(); const [modeFilter, setModeFilter] = useState("all"); @@ -139,7 +166,7 @@ export default function Account() { withBorder padding="lg" component="a" - href={`/builds/character/${char.character.name}`} + href={getCharacterHref(char)} style={{ cursor: "pointer", textDecoration: "none", diff --git a/web/src/pages/Character.tsx b/web/src/pages/Character.tsx index 516cf36..9207256 100644 --- a/web/src/pages/Character.tsx +++ b/web/src/pages/Character.tsx @@ -1,28 +1,54 @@ import { useState, useMemo } from "react"; import { useParams, useSearchParams } from "react-router-dom"; -import { Container, Skeleton, Grid } from "@mantine/core"; +import { Container, Grid, Skeleton } from "@mantine/core"; import { useQuery } from "@tanstack/react-query"; import { useMediaQuery } from "@mantine/hooks"; import { Helmet } from "react-helmet"; import { charactersAPI } from "../api"; import { CharacterHeader, + DamageCalculatorSection, EquipmentSection, SkillsSection, StatsSection, LevelProgressChart, } from "../components/character"; -import type { PlayerToggle, SkillsView } from "../types"; +import { + DEFAULT_VIEW_SEASON, + GAME_MODES, + type GameMode, + type PlayerToggle, + type SkillsView, +} from "../types"; interface NavContext { list: string[]; currentIndex: number; } +function getGameMode(value: string | null): GameMode { + return value === GAME_MODES.HARDCORE + ? GAME_MODES.HARDCORE + : GAME_MODES.SOFTCORE; +} + +function getSeason(value: string | null): number | undefined { + if (!value) { + return undefined; + } + + const parsed = Number(value); + return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined; +} + export default function Character() { const { name } = useParams<{ name: string }>(); const [searchParams] = useSearchParams(); const characterName = name; + const requestedGameMode = getGameMode( + searchParams.get("gameMode") ?? searchParams.get("mode") + ); + const requestedSeason = getSeason(searchParams.get("season")); const isMobile = useMediaQuery("(max-width: 767px)"); const [playerToggle, setPlayerToggle] = useState("player"); const [skillsView, setSkillsView] = useState("text"); @@ -57,12 +83,13 @@ export default function Character() { }, [characterName, navId]); const charQuery = useQuery({ - queryKey: ["character", characterName], + queryKey: ["character", characterName, requestedGameMode, requestedSeason], queryFn: async () => { try { const data = await charactersAPI.getCharacter( characterName || "", - "softcore" + requestedGameMode, + requestedSeason ); if (!data) { setDidError(true); @@ -79,12 +106,18 @@ export default function Character() { // Fetch snapshot list for dropdown const snapshotsListQuery = useQuery({ - queryKey: ["character-snapshots", characterName], + queryKey: [ + "character-snapshots", + characterName, + requestedGameMode, + requestedSeason, + ], queryFn: async () => { try { return await charactersAPI.getCharacterSnapshots( characterName || "", - "softcore" + requestedGameMode, + requestedSeason ); } catch { // No snapshots yet, return empty array @@ -113,6 +146,28 @@ export default function Character() { const displayData = selectedSnapshot ? snapshotDataQuery.data : charQuery.data; + const damageCalculatorGameMode: GameMode = displayData?.character?.status + ?.is_hardcore + ? GAME_MODES.HARDCORE + : GAME_MODES.SOFTCORE; + const damageCalculatorSeason = + displayData?.character?.season ?? DEFAULT_VIEW_SEASON; + const damageCalculatorUrl = useMemo(() => { + if (!displayData?.character?.name) { + return "/tools/damage-calculator"; + } + + const params = new URLSearchParams({ + character: displayData.character.name, + mode: damageCalculatorGameMode, + }); + + if (damageCalculatorSeason !== DEFAULT_VIEW_SEASON) { + params.set("season", String(damageCalculatorSeason)); + } + + return `/tools/damage-calculator?${params.toString()}`; + }, [damageCalculatorGameMode, damageCalculatorSeason, displayData]); return ( <> @@ -176,6 +231,14 @@ export default function Character() { /> + + + + 0 ? parsed : DEFAULT_VIEW_SEASON; +} + +const BUG_REPORT_CHANNEL_URL = + "https://discordapp.com/channels/1311407302149931128/1311407430122475580"; +const LATEST_SEASON_VALUE = "latest"; +const DAMAGE_CALCULATOR_SEASON_OPTIONS = [ + { value: LATEST_SEASON_VALUE, label: "Latest" }, + ...SEASON_OPTIONS.filter( + (option) => option.value !== String(DEFAULT_VIEW_SEASON) + ), +]; + +export default function DamageCalculator() { + const [searchParams, setSearchParams] = useSearchParams(); + const queryCharacterName = (searchParams.get("character") || "").trim(); + const queryGameMode = getGameMode(searchParams.get("mode")); + const querySeason = searchParams.has("season") + ? getSeason(searchParams.get("season")) + : undefined; + const normalizedQuerySeason = + querySeason === DEFAULT_VIEW_SEASON ? undefined : querySeason; + const querySeasonKey = normalizedQuerySeason ?? LATEST_SEASON_VALUE; + + const [characterName, setCharacterName] = useState(queryCharacterName); + const [gameMode, setGameMode] = useState(queryGameMode); + const [season, setSeason] = useState(String(querySeasonKey)); + + useEffect(() => { + setCharacterName(queryCharacterName); + setGameMode(queryGameMode); + setSeason(String(querySeasonKey)); + }, [queryCharacterName, queryGameMode, querySeasonKey]); + + const characterQuery = useQuery({ + queryKey: [ + "damage-calculator-character", + DAMAGE_CALCULATOR_PAYLOAD_VERSION, + queryCharacterName, + queryGameMode, + querySeasonKey, + ], + queryFn: () => + charactersAPI.getCharacter( + queryCharacterName, + queryGameMode, + normalizedQuerySeason + ), + enabled: queryCharacterName.length > 0, + staleTime: 0, + retry: false, + }); + + const characterPageUrl = useMemo(() => { + if (!characterQuery.data?.character?.name) { + return null; + } + + const loadedMode = characterQuery.data.character.status?.is_hardcore + ? GAME_MODES.HARDCORE + : GAME_MODES.SOFTCORE; + const loadedSeason = characterQuery.data.character.season; + const params = new URLSearchParams(); + + if (loadedMode !== GAME_MODES.SOFTCORE) { + params.set("gameMode", loadedMode); + } + if (loadedSeason && loadedSeason !== DEFAULT_VIEW_SEASON) { + params.set("season", String(loadedSeason)); + } + + const queryString = params.toString(); + const path = `/builds/character/${encodeURIComponent( + characterQuery.data.character.name + )}`; + + return queryString ? `${path}?${queryString}` : path; + }, [characterQuery.data]); + + const handleSubmit = (event: React.FormEvent) => { + event.preventDefault(); + + const trimmedName = characterName.trim(); + if (!trimmedName) { + return; + } + + const nextParams = new URLSearchParams({ character: trimmedName }); + + if (gameMode !== GAME_MODES.SOFTCORE) { + nextParams.set("mode", gameMode); + } + if (season !== LATEST_SEASON_VALUE) { + nextParams.set("season", season); + } + + setSearchParams(nextParams); + }; + + const loadedCharacter = characterQuery.data?.character; + const isLoadingCharacter = + queryCharacterName.length > 0 && characterQuery.isPending; + + return ( + <> + + Damage Calculator - pd2.tools + + + + + + + + + + + + Damage Calculator + + + Load a tracked character and compare modeled damage + components, instant totals, and over-time totals across + weapons, attack skills, player auras, mercenary auras, and + transformations. + + {loadedCharacter ? ( + + + {loadedCharacter.class.name} + + + Level {loadedCharacter.level} + + + {loadedCharacter.status?.is_hardcore ? "HC" : "SC"} + + + ) : null} + + + + +
+ + + setCharacterName(event.currentTarget.value) + } + /> + + setSeason(value || LATEST_SEASON_VALUE) + } + data={DAMAGE_CALCULATOR_SEASON_OPTIONS} + allowDeselect={false} + /> + + +
+ + {characterPageUrl ? ( + + Viewing {loadedCharacter?.name}.{" "} + + Open character page + + + ) : null} +
+
+ + {!queryCharacterName ? ( + } variant="light"> + Enter a character name to load its current equipment, skills, + stats, mercenary, and modeled damage profiles. + + ) : isLoadingCharacter ? ( + + ) : characterQuery.isError || !characterQuery.data ? ( + }> + Character data could not be loaded. Check the character name, + season, and game mode. + + ) : !loadedCharacter ? ( + }> + This character is unavailable from the armory. + + ) : ( + + )} +
+
+ + ); +} diff --git a/web/src/theme.ts b/web/src/theme.ts new file mode 100644 index 0000000..db634f0 --- /dev/null +++ b/web/src/theme.ts @@ -0,0 +1,35 @@ +import { createTheme, type MantineColorsTuple } from "@mantine/core"; + +const dark: MantineColorsTuple = [ + "#C1C2C5", + "#A6A7AB", + "#909296", + "#5C5F66", + "#373A40", + "#2C2E33", + "#25262B", + "#1A1B1E", + "#141517", + "#101113", +]; + +export const customDarkTheme = createTheme({ + colorScheme: "dark", + colors: { + dark, + }, + primaryColor: "blue", +}); + +export const THEME_COLORS = { + red: "var(--mantine-color-red-5)", + blue: "var(--mantine-color-blue-5)", + green: "var(--mantine-color-green-5)", + orange: "var(--mantine-color-orange-5)", + yellow: "var(--mantine-color-yellow-5)", + cyan: "var(--mantine-color-cyan-5)", + grape: "var(--mantine-color-grape-5)", + violet: "var(--mantine-color-violet-5)", + gray: "var(--mantine-color-gray-5)", + white: "var(--mantine-color-white)", +} as const; diff --git a/web/src/types/character.ts b/web/src/types/character.ts index 4dfad6c..7d23d8b 100644 --- a/web/src/types/character.ts +++ b/web/src/types/character.ts @@ -1,3 +1,5 @@ +import type { DamageCalculation } from "./damage"; + export interface ICharacter { name: string; level: number; @@ -45,6 +47,8 @@ export interface FullCharacterResponse { mercenary?: unknown; nullReason?: string; realSkills?: unknown[]; + realStats?: RealStats; + damageCalculation?: DamageCalculation; lastUpdated?: number; accountName?: string; [key: string]: unknown; diff --git a/web/src/types/constants.ts b/web/src/types/constants.ts index 14b45be..a094b62 100644 --- a/web/src/types/constants.ts +++ b/web/src/types/constants.ts @@ -8,7 +8,7 @@ export type GameMode = (typeof GAME_MODES)[keyof typeof GAME_MODES]; // Season configuration export const CURRENT_SEASON = 13; -export const DEFAULT_VIEW_SEASON = 12; +export const DEFAULT_VIEW_SEASON = CURRENT_SEASON; export const EARLIEST_SUPPORTED_SEASON = 11; export const SUPPORTED_SEASONS = Array.from( { length: CURRENT_SEASON - EARLIEST_SUPPORTED_SEASON + 1 }, @@ -24,6 +24,7 @@ export const SHORT_SEASON_OPTIONS = SUPPORTED_SEASONS.map((season) => ({ })); export const SEASON_STORAGE_KEY_SUFFIX = `s${CURRENT_SEASON}`; export const LEVEL_RANGE_COOKIE_KEY = `levelRange_${CURRENT_SEASON}`; +export const DAMAGE_CALCULATOR_PAYLOAD_VERSION = "damage-model-v11"; // Time ranges for statistics export type TimeRange = "1d" | "7d" | "14d" | "1mo" | "3mo" | "all"; diff --git a/web/src/types/damage.ts b/web/src/types/damage.ts new file mode 100644 index 0000000..6c9b33d --- /dev/null +++ b/web/src/types/damage.ts @@ -0,0 +1,229 @@ +export interface DamageRange { + min: number; + max: number; +} + +export interface PoisonDamage { + total: number; + durationSeconds: number; +} + +export interface PoisonDamagePayload extends PoisonDamage { + damage: DamageRange; +} + +export type DamageElement = + | "physical" + | "fire" + | "cold" + | "lightning" + | "magic" + | "poison"; + +export type DamageComponentSource = + | "weapon" + | "item" + | "skill" + | "summon" + | "monster" + | "missile" + | "aura" + | "passive" + | "stat" + | "transformation" + | "unknown"; + +export type DamageComponentTiming = "instant" | "over_time"; + +export interface DamageSourceReference { + table: string; + row?: string; + columns: string[]; + note?: string; +} + +export interface DamageComponent { + id: string; + label: string; + source: DamageComponentSource; + damageType: DamageElement; + timing: DamageComponentTiming; + damage: DamageRange; + baseDamage?: DamageRange; + poisonDamage?: PoisonDamage; + sourceRefs: DamageSourceReference[]; + notes: string[]; +} + +export interface DamageTotals { + instantDamage: DamageRange; + overTimeDamage: DamageRange; + combinedDamage: DamageRange; + averageInstantDamage: number; + averageCombinedDamage: number; + byElement: Partial>; + poisonDamage?: PoisonDamage; +} + +export interface DamageWeaponOption { + id: string; + label: string; + weaponSet: "primary" | "secondary"; + slot: "right" | "left" | "feet" | "summon"; + handMode: + | "one_handed" + | "two_handed" + | "missile" + | "kick" + | "summon" + | "unarmed" + | "dual_wield" + | "dual_throw"; + itemName: string; + baseName: string; + weaponType: string; + sequenceHits?: DamageSequenceHit[]; +} + +export interface DamageSkillOption { + id: string; + name: string; + level: number; + damageMode: "weapon" | "spell" | "summon"; + sourceSkillName?: string; + summonVariant?: string; + canUseTransformation: boolean; + allowedTransformationIds: string[]; +} + +export interface DamageAuraOption { + id: string; + name: string; + level: number; + levelOptions: number[]; + levelBonuses: DamageAuraLevelBonus[]; + selfLevelBonuses: DamageAuraLevelBonus[]; + partyLevelBonuses: DamageAuraLevelBonus[]; + source: "none" | "character_skill" | "manual"; +} + +export interface DamageAuraLevelBonus { + level: number; + skillLevelBonus: number; + physicalBonusPercent: number; + elementalDamage: Partial, DamageRange>>; + poisonDamage?: PoisonDamagePayload; +} + +export interface DamageTransformationOption { + id: string; + name: string; + level: number; + levelOptions: number[]; + levelBonuses: Array<{ + level: number; + physicalBonusPercent: number; + }>; +} + +export interface ActiveAuraSummary { + name: string; + level: number; + source: + | "player_skill" + | "player_item" + | "mercenary_native" + | "mercenary_item" + | "manual"; + carrier: "self" | "party"; +} + +export interface DamageSequenceHit { + label: string; + weaponId: string; + weaponSet: "primary" | "secondary"; + slot: "right" | "left"; + handMode: "one_handed" | "two_handed" | "missile" | "unarmed"; + itemName: string; +} + +export interface DamageProfileBreakdown { + weaponDamage: DamageRange; + flatPhysicalDamage: DamageRange; + physicalBonusPercent: { + stat: number; + nonWeapon: number; + passive: number; + selectedSkill: number; + selectedSkillSynergy: number; + transformation: number; + activeAuras: number; + total: number; + }; + elementalDamage: Partial, DamageRange>>; + poisonDamage?: PoisonDamage; +} + +export interface DamageProfileScope { + label: string; + count?: number; + countLabel?: string; + note: string; + sourceRefs: DamageSourceReference[]; +} + +export interface DamageProfile { + key: string; + weaponId: string; + skillId: string; + playerAuraId: string; + playerAuraCarrier: "self" | "party"; + playerAuraLevel: number; + transformationId: string; + skillDamageMode: "weapon" | "spell" | "summon"; + skillName: string; + sourceSkillName?: string; + summonVariant?: string; + skillLevel: number; + sequenceHits?: DamageSequenceHit[]; + selectedPlayerAura?: { + name: string; + level: number; + carrier: "self" | "party"; + }; + selectedTransformation?: { + name: string; + level: number; + }; + activeAuras: ActiveAuraSummary[]; + damageScope: DamageProfileScope; + damageComponents: DamageComponent[]; + damageTotals: DamageTotals; + totalPhysicalDamage: DamageRange; + totalElementalDamage: Partial< + Record, DamageRange> + >; + totalPoisonDamage?: PoisonDamage; + totalDamage: DamageRange; + averageHitDamage: number; + breakdown: DamageProfileBreakdown; + notes: string[]; +} + +export interface DamageCalculation { + weaponOptions: DamageWeaponOption[]; + skillOptions: DamageSkillOption[]; + playerAuraOptions: DamageAuraOption[]; + transformationOptions: DamageTransformationOption[]; + alwaysActiveAuras: ActiveAuraSummary[]; + defaultSelection?: { + weaponId: string; + skillId: string; + playerAuraId: string; + playerAuraCarrier: "self" | "party"; + playerAuraLevel: number; + transformationId: string; + }; + profiles: DamageProfile[]; + notes: string[]; +} diff --git a/web/src/types/index.ts b/web/src/types/index.ts index f968ea9..18b61ef 100644 --- a/web/src/types/index.ts +++ b/web/src/types/index.ts @@ -3,3 +3,4 @@ export * from "./economy"; export * from "./statistics"; export * from "./constants"; export * from "./ui"; +export * from "./damage"; diff --git a/web/src/types/ui.ts b/web/src/types/ui.ts index 7d1f9ac..fc3e63b 100644 --- a/web/src/types/ui.ts +++ b/web/src/types/ui.ts @@ -7,6 +7,7 @@ import type { MercenaryInfo, CharacterSnapshotListItem, } from "./character"; +import type { DamageCalculation } from "./damage"; import type { EconomyItem, PriceData } from "./economy"; import type { SkillsView, PlayerToggle } from "./constants"; @@ -47,6 +48,13 @@ export interface SkillsSectionProps { onSkillsViewChange: (value: SkillsView) => void; } +export interface DamageCalculatorSectionProps { + damageCalculation?: DamageCalculation; + variant?: "full" | "compact"; + fullCalculatorUrl?: string; + onOpenFullCalculator?: () => void; +} + // Economy components export interface ItemsTableProps { items: EconomyItem[];