Skip to content

Commit

Permalink
Wilderness Slayer Cave Tables
Browse files Browse the repository at this point in the history
Adds the wilderness slayer cave tables for all the relevant npcs
  • Loading branch information
TastyPumPum committed Apr 6, 2024
1 parent 8e2b7ef commit bfeb5ca
Show file tree
Hide file tree
Showing 13 changed files with 298 additions and 9 deletions.
4 changes: 3 additions & 1 deletion src/simulation/monsters/low/a-f/AbyssalDemon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,17 @@ const AbyssalDemonTable = new LootTable()
.every(AbyssalDemonPreTable)

/* Tertiary */
.tertiary(1.25, WildySlayerCaveTable)
.tertiary(25, "Ensouled abyssal head")
.tertiary(128, "Clue scroll (hard)")
.tertiary(1200, "Clue scroll (elite)")
.tertiary(6000, "Abyssal head");

const AbyssalDemonWildyCaveTable = new LootTable().every(AbyssalDemonTable).tertiary(1.25, WildySlayerCaveTable);

export default new SimpleMonster({
id: 415,
name: "Abyssal Demon",
table: AbyssalDemonTable,
wildyCaveTable: AbyssalDemonWildyCaveTable,
aliases: ["abbys", "abby demon", "abby demons", "abyssal demons", "abyssal demon"],
});
4 changes: 3 additions & 1 deletion src/simulation/monsters/low/a-f/Ankou.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,14 @@ const AnkouTable = new LootTable({ limit: 100 })
.add(GemTable, 1, 2)

/* Tertiary */
.tertiary(1.51, WildySlayerCaveTable)
.tertiary(512, "Clue scroll (hard)");

const AnkouWildyCaveTable = new LootTable().every(AnkouTable).tertiary(1.51, WildySlayerCaveTable);

export default new SimpleMonster({
id: 2514,
name: "Ankou",
table: AnkouTable,
wildyCaveTable: AnkouWildyCaveTable,
aliases: ["ankou", "ank"],
});
28 changes: 28 additions & 0 deletions src/simulation/monsters/low/a-f/BlackDemon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,31 @@ import SimpleMonster from "../../../../structures/SimpleMonster";
import HerbDropTable from "../../../subtables/HerbDropTable";
import RareDropTable, { GemTable } from "../../../subtables/RareDropTable";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 61)
.add("Blighted anglerfish", [1, 2], 81)
.add("Blighted manta ray", [1, 2], 81)
.add("Blighted karambwan", [1, 2], 122)
.add("Blighted teleport spell sack", [1, 10], 122)
.add("Blighted ancient spell sack", [1, 10], 122)
.add("Blighted vengeance spell sack", [1, 10], 122)
.add("Blighted super restore(4)", 1, 244)
.add("Revenant cave teleport", 1, 244)
.add("Dareeyak teleport (tablet)", 1, 1220)
.add("Wilderness crabs teleport", 1, 1220)
.add("Carrallanger teleport (tablet)", 1, 1220)
.add("Paddewwa teleport (tablet)", 1, 1220)
.add("Annakarl teleport (tablet)", 1, 1220)
.add("Lassar teleport (tablet)", 1, 1220)
.add("Kharyrll teleport (tablet)", 1, 1220)
.add("Senntisten teleport (tablet)", 1, 1220)
.add("Ghorrock teleport (tablet)", 1, 1220)
.add("Target teleport", 1, 1220)
.add("Magic shortbow scroll", 1, 3049)
.add("Ring of wealth scroll", 1, 3049)
.add("Trouver parchment", 2, 12_198)
.add("Looting bag note", 1, 12_198);

const BlackDemonTable = new LootTable()
.every("Malicious ashes")

Expand Down Expand Up @@ -44,9 +69,12 @@ const BlackDemonTable = new LootTable()
.tertiary(35, "Ensouled demon head")
.tertiary(128, "Clue scroll (hard)");

const BlackDemonWildyCaveTable = new LootTable().every(BlackDemonTable).tertiary(1.1, WildySlayerCaveTable);

