From 1da5e7d1e326d51461ec7ca45f076cc2d844fa37 Mon Sep 17 00:00:00 2001 From: Mat4m0 Date: Fri, 11 Sep 2026 07:09:43 +0200 Subject: [PATCH 1/2] feat(maps): add capture locations and character tracking --- THIRD-PARTY-NOTICES.md | 11 + docs/elite-skills.md | 25 + scripts/import-elite-locations.py | 65 ++ src/main/core/elite-tracking.ts | 61 ++ src/main/tools-ipc.ts | 11 +- src/main/tools-runtime.ts | 11 +- src/preload/preload.tools.cjs | 4 + src/shared/contracts.ts | 8 + src/shared/elite-locations.ts | 933 ++++++++++++++++++++++++ src/shared/elite-skills.ts | 116 +++ tests/release/preload-behaviour.test.ts | 11 + tests/unit/elite-skills.test.ts | 61 ++ 12 files changed, 1314 insertions(+), 3 deletions(-) create mode 100644 docs/elite-skills.md create mode 100644 scripts/import-elite-locations.py create mode 100644 src/main/core/elite-tracking.ts create mode 100644 src/shared/elite-locations.ts create mode 100644 src/shared/elite-skills.ts create mode 100644 tests/unit/elite-skills.test.ts diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 084aaf52..3b905d85 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -152,3 +152,14 @@ GWonMac adds the dark face-button plates and the L4, L5, R4, R5, L, and R label plates needed by Guild Wars' fixed controller atlas. PlayStation is a trademark of Sony Interactive Entertainment Inc.; GWonMac is not affiliated with or endorsed by Sony. + +### Elite capture locations + +The elite capture catalogue is derived from GWToolbox++ +`GWToolboxdll/Widgets/WorldMapWidget_Constants.h` at commit +`baaaf0de574b02008baa57a574625a99009cd5ac`, distributed under the MIT License +reproduced above. Toolbox credits the original locations to **MappingOut +v4.0.0 by Aylee Sedai**. Encounter notes and alternate coordinates are retained. +The import is reproducible with `scripts/import-elite-locations.py` and a +checkout of that exact revision. The importer checks the source hash before +using its reviewed geographic sections. Game names remain ArenaNet material. diff --git a/docs/elite-skills.md b/docs/elite-skills.md new file mode 100644 index 00000000..8b896aee --- /dev/null +++ b/docs/elite-skills.md @@ -0,0 +1,25 @@ +# Elite skills + +Elite skills joins the installed skill catalogue to a pinned GWToolbox++ +capture-location list. The imported list owns boss names, map IDs, alternate +positions, capture regions, and encounter notes. It never authorizes travel. +See [third-party notices](../THIRD-PARTY-NOTICES.md#elite-capture-locations). + +## Data and tracking + +Rebuild the list with `python3 scripts/import-elite-locations.py `. +The importer accepts only the reviewed source hash. Review the geographic +section boundaries before accepting another revision. Location coordinates +are world-map units. Empty coordinates mean no usable boss position; they +must never become a marker at zero or an invented entrance. + +Main stores `elite-tracking.json` beside each account profile's build library. +The existing privacy-safe character key separates characters. Named actions +are validated and serialized before an atomic save. Concurrent actions merge +against current disk state. Tracking records only skill IDs, one active boss, +and the mission-map preference. It does not record learned skills, routes, +character names, or account unlocks. Corrupt documents are quarantined. + +A skill is learned only when the current character's live observation says so. +An absent observation or an ID outside its observed range means unknown. +Account unlocks never imply that the current character learned a skill. diff --git a/scripts/import-elite-locations.py b/scripts/import-elite-locations.py new file mode 100644 index 00000000..3c619a3c --- /dev/null +++ b/scripts/import-elite-locations.py @@ -0,0 +1,65 @@ +"""Rebuild the pinned Toolbox capture catalogue; requires the reviewed checkout.""" +import hashlib +import json +import pathlib +import re +import sys + +ROOT = pathlib.Path(__file__).resolve().parents[1] +SOURCE = pathlib.Path(sys.argv[1]) +COMMIT = 'baaaf0de574b02008baa57a574625a99009cd5ac' +HEADER = SOURCE / 'GWToolboxdll/Widgets/WorldMapWidget_Constants.h' +text = HEADER.read_text() +assert hashlib.sha256(HEADER.read_bytes()).hexdigest() == 'ecf7a506e4b213578b4669c56d310b6ab81d3d4164b93a607102bbf012ba8d5f', 'Review a changed source before importing' + +def enum(name): + source = (SOURCE / f'Dependencies/GWCA/include/GWCA/Constants/{name}.h').read_text() + body = source.split('enum class ', 1)[1].split('{', 1)[1].split('};', 1)[0] + body = re.sub(r'/\*.*?\*/|//[^\n]*', '', body, flags=re.S) + result, number = {}, -1 + for item in body.split(','): + item = item.strip() + if not item: + continue + parts = item.split('=') + key = parts[0].strip() + number = (int(parts[1].strip(), 0) if len(parts) == 2 else number + 1) + result[key] = number + return result + +skills, maps = enum('Skills'), enum('Maps') +string = r'"(?:\\.|[^"\\])*"' +constants = {k: json.loads(v) for k, v in re.findall(r'const char\* (\w+) = (' + string + r');', text)} +pattern = re.compile(r'\{GW::Constants::SkillID::(\w+),\s*(' + string + r'|\w+),\s*GW::Constants::MapID::(\w+),\s*(\{(?:[^{}]|\{[^{}]*\})*\})(?:,\s*(' + string + r'|\w+))?\s*\}') +def literal(value): + return json.loads(value) if value.startswith('"') else constants[value] + +rows = [] +# These boundaries describe this exact, hash-checked source's geographic sections. +# They classify capture region, never the skill's campaign of origin. +region = 'Eye of the North' +for match in pattern.finditer(text): + skill, boss, area, coords, note = match.groups() + if area == 'Issnur_Isles': region = 'Elona' + if area == 'Tsumei_Village_Winds_of_Change__A_Treatys_a_Treaty': region = 'Cantha' + if area == 'Prophets_Path': region = 'Tyria' + if area == 'Rragars_Menagerie_Level_1': region = 'Eye of the North' + if area == 'War_in_Kryta_Divinity_Coast': region = 'Tyria' + boss, note = literal(boss), literal(note) if note else None + points = [[int(x), int(y)] for x, y in re.findall(r'\{\s*(-?\d+),\s*(-?\d+)\s*\}', coords)] + key = f'{skills[skill]}:{maps[area]}:{boss}:{note or ""}' + rows.append(dict(id=hashlib.sha256(key.encode()).hexdigest()[:16], skillId=skills[skill], boss=boss, + mapId=maps[area], region=region, points=points, note=note)) +assert len(rows) == 926, len(rows) +# Exact duplicates are merged, retaining all known alternate points. +unique = {} +for row in rows: + if row['id'] in unique: + existing = unique[row['id']]['points'] + existing.extend(p for p in row['points'] if p not in existing) + else: unique[row['id']] = row +output = '/**\n * Reviewed capture locations from GWToolbox++ ' + COMMIT + '.\n * Derived by scripts/import-elite-locations.py; preserve the third-party notice.\n */\nimport type { EliteLocation } from "./elite-skills.js";\n\nexport const ELITE_LOCATIONS: readonly EliteLocation[] = [\n' +output += ''.join(' ' + json.dumps(row, ensure_ascii=False, separators=(',', ':')) + ',\n' for row in unique.values()) +output += '];\n' +(ROOT / 'src/shared/elite-locations.ts').write_text(output) +print(f'Imported {len(unique)} locations / {len(set(r["skillId"] for r in rows))} skills') diff --git a/src/main/core/elite-tracking.ts b/src/main/core/elite-tracking.ts new file mode 100644 index 00000000..dd64f1ed --- /dev/null +++ b/src/main/core/elite-tracking.ts @@ -0,0 +1,61 @@ +/** + * Saves character capture plans atomically within the owning account profile. + * Serialized actions merge current disk state, so two windows cannot lose a plan. + */ +import { readFile } from "node:fs/promises"; +import { ELITE_LOCATIONS } from "../../shared/elite-locations.js"; +import { + EMPTY_ELITE_TRACKING, changeEliteTracking, parseEliteTracking, + type EliteTracking, type EliteUpdate, +} from "../../shared/elite-skills.js"; +import { isTravelCharacterKey, type TravelCharacterKey } from "../../shared/travel-history.js"; +import { writeAtomicJson } from "./atomic-file.js"; +import { quarantineCorruptDocument } from "./corrupt-document.js"; +import { Mutex } from "./mutex.js"; + +type Document = { formatVersion: 1; characters: Record }; +async function read(path: string): Promise { + let text: string; + try { text = await readFile(path, "utf8"); } catch (error) { + if ((error as NodeJS.ErrnoException).code === "ENOENT") return { formatVersion: 1, characters: {} }; + throw error; + } + try { + const input = JSON.parse(text) as Document; + if (input?.formatVersion !== 1 || typeof input.characters !== "object" || !input.characters + || Array.isArray(input.characters) || Object.keys(input).length !== 2 + || Object.keys(input.characters).length > 64) throw new TypeError("Invalid capture plans"); + const characters: Record = {}; + for (const [key, value] of Object.entries(input.characters)) { + if (!isTravelCharacterKey(key)) throw new TypeError("Invalid character"); + characters[key] = parseEliteTracking(value, ELITE_LOCATIONS); + } + return { formatVersion: 1, characters }; + } catch { + await quarantineCorruptDocument(path); + return { formatVersion: 1, characters: {} }; + } +} +export class EliteTrackingStore { + readonly #locks = new Map(); + #lock(path: string): Mutex { + let lock = this.#locks.get(path); + if (!lock) { lock = new Mutex(); this.#locks.set(path, lock); } + return lock; + } + get(path: string, characterKey: TravelCharacterKey): Promise { + return this.#lock(path).run(async () => (await read(path)).characters[characterKey] ?? EMPTY_ELITE_TRACKING); + } + update(path: string, { characterKey, change }: EliteUpdate): Promise { + return this.#lock(path).run(async () => { + const document = await read(path); + if (!(characterKey in document.characters) && Object.keys(document.characters).length >= 64) { + throw new Error("This profile has reached its character tracking limit"); + } + const next = changeEliteTracking(document.characters[characterKey] ?? EMPTY_ELITE_TRACKING, change, ELITE_LOCATIONS); + document.characters[characterKey] = next; + await writeAtomicJson(path, document); + return next; + }); + } +} diff --git a/src/main/tools-ipc.ts b/src/main/tools-ipc.ts index aa075458..19a664b9 100644 --- a/src/main/tools-ipc.ts +++ b/src/main/tools-ipc.ts @@ -2,6 +2,7 @@ * Owns the optional Tools renderer-to-main channels. Main imports this module * only for a Tools-capable launch, so Core registers no tool implementation. */ +import { parseEliteCharacter, parseEliteUpdate, type EliteTracking, type EliteUpdate } from "../shared/elite-skills.js"; import type { BrowserWindow } from "electron"; import type { ToolsInvokeChannel } from "../shared/contracts.js"; import type { BuildLibrary } from "../shared/builds/library.js"; @@ -39,13 +40,15 @@ export interface ToolsIpcContext extends TradeIpcContext { readonly recovered: boolean; }>; setBuildLibrary(win: BrowserWindow, library: BuildLibrary): Promise; + getEliteTracking(win: BrowserWindow, characterKey: TravelCharacterKey): Promise; + updateEliteTracking(win: BrowserWindow, value: EliteUpdate): Promise; getTravelPreferences(): Promise; setTravelPreferences(update: TravelUserPreferencesUpdate): Promise; getTravelHistory(characterKey: TravelCharacterKey): Promise; recordTravelHistory(characterKey: TravelCharacterKey, mapId: number): Promise; - isFeatureEnabled(feature: "buildLibrary" | "travelPalette" | "tradeChat"): boolean; + isFeatureEnabled(feature: "buildLibrary" | "travelPalette" | "cartography" | "tradeChat"): boolean; runFeature( - feature: "buildLibrary" | "travelPalette", + feature: "buildLibrary" | "travelPalette" | "cartography", label: string, operation: () => Promise, ): Promise; @@ -63,6 +66,10 @@ const one = (parse: (value: unknown) => Input): Parser => (args) = export function registerToolsIpcHandlers(ctx: ToolsIpcContext): void { const handlers = { ...tradeChannelDefinitions(ctx), + eliteTrackingGet: channel(one(parseEliteCharacter), (win, value) => + ctx.runFeature("cartography", "Maps", () => ctx.getEliteTracking(win, value.characterKey))), + eliteTrackingUpdate: channel(one(parseEliteUpdate), (win, value) => + ctx.runFeature("cartography", "Maps", () => ctx.updateEliteTracking(win, value))), buildLibraryGet: channel(nothing, (win) => ctx.runFeature( "buildLibrary", "build library", () => ctx.getBuildLibrary(win), )), diff --git a/src/main/tools-runtime.ts b/src/main/tools-runtime.ts index 22857524..7a4f1876 100644 --- a/src/main/tools-runtime.ts +++ b/src/main/tools-runtime.ts @@ -2,6 +2,8 @@ * Owns every optional main-process Tools implementation for one Tools-capable * launch. Core never imports this module, its stores, or its network client. */ +import { dirname, join } from "node:path"; +import { EliteTrackingStore } from "./core/elite-tracking.js"; import type { BrowserWindow } from "electron"; import type { AppSettings, SettingsResetOutcome } from "../shared/contracts.js"; import { featureActivationRequested } from "../shared/feature-contracts.js"; @@ -30,6 +32,8 @@ export function createToolsRuntime(input: Readonly<{ preferences: PreferencesCoordinator; initialSettings: AppSettings; }>): ToolsRuntime { + const eliteTracking = new EliteTrackingStore(); + const elitePath = (win: BrowserWindow) => join(dirname(input.accounts.buildLibraryPathFor(win)), "elite-tracking.json"); const buildLibraries = new BuildLibraryCoordinator(); const tradeChat = new TradeChatService(); const tradeSaved = new TradeSavedStore(input.paths.tradeSaved); @@ -37,11 +41,12 @@ export function createToolsRuntime(input: Readonly<{ let settings = input.initialSettings; const fileGates = { buildLibrary: new Mutex(), + cartography: new Mutex(), travelPalette: new Mutex(), } as const; let tradeEnabled = featureActivationRequested("tradeChat", settings); const isFeatureEnabled = ( - feature: "buildLibrary" | "travelPalette" | "tradeChat", + feature: "buildLibrary" | "travelPalette" | "tradeChat" | "cartography", ): boolean => featureActivationRequested( feature === "travelPalette" ? "travel" : feature, settings, @@ -60,6 +65,8 @@ export function createToolsRuntime(input: Readonly<{ buildLibraries.get(win, input.accounts.buildLibraryPathFor(win)), setBuildLibrary: (win: BrowserWindow, library) => buildLibraries.set(win, input.accounts.buildLibraryPathFor(win), library), + getEliteTracking: (win, characterKey) => eliteTracking.get(elitePath(win), characterKey), + updateEliteTracking: (win, value) => eliteTracking.update(elitePath(win), value), getTravelPreferences: () => input.preferences.getTravelPreferences(), setTravelPreferences: (update) => input.preferences.updateTravelPreferences(update), getTravelHistory: (characterKey) => travelHistory.get(characterKey), @@ -78,6 +85,7 @@ export function createToolsRuntime(input: Readonly<{ tradeEnabled = nextTradeEnabled; await Promise.all([ fileGates.buildLibrary.settled, + fileGates.cartography.settled, fileGates.travelPalette.settled, ]); }, @@ -88,6 +96,7 @@ export function createToolsRuntime(input: Readonly<{ tradeChat.dispose(); await Promise.all([ fileGates.buildLibrary.settled, + fileGates.cartography.settled, fileGates.travelPalette.settled, ]); }, diff --git a/src/preload/preload.tools.cjs b/src/preload/preload.tools.cjs index 1c1bae11..9b38192a 100644 --- a/src/preload/preload.tools.cjs +++ b/src/preload/preload.tools.cjs @@ -8,6 +8,10 @@ * @param {(channel: string, callback: (value: T) => void) => () => void} listen */ function installToolsApi(api, ipcRenderer, IPC, listen) { +api.eliteTracking = { + get: (value) => ipcRenderer.invoke(IPC.eliteTrackingGet, value), + update: (value) => ipcRenderer.invoke(IPC.eliteTrackingUpdate, value), +}; api.trade = { subscribe: (source) => ipcRenderer.invoke(IPC.tradeSubscribe, source), unsubscribe: () => ipcRenderer.invoke(IPC.tradeUnsubscribe), diff --git a/src/shared/contracts.ts b/src/shared/contracts.ts index aae6b010..cbd61ddb 100644 --- a/src/shared/contracts.ts +++ b/src/shared/contracts.ts @@ -15,6 +15,7 @@ * these boundaries; the sentence a player reads is written in the renderer, * where it can be tested against what is actually shown. */ +import type { EliteTracking, EliteUpdate } from "./elite-skills.js"; import type { DiagnosticSummary, RendererFrameBatch, @@ -1141,6 +1142,8 @@ export const TOOLS_IPC = { traderPriceHistoryGet: "gw:trader:priceHistory:get", travelPreferencesGet: "gw:travelPreferences:get", travelPreferencesSet: "gw:travelPreferences:set", + eliteTrackingGet: "gw:eliteTracking:get", + eliteTrackingUpdate: "gw:eliteTracking:update", travelHistoryGet: "gw:travelHistory:get", travelHistoryRecord: "gw:travelHistory:record", buildLibraryGet: "gw:buildLibrary:get", @@ -1377,6 +1380,10 @@ export interface ToolsNativeApiExtension { get(): Promise; set(value: TravelUserPreferencesUpdate): Promise; }; + eliteTracking: { + get(value: { characterKey: string }): Promise; + update(value: EliteUpdate): Promise; + }; travelHistory: { get(value: { characterKey: string }): Promise; record(value: { characterKey: string; mapId: number }): Promise; @@ -1393,6 +1400,7 @@ const TOOL_NATIVE_NAMESPACE_MAP = { trade: true, travelPreferences: true, travelHistory: true, + eliteTracking: true, buildLibrary: true, } as const satisfies Record; diff --git a/src/shared/elite-locations.ts b/src/shared/elite-locations.ts new file mode 100644 index 00000000..89678b46 --- /dev/null +++ b/src/shared/elite-locations.ts @@ -0,0 +1,933 @@ +/** + * Reviewed capture locations from GWToolbox++ baaaf0de574b02008baa57a574625a99009cd5ac. + * Derived by scripts/import-elite-locations.py; preserve the third-party notice. + */ +import type { EliteLocation } from "./elite-skills.js"; + +export const ELITE_LOCATIONS: readonly EliteLocation[] = [ + {"id":"bf158b4a20ab0f6b","skillId":1465,"boss":"Johon the Oxflinger","mapId":499,"region":"Eye of the North","points":[[6395,2360]],"note":null}, + {"id":"a67e240c79361ea7","skillId":237,"boss":"Elsnil Frigidheart","mapId":499,"region":"Eye of the North","points":[[6382,2207]],"note":null}, + {"id":"bea6ace61ca1f37a","skillId":393,"boss":"Chieftain Windswept","mapId":695,"region":"Eye of the North","points":[[6369,2447]],"note":"Only during \"Service: In Defense of the Eye\" quest."}, + {"id":"7a7c80428442bf9c","skillId":1217,"boss":"Glacial Griffon","mapId":690,"region":"Eye of the North","points":[[5696,1395]],"note":"Only during \"Cold as Ice\" quest."}, + {"id":"4999149cb42381f9","skillId":329,"boss":"Baglorag Grumblesnort","mapId":548,"region":"Eye of the North","points":[[5931,1842]],"note":"Patrols the area around the nearby stones."}, + {"id":"e9e7a3241503a3cc","skillId":1415,"boss":"Fenrir","mapId":548,"region":"Eye of the North","points":[[6055,1999]],"note":null}, + {"id":"2aa1808374fc4547","skillId":335,"boss":"Dvalinn Stonebreaker","mapId":513,"region":"Eye of the North","points":[[5409,1621]],"note":"Only before completing \"In the Service of Revenge\" quest."}, + {"id":"fb40921535962cc8","skillId":329,"boss":"Lann Browsmasher","mapId":513,"region":"Eye of the North","points":[[5467,1531],[5613,1703],[5500,1408]],"note":"Only during \"Nornhood\" quest. In one of the three possible locations."}, + {"id":"4a40fb4b878ffbde","skillId":329,"boss":"Chieftain Ulgrimar","mapId":513,"region":"Eye of the North","points":[[5696,1500]],"note":"Only during \"The Big Unfriendly Jotun\" quest."}, + {"id":"28848283e04f3c4e","skillId":1339,"boss":"Silver Vaettir","mapId":513,"region":"Eye of the North","points":[[5654,1495]],"note":"Only if all conditions are met:\n- Favor of the gods active\n- No other party members\n- \"Light of Deldrimor\" in skillbar\n- \"Lucky Aura\" active\n- \"Birthday Cupcake\" active"}, + {"id":"391977f8f4b2f78f","skillId":354,"boss":"Jormungand","mapId":513,"region":"Eye of the North","points":[[5536,1755]],"note":"Rare spawn."}, + {"id":"1007d20ec397e6cc","skillId":393,"boss":"Koren Wildrunner","mapId":513,"region":"Eye of the North","points":[[5592,1736]],"note":"Patrols around the lake via various routes."}, + {"id":"8143340413a338ff","skillId":813,"boss":"Nulfastu Earthbound","mapId":513,"region":"Eye of the North","points":[[5681,1862]],"note":null}, + {"id":"669cc8eb28cbbf84","skillId":1754,"boss":"Myish, Lady of the Lake","mapId":513,"region":"Eye of the North","points":[[5535,1730]],"note":null}, + {"id":"ccb2de990f7cf991","skillId":126,"boss":"Tanto the Grim","mapId":553,"region":"Eye of the North","points":[[5732,2159]],"note":"Only during \"Haunted\" quest."}, + {"id":"efa454332a1cf452","skillId":1499,"boss":"Facet of Spirit","mapId":553,"region":"Eye of the North","points":[[5717,2159]],"note":"Only during \"The Path to Revelations\" quest."}, + {"id":"eafb0fe6de8b2fce","skillId":372,"boss":"Facet of Destruction","mapId":553,"region":"Eye of the North","points":[[5701,2159]],"note":"Only during \"The Path to Revelations\" quest."}, + {"id":"25aa03f2732b9ce2","skillId":261,"boss":"Facet of Existence","mapId":553,"region":"Eye of the North","points":[[5685,2159]],"note":"Only during \"The Path to Revelations\" quest."}, + {"id":"d4674fdb991ffb34","skillId":86,"boss":"Facet of Death","mapId":553,"region":"Eye of the North","points":[[5669,2159]],"note":"Only during \"The Path to Revelations\" quest."}, + {"id":"bb11400e0a52f938","skillId":82,"boss":"Facet of Illusions","mapId":553,"region":"Eye of the North","points":[[5654,2159]],"note":"Only during \"The Path to Revelations\" quest."}, + {"id":"30226bc3ed2f6364","skillId":451,"boss":"Facet of Creation","mapId":553,"region":"Eye of the North","points":[[5638,2159]],"note":"Only during \"The Path to Revelations\" quest."}, + {"id":"bd2771ba34a37cff","skillId":209,"boss":"Dazehl Brainfreezer","mapId":553,"region":"Eye of the North","points":[[5264,2109]],"note":"Only spawns if the northwestern side of the lake has been cleared of Ice Imps and Frozen Elementals.\nClearing out the cave is not necessary."}, + {"id":"4d5e15fa21185523","skillId":1767,"boss":"Asterius the Mighty","mapId":553,"region":"Eye of the North","points":[[5389,2141]],"note":"Patrols around the southwest section of Varajar Fells."}, + {"id":"08c49d60befecca7","skillId":354,"boss":"Jormungand","mapId":553,"region":"Eye of the North","points":[[5492,2146]],"note":"Rare spawn."}, + {"id":"99440e7a0157dfdd","skillId":1536,"boss":"Taameh the Frigid","mapId":482,"region":"Eye of the North","points":[[6290,1482]],"note":null}, + {"id":"c34026f1e61a005e","skillId":209,"boss":"Lord Glacius the Eternal","mapId":482,"region":"Eye of the North","points":[[6473,1323]],"note":"Can only be encountered if the Stone Summit dwarves at the map location are allowed to complete their ritual and summon him."}, + {"id":"91446c7217524778","skillId":338,"boss":"Tenagg Flametroller","mapId":767,"region":"Eye of the North","points":[[6461,1261]],"note":null}, + {"id":"234b89000f2e55dd","skillId":395,"boss":"Docu Kindleshot","mapId":767,"region":"Eye of the North","points":[[6448,1274]],"note":null}, + {"id":"fd8b538c3b675f1b","skillId":1662,"boss":"Kakei Stormcaller","mapId":767,"region":"Eye of the North","points":[[6435,1265]],"note":null}, + {"id":"039df66148275f66","skillId":338,"boss":"Lissah the Packleader","mapId":482,"region":"Eye of the North","points":[[6442,1596]],"note":null}, + {"id":"102a81d7efcc8f20","skillId":355,"boss":"Krak Flamewhip","mapId":546,"region":"Eye of the North","points":[[5947,1312]],"note":"Only during \"Krak's Cavalry\" quest."}, + {"id":"10da06857f556df7","skillId":1355,"boss":"Avarr the Fallen","mapId":546,"region":"Eye of the North","points":[[5828,897]],"note":null}, + {"id":"8dc57bdce6d4568e","skillId":937,"boss":"Ssissth the Leviathan","mapId":546,"region":"Eye of the North","points":[[6074,899]],"note":"Only before completing \"Prenuptial Disagreement\" quest."}, + {"id":"13ce7383ec171a9a","skillId":226,"boss":"Edielh Shockhunter","mapId":546,"region":"Eye of the North","points":[[6090,899]],"note":"Only after \"Prenuptial Disagreement\" quest."}, + {"id":"4744a1c1868d4cbf","skillId":809,"boss":"Whiteout","mapId":546,"region":"Eye of the North","points":[[5932,920]],"note":null}, + {"id":"e60220c7b64d7d60","skillId":867,"boss":"Elmohr Snowmender","mapId":767,"region":"Eye of the North","points":[[6615,1399]],"note":null}, + {"id":"215a68eee7ad1be1","skillId":1199,"boss":"Petraj the Evasive","mapId":566,"region":"Eye of the North","points":[[4567,2627]],"note":null}, + {"id":"c27b894bec7d3a2f","skillId":942,"boss":"Kaykitt Hidemender","mapId":566,"region":"Eye of the North","points":[[4846,2643]],"note":null}, + {"id":"1a1f1a5f799ff166","skillId":53,"boss":"Wilderm Wrathspew","mapId":566,"region":"Eye of the North","points":[[4888,2495]],"note":null}, + {"id":"93751c1250a3a590","skillId":372,"boss":"Facet of Destruction","mapId":566,"region":"Eye of the North","points":[[4889,2625],[4963,2558],[4703,2608]],"note":"Can spawn in one of the three possible locations."}, + {"id":"ac513be3b77f06b3","skillId":236,"boss":"Drikard the Foggy","mapId":647,"region":"Eye of the North","points":[[7462,1754]],"note":null}, + {"id":"dec1e6eac35a619c","skillId":261,"boss":"Horai Wingshielder","mapId":647,"region":"Eye of the North","points":[[7542,1491]],"note":null}, + {"id":"d1ca061cc3de6ee5","skillId":1406,"boss":"Molotov Rocktail","mapId":647,"region":"Eye of the North","points":[[7512,1608]],"note":null}, + {"id":"94a7679acbae5009","skillId":358,"boss":"Hodat the Tumbler","mapId":647,"region":"Eye of the North","points":[[7771,1593]],"note":"Only after \"Forgotten Relics\" quest."}, + {"id":"0dc15d01cfec7bd1","skillId":1123,"boss":"Chaelse Flameshielder","mapId":649,"region":"Eye of the North","points":[[7237,1762]],"note":"Does not spawn between the completion of \"Against the Charr\" and \"The Dawn of Rebellion\", or between the completion of \"Be Very, Very Quiet...\" and \"Plan A\"."}, + {"id":"04441300f540bf1b","skillId":836,"boss":"Thraexis Thundermaw","mapId":649,"region":"Eye of the North","points":[[7081,1710]],"note":null}, + {"id":"3741c3c0c51c36ee","skillId":395,"boss":"Groknar Weazlewortz","mapId":761,"region":"Eye of the North","points":[[7100,1655]],"note":null}, + {"id":"babe08d6a3cd4fa8","skillId":338,"boss":"Gordam Griefgiver","mapId":761,"region":"Eye of the North","points":[[7203,1723]],"note":null}, + {"id":"1bd490fc51bdcb08","skillId":121,"boss":"Harvest Soulreign","mapId":761,"region":"Eye of the North","points":[[7219,1723]],"note":"Hard to capture since the mission ends shortly after defeating him."}, + {"id":"97479872f648f114","skillId":239,"boss":"Frazar Frostfur","mapId":761,"region":"Eye of the North","points":[[7232,1859]],"note":null}, + {"id":"69ee3da59276ed7e","skillId":1250,"boss":"Fozzy Yeoryios","mapId":651,"region":"Eye of the North","points":[[7656,2205]],"note":null}, + {"id":"ca1368fba259d6c5","skillId":239,"boss":"Spafrod Iceblood","mapId":651,"region":"Eye of the North","points":[[7511,1956]],"note":null}, + {"id":"c075eeeb25dcd958","skillId":884,"boss":"Borrguus Blisterbark","mapId":651,"region":"Eye of the North","points":[[7731,2182]],"note":"Patrols all around the forest"}, + {"id":"8bdbf6ce5c562ca9","skillId":5,"boss":"Anmat the Trickster","mapId":651,"region":"Eye of the North","points":[[7534,1963]],"note":null}, + {"id":"896f3497c87a1b42","skillId":5,"boss":"Anmat the Trickster","mapId":761,"region":"Eye of the North","points":[[7171,1672]],"note":null}, + {"id":"6b2798e0753da403","skillId":808,"boss":"Rend Ragemauler","mapId":651,"region":"Eye of the North","points":[[7704,1906]],"note":"Only during \"The Assassin's Revenge\" quest."}, + {"id":"1aa131ea360bc5b7","skillId":808,"boss":"Vyrrgis the Pestilent","mapId":651,"region":"Eye of the North","points":[[7520,1989]],"note":"Only during \"Single Ugly Grawl Seeks Same for Mindless Destruction in Ascalon\" quest."}, + {"id":"a19b53babaf2e467","skillId":338,"boss":"Gharaz the Glutton","mapId":651,"region":"Eye of the North","points":[[7486,1980]],"note":"Only during \"Forbidden Fruit\" quest."}, + {"id":"618c3789a183c6cc","skillId":126,"boss":"Katye Bloodburner","mapId":651,"region":"Eye of the North","points":[[7484,1956]],"note":null}, + {"id":"d39ad4557df74b38","skillId":889,"boss":"Ignus the Eternal","mapId":651,"region":"Eye of the North","points":[[7742,2201]],"note":"Only during \"The Smell of Titan in the Morning\" quest."}, + {"id":"853d900165e0afcf","skillId":338,"boss":"Shons the Pretender","mapId":651,"region":"Eye of the North","points":[[7630,1913]],"note":null}, + {"id":"7265416abc64eea0","skillId":317,"boss":"Cobleri Arronn","mapId":651,"region":"Eye of the North","points":[[7521,2180]],"note":null}, + {"id":"df2ce5c5a9bb930d","skillId":3427,"boss":"Fureyst Sharpsight","mapId":651,"region":"Eye of the North","points":[[7482,2220]],"note":"Only if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"33b9b3bb5bbc86eb","skillId":3422,"boss":"Fureyst Sharpsight","mapId":651,"region":"Eye of the North","points":[[7508,2220]],"note":"Only if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"647d6f71f34f05f2","skillId":178,"boss":"Hierophant Burntsoul","mapId":763,"region":"Eye of the North","points":[[7501,1936]],"note":null}, + {"id":"31e5005e3328666e","skillId":178,"boss":"Straut Flamebourne","mapId":651,"region":"Eye of the North","points":[[7743,2148]],"note":"Only during \"Fire and Pain\" quest."}, + {"id":"0dfa0f03cf353a3c","skillId":1257,"boss":"Reesou the Wanderer","mapId":572,"region":"Eye of the North","points":[[2015,6372]],"note":null}, + {"id":"aa9a02ddf92eab7e","skillId":1635,"boss":"Pywatt the Swift","mapId":572,"region":"Eye of the North","points":[[1824,6476]],"note":null}, + {"id":"cbe7d8deca2b97aa","skillId":47,"boss":"Kemil the Inept","mapId":572,"region":"Eye of the North","points":[[2070,6562]],"note":null}, + {"id":"d6b0b7580b94e189","skillId":354,"boss":"Alpha Tyrannus","mapId":572,"region":"Eye of the North","points":[[1933,6414]],"note":"Only during \"Norn Catering\" quest."}, + {"id":"49883240e57eb068","skillId":451,"boss":"Facet of Creation","mapId":572,"region":"Eye of the North","points":[[2183,6430]],"note":"Only during \"Cipher of Melandru\" quest.\nKnown spawn locations:\n- Northeast, west of the river\n- Northwest of center, in the patch of dirt surrounded by stones west of Reesou the Wanderer and north of a pond\n- West of center, at the top of the cliff\n- Northwest, near the exit into Magus Stones"}, + {"id":"01b008ed8b24091a","skillId":282,"boss":"Flannuss Broadwing","mapId":485,"region":"Eye of the North","points":[[2787,6049]],"note":"Route is approximately 5 minutes in length, varying in direction and path per spawn. Generally patrols around the edge of the northeastern lagoon."}, + {"id":"eafde6174975cec3","skillId":54,"boss":"Alitta Guilebloom","mapId":485,"region":"Eye of the North","points":[[2638,6184]],"note":"Patrols all around this area, southern of the central island."}, + {"id":"bc8cefed816b83ca","skillId":1499,"boss":"Facet of Spirit","mapId":485,"region":"Eye of the North","points":[[2772,5995]],"note":"Only during \"Cipher of Kormir\" quest.\nKnown spawn locations:\n- In the waters directly south of Vlox's Falls\n- Northeast of center, at the top of the hill northwest of the the northeastern lagoon\n- In the waters southwest of Ventari's Sanctuary\n- In the waters directly east of Ventari's Sanctuary"}, + {"id":"d3565c077b812fcb","skillId":907,"boss":"Byndliss Flamecrown","mapId":569,"region":"Eye of the North","points":[[1399,6351]],"note":null}, + {"id":"c3773ad0e9ade69e","skillId":1701,"boss":"Skomay Bonehewer","mapId":569,"region":"Eye of the North","points":[[1356,6053]],"note":null}, + {"id":"560b6257e8004592","skillId":1202,"boss":"Ashlyn Spiderfriend","mapId":569,"region":"Eye of the North","points":[[1343,6410]],"note":null}, + {"id":"c8e03b0aefe68dcd","skillId":132,"boss":"Bredyss Longstride","mapId":569,"region":"Eye of the North","points":[[1561,6266]],"note":null}, + {"id":"fb27b3aca9b2d655","skillId":54,"boss":"Veturni Mindsquall","mapId":569,"region":"Eye of the North","points":[[1414,6105]],"note":null}, + {"id":"10a0db5024943bb4","skillId":82,"boss":"Facet of Illusions","mapId":569,"region":"Eye of the North","points":[[1549,6115]],"note":"Only during \"Cipher of Lyssa\" quest.\nKnown spawn locations:\n- In the pond west of Rata Sum\n- Northwest from the center, between the large clearing and the waterfall\n- South of center between the three hills.\n- Far northwest corner"}, + {"id":"310e76bd46e3bbf7","skillId":1602,"boss":"Timberland Guardian","mapId":569,"region":"Eye of the North","points":[[1276,6086]],"note":"Only during \"Lab Space\" quest."}, + {"id":"9d8fe98916a6e0eb","skillId":329,"boss":"Bringer of Destruction","mapId":760,"region":"Eye of the North","points":[[2004,5858]],"note":null}, + {"id":"ce2ab19e1a884676","skillId":395,"boss":"Storm of Destruction","mapId":501,"region":"Eye of the North","points":[[1988,5858]],"note":null}, + {"id":"3f75449c67f51f21","skillId":393,"boss":"Gallow Nooseknitter","mapId":501,"region":"Eye of the North","points":[[2250,5950]],"note":null}, + {"id":"bfd55db79a68f76b","skillId":261,"boss":"Facet of Existence","mapId":501,"region":"Eye of the North","points":[[2096,5995]],"note":"Only during \"Cipher of Dwanya\" quest.\nKnown spawn locations:\n- Northwest of the Golem Foundry\n- Directly east from Rata Sum, before the second resurrection shrine\n- Up the hill slightly southwest of the center resurrection shrine\n- Northeast of center, northeast of the short bridge north of center, between the northern and northeastern resurrection shrines\n- Southeast corner, on the northern side of the waterfall.\nAs the first spawn point is so close to Rata Sum, it may be worth reloading the map until you get this spawn. It can be reached without combat"}, + {"id":"41e52ffb4ebf0164","skillId":937,"boss":"Joffs the Mitigator","mapId":501,"region":"Eye of the North","points":[[2016,6074]],"note":null}, + {"id":"cffb85d23e189fab","skillId":1035,"boss":"Rekoff Broodmother","mapId":501,"region":"Eye of the North","points":[[1835,6138]],"note":null}, + {"id":"04a527ba85c449d4","skillId":1415,"boss":"Mobrin, Lord of the Marsh","mapId":558,"region":"Eye of the North","points":[[4250,6560]],"note":null}, + {"id":"a716145192c07e73","skillId":355,"boss":"Inscribed Ettin","mapId":558,"region":"Eye of the North","points":[[4218,6625]],"note":"Only during \"Finding the Bloodstone\" quest."}, + {"id":"4ac7f66f7513baf1","skillId":86,"boss":"Facet of Death","mapId":558,"region":"Eye of the North","points":[[4140,6600]],"note":"Only during \"Cipher of Grenth\" quest.\nKnown spawn locations:\n- Eastern edge of the central clearing, up the hill south of the easternmost edge of the swamp.\n- Southeast of center, at the three way crossroads north of the resurrection shrine\n- Northeast of center, at the three way crossroads between the resurrection shrine at the eastern edge of the swamp and Brynn Earthporter's alcove\n- In the center of the Agari territory"}, + {"id":"f093f3fdbef69686","skillId":53,"boss":"Waray Skullflayer","mapId":558,"region":"Eye of the North","points":[[4100,6437]],"note":"Will not spawn if you have \"Frogstomp\" quest active."}, + {"id":"81197a39b95afed7","skillId":1760,"boss":"Brynn Earthporter","mapId":558,"region":"Eye of the North","points":[[4375,6310]],"note":null}, + {"id":"e8bdb289247b9305","skillId":862,"boss":"Moa'vu'Kaal","mapId":486,"region":"Elona","points":[[2076,3753]],"note":"Only during \"Moa'vu'Kaal, Awakened\" quest."}, + {"id":"560e45b7d44cb3e8","skillId":939,"boss":"Lonolun Waterwalker","mapId":486,"region":"Elona","points":[[1926,3879]],"note":null}, + {"id":"4aa905d88e01643c","skillId":1406,"boss":"Enadiz the Hardheaded","mapId":380,"region":"Elona","points":[[3661,3078]],"note":null}, + {"id":"768599492eff5d74","skillId":1408,"boss":"Onwan, Lord of the Ntouka","mapId":380,"region":"Elona","points":[[3726,2848]],"note":null}, + {"id":"ac2e18e2c74575ac","skillId":395,"boss":"Commander Kubeh","mapId":380,"region":"Elona","points":[[3889,3077]],"note":"Only during \"The Great Escape\" quest."}, + {"id":"959f64857a12d325","skillId":820,"boss":"Modti Darkflower","mapId":380,"region":"Elona","points":[[3792,3085]],"note":null}, + {"id":"505dbbbe253402da","skillId":1345,"boss":"Captain Chichor","mapId":380,"region":"Elona","points":[[3872,3022]],"note":"Not during \"The Great Escape\" quest.\nPatrols the three islands counterclockwise."}, + {"id":"0dfd94d3633c0f50","skillId":205,"boss":"Zephyr Hedger","mapId":380,"region":"Elona","points":[[3637,2907]],"note":"Only during \"Koss's Elixir\" quest."}, + {"id":"354a85341b1c4a2d","skillId":1732,"boss":"Lieutenant Kayin","mapId":380,"region":"Elona","points":[[3907,2857]],"note":null}, + {"id":"a7e614269613f0a7","skillId":1548,"boss":"Eshau Longspear","mapId":380,"region":"Elona","points":[[3686,3133]],"note":null}, + {"id":"0be2f36aa16c0a8d","skillId":1520,"boss":"Acolyte of Grenth","mapId":380,"region":"Elona","points":[[3904,3045]],"note":null}, + {"id":"001616cec8f35d08","skillId":1519,"boss":"Acolyte of Dwayna","mapId":379,"region":"Elona","points":[[4238,2978]],"note":"Not during \"Kodonur Crossroads\" mission."}, + {"id":"b4e19cf5430d6090","skillId":1588,"boss":"Corporal Luluh","mapId":379,"region":"Elona","points":[[4220,2948]],"note":"Not during \"Kodonur Crossroads\" mission."}, + {"id":"cab1a01c6603e732","skillId":1749,"boss":"Podaltur the Angry","mapId":379,"region":"Elona","points":[[4479,2804]],"note":"Not during \"Kodonur Crossroads\" mission."}, + {"id":"9d2970aca8382c06","skillId":1649,"boss":"Major Jeahr","mapId":379,"region":"Elona","points":[[4425,2868]],"note":"Not during \"Kodonur Crossroads\" mission."}, + {"id":"b7e385a6d7d5a424","skillId":1730,"boss":"Colonel Custo","mapId":379,"region":"Elona","points":[[4252,2946]],"note":"Not during \"Kodonur Crossroads\" mission."}, + {"id":"01ddf16e3c584665","skillId":1694,"boss":"Colonel Chaklin","mapId":379,"region":"Elona","points":[[4277,2877]],"note":"Not during \"Kodonur Crossroads\" mission."}, + {"id":"b31bbb8604f23db5","skillId":1412,"boss":"Commander Wahli","mapId":375,"region":"Elona","points":[[4549,3553]],"note":null}, + {"id":"2a036c3acee79042","skillId":1350,"boss":"Midshipman Morolah","mapId":375,"region":"Elona","points":[[4630,3497]],"note":null}, + {"id":"aa76aaeead95b259","skillId":1737,"boss":"Captain Alsin","mapId":375,"region":"Elona","points":[[4651,3516]],"note":null}, + {"id":"8a0f49141085cbd5","skillId":1759,"boss":"Captain Mhedi","mapId":375,"region":"Elona","points":[[4607,3510]],"note":null}, + {"id":"19ad07aae71e6af3","skillId":1554,"boss":"Lieutenant Shagu","mapId":375,"region":"Elona","points":[[4768,3351]],"note":null}, + {"id":"d56c146ae983ca40","skillId":119,"boss":"Taskmaster Vanakh","mapId":424,"region":"Elona","points":[[4336,2966]],"note":null}, + {"id":"f031c1a7a9fcd3e0","skillId":119,"boss":"Overseer Haubeh","mapId":424,"region":"Elona","points":[[4222,2966]],"note":null}, + {"id":"1618baefe6a4fea9","skillId":1687,"boss":"Taskmaster Sadi-Belai","mapId":424,"region":"Elona","points":[[4325,2868]],"note":null}, + {"id":"054f5c6d46fdf5e3","skillId":1499,"boss":"Taskmaster Suli","mapId":424,"region":"Elona","points":[[4237,3042]],"note":null}, + {"id":"3e570ee5eb19a867","skillId":1588,"boss":"Overseer Boktek","mapId":424,"region":"Elona","points":[[4222,2978]],"note":null}, + {"id":"7b503659b38844cf","skillId":1729,"boss":"Veldrunner Centaur","mapId":424,"region":"Elona","points":[[4263,2881]],"note":"Friendly NPC. Needs to be killed by enemy mobs."}, + {"id":"1b39537fe930070e","skillId":335,"boss":"Chor the Bladed","mapId":371,"region":"Elona","points":[[3045,2779]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"d4c0d4ae2aec4d9a","skillId":1466,"boss":"Admiral Chiggen","mapId":371,"region":"Elona","points":[[3298,3057]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"c3dc7bd03e6bf92c","skillId":1397,"boss":"Chidehkir, Light of the Blind","mapId":371,"region":"Elona","points":[[3196,2789]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"a26e8031c9dc9f37","skillId":1333,"boss":"Neoli the Contagious","mapId":371,"region":"Elona","points":[[3276,3036]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"89e90fd197a937f9","skillId":164,"boss":"Bosun Mohrti","mapId":371,"region":"Elona","points":[[3171,3000]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"b1096a683081caa7","skillId":1654,"boss":"Lunto Sharpfoot","mapId":371,"region":"Elona","points":[[3081,2859]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"f200ad8cab6284e9","skillId":1756,"boss":"Bubahl Icehands","mapId":371,"region":"Elona","points":[[3190,2945]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"13b4f4c6ab17dca5","skillId":1522,"boss":"Acolyte of Melandru","mapId":371,"region":"Elona","points":[[3196,2866]],"note":"Not during \"Nundu Bay\" mission."}, + {"id":"5fa29a635a250225","skillId":1502,"boss":"Zealot Sheoli","mapId":477,"region":"Elona","points":[[3276,2741]],"note":null}, + {"id":"9e3995118f884f91","skillId":1568,"boss":"Commander Chutal","mapId":477,"region":"Elona","points":[[3286,2763]],"note":null}, + {"id":"05ec0ea6b77a662c","skillId":1664,"boss":"Scribe Wensal","mapId":477,"region":"Elona","points":[[3298,2778]],"note":null}, + {"id":"93be6305c6c17cdf","skillId":273,"boss":"Priest Zein Zuu","mapId":477,"region":"Elona","points":[[3324,2774]],"note":null}, + {"id":"832da5e86a48b429","skillId":1412,"boss":"Corsair Commander","mapId":554,"region":"Elona","points":[],"note":null}, + {"id":"5c35472c1c211f14","skillId":1687,"boss":"Corsair Commander","mapId":554,"region":"Elona","points":[],"note":null}, + {"id":"8abbcaa9e2cccdcd","skillId":164,"boss":"Corsair Commander","mapId":554,"region":"Elona","points":[],"note":null}, + {"id":"872e34d5bc7171dd","skillId":1759,"boss":"Corsair Commander","mapId":554,"region":"Elona","points":[],"note":null}, + {"id":"84646cde2898988f","skillId":1415,"boss":"Mahto Sharptooth","mapId":373,"region":"Elona","points":[[2849,2338]],"note":null}, + {"id":"473c82c39cb1d652","skillId":54,"boss":"Eshim Mindclouder","mapId":373,"region":"Elona","points":[[2833,2525]],"note":null}, + {"id":"aa9c73ee522b8926","skillId":205,"boss":"Birneh Skybringer","mapId":373,"region":"Elona","points":[[2986,2540]],"note":null}, + {"id":"c4e863389ad2b44a","skillId":1767,"boss":"Dabineh Deathbringer","mapId":373,"region":"Elona","points":[[3281,2459]],"note":"Spawns if no quest is active."}, + {"id":"042c5324517bcac2","skillId":1521,"boss":"Acolyte of Lyssa","mapId":373,"region":"Elona","points":[[3071,2467]],"note":null}, + {"id":"c39a17db10927944","skillId":1468,"boss":"Sergeant Behnwa","mapId":386,"region":"Elona","points":[[3620,1938]],"note":null}, + {"id":"8e5e03d71e728e86","skillId":1686,"boss":"Chiossen, Soothing Breeze","mapId":386,"region":"Elona","points":[[3546,2135]],"note":null}, + {"id":"46c1d0200c4eeb31","skillId":1362,"boss":"Torment Weaver","mapId":386,"region":"Elona","points":[[3516,2016]],"note":"Only during \"Battle of Turai's Procession\" quest."}, + {"id":"ca57a380a6cbf917","skillId":13,"boss":"Olunoss Windwalker","mapId":386,"region":"Elona","points":[[3555,2040]],"note":"Only after \"Battle of Turai's Procession\" quest."}, + {"id":"1424d1a38b3945c4","skillId":884,"boss":"Korr, Living Flame","mapId":386,"region":"Elona","points":[[3507,1777]],"note":null}, + {"id":"b9c2ba35f8311bcd","skillId":1756,"boss":"Lord Yama the Vengeful","mapId":384,"region":"Elona","points":[[4611,2293]],"note":"Only during \"Drakes on the Plain\" quest."}, + {"id":"1c0a1aa87a981134","skillId":1642,"boss":"Admiral Kaya","mapId":384,"region":"Elona","points":[[4399,2589]],"note":null}, + {"id":"7670b0fe520eed93","skillId":939,"boss":"Buhon Icelord","mapId":384,"region":"Elona","points":[[4546,2593]],"note":null}, + {"id":"022b239d90c2bf96","skillId":1356,"boss":"Terob Roundback","mapId":384,"region":"Elona","points":[[4340,2422]],"note":null}, + {"id":"97e33d2a1a8801d9","skillId":1690,"boss":"Commander Noss","mapId":384,"region":"Elona","points":[[4546,2507]],"note":null}, + {"id":"6c3e4bf1bfd4ca4a","skillId":397,"boss":"Zelnehlun Fastfoot","mapId":384,"region":"Elona","points":[[4468,2322]],"note":"Not during \"Drakes on the Plain\" quest."}, + {"id":"7160d47ee440942b","skillId":1696,"boss":"Robah Hardback","mapId":384,"region":"Elona","points":[[4525,2581]],"note":null}, + {"id":"2c46de7f884e2163","skillId":113,"boss":"Jerneh Nightbringer","mapId":384,"region":"Elona","points":[[4511,2549]],"note":"Spawns from the ground when you get close to the location."}, + {"id":"7b3a5484a0c41a89","skillId":1372,"boss":"The Drought","mapId":425,"region":"Elona","points":[[4611,2356]],"note":null}, + {"id":"9a4424816ec6c5ba","skillId":1518,"boss":"Acolyte of Balthazar","mapId":369,"region":"Elona","points":[[3875,2504]],"note":null}, + {"id":"ab74edae6c82f4a7","skillId":1555,"boss":"Corporal Argon","mapId":369,"region":"Elona","points":[[3855,2452]],"note":null}, + {"id":"d0b5646f23595d1d","skillId":1378,"boss":"Admiral Kantoh","mapId":369,"region":"Elona","points":[[4104,2315]],"note":null}, + {"id":"cd213e62ec558b78","skillId":862,"boss":"Shelboh the Ravenous","mapId":369,"region":"Elona","points":[[4053,2518]],"note":null}, + {"id":"f258ab183449e216","skillId":1721,"boss":"Tundoss the Destroyer","mapId":369,"region":"Elona","points":[[3751,2560]],"note":null}, + {"id":"59341f87a9d0dcd6","skillId":355,"boss":"Churrta the Rock","mapId":369,"region":"Elona","points":[[3993,2600]],"note":"Not during \"Eavesdropping\" quest."}, + {"id":"77ee72813c975349","skillId":1395,"boss":"Riseh the Harmless","mapId":377,"region":"Elona","points":[[4678,2086]],"note":null}, + {"id":"94a08246e73554b1","skillId":808,"boss":"Commander Sehden","mapId":377,"region":"Elona","points":[[4683,2105]],"note":null}, + {"id":"bd95f79e47792426","skillId":86,"boss":"Armind the Balancer","mapId":377,"region":"Elona","points":[[4834,2151]],"note":null}, + {"id":"1e257f97c2e8bb4a","skillId":1373,"boss":"Joknang Earthturner","mapId":377,"region":"Elona","points":[[4892,2014]],"note":null}, + {"id":"bb867dbc0a19dd01","skillId":1769,"boss":"Wandalz the Angry","mapId":377,"region":"Elona","points":[[4641,2094]],"note":null}, + {"id":"28f88f6073f9b100","skillId":1761,"boss":"Sehlon, Beautiful Water","mapId":377,"region":"Elona","points":[[4911,1981]],"note":null}, + {"id":"26cd2f4fba181a9a","skillId":1548,"boss":"Yakun Trueshot","mapId":427,"region":"Elona","points":[[4768,2111]],"note":"You will have to enter the passage Dunkoro tells you to avoid, so you will be unable to kill this boss and get the bonus at the same time."}, + {"id":"71592f222af01d93","skillId":1397,"boss":"Kenmak the Tranquil","mapId":427,"region":"Elona","points":[[4764,2131]],"note":"You will have to enter the passage Dunkoro tells you to avoid, so you will be unable to kill this boss and get the bonus at the same time."}, + {"id":"751ef068cd24e896","skillId":1694,"boss":"Captain Kavaka","mapId":493,"region":"Elona","points":[[4003,3488]],"note":null}, + {"id":"8ef9ccfc1b12e3a1","skillId":1378,"boss":"Captain Mwende","mapId":493,"region":"Elona","points":[[3970,3497]],"note":null}, + {"id":"4c22271435cac717","skillId":1588,"boss":"Captain Lumanda","mapId":493,"region":"Elona","points":[[3842,3496]],"note":null}, + {"id":"120358edc38d19e5","skillId":1499,"boss":"Captain Denduru","mapId":493,"region":"Elona","points":[[3886,3486]],"note":null}, + {"id":"abee259c59af6057","skillId":1345,"boss":"Lieutenant Nali","mapId":426,"region":"Elona","points":[[4001,3464]],"note":null}, + {"id":"343424632143381f","skillId":1378,"boss":"Captain Nebo","mapId":426,"region":"Elona","points":[[3888,3516]],"note":null}, + {"id":"f3f166d480af71f3","skillId":1499,"boss":"Corporal Suli","mapId":392,"region":"Elona","points":[[4263,2066]],"note":null}, + {"id":"740db6947982b571","skillId":1664,"boss":"Lushivahr the Invoker","mapId":392,"region":"Elona","points":[[4114,2177]],"note":null}, + {"id":"72e9cb6eb43d99a2","skillId":1378,"boss":"Hajok Earthguardian","mapId":392,"region":"Elona","points":[[4177,2091]],"note":null}, + {"id":"d5c7e15321364ca3","skillId":1342,"boss":"Makdeh the Aggravating","mapId":392,"region":"Elona","points":[[4187,2070]],"note":null}, + {"id":"ca5504f0eb43ccbb","skillId":1362,"boss":"Tain the Corrupter","mapId":392,"region":"Elona","points":[[4156,2122]],"note":null}, + {"id":"260de5c941987c1d","skillId":119,"boss":"Lieutenant Vanahk","mapId":392,"region":"Elona","points":[[4317,1939]],"note":null}, + {"id":"06689d945462b402","skillId":1701,"boss":"Chumab the Prideful","mapId":406,"region":"Elona","points":[[4594,1657]],"note":null}, + {"id":"78315346ecb06e31","skillId":1749,"boss":"Bohdalz the Furious","mapId":406,"region":"Elona","points":[[4546,1653]],"note":null}, + {"id":"ab72ddc4248f8f5d","skillId":1644,"boss":"Jarimiya the Unmerciful","mapId":406,"region":"Elona","points":[[4566,1675]],"note":"Not during \"Rally The Princess\" and \"Valley of the Rifts\" quests."}, + {"id":"4f566bb7a82f1dbb","skillId":54,"boss":"Yamesh Mindclouder","mapId":406,"region":"Elona","points":[[4642,1680]],"note":null}, + {"id":"9a4050b9d48126db","skillId":1596,"boss":"Render","mapId":399,"region":"Elona","points":[[4038,1419]],"note":"Only during \"Desperate Measures\" quest."}, + {"id":"7fd90d3c8f0aa743","skillId":1736,"boss":"Churahm, Spirit Warrior","mapId":399,"region":"Elona","points":[[4159,1459]],"note":null}, + {"id":"be913af2ed68e003","skillId":884,"boss":"Korshek the Immolated","mapId":399,"region":"Elona","points":[[4148,1541]],"note":null}, + {"id":"9c554f9dca9731a2","skillId":1356,"boss":"Harrk Facestab","mapId":399,"region":"Elona","points":[[4026,1326]],"note":"Only during \"Desperate Measures\" quest."}, + {"id":"be09ca45cd626a06","skillId":1687,"boss":"Commander Sadi-Belai","mapId":399,"region":"Elona","points":[[4197,1600]],"note":null}, + {"id":"90305341dc7c307e","skillId":442,"boss":"Bolten Largebelly","mapId":399,"region":"Elona","points":[[4344,1427]],"note":null}, + {"id":"778a01328be81402","skillId":1697,"boss":"Grabthar the Overbearing","mapId":399,"region":"Elona","points":[[3947,1472]],"note":null}, + {"id":"00f8c9bbfcb87939","skillId":1640,"boss":"Hanchor Trueblade","mapId":395,"region":"Elona","points":[[4015,605]],"note":null}, + {"id":"a9843ed790b8d0aa","skillId":205,"boss":"Setikor Fireflower","mapId":395,"region":"Elona","points":[[4313,655]],"note":null}, + {"id":"c8294596d7e03288","skillId":261,"boss":"Banor Greenbranch","mapId":395,"region":"Elona","points":[[4151,605]],"note":null}, + {"id":"692c52994a1fe172","skillId":448,"boss":"Tenezel the Quick","mapId":395,"region":"Elona","points":[[4089,724]],"note":null}, + {"id":"370626ae65122d94","skillId":1405,"boss":"Riktund the Vicious","mapId":419,"region":"Elona","points":[[4549,884]],"note":null}, + {"id":"b28a294e263c96de","skillId":39,"boss":"Yammiron, Ether Lord","mapId":419,"region":"Elona","points":[[4437,1144],[4834,991]],"note":"Not during \"The Search for Survivors\" quest."}, + {"id":"4c6ab749535eccb2","skillId":1760,"boss":"Shezel Slowreaper","mapId":419,"region":"Elona","points":[[4658,1168]],"note":"Not during \"The Search for Survivors\" quest."}, + {"id":"483f1fcb2700b2ad","skillId":1568,"boss":"Overseer Juntahk","mapId":419,"region":"Elona","points":[[4566,992]],"note":"Only during \"Warning Kehanni\" quest."}, + {"id":"2c6488ceb133f792","skillId":1568,"boss":"Briahn the Chosen","mapId":419,"region":"Elona","points":[[4744,1185]],"note":"Travels back and forth between Honur Hill and The Kodash Bazaar."}, + {"id":"92a134fa0ea85ecf","skillId":1570,"boss":"Jishol Darksong","mapId":402,"region":"Elona","points":[[4924,1330]],"note":null}, + {"id":"a25c80b7c0df4573","skillId":185,"boss":"Kormab, Burning Heart","mapId":402,"region":"Elona","points":[[5197,1274]],"note":null}, + {"id":"cc7a65d59414735c","skillId":1393,"boss":"Josinq the Whisperer","mapId":402,"region":"Elona","points":[[5093,1504]],"note":null}, + {"id":"916b3609aa661e2c","skillId":1724,"boss":"Bansheh, Gatherer of Branches","mapId":402,"region":"Elona","points":[[5228,1559]],"note":null}, + {"id":"0b3aa5459a4bf187","skillId":1596,"boss":"Kunan the Loudmouth","mapId":404,"region":"Elona","points":[[5280,875]],"note":"Only after \"Extinction\" quest."}, + {"id":"cbaae2ce19639437","skillId":1596,"boss":"Screecher","mapId":404,"region":"Elona","points":[[5294,1096]],"note":"Only before completion of \"Destroy the Harpies\" quest."}, + {"id":"30c7d5386fa6099b","skillId":1596,"boss":"Scratcher","mapId":404,"region":"Elona","points":[[5319,1078]],"note":"Only before completion of \"Destroy the Harpies\" quest."}, + {"id":"47b599b63fe43acb","skillId":1367,"boss":"Moteh Thundershooter","mapId":404,"region":"Elona","points":[[5094,1007]],"note":null}, + {"id":"756c1d77172c7b8d","skillId":878,"boss":"Korrub, Flame of Dreams","mapId":404,"region":"Elona","points":[[5118,1062]],"note":"Only after \"Destroy the Harpies\" quest."}, + {"id":"2eab39144a710db9","skillId":1659,"boss":"Eshekibeh Longneck","mapId":404,"region":"Elona","points":[[5204,826]],"note":null}, + {"id":"373523ab735fa85b","skillId":1356,"boss":"Brokk Ripsnort","mapId":404,"region":"Elona","points":[[5253,722]],"note":null}, + {"id":"4dc70d1641a73f71","skillId":1568,"boss":"General Kumtash","mapId":433,"region":"Elona","points":[[5086,924]],"note":null}, + {"id":"4c806ef66c0e9d4a","skillId":1664,"boss":"General Tirraj","mapId":433,"region":"Elona","points":[[5114,862]],"note":null}, + {"id":"d70c8a5ff54a4260","skillId":273,"boss":"General Nimtak","mapId":433,"region":"Elona","points":[[5103,891]],"note":null}, + {"id":"2444528f13b36b53","skillId":1697,"boss":"General Doriah","mapId":433,"region":"Elona","points":[[5039,936]],"note":null}, + {"id":"a3e0a2e83f4794e9","skillId":1771,"boss":"Toshau Sharpspear","mapId":394,"region":"Elona","points":[[3895,1088]],"note":null}, + {"id":"c47ddd08148cdda8","skillId":1656,"boss":"Hojanukun Mindstealer","mapId":394,"region":"Elona","points":[[4258,892]],"note":null}, + {"id":"466161d6d854db89","skillId":1356,"boss":"Mabah Heardheart","mapId":394,"region":"Elona","points":[[4120,892]],"note":null}, + {"id":"99526de1bab8959c","skillId":282,"boss":"Hahan, Faithful Protector","mapId":394,"region":"Elona","points":[[3825,1041]],"note":null}, + {"id":"15946e8e24bfdd79","skillId":54,"boss":"Ripened Mirage Iboga","mapId":394,"region":"Elona","points":[[3852,1017],[3866,1185],[4188,1096]],"note":"Only during \"Norn Catering\" quest."}, + {"id":"cfd9ab22f7ec0075","skillId":1761,"boss":"Leilon, Tranquil Water","mapId":413,"region":"Elona","points":[[4776,525]],"note":null}, + {"id":"4b0a574be23de8ef","skillId":1517,"boss":"Water Lord","mapId":413,"region":"Elona","points":[[4804,389]],"note":"Only during \"Gift of the Djinn\" quest."}, + {"id":"3531a52d96f7ea8d","skillId":1761,"boss":"Hajok Earthguardian","mapId":434,"region":"Elona","points":[[4865,625]],"note":null}, + {"id":"c452a293a1e8cf6a","skillId":884,"boss":"Kormab, Burning Heart","mapId":434,"region":"Elona","points":[[4865,647]],"note":null}, + {"id":"530a7027bb044787","skillId":1587,"boss":"Shakor Firespear","mapId":434,"region":"Elona","points":[[4863,668]],"note":null}, + {"id":"22f11d4d18292509","skillId":1587,"boss":"Shakor Firespear","mapId":413,"region":"Elona","points":[[4863,584]],"note":"Not during \"Dasha Vestibule\" mission."}, + {"id":"db2007aa5a9be0af","skillId":448,"boss":"Tenshek Roundbody","mapId":413,"region":"Elona","points":[[4965,534]],"note":"Not during \"Dasha Vestibule\" mission."}, + {"id":"3962c339451f8408","skillId":1536,"boss":"Marobeh Sharptail","mapId":397,"region":"Elona","points":[[3688,1070]],"note":null}, + {"id":"75b2f98b1ddfc332","skillId":1570,"boss":"Pehnsed the Loudmouth","mapId":397,"region":"Elona","points":[[3475,1121]],"note":null}, + {"id":"4e777188bf9a90f2","skillId":1359,"boss":"Nehpek the Remorseless","mapId":397,"region":"Elona","points":[[3387,920]],"note":"Does not spawn if you have Master of Whispers in your party and you have \"Coffer of Joko\" quest active."}, + {"id":"1728e741bbf6ae19","skillId":364,"boss":"Shak-Jarin the Justicebringer","mapId":397,"region":"Elona","points":[[3459,942]],"note":null}, + {"id":"74ad1dbf9572b359","skillId":1698,"boss":"Avah the Crafty ","mapId":478,"region":"Elona","points":[[3136,1597]],"note":"Second boss in the waves of undead."}, + {"id":"99768d0a442e02e6","skillId":1773,"boss":"Chakeh the Lonely","mapId":478,"region":"Elona","points":[[3157,1605]],"note":"First boss in the waves of undead."}, + {"id":"9256b9a08ba3380c","skillId":1517,"boss":"Chundu the Meek","mapId":478,"region":"Elona","points":[[3164,1633]],"note":"Third boss in the waves of undead."}, + {"id":"039cbf5d5050f187","skillId":1364,"boss":"Nehmak the Unpleasant ","mapId":478,"region":"Elona","points":[[3137,1617]],"note":"Spawns in the last wave before riding the wurms. Spawns at the same time as Amind the Bitter."}, + {"id":"5d708b89d6ab5a60","skillId":1348,"boss":"Amind the Bitter","mapId":478,"region":"Elona","points":[[3140,1636]],"note":"Spawns in the last wave before riding the wurms. Spawns at the same time as Nehmak the Unpleasant."}, + {"id":"5167c5a24edac97c","skillId":1517,"boss":"Vahlen the Silent","mapId":444,"region":"Elona","points":[[3187,1548]],"note":null}, + {"id":"f6b11ecd57d14b85","skillId":1752,"boss":"Alem the Unclean","mapId":444,"region":"Elona","points":[[2787,1604]],"note":null}, + {"id":"2f30a1280d5a089a","skillId":1380,"boss":"Hajkor, Mystic Flame","mapId":444,"region":"Elona","points":[[3100,1364]],"note":null}, + {"id":"8987ed45517cf035","skillId":1352,"boss":"Bohdabi the Destructive","mapId":444,"region":"Elona","points":[[2789,1339]],"note":null}, + {"id":"e448b37f7c93f242","skillId":1773,"boss":"Arneh the Vigorous","mapId":437,"region":"Elona","points":[[2992,868]],"note":null}, + {"id":"3f753d65d631b8a9","skillId":1652,"boss":"Ardeh the Quick","mapId":437,"region":"Elona","points":[[3104,989]],"note":null}, + {"id":"14fe0ec54a08617e","skillId":74,"boss":"Eshwe the Insane","mapId":437,"region":"Elona","points":[[3058,1100]],"note":null}, + {"id":"3f8eaf1744054c91","skillId":1698,"boss":"Keht the Fierce","mapId":437,"region":"Elona","points":[[3121,1171]],"note":null}, + {"id":"03a28ac348a682c6","skillId":298,"boss":"Dunshek the Purifier","mapId":441,"region":"Elona","points":[[3004,512]],"note":null}, + {"id":"43de5be7436514b4","skillId":1726,"boss":"Saushali the Frustrating","mapId":441,"region":"Elona","points":[[3309,502]],"note":"Not during \"Horde of Darkness\" quest."}, + {"id":"f3e531796ebd63d8","skillId":1729,"boss":"Uhiwi the Smoky","mapId":441,"region":"Elona","points":[[3160,607]],"note":null}, + {"id":"9f2aaabb26863c00","skillId":1473,"boss":"Koahm the Weary","mapId":441,"region":"Elona","points":[[3108,618]],"note":null}, + {"id":"e574130991af37ed","skillId":1599,"boss":"Churkeh the Defiant","mapId":446,"region":"Elona","points":[[2388,888]],"note":null}, + {"id":"3cf8b91cf0ef4836","skillId":1348,"boss":"Shelkeh the Hungry","mapId":446,"region":"Elona","points":[[2377,1033]],"note":null}, + {"id":"c95eee054bc4710d","skillId":1692,"boss":"Amiresh the Pious","mapId":446,"region":"Elona","points":[[2547,852]],"note":null}, + {"id":"e5d165c5884e5e9e","skillId":461,"boss":"Vah the Crafty","mapId":446,"region":"Elona","points":[[2498,1117]],"note":null}, + {"id":"686f9738c7fad574","skillId":1782,"boss":"Tureksin the Delegator","mapId":439,"region":"Elona","points":[[2479,480]],"note":null}, + {"id":"48782a5105b40fb9","skillId":79,"boss":"Rual, Stealer of Hope","mapId":439,"region":"Elona","points":[[2458,632]],"note":null}, + {"id":"dbc4558d8938518f","skillId":1362,"boss":"Rebirther Jirath","mapId":439,"region":"Elona","points":[[2462,683]],"note":"Only during \"A Tasty Morsel\" quest."}, + {"id":"527d266f729aeda5","skillId":294,"boss":"Hamlen the Fallen","mapId":439,"region":"Elona","points":[[2526,413]],"note":null}, + {"id":"61c74b5484cdf075","skillId":1471,"boss":"Rendabi Deatheater","mapId":439,"region":"Elona","points":[[2330,630]],"note":null}, + {"id":"af71aee5cab2df5b","skillId":3425,"boss":"Yoannh the Rebuilder","mapId":439,"region":"Elona","points":[[2329,446]],"note":"Only if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"19eee77a7ee43ddc","skillId":3431,"boss":"Yoannh the Rebuilder","mapId":439,"region":"Elona","points":[[2348,446]],"note":"Only if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"fca58efc5c61e858","skillId":3430,"boss":"Yoannh the Rebuilder","mapId":439,"region":"Elona","points":[[2367,446]],"note":"Only if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"c1c7c06e63a43bee","skillId":1742,"boss":"Jedeh the Mighty","mapId":448,"region":"Elona","points":[[1902,733]],"note":null}, + {"id":"4aa26e315178bced","skillId":1634,"boss":"Achor the Bladed","mapId":448,"region":"Elona","points":[[1950,900]],"note":null}, + {"id":"5093fcd70c6ae4dc","skillId":132,"boss":"Wioli the Infectious","mapId":448,"region":"Elona","points":[[2084,957]],"note":null}, + {"id":"780cd240684d0bb9","skillId":1684,"boss":"Ajamahn, Servant of the Sands","mapId":448,"region":"Elona","points":[[2085,812]],"note":null}, + {"id":"b5b85759d82d9a10","skillId":1568,"boss":"Battlelord Turgar","mapId":443,"region":"Elona","points":[[2885,295]],"note":"Only during \"The Cold Touch of the Past\" quest."}, + {"id":"b32574210c314e82","skillId":1482,"boss":"Nehjab the Parched","mapId":443,"region":"Elona","points":[[3041,350]],"note":null}, + {"id":"e9a0a3052e0f911c","skillId":1377,"boss":"Mekir the Prismatic","mapId":443,"region":"Elona","points":[[2904,271]],"note":null}, + {"id":"5e02fa112f0d7859","skillId":1372,"boss":"Droajam, Mage of the Sands","mapId":443,"region":"Elona","points":[[2708,264]],"note":null}, + {"id":"445ad935287f95d7","skillId":1364,"boss":"Fondalz the Spiteful","mapId":443,"region":"Elona","points":[[3235,384]],"note":null}, + {"id":"501436d3b30f5d33","skillId":218,"boss":"Shekoss the Stony","mapId":437,"region":"Elona","points":[[3043,969]],"note":"Not during \"A Deal's a Deal\" quest."}, + {"id":"9746ab3ea708963c","skillId":1412,"boss":"Commander Bahreht","mapId":432,"region":"Elona","points":[[1469,3430]],"note":"Only during \"A Land of Heroes\" quest."}, + {"id":"b1446a0da1c607bf","skillId":808,"boss":"Midshipman Beraidun","mapId":432,"region":"Elona","points":[[1702,3407]],"note":"Only during \"A Land of Heroes\" quest."}, + {"id":"ab3804810bf7615b","skillId":1759,"boss":"Ensign Jahan","mapId":432,"region":"Elona","points":[[1659,3444]],"note":"Only during \"A Land of Heroes\" quest."}, + {"id":"4d609d5b0a46c19a","skillId":1554,"boss":"Lieutenant Mahrik","mapId":432,"region":"Elona","points":[[1509,3482]],"note":"Only during \"A Land of Heroes\" quest."}, + {"id":"e559d8acd2bfb192","skillId":1395,"boss":"Captain Shehnahr","mapId":432,"region":"Elona","points":[[1399,3444]],"note":"Only during \"A Land of Heroes\" quest."}, + {"id":"c44428ef90cbaaa3","skillId":1815,"boss":"Seeker of Whispers","mapId":393,"region":"Elona","points":[[4169,1964]],"note":"Seeker of Whispers in the Chantry of Secrets will award this skill for achieving the title of Brave Lightbringer."}, + {"id":"9bf6ce34464fea19","skillId":1441,"boss":"Elder Wurms","mapId":441,"region":"Elona","points":[[3330,493]],"note":"Acquired by following the primary quest received at the Bone Palace, \"Horde of Darkness\". You must kill several Elder Wurms, which your wurm then consumes to learn the skill."}, + {"id":"8e9c6baa72bd1757","skillId":39,"boss":"Yammirvu, Ether Guardian","mapId":413,"region":"Elona","points":[[4800,411]],"note":"Not during \"Dasha Vestibule\" mission."}, + {"id":"d6541ab8a4c1b5e5","skillId":1548,"boss":"Eshau Longspear","mapId":387,"region":"Elona","points":[[3538,2536]],"note":"Only during \"Hunted!\" quest."}, + {"id":"560e7801928d652c","skillId":273,"boss":"Preceptor Zunark","mapId":397,"region":"Elona","points":[[3572,920]],"note":"During \"To The Rescue\" quest."}, + {"id":"8a78600de77cba15","skillId":1355,"boss":"Emissary of Dhuum","mapId":465,"region":"Elona","points":[],"note":"Only during \"Dark Gateway\" quest."}, + {"id":"ee28c3999b89d89b","skillId":1726,"boss":"Abbadon Adjutant","mapId":465,"region":"Elona","points":[],"note":"Only during \"They Only Come Out at Night\" quest."}, + {"id":"d11a1f0495556c3c","skillId":1754,"boss":"Emissary of Dhuum","mapId":465,"region":"Elona","points":[],"note":"Only during \"They Only Come Out at Night\" quest."}, + {"id":"f9a779a6178284f3","skillId":570,"boss":"Chimor the Lightblooded","mapId":465,"region":"Elona","points":[],"note":null}, + {"id":"83ef74488c542605","skillId":1754,"boss":"Onslaught of Terror","mapId":465,"region":"Elona","points":[],"note":null}, + {"id":"c710aff0c6568c51","skillId":294,"boss":"Rukkassa","mapId":465,"region":"Elona","points":[],"note":"Only during \"Invasion From Within\" quest."}, + {"id":"7a4ed7772e1b99bb","skillId":1346,"boss":"Shepherd of Dementia","mapId":465,"region":"Elona","points":[],"note":null}, + {"id":"3f81c84432dfdc2c","skillId":1643,"boss":"Faveo Aggredior","mapId":465,"region":"Elona","points":[],"note":null}, + {"id":"6096d21bbb7fc097","skillId":381,"boss":"Blade of Corruption","mapId":465,"region":"Elona","points":[],"note":"Only during \"Breaking the Broken\" quest."}, + {"id":"8d926ddddb537793","skillId":1355,"boss":"Shadow of Fear","mapId":465,"region":"Elona","points":[],"note":"Only during \"Breaking the Broken\" quest."}, + {"id":"0aa34e38b31d7826","skillId":1553,"boss":"Oath of Profanity","mapId":465,"region":"Elona","points":[],"note":null}, + {"id":"a32aefcade6f1d35","skillId":953,"boss":"Vision of Despair","mapId":470,"region":"Elona","points":[],"note":null}, + {"id":"e70b6f28a408aad2","skillId":317,"boss":"Saevio Proelium","mapId":470,"region":"Elona","points":[],"note":null}, + {"id":"cd52e1b18fa102c2","skillId":1502,"boss":"Fahralon the Zealous","mapId":470,"region":"Elona","points":[],"note":null}, + {"id":"943e91f9be51dd44","skillId":1394,"boss":"Bringer of Deceit","mapId":470,"region":"Elona","points":[],"note":null}, + {"id":"752eff754a79c9a8","skillId":395,"boss":"Bearer of Misfortune","mapId":470,"region":"Elona","points":[],"note":null}, + {"id":"7e0989f03f01f130","skillId":1377,"boss":"Tortureweb Dryder","mapId":494,"region":"Elona","points":[],"note":"Six times."}, + {"id":"4c56141a5780c8a5","skillId":1664,"boss":"Curator Kali","mapId":495,"region":"Elona","points":[],"note":null}, + {"id":"5ce169fce3accea7","skillId":1697,"boss":"Champion Puran","mapId":495,"region":"Elona","points":[],"note":null}, + {"id":"1d524d48dcdfcbe5","skillId":273,"boss":"Topo the Protector","mapId":466,"region":"Elona","points":[],"note":null}, + {"id":"43aba66a04a1cf39","skillId":381,"boss":"Reaper of Agony","mapId":466,"region":"Elona","points":[],"note":null}, + {"id":"7b9bd8ea4566c776","skillId":1750,"boss":"Consort of Ruin","mapId":466,"region":"Elona","points":[],"note":null}, + {"id":"1ca88bc6b21e5796","skillId":1635,"boss":"Ravager of Dreams","mapId":466,"region":"Elona","points":[],"note":null}, + {"id":"3154690b252d3344","skillId":1355,"boss":"Master of Misery","mapId":466,"region":"Elona","points":[],"note":null}, + {"id":"08b9153aece1a636","skillId":1465,"boss":"Seed of Suffering","mapId":468,"region":"Elona","points":[],"note":null}, + {"id":"8a23714a427f61c5","skillId":1602,"boss":"Shrieker of Dread","mapId":468,"region":"Elona","points":[],"note":null}, + {"id":"e445a25323a780ab","skillId":209,"boss":"Storm of Anguish","mapId":468,"region":"Elona","points":[],"note":null}, + {"id":"61c950756ad6c1a7","skillId":1688,"boss":"Flame of Fervor","mapId":468,"region":"Elona","points":[],"note":null}, + {"id":"76a31d8ef7819ad7","skillId":1664,"boss":"Margonite Portal Mage","mapId":555,"region":"Elona","points":[],"note":null}, + {"id":"a812ebcd3fa86784","skillId":1662,"boss":"Exuro Flatus","mapId":472,"region":"Elona","points":[],"note":null}, + {"id":"c3e4bf8c222479fd","skillId":142,"boss":"Creo Vulnero","mapId":472,"region":"Elona","points":[],"note":null}, + {"id":"6216a44fbd224832","skillId":1479,"boss":"Shakahm the Summoner","mapId":472,"region":"Elona","points":[],"note":null}, + {"id":"79fcb3acd1e730bc","skillId":1339,"boss":"Wieshur the Inspiring","mapId":472,"region":"Elona","points":[],"note":null}, + {"id":"5d1806e94fa8ad58","skillId":1744,"boss":"Hautoh the Pilferer","mapId":472,"region":"Elona","points":[],"note":null}, + {"id":"ad033d3b3d6665d0","skillId":1362,"boss":"Razakel","mapId":472,"region":"Elona","points":[],"note":"Only during \"Blueprint of the Fall\" quest."}, + {"id":"cd618a512870c6dd","skillId":428,"boss":"Stygian Underlord (Ranger)","mapId":474,"region":"Elona","points":[],"note":"This Stygian Underlord is a ranger found on the western hill of the five hills that dominate the Stygian Veil. Defeating it is one of the final objectives of \"Breaching the Stygian Veil\" quest.\nUnknown position."}, + {"id":"8dfb6d7f02a305e0","skillId":1568,"boss":"Lord Jadoth","mapId":474,"region":"Elona","points":[],"note":null}, + {"id":"ccc8c0a6c580f4c3","skillId":1697,"boss":"Dupek the Mighty","mapId":444,"region":"Elona","points":[[2803,1631]],"note":"Only during \"A Show of Force\" quest."}, + {"id":"83867052665f0310","skillId":1362,"boss":"Hauseh the Defiler","mapId":444,"region":"Elona","points":[[2803,1651]],"note":"Only during \"A Show of Force\" quest."}, + {"id":"f79685fdbf5ed261","skillId":1664,"boss":"Tanmahk the Arcane","mapId":444,"region":"Elona","points":[[2785,1639]],"note":"Only during \"A Show of Force\" quest."}, + {"id":"84299250e2f2df83","skillId":1602,"boss":"Captain Bei Chi","mapId":864,"region":"Cantha","points":[[1193,2687]],"note":"Only during \"A Show of Force\" quest."}, + {"id":"3a1cae62a46424bc","skillId":448,"boss":"Jiao Kuai the Swift","mapId":196,"region":"Cantha","points":[[1864,2406]],"note":"Only during \"Honorable Combat\" quest."}, + {"id":"8177c7f0cee32e7e","skillId":381,"boss":"Commander Chui Kantu","mapId":196,"region":"Cantha","points":[[1621,2392]],"note":"Only during \"Honorable Combat\" quest."}, + {"id":"0a883fb759c42b84","skillId":830,"boss":"Plagued Zunraa","mapId":246,"region":"Cantha","points":[[1933,2687]],"note":"Only during \"Cleansing Zen Daijun\" quest."}, + {"id":"0b6e7737ea5f42c8","skillId":1129,"boss":"Rotten Zunraa","mapId":246,"region":"Cantha","points":[[1965,2687]],"note":"Only during \"Cleansing Zen Daijun\" quest."}, + {"id":"851fd054dcbd6ff0","skillId":294,"boss":"Tainted Zunraa","mapId":246,"region":"Cantha","points":[[1996,2687]],"note":"Only during \"Cleansing Zen Daijun\" quest."}, + {"id":"1b2c052120f12049","skillId":262,"boss":"Infected Zunraa","mapId":246,"region":"Cantha","points":[[2028,2687]],"note":"Only during \"Cleansing Zen Daijun\" quest."}, + {"id":"c9c35d8b44260b8a","skillId":1688,"boss":"Diseased Zunraa","mapId":246,"region":"Cantha","points":[[2059,2687]],"note":"Only during \"Cleansing Zen Daijun\" quest."}, + {"id":"3156efead3cfbf39","skillId":993,"boss":"The Afflicted Tamaya","mapId":274,"region":"Cantha","points":[[3966,1038]],"note":"As you stand at the starting gate looking into the mesmer area, go in and turn right.\nYou will see 2 afflicted in the next area all by themselves. Kill them and more afflicted will appear.\nKill the new mobs and more will spawn. Do this 3 times and he will appear."}, + {"id":"00c0966a0b67af17","skillId":1198,"boss":"The Afflicted Susei","mapId":274,"region":"Cantha","points":[[4077,1008]],"note":null}, + {"id":"2e2d73d80c450a58","skillId":830,"boss":"The Afflicted Cho","mapId":274,"region":"Cantha","points":[[3936,1133]],"note":null}, + {"id":"e17ed709b70bd681","skillId":863,"boss":"The Afflicted Xi","mapId":274,"region":"Cantha","points":[[4158,1113]],"note":null}, + {"id":"afa4441996f9bbf1","skillId":880,"boss":"The Afflicted Meeka","mapId":274,"region":"Cantha","points":[[3952,930]],"note":null}, + {"id":"af1612d9e79ba757","skillId":185,"boss":"The Afflicted Rasa","mapId":274,"region":"Cantha","points":[[4193,1045]],"note":null}, + {"id":"a29cb2c56b1fca3f","skillId":826,"boss":"The Afflicted Huu","mapId":274,"region":"Cantha","points":[[3945,1161],[4069,938]],"note":null}, + {"id":"78c7e4efadb6cffb","skillId":1268,"boss":"The Afflicted Mei","mapId":274,"region":"Cantha","points":[[4137,913]],"note":"The creature will only spawn when all the afflicted in the room have been killed. You have to move to the lower platform in the room to trigger the spawn."}, + {"id":"ef41cccaaf97ae9e","skillId":992,"boss":"Sheng Pai","mapId":860,"region":"Cantha","points":[[3971,1105]],"note":"Only during \"What Waits in Shadow\" quest."}, + {"id":"fd62f802a8c3ecf3","skillId":1199,"boss":"Jang Wen","mapId":860,"region":"Cantha","points":[[4001,1105]],"note":"Only during \"What Waits in Shadow\" quest."}, + {"id":"67b7a37574c7d2dd","skillId":830,"boss":"Rei Bi","mapId":860,"region":"Cantha","points":[[4032,1105]],"note":"Only during \"What Waits in Shadow\" quest."}, + {"id":"e66d0a400ded19c9","skillId":880,"boss":"Seiran of the Cards","mapId":860,"region":"Cantha","points":[[4062,1105]],"note":"Only during \"What Waits in Shadow\" quest."}, + {"id":"0fd14f9fe804b50e","skillId":988,"boss":"Lai, Graceful Blade","mapId":860,"region":"Cantha","points":[[4092,1105]],"note":"Only during \"What Waits in Shadow\" quest."}, + {"id":"6e8bcd2990da698e","skillId":992,"boss":"Wing, Three Blade","mapId":240,"region":"Cantha","points":[[3089,1053]],"note":"Not during \"Chasing Zenmai\" quest."}, + {"id":"65626524d4969432","skillId":954,"boss":"Jin, the Purifier","mapId":240,"region":"Cantha","points":[[3157,1098]],"note":"Not during \"Chasing Zenmai\" quest."}, + {"id":"e8274bf73c0f054d","skillId":164,"boss":"Chung, the Attuned","mapId":240,"region":"Cantha","points":[[3184,1168]],"note":"Only during \"Eliminate the Am Fah\" quest."}, + {"id":"24975e13fcc88649","skillId":1045,"boss":"Kenshi Steelhand","mapId":240,"region":"Cantha","points":[[3175,1137]],"note":"If \"Eliminate the Jade Brotherhood\" quest is active, Kenshi will spawn twice - once to the southeast of Oroku, once to the southwest. His normal spawn point is to the southwest, but the quest spawns another copy to the southeast at the same time.\nNot during \"Chasing Zenmai\" quest."}, + {"id":"1e993e366533f194","skillId":993,"boss":"Afflicted Guardsman Chun","mapId":240,"region":"Cantha","points":[[3153,931]],"note":"Only during \"The Afflicted Guard\" quest."}, + {"id":"15262df55aa08eca","skillId":1091,"boss":"Eri, Heart of Fire","mapId":240,"region":"Cantha","points":[[3049,1234]],"note":"Only during \"There Goes the Neighborhood\" quest."}, + {"id":"4fb67fd22f67b576","skillId":1129,"boss":"Shen, the Magistrate","mapId":239,"region":"Cantha","points":[[2727,1237]],"note":null}, + {"id":"ee7a153f379ab241","skillId":1091,"boss":"Lian, Dragon's Petal","mapId":239,"region":"Cantha","points":[[2845,1323]],"note":"Will not be there if you have \"Closer to the Stars\" quest and are supposed to talk to Fishmonger Bihzun for the first time."}, + {"id":"e98950767b3c8b00","skillId":1129,"boss":"Quufu","mapId":239,"region":"Cantha","points":[[2666,1227]],"note":"Only during \"Straight to the Top\" quest."}, + {"id":"4e5a94c35538f75f","skillId":988,"boss":"Meijun, Vengeful Eye","mapId":239,"region":"Cantha","points":[[2666,1261]],"note":"Only during \"Family Matters\" quest."}, + {"id":"d13dbae7b34731ed","skillId":1123,"boss":"Ganshu the Scribe","mapId":239,"region":"Cantha","points":[[2638,1213]],"note":"Only during \"The Gangs of Kaineng\" quest."}, + {"id":"11f41c17e0f86aae","skillId":892,"boss":"Sun, the Quivering","mapId":239,"region":"Cantha","points":[[2922,1433]],"note":"The Am Fah must be your enemy in order to encounter Sun, the Quivering. If they are your allies you must do \"Seek out Brother Tosai\" quest and complete either \"Drink from the Chalice of Corruption\" quest or \"Refuse to Drink\" quest."}, + {"id":"049292b8ed0e6d76","skillId":826,"boss":"The Afflicted Miju","mapId":862,"region":"Cantha","points":[],"note":"Only during \"Tracking the Corruption\" quest."}, + {"id":"de5e7ec2802d5bba","skillId":830,"boss":"The Afflicted Miju","mapId":241,"region":"Cantha","points":[[2752,849]],"note":"Not always during \"The Shadow Blades\" quest."}, + {"id":"d3b9cbff891a493c","skillId":298,"boss":"Am Fah Leader","mapId":241,"region":"Cantha","points":[[2796,1046]],"note":"Only during \"Capturing the Orrian Tome\" quest."}, + {"id":"4c8d6f2b7643ba50","skillId":1239,"boss":"Hamato","mapId":241,"region":"Cantha","points":[[2814,1046]],"note":"Only during \"When Kappa Attack\" quest in hard mode."}, + {"id":"2db608a364393c10","skillId":863,"boss":"The Afflicted Huan","mapId":241,"region":"Cantha","points":[[2770,912]],"note":null}, + {"id":"d4b48d11e72f1cbb","skillId":119,"boss":"Chan the Dragon's Blood","mapId":241,"region":"Cantha","points":[[2516,850]],"note":"If Chan is not aggroed, he starts walking and walks all the way to the south-eastern corner of The Undercity, near Mina Shatter Storm."}, + {"id":"972aa008d34ec3bb","skillId":933,"boss":"Mina Shatter Storm","mapId":241,"region":"Cantha","points":[[2738,1043]],"note":"Not during \"Chasing Zenmai\" quest."}, + {"id":"46e655daeb601858","skillId":1091,"boss":"Lale the Vindictive","mapId":241,"region":"Cantha","points":[[2755,1043]],"note":"Only during \"Chasing Zenmai\" quest."}, + {"id":"b2234756ef19531c","skillId":209,"boss":"Baubao Wavewrath","mapId":241,"region":"Cantha","points":[[2759,975]],"note":null}, + {"id":"a16d512e0bf44fc3","skillId":164,"boss":"Chung, the Attuned","mapId":241,"region":"Cantha","points":[[2551,1043]],"note":null}, + {"id":"94b2fbb254d49008","skillId":1042,"boss":"Waeng","mapId":241,"region":"Cantha","points":[[2611,1011]],"note":"Only during \"Assist the Guards\" quest."}, + {"id":"efb171dc6351bafa","skillId":1198,"boss":"Am Fah Courier","mapId":290,"region":"Cantha","points":[[2916,754]],"note":"Only during \"Intercepting the Am Fah\" quest."}, + {"id":"9df2e5b6b20f7292","skillId":151,"boss":"Apep, Unending Night","mapId":872,"region":"Cantha","points":[[2992,789]],"note":"Only during \"Raid on Kaineng Center\" quest."}, + {"id":"2fc5a61bfd6a2b35","skillId":1239,"boss":"Reisen the Phoenix","mapId":872,"region":"Cantha","points":[[2992,816]],"note":"Only during \"Raid on Kaineng Center\" quest."}, + {"id":"b3e0e8fbda2dd505","skillId":993,"boss":"The Afflicted Ako","mapId":215,"region":"Cantha","points":[[3300,1161]],"note":null}, + {"id":"aea4d98b58818692","skillId":1198,"boss":"The Afflicted Huan ","mapId":215,"region":"Cantha","points":[[3322,1161]],"note":"Doesn't always appear."}, + {"id":"77819041c53f74b7","skillId":830,"boss":"The Afflicted Miju","mapId":215,"region":"Cantha","points":[[3344,1161]],"note":null}, + {"id":"3da9c8c51e51fe7b","skillId":863,"boss":"The Afflicted Thu","mapId":215,"region":"Cantha","points":[[3366,1161]],"note":null}, + {"id":"eacef1e93c85ee82","skillId":880,"boss":"The Afflicted Li Yun","mapId":215,"region":"Cantha","points":[[3388,1161]],"note":null}, + {"id":"20142091bfa8306e","skillId":185,"boss":"The Afflicted Kam","mapId":215,"region":"Cantha","points":[[3410,1161]],"note":null}, + {"id":"c57a5e0b9768a520","skillId":826,"boss":"The Afflicted Soon Kim","mapId":215,"region":"Cantha","points":[[3431,1161]],"note":null}, + {"id":"35326ee6a1b29946","skillId":1268,"boss":"The Afflicted Hakaru","mapId":215,"region":"Cantha","points":[[3453,1161]],"note":null}, + {"id":"72ee8b4ac04d6f65","skillId":993,"boss":"The Afflicted Ako","mapId":232,"region":"Cantha","points":[[3412,898]],"note":null}, + {"id":"b2ec238811b91667","skillId":813,"boss":"Hai Jii","mapId":216,"region":"Cantha","points":[[2936,1878]],"note":null}, + {"id":"c5c12b1a446486f9","skillId":205,"boss":"Tahmu","mapId":216,"region":"Cantha","points":[[3042,1857]],"note":null}, + {"id":"26ccfb5bddad10f4","skillId":86,"boss":"Kuonghsang","mapId":216,"region":"Cantha","points":[[3116,1731]],"note":null}, + {"id":"574afa49f0b6372c","skillId":294,"boss":"Kaijun Don","mapId":216,"region":"Cantha","points":[[3031,1682]],"note":null}, + {"id":"37a9282bbdb10d4d","skillId":1202,"boss":"Royen Beastkeeper","mapId":265,"region":"Cantha","points":[[3160,1782]],"note":"Not during \"Nahpui Quarter\" mission."}, + {"id":"ebd79a1105e2bdcf","skillId":817,"boss":"Jeijou, Shadow Whispered","mapId":265,"region":"Cantha","points":[[3018,1700]],"note":"Only during \"Architect of Corruption\" quest."}, + {"id":"cf7be4a3d1a514c4","skillId":282,"boss":"Ziinfaun Lifeforce","mapId":31,"region":"Cantha","points":[[3101,1367]],"note":null}, + {"id":"afa7d984b1f66ee8","skillId":832,"boss":"Ghial the Bone Dancer","mapId":31,"region":"Cantha","points":[[3182,1308]],"note":null}, + {"id":"4565bedfbf0c9d23","skillId":1034,"boss":"Shreader Sharptongue","mapId":31,"region":"Cantha","points":[[3031,1508]],"note":null}, + {"id":"e3ca096c2e41b58e","skillId":913,"boss":"Orosen, Tranquil Acolyte","mapId":31,"region":"Cantha","points":[[3238,1517]],"note":null}, + {"id":"4b295b67b6da7bc9","skillId":1142,"boss":"Bound Jaizhanju","mapId":217,"region":"Cantha","points":[[3896,1320]],"note":null}, + {"id":"f9a36b8ce681b56c","skillId":997,"boss":"Bound Zojun","mapId":217,"region":"Cantha","points":[[3886,1402]],"note":null}, + {"id":"093d3d1c25fcb53d","skillId":812,"boss":"Bound Kaolai","mapId":217,"region":"Cantha","points":[[3859,1439]],"note":null}, + {"id":"bbf4f0e495b6ce6d","skillId":801,"boss":"Bound Vizu","mapId":217,"region":"Cantha","points":[[3807,1375]],"note":null}, + {"id":"f0b42cb5a611802a","skillId":764,"boss":"Bound Naku","mapId":217,"region":"Cantha","points":[[3766,1344]],"note":null}, + {"id":"0196f4c2381b0e8b","skillId":1095,"boss":"Bound Teinai","mapId":217,"region":"Cantha","points":[[3796,1298]],"note":null}, + {"id":"3481773c60fb2e67","skillId":804,"boss":"Bound Kitah","mapId":217,"region":"Cantha","points":[[3729,1301]],"note":null}, + {"id":"f60a526ade2db650","skillId":273,"boss":"Bound Karei","mapId":217,"region":"Cantha","points":[[3858,1293]],"note":null}, + {"id":"0dc74110662ed191","skillId":1255,"boss":"Quansong Spiritspeak","mapId":269,"region":"Cantha","points":[[3792,1156]],"note":"Not during \"A Meeting With the Emperor\" quest."}, + {"id":"d30632422f4e2086","skillId":298,"boss":"Rien, the Martyr","mapId":197,"region":"Cantha","points":[[3363,1613]],"note":null}, + {"id":"03f0664737625e74","skillId":880,"boss":"The Afflicted Li Yun","mapId":197,"region":"Cantha","points":[[3510,1771]],"note":null}, + {"id":"0cea319fb7343312","skillId":185,"boss":"The Afflicted Kam","mapId":197,"region":"Cantha","points":[[3474,1519]],"note":null}, + {"id":"3dd344dc42e705a7","skillId":1042,"boss":"Lou, of the Knives","mapId":197,"region":"Cantha","points":[[3585,1609]],"note":"He is triggered by walking down the stairs into a small sewer full of putrid water, surrounded by Am Fah and Canthan peasants"}, + {"id":"80588718e688c281","skillId":1231,"boss":"Cho, Spirit Empath","mapId":197,"region":"Cantha","points":[[3422,1794]],"note":null}, + {"id":"4d2ac82b22f1489b","skillId":381,"boss":"Warrior's Construct","mapId":220,"region":"Cantha","points":[[3793,1623]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"806c3d3d636bb09c","skillId":1212,"boss":"Ranger's Construct","mapId":220,"region":"Cantha","points":[[3810,1623]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"28a673f60b6f3730","skillId":1123,"boss":"Monk's Construct","mapId":220,"region":"Cantha","points":[[3826,1623]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"a355aed7bc407745","skillId":901,"boss":"Necromancer's Construct","mapId":220,"region":"Cantha","points":[[3793,1639]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"11f0d7f172e890eb","skillId":1053,"boss":"Mesmer's Construct","mapId":220,"region":"Cantha","points":[[3810,1639]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"27722281ddde3cc5","skillId":1098,"boss":"Elemental's Construct","mapId":220,"region":"Cantha","points":[[3826,1639]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"c3c4901c868b0b7c","skillId":988,"boss":"Assassin's Construct","mapId":220,"region":"Cantha","points":[[3810,1656]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"ed27e9807b8e1d62","skillId":1240,"boss":"Ritualist's Construct","mapId":220,"region":"Cantha","points":[[3810,1607]],"note":"Only 4 out of these 8 bosses will appear."}, + {"id":"5ad1689e79f4bc9f","skillId":381,"boss":"Warrior's Construct","mapId":256,"region":"Cantha","points":[[3756,1607]],"note":"Not during \"Sunjiang District\" mission."}, + {"id":"bb98589b4d705dc5","skillId":1212,"boss":"Ranger's Construct","mapId":256,"region":"Cantha","points":[[3803,1759]],"note":"Not during \"Sunjiang District\" mission."}, + {"id":"6ef09ac4f6e1727a","skillId":1123,"boss":"Monk's Construct","mapId":256,"region":"Cantha","points":[[3840,1582]],"note":"Not during \"Sunjiang District\" mission."}, + {"id":"08f5bf7957946260","skillId":901,"boss":"Necromancer's Construct","mapId":256,"region":"Cantha","points":[[3816,1691]],"note":"Not during \"Sunjiang District\" mission."}, + {"id":"ef01021c01659d35","skillId":1053,"boss":"Mesmer's Construct","mapId":256,"region":"Cantha","points":[[3847,1656]],"note":"Not during \"Sunjiang District\" mission."}, + {"id":"4e73e778197d4129","skillId":1098,"boss":"Elemental's Construct","mapId":256,"region":"Cantha","points":[[3885,1654]],"note":"Not during \"Sunjiang District\" mission."}, + {"id":"12e9d4c11d02fdaa","skillId":1198,"boss":"The Afflicted Huan","mapId":256,"region":"Cantha","points":[[3895,1720]],"note":null}, + {"id":"0de0f3b045381f0c","skillId":826,"boss":"The Afflicted Soon Kim","mapId":256,"region":"Cantha","points":[[3925,1574]],"note":"Not during \"Count's Daughter\" quest."}, + {"id":"162513234bf24ea5","skillId":317,"boss":"Arrahhsh Mountainclub","mapId":211,"region":"Cantha","points":[[3941,2063]],"note":null}, + {"id":"c9e2ca145697353e","skillId":461,"boss":"Meynsang the Sadistic","mapId":211,"region":"Cantha","points":[[3885,1856]],"note":null}, + {"id":"019486eb23f0b96c","skillId":354,"boss":"Monstrous Afflicted Warrior","mapId":211,"region":"Cantha","points":[[3862,1892]],"note":"Only during \"Cleansing Pongmei Valley\" quest."}, + {"id":"67001e8fcf190425","skillId":1035,"boss":"Xuekao, the Deceptive","mapId":211,"region":"Cantha","points":[[3766,1922]],"note":null}, + {"id":"215409448459c6bc","skillId":1268,"boss":"The Afflicted Hakaru","mapId":211,"region":"Cantha","points":[[3921,1908]],"note":null}, + {"id":"1073e871013e12a5","skillId":1142,"boss":"Sword Ancient Kai","mapId":225,"region":"Cantha","points":[[3241,817]],"note":null}, + {"id":"10187af460b1d2fb","skillId":997,"boss":"Famished Ancient Brrne","mapId":225,"region":"Cantha","points":[[3364,820]],"note":null}, + {"id":"2fe028fff980abbf","skillId":273,"boss":"Untouched Ancient Ky","mapId":225,"region":"Cantha","points":[[3584,793]],"note":null}, + {"id":"ef16456ad3a0f6c6","skillId":764,"boss":"Doomed Ancient Kkraz","mapId":225,"region":"Cantha","points":[[3323,815]],"note":null}, + {"id":"a7658281d63981b0","skillId":804,"boss":"Arcane Ancient Phi","mapId":225,"region":"Cantha","points":[[3584,816]],"note":null}, + {"id":"0c61e717c03dd617","skillId":1095,"boss":"Star Ancient Koosun","mapId":225,"region":"Cantha","points":[[3400,813]],"note":null}, + {"id":"f2c78968dcf55784","skillId":801,"boss":"Silent Ancient Onata","mapId":225,"region":"Cantha","points":[[3584,839]],"note":null}, + {"id":"fa9a5860cd82a418","skillId":812,"boss":"Defiant Ancient Sseer","mapId":225,"region":"Cantha","points":[[3559,759]],"note":null}, + {"id":"d477bb3d47fea517","skillId":1142,"boss":"Sword Ancient Kai","mapId":233,"region":"Cantha","points":[[3282,815]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"1af2ecc1451dd0b1","skillId":997,"boss":"Famished Ancient Brrne","mapId":233,"region":"Cantha","points":[[3364,800]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"cd78e7bcdfccc2a8","skillId":273,"boss":"Untouched Ancient Ky","mapId":233,"region":"Cantha","points":[[3349,711]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"8c3fe65f407bda48","skillId":764,"boss":"Doomed Ancient Kkraz","mapId":233,"region":"Cantha","points":[[3448,852]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"0150ccac41099adf","skillId":804,"boss":"Arcane Ancient Phi","mapId":233,"region":"Cantha","points":[[3449,780]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"27a78ae0cb34a65a","skillId":1095,"boss":"Star Ancient Koosun","mapId":233,"region":"Cantha","points":[[3304,845]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"659bd6c2b15467af","skillId":801,"boss":"Silent Ancient Onata","mapId":233,"region":"Cantha","points":[[3436,730]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"c2ec871893164049","skillId":1240,"boss":"Defiant Ancient Sseer","mapId":233,"region":"Cantha","points":[[3225,793]],"note":"Not during \"Raisu Palace\" mission."}, + {"id":"cd7f307a76cc694c","skillId":3426,"boss":"Blade Ancient Syu-Shai","mapId":233,"region":"Cantha","points":[[3448,816]],"note":"Not during \"Raisu Palace\" mission.\nOnly if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"7c743a705f624f42","skillId":3429,"boss":"Blade Ancient Syu-Shai","mapId":233,"region":"Cantha","points":[[3464,816]],"note":"Not during \"Raisu Palace\" mission.\nOnly if a player has a \"Proof of Triumph\" in their inventory"}, + {"id":"78f39ba98a851dcd","skillId":3428,"boss":"Blade Ancient Syu-Shai","mapId":233,"region":"Cantha","points":[[3481,816]],"note":"Not during \"Raisu Palace\" mission.\nOnly if a player has a \"Proof of Triumph\" in their inventory"}, + {"id":"6df21139f5f19413","skillId":889,"boss":"Stone Judge","mapId":218,"region":"Cantha","points":[[3550,2587]],"note":null}, + {"id":"8b532bf349d45b05","skillId":961,"boss":"Ryver Mossplanter","mapId":218,"region":"Cantha","points":[[3405,2446]],"note":"Usually behind the urn altar."}, + {"id":"1c8487fd56ee54db","skillId":809,"boss":"The Ancient","mapId":218,"region":"Cantha","points":[[3502,2399]],"note":null}, + {"id":"d6950941237e91ba","skillId":819,"boss":"Dark Fang","mapId":218,"region":"Cantha","points":[[3379,2479]],"note":null}, + {"id":"a1a805a0b501579e","skillId":889,"boss":"Mahr Stonebreaker","mapId":244,"region":"Cantha","points":[[3495,2426]],"note":"Not during \"Arborstone\" mission."}, + {"id":"bae5d94ae7f0ecc1","skillId":961,"boss":"Ryver Mossplanter","mapId":244,"region":"Cantha","points":[[3475,2512]],"note":"Not during \"Arborstone\" mission and \"Song and Stone\" quest."}, + {"id":"64eb583ebdc1d588","skillId":261,"boss":"Meril Stoneweaver","mapId":244,"region":"Cantha","points":[[3383,2532]],"note":"Not during \"Arborstone\" mission."}, + {"id":"2fb00af41fabbc9f","skillId":819,"boss":"Kaswa Webstrider","mapId":244,"region":"Cantha","points":[[3302,2509]],"note":"Not during \"Arborstone\" mission."}, + {"id":"718bf2c53d564255","skillId":142,"boss":"Craw Stonereap","mapId":244,"region":"Cantha","points":[[3446,2578]],"note":"Not during \"Arborstone\" mission."}, + {"id":"e229ed36dffdfe0e","skillId":937,"boss":"Zarnas Stonewrath","mapId":244,"region":"Cantha","points":[[3406,2572]],"note":"Not during \"Arborstone\" mission."}, + {"id":"3daec3b30e453f49","skillId":889,"boss":"Dorn Stonebreaker","mapId":272,"region":"Cantha","points":[[3453,2743]],"note":null}, + {"id":"1ed6f8f448887fd0","skillId":261,"boss":"Ennsa Stoneweaver","mapId":272,"region":"Cantha","points":[[3384,2749]],"note":null}, + {"id":"783a6b48c29f00b5","skillId":822,"boss":"Froth Stonereap","mapId":272,"region":"Cantha","points":[[3457,2682]],"note":null}, + {"id":"8314ff1fbf7784d0","skillId":937,"boss":"Azukhan Stonewrath","mapId":272,"region":"Cantha","points":[[3393,2636]],"note":null}, + {"id":"48e736bd862edb60","skillId":1146,"boss":"Tarnen the Bully","mapId":210,"region":"Cantha","points":[[3636,2765]],"note":null}, + {"id":"869d00fa8bba3b09","skillId":847,"boss":"Mungri Magicbox","mapId":210,"region":"Cantha","points":[[3802,2709]],"note":"Patrols this area."}, + {"id":"e1e83f406d53d491","skillId":132,"boss":"Hargg Plaguebinder","mapId":210,"region":"Cantha","points":[[3756,2883]],"note":null}, + {"id":"4de6cbae4572e57f","skillId":13,"boss":"Mugra Swiftspell","mapId":210,"region":"Cantha","points":[[3709,2969]],"note":null}, + {"id":"b6f7fe852ff3774f","skillId":837,"boss":"Tarlok Evermind","mapId":210,"region":"Cantha","points":[[3835,2750]],"note":null}, + {"id":"a64329a24245e2c1","skillId":799,"boss":"Warden of Saprophytes","mapId":210,"region":"Cantha","points":[[3664,2882]],"note":"Only before completing \"Temple of the Dredge\" quest."}, + {"id":"d8efae2297fb5c29","skillId":771,"boss":"Maximole","mapId":210,"region":"Cantha","points":[[3764,2750]],"note":"Only during \"Revolt of the Dredge\" quest.\nPatrols this area."}, + {"id":"5f67aa170853002d","skillId":771,"boss":"Urkal the Ambusher","mapId":210,"region":"Cantha","points":[[3723,2682]],"note":null}, + {"id":"c73f92bc97f69189","skillId":1239,"boss":"Wagg Spiritspeak","mapId":210,"region":"Cantha","points":[[3783,2810]],"note":null}, + {"id":"095daedb6c474711","skillId":395,"boss":"Chkkr Thousand Tail","mapId":195,"region":"Cantha","points":[[3669,3161]],"note":null}, + {"id":"90807807ebb2321f","skillId":821,"boss":"Bazzr Icewing","mapId":195,"region":"Cantha","points":[[3605,3376]],"note":null}, + {"id":"80679bfbe3a8cbab","skillId":54,"boss":"Bezzr Wingstorm","mapId":195,"region":"Cantha","points":[[3654,3389]],"note":null}, + {"id":"438168bf883ffcae","skillId":1220,"boss":"The Skill Eater","mapId":195,"region":"Cantha","points":[[3745,3409]],"note":null}, + {"id":"1d29d23c3f934965","skillId":1215,"boss":"The Pain Eater","mapId":195,"region":"Cantha","points":[[3745,3386]],"note":null}, + {"id":"cf2d3dc898ceb796","skillId":1200,"boss":"Nundak The Archer","mapId":201,"region":"Cantha","points":[[4164,3126]],"note":"Patrols clockwise in a small circle.\nTogether with Rot Foulbelly."}, + {"id":"48bd3e6c0713e27e","skillId":822,"boss":"Rot Foulbelly","mapId":201,"region":"Cantha","points":[[4186,3126]],"note":"Patrols clockwise in a small circle.\nTogether with Nundak The Archer."}, + {"id":"e714cf881fd5a38c","skillId":1126,"boss":"Byzzr Wingmender","mapId":201,"region":"Cantha","points":[[3924,2998]],"note":null}, + {"id":"7074fe7c765088bb","skillId":1195,"boss":"Salke Fur Friend","mapId":201,"region":"Cantha","points":[[4117,2917]],"note":null}, + {"id":"788f950a6616d8a0","skillId":1030,"boss":"Chkkr Locust Lord","mapId":201,"region":"Cantha","points":[[3994,3012]],"note":null}, + {"id":"b2e4266ffda10c7a","skillId":1257,"boss":"Chkkr Brightclaw","mapId":201,"region":"Cantha","points":[[4061,2900]],"note":null}, + {"id":"315f5916abe9e8d8","skillId":993,"boss":"The Afflicted Maaka","mapId":222,"region":"Cantha","points":[[3823,3508]],"note":null}, + {"id":"a7081982cecfbd6d","skillId":826,"boss":"The Afflicted Senku","mapId":222,"region":"Cantha","points":[[3823,3528]],"note":null}, + {"id":"8db917730810650c","skillId":1268,"boss":"The Afflicted Xenxo","mapId":222,"region":"Cantha","points":[[3823,3549]],"note":null}, + {"id":"853f80c7170e59f7","skillId":355,"boss":"Tembarr Treefall","mapId":128,"region":"Cantha","points":[[3535,3593]],"note":null}, + {"id":"bf92babd6796c98b","skillId":1118,"boss":"The Scar Eater","mapId":128,"region":"Cantha","points":[[3905,3642]],"note":null}, + {"id":"c998673f516247b9","skillId":1115,"boss":"Jayne Forestlight","mapId":128,"region":"Cantha","points":[[3769,3580]],"note":null}, + {"id":"541b7901d07fecdd","skillId":74,"boss":"The Time Eater","mapId":128,"region":"Cantha","points":[[3794,3631]],"note":null}, + {"id":"2b4b9ff194a3448a","skillId":809,"boss":"Wiseroot Shatterstone","mapId":128,"region":"Cantha","points":[[3968,3672]],"note":null}, + {"id":"a8b9eebe244c3d49","skillId":781,"boss":"Bramble Everthorn","mapId":128,"region":"Cantha","points":[[3761,3504]],"note":null}, + {"id":"970c81db9dbe85bf","skillId":1250,"boss":"Flower Spiritgarden","mapId":128,"region":"Cantha","points":[[3800,3678]],"note":null}, + {"id":"a0e4d3aee7e5d5de","skillId":1217,"boss":"Spiritroot Mossbeard","mapId":128,"region":"Cantha","points":[[3643,3664]],"note":null}, + {"id":"439f3cce946d2214","skillId":831,"boss":"Strongroot Tanglebranch","mapId":205,"region":"Cantha","points":[[4379,3495]],"note":null}, + {"id":"4b41b5c8e04207a4","skillId":364,"boss":"Sunreach Warmaker","mapId":205,"region":"Cantha","points":[[4365,3643]],"note":null}, + {"id":"7505b57f8b5b51e1","skillId":1199,"boss":"Nandet, Glass Weaver","mapId":205,"region":"Cantha","points":[[4060,3609]],"note":null}, + {"id":"35edcdb139d5542d","skillId":397,"boss":"Inallay Splintercall","mapId":205,"region":"Cantha","points":[[4130,3646]],"note":null}, + {"id":"8d05e6d7a815915f","skillId":806,"boss":"Kyril Oathwarden","mapId":205,"region":"Cantha","points":[[4304,3638]],"note":null}, + {"id":"e16e976c495987d0","skillId":113,"boss":"Konrru, Tainted Stone","mapId":205,"region":"Cantha","points":[[4216,3663]],"note":null}, + {"id":"883a30ff3649a4f4","skillId":937,"boss":"Arbor Earthcall","mapId":205,"region":"Cantha","points":[[4265,3611]],"note":null}, + {"id":"f8ef0b84dc317c60","skillId":799,"boss":"Falaharn Mistwarden","mapId":205,"region":"Cantha","points":[[4397,3623]],"note":"Only appears when a character approaches his location."}, + {"id":"bbfea542ecbc2a99","skillId":1240,"boss":"Ritualist's Construct","mapId":205,"region":"Cantha","points":[[4428,3476]],"note":null}, + {"id":"1fe8131a5dda2dc1","skillId":354,"boss":"Monstrous Afflicted Warrior","mapId":205,"region":"Cantha","points":[[4179,3696]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"240435eb504767b9","skillId":1726,"boss":"Monstrous Afflicted Ranger","mapId":205,"region":"Cantha","points":[[4193,3696]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"19aab0fc1625ba70","skillId":830,"boss":"Monstrous Afflicted Monk","mapId":205,"region":"Cantha","points":[[4206,3696]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"7b37aab31cadc3b0","skillId":142,"boss":"Monstrous Afflicted Necromancer","mapId":205,"region":"Cantha","points":[[4220,3696]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"1f1cd29844949647","skillId":39,"boss":"Monstrous Afflicted Mesmer","mapId":205,"region":"Cantha","points":[[4179,3727]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"f75cc861738f220e","skillId":1367,"boss":"Monstrous Afflicted Elementalist","mapId":205,"region":"Cantha","points":[[4193,3727]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"e6ef642f7c5c468c","skillId":1649,"boss":"Monstrous Afflicted Assassin","mapId":205,"region":"Cantha","points":[[4206,3727]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"0269b6efbda5f692","skillId":1240,"boss":"Monstrous Afflicted Ritualist","mapId":205,"region":"Cantha","points":[[4220,3727]],"note":"Only during \"Cleansing Morostav Trail\" quest."}, + {"id":"f29fe2a743a897eb","skillId":335,"boss":"Chkkr Ironclaw","mapId":209,"region":"Cantha","points":[[4101,3886]],"note":null}, + {"id":"04d60adcef5967c0","skillId":1066,"boss":"Foalcrest Darkwish","mapId":209,"region":"Cantha","points":[[3686,3868]],"note":null}, + {"id":"fb095dbfee4eccd7","skillId":1649,"boss":"Koon Jizang","mapId":209,"region":"Cantha","points":[[3713,3853]],"note":"Only during \"Trading Blows\" quest."}, + {"id":"d93ecd5e5ec7ed5c","skillId":1553,"boss":"Initiate Shen Wojong","mapId":209,"region":"Cantha","points":[[3713,3883]],"note":"Only during \"Trading Blows\" quest."}, + {"id":"e07e0511c74feb91","skillId":1055,"boss":"Xisni Dream Haunt","mapId":209,"region":"Cantha","points":[[4174,3824]],"note":null}, + {"id":"fffa3520e82bdce1","skillId":900,"boss":"Deeproot Sorrow","mapId":209,"region":"Cantha","points":[[4211,3909]],"note":null}, + {"id":"1a6f9caa8e630ac6","skillId":39,"boss":"Milefaun Mindflayer","mapId":209,"region":"Cantha","points":[[3734,3775]],"note":null}, + {"id":"fd0b4474688fc376","skillId":843,"boss":"Rahse Windcatcher","mapId":209,"region":"Cantha","points":[[4208,3797]],"note":null}, + {"id":"c3ced8e6653ab00c","skillId":218,"boss":"Bizzr Ironshell","mapId":209,"region":"Cantha","points":[[3958,3842]],"note":null}, + {"id":"d6a36c9e65a78407","skillId":1029,"boss":"Darkroot Entrop","mapId":209,"region":"Cantha","points":[[3779,3883]],"note":null}, + {"id":"95e72cdfd16c12ec","skillId":790,"boss":"Bazzr Dustwing","mapId":209,"region":"Cantha","points":[[4242,3857]],"note":null}, + {"id":"2a5a7aec5519aa53","skillId":826,"boss":"Elusive Black Moa","mapId":209,"region":"Cantha","points":[[4174,3865]],"note":"Only during \"Norn Catering\" quest."}, + {"id":"879ae54c6d896ab3","skillId":907,"boss":"Seaguard Eli","mapId":219,"region":"Cantha","points":[[4090,1996]],"note":null}, + {"id":"fb06d82cbe5e0686","skillId":395,"boss":"Aurora","mapId":219,"region":"Cantha","points":[[4112,1996]],"note":null}, + {"id":"1be8efdd92e38f9d","skillId":1198,"boss":"Daeman","mapId":219,"region":"Cantha","points":[[4132,1996]],"note":null}, + {"id":"65b336e263db1d82","skillId":1123,"boss":"Seaguard Gita","mapId":219,"region":"Cantha","points":[[4090,2018]],"note":null}, + {"id":"4d65397889897d03","skillId":803,"boss":"Seaguard Hala","mapId":219,"region":"Cantha","points":[[4112,2018]],"note":null}, + {"id":"624290d80b8f5324","skillId":185,"boss":"Argo","mapId":219,"region":"Cantha","points":[[4132,2018]],"note":null}, + {"id":"e6b220ba957a43ae","skillId":888,"boss":"Geoffer Pain Bringer","mapId":247,"region":"Cantha","points":[[4371,2133]],"note":"Not during \"Boreas Seabed\" mission and \"Protect the Halcyon\" quest."}, + {"id":"834c0000650ce6fa","skillId":907,"boss":"Sskai, Dragon's Birth","mapId":247,"region":"Cantha","points":[[4479,2028]],"note":"Not during \"Boreas Seabed\" mission."}, + {"id":"a7d4cf6eeae9be87","skillId":442,"boss":"Milodestus the Wrangler","mapId":247,"region":"Cantha","points":[[4505,2139]],"note":"Not during \"Boreas Seabed\" mission."}, + {"id":"e8a660fd4f45c32c","skillId":987,"boss":"Ilidus of the Empty Palm","mapId":247,"region":"Cantha","points":[[4533,1963]],"note":"Not during \"Boreas Seabed\" mission.\nNot during \"The Halcyon Job\" quest."}, + {"id":"05cb7e41042d23e2","skillId":987,"boss":"Senkai, Lord of the 1,000 Daggers Guild","mapId":247,"region":"Cantha","points":[[4516,1963]],"note":"Not during \"Boreas Seabed\" mission.\nOnly during \"The Halcyon Job\" quest."}, + {"id":"a34bdccb4616faae","skillId":853,"boss":"Razortongue Frothspit","mapId":198,"region":"Cantha","points":[[4464,2373]],"note":null}, + {"id":"62e36183d09f747f","skillId":867,"boss":"KaySey Stormray","mapId":198,"region":"Cantha","points":[[4531,2394]],"note":null}, + {"id":"431375136b36fe4b","skillId":941,"boss":"Ssuns, Blessed of Dwayna","mapId":198,"region":"Cantha","points":[[4587,2505]],"note":null}, + {"id":"64c19bc75543ee81","skillId":817,"boss":"Xiriss Stickleback","mapId":198,"region":"Cantha","points":[[4578,2539]],"note":"Only during \"Night Raiders\" quest."}, + {"id":"6f03d7b58b1de2dc","skillId":79,"boss":"Siska Scalewand","mapId":198,"region":"Cantha","points":[[4453,2452]],"note":null}, + {"id":"e8a7db68c1150748","skillId":1088,"boss":"Snapjaw Windshell","mapId":198,"region":"Cantha","points":[[4420,2528]],"note":null}, + {"id":"9430a407e4d3e52a","skillId":789,"boss":"Ssyn Coiled Grasp","mapId":198,"region":"Cantha","points":[[4461,2496]],"note":null}, + {"id":"cfe20319293edbfe","skillId":448,"boss":"Stsou Swiftscale","mapId":199,"region":"Cantha","points":[[4808,2296]],"note":"If you entered Maishang Hills having \"Attack the Kurzicks\" quest, neither this boss nor any normal enemies around Gyala Hatchery will appear."}, + {"id":"a0fe0ca0d0cde118","skillId":817,"boss":"Sessk, Woe Spreader","mapId":199,"region":"Cantha","points":[[4987,2218]],"note":null}, + {"id":"0320ecfe27e86ee5","skillId":1083,"boss":"Seacrash, Elder Guardian","mapId":199,"region":"Cantha","points":[[4600,2167]],"note":null}, + {"id":"f925d5744459649d","skillId":205,"boss":"Sarss, Stormscale","mapId":199,"region":"Cantha","points":[[4781,2141]],"note":null}, + {"id":"226d877475d3c717","skillId":827,"boss":"Ssaresh Rattler","mapId":199,"region":"Cantha","points":[[4585,2192]],"note":"Not during \"Stolen Eggs\" quest."}, + {"id":"c48b5a5d46b5c7e7","skillId":869,"boss":"Kayali the Brave","mapId":200,"region":"Cantha","points":[[4157,2336]],"note":null}, + {"id":"fa10e2956e231d64","skillId":317,"boss":"Arrahhsh Mountainclub","mapId":200,"region":"Cantha","points":[[3916,2203]],"note":"Only during \"Return of the Yeti\" quest."}, + {"id":"4af3f5a225a9fe75","skillId":946,"boss":"Chehbaba Roottripper","mapId":200,"region":"Cantha","points":[[3832,2376]],"note":null}, + {"id":"6413b1cabb53b09f","skillId":942,"boss":"Hukhrah Earthslove","mapId":200,"region":"Cantha","points":[[3894,2209]],"note":null}, + {"id":"c475089b41960924","skillId":914,"boss":"Tomton Spiriteater","mapId":200,"region":"Cantha","points":[[3850,2295]],"note":null}, + {"id":"db5647ade8119c74","skillId":831,"boss":"Reefclaw Ragebound","mapId":144,"region":"Cantha","points":[[4868,2733]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"570b72b0b7c42f20","skillId":364,"boss":"Jacqui The Reaver","mapId":144,"region":"Cantha","points":[[4819,2668]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"5cfe481eda8fbfcd","skillId":113,"boss":"Lukrker Foulfist","mapId":144,"region":"Cantha","points":[[5011,2477]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"064242909b1d0018","skillId":74,"boss":"Mohby Windbeak","mapId":144,"region":"Cantha","points":[[4867,2626]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"141a5d323a04c718","skillId":937,"boss":"Bahnba Shockfoot","mapId":144,"region":"Cantha","points":[[4946,2562]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"6c6ae24f86abd266","skillId":218,"boss":"Whyk Steelshell","mapId":144,"region":"Cantha","points":[[4787,2648]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"b3686eaf297bbfd4","skillId":799,"boss":"Razorfang Hazeclaw","mapId":144,"region":"Cantha","points":[[4996,2568]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"fa32c34d11ec372a","skillId":1250,"boss":"Soulwhisper, Elder Guardian","mapId":144,"region":"Cantha","points":[[4833,2772]],"note":"Not during \"Gyala Hatchery\" mission."}, + {"id":"f376be267d177f2e","skillId":880,"boss":"Ajun Xi, Deft Blade","mapId":144,"region":"Cantha","points":[[4933,2603]],"note":"Only during \"Ever Closer to the Edge\" quest."}, + {"id":"87ae636fcae0fb4d","skillId":317,"boss":"Initiate Jeng Sunjoo","mapId":144,"region":"Cantha","points":[[4960,2603]],"note":"Only during \"Ever Closer to the Edge\" quest."}, + {"id":"392856eb95fd18be","skillId":1199,"boss":"Lorelle Jade Cutter","mapId":202,"region":"Cantha","points":[[5242,2831]],"note":null}, + {"id":"18f149f42e47fad8","skillId":335,"boss":"Razorfin Fleshrend","mapId":202,"region":"Cantha","points":[[5157,3073]],"note":null}, + {"id":"41d28e6a677d31f7","skillId":1118,"boss":"Incetol, Devout of Depths","mapId":202,"region":"Cantha","points":[[5122,2718]],"note":null}, + {"id":"6dbef39a724d10ca","skillId":806,"boss":"Cultist Milthuran","mapId":202,"region":"Cantha","points":[[5293,2914]],"note":null}, + {"id":"ce6684e289a3a566","skillId":1055,"boss":"Talous the Mad","mapId":202,"region":"Cantha","points":[[5145,2988]],"note":null}, + {"id":"7514765aa3c78c70","skillId":809,"boss":"Wavecrest Stonebreak","mapId":202,"region":"Cantha","points":[[5201,2942]],"note":"Wanders around the eastern perimeter once you go near the spawn point.\nGroup sometimes gets attacked by other monsters but usually wins the fight."}, + {"id":"5ea8636c6b369d26","skillId":1029,"boss":"Arius, Dark Apostle","mapId":202,"region":"Cantha","points":[[5126,2847]],"note":"Depending on where you entered Arius could have already been killed by other mobs by the time you reach this location.\nStill possible to capture the skill."}, + {"id":"15fefb62c7129451","skillId":790,"boss":"Delic the Vengeance Seeker","mapId":202,"region":"Cantha","points":[[5155,2763]],"note":null}, + {"id":"8bb7e658f213ef74","skillId":355,"boss":"Sentasi, The Jade Maul","mapId":203,"region":"Cantha","points":[[4864,2995]],"note":null}, + {"id":"b826f86b7cbc640c","skillId":397,"boss":"Razorjaw Longspine","mapId":203,"region":"Cantha","points":[[4838,3035]],"note":null}, + {"id":"311aa2fb1358b8e6","skillId":1115,"boss":"Miella Lightwing","mapId":203,"region":"Cantha","points":[[4902,3269]],"note":"Patrols the area just outside Unwaking Waters (Luxon)."}, + {"id":"2cf2b3dbd8c2154d","skillId":294,"boss":"Scourgewind, Elder Guardian","mapId":203,"region":"Cantha","points":[[4963,2888]],"note":null}, + {"id":"0a89d07676109680","skillId":1066,"boss":"Sourbeak Rotshell","mapId":203,"region":"Cantha","points":[[4857,3198]],"note":null}, + {"id":"ea2d6cf035bd00bc","skillId":900,"boss":"Kenrii Sea Sorrow","mapId":203,"region":"Cantha","points":[[4848,3128]],"note":null}, + {"id":"349a6e9fc00166b0","skillId":843,"boss":"Amadis, Wind of the Sea","mapId":203,"region":"Cantha","points":[[4911,3161]],"note":"Patrols off the southern coast of the middle island.\nGets into fight with several groups of jade fish and will be killed when nearly back to the starting point."}, + {"id":"f47e97f5e4df65e8","skillId":988,"boss":"Assassin's Construct","mapId":203,"region":"Cantha","points":[[4927,3085]],"note":null}, + {"id":"0dd6eef7cbc79d58","skillId":1217,"boss":"Whispering Ritual Lord","mapId":203,"region":"Cantha","points":[[4979,3231]],"note":"Not during \"The Dragon Hunter\" quest.\nMakes a small rotation south of where the map indicates."}, + {"id":"999b2cd9021f51be","skillId":1198,"boss":"The Afflicted Pana","mapId":204,"region":"Cantha","points":[[4656,3251]],"note":null}, + {"id":"136796b6459fc6c6","skillId":863,"boss":"The Afflicted Lau","mapId":204,"region":"Cantha","points":[[4637,3251]],"note":null}, + {"id":"5f70e0a2fb3c1310","skillId":880,"boss":"The Afflicted Hsin Jun","mapId":204,"region":"Cantha","points":[[4616,3251]],"note":null}, + {"id":"7b0b57101018c564","skillId":185,"boss":"The Afflicted Shen","mapId":204,"region":"Cantha","points":[[4596,3251]],"note":null}, + {"id":"9dd3d2fc72705230","skillId":826,"boss":"The Afflicted Senku","mapId":204,"region":"Cantha","points":[[4574,3251]],"note":null}, + {"id":"c69c54dfa516a5c1","skillId":1268,"boss":"The Afflicted Xenxo","mapId":204,"region":"Cantha","points":[[4553,3251]],"note":null}, + {"id":"773f888439072a87","skillId":364,"boss":"Merki The Reaver","mapId":227,"region":"Cantha","points":[[4700,3287]],"note":"Not during \"Unwaking Waters\" mission."}, + {"id":"0020813915415ce0","skillId":806,"boss":"Cultist Rajazan","mapId":227,"region":"Cantha","points":[[4511,3359]],"note":"Not during \"Unwaking Waters\" mission."}, + {"id":"00a9935f38a10063","skillId":1057,"boss":"Chazek Plague Herder","mapId":227,"region":"Cantha","points":[[4593,3331]],"note":"Not during \"Unwaking Waters\" mission."}, + {"id":"4ce3b7db3c55f708","skillId":836,"boss":"Kunvie Firewing","mapId":227,"region":"Cantha","points":[[4548,3322]],"note":"Not during \"Unwaking Waters\" mission."}, + {"id":"01c710d477aec9d9","skillId":928,"boss":"Shrouded Oni","mapId":227,"region":"Cantha","points":[[4582,3409]],"note":"Not during \"Unwaking Waters\" mission."}, + {"id":"08871e3071605510","skillId":269,"boss":"Kepkhet Marrowfeast","mapId":113,"region":"Tyria","points":[[6597,8226]],"note":null}, + {"id":"5a11f339b9193002","skillId":430,"boss":"Custodian Kora","mapId":116,"region":"Tyria","points":[[6290,8841]],"note":null}, + {"id":"3aec35f2aefd3041","skillId":282,"boss":"Dassk Arossyss","mapId":116,"region":"Tyria","points":[[6250,8835]],"note":null}, + {"id":"abd46acb8b44511f","skillId":148,"boss":"Byssha Hisst","mapId":116,"region":"Tyria","points":[[6319,8839]],"note":null}, + {"id":"e485b7f39bf4c046","skillId":181,"boss":"Cyss Gresshla","mapId":116,"region":"Tyria","points":[[6246,8869]],"note":null}, + {"id":"7c4d325f683f9cb1","skillId":13,"boss":"Ayassah Hess","mapId":116,"region":"Tyria","points":[[6291,8700]],"note":null}, + {"id":"f4fbf0e54aec5eaa","skillId":181,"boss":"Issah Sshay","mapId":117,"region":"Tyria","points":[[7370,8648]],"note":null}, + {"id":"0194cfb746bd5e4d","skillId":13,"boss":"Goss Aleessh","mapId":117,"region":"Tyria","points":[[7443,8574]],"note":null}, + {"id":"4af1e12c1731e18b","skillId":148,"boss":"Hessper Sasso","mapId":117,"region":"Tyria","points":[[7367,8594]],"note":null}, + {"id":"0237065a7c4fa0a1","skillId":282,"boss":"Josso Essher","mapId":117,"region":"Tyria","points":[[7327,8639]],"note":null}, + {"id":"044dc97f5cec219e","skillId":430,"boss":"Custodian Phebus","mapId":117,"region":"Tyria","points":[[7275,8648]],"note":null}, + {"id":"3e3a5d4765fea8f2","skillId":374,"boss":"Custodian Hulgar","mapId":117,"region":"Tyria","points":[[7286,8587]],"note":null}, + {"id":"0e0e84cb96d89cd0","skillId":374,"boss":"Custodian Dellus","mapId":118,"region":"Tyria","points":[[6634,7747]],"note":"Spawns in one of the six locations."}, + {"id":"7fb8fa28ef13ac7c","skillId":13,"boss":"Tiss Danssir","mapId":118,"region":"Tyria","points":[[6653,7747]],"note":"Spawns in one of the six locations."}, + {"id":"ff91c95d4506598a","skillId":430,"boss":"Custodian Jenus","mapId":118,"region":"Tyria","points":[[6672,7747]],"note":"Spawns in one of the six locations."}, + {"id":"e92e327dd911e38f","skillId":282,"boss":"Wissper Inssani","mapId":118,"region":"Tyria","points":[[6691,7747]],"note":"Spawns in one of the six locations."}, + {"id":"478d2464453f210f","skillId":148,"boss":"Uussh Visshta","mapId":118,"region":"Tyria","points":[[6711,7747]],"note":"Spawns in one of the six locations."}, + {"id":"7241cb7cbea026ec","skillId":181,"boss":"Vassa Ssiss","mapId":118,"region":"Tyria","points":[[6730,7747]],"note":"Spawns in one of the six locations."}, + {"id":"0320630d6c3c5757","skillId":54,"boss":"Yxthoshth","mapId":114,"region":"Tyria","points":[[6590,7475]],"note":"Only during \"The Ranger's Path\" quest."}, + {"id":"0a5dfee04117da73","skillId":205,"boss":"Facet of Elements","mapId":120,"region":"Tyria","points":[[6630,7080]],"note":"Facet number 5."}, + {"id":"1f865d463b83dadb","skillId":82,"boss":"Facet of Chaos","mapId":120,"region":"Tyria","points":[[6432,7124]],"note":"Facet number 3."}, + {"id":"4933d0b1e8800afd","skillId":86,"boss":"Facet of Darkness","mapId":120,"region":"Tyria","points":[[6541,7151]],"note":"Facet number 4."}, + {"id":"e269e912ba24e3b7","skillId":261,"boss":"Facet of Light","mapId":120,"region":"Tyria","points":[[6471,6910]],"note":"Facet number 1."}, + {"id":"6b4ba185779f868f","skillId":451,"boss":"Facet of Nature","mapId":120,"region":"Tyria","points":[[6404,7024]],"note":"Facet number 2."}, + {"id":"5484656ef5622141","skillId":372,"boss":"Facet of Strength","mapId":120,"region":"Tyria","points":[[6602,6938]],"note":"Facet number 6."}, + {"id":"f2cbd6cd508d548a","skillId":270,"boss":"Quickroot","mapId":90,"region":"Tyria","points":[[4736,4318],[4826,4314],[4686,4842]],"note":null}, + {"id":"936b563ac6ddbe54","skillId":146,"boss":"Tonfor Copperblood","mapId":90,"region":"Tyria","points":[[4632,4652],[4845,4838]],"note":"Shared spawn. Does not always spawn."}, + {"id":"f16a5ee1cc3b4847","skillId":318,"boss":"Clobberhusk","mapId":90,"region":"Tyria","points":[[4703,4842],[4719,4318],[4843,4314]],"note":null}, + {"id":"f0fad8e7bee5ee09","skillId":54,"boss":"Erzek Runebreaker","mapId":90,"region":"Tyria","points":[[4648,4652],[4862,4838]],"note":"Shared spawn. Does not always spawn."}, + {"id":"551d2bbccba737a7","skillId":237,"boss":"Chunk Clumpfoot","mapId":90,"region":"Tyria","points":[[4665,4652],[4854,4855]],"note":"Shared spawn. Does not always spawn."}, + {"id":"198bdef94c74378c","skillId":151,"boss":"Maw the Mountain Heart","mapId":97,"region":"Tyria","points":[[4802,5177]],"note":"If Maw dies under ground (due to degen), you will not be able to use a Signet of Capture to capture his elite"}, + {"id":"539ed05027e72410","skillId":354,"boss":"Kor Stonewrath","mapId":91,"region":"Tyria","points":[[4678,5260],[4638,5433],[4643,5568]],"note":null}, + {"id":"e5e9986aa05de5cd","skillId":317,"boss":"Smukk Foombool","mapId":91,"region":"Tyria","points":[[4656,5359],[4725,5873]],"note":null}, + {"id":"a8f34a7f338a8c54","skillId":409,"boss":"Thul Boulderrain","mapId":91,"region":"Tyria","points":[[4695,5260],[4659,5568],[4655,5433]],"note":null}, + {"id":"fa67b787606a8a22","skillId":448,"boss":"Whuup Buumbuul","mapId":91,"region":"Tyria","points":[[4673,5359],[4741,5873]],"note":null}, + {"id":"e26788b4f47286c3","skillId":266,"boss":"Marnta Doomspeaker","mapId":91,"region":"Tyria","points":[[4766,5910]],"note":null}, + {"id":"b134b53abdf61293","skillId":273,"boss":"Raptorhawk","mapId":91,"region":"Tyria","points":[[4655,6111],[4634,5503],[4758,5496]],"note":null}, + {"id":"4957023197592ade","skillId":294,"boss":"Fawl Driftstalker","mapId":91,"region":"Tyria","points":[[4776,5600],[4766,5755],[4765,5821],[4706,5933]],"note":null}, + {"id":"dbc4a661e2e29368","skillId":119,"boss":"Cry Darkday","mapId":91,"region":"Tyria","points":[[4767,5934]],"note":null}, + {"id":"7b77fd3ae863ef2b","skillId":121,"boss":"Sapph Blacktracker","mapId":91,"region":"Tyria","points":[[4792,5600],[4782,5755],[4781,5821],[4722,5933]],"note":null}, + {"id":"2653652eb1984549","skillId":33,"boss":"Didn Hopestealer","mapId":91,"region":"Tyria","points":[[4792,5616],[4782,5771],[4781,5837],[4722,5949]],"note":null}, + {"id":"a4dc937f12dae1eb","skillId":82,"boss":"Featherclaw","mapId":91,"region":"Tyria","points":[[4671,6111],[4651,5503],[4774,5496]],"note":null}, + {"id":"a94aa693c47e5a2e","skillId":226,"boss":"Old Red Claw","mapId":91,"region":"Tyria","points":[[4663,6095],[4643,5519],[4766,5512]],"note":null}, + {"id":"daeeeb320a8998e5","skillId":236,"boss":"Sala Chillbringer","mapId":91,"region":"Tyria","points":[[4776,5616],[4765,5837],[4706,5949],[4766,5771]],"note":null}, + {"id":"ef4ba45ed10d36cd","skillId":375,"boss":"Thorgall Bludgeonhammer","mapId":191,"region":"Tyria","points":[[4870,5740]],"note":"Spawns in one of the 10 spots."}, + {"id":"04e126d4f3652c53","skillId":429,"boss":"Gargash Thornbeard","mapId":191,"region":"Tyria","points":[[4893,5740]],"note":"Spawns in one of the 10 spots."}, + {"id":"302c2f74277348e8","skillId":269,"boss":"Wroth Yakslapper","mapId":191,"region":"Tyria","points":[[4917,5740]],"note":"Spawns in one of the 10 spots."}, + {"id":"ba0fea15869cdbc3","skillId":146,"boss":"Morgriff Shadestone","mapId":191,"region":"Tyria","points":[[4940,5740]],"note":"Spawns in one of the 10 spots."}, + {"id":"dbd9df8fad897512","skillId":54,"boss":"Gorrel Rockmolder","mapId":191,"region":"Tyria","points":[[4963,5740]],"note":"Spawns in one of the 10 spots."}, + {"id":"40528dd21bb6d2c4","skillId":237,"boss":"Flint Fleshcleaver","mapId":191,"region":"Tyria","points":[[4986,5740]],"note":"Spawns in one of the 10 spots."}, + {"id":"f4d56e7b3532d78f","skillId":317,"boss":"Krogg Shmush","mapId":26,"region":"Tyria","points":[[4921,6503],[4962,6425]],"note":null}, + {"id":"43b26ed9a7cd5369","skillId":448,"boss":"Whuup Buumbuul","mapId":26,"region":"Tyria","points":[[4937,6503],[4978,6425]],"note":null}, + {"id":"6433331a169add8d","skillId":365,"boss":"Jono Yawpyawl","mapId":26,"region":"Tyria","points":[[4908,6149],[5015,6162],[5097,6173],[5147,6329]],"note":"Shared spawn. Does not always spawn."}, + {"id":"9569cf5fa234b415","skillId":404,"boss":"Kekona Pippip","mapId":26,"region":"Tyria","points":[[4925,6149],[5032,6162],[5114,6173],[5163,6329]],"note":"Shared spawn. Does not always spawn."}, + {"id":"20f7921d7d34b22d","skillId":132,"boss":"Allobo Dimdim","mapId":26,"region":"Tyria","points":[[4925,6166],[5032,6178],[5114,6189],[5163,6345]],"note":"Shared spawn. Does not always spawn."}, + {"id":"230de769d8fbea72","skillId":227,"boss":"Edibbo Pekpek","mapId":26,"region":"Tyria","points":[[4908,6166],[5015,6178],[5097,6189],[5147,6345]],"note":"Shared spawn. Does not always spawn."}, + {"id":"3ca2c5db281f068f","skillId":294,"boss":"Frostbite","mapId":26,"region":"Tyria","points":[[4843,6190],[4859,6247],[4949,6236]],"note":"Shared spawn. Does not always spawn."}, + {"id":"cdc36015057f8ae9","skillId":236,"boss":"Brrrr Windburn","mapId":26,"region":"Tyria","points":[[4859,6190],[4876,6247],[4966,6236]],"note":"Shared spawn. Does not always spawn."}, + {"id":"1a57805c2b2b2cbb","skillId":33,"boss":"Seear Windlash","mapId":26,"region":"Tyria","points":[[4859,6207],[4876,6263],[4966,6252]],"note":"Shared spawn. Does not always spawn."}, + {"id":"d811968e90330136","skillId":121,"boss":"Nighh SpineChill","mapId":26,"region":"Tyria","points":[[4843,6207],[4859,6263],[4949,6252]],"note":"Shared spawn. Does not always spawn."}, + {"id":"1466b0775c99a2d1","skillId":335,"boss":"Arlak Stoneleaf","mapId":22,"region":"Tyria","points":[[5776,6419]],"note":null}, + {"id":"945503a1ce87b0c6","skillId":335,"boss":"Virag Bladestone","mapId":22,"region":"Tyria","points":[[5713,6343]],"note":null}, + {"id":"5b0faf9193f7fe6d","skillId":269,"boss":"Darda Goldenchief","mapId":22,"region":"Tyria","points":[[5770,6375]],"note":null}, + {"id":"1753044bab62571c","skillId":146,"boss":"Hormak Ironcurse","mapId":22,"region":"Tyria","points":[[5408,6412]],"note":null}, + {"id":"ce12a47472081ae3","skillId":54,"boss":"Jonar Stonebender","mapId":22,"region":"Tyria","points":[[5474,6455]],"note":null}, + {"id":"421347a321b2a2b0","skillId":237,"boss":"Berg Frozenfist","mapId":22,"region":"Tyria","points":[[5680,6425]],"note":null}, + {"id":"03aac86bdeb88faf","skillId":268,"boss":"Ipillo Wupwup","mapId":95,"region":"Tyria","points":[[5347,6651],[5393,6622],[5469,6600],[5465,6660]],"note":"Shared spawn. Does not always spawn."}, + {"id":"f847c3da2dc3e6a4","skillId":365,"boss":"Sakalo Yawpyawl","mapId":95,"region":"Tyria","points":[[5363,6651],[5410,6622],[5485,6600],[5481,6660]],"note":"Shared spawn. Does not always spawn."}, + {"id":"6c158ad7b97d8255","skillId":404,"boss":"Salani Pippip","mapId":95,"region":"Tyria","points":[[5347,6667],[5393,6638],[5465,6677],[5469,6617]],"note":"Shared spawn. Does not always spawn."}, + {"id":"da4d4d70ee8f9d9b","skillId":227,"boss":"Alana Pekpek","mapId":95,"region":"Tyria","points":[[5363,6667],[5410,6638],[5481,6677],[5485,6617]],"note":"Shared spawn. Does not always spawn."}, + {"id":"e4df2b6a02ac61e7","skillId":132,"boss":"Karobo Dimdim","mapId":95,"region":"Tyria","points":[[5355,6684],[5402,6655],[5474,6693],[5477,6633]],"note":"Shared spawn. Does not always spawn."}, + {"id":"28662427581ce790","skillId":79,"boss":"Sniik Hungrymind","mapId":95,"region":"Tyria","points":[[5580,6671],[5561,6719]],"note":null}, + {"id":"f5e5f1f3a681d3e1","skillId":209,"boss":"Maak Frostfriend","mapId":95,"region":"Tyria","points":[[5577,6719],[5596,6671]],"note":null}, + {"id":"041eaf36b8eac376","skillId":294,"boss":"Frostbite","mapId":94,"region":"Tyria","points":[[6277,6164]],"note":"Walk into the circle of stones. Frostbite is hidden there.\nFrostbite appears 1 out of 4 times"}, + {"id":"a0626b6a3c7bac46","skillId":79,"boss":"Gambol Headrainer","mapId":94,"region":"Tyria","points":[[6063,6496],[6206,6475]],"note":null}, + {"id":"3b73dac9ae2ebd10","skillId":209,"boss":"Skitt Skizzle","mapId":94,"region":"Tyria","points":[[6222,6475],[6047,6496]],"note":null}, + {"id":"1b858cdc1e5a526f","skillId":228,"boss":"Mursaat Elementalist","mapId":94,"region":"Tyria","points":[[5965,6362],[5898,6297],[6121,6177],[6184,6158]],"note":"Shared spawn. Does not always spawn."}, + {"id":"ae41159a55deb62d","skillId":260,"boss":"Mursaat Monk ","mapId":94,"region":"Tyria","points":[[6167,6158],[6104,6177]],"note":"Shared spawn. Does not always spawn."}, + {"id":"40043c292e5c33ef","skillId":429,"boss":"Ulhar Stonehound","mapId":23,"region":"Tyria","points":[[6420,5930],[6410,6019]],"note":"Shared spawn. Does not always spawn."}, + {"id":"e9f547cfb0b2f166","skillId":335,"boss":"Gornar Bellybreaker","mapId":23,"region":"Tyria","points":[[6426,6019],[6436,5930]],"note":"Shared spawn. Does not always spawn."}, + {"id":"d3d6e33d3166c432","skillId":405,"boss":"Perfected Cloak","mapId":23,"region":"Tyria","points":[[6417,5829]],"note":"During the siege. Does not always spawn."}, + {"id":"9ef778dfd83ffe34","skillId":355,"boss":"Perfected Armor","mapId":23,"region":"Tyria","points":[[6433,5829]],"note":"During the siege. Does not always spawn."}, + {"id":"632d38a07280b5e6","skillId":260,"boss":"Demetrios the Enduring","mapId":23,"region":"Tyria","points":[[6450,5829]],"note":"During the siege. Does not always spawn."}, + {"id":"b1afcd99b4bb8d06","skillId":126,"boss":"Argyris the Scoundrel","mapId":23,"region":"Tyria","points":[[6417,5845]],"note":"During the siege. Does not always spawn."}, + {"id":"40a4fdc4e29ddf75","skillId":228,"boss":"Chrysos the Magnetic","mapId":23,"region":"Tyria","points":[[6433,5845]],"note":"During the siege. Does not always spawn."}, + {"id":"530e6a8fe98048b0","skillId":39,"boss":"Panthar The Deceiver","mapId":23,"region":"Tyria","points":[[6450,5845]],"note":"During the siege. Does not always spawn."}, + {"id":"b4025661d9d83208","skillId":269,"boss":"Bolis Hillshaker","mapId":23,"region":"Tyria","points":[[6452,5930],[6443,6019]],"note":"Shared spawn. Does not always spawn."}, + {"id":"b59498c556064789","skillId":146,"boss":"Riine Windrot","mapId":23,"region":"Tyria","points":[[6420,5947],[6410,6036]],"note":"Shared spawn. Does not always spawn."}, + {"id":"3994e8d225fe18e9","skillId":54,"boss":"Fuury Stonewrath","mapId":23,"region":"Tyria","points":[[6436,5947],[6426,6036]],"note":"Shared spawn. Does not always spawn."}, + {"id":"5578fd87bf469b80","skillId":237,"boss":"The Judge","mapId":23,"region":"Tyria","points":[[6452,5947],[6443,6036]],"note":"Shared spawn. Does not always spawn."}, + {"id":"20fbfdf9a7fd3849","skillId":429,"boss":"Resnar Mountainsight","mapId":98,"region":"Tyria","points":[[5626,6114],[5667,6012],[5628,5956],[5733,6022],[5847,6041]],"note":"Shared spawn. Does not always spawn."}, + {"id":"fe2c7bfb05666539","skillId":237,"boss":"Boreal Kubeclaw","mapId":98,"region":"Tyria","points":[[5643,6114],[5684,6012],[5644,5956],[5750,6022],[5863,6041]],"note":"Shared spawn. Does not always spawn."}, + {"id":"ee23b365c7ab9c7e","skillId":335,"boss":"Linka Goldensteel","mapId":98,"region":"Tyria","points":[[5659,6114],[5700,6012],[5661,5956],[5766,6022],[5880,6041]],"note":"Shared spawn. Does not always spawn."}, + {"id":"9716412ed1511ecc","skillId":54,"boss":"Barl Stormsiege","mapId":98,"region":"Tyria","points":[[5667,6029],[5626,6130],[5628,5973],[5733,6038],[5847,6058]],"note":"Shared spawn. Does not always spawn."}, + {"id":"0dc2b638886b1a01","skillId":146,"boss":"Jollen Steelblight","mapId":98,"region":"Tyria","points":[[5643,6130],[5750,6038],[5863,6058],[5684,6029],[5644,5973]],"note":"Shared spawn. Does not always spawn."}, + {"id":"5377babad28d6444","skillId":269,"boss":"Mesqul Ironhealer","mapId":98,"region":"Tyria","points":[[5659,6130],[5766,6038],[5880,6058],[5700,6029],[5661,5973]],"note":"Shared spawn. Does not always spawn."}, + {"id":"05b5d269043135b2","skillId":86,"boss":"Mragga","mapId":98,"region":"Tyria","points":[[5629,5870]],"note":"Only during \"The Hero's Challenge\" quest."}, + {"id":"68bdecbf44f8394a","skillId":318,"boss":"Obrhit Barkwood","mapId":98,"region":"Tyria","points":[[5707,5912],[5730,5955],[5781,5973],[5766,6106],[5595,6022]],"note":null}, + {"id":"60b52b73039dc79f","skillId":270,"boss":"Esnhal Hardwood","mapId":98,"region":"Tyria","points":[[5724,5912],[5747,5955],[5798,5973],[5782,6106],[5611,6022]],"note":null}, + {"id":"240d20c81ca2981d","skillId":107,"boss":"Unthet Rotwood","mapId":98,"region":"Tyria","points":[[5707,5929],[5730,5971],[5781,5989],[5766,6122],[5595,6038]],"note":null}, + {"id":"0e513dac47167452","skillId":239,"boss":"Arkhel Havenwood","mapId":98,"region":"Tyria","points":[[5724,5929],[5798,5989],[5782,6122],[5611,6038],[5745,5971]],"note":null}, + {"id":"2fd02e39bc4d08db","skillId":335,"boss":"Marika Granitehand","mapId":24,"region":"Tyria","points":[[5932,5596],[5963,5648]],"note":"Shared spawn. Does not always spawn."}, + {"id":"af5c5850379a56f2","skillId":269,"boss":"Lokar Icemender","mapId":24,"region":"Tyria","points":[[5948,5596],[5980,5648]],"note":"Shared spawn. Does not always spawn."}, + {"id":"cf1edb9ba066f696","skillId":375,"boss":"Slonak Copperbark","mapId":24,"region":"Tyria","points":[[5940,5612],[5972,5664]],"note":"Shared spawn. Does not always spawn."}, + {"id":"38d9f9e97d131e76","skillId":405,"boss":"Hilios the Dutiful","mapId":24,"region":"Tyria","points":[[6109,5259],[6063,5419],[6074,5551],[6091,5625],[6092,5722]],"note":null}, + {"id":"1750db7c87329c8a","skillId":355,"boss":"Martigris the Stalwart","mapId":24,"region":"Tyria","points":[[6125,5259],[6080,5419],[6091,5551],[6107,5625],[6109,5722]],"note":null}, + {"id":"614e8234ba41571b","skillId":228,"boss":"Kratos the Foul","mapId":24,"region":"Tyria","points":[[6141,5259],[6096,5419],[6107,5551],[6124,5625],[6125,5722]],"note":null}, + {"id":"94d55c37cd417e7c","skillId":126,"boss":"Feodor the Baneful","mapId":24,"region":"Tyria","points":[[6118,5275],[6072,5436],[6082,5567],[6100,5738],[6099,5641]],"note":null}, + {"id":"7160bd97f9077ec9","skillId":39,"boss":"Balasi the Arcane","mapId":24,"region":"Tyria","points":[[6135,5275],[6088,5436],[6099,5567],[6115,5641],[6117,5738]],"note":null}, + {"id":"40098183574e3e59","skillId":294,"boss":"Balt Duskstrider","mapId":24,"region":"Tyria","points":[[5982,5262],[5917,5388]],"note":"Shared spawn. Does not always spawn."}, + {"id":"1f7b3fd303580e05","skillId":121,"boss":"Ceru Gloomrunner","mapId":24,"region":"Tyria","points":[[5999,5262],[5933,5388]],"note":"Shared spawn. Does not always spawn."}, + {"id":"c42b550926f8b8ef","skillId":33,"boss":"Digo Murkstalker","mapId":24,"region":"Tyria","points":[[5991,5278],[5925,5404]],"note":"Shared spawn. Does not always spawn."}, + {"id":"96e071318adbd4ba","skillId":228,"boss":"The Inquisitor","mapId":24,"region":"Tyria","points":[[6028,5578]],"note":"He will spawn only if you're trying the bonus. Killing him is the bonus objective."}, + {"id":"6e1e85ca86b854e9","skillId":236,"boss":"Eidolon","mapId":24,"region":"Tyria","points":[[6032,5314]],"note":"The owner of the essence. You have to defeat him, to take the essence."}, + {"id":"0f18bec10e63bea1","skillId":395,"boss":"Markis","mapId":24,"region":"Tyria","points":[[6095,5199]],"note":"Try to pull him out of the circle he stands, and kill him before the Mursaat, otherwise the mission will end!"}, + {"id":"6946c1e8533c6a58","skillId":365,"boss":"Jono Yawpyawl","mapId":93,"region":"Tyria","points":[[5258,5668],[5425,5681],[5513,5682],[5482,5738]],"note":"Shared spawn. Does not always spawn."}, + {"id":"8a728e7b839912b8","skillId":227,"boss":"Edibbo Pekpek","mapId":93,"region":"Tyria","points":[[5274,5668],[5441,5681],[5529,5682],[5499,5738]],"note":"Shared spawn. Does not always spawn."}, + {"id":"409951d7c0a0fbe6","skillId":132,"boss":"Allobo Dimdim","mapId":93,"region":"Tyria","points":[[5291,5668],[5458,5681],[5545,5682],[5515,5738]],"note":"Shared spawn. Does not always spawn."}, + {"id":"6701befd4752c016","skillId":268,"boss":"Kaia Wupwup","mapId":93,"region":"Tyria","points":[[5267,5685],[5433,5697],[5521,5699],[5492,5755]],"note":"Shared spawn. Does not always spawn."}, + {"id":"904f0aadc292d689","skillId":404,"boss":"Kekona Pippip","mapId":93,"region":"Tyria","points":[[5508,5755],[5537,5699],[5450,5697],[5284,5685]],"note":"Shared spawn. Does not always spawn."}, + {"id":"2410a08e4ab5e3a8","skillId":329,"boss":"Hail Blackice","mapId":93,"region":"Tyria","points":[[5337,5586]],"note":null}, + {"id":"e8d0feeff4d0875d","skillId":63,"boss":"Rune Ethercrash","mapId":93,"region":"Tyria","points":[[5358,5600]],"note":null}, + {"id":"79168984f33fdb3e","skillId":442,"boss":"Thul The Bull","mapId":93,"region":"Tyria","points":[[5508,5622]],"note":null}, + {"id":"7dfe9db322d44f43","skillId":79,"boss":"Sniik Hungrymind","mapId":93,"region":"Tyria","points":[[5270,5814],[5336,5811]],"note":null}, + {"id":"b517194d0705f14b","skillId":209,"boss":"Maak Frostfriend","mapId":93,"region":"Tyria","points":[[5287,5814],[5352,5811]],"note":null}, + {"id":"b7b82a8657a6dd56","skillId":389,"boss":"Syr Honorcrest","mapId":96,"region":"Tyria","points":[[5430,5016]],"note":"Spawns in one of six possible locations"}, + {"id":"dc2038e545ae7dc8","skillId":449,"boss":"Ryk Arrowwing","mapId":96,"region":"Tyria","points":[[5451,5016]],"note":"Spawns in one of six possible locations"}, + {"id":"5347fefa93667bd0","skillId":262,"boss":"Myd Springclaw","mapId":96,"region":"Tyria","points":[[5471,5016]],"note":"Spawns in one of six possible locations"}, + {"id":"267f484cbcf6d677","skillId":91,"boss":"Nhy Darkclaw","mapId":96,"region":"Tyria","points":[[5492,5016]],"note":"Spawns in one of six possible locations"}, + {"id":"13e927c0f838b8f0","skillId":47,"boss":"Wyt Sharpfeather","mapId":96,"region":"Tyria","points":[[5513,5016]],"note":"Spawns in one of six possible locations"}, + {"id":"891a28a2c1fea61e","skillId":199,"boss":"Hyl Thunderwing","mapId":96,"region":"Tyria","points":[[5533,5016]],"note":"Spawns in one of six possible locations"}, + {"id":"9aeec9a7821668f8","skillId":236,"boss":"Ice Beast","mapId":96,"region":"Tyria","points":[[5961,5145]],"note":null}, + {"id":"61620405ae7fda4b","skillId":364,"boss":"Balthazaar's Cursed","mapId":121,"region":"Tyria","points":[[2117,7749],[2203,7791],[2285,7654],[2282,7567]],"note":"Two bosses can spawn in this location. Does not always spawn."}, + {"id":"7a5fca6d755ace12","skillId":364,"boss":"Balthazaar's Cursed","mapId":121,"region":"Tyria","points":[[2152,7509]],"note":"Does not always spawn."}, + {"id":"cbc87f03dcb2017e","skillId":393,"boss":"Melandru's Cursed","mapId":121,"region":"Tyria","points":[[2100,7749],[2187,7791],[2269,7654],[2266,7567]],"note":"Two bosses can spawn in this location. Does not always spawn."}, + {"id":"4f0edb40b6249e17","skillId":393,"boss":"Melandru's Cursed","mapId":121,"region":"Tyria","points":[[2136,7509]],"note":"Does not always spawn."}, + {"id":"c989d92b24fdcebe","skillId":265,"boss":"Pravus Obsideo","mapId":121,"region":"Tyria","points":[[2133,7749],[2219,7791],[2302,7654],[2299,7567]],"note":"Two bosses can spawn in this location. Does not always spawn."}, + {"id":"6b8bb3727ee36818","skillId":265,"boss":"Pravus Obsideo","mapId":121,"region":"Tyria","points":[[2169,7509]],"note":"Does not always spawn."}, + {"id":"5ec1fb9b9a9f973e","skillId":5,"boss":"Lyssa's Cursed","mapId":121,"region":"Tyria","points":[[2100,7733],[2187,7775],[2269,7638],[2266,7550]],"note":"Two bosses can spawn in this location. Does not always spawn."}, + {"id":"aed88705ac52d05d","skillId":5,"boss":"Lyssa's Cursed","mapId":121,"region":"Tyria","points":[[2136,7493]],"note":"Does not always spawn."}, + {"id":"13ca8742e1fb8598","skillId":58,"boss":"Malus Phasmatis","mapId":121,"region":"Tyria","points":[[2117,7733],[2203,7775],[2285,7638],[2282,7550]],"note":"Two bosses can spawn in this location. Does not always spawn."}, + {"id":"dd49ce33ed2b23f6","skillId":58,"boss":"Malus Phasmatis","mapId":121,"region":"Tyria","points":[[2152,7493]],"note":"Does not always spawn."}, + {"id":"6b2724cf64f79c46","skillId":125,"boss":"Ignis Effigia","mapId":121,"region":"Tyria","points":[[2133,7733],[2219,7775],[2302,7638],[2299,7550]],"note":"Two bosses can spawn in this location. Does not always spawn."}, + {"id":"7f6ec1e9bb15e9d1","skillId":125,"boss":"Ignis Effigia","mapId":121,"region":"Tyria","points":[[2169,7493]],"note":"Does not always spawn."}, + {"id":"ba08351329a5cf56","skillId":142,"boss":"Grenth's Cursed","mapId":121,"region":"Tyria","points":[[2108,7765],[2195,7808],[2277,7671],[2274,7583]],"note":"Two bosses can spawn in this location. Does not always spawn.. Does not always spawn."}, + {"id":"b23e2f815de249aa","skillId":142,"boss":"Grenth's Cursed","mapId":121,"region":"Tyria","points":[[2144,7526]],"note":"Does not always spawn."}, + {"id":"8dd15c0205424bcb","skillId":298,"boss":"Dwayna's Cursed","mapId":121,"region":"Tyria","points":[[2125,7765],[2211,7808],[2293,7671],[2291,7583]],"note":"Two bosses can spawn in this location. Does not always spawn."}, + {"id":"866678a55db375a5","skillId":298,"boss":"Dwayna's Cursed","mapId":121,"region":"Tyria","points":[[2161,7526]],"note":"Does not always spawn."}, + {"id":"7b5e9c6fd81450a7","skillId":379,"boss":"Skintekaru Manshredder","mapId":121,"region":"Tyria","points":[[1966,7593],[2048,7616],[2174,7559]],"note":"Shared spawn. Does not always spawn."}, + {"id":"b6be637c7c0fc1f5","skillId":164,"boss":"Geckokaru Earthwind","mapId":121,"region":"Tyria","points":[[1982,7593],[2065,7616],[2191,7559]],"note":"Shared spawn. Does not always spawn."}, + {"id":"7d822e7ca82c74b4","skillId":113,"boss":"Dosakaru Fevertouch","mapId":121,"region":"Tyria","points":[[1974,7609],[2056,7633],[2182,7575]],"note":"Shared spawn. Does not always spawn."}, + {"id":"cc23c9c07b27b4a3","skillId":285,"boss":"Rull Browbeater","mapId":121,"region":"Tyria","points":[[1941,7637],[1952,7737],[2006,7635],[2265,7765]],"note":"Shared spawn. Does not always spawn."}, + {"id":"195c41c1df1614ef","skillId":74,"boss":"Rwek Khawl Mawl","mapId":121,"region":"Tyria","points":[[1958,7637],[2022,7635],[1969,7737],[2281,7765]],"note":"Shared spawn. Does not always spawn."}, + {"id":"3444782ec95186da","skillId":203,"boss":"Nayl Klaw Tuthan","mapId":121,"region":"Tyria","points":[[1950,7653],[2014,7652],[1960,7753],[2273,7782]],"note":"Shared spawn. Does not always spawn."}, + {"id":"8d8e39004e3884a0","skillId":218,"boss":"Harn Coldstone","mapId":121,"region":"Tyria","points":[[2204,7622]],"note":"Shared spawn. Only one boss spawns.\nThis is the point from which he starts patrolling, as soon as you see him. He will patrol all of the east side of the island"}, + {"id":"7cc2fb14d806a17e","skillId":397,"boss":"Maxine Coldstone","mapId":121,"region":"Tyria","points":[[2221,7622]],"note":"Shared spawn. Only one boss spawns.\nThis is the point from which she starts patrolling, as soon as you see her. She will patrol all of the east side of the island"}, + {"id":"78986e08485fe5a8","skillId":3423,"boss":"Abaddon's Cursed","mapId":121,"region":"Tyria","points":[[2232,7493]],"note":"Only if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"d049253b8fe7330a","skillId":3424,"boss":"Abaddon's Cursed","mapId":121,"region":"Tyria","points":[[2248,7493]],"note":"Only if a player has a \"Proof of Triumph\" in their inventory."}, + {"id":"e59d9d86661db685","skillId":114,"boss":"Maligo Libens","mapId":124,"region":"Tyria","points":[[1604,7867],[1584,7941]],"note":null}, + {"id":"d1755d1508f43026","skillId":114,"boss":"Maligo Libens","mapId":124,"region":"Tyria","points":[[1460,7912]],"note":"Three bosses can spawn here, or get out of the lava"}, + {"id":"f162cb245d27ef2c","skillId":338,"boss":"Tortitudo Probo","mapId":124,"region":"Tyria","points":[[1621,7867],[1600,7941]],"note":null}, + {"id":"8541dd300bc51b08","skillId":338,"boss":"Tortitudo Probo","mapId":124,"region":"Tyria","points":[[1477,7912]],"note":"Three bosses can spawn here, or get out of the lava"}, + {"id":"f45db9f2aa11ef30","skillId":465,"boss":"Valetudo Rubor","mapId":124,"region":"Tyria","points":[[1493,7912]],"note":"Three bosses can spawn here, or get out of the lava"}, + {"id":"a41e88f04ac89f8a","skillId":465,"boss":"Valetudo Rubor","mapId":124,"region":"Tyria","points":[[1637,7867],[1617,7941]],"note":null}, + {"id":"0c25430bc8ca8b02","skillId":52,"boss":"Moles Quibus","mapId":124,"region":"Tyria","points":[[1469,7928]],"note":"Three bosses can spawn here, or get out of the lava"}, + {"id":"ae168b18f44a6ef9","skillId":52,"boss":"Moles Quibus","mapId":124,"region":"Tyria","points":[[1592,7957],[1613,7883]],"note":null}, + {"id":"91495db44fb2b1fd","skillId":185,"boss":"Scelus Prosum","mapId":124,"region":"Tyria","points":[[1608,7957],[1629,7883]],"note":null}, + {"id":"1d54b59b37581a93","skillId":185,"boss":"Scelus Prosum","mapId":124,"region":"Tyria","points":[[1485,7928]],"note":"Three bosses can spawn here, or get out of the lava"}, + {"id":"4f9d35dae9bf4142","skillId":381,"boss":"Undead Prince Rurik","mapId":124,"region":"Tyria","points":[[1502,7700]],"note":null}, + {"id":"61c06c62860a1037","skillId":405,"boss":"Cairn the Relentless","mapId":123,"region":"Tyria","points":[[1510,7639],[1426,7538],[1358,7565]],"note":"Two bosses at a time spawn at this location"}, + {"id":"138d5b57e753a67e","skillId":355,"boss":"Cairn the Destroyer","mapId":123,"region":"Tyria","points":[[1493,7639],[1410,7538],[1341,7565]],"note":"Two bosses at a time spawn at this location"}, + {"id":"93836fbb565be759","skillId":228,"boss":"Optimus Caliph","mapId":123,"region":"Tyria","points":[[1477,7639],[1393,7538],[1325,7565]],"note":"Two bosses at a time spawn at this location"}, + {"id":"ea444959b18fe4fa","skillId":260,"boss":"Willa the Unpleasant","mapId":123,"region":"Tyria","points":[[1510,7656],[1426,7554],[1358,7582]],"note":"Two bosses at a time spawn at this location"}, + {"id":"c79ce470cfe0a3ee","skillId":39,"boss":"Mercia the Smug","mapId":123,"region":"Tyria","points":[[1493,7656],[1341,7582],[1410,7554]],"note":"Two bosses at a time spawn at this location"}, + {"id":"11acaf6b91050ac0","skillId":126,"boss":"Sarlic the Judge","mapId":123,"region":"Tyria","points":[[1477,7656],[1393,7554],[1325,7582]],"note":"Two bosses at a time spawn at this location"}, + {"id":"a297cd298778c3b2","skillId":55,"boss":"Plexus Shadowhook","mapId":123,"region":"Tyria","points":[[1166,7523],[1188,7417],[1355,7420]],"note":"Does not always spawn."}, + {"id":"f424f6a5026961ea","skillId":276,"boss":"Spindle Agonyvein","mapId":123,"region":"Tyria","points":[[1182,7523],[1204,7417],[1371,7420]],"note":"Does not always spawn."}, + {"id":"47ef3756828e1a1b","skillId":128,"boss":"Goss Darkweb","mapId":123,"region":"Tyria","points":[[1174,7539],[1196,7434],[1363,7437]],"note":"Does not always spawn."}, + {"id":"77c735eb2f15ae14","skillId":395,"boss":"Snyk the Hundred Tongue","mapId":123,"region":"Tyria","points":[[1154,7568],[1160,7617]],"note":"Does not always spawn."}, + {"id":"c96b864030331694","skillId":236,"boss":"Eidolon","mapId":123,"region":"Tyria","points":[[1144,7545]],"note":null}, + {"id":"60bc35852a349182","skillId":405,"boss":"Cairn the Troubling","mapId":122,"region":"Tyria","points":[[1762,7479]],"note":"Can spawn in one of the six locations"}, + {"id":"6886e66045c9741e","skillId":355,"boss":"Cairn the Smug","mapId":122,"region":"Tyria","points":[[1784,7479]],"note":"Can spawn in one of the six locations"}, + {"id":"69cf1f854d9d0846","skillId":39,"boss":"Melek the Virtuous","mapId":122,"region":"Tyria","points":[[1806,7479]],"note":"Can spawn in one of the six locations"}, + {"id":"8016a3ab24dbf763","skillId":228,"boss":"Maida the Ill Tempered","mapId":122,"region":"Tyria","points":[[1828,7479]],"note":"Can spawn in one of the six locations"}, + {"id":"671f1e6e48ee8cbc","skillId":126,"boss":"Odelyn the Displeased","mapId":122,"region":"Tyria","points":[[1850,7479]],"note":"Can spawn in one of the six locations"}, + {"id":"9c11fb463f0e8d7c","skillId":260,"boss":"Coventina the Matron","mapId":122,"region":"Tyria","points":[[1871,7479]],"note":"Can spawn in one of the six locations"}, + {"id":"7d3f50426a43c6bd","skillId":358,"boss":"Ferk Mallet","mapId":122,"region":"Tyria","points":[[1924,7268]],"note":"Does not always spawn."}, + {"id":"bd5648215df9ee57","skillId":358,"boss":"Ferk Mallet","mapId":122,"region":"Tyria","points":[[1944,7315]],"note":"Does not always spawn.\nUsually starts moving as soon as a player comes into radar range and may ambush players from behind when they are moving forward on the regular mission path."}, + {"id":"28611dcfaad059b5","skillId":461,"boss":"Vulg Painbrain","mapId":122,"region":"Tyria","points":[[1960,7315]],"note":"Does not always spawn.\nUsually starts moving as soon as a player comes into radar range and may ambush players from behind when they are moving forward on the regular mission path."}, + {"id":"c287dce00c10fc18","skillId":461,"boss":"Vulg Painbrain","mapId":122,"region":"Tyria","points":[[1940,7268]],"note":"Does not always spawn."}, + {"id":"5de4667bfeb98f00","skillId":428,"boss":"Casses Flameweb","mapId":122,"region":"Tyria","points":[[1697,7320],[1756,7269]],"note":"Does not always spawn."}, + {"id":"385ac82c26ebd044","skillId":259,"boss":"Grun Galesurge","mapId":122,"region":"Tyria","points":[[1551,7283],[1665,7246],[1793,7378]],"note":null}, + {"id":"6261775bc31a1695","skillId":53,"boss":"Pytt Spitespew","mapId":122,"region":"Tyria","points":[[1567,7283],[1681,7246],[1810,7378]],"note":null}, + {"id":"d0211007eb3074bb","skillId":178,"boss":"Jyth Sprayburst","mapId":122,"region":"Tyria","points":[[1559,7300],[1673,7263],[1802,7394]],"note":null}, + {"id":"3596c762ebd53fb5","skillId":236,"boss":"Eidolon","mapId":122,"region":"Tyria","points":[[1685,7367]],"note":"Spawns once the Ether Seals are defeated."}, + {"id":"9b56ea42f48a9a9d","skillId":379,"boss":"Grognard Gravelhead","mapId":190,"region":"Tyria","points":[[4840,5408]],"note":"In Tharn Stonerift's room.\nIn the passage to the east, between the bridge and Marshall Whitman.\nDuring \"The Final Assault\" quest, has a chance to appear along with one of the other Warrior bosses in the chamber southeast of the entrance."}, + {"id":"6055d2d47a2f0ef7","skillId":375,"boss":"Malinon Threshammer","mapId":190,"region":"Tyria","points":[[4860,5408]],"note":"During Noble Intentions while defending Orozar Highstone.\nDuring Noble Intentions Plan B after lowering the bridge.\nDuring \"The Final Assault\" quest, has a chance to appear along with one of the other Warrior bosses in the chamber southeast of the entrance."}, + {"id":"f9bf839d510b72f9","skillId":338,"boss":"Tanzit Razorstone","mapId":190,"region":"Tyria","points":[[4881,5408]],"note":"At the Iron Arch or at the Stone Basilica.\nDuring Orozar Highstone's quests.\nDuring \"The Final Assault\" quest, has a chance to appear along with one of the other Warrior bosses in the chamber southeast of the entrance."}, + {"id":"d123c1d8708127f9","skillId":429,"boss":"Tarnok Forgerunner","mapId":190,"region":"Tyria","points":[[4902,5408]],"note":"In the northeastern crusher room\nin Makar Thoughtslayer's room.\nIn the southeast, at the end of the passage under the bridge."}, + {"id":"ed92062b1893b14a","skillId":429,"boss":"Drago Stoneherder","mapId":190,"region":"Tyria","points":[[4922,5408]],"note":"In the northeast corner near Marshall Whitman or in Sorrow's Belly.\nIn the area south of the entrance and west of Tharn Stonerift's room.\nDuring Orozar Highstone's quests, in one of 6 random boss spawn locations.\nWhere High Priest Alkar returns the Tome of Rubicon, but not during this quest."}, + {"id":"0524f45888bd4594","skillId":429,"boss":"Graygore Boulderbeard","mapId":190,"region":"Tyria","points":[[4943,5408]],"note":"During \"Noble Intentions\" while defending Orozar Highstone.\nDuring \"Noble Intentions Plan B\" after lowering the bridge"}, + {"id":"7506dbca990ede4f","skillId":269,"boss":"Gulnar Irontoe","mapId":190,"region":"Tyria","points":[[4963,5408]],"note":"At the very end of the quest \"Kilroy Stonekin\"."}, + {"id":"2fa308cd979b1f4b","skillId":269,"boss":"Brohn Stonehart","mapId":190,"region":"Tyria","points":[[4984,5408]],"note":"In Sorrow's Belly\nAt the Forest entrance to the Forge Heart\nduring Orozar Highstone's quests, in one of 6 random boss spawn locations."}, + {"id":"a1524c1d6a406eef","skillId":269,"boss":"Gardock Stonesoul","mapId":190,"region":"Tyria","points":[[5004,5408]],"note":"In the large hall 3 steps southeast of the entrance.\nIn the second large hall southeast of the entrance.\nIn the crusher room east of the entrance.\nIn a room to the east, between the bridge and Marshall Whitman.\nSorrow's Furnace in the southeast, at the end of the passage that goes under the bridge."}, + {"id":"b5eeab4677fb78a6","skillId":269,"boss":"Ivor Helmhewer","mapId":190,"region":"Tyria","points":[[5025,5408]],"note":"Only during \"The Forge Heart\" quest."}, + {"id":"54c5c32d0697ec3f","skillId":54,"boss":"Vokur Grimshackles","mapId":190,"region":"Tyria","points":[[5086,5408]],"note":"Only during Orozar Highstone's quests, in one of 6 random boss spawn locations\nin the Gap, near Marshall Whitman\nin Sorrow's Belly"}, + {"id":"0bf02bc9caff6cc6","skillId":54,"boss":"Garbok Handsmasher","mapId":190,"region":"Tyria","points":[[5107,5408]],"note":null}, + {"id":"f5855cc0b595cca9","skillId":54,"boss":"Hierophant Morlog","mapId":190,"region":"Tyria","points":[[5045,5408]],"note":"Only during \"Unspeakable, Unknowable, High Priest Alkar\" quest."}, + {"id":"c5f931cc74f022d6","skillId":54,"boss":"Korvald Willcrusher","mapId":190,"region":"Tyria","points":[[5066,5408]],"note":"Only during \"Noble Intentions\" , \"Noble Intentions Plan B\", \"The Forge Heart\" and \"The Forge Heart at the Iron Arch\" quests."}, + {"id":"bba34f5d4a82a06f","skillId":39,"boss":"The Darkness","mapId":82,"region":"Tyria","points":[[6956,6888]],"note":"These are the final bosses of the \"Ruins of the Tomb of the Primeval Kings\". There are three in total."}, + {"id":"2227b95ea2412f04","skillId":268,"boss":"Kaia Wupwup","mapId":26,"region":"Tyria","points":[[4941,6158],[5048,6170],[5130,6181],[5180,6337]],"note":"Shared spawn. Does not always spawn."}, + {"id":"a91f11d029825630","skillId":125,"boss":"Desnas Hubor","mapId":48,"region":"Tyria","points":[[1724,5461]],"note":"Only during \"Defend Denravi\" quest."}, + {"id":"9c541621e666094e","skillId":338,"boss":"Phlog the Indomitable","mapId":106,"region":"Tyria","points":[[6567,3880]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"be4c731faff9578b","skillId":338,"boss":"Phlog the Indomitable","mapId":105,"region":"Tyria","points":[[6515,3776],[6600,3663],[6749,3820],[6857,3789]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"2d3f97d2cd64eb48","skillId":465,"boss":"Staggh the Fervid","mapId":105,"region":"Tyria","points":[[6732,3820],[6841,3789],[6583,3663],[6498,3776]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"a28631971a4a80e2","skillId":126,"boss":"Lugg the Malignant","mapId":105,"region":"Tyria","points":[[6716,3820],[6824,3789],[6567,3663],[6482,3776]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"dcd7b550665609d0","skillId":79,"boss":"Druul the Untamed","mapId":105,"region":"Tyria","points":[[6732,3837],[6841,3805],[6583,3679],[6498,3793]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"2067d13f32c53609","skillId":451,"boss":"Gigas Expii","mapId":105,"region":"Tyria","points":[[6708,3723]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"2ad374e92b525740","skillId":125,"boss":"Ludo Ossidi","mapId":105,"region":"Tyria","points":[[6738,3720]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"96ac18b6e911346e","skillId":52,"boss":"Mallus Funo","mapId":105,"region":"Tyria","points":[[6728,3750]],"note":"Only during \"The Titan Source\" quest."}, + {"id":"66b0dfc454e13dd0","skillId":465,"boss":"Staggh the Fervid","mapId":105,"region":"Tyria","points":[[6550,3880]],"note":"Only during the \"The Titan Source\" quest."}, + {"id":"fb0ff72f97215c76","skillId":126,"boss":"Lugg the Malignant","mapId":105,"region":"Tyria","points":[[6534,3880]],"note":"Only during the \"The Titan Source\" quest."}, + {"id":"d75ff8e9180ecfa2","skillId":79,"boss":"Druul the Untamed","mapId":105,"region":"Tyria","points":[[6550,3897]],"note":"Only during the \"The Titan Source\" quest."}, + {"id":"b04121a45da66aa0","skillId":125,"boss":"Evirso Sectus","mapId":96,"region":"Tyria","points":[[5922,5219]],"note":"Only during \"Defend Droknar's Forge\" quest."}, + {"id":"87ff1af49e1731d5","skillId":374,"boss":"Custodian Fidius","mapId":116,"region":"Tyria","points":[[6269,8838]],"note":null}, + {"id":"5083efd66a8db53d","skillId":260,"boss":"Mursaat Monk","mapId":94,"region":"Tyria","points":[[5948,6362],[5881,6297]],"note":"Shared spawn. Does not always spawn."}, + {"id":"d9ac4a664aee0ba1","skillId":355,"boss":"Jade Armor","mapId":94,"region":"Tyria","points":[[5865,6297],[5932,6362],[6088,6177],[6151,6158]],"note":"Shared spawn. Does not always spawn."}, + {"id":"77c2201b5452b49a","skillId":405,"boss":"Jade Bow","mapId":94,"region":"Tyria","points":[[5865,6314],[5932,6378],[6088,6193],[6151,6174]],"note":"Shared spawn. Does not always spawn."}, + {"id":"7d55c3c6ad2ee7d2","skillId":126,"boss":"Mursaat Necromancer","mapId":94,"region":"Tyria","points":[[5881,6314],[5948,6378],[6104,6193],[6167,6174]],"note":"Shared spawn. Does not always spawn."}, + {"id":"47ba82d8a001166a","skillId":39,"boss":"Mursaat Mesmer","mapId":94,"region":"Tyria","points":[[5898,6314],[5965,6378],[6121,6193],[6184,6174]],"note":"Shared spawn. Does not always spawn."}, + {"id":"d7af486926e38da9","skillId":389,"boss":"Flame Djinn","mapId":570,"region":"Tyria","points":[],"note":"One on level 3"}, + {"id":"34dc4b38f6da289d","skillId":1380,"boss":"Regent of Flame","mapId":570,"region":"Tyria","points":[],"note":"One on level 1, two on level 2, one on level 3"}, + {"id":"20982938beec98ac","skillId":1471,"boss":"Beastmaster Korg","mapId":573,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"3e23e98a4e6f9a3c","skillId":1466,"boss":"Charr Warden","mapId":573,"region":"Eye of the North","points":[],"note":"4 on level 1"}, + {"id":"8c52cfb1d8b3f156","skillId":1659,"boss":"Flesheater","mapId":573,"region":"Eye of the North","points":[],"note":"2 on level 3"}, + {"id":"60990c9d70940b3a","skillId":1548,"boss":"Elder Nephilim","mapId":573,"region":"Eye of the North","points":[],"note":"4 on level 2, 2 on level 3"}, + {"id":"a3504b8001d84242","skillId":5,"boss":"Faze Magekiller","mapId":560,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"04958fde9429457d","skillId":178,"boss":"Tyndir Flamecaller","mapId":560,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"d7b4a4f48174d0c5","skillId":1355,"boss":"The Master","mapId":560,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"1c72efc77a53c3d3","skillId":126,"boss":"The Keeper","mapId":560,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"7bd470ef51be233b","skillId":1362,"boss":"Murakai's Steward","mapId":560,"region":"Eye of the North","points":[],"note":"Level 3"}, + {"id":"aaca70154b644d8b","skillId":1773,"boss":"Vraxx the Condemned","mapId":560,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"bbc24370ba915250","skillId":1406,"boss":"Ancient Ooze","mapId":576,"region":"Eye of the North","points":[],"note":null}, + {"id":"02afbfb0a04519e8","skillId":237,"boss":"Gloop","mapId":576,"region":"Eye of the North","points":[],"note":null}, + {"id":"ffbbecb9fe13fb56","skillId":329,"boss":"Havok-kin","mapId":635,"region":"Eye of the North","points":[],"note":"Two on level 1, one on level 2, one on level 3"}, + {"id":"7cac9f2978100020","skillId":329,"boss":"Grelk Icelash","mapId":635,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"76b7e7893dc960c0","skillId":395,"boss":"Frostmaw Spawn","mapId":630,"region":"Eye of the North","points":[],"note":"Two on level 2\nFour on level 3 (sometimes five in Hard Mode)\nTwo on level 4\nTwo on level 5"}, + {"id":"ed146cdc87355ed6","skillId":809,"boss":"Fragment of Antiquities","mapId":628,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"469d1e6a23fde8bf","skillId":809,"boss":"Regent of Ice","mapId":628,"region":"Eye of the North","points":[],"note":"About 5-6 on level 1"}, + {"id":"6ce6a89104ec14e7","skillId":1536,"boss":"Reaper of Destruction","mapId":617,"region":"Eye of the North","points":[],"note":"One on level 1, one on level 2"}, + {"id":"efdc1bff9ae8b721","skillId":809,"boss":"Ancient Vaettir","mapId":617,"region":"Eye of the North","points":[],"note":"Two on level 1, three on level 2"}, + {"id":"ebdb74bad64694c3","skillId":1664,"boss":"Shadow Spawn","mapId":617,"region":"Eye of the North","points":[],"note":"Only during \"Shadows in the Night\""}, + {"id":"b8a22e1b926b7a85","skillId":404,"boss":"Xalnax","mapId":604,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"3fabe1349dfcb0cb","skillId":375,"boss":"Taskmaster Durgon","mapId":604,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"6ffa014ff31daa87","skillId":1355,"boss":"Taskmaster Bellok","mapId":604,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"c9122e15caa8f369","skillId":54,"boss":"Taskmaster Kurg","mapId":604,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"51f1d80af4b0fabe","skillId":1773,"boss":"Sotanaht the Tomb Guardian","mapId":604,"region":"Eye of the North","points":[],"note":"Level 3"}, + {"id":"bf4930dc616349f1","skillId":1736,"boss":"Gokir Patriarch","mapId":615,"region":"Eye of the North","points":[],"note":"One on level 1, three on level 2, during \"Tekks's War\"."}, + {"id":"604bd217bf02f365","skillId":1736,"boss":"Ophil Patriarch","mapId":615,"region":"Eye of the North","points":[],"note":"One on level 1, three on level 2, during \"Giriff's War\"."}, + {"id":"b153f7578f27ea84","skillId":358,"boss":"Crystal Ettin","mapId":612,"region":"Eye of the North","points":[],"note":"One on level 2"}, + {"id":"fe8540e195768be5","skillId":358,"boss":"First Inscribed","mapId":612,"region":"Eye of the North","points":[],"note":"One on level 1, two on level 3"}, + {"id":"d27cbb23f96d3f9d","skillId":358,"boss":"Paranoia Ettin","mapId":612,"region":"Eye of the North","points":[],"note":"One on level 1"}, + {"id":"9a9c7928d4604acd","skillId":1367,"boss":"Cursed Brigand","mapId":581,"region":"Eye of the North","points":[],"note":"Three on level 1, two on level 2, two on level 3"}, + {"id":"c89d16878c9891c5","skillId":1701,"boss":"Malfunctioning Shield Golem","mapId":578,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"d96a96635873659d","skillId":164,"boss":"Flame Guardian","mapId":578,"region":"Eye of the North","points":[],"note":"Three on level 1, two on level 3"}, + {"id":"62f072bad99abdbf","skillId":164,"boss":"Malfunctioning Regulator Golem","mapId":578,"region":"Eye of the North","points":[],"note":"Two on level 2"}, + {"id":"5e2790499f787559","skillId":1652,"boss":"Xien","mapId":578,"region":"Eye of the North","points":[],"note":"Level 1, only during \"Little Workshop of Horrors\"."}, + {"id":"7a9effbba692f4f5","skillId":393,"boss":"Brood Warden","mapId":584,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"45dc5480948ad45e","skillId":1602,"boss":"Spider Matriarch","mapId":584,"region":"Eye of the North","points":[],"note":"Two on level 1, one on level 2"}, + {"id":"ba04a2bcf9282967","skillId":1380,"boss":"Lok The Mischievous","mapId":584,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"cb3d5dd2a297dea1","skillId":913,"boss":"Dark Watcher","mapId":577,"region":"Eye of the North","points":[],"note":"Forgewight's level"}, + {"id":"fdf5e81b0cf391a9","skillId":830,"boss":"Gorlos Skinflayer","mapId":607,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"336428c34be516fb","skillId":1380,"boss":"Magmus","mapId":607,"region":"Eye of the North","points":[],"note":"Level 3, except during \"Heart of the Shiverpeaks\" quest"}, + {"id":"852b9b5486515f9e","skillId":1771,"boss":"Erasklion the Prolific","mapId":607,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"6525d6b732639863","skillId":1659,"boss":"Jacado the Putrid","mapId":607,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"9481bde07cabb79e","skillId":107,"boss":"Jacado the Putrid","mapId":607,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"c91ceecf0b05fa83","skillId":317,"boss":"Avatar of Destruction","mapId":764,"region":"Eye of the North","points":[],"note":"Level 1"}, + {"id":"0187c58ddf38425c","skillId":1754,"boss":"Avatar of Destruction","mapId":764,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"246f6bea64e01de8","skillId":1602,"boss":"Jadam Spearspinner","mapId":762,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"ea023d30e2e6a87c","skillId":338,"boss":"Charr Prison Guard","mapId":762,"region":"Eye of the North","points":[],"note":"One on level 1, one on level 2, three on level 3"}, + {"id":"025eb933291af7f5","skillId":1662,"boss":"Flamemaster Maultooth","mapId":762,"region":"Eye of the North","points":[],"note":"Level 3"}, + {"id":"572aa63ff2334773","skillId":355,"boss":"Inscribed Sentry","mapId":759,"region":"Eye of the North","points":[],"note":"One on level 1, one on level 2"}, + {"id":"938739b2e01a71b6","skillId":151,"boss":"Inscribed Guardian","mapId":759,"region":"Eye of the North","points":[],"note":"Level 3, impossible to capture this boss' elite because the cinematic starts as soon as he dies."}, + {"id":"9fae1cc6e26eaea0","skillId":993,"boss":"Indestructible Golem","mapId":769,"region":"Eye of the North","points":[],"note":"Level 2"}, + {"id":"6476e9f8fe3d382a","skillId":375,"boss":"Marln Steelfist","mapId":625,"region":"Eye of the North","points":[],"note":"Only during \"Attack on Jalis's Camp\" quest."}, + {"id":"1701948eb2b2521a","skillId":429,"boss":"Taskmaster Larn","mapId":625,"region":"Eye of the North","points":[],"note":"Only during \"Attack on Jalis's Camp\" quest."}, + {"id":"78beae3840257d56","skillId":1355,"boss":"Taskmaster Nard","mapId":625,"region":"Eye of the North","points":[],"note":"Only during \"Attack on Jalis's Camp\" quest."}, + {"id":"315f58c4af8ba7b7","skillId":54,"boss":"Taskmaster Beld","mapId":625,"region":"Eye of the North","points":[],"note":"Only during \"Attack on Jalis's Camp\" quest."}, + {"id":"202d613e52ca2172","skillId":355,"boss":"Hand of Destruction","mapId":37,"region":"Eye of the North","points":[[7667,9306]],"note":null}, + {"id":"c309bf1cbc2e2a88","skillId":389,"boss":"Heart of Destruction","mapId":37,"region":"Eye of the North","points":[[7698,9306]],"note":null}, + {"id":"bc20a0f168c63328","skillId":329,"boss":"Heart of Destruction","mapId":37,"region":"Eye of the North","points":[[7730,9306]],"note":null}, + {"id":"1e909986a574cf63","skillId":128,"boss":"Flesh of Destruction","mapId":37,"region":"Eye of the North","points":[[7761,9306]],"note":null}, + {"id":"336699d85aed6285","skillId":1348,"boss":"Mind of Destruction","mapId":37,"region":"Eye of the North","points":[[7793,9306]],"note":null}, + {"id":"d9e493ea048acc35","skillId":5,"boss":"Justiciar Sevaan","mapId":839,"region":"Tyria","points":[[2835,3999]],"note":"Only during \"War in Kryta\"."}, + {"id":"781b1cf57e791b84","skillId":164,"boss":"Vess the Disputant","mapId":839,"region":"Tyria","points":[[2606,3958]],"note":"Only during \"War in Kryta\"."}, + {"id":"ad22bb6df959c393","skillId":889,"boss":"Cairn the Berserker","mapId":839,"region":"Tyria","points":[[2593,3969]],"note":"Only during \"War in Kryta\"."}, + {"id":"6951d094f2f04a38","skillId":260,"boss":"Aily the Innocent","mapId":839,"region":"Tyria","points":[[2880,4019]],"note":"Only during \"A Little Help From Above\" quest."}, + {"id":"66d879e5c5b2c62c","skillId":941,"boss":"Amalek the Unmerciful","mapId":62,"region":"Tyria","points":[[2958,4142]],"note":"Only during \"War in Kryta\"."}, + {"id":"de04468b94940d73","skillId":1732,"boss":"Calamitous","mapId":62,"region":"Tyria","points":[[3191,4074]],"note":"Only during \"War in Kryta\"."}, + {"id":"77422df737a1e9f3","skillId":39,"boss":"Minea the Obscene","mapId":62,"region":"Tyria","points":[[3178,4170]],"note":"Only during \"War in Kryta\"."}, + {"id":"04f11fe71a6ae3ab","skillId":1380,"boss":"Inquisitor Lovisa","mapId":62,"region":"Tyria","points":[[3109,4056]],"note":"Only during \"Wanted: Inquisitor Lovisa\" quest."}, + {"id":"5461b87b4e73b9d9","skillId":830,"boss":"Barthimus the Provident","mapId":56,"region":"Tyria","points":[[3321,4471]],"note":"Only during \"War in Kryta\"."}, + {"id":"a05c83e7fefede32","skillId":888,"boss":"Imuk the Pungent","mapId":59,"region":"Tyria","points":[[3356,4410]],"note":"Only during \"War in Kryta\"."}, + {"id":"65065c0a31cdf518","skillId":114,"boss":"Cerris","mapId":59,"region":"Tyria","points":[[3415,4464]],"note":"Only during \"War in Kryta\"."}, + {"id":"0a5a8aec2666b3a9","skillId":53,"boss":"Lerita the Lewd","mapId":59,"region":"Tyria","points":[[3410,4396]],"note":"Only during \"War in Kryta\"."}, + {"id":"8432ca83200bc638","skillId":39,"boss":"Maximilian the Meticulous","mapId":59,"region":"Tyria","points":[[3479,4444]],"note":"Only during \"War in Kryta\", appears after observing the first two scenes in Shining Blade camp."}, + {"id":"bcd2a50109db9b5b","skillId":1773,"boss":"Insatiable Vakar","mapId":58,"region":"Tyria","points":[[3650,4738]],"note":"Only during \"War in Kryta\"."}, + {"id":"8f4f0e1309e39e8f","skillId":1754,"boss":"Lev the Condemned","mapId":58,"region":"Tyria","points":[[3780,4374]],"note":"Only during \"War in Kryta\"."}, + {"id":"86f15f08dcd44c26","skillId":862,"boss":"Inquisitor Bauer","mapId":58,"region":"Tyria","points":[[3689,4388]],"note":"Only during \"War in Kryta\"."}, + {"id":"0ef785b3d2385679","skillId":988,"boss":"Sarnia the Red-Handed","mapId":58,"region":"Tyria","points":[[3705,4560]],"note":"Only during \"War in Kryta\"."}, + {"id":"5e01ae554a3ee974","skillId":1466,"boss":"Inquisitor Lashona","mapId":58,"region":"Tyria","points":[[3742,4389]],"note":"Only during \"Wanted: Inquisitor Lashona\" quest."}, + {"id":"6be5e36625eb9c1d","skillId":125,"boss":"Mentanl Arobo","mapId":58,"region":"Tyria","points":[[3761,4374]],"note":"Only during \"Defend North Kryta Province\"."}, + {"id":"3f6d278840182b2f","skillId":1697,"boss":"Selenas the Blunt","mapId":61,"region":"Tyria","points":[[2349,5238]],"note":"Only during \"War in Kryta\"."}, + {"id":"89286d8c2f32cc1c","skillId":853,"boss":"Valis the Rampant","mapId":61,"region":"Tyria","points":[[2390,5115]],"note":"Only during \"War in Kryta\"."}, + {"id":"722a1c477f0d0836","skillId":1342,"boss":"Justiciar Kimii","mapId":843,"region":"Tyria","points":[[2520,5410]],"note":"Only during \"War in Kryta\"."}, + {"id":"dd5b3cde2481e146","skillId":395,"boss":"Cairn the Cunning","mapId":843,"region":"Tyria","points":[[2547,5430]],"note":"Only during \"War in Kryta\"."}, + {"id":"826450987e853baf","skillId":53,"boss":"Ven the Conservator","mapId":843,"region":"Tyria","points":[[2168,5595]],"note":"Only during \"War in Kryta\"."}, + {"id":"7c165eae0e8fc143","skillId":862,"boss":"Degaz the Cynical","mapId":843,"region":"Tyria","points":[[2218,5458]],"note":"Only during \"War in Kryta\"."}, + {"id":"8713c41ad25a2c8e","skillId":39,"boss":"Willem the Demeaning","mapId":843,"region":"Tyria","points":[[2547,5396]],"note":"Only during \"Riverside Assassination\" quest."}, + {"id":"ae36af022d026c1b","skillId":354,"boss":"Carnak the Hungry","mapId":18,"region":"Tyria","points":[[3082,4656]],"note":"Only during \"War in Kryta\"."}, + {"id":"96fa064e2fe3a784","skillId":1146,"boss":"Greves the Overbearing","mapId":18,"region":"Tyria","points":[[2965,4499]],"note":"Only during \"War in Kryta\"."}, + {"id":"6a47a56d94cfb481","skillId":1726,"boss":"Teral the Punisher","mapId":64,"region":"Tyria","points":[[2842,4800]],"note":"Only during \"War in Kryta\"."}, + {"id":"b66319df46f0b615","skillId":1412,"boss":"Justiciar Amilyn","mapId":64,"region":"Tyria","points":[[2856,4896]],"note":"Only during \"War in Kryta\"."}, + {"id":"5e01282dac046d12","skillId":1659,"boss":"Justiciar Marron","mapId":64,"region":"Tyria","points":[[2821,4954]],"note":"Only during \"War in Kryta\"."}, + {"id":"954aef95b6d57e91","skillId":1736,"boss":"Destor the Truth Seeker","mapId":64,"region":"Tyria","points":[[2979,4937]],"note":"Only during \"War in Kryta\"."}, + {"id":"c388e793862553cd","skillId":381,"boss":"Galrath","mapId":64,"region":"Tyria","points":[[2835,5060]],"note":"Only during \"The Villainy of Galrath\" quest in hard mode."}, + {"id":"7a60cbbc7275341a","skillId":1761,"boss":"Justiciar Kasandra","mapId":841,"region":"Tyria","points":[[3424,4910]],"note":"Only during \"War in Kryta\"."}, + {"id":"0de3f67de96674ba","skillId":121,"boss":"Zaln the Jaded","mapId":841,"region":"Tyria","points":[[3657,4858]],"note":"Only during \"War in Kryta\"."}, + {"id":"ffb7968ad75acd85","skillId":358,"boss":"Cairn the Grave","mapId":841,"region":"Tyria","points":[[3445,4923]],"note":"Only during \"War in Kryta\"."}, + {"id":"be0b1b9ff080f716","skillId":126,"boss":"Koril the Malignant","mapId":841,"region":"Tyria","points":[[3424,4937]],"note":"Only during \"Temple of the Intolerable\" quest."}, + {"id":"51bca9481af08e0e","skillId":869,"boss":"Joh the Hostile","mapId":54,"region":"Tyria","points":[[4089,4499]],"note":"Only during \"War in Kryta\"."}, + {"id":"6355f798e1ab934e","skillId":822,"boss":"Inquisitor Bauer","mapId":54,"region":"Tyria","points":[[4157,4533]],"note":"Only during \"Wanted: Inquisitor Bauer\" quest."}, + {"id":"4d859a56699e59f9","skillId":355,"boss":"Perfected Armor","mapId":842,"region":"Tyria","points":[[3876,4752]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"4825c5478b5a20fb","skillId":338,"boss":"High Inquisitor Toriimo","mapId":842,"region":"Tyria","points":[[3897,4752]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"6ac31fb0f2b37bbc","skillId":1724,"boss":"Confessor Isaiah","mapId":842,"region":"Tyria","points":[[3917,4752]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"2fb47977236a2754","skillId":428,"boss":"Confessor Isaiah","mapId":842,"region":"Tyria","points":[[3938,4752]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"5f2e1a9b41ab2e23","skillId":1726,"boss":"Cairn the Malignant","mapId":842,"region":"Tyria","points":[[3958,4752]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"370e6afd04a9716c","skillId":405,"boss":"Perfected Cloak","mapId":842,"region":"Tyria","points":[[3979,4752]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"d63099890e69752f","skillId":1465,"boss":"Cairn the Vengeful","mapId":842,"region":"Tyria","points":[[3876,4784]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"2bbd28556e83a74f","skillId":1686,"boss":"Ambrillus the Guardian","mapId":842,"region":"Tyria","points":[[3897,4784]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"b3d4ce3a35d2f57d","skillId":1362,"boss":"Oizys the Miserable","mapId":842,"region":"Tyria","points":[[3917,4784]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"a503cce861398a91","skillId":54,"boss":"Lucent the Spectral","mapId":842,"region":"Tyria","points":[[3938,4784]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"f094012b036541aa","skillId":228,"boss":"Talios the Resplendent","mapId":842,"region":"Tyria","points":[[3958,4784]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, + {"id":"ef7bd82f56f5dcf4","skillId":239,"boss":"Perfected Aegis","mapId":842,"region":"Tyria","points":[[3979,4784]],"note":"Only during \"The Battle for Lion's Arch\" quest."}, +]; diff --git a/src/shared/elite-skills.ts b/src/shared/elite-skills.ts new file mode 100644 index 00000000..b226366d --- /dev/null +++ b/src/shared/elite-skills.ts @@ -0,0 +1,116 @@ +/** + * Owns capture-location meaning and the player's bounded tracking choices. + * Learned skills remain live observations, never a second saved completion ledger. + */ +import { isTravelCharacterKey, type TravelCharacterKey } from "./travel-history.js"; + +export const ELITE_REGIONS = ["Tyria", "Cantha", "Elona", "Eye of the North"] as const; +export type EliteRegion = typeof ELITE_REGIONS[number]; +export type EliteLocation = Readonly<{ + id: string; + skillId: number; + boss: string; + mapId: number; + region: EliteRegion; + /** Absolute world-map coordinates. Empty means no usable boss position. */ + points: readonly (readonly [number, number])[]; + note: string | null; +}>; +export type EliteTracking = Readonly<{ + skills: readonly number[]; + activeLocation: string | null; + missionMap: boolean; +}>; +export const EMPTY_ELITE_TRACKING: EliteTracking = Object.freeze({ + skills: Object.freeze([]), activeLocation: null, missionMap: true, +}); +export type EliteChange = + | Readonly<{ kind: "track" | "remove"; skillId: number }> + | Readonly<{ kind: "target"; locationId: string }> + | Readonly<{ kind: "mission-map"; show: boolean }>; +export type EliteUpdate = Readonly<{ characterKey: TravelCharacterKey; change: EliteChange }>; + +function object(value: unknown): Record { + if (value === null || typeof value !== "object" || Array.isArray(value)) { + throw new TypeError("Elite tracking must be an object"); + } + return value as Record; +} +function exact(value: Record, keys: readonly string[]): void { + if (Object.keys(value).length !== keys.length || keys.some((key) => !(key in value))) { + throw new TypeError("Elite tracking contains unexpected fields"); + } +} +export function parseEliteCharacter(value: unknown): Readonly<{ characterKey: TravelCharacterKey }> { + const input = object(value); + exact(input, ["characterKey"]); + if (!isTravelCharacterKey(input.characterKey)) throw new TypeError("Character is unavailable"); + return { characterKey: input.characterKey }; +} +export function parseEliteUpdate(value: unknown): EliteUpdate { + const input = object(value); + exact(input, ["characterKey", "change"]); + const { characterKey } = parseEliteCharacter({ characterKey: input.characterKey }); + const change = object(input.change); + if (change.kind === "track" || change.kind === "remove") { + exact(change, ["kind", "skillId"]); + if (typeof change.skillId !== "number" || !Number.isSafeInteger(change.skillId) + || change.skillId < 1 || change.skillId > 10_000) throw new TypeError("Invalid skill"); + return { characterKey, change: { kind: change.kind, skillId: change.skillId } }; + } + if (change.kind === "target") { + exact(change, ["kind", "locationId"]); + if (typeof change.locationId !== "string" || !/^[a-f0-9]{16}$/u.test(change.locationId)) { + throw new TypeError("Invalid capture location"); + } + return { characterKey, change: { kind: "target", locationId: change.locationId } }; + } + if (change.kind === "mission-map") { + exact(change, ["kind", "show"]); + if (typeof change.show !== "boolean") throw new TypeError("Invalid mission map choice"); + return { characterKey, change: { kind: "mission-map", show: change.show } }; + } + throw new TypeError("Unknown tracking action"); +} +export function parseEliteTracking(value: unknown, locations: readonly EliteLocation[]): EliteTracking { + const input = object(value); + exact(input, ["skills", "activeLocation", "missionMap"]); + const known = new Set(locations.map((location) => location.skillId)); + if (!Array.isArray(input.skills) || input.skills.length > known.size + || input.skills.some((id: unknown) => typeof id !== "number" || !known.has(id)) + || new Set(input.skills).size !== input.skills.length + || typeof input.missionMap !== "boolean") throw new TypeError("Invalid tracking choices"); + const skills: number[] = input.skills.map(Number); + const active = input.activeLocation; + if (active !== null && (typeof active !== "string" || !locations.some((location) => + location.id === active && skills.includes(location.skillId)))) { + throw new TypeError("Active boss must belong to a tracked skill"); + } + return Object.freeze({ skills: Object.freeze(skills), activeLocation: active, missionMap: input.missionMap }); +} +export function changeEliteTracking( + current: EliteTracking, change: EliteChange, locations: readonly EliteLocation[], +): EliteTracking { + if (change.kind === "mission-map") return { ...current, missionMap: change.show }; + if (change.kind === "target") { + const location = locations.find((entry) => entry.id === change.locationId); + if (!location) throw new TypeError("Unknown capture location"); + return { ...current, activeLocation: location.id, + skills: [...new Set([...current.skills, location.skillId])] }; + } + if (!locations.some((entry) => entry.skillId === change.skillId)) throw new TypeError("Unknown capture skill"); + if (change.kind === "track") return { ...current, skills: [...new Set([...current.skills, change.skillId])] }; + const active = locations.find((entry) => entry.id === current.activeLocation); + return { ...current, skills: current.skills.filter((id) => id !== change.skillId), + activeLocation: active?.skillId === change.skillId ? null : current.activeLocation }; +} + +export function eliteContinent(region: EliteRegion): number { + return region === "Cantha" ? 2 : region === "Elona" ? 3 : 0; +} +export function eliteLearned( + skillId: number, observed: Readonly<{ knownThrough: number; unlocked: ReadonlySet }> | null, +): "learned" | "not-learned" | "unknown" { + if (!observed || skillId >= observed.knownThrough) return "unknown"; + return observed.unlocked.has(skillId) ? "learned" : "not-learned"; +} diff --git a/tests/release/preload-behaviour.test.ts b/tests/release/preload-behaviour.test.ts index 45431907..4f37d9a9 100644 --- a/tests/release/preload-behaviour.test.ts +++ b/tests/release/preload-behaviour.test.ts @@ -218,6 +218,16 @@ const INVOCATIONS: Invocation[] = [ }], channel: IPC.travelPreferencesSet, }, + { + path: "eliteTracking.get", + args: [{ characterKey: "0123456789abcdef" }], + channel: IPC.eliteTrackingGet, + }, + { + path: "eliteTracking.update", + args: [{ characterKey: "0123456789abcdef", change: { kind: "track", skillId: 338 } }], + channel: IPC.eliteTrackingUpdate, + }, { path: "travelHistory.get", args: [{ characterKey: "0123456789abcdef" }], @@ -463,6 +473,7 @@ test("the Core preload exposes no optional Tools namespace or channel", () => { "trade", "travelPreferences", "travelHistory", + "eliteTracking", "buildLibrary", ]) { assert.equal( diff --git a/tests/unit/elite-skills.test.ts b/tests/unit/elite-skills.test.ts new file mode 100644 index 00000000..d0bd23fb --- /dev/null +++ b/tests/unit/elite-skills.test.ts @@ -0,0 +1,61 @@ +import assert from "node:assert/strict"; +import { mkdtemp, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { describe, it } from "node:test"; +import { ELITE_LOCATIONS } from "../../src/shared/elite-locations.js"; +import { EliteTrackingStore } from "../../src/main/core/elite-tracking.js"; +import { + EMPTY_ELITE_TRACKING, changeEliteTracking, eliteLearned, parseEliteTracking, parseEliteUpdate, +} from "../../src/shared/elite-skills.js"; +import { travelCharacterKey } from "../../src/shared/travel-history.js"; + +const characterA = travelCharacterKey("0123456789abcdef"); +const characterB = travelCharacterKey("fedcba9876543210"); +const lissah = ELITE_LOCATIONS.find((entry) => entry.boss === "Lissah the Packleader")!; +const fenrir = ELITE_LOCATIONS.find((entry) => entry.boss === "Fenrir")!; + +describe("elite capture plans", () => { + it("imports every distinct location with stable IDs, alternate spawns and missing positions", () => { + assert.equal(ELITE_LOCATIONS.length, 925); + assert.equal(new Set(ELITE_LOCATIONS.map((entry) => entry.id)).size, 925); + assert.equal(new Set(ELITE_LOCATIONS.map((entry) => entry.skillId)).size, 302); + assert.equal(lissah.skillId, 338); + assert.equal(lissah.region, "Eye of the North"); + assert.deepEqual(lissah.points, [[6442, 1596]]); + assert.ok(ELITE_LOCATIONS.some((entry) => entry.points.length > 1 && entry.note)); + assert.ok(ELITE_LOCATIONS.some((entry) => entry.boss === "Reaper of Agony" && entry.points.length === 0)); + assert.ok(ELITE_LOCATIONS.some((entry) => entry.note?.includes("impossible to capture"))); + }); + it("never interprets unobserved skills as missing or learned", () => { + assert.equal(eliteLearned(338, null), "unknown"); + assert.equal(eliteLearned(338, { knownThrough: 338, unlocked: new Set() }), "unknown"); + assert.equal(eliteLearned(338, { knownThrough: 339, unlocked: new Set() }), "not-learned"); + assert.equal(eliteLearned(338, { knownThrough: 339, unlocked: new Set([338]) }), "learned"); + }); + it("keeps one active boss belonging to a tracked skill and rejects invalid input", () => { + const targeted = changeEliteTracking(EMPTY_ELITE_TRACKING, { kind: "target", locationId: lissah.id }, ELITE_LOCATIONS); + assert.deepEqual(targeted.skills, [338]); + assert.equal(targeted.activeLocation, lissah.id); + assert.equal(changeEliteTracking(targeted, { kind: "remove", skillId: 338 }, ELITE_LOCATIONS).activeLocation, null); + assert.throws(() => parseEliteTracking({ ...targeted, skills: [] }, ELITE_LOCATIONS)); + assert.throws(() => parseEliteUpdate({ characterKey: characterA, change: { kind: "target", locationId: "../bad" } })); + assert.throws(() => parseEliteUpdate({ characterKey: characterA, change: { kind: "track", skillId: 338, extra: true } })); + }); + it("merges concurrent actions, isolates characters and profiles, and survives restart", async () => { + const dir = await mkdtemp(join(tmpdir(), "gwonmac-elites-")); + try { + const path = join(dir, "profile-a.json"); + const store = new EliteTrackingStore(); + await Promise.all([lissah, fenrir].map((location) => store.update(path, { + characterKey: characterA, change: { kind: "track", skillId: location.skillId }, + }))); + const restart = new EliteTrackingStore(); + assert.deepEqual((await restart.get(path, characterA)).skills, [lissah.skillId, fenrir.skillId]); + assert.deepEqual(await restart.get(path, characterB), EMPTY_ELITE_TRACKING); + assert.deepEqual(await restart.get(join(dir, "profile-b.json"), characterA), EMPTY_ELITE_TRACKING); + await writeFile(path, "broken"); + assert.deepEqual(await restart.get(path, characterA), EMPTY_ELITE_TRACKING); + } finally { await rm(dir, { recursive: true, force: true }); } + }); +}); From 04ce3689294710ad398336cedc77ebe8bdbdc26c Mon Sep 17 00:00:00 2001 From: Mat4m0 Date: Fri, 11 Sep 2026 07:30:01 +0200 Subject: [PATCH 2/2] fix(maps): verify capture regions and source IDs --- scripts/import-elite-locations.py | 10 ++++++++-- src/shared/elite-locations.ts | 4 ++-- src/shared/elite-skills.ts | 2 +- tests/unit/elite-skills.test.ts | 7 ++++++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/scripts/import-elite-locations.py b/scripts/import-elite-locations.py index 3c619a3c..1551b251 100644 --- a/scripts/import-elite-locations.py +++ b/scripts/import-elite-locations.py @@ -12,8 +12,14 @@ text = HEADER.read_text() assert hashlib.sha256(HEADER.read_bytes()).hexdigest() == 'ecf7a506e4b213578b4669c56d310b6ab81d3d4164b93a607102bbf012ba8d5f', 'Review a changed source before importing' +ENUM_HASHES = { + 'Skills': '2a13a9f46241308fba1ee52af9b1fc56f988042a82594fe5a0dc8d037531310c', + 'Maps': 'dab0d410d4e0c937cfd6cdf32f7c53877fa554423e58914b199550c4256b06a5', +} def enum(name): - source = (SOURCE / f'Dependencies/GWCA/include/GWCA/Constants/{name}.h').read_text() + path = SOURCE / f'Dependencies/GWCA/include/GWCA/Constants/{name}.h' + assert hashlib.sha256(path.read_bytes()).hexdigest() == ENUM_HASHES[name], f'Review changed {name} IDs before importing' + source = path.read_text() body = source.split('enum class ', 1)[1].split('{', 1)[1].split('};', 1)[0] body = re.sub(r'/\*.*?\*/|//[^\n]*', '', body, flags=re.S) result, number = {}, -1 @@ -43,7 +49,7 @@ def literal(value): if area == 'Issnur_Isles': region = 'Elona' if area == 'Tsumei_Village_Winds_of_Change__A_Treatys_a_Treaty': region = 'Cantha' if area == 'Prophets_Path': region = 'Tyria' - if area == 'Rragars_Menagerie_Level_1': region = 'Eye of the North' + if area == 'Catacombs_of_Kathandrax_Level_1': region = 'Eye of the North' if area == 'War_in_Kryta_Divinity_Coast': region = 'Tyria' boss, note = literal(boss), literal(note) if note else None points = [[int(x), int(y)] for x, y in re.findall(r'\{\s*(-?\d+),\s*(-?\d+)\s*\}', coords)] diff --git a/src/shared/elite-locations.ts b/src/shared/elite-locations.ts index 89678b46..64a81e05 100644 --- a/src/shared/elite-locations.ts +++ b/src/shared/elite-locations.ts @@ -816,8 +816,8 @@ export const ELITE_LOCATIONS: readonly EliteLocation[] = [ {"id":"77c2201b5452b49a","skillId":405,"boss":"Jade Bow","mapId":94,"region":"Tyria","points":[[5865,6314],[5932,6378],[6088,6193],[6151,6174]],"note":"Shared spawn. Does not always spawn."}, {"id":"7d55c3c6ad2ee7d2","skillId":126,"boss":"Mursaat Necromancer","mapId":94,"region":"Tyria","points":[[5881,6314],[5948,6378],[6104,6193],[6167,6174]],"note":"Shared spawn. Does not always spawn."}, {"id":"47ba82d8a001166a","skillId":39,"boss":"Mursaat Mesmer","mapId":94,"region":"Tyria","points":[[5898,6314],[5965,6378],[6121,6193],[6184,6174]],"note":"Shared spawn. Does not always spawn."}, - {"id":"d7af486926e38da9","skillId":389,"boss":"Flame Djinn","mapId":570,"region":"Tyria","points":[],"note":"One on level 3"}, - {"id":"34dc4b38f6da289d","skillId":1380,"boss":"Regent of Flame","mapId":570,"region":"Tyria","points":[],"note":"One on level 1, two on level 2, one on level 3"}, + {"id":"d7af486926e38da9","skillId":389,"boss":"Flame Djinn","mapId":570,"region":"Eye of the North","points":[],"note":"One on level 3"}, + {"id":"34dc4b38f6da289d","skillId":1380,"boss":"Regent of Flame","mapId":570,"region":"Eye of the North","points":[],"note":"One on level 1, two on level 2, one on level 3"}, {"id":"20982938beec98ac","skillId":1471,"boss":"Beastmaster Korg","mapId":573,"region":"Eye of the North","points":[],"note":"Level 2"}, {"id":"3e23e98a4e6f9a3c","skillId":1466,"boss":"Charr Warden","mapId":573,"region":"Eye of the North","points":[],"note":"4 on level 1"}, {"id":"8c52cfb1d8b3f156","skillId":1659,"boss":"Flesheater","mapId":573,"region":"Eye of the North","points":[],"note":"2 on level 3"}, diff --git a/src/shared/elite-skills.ts b/src/shared/elite-skills.ts index b226366d..f2c3ff1b 100644 --- a/src/shared/elite-skills.ts +++ b/src/shared/elite-skills.ts @@ -106,7 +106,7 @@ export function changeEliteTracking( } export function eliteContinent(region: EliteRegion): number { - return region === "Cantha" ? 2 : region === "Elona" ? 3 : 0; + return region === "Cantha" ? 2 : region === "Elona" ? 4 : 0; } export function eliteLearned( skillId: number, observed: Readonly<{ knownThrough: number; unlocked: ReadonlySet }> | null, diff --git a/tests/unit/elite-skills.test.ts b/tests/unit/elite-skills.test.ts index d0bd23fb..cf9ee18f 100644 --- a/tests/unit/elite-skills.test.ts +++ b/tests/unit/elite-skills.test.ts @@ -6,7 +6,7 @@ import { describe, it } from "node:test"; import { ELITE_LOCATIONS } from "../../src/shared/elite-locations.js"; import { EliteTrackingStore } from "../../src/main/core/elite-tracking.js"; import { - EMPTY_ELITE_TRACKING, changeEliteTracking, eliteLearned, parseEliteTracking, parseEliteUpdate, + EMPTY_ELITE_TRACKING, changeEliteTracking, eliteContinent, eliteLearned, parseEliteTracking, parseEliteUpdate, } from "../../src/shared/elite-skills.js"; import { travelCharacterKey } from "../../src/shared/travel-history.js"; @@ -20,6 +20,11 @@ describe("elite capture plans", () => { assert.equal(ELITE_LOCATIONS.length, 925); assert.equal(new Set(ELITE_LOCATIONS.map((entry) => entry.id)).size, 925); assert.equal(new Set(ELITE_LOCATIONS.map((entry) => entry.skillId)).size, 302); + assert.equal(eliteContinent("Tyria"), 0); + assert.equal(eliteContinent("Eye of the North"), 0); + assert.equal(eliteContinent("Cantha"), 2); + assert.equal(eliteContinent("Elona"), 4); + assert.equal(ELITE_LOCATIONS.find((entry) => entry.boss === "Flame Djinn")?.region, "Eye of the North"); assert.equal(lissah.skillId, 338); assert.equal(lissah.region, "Eye of the North"); assert.deepEqual(lissah.points, [[6442, 1596]]);