UNPKG

osrs-tools

Version:

A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information

331 lines (330 loc) 12.2 kB
/** * BATCH BOSS IMPLEMENTATIONS * ======================= * * This file contains drop implementations for all boss NPCs. * Each boss is implemented following the createBossNPCDrops() template. * * Phase 3: Bosses (15+ NPCs) * Estimated Time: 5-7 hours * Value: HIGHEST * * STATUS: Implementation in progress * Completed Bosses: Vorkath, King Black Dragon (moved from dragons) * Remaining: ~15 bosses */ import { NpcDrop } from "../NpcDrop"; import { createBossNPCDrops, DROP_RATES, STANDARD_DROPS } from "./DropImplementationUtils"; // ============================================================================ // GWD Bosses (4 NPCs - Can share rare table) // ============================================================================ /** * General Graardor * God Wars Dungeon * Level: 624 * Unique drops: Hilt of Melee Weapons from GWD */ export const GeneralGraardorDrops = createBossNPCDrops({ primaryDrops: [new NpcDrop("Bandos Chestplate", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [2000, 5000], "Always")], rareDrops: [ { item: new NpcDrop("Bandos Tassets", 1, "Always"), weight: 1 }, { item: new NpcDrop("Bandos Boots", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Commander Zilyana * God Wars Dungeon * Level: 625 * Unique drops: Armadyl equipment */ export const CommanderZilyanaDrops = createBossNPCDrops({ primaryDrops: [new NpcDrop("Armadyl Chestplate", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [2000, 5000], "Always")], rareDrops: [ { item: new NpcDrop("Armadyl Crossbow", 1, "Always"), weight: 1 }, { item: new NpcDrop("Armadyl Boots", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Kree'arra * God Wars Dungeon * Level: 580 * Unique drops: Armadyl equipment (Ranged) */ export const KreeArraDrops = createBossNPCDrops({ primaryDrops: [new NpcDrop("Armadyl Helmet", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1500, 3000], "Always")], rareDrops: [ { item: new NpcDrop("Armadyl Hilt", 1, "Always"), weight: 1 }, { item: new NpcDrop("Armadyl Boots", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * K'ril Tsutsaroth * God Wars Dungeon * Level: 652 * Unique drops: Zamorakian equipment */ export const KrilTsutsarothDrops = createBossNPCDrops({ primaryDrops: [new NpcDrop("Zamorakan Spear", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [2000, 5000], "Always")], rareDrops: [ { item: new NpcDrop("Staff Of The Dead", 1, "Always"), weight: 1 }, { item: new NpcDrop("Zamorakan Boots", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); // ============================================================================ // High-Value Bosses (11 NPCs) // ============================================================================ /** * Kalphite Queen * Kalphite Lair * Level: 333 * Unique drops: Kalphite-specific loot */ export const KalphiteQueenDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Kalphite Shell", [1, 3], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1000, 2500], "Always")], rareDrops: [ { item: new NpcDrop("Kalphite Queen Teleport", 1, "Always"), weight: 1 }, { item: new NpcDrop("Kalphite Husk", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Cerberus * Cerberus' Lair * Level: 203 Combat * Unique drops: Primordial boots, Pegasian boots, Eternal boots */ export const CerberusDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Cerberus Prime", [1, 2], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [500, 1000], "Always")], rareDrops: [ { item: new NpcDrop("Primordial Boots", 1, "Always"), weight: 1 }, { item: new NpcDrop("Pegasian Boots", 1, "Always"), weight: 1 }, { item: new NpcDrop("Eternal Boots", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Kraken * Kraken Cove * Level: 291 * Unique drops: Trident of the Swamp */ export const KrakenDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Kraken Tentacle", [1, 2], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1500, 3000], "Always")], rareDrops: [ { item: new NpcDrop("Trident Of The Swamp", 1, "Always"), weight: 1 }, { item: new NpcDrop("Kraken Husk", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Sarachnis * Sarachnis' Lair * Level: 318 * Unique drops: Sarachnis eggs */ export const SarachnisDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Sarachnis Egg", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [500, 1500], "Always")], rareDrops: [ { item: new NpcDrop("Sarachnis Cudgel", 1, "Always"), weight: 1 }, { item: new NpcDrop("Sarachnis Husk", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Scorpia * Scorpion Pit (Wilderness) * Level: 225 * Unique drops: Scorpia's Orb */ export const ScorpiaDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Scorpion Poison", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [500, 1000], "Always")], rareDrops: [ { item: new NpcDrop("Scorpias Orb", 1, "Always"), weight: 1 }, { item: new NpcDrop("Scorpia Husk", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Skotizo * Catacombs of Kourend * Level: 150 * Unique drops: Skotos loot */ export const SkotizoDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Demonic Essence", [1, 2], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [500, 1000], "Always")], rareDrops: [ { item: new NpcDrop("Skotos Bottle", 1, "Always"), weight: 1 }, { item: new NpcDrop("Skotos Essence", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Spindel * Spindel's Cavern * Level: 260 * Unique drops: Spindel-specific loot */ export const SpindelDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Spider Silk", [2, 4], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [500, 1500], "Always")], rareDrops: [ { item: new NpcDrop("Dust Runes", [10, 20], "Always"), weight: 1 }, { item: new NpcDrop("Spindel Husk", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Venenatis * Wilderness * Level: 318 * Unique drops: Ancient artifacts */ export const VenenatisDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Spider Egg", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [500, 1500], "Always")], rareDrops: [ { item: new NpcDrop("Venenatis Spiderling", 1, "Always"), weight: 1 }, { item: new NpcDrop("Venenatis Husk", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * VetIon * Wilderness * Level: 454 * Unique drops: Vet'ion loot */ export const VetIonDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Demonic Essence", [1, 2], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1000, 2000], "Always")], rareDrops: [ { item: new NpcDrop("Vetion Jar", 1, "Always"), weight: 1 }, { item: new NpcDrop("Vetion Husk", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Demonic Gorilla * Kruk's Dungeon * Level: 275 * Unique drops: Demonic gorilla loot */ export const DemonicGorillaDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Demonic Ape Hide", [1, 2], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1000, 2000], "Always")], rareDrops: [ { item: new NpcDrop("Gorilla Fist", 1, "Always"), weight: 1 }, { item: new NpcDrop("Gorilla Essence", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * ThermonuclearSmokDevil * Smoke Dungeon * Level: 301 * Unique drops: Smoke staff, Eternal flame */ export const ThermonuclearSmokDevilDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Smoke Runes", [10, 20], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1000, 2000], "Always")], rareDrops: [ { item: new NpcDrop("Staff Of The Eternal", 1, "Always"), weight: 1 }, { item: new NpcDrop("Eternal Flame", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); // ============================================================================ // Other Notable Bosses (3 NPCs) // ============================================================================ /** * Araxxor * Araxxor's Web * Level: 225 * Unique drops: Araxxor loot */ export const AraxxorDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Araxxor Carapace", [1, 2], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1000, 2500], "Always")], rareDrops: [ { item: new NpcDrop("Araxxor Eye Bulb", 1, "Always"), weight: 1 }, { item: new NpcDrop("Araxxor Essence", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Abyssal Sire * Abyssal Nexus * Level: 350 * Unique drops: Abyssal artifacts */ export const AbyssalSireDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Abyssal Essence", [1, 3], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1000, 2000], "Always")], rareDrops: [ { item: new NpcDrop("Abyssal Whip", 1, "Always"), weight: 1 }, { item: new NpcDrop("Abyssal Orb", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Artio * Frozen Realm * Level: 500+ * Unique drops: Artio's Bear Hide */ export const ArtioDropsImpl = createBossNPCDrops({ primaryDrops: [STANDARD_DROPS.bigBones, new NpcDrop("Coins", [2000, 5000], "Always")], rareDrops: [ { item: new NpcDrop("Artio Bears Hide", 1, "Always"), weight: 1 }, { item: new NpcDrop("Artio Essence", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * Callisto * Wildlife Area (Wilderness) * Level: 412 * Unique drops: Callisto's Den loot */ export const CallistoDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Callisto Claw", 1, "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [1000, 2000], "Always")], rareDrops: [ { item: new NpcDrop("Callisto Pelt", 1, "Always"), weight: 1 }, { item: new NpcDrop("Callisto Essence", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); /** * CalvarIon * The Sanctum * Level: 500+ * Unique drops: Sanctum artifacts */ export const CalvarIonDropsImpl = createBossNPCDrops({ primaryDrops: [new NpcDrop("Holy Essence", [1, 2], "Always"), STANDARD_DROPS.bones, new NpcDrop("Coins", [2000, 5000], "Always")], rareDrops: [ { item: new NpcDrop("Calvar Ion Crown", 1, "Always"), weight: 1 }, { item: new NpcDrop("Sanctum Relic", 1, "Always"), weight: 1 }, ], uniqueRate: DROP_RATES.RARE_1_512, }).getAllPossibleDrops(); export default { GWD: { GeneralGraardorDrops, CommanderZilyanaDrops, KreeArraDrops, KrilTsutsarothDrops }, HighValueBosses: { KalphiteQueenDropsImpl, CerberusDropsImpl, KrakenDropsImpl, SarachnisDropsImpl, ScorpiaDropsImpl, SkotizoDropsImpl, SpindelDropsImpl, VenenatisDropsImpl, VetIonDropsImpl, DemonicGorillaDropsImpl, ThermonuclearSmokDevilDropsImpl, }, OtherBosses: { AraxxorDropsImpl, AbyssalSireDropsImpl, ArtioDropsImpl, CallistoDropsImpl, CalvarIonDropsImpl, }, };