export default new SimpleMonster({
id: 240,
name: "Black Demon",
table: BlackDemonTable,
wildyCaveTable: BlackDemonWildyCaveTable,
aliases: ["black demon"],
});
28 changes: 28 additions & 0 deletions src/simulation/monsters/low/a-f/BlackDragon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,31 @@ import LootTable from "../../../../structures/LootTable";
import SimpleMonster from "../../../../structures/SimpleMonster";
import RareDropTable, { GemTable } from "../../../subtables/RareDropTable";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 61)
.add("Blighted anglerfish", [1, 2], 81)
.add("Blighted manta ray", [1, 2], 81)
.add("Blighted karambwan", [1, 2], 122)
.add("Blighted teleport spell sack", [1, 10], 122)
.add("Blighted ancient spell sack", [1, 10], 122)
.add("Blighted vengeance spell sack", [1, 10], 122)
.add("Blighted super restore(4)", 1, 244)
.add("Revenant cave teleport", 1, 244)
.add("Dareeyak teleport (tablet)", 1, 1220)
.add("Wilderness crabs teleport", 1, 1220)
.add("Carrallanger teleport (tablet)", 1, 1220)
.add("Paddewwa teleport (tablet)", 1, 1220)
.add("Annakarl teleport (tablet)", 1, 1220)
.add("Lassar teleport (tablet)", 1, 1220)
.add("Kharyrll teleport (tablet)", 1, 1220)
.add("Senntisten teleport (tablet)", 1, 1220)
.add("Ghorrock teleport (tablet)", 1, 1220)
.add("Target teleport", 1, 1220)
.add("Magic shortbow scroll", 1, 3049)
.add("Ring of wealth scroll", 1, 3049)
.add("Trouver parchment", 2, 12_198)
.add("Looting bag note", 1, 12_198);

const BlackDragonTable = new LootTable()
.every("Dragon bones")
.every("Black dragonhide")
Expand Down Expand Up @@ -43,9 +68,12 @@ const BlackDragonTable = new LootTable()
.tertiary(500, "Clue scroll (elite)")
.tertiary(10_000, "Draconic visage");

const BlackDragonWildyCaveTable = new LootTable().every(BlackDragonTable).tertiary(1.1, WildySlayerCaveTable);

export default new SimpleMonster({
id: 252,
name: "Black Dragon",
table: BlackDragonTable,
wildyCaveTable: BlackDragonWildyCaveTable,
aliases: ["black dragon", "black drags"],
});
28 changes: 28 additions & 0 deletions src/simulation/monsters/low/a-f/DustDevil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,31 @@ import SimpleMonster from "../../../../structures/SimpleMonster";
import HerbDropTable from "../../../subtables/HerbDropTable";
import { GemTable } from "../../../subtables/RareDropTable";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 87)
.add("Blighted anglerfish", [1, 2], 116)
.add("Blighted manta ray", [1, 2], 116)
.add("Blighted karambwan", [1, 2], 173)
.add("Blighted teleport spell sack", [1, 10], 173)
.add("Blighted ancient spell sack", [1, 10], 173)
.add("Blighted vengeance spell sack", [1, 10], 173)
.add("Blighted super restore(4)", 1, 347)
.add("Revenant cave teleport", 1, 347)
.add("Dareeyak teleport (tablet)", 1, 1734)
.add("Wilderness crabs teleport", 1, 1734)
.add("Carrallanger teleport (tablet)", 1, 1734)
.add("Paddewwa teleport (tablet)", 1, 1734)
.add("Annakarl teleport (tablet)", 1, 1734)
.add("Lassar teleport (tablet)", 1, 1734)
.add("Kharyrll teleport (tablet)", 1, 1734)
.add("Senntisten teleport (tablet)", 1, 1734)
.add("Ghorrock teleport (tablet)", 1, 1734)
.add("Target teleport", 1, 1734)
.add("Magic shortbow scroll", 1, 4336)
.add("Ring of wealth scroll", 1, 4336)
.add("Trouver parchment", 2, 17_344)
.add("Looting bag note", 1, 17_344);

