Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zombie pirate #381

Merged
merged 4 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions src/data/monsters_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -14599,6 +14599,46 @@
"slayerXP": 1400,
"assignableSlayerMasters": ["konar", "nieve", "duradel"]
},
"13489": {
"members": true,
"combatLevel": 22,
"hitpoints": 30,
"maxHit": 2,
"attackType": ["crush"],
"attackSpeed": 5,
"aggressive": true,
"poisonous": false,
"immuneToPoison": false,
"immuneToVenom": false,
"attributes": ["undead"],
"category": ["zombies", "pirates"],
"examineText": "Aaaargh, me hearty!",
"wikiName": "Zombie pirate (Level 22)",
"wikiURL": "https://oldschool.runescape.wiki/w/Zombie_pirate#Level_22",
"attackLevel": 20,
"strengthLevel": 10,
"defenceLevel": 20,
"magicLevel": 1,
"rangedLevel": 1,
"attackStab": 0,
"attackSlash": 0,
"attackCrush": 0,
"attackMagic": 0,
"attackRanged": 0,
"defenceStab": 0,
"defenceSlash": 0,
"defenceCrush": 0,
"defenceMagic": 0,
"defenceRanged": 0,
"attackAccuracy": 0,
"meleeStrength": 0,
"rangedStrength": 0,
"magicDamage": 0,
"isSlayerMonster": true,
"slayerLevelRequired": 1,
"slayerXP": 30,
"assignableSlayerMasters": ["turael", "spria", "krystilia", "mazchna"]
},
"13600": {
"members": true,
"combatLevel": 450,
Expand Down
2 changes: 2 additions & 0 deletions src/simulation/monsters/low/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@ import Wyrm from "./t-z/Wyrm";
import YanilleWatchman from "./t-z/YanilleWatchman";
import Zogre from "./t-z/Zogre";
import Zombie from "./t-z/Zombie";
import ZombiePirate from "./t-z/ZombiePirate";
import ZombieRat from "./t-z/ZombieRat";
import Zygomite from "./t-z/Zygomite";

Expand Down Expand Up @@ -531,5 +532,6 @@ export const allLowMonsters = {
GiantFrog,
JubblyBird,
ManiacalMonkey,
ZombiePirate,
TormentedDemon,
};
50 changes: 50 additions & 0 deletions src/simulation/monsters/low/t-z/ZombiePirate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import LootTable from "../../../../structures/LootTable";
import SimpleMonster from "../../../../structures/SimpleMonster";

export const ZombiePirateTable = new LootTable()
.every("Bones")

/* Runes */
.add("Blood rune", [30, 60], 4)
.add("Death rune", [30, 90], 4)
.add("Chaos rune", [30, 90], 4)
.add("Mind rune", [30, 90], 4)

/* Weapons and armour */
.add("Battlestaff", [1, 3], 8)
.add("Adamant platebody", 1, 6)
.add("Rune med helm", 1, 6)
.add("Rune warhammer", 1, 6)
.add("Rune battleaxe", 1, 6)
.add("Rune longsword", 1, 6)
.add("Rune sword", 1, 6)
.add("Rune mace", 1, 6)
.add("Dragon dagger", 1, 1)
.add("Dragon longsword", 1, 1)
.add("Dragon scimitar", 1, 1)

/* Blighted supplies */
.add("Blighted ancient ice sack", [10, 30], 12)
.add("Blighted anglerfish", [5, 15], 12)
.add("Blighted manta ray", [5, 15], 12)
.add("Blighted karambwan", [5, 15], 12)
.add("Blighted super restore(4)", [1, 3], 12)

/* Other */
.add(new LootTable(), 1, 181) // 'Nothing' drop
.add("Zombie pirate key", 1, 15)
.add("Coins", [1_000, 8_000], 12)
.add("Cannonball", [20, 100], 12)
.add("Gold ore", [5, 15], 12)
.add("Adamant seeds", [5, 10], 8)
.oneIn(20_000, "Teleport anchoring scroll")

/* Tertiary */
.tertiary(5000, "Zombie champion scroll");

export default new SimpleMonster({
id: 13_489,
name: "Zombie pirate",
table: ZombiePirateTable,
aliases: ["zombie pirate"],
});
43 changes: 43 additions & 0 deletions src/simulation/openables/ZombiePiratesLocker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import LootTable from "../../structures/LootTable";
import SimpleOpenable from "../../structures/SimpleOpenable";

const ZombiePirateLocker = new LootTable()
/* Runes */
.add("Blood rune", [60, 120], 4)
.add("Death rune", [60, 180], 4)
.add("Chaos rune", [60, 180], 4)
.add("Mind rune", [60, 180], 4)

/* Weapons and armour */
.add("Battlestaff", [2, 6], 8)
.add("Adamant platebody", 2, 6)
.add("Rune med helm", 2, 6)
.add("Rune warhammer", 2, 6)
.add("Rune battleaxe", 2, 6)
.add("Rune longsword", 2, 6)
.add("Rune sword", 2, 6)
.add("Rune mace", 2, 6)
.add("Dragon dagger", 2, 1)
.add("Dragon longsword", 2, 1)
.add("Dragon scimitar", 2, 1)

/* Blighted supplies */
.add("Blighted ancient ice sack", [20, 60], 12)
.add("Blighted anglerfish", [10, 30], 12)
.add("Blighted manta ray", [10, 30], 12)
.add("Blighted karambwan", [10, 30], 12)
.add("Blighted super restore(4)", [2, 6], 12)

/* Other */
.add("Coins", [2_000, 16_000], 12)
.add("Cannonball", [40, 200], 12)
.add("Gold ore", [10, 30], 12)
.add("Adamant seeds", [10, 20], 8)
.oneIn(275, "Teleport anchoring scroll");

export default new SimpleOpenable({
id: 29_449,
name: "Zombie Pirate's Locker",
aliases: ["zombie pirate locker", "pirate locker"],
table: ZombiePirateLocker,
});