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
JavaScript
/**
* 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,
},
};