export const DustDevilPreTable = new LootTable()
/* Weapons and armour */
.add("Adamant axe", 1, 3)
Expand Down Expand Up @@ -41,9 +66,12 @@ export const DustDevilPreTable = new LootTable()

const DustDevilTable = new LootTable().every("Bones").every(DustDevilPreTable);

const DustDevilWildyCaveTable = new LootTable().every(DustDevilTable).tertiary(1.56, WildySlayerCaveTable);

export default new SimpleMonster({
id: 423,
name: "Dust Devil",
table: DustDevilTable,
wildyCaveTable: DustDevilWildyCaveTable,
aliases: ["dust devil", "dusty", "dusties"],
});
28 changes: 28 additions & 0 deletions src/simulation/monsters/low/g-m/GreaterDemon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,31 @@ import LootTable from "../../../../structures/LootTable";
import SimpleMonster from "../../../../structures/SimpleMonster";
import { GemTable } from "../../../subtables/RareDropTable";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 82)
.add("Blighted anglerfish", [1, 2], 109)
.add("Blighted manta ray", [1, 2], 109)
.add("Blighted karambwan", [1, 2], 163)
.add("Blighted teleport spell sack", [1, 10], 163)
.add("Blighted ancient spell sack", [1, 10], 163)
.add("Blighted vengeance spell sack", [1, 10], 163)
.add("Blighted super restore(4)", 1, 326)
.add("Revenant cave teleport", 1, 326)
.add("Dareeyak teleport (tablet)", 1, 1632)
.add("Wilderness crabs teleport", 1, 1632)
.add("Carrallanger teleport (tablet)", 1, 1632)
.add("Paddewwa teleport (tablet)", 1, 1632)
.add("Annakarl teleport (tablet)", 1, 1632)
.add("Lassar teleport (tablet)", 1, 1632)
.add("Kharyrll teleport (tablet)", 1, 1632)
.add("Senntisten teleport (tablet)", 1, 1632)
.add("Ghorrock teleport (tablet)", 1, 1632)
.add("Target teleport", 1, 1632)
.add("Magic shortbow scroll", 1, 4081)
.add("Ring of wealth scroll", 1, 4081)
.add("Trouver parchment", 2, 16_324)
.add("Looting bag note", 1, 16_324);

const GreaterDemonTable = new LootTable({ limit: 128 })
.every("Vile ashes")

Expand Down Expand Up @@ -38,9 +63,12 @@ const GreaterDemonTable = new LootTable({ limit: 128 })
.tertiary(40, "Ensouled demon head")
.tertiary(128, "Clue scroll (hard)");

const GreaterDemonWildyCaveTable = new LootTable().every(GreaterDemonTable).tertiary(1.47, WildySlayerCaveTable);

export default new SimpleMonster({
id: 2025,
name: "Greater Demon",
table: GreaterDemonTable,
wildyCaveTable: GreaterDemonWildyCaveTable,
aliases: ["greater demon", "greater", "greaters"],
});
30 changes: 30 additions & 0 deletions src/simulation/monsters/low/g-m/GreaterNechryael.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,31 @@ import HerbDropTable from "../../../subtables/HerbDropTable";
import { GemTable } from "../../../subtables/RareDropTable";
import RareSeedTable from "../../../subtables/RareSeedTable";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 60)
.add("Blighted anglerfish", [1, 2], 80)
.add("Blighted manta ray", [1, 2], 80)
.add("Blighted karambwan", [1, 2], 121)
.add("Blighted teleport spell sack", [1, 10], 121)
.add("Blighted ancient spell sack", [1, 10], 121)
.add("Blighted vengeance spell sack", [1, 10], 121)
.add("Blighted super restore(4)", 1, 241)
.add("Revenant cave teleport", 1, 241)
.add("Dareeyak teleport (tablet)", 1, 1207)
.add("Wilderness crabs teleport", 1, 1207)
.add("Carrallanger teleport (tablet)", 1, 1207)
.add("Paddewwa teleport (tablet)", 1, 1207)
.add("Annakarl teleport (tablet)", 1, 1207)
.add("Lassar teleport (tablet)", 1, 1207)
.add("Kharyrll teleport (tablet)", 1, 1207)
.add("Senntisten teleport (tablet)", 1, 1207)
.add("Ghorrock teleport (tablet)", 1, 1207)
.add("Target teleport", 1, 1207)
.add("Magic shortbow scroll", 1, 3016)
.add("Ring of wealth scroll", 1, 3016)
.add("Trouver parchment", 2, 12_065)
.add("Looting bag note", 1, 12_065);

