Skip to content

Commit

Permalink
Wildy slayer (oldschoolgg#5426)
Browse files Browse the repository at this point in the history
  • Loading branch information
TastyPumPum authored May 12, 2024
1 parent 832ecfc commit 8329ced
Show file tree
Hide file tree
Showing 36 changed files with 1,049 additions and 171 deletions.
9 changes: 5 additions & 4 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -737,10 +737,11 @@ model UserStats {
high_gambles Int @default(0)
honour_points Int @default(0)
slayer_task_streak Int @default(0)
slayer_superior_count Int @default(0)
slayer_unsired_offered Int @default(0)
slayer_chewed_offered Int @default(0)
slayer_task_streak Int @default(0)
slayer_wildy_task_streak Int @default(0)
slayer_superior_count Int @default(0)
slayer_unsired_offered Int @default(0)
slayer_chewed_offered Int @default(0)
tob_cost Json @default("{}")
tob_loot Json @default("{}")
Expand Down
30 changes: 19 additions & 11 deletions src/lib/MUser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -736,20 +736,28 @@ GROUP BY data->>'clueID';`);
return this.caPoints() >= CombatAchievements[tier].rewardThreshold;
}

buildCATertiaryItemChanges() {
buildTertiaryItemChanges(hasRingOfWealthI: boolean = false, inWildy: boolean = false, onTask: boolean = false) {
const changes = new Map();
if (this.hasCompletedCATier('easy')) {
changes.set('Clue scroll (easy)', 5);
}
if (this.hasCompletedCATier('medium')) {
changes.set('Clue scroll (medium)', 5);
}
if (this.hasCompletedCATier('hard')) {
changes.set('Clue scroll (hard)', 5);

const tiers = Object.keys(CombatAchievements) as Array<keyof typeof CombatAchievements>;
for (const tier of tiers) {
let change = hasRingOfWealthI ? 50 : 0;
if (this.hasCompletedCATier(tier)) {
change += 5;
}
changes.set(`Clue scroll (${tier})`, change);
}
if (this.hasCompletedCATier('elite')) {
changes.set('Clue scroll (elite)', 5);

if (inWildy) changes.set('Giant key', 50);

if (inWildy && !onTask) {
changes.set('Mossy key', 60);
} else if (!inWildy && onTask) {
changes.set('Mossy key', 66.67);
} else if (inWildy && onTask) {
changes.set('Mossy key', 77.6);
}

return changes;
}

Expand Down
6 changes: 3 additions & 3 deletions src/lib/data/CollectionsExport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1845,9 +1845,9 @@ export const slayerCL = resolveItems([
'Mystic gloves (dusk)',
'Mystic boots (dusk)',
'Basilisk jaw',
// "Dagon'hai hat",
// "Dagon'hai robe top",
// "Dagon'hai robe bottom",
"Dagon'hai hat",
"Dagon'hai robe top",
"Dagon'hai robe bottom",
'Blood shard',
'Ancient ceremonial mask',
'Ancient ceremonial top',
Expand Down
9 changes: 9 additions & 0 deletions src/lib/data/buyables/buyables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,15 @@ const Buyables: Buyable[] = [
return toaKCs.expertKC >= 25 ? [true] : [false, 'You need a 25 Expert KC in Tombs of Amascut to buy this.'];
}
},
{
name: 'Lockpick',
gpCost: 5000,
ironmanPrice: 500,
skillsNeeded: {
agility: 50,
thieving: 50
}
},
...sepulchreBuyables,
...constructionBuyables,
...hunterBuyables,
Expand Down
1 change: 1 addition & 0 deletions src/lib/data/creatablesTable.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
| Fish sack barrel | 1x Fish sack, 1x Fish barrel | 1x Fish sack barrel | 0 |
| Salve amulet (e) | 1x Salve amulet | 1x Salve amulet (e) | 0 |
| Salve amulet(ei) | 1x Salve amulet(i) | 1x Salve amulet(ei) | 0 |
| Ring of wealth (i) | 1x Ring of wealth, 1x Ring of wealth scroll | 1x Ring of wealth (i) | 50000 |
| Strange hallowed tome | 1x Mysterious page 1, 1x Mysterious page 2, 1x Mysterious page 3, 1x Mysterious page 4, 1x Mysterious page 5 | 1x Strange hallowed tome | 0 |
| Frozen key | 1x Frozen key piece (armadyl), 1x Frozen key piece (bandos), 1x Frozen key piece (zamorak), 1x Frozen key piece (saradomin) | 1x Frozen key | 0 |
| Ecumenical key | 50x Ecumenical key shard | 1x Ecumenical key | 0 |
Expand Down
6 changes: 6 additions & 0 deletions src/lib/data/createables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2213,6 +2213,12 @@ const Createables: Createable[] = [
},
customReq: salveECustomReq
},
{
name: 'Ring of wealth (i)',
inputItems: new Bank().add('Ring of wealth').add('Ring of wealth scroll'),
GPCost: 50_000,
outputItems: new Bank().add('Ring of wealth (i)')
},
{
name: 'Strange hallowed tome',
inputItems: new Bank({
Expand Down
70 changes: 55 additions & 15 deletions src/lib/minions/data/killableMonsters/bosses/wildy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -780,25 +780,34 @@ export const wildyKillableMonsters: KillableMonster[] = [
timeToFinish: Time.Minute * 4.3,
emoji: '<:Pet_chaos_elemental:324127377070227456>',
wildy: true,

canBePked: true,
pkActivityRating: 4,
pkBaseDeathChance: 5,
difficultyRating: 8,
itemsRequired: deepResolveItems([
["Black d'hide body", "Karil's leathertop"],
["Black d'hide chaps", "Karil's leatherskirt"]
]),
notifyDrops: resolveItems(['Pet chaos elemental']),
qpRequired: 0,
itemInBankBoosts: [
equippedItemBoosts: [
{
[itemID("Craw's bow")]: 20,
[itemID('Webweaver bow')]: 25
items: [
{ boostPercent: 25, itemID: itemID('Webweaver bow') },
{ boostPercent: 20, itemID: itemID("Craw's bow") }
],
gearSetup: 'wildy'
},
{
[itemID('Archers ring')]: 3,
[itemID('Archers ring (i)')]: 5
items: [
{ boostPercent: 5, itemID: itemID('Archers ring (i)') },
{ boostPercent: 3, itemID: itemID('Archers ring') }
],
gearSetup: 'wildy'
},
{
[itemID('Barrows gloves')]: 3
items: [{ boostPercent: 3, itemID: itemID('Barrows gloves') }],
gearSetup: 'wildy'
}
],
defaultAttackStyles: [SkillsEnum.Attack],
Expand All @@ -815,16 +824,28 @@ export const wildyKillableMonsters: KillableMonster[] = [
timeToFinish: Time.Minute * 3.3,
emoji: '<:Ancient_staff:412845709453426689>',
wildy: true,
canBePked: true,
pkActivityRating: 4,
pkBaseDeathChance: 2,
difficultyRating: 6,
notifyDrops: resolveItems(['Pet chaos elemental']),
qpRequired: 0,
itemInBankBoosts: [
equippedItemBoosts: [
{
[itemID("Craw's bow")]: 20,
[itemID('Webweaver bow')]: 25
items: [
{ boostPercent: 25, itemID: itemID('Webweaver bow') },
{ boostPercent: 20, itemID: itemID("Craw's bow") }
],
gearSetup: 'wildy'
},
{ [itemID("Karil's leathertop")]: 3 },
{ [itemID("Karil's leatherskirt")]: 3 }
{
items: [{ boostPercent: 3, itemID: itemID("Karil's leathertop") }],
gearSetup: 'wildy'
},
{
items: [{ boostPercent: 3, itemID: itemID("Karil's leatherskirt") }],
gearSetup: 'wildy'
}
],
defaultAttackStyles: [SkillsEnum.Ranged],
combatXpMultiplier: 1.125,
Expand All @@ -840,10 +861,17 @@ export const wildyKillableMonsters: KillableMonster[] = [
timeToFinish: Time.Minute * 2.9,
emoji: '<:Fedora:456179157303427092>',
wildy: true,

canBePked: true,
pkActivityRating: 6,
pkBaseDeathChance: 7,
difficultyRating: 6,
qpRequired: 0,
itemInBankBoosts: [{ [itemID('Occult necklace')]: 10 }],
equippedItemBoosts: [
{
items: [{ boostPercent: 10, itemID: itemID('Occult necklace') }],
gearSetup: 'wildy'
}
],
defaultAttackStyles: [SkillsEnum.Magic],
combatXpMultiplier: 1.25,
healAmountNeeded: 4 * 20,
Expand All @@ -858,10 +886,22 @@ export const wildyKillableMonsters: KillableMonster[] = [
timeToFinish: Time.Minute * 3.0,
emoji: '<:Scorpias_offspring:324127378773377024>',
wildy: true,
canBePked: true,
pkActivityRating: 6,
pkBaseDeathChance: 7,
difficultyRating: 7,
notifyDrops: resolveItems(["Scorpia's offspring"]),
qpRequired: 0,
itemInBankBoosts: [{ [itemID('Occult necklace')]: 10 }, { [itemID('Harmonised nightmare staff')]: 10 }],
equippedItemBoosts: [
{
items: [{ boostPercent: 10, itemID: itemID('Occult necklace') }],
gearSetup: 'wildy'
},
{
items: [{ boostPercent: 10, itemID: itemID('Harmonised nightmare staff') }],
gearSetup: 'wildy'
}
],
defaultAttackStyles: [SkillsEnum.Magic],
combatXpMultiplier: 1.3,
healAmountNeeded: 4 * 20,
Expand Down
23 changes: 17 additions & 6 deletions src/lib/minions/data/killableMonsters/chaeldarMonsters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,23 @@ export const chaeldarMonsters: KillableMonster[] = [
timeToFinish: Time.Second * 60,
table: Monsters.Aviansie,

wildy: false,
wildy: true,
difficultyRating: 4,
qpRequired: 0,
defaultAttackStyles: [SkillsEnum.Ranged],
disallowedAttackStyles: [SkillsEnum.Attack, SkillsEnum.Strength, SkillsEnum.Magic],
healAmountNeeded: 24
healAmountNeeded: 24,
pkActivityRating: 7,
pkBaseDeathChance: 10,
revsWeaponBoost: true
},
{
id: Monsters.BlackDemon.id,
name: Monsters.BlackDemon.name,
aliases: Monsters.BlackDemon.aliases,
timeToFinish: Time.Second * 36,
table: Monsters.BlackDemon,
wildy: false,
wildy: true,

difficultyRating: 3,
existsInCatacombs: true,
Expand All @@ -64,7 +67,11 @@ export const chaeldarMonsters: KillableMonster[] = [
canCannon: true,
// Even if no multi, can safespot for same effect
cannonMulti: false,
canBarrage: false
canBarrage: false,
pkActivityRating: 7,
pkBaseDeathChance: 9,
revsWeaponBoost: true,
wildySlayerCave: true
},
{
id: Monsters.CaveHorror.id,
Expand Down Expand Up @@ -209,7 +216,7 @@ export const chaeldarMonsters: KillableMonster[] = [
timeToFinish: Time.Second * 25,
table: Monsters.GreaterDemon,

wildy: false,
wildy: true,

existsInCatacombs: true,
difficultyRating: 2,
Expand All @@ -227,7 +234,11 @@ export const chaeldarMonsters: KillableMonster[] = [
attackStylesUsed: [GearStat.AttackSlash],
canCannon: true,
cannonMulti: true,
canBarrage: false
canBarrage: false,
pkActivityRating: 7,
pkBaseDeathChance: 9,
revsWeaponBoost: true,
wildySlayerCave: true
},
{
id: Monsters.IronDragon.id,
Expand Down
Loading

0 comments on commit 8329ced

Please sign in to comment.