const GreaterNechryaelTable = new LootTable()
.every("Malicious ashes")

Expand Down Expand Up @@ -44,9 +69,14 @@ const GreaterNechryaelTable = new LootTable()
/* Tertiary */
.tertiary(128, "Clue scroll (hard)");

const GreaterNechryaelWildyCaveTable = new LootTable()
.every(GreaterNechryaelTable)
.tertiary(1.09, WildySlayerCaveTable);

export default new SimpleMonster({
id: 7278,
name: "Greater Nechryael",
table: GreaterNechryaelTable,
wildyCaveTable: GreaterNechryaelWildyCaveTable,
aliases: ["greater nechryael", "greater nech", "greater nechs", "g nechs"],
});
28 changes: 28 additions & 0 deletions src/simulation/monsters/low/g-m/GreenDragon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,31 @@ import SimpleMonster from "../../../../structures/SimpleMonster";
import HerbDropTable from "../../../subtables/HerbDropTable";
import { GemTable } from "../../../subtables/RareDropTable";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 90)
.add("Blighted anglerfish", [1, 2], 119)
.add("Blighted manta ray", [1, 2], 119)
.add("Blighted karambwan", [1, 2], 179)
.add("Blighted teleport spell sack", [1, 10], 179)
.add("Blighted ancient spell sack", [1, 10], 179)
.add("Blighted vengeance spell sack", [1, 10], 179)
.add("Blighted super restore(4)", 1, 358)
.add("Revenant cave teleport", 1, 358)
.add("Dareeyak teleport (tablet)", 1, 1790)
.add("Wilderness crabs teleport", 1, 1790)
.add("Carrallanger teleport (tablet)", 1, 1790)
.add("Paddewwa teleport (tablet)", 1, 1790)
.add("Annakarl teleport (tablet)", 1, 1790)
.add("Lassar teleport (tablet)", 1, 1790)
.add("Kharyrll teleport (tablet)", 1, 1790)
.add("Senntisten teleport (tablet)", 1, 1790)
.add("Ghorrock teleport (tablet)", 1, 1790)
.add("Target teleport", 1, 1790)
.add("Magic shortbow scroll", 1, 4476)
.add("Ring of wealth scroll", 1, 4476)
.add("Trouver parchment", 2, 17_903)
.add("Looting bag note", 1, 17_903);

const GreenDragonTable = new LootTable()
.every("Dragon bones")
.every("Green dragonhide")
Expand Down Expand Up @@ -43,9 +68,12 @@ const GreenDragonTable = new LootTable()
.tertiary(35, "Ensouled dragon head")
.tertiary(128, "Clue scroll (hard)");

const GreenDragonWildyCaveTable = new LootTable().every(GreenDragonTable).tertiary(1.61, WildySlayerCaveTable);

export default new SimpleMonster({
id: 260,
name: "Green dragon",
table: GreenDragonTable,
wildyCaveTable: GreenDragonWildyCaveTable,
aliases: ["green dragon", "green drags"],
});
28 changes: 28 additions & 0 deletions src/simulation/monsters/low/g-m/Hellhound.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,42 @@
import LootTable from "../../../../structures/LootTable";
import SimpleMonster from "../../../../structures/SimpleMonster";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 65)
.add("Blighted anglerfish", [1, 2], 87)
.add("Blighted manta ray", [1, 2], 87)
.add("Blighted karambwan", [1, 2], 131)
.add("Blighted teleport spell sack", [1, 10], 131)
.add("Blighted ancient spell sack", [1, 10], 131)
.add("Blighted vengeance spell sack", [1, 10], 131)
.add("Blighted super restore(4)", 1, 261)
.add("Revenant cave teleport", 1, 261)
.add("Dareeyak teleport (tablet)", 1, 1306)
.add("Wilderness crabs teleport", 1, 1306)
.add("Carrallanger teleport (tablet)", 1, 1306)
.add("Paddewwa teleport (tablet)", 1, 1306)
.add("Annakarl teleport (tablet)", 1, 1306)
.add("Lassar teleport (tablet)", 1, 1306)
.add("Kharyrll teleport (tablet)", 1, 1306)
.add("Senntisten teleport (tablet)", 1, 1306)
.add("Ghorrock teleport (tablet)", 1, 1306)
.add("Target teleport", 1, 1306)
.add("Magic shortbow scroll", 1, 3265)
.add("Ring of wealth scroll", 1, 3265)
.add("Trouver parchment", 2, 13_059)
.add("Looting bag note", 1, 13_059);

const HellhoundTable = new LootTable()
.every("Vile ashes")
.oneIn(32_768, "Smouldering stone")
.tertiary(64, "Clue scroll (hard)");

const HellhoundWildyCaveTable = new LootTable().every(HellhoundTable).tertiary(1.25, WildySlayerCaveTable);

export default new SimpleMonster({
id: 104,
name: "Hellhound",
table: HellhoundTable,
wildyCaveTable: HellhoundWildyCaveTable,
aliases: ["hellhound", "hellh"],
});
28 changes: 28 additions & 0 deletions src/simulation/monsters/low/g-m/IceGiant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,31 @@ import SimpleMonster from "../../../../structures/SimpleMonster";
import { GemTable } from "../../../subtables/RareDropTable";
import UncommonSeedDropTable from "../../../subtables/UncommonSeedDropTable";

const WildySlayerCaveTable = new LootTable()
.add("Blighted entangle sack", [1, 10], 76)
.add("Blighted anglerfish", [1, 2], 101)
.add("Blighted manta ray", [1, 2], 101)
.add("Blighted karambwan", [1, 2], 152)
.add("Blighted teleport spell sack", [1, 10], 152)
.add("Blighted ancient spell sack", [1, 10], 152)
.add("Blighted vengeance spell sack", [1, 10], 152)
.add("Blighted super restore(4)", 1, 304)
.add("Revenant cave teleport", 1, 304)
.add("Dareeyak teleport (tablet)", 1, 1521)
.add("Wilderness crabs teleport", 1, 1521)
.add("Carrallanger teleport (tablet)", 1, 1521)
.add("Paddewwa teleport (tablet)", 1, 1521)
.add("Annakarl teleport (tablet)", 1, 1521)
.add("Lassar teleport (tablet)", 1, 1521)
.add("Kharyrll teleport (tablet)", 1, 1521)
.add("Senntisten teleport (tablet)", 1, 1521)
.add("Ghorrock teleport (tablet)", 1, 1521)
.add("Target teleport", 1, 1521)
.add("Magic shortbow scroll", 1, 3801)
.add("Ring of wealth scroll", 1, 3801)
.add("Trouver parchment", 2, 15_205)
.add("Looting bag note", 1, 15_205);

const IceGiantTable = new LootTable()
.every("Big bones")

Expand Down Expand Up @@ -52,9 +77,12 @@ const IceGiantTable = new LootTable()
.tertiary(5000, "Giant champion scroll")
.tertiary(5013, "Curved bone");

const IceGiantWildyCaveTable = new LootTable().every(IceGiantTable).tertiary(1.37, WildySlayerCaveTable);

export default new SimpleMonster({
id: 2085,
name: "Ice giant",
table: IceGiantTable,
wildyCaveTable: IceGiantWildyCaveTable,
aliases: ["ice giant"],
});
Loading

0 comments on commit bfeb5ca

Please sign in to comment.