diff --git a/docs/src/content/docs/getting-started/wiki.md b/docs/src/content/docs/getting-started/wiki.md
index 57a4e91057..af540805ed 100644
--- a/docs/src/content/docs/getting-started/wiki.md
+++ b/docs/src/content/docs/getting-started/wiki.md
@@ -229,7 +229,7 @@ This is an automatically generated list of pages with possible issues to be look
[/bso/Skills/divination.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/divination.md): Doesnt use the new command formatting
-[/bso/Skills/dungeoneering.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/dungeoneering.md): Doesnt use the new command formatting
+[/bso/Skills/Dungeoneering.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/Dungeoneering.md): Doesnt use the new command formatting
[/bso/Skills/farming.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/farming.md): Doesnt use the new command formatting
@@ -251,9 +251,9 @@ This is an automatically generated list of pages with possible issues to be look
[/bso/Skills/runecraft.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/runecraft.md): Doesnt use the new command formatting, Contains unintended HTML (e.g. `
`)
-[/bso/Skills/Slayer/README.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/Slayer/README.md): Doesnt use the new command formatting
+[/bso/Skills/slayer/README.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/slayer/README.md): Doesnt use the new command formatting
-[/bso/Skills/Slayer/slayer-masks-helms.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/Slayer/slayer-masks-helms.md): Doesnt use the new command formatting, Contains unintended HTML (e.g. ` | `)
+[/bso/Skills/slayer/slayer-masks-helms.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/slayer/slayer-masks-helms.md): Doesnt use the new command formatting, Contains unintended HTML (e.g. ` | `)
[/bso/Skills/smithing.md](https://github.com/oldschoolgg/oldschoolbot/blob/master/docs/src/content/docs/bso/Skills/smithing.md): Doesnt use the new command formatting
diff --git a/docs/src/content/docs/osb/Skills/mining.md b/docs/src/content/docs/osb/Skills/mining.md
index 47accbc84f..4c3c82666c 100644
--- a/docs/src/content/docs/osb/Skills/mining.md
+++ b/docs/src/content/docs/osb/Skills/mining.md
@@ -106,42 +106,42 @@ The only other thing unidentified minerals can be used to purchase are:
{/_ DO NOT EDIT - This section is auto-generated by the build script _/}
| Ore | XP/hr | Powermining |
| --- | --- | --- |
-| [[6983]] | 125 000 | Yes |
-| [[6975]] | 93 000 | Yes |
-| [[6975]] | 83 000 | No |
-| [[440]] | 82 000 | Yes |
-| [[6983]] | 66 000 | No |
-| [[440]] | 58 000 | No |
-| [[442]] | 58 000 | Yes |
-| [[442]] | 53 000 | No |
-| [[453]] | 45 000 | Yes |
-| [[444]] | 42 000 | Yes |
-| [[444]] | 40 000 | No |
-| [[453]] | 38 000 | No |
-| [[436]] | 38 000 | Yes |
-| [[1625]] | 38 000 | Yes |
-| [[438]] | 38 000 | Yes |
-| [[1625]] | 36 000 | No |
-| [[447]] | 32 000 | Yes |
-| [[447]] | 30 000 | No |
-| [[21347]] | 22 000 | Yes |
-| [[21347]] | 22 000 | No |
-| [[449]] | 19 000 | Yes |
-| [[449]] | 19 000 | No |
-| [[436]] | 19 000 | No |
-| [[438]] | 19 000 | No |
-| [[451]] | 13 000 | Yes |
-| [[451]] | 13 000 | No |
-| [[21622]] | 13 000 | Yes |
-| [[21622]] | 13 000 | No |
-| [[434]] | 11 000 | Yes |
-| [[24706]] | 10 000 | Yes |
-| [[24706]] | 10 000 | No |
-| [[7936]] | 10 000 | Yes |
-| [[1436]] | 10 000 | Yes |
-| [[7936]] | 7 000 | No |
-| [[1436]] | 7 000 | No |
-| [[434]] | 5 000 | No |
+| [[6983]] | 125,000 | Yes |
+| [[6975]] | 93,000 | Yes |
+| [[6975]] | 83,000 | No |
+| [[440]] | 82,000 | Yes |
+| [[6983]] | 66,000 | No |
+| [[440]] | 58,000 | No |
+| [[442]] | 58,000 | Yes |
+| [[442]] | 53,000 | No |
+| [[453]] | 45,000 | Yes |
+| [[444]] | 42,000 | Yes |
+| [[444]] | 40,000 | No |
+| [[453]] | 38,000 | No |
+| [[436]] | 38,000 | Yes |
+| [[1625]] | 38,000 | Yes |
+| [[438]] | 38,000 | Yes |
+| [[1625]] | 36,000 | No |
+| [[447]] | 32,000 | Yes |
+| [[447]] | 30,000 | No |
+| [[21347]] | 22,000 | Yes |
+| [[21347]] | 22,000 | No |
+| [[449]] | 19,000 | Yes |
+| [[449]] | 19,000 | No |
+| [[436]] | 19,000 | No |
+| [[438]] | 19,000 | No |
+| [[451]] | 13,000 | Yes |
+| [[21622]] | 13,000 | Yes |
+| [[21622]] | 13,000 | No |
+| [[451]] | 12,000 | No |
+| [[434]] | 11,000 | Yes |
+| [[24706]] | 10,000 | Yes |
+| [[24706]] | 10,000 | No |
+| [[7936]] | 10,000 | Yes |
+| [[1436]] | 10,000 | Yes |
+| [[7936]] | 7,000 | No |
+| [[1436]] | 7,000 | No |
+| [[434]] | 5,000 | No |
| [[13421]] | 0 | Yes |
| [[13421]] | 0 | No |
diff --git a/package.json b/package.json
index ae0a94b35f..7839d9c087 100644
--- a/package.json
+++ b/package.json
@@ -62,7 +62,7 @@
"murmurhash": "^2.0.1",
"node-cron": "^3.0.3",
"node-fetch": "^2.6.7",
- "oldschooljs": "git+https://github.com/oldschoolgg/oldschooljs.git#3c165d84fb79abca6f6b85877165f94dcf7e2940",
+ "oldschooljs": "git+https://github.com/oldschoolgg/oldschooljs.git#7094eb4a53e5301fb401adadb25f6993448b1c83",
"p-queue": "^6.6.2",
"piscina": "^4.7.0",
"postgres": "^3.4.4",
diff --git a/src/lib/constants.ts b/src/lib/constants.ts
index 0da5401092..2c24ad8b62 100644
--- a/src/lib/constants.ts
+++ b/src/lib/constants.ts
@@ -345,7 +345,8 @@ export const BadgesEnum = {
SotWTrophy: 12,
Slayer: 13,
TopGiveawayer: 14,
- Farmer: 15
+ Farmer: 15,
+ Hacktoberfest: 16
} as const;
export const badges: { [key: number]: string } = {
@@ -364,7 +365,8 @@ export const badges: { [key: number]: string } = {
[BadgesEnum.SotWTrophy]: Emoji.SOTWTrophy,
[BadgesEnum.Slayer]: Emoji.Slayer,
[BadgesEnum.TopGiveawayer]: Emoji.SantaHat,
- [BadgesEnum.Farmer]: Emoji.Farming
+ [BadgesEnum.Farmer]: Emoji.Farming,
+ [BadgesEnum.Hacktoberfest]: '<:hacktoberfest:1304259875634942082>'
};
export const MAX_XP = 200_000_000;
diff --git a/src/lib/data/CollectionsExport.ts b/src/lib/data/CollectionsExport.ts
index fba653e57d..85cc495284 100644
--- a/src/lib/data/CollectionsExport.ts
+++ b/src/lib/data/CollectionsExport.ts
@@ -1914,8 +1914,8 @@ export const miscellaneousCL = resolveItems([
'Mossy key',
'Giant key',
'Hespori seed',
- // 'Fresh crab claw',
- // 'Fresh crab shell',
+ 'Fresh crab claw',
+ 'Fresh crab shell',
"Xeric's talisman (inert)",
'Mask of ranul',
'Elven signet',
diff --git a/src/lib/data/buyables/buyables.ts b/src/lib/data/buyables/buyables.ts
index d0bd21578b..ad2031086d 100644
--- a/src/lib/data/buyables/buyables.ts
+++ b/src/lib/data/buyables/buyables.ts
@@ -1106,6 +1106,16 @@ const Buyables: Buyable[] = [
thieving: 50
}
},
+ {
+ name: 'Diving apparatus',
+ gpCost: 1000,
+ qpRequired: 30
+ },
+ {
+ name: 'Fishbowl helmet',
+ gpCost: 1000,
+ qpRequired: 30
+ },
...sepulchreBuyables,
...constructionBuyables,
...hunterBuyables,
diff --git a/src/lib/data/creatables/gracefulOutfits.ts b/src/lib/data/creatables/gracefulOutfits.ts
index c9937eafe6..017bc00ea2 100644
--- a/src/lib/data/creatables/gracefulOutfits.ts
+++ b/src/lib/data/creatables/gracefulOutfits.ts
@@ -1,176 +1,175 @@
import { Bank } from 'oldschooljs';
-import itemID from '../../util/itemID';
import type { Createable } from '../createables';
export const gracefulOutfitCreatables: Createable[] = [
// Normal
{
name: 'Graceful',
- inputItems: {
- [itemID('Mark of grace')]: 260
- },
- outputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Mark of grace': 260
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ })
},
{
name: 'Graceful hood',
- inputItems: {
- [itemID('Mark of grace')]: 35
- },
- outputItems: {
- [itemID('Graceful hood')]: 1
- }
+ inputItems: new Bank({
+ 'Mark of grace': 35
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ })
},
{
name: 'Graceful top',
- inputItems: {
- [itemID('Mark of grace')]: 55
- },
- outputItems: {
- [itemID('Graceful top')]: 1
- }
+ inputItems: new Bank({
+ 'Mark of grace': 55
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ })
},
{
name: 'Graceful legs',
- inputItems: {
- [itemID('Mark of grace')]: 60
- },
- outputItems: {
- [itemID('Graceful legs')]: 1
- }
+ inputItems: new Bank({
+ 'Mark of grace': 60
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ })
},
{
name: 'Graceful gloves',
- inputItems: {
- [itemID('Mark of grace')]: 30
- },
- outputItems: {
- [itemID('Graceful gloves')]: 1
- }
+ inputItems: new Bank({
+ 'Mark of grace': 30
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ })
},
{
name: 'Graceful boots',
- inputItems: {
- [itemID('Mark of grace')]: 40
- },
- outputItems: {
- [itemID('Graceful boots')]: 1
- }
+ inputItems: new Bank({
+ 'Mark of grace': 40
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ })
},
{
name: 'Graceful cape',
- inputItems: {
- [itemID('Mark of grace')]: 40
- },
- outputItems: {
- [itemID('Graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Mark of grace': 40
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ })
},
{
name: 'Revert graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- },
- outputItems: {
- [itemID('Mark of grace')]: 208
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Mark of grace': 208
+ })
},
{
name: 'Revert graceful hood',
- inputItems: {
- [itemID('Graceful hood')]: 1
- },
- outputItems: {
- [itemID('Mark of grace')]: 28
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Mark of grace': 28
+ })
},
{
name: 'Revert graceful top',
- inputItems: {
- [itemID('Graceful top')]: 1
- },
- outputItems: {
- [itemID('Mark of grace')]: 44
- }
+ inputItems: new Bank({
+ 'Graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Mark of grace': 44
+ })
},
{
name: 'Revert graceful legs',
- inputItems: {
- [itemID('Graceful legs')]: 1
- },
- outputItems: {
- [itemID('Mark of grace')]: 48
- }
+ inputItems: new Bank({
+ 'Graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Mark of grace': 48
+ })
},
{
name: 'Revert graceful gloves',
- inputItems: {
- [itemID('Graceful gloves')]: 1
- },
- outputItems: {
- [itemID('Mark of grace')]: 24
- }
+ inputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Mark of grace': 24
+ })
},
{
name: 'Revert graceful boots',
- inputItems: {
- [itemID('Graceful boots')]: 1
- },
- outputItems: {
- [itemID('Mark of grace')]: 32
- }
+ inputItems: new Bank({
+ 'Graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Mark of grace': 32
+ })
},
{
name: 'Revert graceful cape',
- inputItems: {
- [itemID('Graceful cape')]: 1
- },
- outputItems: {
- [itemID('Mark of grace')]: 32
- }
+ inputItems: new Bank({
+ 'Graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Mark of grace': 32
+ })
},
// Hallowed Sepulchre
{
- name: 'Dark Graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1,
- [itemID('Dark dye')]: 6
- },
- outputItems: {
- [itemID('Dark graceful hood')]: 1,
- [itemID('Dark graceful top')]: 1,
- [itemID('Dark graceful legs')]: 1,
- [itemID('Dark graceful gloves')]: 1,
- [itemID('Dark graceful boots')]: 1,
- [itemID('Dark graceful cape')]: 1
- }
- },
- {
- name: 'Dark Graceful hood',
+ name: 'Dark graceful',
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1,
+ 'Dark dye': 6
+ }),
+ outputItems: new Bank({
+ 'Dark graceful hood': 1,
+ 'Dark graceful top': 1,
+ 'Dark graceful legs': 1,
+ 'Dark graceful gloves': 1,
+ 'Dark graceful boots': 1,
+ 'Dark graceful cape': 1
+ })
+ },
+ {
+ name: 'Dark graceful hood',
inputItems: new Bank({
'Graceful hood': 1,
'Dark dye': 1
}),
- outputItems: {
- [itemID('Dark graceful hood')]: 1
- }
+ outputItems: new Bank({
+ 'Dark graceful hood': 1
+ })
},
{
name: 'Dark graceful top',
@@ -178,9 +177,9 @@ export const gracefulOutfitCreatables: Createable[] = [
'Graceful top': 1,
'Dark dye': 1
}),
- outputItems: {
- [itemID('Dark graceful top')]: 1
- }
+ outputItems: new Bank({
+ 'Dark graceful top': 1
+ })
},
{
name: 'Dark graceful legs',
@@ -188,9 +187,9 @@ export const gracefulOutfitCreatables: Createable[] = [
'Graceful legs': 1,
'Dark dye': 1
}),
- outputItems: {
- [itemID('Dark graceful legs')]: 1
- }
+ outputItems: new Bank({
+ 'Dark graceful legs': 1
+ })
},
{
name: 'Dark graceful gloves',
@@ -198,9 +197,9 @@ export const gracefulOutfitCreatables: Createable[] = [
'Graceful gloves': 1,
'Dark dye': 1
}),
- outputItems: {
- [itemID('Dark graceful gloves')]: 1
- }
+ outputItems: new Bank({
+ 'Dark graceful gloves': 1
+ })
},
{
name: 'Dark graceful boots',
@@ -208,9 +207,9 @@ export const gracefulOutfitCreatables: Createable[] = [
'Graceful boots': 1,
'Dark dye': 1
}),
- outputItems: {
- [itemID('Dark graceful boots')]: 1
- }
+ outputItems: new Bank({
+ 'Dark graceful boots': 1
+ })
},
{
name: 'Dark graceful cape',
@@ -218,1014 +217,1059 @@ export const gracefulOutfitCreatables: Createable[] = [
'Graceful cape': 1,
'Dark dye': 1
}),
- outputItems: {
- [itemID('Dark graceful cape')]: 1
- }
+ outputItems: new Bank({
+ 'Dark graceful cape': 1
+ })
+ },
+ {
+ name: 'Revert dark graceful',
+ inputItems: new Bank({
+ 'Dark graceful hood': 1,
+ 'Dark graceful top': 1,
+ 'Dark graceful legs': 1,
+ 'Dark graceful gloves': 1,
+ 'Dark graceful boots': 1,
+ 'Dark graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert dark graceful hood',
+ inputItems: new Bank({
+ 'Dark graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert dark graceful top',
+ inputItems: new Bank({
+ 'Dark graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert dark graceful legs',
+ inputItems: new Bank({
+ 'Dark graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert dark graceful gloves',
+ inputItems: new Bank({
+ 'Dark graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert dark graceful boots',
+ inputItems: new Bank({
+ 'Dark graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert dark graceful cape',
+ inputItems: new Bank({
+ 'Dark graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
+ noCl: true
},
// Arceuus
{
name: 'Arceuus graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 90
- },
- outputItems: {
- [itemID('Arceuus graceful hood')]: 1,
- [itemID('Arceuus graceful top')]: 1,
- [itemID('Arceuus graceful legs')]: 1,
- [itemID('Arceuus graceful gloves')]: 1,
- [itemID('Arceuus graceful boots')]: 1,
- [itemID('Arceuus graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1,
+ 'Mark of grace': 90
+ }),
+ outputItems: new Bank({
+ 'Arceuus graceful hood': 1,
+ 'Arceuus graceful top': 1,
+ 'Arceuus graceful legs': 1,
+ 'Arceuus graceful gloves': 1,
+ 'Arceuus graceful boots': 1,
+ 'Arceuus graceful cape': 1
+ })
},
{
name: 'Arceuus graceful hood',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Arceuus graceful hood')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Arceuus graceful hood': 1
+ })
},
{
name: 'Arceuus graceful top',
- inputItems: {
- [itemID('Graceful top')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Arceuus graceful top')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful top': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Arceuus graceful top': 1
+ })
},
{
name: 'Arceuus graceful legs',
- inputItems: {
- [itemID('Graceful legs')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Arceuus graceful legs')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful legs': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Arceuus graceful legs': 1
+ })
},
{
name: 'Arceuus graceful gloves',
- inputItems: {
- [itemID('Graceful gloves')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Arceuus graceful gloves')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful gloves': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Arceuus graceful gloves': 1
+ })
},
{
name: 'Arceuus graceful boots',
- inputItems: {
- [itemID('Graceful boots')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Arceuus graceful boots')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful boots': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Arceuus graceful boots': 1
+ })
},
{
name: 'Arceuus graceful cape',
- inputItems: {
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Arceuus graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful cape': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Arceuus graceful cape': 1
+ })
},
{
name: 'Revert arceuus graceful',
- inputItems: {
- [itemID('Arceuus graceful hood')]: 1,
- [itemID('Arceuus graceful top')]: 1,
- [itemID('Arceuus graceful legs')]: 1,
- [itemID('Arceuus graceful gloves')]: 1,
- [itemID('Arceuus graceful boots')]: 1,
- [itemID('Arceuus graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Arceuus graceful hood': 1,
+ 'Arceuus graceful top': 1,
+ 'Arceuus graceful legs': 1,
+ 'Arceuus graceful gloves': 1,
+ 'Arceuus graceful boots': 1,
+ 'Arceuus graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
noCl: true
},
{
name: 'Revert arceuus graceful hood',
- inputItems: {
- [itemID('Arceuus graceful hood')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1
- },
-
+ inputItems: new Bank({
+ 'Arceuus graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
noCl: true
},
{
name: 'Revert arceuus graceful top',
- inputItems: {
- [itemID('Arceuus graceful top')]: 1
- },
- outputItems: {
- [itemID('Graceful top')]: 1
- },
-
+ inputItems: new Bank({
+ 'Arceuus graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
noCl: true
},
{
name: 'Revert arceuus graceful legs',
- inputItems: {
- [itemID('Arceuus graceful legs')]: 1
- },
- outputItems: {
- [itemID('Graceful legs')]: 1
- },
-
+ inputItems: new Bank({
+ 'Arceuus graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
noCl: true
},
{
name: 'Revert arceuus graceful gloves',
- inputItems: {
- [itemID('Arceuus graceful gloves')]: 1
- },
- outputItems: {
- [itemID('Graceful gloves')]: 1
- },
-
+ inputItems: new Bank({
+ 'Arceuus graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
noCl: true
},
{
name: 'Revert arceuus graceful boots',
- inputItems: {
- [itemID('Arceuus graceful boots')]: 1
- },
- outputItems: {
- [itemID('Graceful boots')]: 1
- },
-
+ inputItems: new Bank({
+ 'Arceuus graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
noCl: true
},
{
name: 'Revert arceuus graceful cape',
- inputItems: {
- [itemID('Arceuus graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Arceuus graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
noCl: true
},
// Piscarilius
{
name: 'Piscarilius graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 90
- },
- outputItems: {
- [itemID('Piscarilius graceful hood')]: 1,
- [itemID('Piscarilius graceful top')]: 1,
- [itemID('Piscarilius graceful legs')]: 1,
- [itemID('Piscarilius graceful gloves')]: 1,
- [itemID('Piscarilius graceful boots')]: 1,
- [itemID('Piscarilius graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1,
+ 'Mark of grace': 90
+ }),
+ outputItems: new Bank({
+ 'Piscarilius graceful hood': 1,
+ 'Piscarilius graceful top': 1,
+ 'Piscarilius graceful legs': 1,
+ 'Piscarilius graceful gloves': 1,
+ 'Piscarilius graceful boots': 1,
+ 'Piscarilius graceful cape': 1
+ })
},
{
name: 'Piscarilius graceful hood',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Piscarilius graceful hood')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Piscarilius graceful hood': 1
+ })
},
{
name: 'Piscarilius graceful top',
- inputItems: {
- [itemID('Graceful top')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Piscarilius graceful top')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful top': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Piscarilius graceful top': 1
+ })
},
{
name: 'Piscarilius graceful legs',
- inputItems: {
- [itemID('Graceful legs')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Piscarilius graceful legs')]: 1
- }
- },
- {
- name: 'Piscarilius graceful gloves',
- inputItems: {
- [itemID('Graceful gloves')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Piscarilius graceful gloves')]: 1
- }
- },
+ inputItems: new Bank({
+ 'Graceful legs': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Piscarilius graceful legs': 1
+ })
+ },
+ {
+ name: 'Piscarilius graceful gloves',
+ inputItems: new Bank({
+ 'Graceful gloves': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Piscarilius graceful gloves': 1
+ })
+ },
{
name: 'Piscarilius graceful boots',
- inputItems: {
- [itemID('Graceful boots')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Piscarilius graceful boots')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful boots': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Piscarilius graceful boots': 1
+ })
},
{
name: 'Piscarilius graceful cape',
- inputItems: {
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Piscarilius graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful cape': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Piscarilius graceful cape': 1
+ })
},
{
name: 'Revert Piscarilius graceful',
- inputItems: {
- [itemID('Piscarilius graceful hood')]: 1,
- [itemID('Piscarilius graceful top')]: 1,
- [itemID('Piscarilius graceful legs')]: 1,
- [itemID('Piscarilius graceful gloves')]: 1,
- [itemID('Piscarilius graceful boots')]: 1,
- [itemID('Piscarilius graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Piscarilius graceful hood': 1,
+ 'Piscarilius graceful top': 1,
+ 'Piscarilius graceful legs': 1,
+ 'Piscarilius graceful gloves': 1,
+ 'Piscarilius graceful boots': 1,
+ 'Piscarilius graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
noCl: true
},
{
name: 'Revert Piscarilius graceful hood',
- inputItems: {
- [itemID('Piscarilius graceful hood')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1
- },
-
+ inputItems: new Bank({
+ 'Piscarilius graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
noCl: true
},
{
name: 'Revert Piscarilius graceful top',
- inputItems: {
- [itemID('Piscarilius graceful top')]: 1
- },
- outputItems: {
- [itemID('Graceful top')]: 1
- },
-
+ inputItems: new Bank({
+ 'Piscarilius graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
noCl: true
},
{
name: 'Revert Piscarilius graceful legs',
- inputItems: {
- [itemID('Piscarilius graceful legs')]: 1
- },
- outputItems: {
- [itemID('Graceful legs')]: 1
- },
-
+ inputItems: new Bank({
+ 'Piscarilius graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
noCl: true
},
{
name: 'Revert Piscarilius graceful gloves',
- inputItems: {
- [itemID('Piscarilius graceful gloves')]: 1
- },
- outputItems: {
- [itemID('Graceful gloves')]: 1
- },
-
+ inputItems: new Bank({
+ 'Piscarilius graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
noCl: true
},
{
name: 'Revert Piscarilius graceful boots',
- inputItems: {
- [itemID('Piscarilius graceful boots')]: 1
- },
- outputItems: {
- [itemID('Graceful boots')]: 1
- },
-
+ inputItems: new Bank({
+ 'Piscarilius graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
noCl: true
},
{
name: 'Revert Piscarilius graceful cape',
- inputItems: {
- [itemID('Piscarilius graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Piscarilius graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
noCl: true
},
// Lovakengj
{
name: 'Lovakengj graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 90
- },
- outputItems: {
- [itemID('Lovakengj graceful hood')]: 1,
- [itemID('Lovakengj graceful top')]: 1,
- [itemID('Lovakengj graceful legs')]: 1,
- [itemID('Lovakengj graceful gloves')]: 1,
- [itemID('Lovakengj graceful boots')]: 1,
- [itemID('Lovakengj graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1,
+ 'Mark of grace': 90
+ }),
+ outputItems: new Bank({
+ 'Lovakengj graceful hood': 1,
+ 'Lovakengj graceful top': 1,
+ 'Lovakengj graceful legs': 1,
+ 'Lovakengj graceful gloves': 1,
+ 'Lovakengj graceful boots': 1,
+ 'Lovakengj graceful cape': 1
+ })
},
{
name: 'Lovakengj graceful hood',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Lovakengj graceful hood')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Lovakengj graceful hood': 1
+ })
},
{
name: 'Lovakengj graceful top',
- inputItems: {
- [itemID('Graceful top')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Lovakengj graceful top')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful top': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Lovakengj graceful top': 1
+ })
},
{
name: 'Lovakengj graceful legs',
- inputItems: {
- [itemID('Graceful legs')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Lovakengj graceful legs')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful legs': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Lovakengj graceful legs': 1
+ })
},
{
name: 'Lovakengj graceful gloves',
- inputItems: {
- [itemID('Graceful gloves')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Lovakengj graceful gloves')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful gloves': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Lovakengj graceful gloves': 1
+ })
},
{
name: 'Lovakengj graceful boots',
- inputItems: {
- [itemID('Graceful boots')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Lovakengj graceful boots')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful boots': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Lovakengj graceful boots': 1
+ })
},
{
name: 'Lovakengj graceful cape',
- inputItems: {
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Lovakengj graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful cape': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Lovakengj graceful cape': 1
+ })
},
{
name: 'Revert Lovakengj graceful',
- inputItems: {
- [itemID('Lovakengj graceful hood')]: 1,
- [itemID('Lovakengj graceful top')]: 1,
- [itemID('Lovakengj graceful legs')]: 1,
- [itemID('Lovakengj graceful gloves')]: 1,
- [itemID('Lovakengj graceful boots')]: 1,
- [itemID('Lovakengj graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Lovakengj graceful hood': 1,
+ 'Lovakengj graceful top': 1,
+ 'Lovakengj graceful legs': 1,
+ 'Lovakengj graceful gloves': 1,
+ 'Lovakengj graceful boots': 1,
+ 'Lovakengj graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
noCl: true
},
{
name: 'Revert Lovakengj graceful hood',
- inputItems: {
- [itemID('Lovakengj graceful hood')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1
- },
-
+ inputItems: new Bank({
+ 'Lovakengj graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
noCl: true
},
{
name: 'Revert Lovakengj graceful top',
- inputItems: {
- [itemID('Lovakengj graceful top')]: 1
- },
- outputItems: {
- [itemID('Graceful top')]: 1
- },
-
+ inputItems: new Bank({
+ 'Lovakengj graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
noCl: true
},
{
name: 'Revert Lovakengj graceful legs',
- inputItems: {
- [itemID('Lovakengj graceful legs')]: 1
- },
- outputItems: {
- [itemID('Graceful legs')]: 1
- },
-
+ inputItems: new Bank({
+ 'Lovakengj graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
noCl: true
},
{
name: 'Revert Lovakengj graceful gloves',
- inputItems: {
- [itemID('Lovakengj graceful gloves')]: 1
- },
- outputItems: {
- [itemID('Graceful gloves')]: 1
- },
-
+ inputItems: new Bank({
+ 'Lovakengj graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
noCl: true
},
{
name: 'Revert Lovakengj graceful boots',
- inputItems: {
- [itemID('Lovakengj graceful boots')]: 1
- },
- outputItems: {
- [itemID('Graceful boots')]: 1
- },
-
+ inputItems: new Bank({
+ 'Lovakengj graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
noCl: true
},
{
name: 'Revert Lovakengj graceful cape',
- inputItems: {
- [itemID('Lovakengj graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Lovakengj graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
noCl: true
},
// Shayzien
{
name: 'Shayzien graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 90
- },
- outputItems: {
- [itemID('Shayzien graceful hood')]: 1,
- [itemID('Shayzien graceful top')]: 1,
- [itemID('Shayzien graceful legs')]: 1,
- [itemID('Shayzien graceful gloves')]: 1,
- [itemID('Shayzien graceful boots')]: 1,
- [itemID('Shayzien graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1,
+ 'Mark of grace': 90
+ }),
+ outputItems: new Bank({
+ 'Shayzien graceful hood': 1,
+ 'Shayzien graceful top': 1,
+ 'Shayzien graceful legs': 1,
+ 'Shayzien graceful gloves': 1,
+ 'Shayzien graceful boots': 1,
+ 'Shayzien graceful cape': 1
+ })
},
{
name: 'Shayzien graceful hood',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Shayzien graceful hood')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Shayzien graceful hood': 1
+ })
},
{
name: 'Shayzien graceful top',
- inputItems: {
- [itemID('Graceful top')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Shayzien graceful top')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful top': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Shayzien graceful top': 1
+ })
},
{
name: 'Shayzien graceful legs',
- inputItems: {
- [itemID('Graceful legs')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Shayzien graceful legs')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful legs': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Shayzien graceful legs': 1
+ })
},
{
name: 'Shayzien graceful gloves',
- inputItems: {
- [itemID('Graceful gloves')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Shayzien graceful gloves')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful gloves': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Shayzien graceful gloves': 1
+ })
},
{
name: 'Shayzien graceful boots',
- inputItems: {
- [itemID('Graceful boots')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Shayzien graceful boots')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful boots': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Shayzien graceful boots': 1
+ })
},
{
name: 'Shayzien graceful cape',
- inputItems: {
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Shayzien graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful cape': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Shayzien graceful cape': 1
+ })
},
{
name: 'Revert Shayzien graceful',
- inputItems: {
- [itemID('Shayzien graceful hood')]: 1,
- [itemID('Shayzien graceful top')]: 1,
- [itemID('Shayzien graceful legs')]: 1,
- [itemID('Shayzien graceful gloves')]: 1,
- [itemID('Shayzien graceful boots')]: 1,
- [itemID('Shayzien graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Shayzien graceful hood': 1,
+ 'Shayzien graceful top': 1,
+ 'Shayzien graceful legs': 1,
+ 'Shayzien graceful gloves': 1,
+ 'Shayzien graceful boots': 1,
+ 'Shayzien graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
noCl: true
},
{
name: 'Revert Shayzien graceful hood',
- inputItems: {
- [itemID('Shayzien graceful hood')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1
- },
-
+ inputItems: new Bank({
+ 'Shayzien graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
noCl: true
},
{
name: 'Revert Shayzien graceful top',
- inputItems: {
- [itemID('Shayzien graceful top')]: 1
- },
- outputItems: {
- [itemID('Graceful top')]: 1
- },
-
+ inputItems: new Bank({
+ 'Shayzien graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
noCl: true
},
{
name: 'Revert Shayzien graceful legs',
- inputItems: {
- [itemID('Shayzien graceful legs')]: 1
- },
- outputItems: {
- [itemID('Graceful legs')]: 1
- },
-
+ inputItems: new Bank({
+ 'Shayzien graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
noCl: true
},
{
name: 'Revert Shayzien graceful gloves',
- inputItems: {
- [itemID('Shayzien graceful gloves')]: 1
- },
- outputItems: {
- [itemID('Graceful gloves')]: 1
- },
-
+ inputItems: new Bank({
+ 'Shayzien graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
noCl: true
},
{
name: 'Revert Shayzien graceful boots',
- inputItems: {
- [itemID('Shayzien graceful boots')]: 1
- },
- outputItems: {
- [itemID('Graceful boots')]: 1
- },
-
+ inputItems: new Bank({
+ 'Shayzien graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
noCl: true
},
{
name: 'Revert Shayzien graceful cape',
- inputItems: {
- [itemID('Shayzien graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Shayzien graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
noCl: true
},
// Hosidius
{
name: 'Hosidius graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 90
- },
- outputItems: {
- [itemID('Hosidius graceful hood')]: 1,
- [itemID('Hosidius graceful top')]: 1,
- [itemID('Hosidius graceful legs')]: 1,
- [itemID('Hosidius graceful gloves')]: 1,
- [itemID('Hosidius graceful boots')]: 1,
- [itemID('Hosidius graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1,
+ 'Mark of grace': 90
+ }),
+ outputItems: new Bank({
+ 'Hosidius graceful hood': 1,
+ 'Hosidius graceful top': 1,
+ 'Hosidius graceful legs': 1,
+ 'Hosidius graceful gloves': 1,
+ 'Hosidius graceful boots': 1,
+ 'Hosidius graceful cape': 1
+ })
},
{
name: 'Hosidius graceful hood',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Hosidius graceful hood')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Hosidius graceful hood': 1
+ })
},
{
name: 'Hosidius graceful top',
- inputItems: {
- [itemID('Graceful top')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Hosidius graceful top')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful top': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Hosidius graceful top': 1
+ })
},
{
name: 'Hosidius graceful legs',
- inputItems: {
- [itemID('Graceful legs')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Hosidius graceful legs')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful legs': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Hosidius graceful legs': 1
+ })
},
{
name: 'Hosidius graceful gloves',
- inputItems: {
- [itemID('Graceful gloves')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Hosidius graceful gloves')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful gloves': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Hosidius graceful gloves': 1
+ })
},
{
name: 'Hosidius graceful boots',
- inputItems: {
- [itemID('Graceful boots')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Hosidius graceful boots')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful boots': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Hosidius graceful boots': 1
+ })
},
{
name: 'Hosidius graceful cape',
- inputItems: {
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Hosidius graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful cape': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Hosidius graceful cape': 1
+ })
},
{
name: 'Revert Hosidius graceful',
- inputItems: {
- [itemID('Hosidius graceful hood')]: 1,
- [itemID('Hosidius graceful top')]: 1,
- [itemID('Hosidius graceful legs')]: 1,
- [itemID('Hosidius graceful gloves')]: 1,
- [itemID('Hosidius graceful boots')]: 1,
- [itemID('Hosidius graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Hosidius graceful hood': 1,
+ 'Hosidius graceful top': 1,
+ 'Hosidius graceful legs': 1,
+ 'Hosidius graceful gloves': 1,
+ 'Hosidius graceful boots': 1,
+ 'Hosidius graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
noCl: true
},
{
name: 'Revert Hosidius graceful hood',
- inputItems: {
- [itemID('Hosidius graceful hood')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1
- },
-
+ inputItems: new Bank({
+ 'Hosidius graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
noCl: true
},
{
name: 'Revert Hosidius graceful top',
- inputItems: {
- [itemID('Hosidius graceful top')]: 1
- },
- outputItems: {
- [itemID('Graceful top')]: 1
- },
-
+ inputItems: new Bank({
+ 'Hosidius graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
noCl: true
},
{
name: 'Revert Hosidius graceful legs',
- inputItems: {
- [itemID('Hosidius graceful legs')]: 1
- },
- outputItems: {
- [itemID('Graceful legs')]: 1
- },
-
+ inputItems: new Bank({
+ 'Hosidius graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
noCl: true
},
{
name: 'Revert Hosidius graceful gloves',
- inputItems: {
- [itemID('Hosidius graceful gloves')]: 1
- },
- outputItems: {
- [itemID('Graceful gloves')]: 1
- },
-
+ inputItems: new Bank({
+ 'Hosidius graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
noCl: true
},
{
name: 'Revert Hosidius graceful boots',
- inputItems: {
- [itemID('Hosidius graceful boots')]: 1
- },
- outputItems: {
- [itemID('Graceful boots')]: 1
- },
-
+ inputItems: new Bank({
+ 'Hosidius graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
noCl: true
},
{
name: 'Revert Hosidius graceful cape',
- inputItems: {
- [itemID('Hosidius graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful cape')]: 1
- },
-
+ inputItems: new Bank({
+ 'Hosidius graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
noCl: true
},
// Great Kourend
{
name: 'Kourend graceful',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 90
- },
- outputItems: {
- [itemID('Kourend graceful hood')]: 1,
- [itemID('Kourend graceful top')]: 1,
- [itemID('Kourend graceful legs')]: 1,
- [itemID('Kourend graceful gloves')]: 1,
- [itemID('Kourend graceful boots')]: 1,
- [itemID('Kourend graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1,
+ 'Mark of grace': 90
+ }),
+ outputItems: new Bank({
+ 'Kourend graceful hood': 1,
+ 'Kourend graceful top': 1,
+ 'Kourend graceful legs': 1,
+ 'Kourend graceful gloves': 1,
+ 'Kourend graceful boots': 1,
+ 'Kourend graceful cape': 1
+ })
},
{
name: 'Kourend graceful hood',
- inputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Kourend graceful hood')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Kourend graceful hood': 1
+ })
},
{
name: 'Kourend graceful top',
- inputItems: {
- [itemID('Graceful top')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Kourend graceful top')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful top': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Kourend graceful top': 1
+ })
},
{
name: 'Kourend graceful legs',
- inputItems: {
- [itemID('Graceful legs')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Kourend graceful legs')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful legs': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Kourend graceful legs': 1
+ })
},
{
name: 'Kourend graceful gloves',
- inputItems: {
- [itemID('Graceful gloves')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Kourend graceful gloves')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful gloves': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Kourend graceful gloves': 1
+ })
},
{
name: 'Kourend graceful boots',
- inputItems: {
- [itemID('Graceful boots')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Kourend graceful boots')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful boots': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Kourend graceful boots': 1
+ })
},
{
name: 'Kourend graceful cape',
- inputItems: {
- [itemID('Graceful cape')]: 1,
- [itemID('Mark of grace')]: 15
- },
- outputItems: {
- [itemID('Kourend graceful cape')]: 1
- }
+ inputItems: new Bank({
+ 'Graceful cape': 1,
+ 'Mark of grace': 15
+ }),
+ outputItems: new Bank({
+ 'Kourend graceful cape': 1
+ })
},
{
name: 'Revert Kourend graceful',
- inputItems: {
- [itemID('Kourend graceful hood')]: 1,
- [itemID('Kourend graceful top')]: 1,
- [itemID('Kourend graceful legs')]: 1,
- [itemID('Kourend graceful gloves')]: 1,
- [itemID('Kourend graceful boots')]: 1,
- [itemID('Kourend graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1,
- [itemID('Graceful top')]: 1,
- [itemID('Graceful legs')]: 1,
- [itemID('Graceful gloves')]: 1,
- [itemID('Graceful boots')]: 1,
- [itemID('Graceful cape')]: 1
- },
+ inputItems: new Bank({
+ 'Kourend graceful hood': 1,
+ 'Kourend graceful top': 1,
+ 'Kourend graceful legs': 1,
+ 'Kourend graceful gloves': 1,
+ 'Kourend graceful boots': 1,
+ 'Kourend graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
noCl: true
},
{
name: 'Revert Kourend graceful hood',
- inputItems: {
- [itemID('Kourend graceful hood')]: 1
- },
- outputItems: {
- [itemID('Graceful hood')]: 1
- },
+ inputItems: new Bank({
+ 'Kourend graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
noCl: true
},
{
name: 'Revert Kourend graceful top',
- inputItems: {
- [itemID('Kourend graceful top')]: 1
- },
- outputItems: {
- [itemID('Graceful top')]: 1
- },
+ inputItems: new Bank({
+ 'Kourend graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
noCl: true
},
{
name: 'Revert Kourend graceful legs',
- inputItems: {
- [itemID('Kourend graceful legs')]: 1
- },
- outputItems: {
- [itemID('Graceful legs')]: 1
- },
+ inputItems: new Bank({
+ 'Kourend graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
noCl: true
},
{
name: 'Revert Kourend graceful gloves',
- inputItems: {
- [itemID('Kourend graceful gloves')]: 1
- },
- outputItems: {
- [itemID('Graceful gloves')]: 1
- },
+ inputItems: new Bank({
+ 'Kourend graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
noCl: true
},
{
name: 'Revert Kourend graceful boots',
- inputItems: {
- [itemID('Kourend graceful boots')]: 1
- },
- outputItems: {
- [itemID('Graceful boots')]: 1
- },
+ inputItems: new Bank({
+ 'Kourend graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
noCl: true
},
{
name: 'Revert Kourend graceful cape',
- inputItems: {
- [itemID('Kourend graceful cape')]: 1
- },
- outputItems: {
- [itemID('Graceful cape')]: 1
- },
+ inputItems: new Bank({
+ 'Kourend graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
noCl: true
},
// Colossal Wyrm Agility (Varlamore graceful)
{
- name: 'Varlamore graceful outfit',
+ name: 'Varlamore graceful',
inputItems: new Bank({
'Graceful crafting kit': 1,
'Graceful hood': 1,
@@ -1245,7 +1289,7 @@ export const gracefulOutfitCreatables: Createable[] = [
})
},
{
- name: 'Revert Varlamore graceful outfit',
+ name: 'Revert Varlamore graceful',
inputItems: new Bank({
'Varlamore graceful hood': 1,
'Varlamore graceful top': 1,
@@ -1263,5 +1307,146 @@ export const gracefulOutfitCreatables: Createable[] = [
'Graceful cape': 1
}),
noCl: true
+ },
+ {
+ name: 'Revert Varlamore graceful hood',
+ inputItems: new Bank({
+ 'Varlamore graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Varlamore graceful top',
+ inputItems: new Bank({
+ 'Varlamore graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Varlamore graceful legs',
+ inputItems: new Bank({
+ 'Varlamore graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Varlamore graceful gloves',
+ inputItems: new Bank({
+ 'Varlamore graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Varlamore graceful boots',
+ inputItems: new Bank({
+ 'Varlamore graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Varlamore graceful cape',
+ inputItems: new Bank({
+ 'Varlamore graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
+ noCl: true
+ },
+ // Agility Arena (Brimhaven graceful)
+ {
+ name: 'Revert Brimhaven graceful',
+ inputItems: new Bank({
+ 'Brimhaven graceful hood': 1,
+ 'Brimhaven graceful top': 1,
+ 'Brimhaven graceful legs': 1,
+ 'Brimhaven graceful gloves': 1,
+ 'Brimhaven graceful boots': 1,
+ 'Brimhaven graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1,
+ 'Graceful top': 1,
+ 'Graceful legs': 1,
+ 'Graceful gloves': 1,
+ 'Graceful boots': 1,
+ 'Graceful cape': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Brimhaven graceful hood',
+ inputItems: new Bank({
+ 'Brimhaven graceful hood': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful hood': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Brimhaven graceful top',
+ inputItems: new Bank({
+ 'Brimhaven graceful top': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful top': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Brimhaven graceful legs',
+ inputItems: new Bank({
+ 'Brimhaven graceful legs': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful legs': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Brimhaven graceful gloves',
+ inputItems: new Bank({
+ 'Brimhaven graceful gloves': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful gloves': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Brimhaven graceful boots',
+ inputItems: new Bank({
+ 'Brimhaven graceful boots': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful boots': 1
+ }),
+ noCl: true
+ },
+ {
+ name: 'Revert Brimhaven graceful cape',
+ inputItems: new Bank({
+ 'Brimhaven graceful cape': 1
+ }),
+ outputItems: new Bank({
+ 'Graceful cape': 1
+ }),
+ noCl: true
}
];
diff --git a/src/lib/data/creatablesTable.txt b/src/lib/data/creatablesTable.txt
index 2ade7ae7a5..d212770244 100644
--- a/src/lib/data/creatablesTable.txt
+++ b/src/lib/data/creatablesTable.txt
@@ -600,13 +600,20 @@
| Revert graceful gloves | 1x Graceful gloves | 24x Mark of grace | 0 |
| Revert graceful boots | 1x Graceful boots | 32x Mark of grace | 0 |
| Revert graceful cape | 1x Graceful cape | 32x Mark of grace | 0 |
-| Dark Graceful | 6x Dark dye, 1x Graceful boots, 1x Graceful cape, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 1x Dark graceful boots, 1x Dark graceful cape, 1x Dark graceful gloves, 1x Dark graceful hood, 1x Dark graceful legs, 1x Dark graceful top | 0 |
-| Dark Graceful hood | 1x Dark dye, 1x Graceful hood | 1x Dark graceful hood | 0 |
+| Dark graceful | 6x Dark dye, 1x Graceful boots, 1x Graceful cape, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 1x Dark graceful boots, 1x Dark graceful cape, 1x Dark graceful gloves, 1x Dark graceful hood, 1x Dark graceful legs, 1x Dark graceful top | 0 |
+| Dark graceful hood | 1x Dark dye, 1x Graceful hood | 1x Dark graceful hood | 0 |
| Dark graceful top | 1x Dark dye, 1x Graceful top | 1x Dark graceful top | 0 |
| Dark graceful legs | 1x Dark dye, 1x Graceful legs | 1x Dark graceful legs | 0 |
| Dark graceful gloves | 1x Dark dye, 1x Graceful gloves | 1x Dark graceful gloves | 0 |
| Dark graceful boots | 1x Dark dye, 1x Graceful boots | 1x Dark graceful boots | 0 |
| Dark graceful cape | 1x Dark dye, 1x Graceful cape | 1x Dark graceful cape | 0 |
+| Revert dark graceful | 1x Dark graceful boots, 1x Dark graceful cape, 1x Dark graceful gloves, 1x Dark graceful hood, 1x Dark graceful legs, 1x Dark graceful top | 1x Graceful boots, 1x Graceful cape, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 0 |
+| Revert dark graceful hood | 1x Dark graceful hood | 1x Graceful hood | 0 |
+| Revert dark graceful top | 1x Dark graceful top | 1x Graceful top | 0 |
+| Revert dark graceful legs | 1x Dark graceful legs | 1x Graceful legs | 0 |
+| Revert dark graceful gloves | 1x Dark graceful gloves | 1x Graceful gloves | 0 |
+| Revert dark graceful boots | 1x Dark graceful boots | 1x Graceful boots | 0 |
+| Revert dark graceful cape | 1x Dark graceful cape | 1x Graceful cape | 0 |
| Arceuus graceful | 1x Graceful boots, 1x Graceful cape, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top, 90x Mark of grace | 1x Arceuus graceful boots, 1x Arceuus graceful cape, 1x Arceuus graceful gloves, 1x Arceuus graceful hood, 1x Arceuus graceful legs, 1x Arceuus graceful top | 0 |
| Arceuus graceful hood | 1x Graceful hood, 15x Mark of grace | 1x Arceuus graceful hood | 0 |
| Arceuus graceful top | 1x Graceful top, 15x Mark of grace | 1x Arceuus graceful top | 0 |
@@ -691,8 +698,21 @@
| Revert Kourend graceful gloves | 1x Kourend graceful gloves | 1x Graceful gloves | 0 |
| Revert Kourend graceful boots | 1x Kourend graceful boots | 1x Graceful boots | 0 |
| Revert Kourend graceful cape | 1x Kourend graceful cape | 1x Graceful cape | 0 |
-| Varlamore graceful outfit | 1x Graceful boots, 1x Graceful cape, 1x Graceful crafting kit, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 1x Varlamore graceful boots, 1x Varlamore graceful cape, 1x Varlamore graceful gloves, 1x Varlamore graceful hood, 1x Varlamore graceful legs, 1x Varlamore graceful top | 0 |
-| Revert Varlamore graceful outfit | 1x Varlamore graceful boots, 1x Varlamore graceful cape, 1x Varlamore graceful gloves, 1x Varlamore graceful hood, 1x Varlamore graceful legs, 1x Varlamore graceful top | 1x Graceful boots, 1x Graceful cape, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 0 |
+| Varlamore graceful | 1x Graceful boots, 1x Graceful cape, 1x Graceful crafting kit, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 1x Varlamore graceful boots, 1x Varlamore graceful cape, 1x Varlamore graceful gloves, 1x Varlamore graceful hood, 1x Varlamore graceful legs, 1x Varlamore graceful top | 0 |
+| Revert Varlamore graceful | 1x Varlamore graceful boots, 1x Varlamore graceful cape, 1x Varlamore graceful gloves, 1x Varlamore graceful hood, 1x Varlamore graceful legs, 1x Varlamore graceful top | 1x Graceful boots, 1x Graceful cape, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 0 |
+| Revert Varlamore graceful hood | 1x Varlamore graceful hood | 1x Graceful hood | 0 |
+| Revert Varlamore graceful top | 1x Varlamore graceful top | 1x Graceful top | 0 |
+| Revert Varlamore graceful legs | 1x Varlamore graceful legs | 1x Graceful legs | 0 |
+| Revert Varlamore graceful gloves | 1x Varlamore graceful gloves | 1x Graceful gloves | 0 |
+| Revert Varlamore graceful boots | 1x Varlamore graceful boots | 1x Graceful boots | 0 |
+| Revert Varlamore graceful cape | 1x Varlamore graceful cape | 1x Graceful cape | 0 |
+| Revert Brimhaven graceful | 1x Brimhaven graceful boots, 1x Brimhaven graceful cape, 1x Brimhaven graceful gloves, 1x Brimhaven graceful hood, 1x Brimhaven graceful legs, 1x Brimhaven graceful top | 1x Graceful boots, 1x Graceful cape, 1x Graceful gloves, 1x Graceful hood, 1x Graceful legs, 1x Graceful top | 0 |
+| Revert Brimhaven graceful hood | 1x Brimhaven graceful hood | 1x Graceful hood | 0 |
+| Revert Brimhaven graceful top | 1x Brimhaven graceful top | 1x Graceful top | 0 |
+| Revert Brimhaven graceful legs | 1x Brimhaven graceful legs | 1x Graceful legs | 0 |
+| Revert Brimhaven graceful gloves | 1x Brimhaven graceful gloves | 1x Graceful gloves | 0 |
+| Revert Brimhaven graceful boots | 1x Brimhaven graceful boots | 1x Graceful boots | 0 |
+| Revert Brimhaven graceful cape | 1x Brimhaven graceful cape | 1x Graceful cape | 0 |
| Scythe of vitur | 1x Scythe of vitur (uncharged) | 1x Scythe of vitur | 0 |
| Sanguinesti staff | 1x Sanguinesti staff (uncharged) | 1x Sanguinesti staff | 0 |
| Holy sanguinesti staff | 1x Holy sanguinesti staff (uncharged) | 1x Holy sanguinesti staff | 0 |
diff --git a/src/lib/minions/data/killableMonsters/low.ts b/src/lib/minions/data/killableMonsters/low.ts
index e7fc6da676..8f8525f0fc 100644
--- a/src/lib/minions/data/killableMonsters/low.ts
+++ b/src/lib/minions/data/killableMonsters/low.ts
@@ -182,6 +182,21 @@ const killableMonsters: KillableMonster[] = [
canCannon: true,
superior: Monsters.DreadbornAraxyte,
canBarrage: true
+ },
+ {
+ id: Monsters.Crab.id,
+ name: Monsters.Crab.name,
+ aliases: Monsters.Crab.aliases,
+ timeToFinish: Time.Second * 28.2,
+ table: Monsters.Crab,
+ wildy: false,
+ difficultyRating: 1,
+ qpRequired: 0,
+ respawnTime: Time.Second * 6,
+ healAmountNeeded: 3,
+ attackStyleToUse: GearStat.AttackCrush,
+ attackStylesUsed: [GearStat.AttackCrush],
+ itemsRequired: resolveItems(['Fishbowl helmet', 'Diving apparatus'])
}
];
diff --git a/src/lib/resources/images/bso_icons/73280.png b/src/lib/resources/images/bso_icons/73280.png
new file mode 100644
index 0000000000..328130ea51
Binary files /dev/null and b/src/lib/resources/images/bso_icons/73280.png differ
diff --git a/src/lib/resources/images/bso_spritesheet.json b/src/lib/resources/images/bso_spritesheet.json
index d9ffe20c41..aa2e742e71 100644
--- a/src/lib/resources/images/bso_spritesheet.json
+++ b/src/lib/resources/images/bso_spritesheet.json
@@ -5,7 +5,7 @@
"472": [527, 611, 31, 25],
"474": [743, 56, 28, 29],
"476": [342, 699, 32, 26],
- "478": [989, 752, 21, 28],
+ "478": [989, 783, 21, 28],
"500": [1011, 405, 19, 35],
"506": [608, 861, 29, 23],
"508": [412, 552, 32, 28],
@@ -14,7 +14,7 @@
"605": [621, 783, 30, 26],
"709": [741, 783, 30, 26],
"737": [230, 105, 31, 36],
- "758": [1059, 0, 21, 28],
+ "758": [1059, 28, 21, 28],
"759": [1160, 176, 19, 25],
"788": [1160, 769, 16, 28],
"983": [756, 937, 26, 25],
@@ -72,29 +72,29 @@
"24210": [272, 911, 28, 24],
"24212": [964, 0, 25, 28],
"24214": [829, 437, 27, 28],
- "40000": [1059, 202, 18, 32],
- "40001": [1059, 234, 18, 32],
- "40002": [1059, 266, 18, 32],
- "40003": [1059, 298, 18, 32],
- "40004": [1059, 330, 18, 32],
- "40005": [1059, 362, 18, 32],
- "40006": [1059, 394, 18, 32],
- "40007": [1059, 426, 18, 32],
- "40008": [1059, 458, 18, 32],
- "40009": [1059, 490, 18, 32],
- "40010": [1059, 522, 18, 32],
- "40011": [1059, 554, 18, 32],
- "40012": [1059, 586, 18, 32],
- "40013": [1059, 618, 18, 32],
- "40014": [1059, 650, 18, 32],
- "40015": [1059, 682, 18, 32],
- "40016": [1059, 714, 18, 32],
- "40017": [1059, 746, 18, 32],
- "40018": [1059, 778, 18, 32],
- "40019": [1059, 810, 18, 32],
- "40020": [1059, 842, 18, 32],
- "40021": [1059, 874, 18, 32],
- "40022": [1059, 906, 18, 32],
+ "40000": [1059, 230, 18, 32],
+ "40001": [1059, 262, 18, 32],
+ "40002": [1059, 294, 18, 32],
+ "40003": [1059, 326, 18, 32],
+ "40004": [1059, 358, 18, 32],
+ "40005": [1059, 390, 18, 32],
+ "40006": [1059, 422, 18, 32],
+ "40007": [1059, 454, 18, 32],
+ "40008": [1059, 486, 18, 32],
+ "40009": [1059, 518, 18, 32],
+ "40010": [1059, 550, 18, 32],
+ "40011": [1059, 582, 18, 32],
+ "40012": [1059, 614, 18, 32],
+ "40013": [1059, 646, 18, 32],
+ "40014": [1059, 678, 18, 32],
+ "40015": [1059, 710, 18, 32],
+ "40016": [1059, 742, 18, 32],
+ "40017": [1059, 774, 18, 32],
+ "40018": [1059, 806, 18, 32],
+ "40019": [1059, 838, 18, 32],
+ "40020": [1059, 870, 18, 32],
+ "40021": [1059, 902, 18, 32],
+ "40022": [1059, 934, 18, 32],
"40023": [1103, 132, 17, 31],
"40024": [1103, 163, 17, 31],
"40025": [772, 643, 25, 32],
@@ -107,7 +107,7 @@
"40032": [355, 810, 32, 22],
"40033": [0, 642, 29, 29],
"40034": [597, 0, 30, 29],
- "40035": [989, 597, 19, 31],
+ "40035": [989, 628, 19, 31],
"40036": [1035, 826, 22, 27],
"40037": [793, 1016, 30, 18],
"40038": [387, 810, 32, 22],
@@ -126,12 +126,12 @@
"40052": [419, 810, 32, 22],
"40053": [1103, 256, 17, 31],
"40054": [1180, 642, 11, 32],
- "40055": [140, 113, 16, 31],
+ "40055": [403, 373, 16, 31],
"40056": [1160, 1098, 14, 31],
"40057": [1160, 227, 15, 31],
"40058": [328, 263, 32, 31],
"40059": [34, 246, 33, 31],
- "40060": [1059, 938, 18, 32],
+ "40060": [1059, 966, 18, 32],
"40061": [29, 642, 29, 29],
"40062": [58, 642, 29, 29],
"40063": [87, 642, 29, 29],
@@ -209,7 +209,7 @@
"41103": [887, 845, 23, 16],
"41104": [598, 885, 28, 25],
"45003": [0, 1133, 18, 27],
- "45004": [989, 126, 22, 29],
+ "45004": [989, 157, 22, 29],
"45005": [0, 937, 26, 27],
"45006": [230, 611, 33, 26],
"45007": [829, 520, 28, 27],
@@ -254,7 +254,7 @@
"47522": [597, 177, 30, 29],
"47523": [597, 206, 30, 29],
"47524": [366, 885, 29, 25],
- "47525": [403, 373, 16, 31],
+ "47525": [1127, 0, 16, 31],
"47526": [188, 552, 32, 28],
"47527": [1103, 1012, 24, 21],
"47528": [743, 141, 28, 29],
@@ -288,7 +288,7 @@
"48206": [214, 1086, 22, 20],
"48207": [1007, 991, 28, 17],
"48208": [1035, 748, 23, 26],
- "48209": [989, 300, 21, 30],
+ "48209": [989, 331, 21, 30],
"48210": [964, 368, 23, 30],
"48211": [911, 330, 26, 28],
"48212": [220, 552, 32, 28],
@@ -320,8 +320,8 @@
"48248": [1160, 601, 16, 28],
"48249": [1160, 1011, 15, 29],
"48250": [631, 834, 30, 25],
- "48251": [989, 330, 21, 30],
- "48252": [989, 628, 19, 31],
+ "48251": [989, 361, 21, 30],
+ "48252": [989, 659, 19, 31],
"48253": [0, 1040, 24, 24],
"48254": [1180, 1099, 16, 20],
"48255": [911, 0, 27, 27],
@@ -329,7 +329,7 @@
"48257": [56, 885, 28, 26],
"48258": [512, 163, 25, 31],
"48259": [743, 170, 28, 29],
- "48260": [1127, 0, 16, 31],
+ "48260": [1127, 31, 16, 31],
"48261": [448, 755, 29, 27],
"48262": [684, 148, 24, 35],
"48263": [829, 575, 28, 27],
@@ -396,9 +396,9 @@
"50022": [667, 642, 17, 29],
"50023": [286, 937, 26, 26],
"50024": [81, 911, 27, 26],
- "50025": [989, 360, 21, 30],
- "50026": [989, 390, 21, 30],
- "50027": [989, 420, 21, 30],
+ "50025": [989, 391, 21, 30],
+ "50026": [989, 421, 21, 30],
+ "50027": [989, 451, 21, 30],
"50028": [829, 657, 27, 28],
"50035": [515, 810, 32, 22],
"50036": [1180, 405, 16, 23],
@@ -462,7 +462,7 @@
"50095": [743, 713, 25, 14],
"50096": [1080, 939, 23, 23],
"50097": [150, 1016, 26, 23],
- "50098": [989, 780, 21, 28],
+ "50098": [989, 811, 21, 28],
"50099": [140, 755, 28, 28],
"50100": [60, 493, 30, 30],
"50101": [684, 213, 28, 30],
@@ -555,7 +555,7 @@
"50495": [124, 373, 31, 31],
"50496": [159, 309, 32, 31],
"50497": [224, 404, 32, 30],
- "50498": [1011, 980, 18, 10],
+ "50498": [1059, 1030, 18, 10],
"50499": [151, 861, 30, 24],
"50500": [90, 493, 30, 30],
"50501": [597, 499, 29, 30],
@@ -612,7 +612,7 @@
"50553": [938, 684, 24, 30],
"50554": [860, 618, 26, 29],
"50555": [989, 0, 22, 31],
- "50556": [989, 659, 19, 31],
+ "50556": [989, 690, 19, 31],
"50557": [1103, 785, 17, 30],
"50558": [1080, 383, 18, 31],
"50559": [186, 373, 31, 31],
@@ -671,7 +671,7 @@
"51011": [531, 783, 30, 26],
"51012": [1103, 318, 17, 31],
"51013": [1160, 126, 19, 25],
- "51014": [989, 808, 21, 28],
+ "51014": [989, 839, 21, 28],
"51015": [860, 647, 26, 29],
"51016": [829, 0, 31, 25],
"51017": [829, 25, 31, 25],
@@ -723,7 +723,7 @@
"62106": [334, 1016, 27, 22],
"62108": [411, 911, 27, 24],
"62109": [860, 705, 26, 29],
- "62110": [989, 836, 21, 28],
+ "62110": [989, 867, 21, 28],
"62111": [470, 991, 28, 22],
"62112": [860, 0, 27, 28],
"62113": [1035, 209, 20, 31],
@@ -755,7 +755,7 @@
"63202": [407, 1086, 18, 17],
"63203": [802, 495, 26, 30],
"63204": [24, 1040, 24, 24],
- "63205": [1059, 970, 18, 32],
+ "63205": [1059, 998, 18, 32],
"63206": [1103, 349, 17, 31],
"63207": [1103, 380, 17, 31],
"63208": [512, 35, 25, 32],
@@ -793,7 +793,7 @@
"70016": [684, 333, 28, 30],
"70017": [684, 363, 28, 30],
"70018": [1180, 998, 18, 18],
- "70019": [989, 450, 21, 30],
+ "70019": [989, 481, 21, 30],
"70020": [802, 174, 27, 29],
"70021": [911, 610, 26, 28],
"70023": [283, 1064, 24, 20],
@@ -892,7 +892,7 @@
"70180": [1011, 862, 21, 31],
"70181": [1143, 147, 16, 30],
"70182": [772, 114, 30, 27],
- "70183": [989, 864, 21, 28],
+ "70183": [989, 895, 21, 28],
"70185": [1160, 0, 20, 24],
"70186": [1035, 800, 23, 26],
"70187": [328, 911, 28, 24],
@@ -930,11 +930,11 @@
"70241": [360, 128, 31, 32],
"70242": [223, 309, 32, 31],
"70244": [492, 911, 27, 24],
- "70245": [989, 62, 20, 32],
+ "70245": [989, 93, 20, 32],
"70246": [374, 699, 32, 26],
"70247": [168, 611, 31, 28],
"70248": [326, 1086, 23, 18],
- "70249": [989, 480, 21, 30],
+ "70249": [989, 511, 21, 30],
"70251": [772, 141, 27, 30],
"70252": [738, 885, 28, 25],
"70253": [482, 93, 30, 31],
@@ -962,7 +962,7 @@
"70276": [372, 373, 31, 31],
"70277": [435, 642, 29, 29],
"70278": [200, 214, 33, 32],
- "70289": [989, 892, 21, 28],
+ "70289": [989, 923, 21, 28],
"70291": [656, 94, 27, 32],
"70292": [860, 763, 26, 29],
"70293": [464, 642, 29, 29],
@@ -989,7 +989,7 @@
"70314": [911, 81, 27, 27],
"70315": [240, 493, 30, 30],
"70316": [415, 1107, 20, 21],
- "70317": [1059, 28, 20, 29],
+ "70317": [1059, 56, 20, 29],
"70318": [912, 1016, 29, 18],
"70319": [420, 0, 31, 31],
"70320": [1160, 201, 18, 26],
@@ -1096,7 +1096,7 @@
"70452": [617, 991, 30, 20],
"70453": [656, 263, 26, 32],
"70454": [738, 755, 29, 27],
- "70455": [989, 155, 22, 29],
+ "70455": [989, 186, 22, 29],
"70456": [964, 339, 24, 29],
"70457": [647, 991, 30, 20],
"70458": [772, 612, 26, 31],
@@ -1253,11 +1253,11 @@
"71588": [156, 937, 26, 27],
"71589": [416, 937, 26, 26],
"71590": [525, 1016, 28, 21],
- "71591": [611, 1064, 19, 13],
+ "71591": [633, 1064, 19, 13],
"71592": [360, 288, 31, 32],
"71593": [605, 1040, 27, 18],
- "71594": [989, 690, 19, 31],
- "71595": [989, 721, 19, 31],
+ "71594": [989, 721, 19, 31],
+ "71595": [989, 752, 19, 31],
"71596": [29, 727, 29, 28],
"71597": [941, 1016, 28, 18],
"71598": [505, 1086, 20, 14],
@@ -1272,7 +1272,7 @@
"71607": [656, 388, 28, 29],
"71608": [580, 642, 29, 29],
"71609": [887, 124, 24, 31],
- "71610": [588, 1064, 23, 13],
+ "71610": [610, 1064, 23, 13],
"71611": [77, 62, 33, 20],
"71612": [435, 964, 35, 14],
"71613": [1011, 289, 23, 29],
@@ -1281,7 +1281,7 @@
"71616": [609, 642, 29, 29],
"71617": [1080, 507, 23, 24],
"71618": [762, 1016, 31, 18],
- "71619": [989, 920, 21, 28],
+ "71619": [690, 671, 21, 28],
"71620": [1180, 1139, 16, 20],
"71621": [1011, 112, 21, 32],
"71622": [328, 32, 32, 32],
@@ -1359,19 +1359,19 @@
"72021": [1160, 1069, 15, 29],
"72022": [713, 598, 30, 28],
"72023": [707, 991, 30, 20],
- "72024": [1059, 57, 20, 29],
- "72025": [1059, 86, 20, 29],
- "72026": [1059, 115, 20, 29],
+ "72024": [1059, 85, 20, 29],
+ "72025": [1059, 114, 20, 29],
+ "72026": [1059, 143, 20, 29],
"72027": [553, 1016, 28, 21],
"72028": [98, 1133, 19, 20],
"72029": [802, 319, 27, 29],
"72030": [463, 1086, 21, 14],
"72031": [1011, 893, 21, 31],
"72032": [1180, 594, 15, 24],
- "72033": [1059, 144, 20, 29],
- "72034": [739, 1040, 22, 12],
+ "72033": [1059, 172, 20, 29],
+ "72034": [989, 951, 22, 12],
"72035": [1143, 542, 15, 18],
- "72036": [761, 1040, 22, 12],
+ "72036": [739, 1040, 22, 12],
"72037": [238, 581, 30, 29],
"72038": [684, 609, 27, 31],
"72039": [802, 783, 27, 25],
@@ -1401,7 +1401,7 @@
"72461": [331, 1107, 21, 22],
"72462": [352, 1107, 21, 22],
"72463": [373, 1107, 21, 22],
- "73000": [1059, 1002, 18, 32],
+ "73000": [140, 113, 18, 32],
"73001": [512, 99, 25, 32],
"73002": [1103, 411, 17, 31],
"73003": [1103, 442, 17, 31],
@@ -1437,11 +1437,11 @@
"73033": [1080, 589, 19, 29],
"73034": [701, 1016, 30, 19],
"73035": [572, 834, 29, 26],
- "73036": [989, 510, 21, 30],
+ "73036": [989, 541, 21, 30],
"73037": [205, 1064, 26, 20],
"73038": [411, 1040, 28, 20],
"73039": [199, 611, 31, 28],
- "73040": [690, 671, 21, 28],
+ "73040": [1059, 0, 21, 28],
"73041": [911, 750, 26, 28],
"73042": [512, 131, 25, 32],
"73043": [911, 778, 26, 28],
@@ -1450,7 +1450,7 @@
"73046": [136, 1133, 19, 20],
"73047": [911, 834, 26, 28],
"73048": [512, 465, 26, 28],
- "73049": [989, 540, 21, 30],
+ "73049": [989, 571, 21, 30],
"73050": [182, 937, 26, 27],
"73051": [1180, 618, 15, 24],
"73052": [571, 552, 26, 28],
@@ -1460,7 +1460,7 @@
"73056": [1011, 376, 23, 29],
"73057": [87, 727, 29, 28],
"73058": [1143, 319, 14, 30],
- "73059": [989, 948, 22, 14],
+ "73059": [566, 1064, 22, 14],
"73060": [1143, 29, 17, 29],
"73061": [280, 755, 28, 28],
"73062": [1180, 921, 12, 28],
@@ -1480,7 +1480,7 @@
"73076": [1035, 383, 22, 28],
"73077": [1160, 741, 16, 28],
"73078": [1143, 349, 14, 30],
- "73079": [566, 1064, 22, 14],
+ "73079": [588, 1064, 22, 14],
"73080": [1143, 58, 17, 29],
"73081": [308, 755, 28, 28],
"73082": [1180, 949, 12, 28],
@@ -1569,7 +1569,7 @@
"73166": [394, 1107, 21, 22],
"73167": [420, 124, 31, 31],
"73168": [1160, 424, 17, 27],
- "73169": [1059, 173, 20, 29],
+ "73169": [1059, 201, 20, 29],
"73170": [31, 552, 31, 29],
"73171": [1035, 527, 21, 29],
"73172": [271, 861, 30, 24],
@@ -1604,7 +1604,7 @@
"73209": [1103, 473, 17, 31],
"73210": [1103, 88, 24, 22],
"73211": [1103, 110, 24, 22],
- "73212": [989, 94, 20, 32],
+ "73212": [989, 125, 20, 32],
"73213": [1035, 156, 24, 26],
"73214": [62, 552, 31, 29],
"73215": [538, 360, 30, 30],
@@ -1615,7 +1615,7 @@
"73220": [887, 686, 23, 31],
"73221": [1180, 828, 17, 20],
"73222": [1180, 977, 16, 21],
- "73223": [989, 570, 22, 27],
+ "73223": [989, 601, 22, 27],
"73224": [307, 1064, 24, 20],
"73250": [802, 406, 27, 29],
"73251": [822, 885, 28, 25],
@@ -1625,7 +1625,7 @@
"73255": [189, 911, 27, 26],
"73256": [31, 341, 32, 31],
"73257": [216, 911, 27, 26],
- "73258": [989, 184, 22, 29],
+ "73258": [989, 215, 22, 29],
"73259": [538, 390, 30, 30],
"73260": [887, 155, 24, 31],
"73261": [887, 186, 24, 31],
@@ -1642,10 +1642,11 @@
"73273": [627, 510, 29, 30],
"73274": [772, 492, 30, 27],
"73275": [684, 640, 27, 31],
- "73276": [989, 213, 22, 29],
- "73277": [989, 242, 22, 29],
- "73278": [989, 271, 22, 29],
+ "73276": [989, 244, 22, 29],
+ "73277": [989, 273, 22, 29],
+ "73278": [989, 302, 22, 29],
"73279": [358, 581, 30, 29],
+ "73280": [989, 62, 22, 31],
"73301": [420, 155, 31, 31],
"73302": [684, 393, 28, 30],
"88888": [1011, 770, 22, 30],
diff --git a/src/lib/resources/images/bso_spritesheet.png b/src/lib/resources/images/bso_spritesheet.png
index 88dca2e129..c6e7ca4430 100644
Binary files a/src/lib/resources/images/bso_spritesheet.png and b/src/lib/resources/images/bso_spritesheet.png differ
diff --git a/src/lib/skilling/skills/crafting/craftables/misc.ts b/src/lib/skilling/skills/crafting/craftables/misc.ts
index 3c57573d4a..61bc98ccc1 100644
--- a/src/lib/skilling/skills/crafting/craftables/misc.ts
+++ b/src/lib/skilling/skills/crafting/craftables/misc.ts
@@ -253,6 +253,22 @@ const Misc: Craftable[] = [
xp: 500,
inputItems: new Bank().add('Amulet of torture').add('Araxyte fang'),
tickRate: 0
+ },
+ {
+ name: 'Crab helmet',
+ id: itemID('Crab helmet'),
+ level: 15,
+ xp: 32.5,
+ inputItems: new Bank().add('Fresh crab shell'),
+ tickRate: 2
+ },
+ {
+ name: 'Crab claw',
+ id: itemID('Crab claw'),
+ level: 15,
+ xp: 32.5,
+ inputItems: new Bank().add('Fresh crab claw'),
+ tickRate: 2
}
];
diff --git a/src/lib/util.ts b/src/lib/util.ts
index 9393049bcd..fb7370da81 100644
--- a/src/lib/util.ts
+++ b/src/lib/util.ts
@@ -29,7 +29,7 @@ import { LRUCache } from 'lru-cache';
import { ADMIN_IDS, OWNER_IDS, SupportServer } from '../config';
import type { MUserClass } from './MUser';
import { PaginatedMessage } from './PaginatedMessage';
-import { BitField, globalConfig, projectiles } from './constants';
+import { BitField, MAX_XP, globalConfig, projectiles } from './constants';
import { getSimilarItems } from './data/similarItems';
import type { DefenceGearStat, GearSetupType, OffenceGearStat } from './gear/types';
import { GearSetupTypes, GearStat } from './gear/types';
@@ -280,12 +280,13 @@ export function roughMergeMahojiResponse(
}
export function skillingPetDropRate(
- user: MUserClass | GearBank,
+ user: MUserClass | GearBank | number,
skill: SkillsEnum,
baseDropRate: number
): { petDropRate: number } {
- const twoHundredMillXP = user.skillsAsXP[skill] >= 200_000_000;
- const skillLevel = user.skillsAsLevels[skill];
+ const xp = typeof user === 'number' ? user : user.skillsAsXP[skill];
+ const twoHundredMillXP = xp >= MAX_XP;
+ const skillLevel = convertXPtoLVL(xp);
const petRateDivisor = twoHundredMillXP ? 15 : 1;
const dropRate = Math.floor((baseDropRate - skillLevel * 25) / petRateDivisor);
return { petDropRate: dropRate };
diff --git a/src/lib/util/handleTripFinish.ts b/src/lib/util/handleTripFinish.ts
index 72fea97a9a..ece850d139 100644
--- a/src/lib/util/handleTripFinish.ts
+++ b/src/lib/util/handleTripFinish.ts
@@ -107,7 +107,14 @@ export async function handleTripFinish(
user: MUser,
channelID: string,
_message: string | ({ content: string } & MessageCreateOptions),
- attachment: AttachmentBuilder | Buffer | undefined,
+ attachment:
+ | AttachmentBuilder
+ | Buffer
+ | undefined
+ | {
+ name: string;
+ attachment: Buffer;
+ },
data: ActivityTaskData,
loot: Bank | null,
_messages?: string[],
diff --git a/src/lib/util/makeBankImage.ts b/src/lib/util/makeBankImage.ts
index 0e157267ce..27eb88f271 100644
--- a/src/lib/util/makeBankImage.ts
+++ b/src/lib/util/makeBankImage.ts
@@ -8,6 +8,7 @@ interface MakeBankImageOptions {
content?: string;
title?: string;
background?: number;
+ spoiler?: boolean;
flags?: Record;
user?: MUser;
previousCL?: Bank;
@@ -21,6 +22,7 @@ export async function makeBankImage({
background,
user,
previousCL,
+ spoiler,
showNewCL = false,
flags = {},
mahojiFlags = []
@@ -40,7 +42,7 @@ export async function makeBankImage({
return {
file: {
- name: isTransparent ? 'bank.png' : 'bank.jpg',
+ name: `${spoiler ? 'SPOILER_' : ''}${isTransparent ? 'bank.png' : 'bank.jpg'}`,
attachment: image!
}
};
diff --git a/src/lib/workers/index.ts b/src/lib/workers/index.ts
index 4b1804816c..831ed9e1b6 100644
--- a/src/lib/workers/index.ts
+++ b/src/lib/workers/index.ts
@@ -3,6 +3,7 @@ import path, { resolve } from 'node:path';
import Piscina from 'piscina';
import type { ItemBank } from '../types';
+import type { MonsterSlayerMaster } from '../util';
export interface CasketWorkerArgs {
clueTierID: number;
@@ -14,7 +15,8 @@ export interface KillWorkerArgs {
quantity: number;
limit: number;
onTask: boolean;
- catacombs: boolean;
+ catacombs?: boolean;
+ slayerMaster?: MonsterSlayerMaster;
lootTableTertiaryChanges: [string, number][];
}
diff --git a/src/lib/workers/kill.worker.ts b/src/lib/workers/kill.worker.ts
index e82b7b0440..f6e9f66747 100644
--- a/src/lib/workers/kill.worker.ts
+++ b/src/lib/workers/kill.worker.ts
@@ -18,11 +18,11 @@ export default async ({
bossName,
catacombs,
onTask,
+ slayerMaster,
limit,
lootTableTertiaryChanges
}: KillWorkerArgs): KillWorkerReturn => {
const osjsMonster = Monsters.find(mon => mon.aliases.some(alias => stringMatches(alias, bossName)));
-
if (osjsMonster) {
if (quantity > limit) {
return {
@@ -34,6 +34,7 @@ export default async ({
bank: osjsMonster.kill(quantity, {
inCatacombs: catacombs,
onSlayerTask: onTask,
+ slayerMaster: slayerMaster,
lootTableOptions: {
tertiaryItemPercentageChanges: new Map(lootTableTertiaryChanges)
}
diff --git a/src/mahoji/commands/kill.ts b/src/mahoji/commands/kill.ts
index de4e1ac393..4dbdbf5ba1 100644
--- a/src/mahoji/commands/kill.ts
+++ b/src/mahoji/commands/kill.ts
@@ -5,6 +5,8 @@ import { Bank, Monsters } from 'oldschooljs';
import { PerkTier } from '../../lib/constants';
import { simulatedKillables } from '../../lib/simulation/simulatedKillables';
+import { slayerMasterChoices } from '../../lib/slayer/constants';
+import { slayerMasters } from '../../lib/slayer/slayerMasters';
import { deferInteraction } from '../../lib/util/interactionReply';
import { makeBankImage } from '../../lib/util/makeBankImage';
import { Workers } from '../../lib/workers';
@@ -71,19 +73,40 @@ export const killCommand: OSBMahojiCommand = {
description: 'The quantity you want to simulate.',
required: true,
min_value: 1
+ },
+ {
+ type: ApplicationCommandOptionType.Boolean,
+ name: 'catacombs',
+ description: 'Killing in catacombs?',
+ required: false
+ },
+ {
+ type: ApplicationCommandOptionType.String,
+ name: 'master',
+ description: 'On slayer task from a master?',
+ required: false,
+ choices: slayerMasterChoices
}
],
- run: async ({ options, userID, interaction }: CommandRunOptions<{ name: string; quantity: number }>) => {
+ run: async ({
+ options,
+ userID,
+ interaction
+ }: CommandRunOptions<{ name: string; quantity: number; catacombs: boolean; master: string }>) => {
const user = await mUserFetch(userID);
await deferInteraction(interaction);
-
const result = await Workers.kill({
quantity: options.quantity,
bossName: options.name,
limit: determineKillLimit(user),
- catacombs: false,
- onTask: false,
- lootTableTertiaryChanges: Array.from(user.buildTertiaryItemChanges().entries())
+ catacombs: options.catacombs,
+ onTask: options.master !== undefined,
+ slayerMaster: slayerMasters.find(sMaster => sMaster.name === options.master)?.osjsEnum,
+ lootTableTertiaryChanges: Array.from(
+ user
+ .buildTertiaryItemChanges(false, options.master === 'Krystilia', options.master !== undefined)
+ .entries()
+ )
});
if (result.error) {
diff --git a/src/mahoji/lib/abstracted_commands/crackerCommand.ts b/src/mahoji/lib/abstracted_commands/crackerCommand.ts
index 31c0b41ee3..98a1cc8f34 100644
--- a/src/mahoji/lib/abstracted_commands/crackerCommand.ts
+++ b/src/mahoji/lib/abstracted_commands/crackerCommand.ts
@@ -4,6 +4,7 @@ import { Bank, LootTable } from 'oldschooljs';
import { Emoji } from '../../../lib/constants';
import { handleMahojiConfirmation } from '../../../lib/util/handleMahojiConfirmation';
+import { addToOpenablesScores } from '../../mahojiSettings';
const HatTable = new LootTable()
.add('Red partyhat', 1, 32)
@@ -56,6 +57,7 @@ export async function crackerCommand({
const [winner, loser] = shuffleArr([otherPerson, owner]);
await winner.addItemsToBank({ items: winnerLoot, collectionLog: true });
await loser.addItemsToBank({ items: loserLoot, collectionLog: true });
+ await addToOpenablesScores(owner, new Bank().add('Christmas cracker', 1).freeze());
return `${Emoji.ChristmasCracker} ${owner} pulled a Christmas cracker with ${otherPerson} and....\n\n ${winner} received ${winnerLoot}, ${loser} received ${loserLoot}.`;
}
diff --git a/src/mahoji/lib/abstracted_commands/minionKill/speedBoosts.ts b/src/mahoji/lib/abstracted_commands/minionKill/speedBoosts.ts
index 56f71f9d72..96c798bebc 100644
--- a/src/mahoji/lib/abstracted_commands/minionKill/speedBoosts.ts
+++ b/src/mahoji/lib/abstracted_commands/minionKill/speedBoosts.ts
@@ -203,10 +203,8 @@ const dragonHunterBoost: Boost = {
}
};
const revWildyGearBoost: Boost = {
- description: 'A boost for using a wilderness weapon for killing revenants.',
+ description: 'A boost for using a wilderness weapon for killing in wildy.',
run: ({ monster, isInWilderness, combatMethods, primaryStyle: style, gearBank }) => {
- const matchedRevenantMonster = revenantMonsters.find(m => m.id === monster.id);
- if (!matchedRevenantMonster) return null;
if (!isInWilderness || !monster.revsWeaponBoost) return null;
if (combatMethods.includes('barrage') || combatMethods.includes('burst')) return null;
@@ -214,10 +212,10 @@ const revWildyGearBoost: Boost = {
const upgradedWeapon = revUpgradedWeapons[style];
let revBoost = 0;
- if (gearBank.gear.wildy.hasEquipped(specialWeapon.name)) {
- revBoost = 12.5;
- } else if (gearBank.gear.wildy.hasEquipped(upgradedWeapon.name)) {
+ if (gearBank.gear.wildy.hasEquipped(upgradedWeapon.name)) {
revBoost = 17.5;
+ } else if (gearBank.gear.wildy.hasEquipped(specialWeapon.name)) {
+ revBoost = 12.5;
}
if (revBoost > 0) {
diff --git a/src/tasks/minions/minigames/temporossActivity.ts b/src/tasks/minions/minigames/temporossActivity.ts
index 87b29b12a3..28a4a75679 100644
--- a/src/tasks/minions/minigames/temporossActivity.ts
+++ b/src/tasks/minions/minigames/temporossActivity.ts
@@ -1,4 +1,4 @@
-import { formatOrdinal } from '@oldschoolgg/toolkit/util';
+import { calcPerHour, formatOrdinal } from '@oldschoolgg/toolkit/util';
import { increaseNumByPercent, randInt } from 'e';
import { Emoji, Events } from '../../../lib/constants';
@@ -83,7 +83,7 @@ export const temporossTask: MinionTask = {
let output = `${user}, ${
user.minionName
- } finished fighting Tempoross ${quantity}x times. ${xpStr.toLocaleString()}`;
+ } finished fighting Tempoross ${quantity}x times (${calcPerHour(quantity, data.duration).toFixed(1)}/hr), you now have ${newScore} KC. ${xpStr.toLocaleString()}`;
if (fBonusXP > 0) {
output += `\n\n**Fishing Bonus XP:** ${fBonusXP.toLocaleString()}`;
diff --git a/src/tasks/minions/minigames/wintertodtActivity.ts b/src/tasks/minions/minigames/wintertodtActivity.ts
index a95205ad50..f6f2957dc7 100644
--- a/src/tasks/minions/minigames/wintertodtActivity.ts
+++ b/src/tasks/minions/minigames/wintertodtActivity.ts
@@ -1,9 +1,10 @@
import { randInt } from 'e';
import { Bank } from 'oldschooljs';
+import { calcPerHour } from '@oldschoolgg/toolkit';
import { Emoji, Events } from '../../../lib/constants';
import { trackLoot } from '../../../lib/lootTrack';
-import { getMinigameScore, incrementMinigameScore } from '../../../lib/settings/settings';
+import { incrementMinigameScore } from '../../../lib/settings/settings';
import { winterTodtPointsTable } from '../../../lib/simulation/simulatedKillables';
import { WintertodtCrate } from '../../../lib/simulation/wintertodt';
import Firemaking from '../../../lib/skilling/skills/firemaking';
@@ -18,7 +19,7 @@ export const wintertodtTask: MinionTask = {
async run(data: ActivityTaskOptionsWithQuantity) {
const { userID, channelID, quantity } = data;
const user = await mUserFetch(userID);
-
+ const { newScore } = await incrementMinigameScore(user.id, 'wintertodt', quantity);
const loot = new Bank();
let totalPoints = 0;
@@ -46,7 +47,7 @@ export const wintertodtTask: MinionTask = {
`${Emoji.Phoenix} **${user.badgedUsername}'s** minion, ${
user.minionName
}, just received a Phoenix! Their Wintertodt KC is ${
- (await getMinigameScore(user.id, 'wintertodt')) + quantity
+ newScore
}, and their Firemaking level is ${user.skillLevel(SkillsEnum.Firemaking)}.`
);
}
@@ -111,7 +112,6 @@ export const wintertodtTask: MinionTask = {
collectionLog: true,
itemsToAdd: loot
});
- incrementMinigameScore(user.id, 'wintertodt', quantity);
const image = await makeBankImage({
title: `Loot From ${quantity}x Wintertodt`,
@@ -120,7 +120,7 @@ export const wintertodtTask: MinionTask = {
previousCL
});
- let output = `${user}, ${user.minionName} finished subduing Wintertodt ${quantity}x times. ${xpStr}, you cut ${numberOfRoots}x Bruma roots.`;
+ let output = `${user}, ${user.minionName} finished subduing Wintertodt ${quantity}x times (${calcPerHour(quantity, data.duration).toFixed(1)}/hr), you now have ${newScore} KC. ${xpStr}, you cut ${numberOfRoots}x Bruma roots.`;
if (fmBonusXP > 0) {
output += `\n\n**Firemaking Bonus XP:** ${fmBonusXP.toLocaleString()}`;
diff --git a/src/tasks/minions/monsterActivity.ts b/src/tasks/minions/monsterActivity.ts
index f5613f51d0..6bc5748106 100644
--- a/src/tasks/minions/monsterActivity.ts
+++ b/src/tasks/minions/monsterActivity.ts
@@ -1,6 +1,6 @@
import { Time, deepClone, percentChance } from 'e';
import type { MonsterKillOptions } from 'oldschooljs';
-import { Bank, EMonster, Monsters } from 'oldschooljs';
+import { Bank, EMonster, MonsterSlayerMaster, Monsters } from 'oldschooljs';
import { type BitField, Emoji } from '../../lib/constants';
import { userhasDiaryTierSync } from '../../lib/diaries';
@@ -335,9 +335,10 @@ export function doMonsterTrip(data: newOptions) {
monster.specialLoot({ loot, ownedItems: gearBank.bank, quantity: finalQuantity, cl: data.cl });
}
if (newSuperiorCount) {
- loot.add(superiorTable?.kill(newSuperiorCount));
+ loot.add(superiorTable?.kill(newSuperiorCount).set('Brimstone key', 0)); //remove the rng keys, todo: remove drop from superiors in osjs?
if (isInCatacombs) loot.add('Dark totem base', newSuperiorCount);
if (isInWilderness) loot.add("Larran's key", newSuperiorCount);
+ if (killOptions.slayerMaster === MonsterSlayerMaster.Konar) loot.add('Brimstone key', newSuperiorCount);
}
if (isInWilderness && monster.name === 'Hill giant') {
for (let i = 0; i < quantity; i++) {
diff --git a/src/tasks/minions/nexActivity.ts b/src/tasks/minions/nexActivity.ts
index d692e7c384..4885d0f43b 100644
--- a/src/tasks/minions/nexActivity.ts
+++ b/src/tasks/minions/nexActivity.ts
@@ -92,9 +92,10 @@ ${loot.formatLoot()}`
bank: loot.totalLoot(),
title: `Loot From ${survivedQuantity}x Nex`,
user: allMUsers[0],
- previousCL: undefined
+ previousCL: undefined,
+ spoiler: loot.purpleItems.some(i => loot.totalLoot().has(i))
})
- ).file.attachment
+ ).file
: undefined,
data,
loot.totalLoot()
diff --git a/tests/unit/snapshots/bank.OSB.png b/tests/unit/snapshots/bank.OSB.png
index 1b582259e1..2128ff40dd 100644
Binary files a/tests/unit/snapshots/bank.OSB.png and b/tests/unit/snapshots/bank.OSB.png differ
diff --git a/tests/unit/snapshots/banksnapshots.test.ts.snap b/tests/unit/snapshots/banksnapshots.test.ts.snap
index aa8340b168..18516755d0 100644
--- a/tests/unit/snapshots/banksnapshots.test.ts.snap
+++ b/tests/unit/snapshots/banksnapshots.test.ts.snap
@@ -635,6 +635,20 @@ exports[`OSB Buyables 1`] = `
"thieving": 50,
},
},
+ {
+ "gpCost": 1000,
+ "itemCost": {},
+ "name": "Diving apparatus",
+ "outputItems": undefined,
+ "qpRequired": 30,
+ },
+ {
+ "gpCost": 1000,
+ "itemCost": {},
+ "name": "Fishbowl helmet",
+ "outputItems": undefined,
+ "qpRequired": 30,
+ },
{
"itemCost": {
"24711": 1,
@@ -12488,7 +12502,7 @@ exports[`OSB Creatables 1`] = `
"11860": 1,
"24729": 6,
},
- "name": "Dark Graceful",
+ "name": "Dark graceful",
"outputItems": {
"24743": 1,
"24746": 1,
@@ -12504,7 +12518,7 @@ exports[`OSB Creatables 1`] = `
"11850": 1,
"24729": 1,
},
- "name": "Dark Graceful hood",
+ "name": "Dark graceful hood",
"outputItems": {
"24743": 1,
},
@@ -12564,6 +12578,93 @@ exports[`OSB Creatables 1`] = `
"24746": 1,
},
},
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "24743": 1,
+ "24746": 1,
+ "24749": 1,
+ "24752": 1,
+ "24755": 1,
+ "24758": 1,
+ },
+ "name": "Revert dark graceful",
+ "noCl": true,
+ "outputItems": {
+ "11850": 1,
+ "11852": 1,
+ "11854": 1,
+ "11856": 1,
+ "11858": 1,
+ "11860": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "24743": 1,
+ },
+ "name": "Revert dark graceful hood",
+ "noCl": true,
+ "outputItems": {
+ "11850": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "24749": 1,
+ },
+ "name": "Revert dark graceful top",
+ "noCl": true,
+ "outputItems": {
+ "11854": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "24752": 1,
+ },
+ "name": "Revert dark graceful legs",
+ "noCl": true,
+ "outputItems": {
+ "11856": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "24755": 1,
+ },
+ "name": "Revert dark graceful gloves",
+ "noCl": true,
+ "outputItems": {
+ "11858": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "24758": 1,
+ },
+ "name": "Revert dark graceful boots",
+ "noCl": true,
+ "outputItems": {
+ "11860": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "24746": 1,
+ },
+ "name": "Revert dark graceful cape",
+ "noCl": true,
+ "outputItems": {
+ "11852": 1,
+ },
+ },
{
"cantHaveItems": undefined,
"inputItems": {
@@ -13619,7 +13720,7 @@ exports[`OSB Creatables 1`] = `
"11860": 1,
"30044": 1,
},
- "name": "Varlamore graceful outfit",
+ "name": "Varlamore graceful",
"outputItems": {
"30045": 1,
"30048": 1,
@@ -13639,7 +13740,94 @@ exports[`OSB Creatables 1`] = `
"30057": 1,
"30060": 1,
},
- "name": "Revert Varlamore graceful outfit",
+ "name": "Revert Varlamore graceful",
+ "noCl": true,
+ "outputItems": {
+ "11850": 1,
+ "11852": 1,
+ "11854": 1,
+ "11856": 1,
+ "11858": 1,
+ "11860": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "30045": 1,
+ },
+ "name": "Revert Varlamore graceful hood",
+ "noCl": true,
+ "outputItems": {
+ "11850": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "30051": 1,
+ },
+ "name": "Revert Varlamore graceful top",
+ "noCl": true,
+ "outputItems": {
+ "11854": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "30054": 1,
+ },
+ "name": "Revert Varlamore graceful legs",
+ "noCl": true,
+ "outputItems": {
+ "11856": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "30057": 1,
+ },
+ "name": "Revert Varlamore graceful gloves",
+ "noCl": true,
+ "outputItems": {
+ "11858": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "30060": 1,
+ },
+ "name": "Revert Varlamore graceful boots",
+ "noCl": true,
+ "outputItems": {
+ "11860": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "30048": 1,
+ },
+ "name": "Revert Varlamore graceful cape",
+ "noCl": true,
+ "outputItems": {
+ "11852": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "21061": 1,
+ "21064": 1,
+ "21067": 1,
+ "21070": 1,
+ "21073": 1,
+ "21076": 1,
+ },
+ "name": "Revert Brimhaven graceful",
"noCl": true,
"outputItems": {
"11850": 1,
@@ -13650,6 +13838,72 @@ exports[`OSB Creatables 1`] = `
"11860": 1,
},
},
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "21061": 1,
+ },
+ "name": "Revert Brimhaven graceful hood",
+ "noCl": true,
+ "outputItems": {
+ "11850": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "21067": 1,
+ },
+ "name": "Revert Brimhaven graceful top",
+ "noCl": true,
+ "outputItems": {
+ "11854": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "21070": 1,
+ },
+ "name": "Revert Brimhaven graceful legs",
+ "noCl": true,
+ "outputItems": {
+ "11856": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "21073": 1,
+ },
+ "name": "Revert Brimhaven graceful gloves",
+ "noCl": true,
+ "outputItems": {
+ "11858": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "21076": 1,
+ },
+ "name": "Revert Brimhaven graceful boots",
+ "noCl": true,
+ "outputItems": {
+ "11860": 1,
+ },
+ },
+ {
+ "cantHaveItems": undefined,
+ "inputItems": {
+ "21064": 1,
+ },
+ "name": "Revert Brimhaven graceful cape",
+ "noCl": true,
+ "outputItems": {
+ "11852": 1,
+ },
+ },
{
"cantHaveItems": undefined,
"inputItems": {
diff --git a/tests/unit/snapshots/chatHead.OSB.png b/tests/unit/snapshots/chatHead.OSB.png
index b67ed3a8ce..044f00874f 100644
Binary files a/tests/unit/snapshots/chatHead.OSB.png and b/tests/unit/snapshots/chatHead.OSB.png differ
diff --git a/tests/unit/snapshots/cl.OSB.png b/tests/unit/snapshots/cl.OSB.png
index d6c28ccacf..361ff018cc 100644
Binary files a/tests/unit/snapshots/cl.OSB.png and b/tests/unit/snapshots/cl.OSB.png differ
diff --git a/tests/unit/snapshots/clsnapshots.test.ts.snap b/tests/unit/snapshots/clsnapshots.test.ts.snap
index 1ba4270091..d73635c92a 100644
--- a/tests/unit/snapshots/clsnapshots.test.ts.snap
+++ b/tests/unit/snapshots/clsnapshots.test.ts.snap
@@ -67,7 +67,7 @@ Mahogany Homes (8)
Master Treasure Trail Rewards (Rare) (45)
Master Treasure Trails (49)
Medium Treasure Trails (115)
-Miscellaneous (51)
+Miscellaneous (53)
Monkey Backpacks (6)
Motherlode Mine (6)
My Notes (26)
@@ -721,6 +721,8 @@ Forestry legs
Forestry top
Fox whistle
Fremennik kilt
+Fresh crab claw
+Fresh crab shell
Frog slippers
Frog token
Frozen cache
diff --git a/tests/unit/snapshots/cox.OSB.png b/tests/unit/snapshots/cox.OSB.png
index 159861f526..6ffddf5eb9 100644
Binary files a/tests/unit/snapshots/cox.OSB.png and b/tests/unit/snapshots/cox.OSB.png differ
diff --git a/tests/unit/snapshots/poh.OSB.png b/tests/unit/snapshots/poh.OSB.png
index 058c5b8a63..440675860b 100644
Binary files a/tests/unit/snapshots/poh.OSB.png and b/tests/unit/snapshots/poh.OSB.png differ
diff --git a/tests/unit/snapshots/toa.OSB.png b/tests/unit/snapshots/toa.OSB.png
index c2473774df..7a56694dc6 100644
Binary files a/tests/unit/snapshots/toa.OSB.png and b/tests/unit/snapshots/toa.OSB.png differ
diff --git a/yarn.lock b/yarn.lock
index 885bef7add..5aedde13ef 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4362,13 +4362,13 @@ __metadata:
languageName: node
linkType: hard
-"oldschooljs@git+https://github.com/oldschoolgg/oldschooljs.git#3c165d84fb79abca6f6b85877165f94dcf7e2940":
+"oldschooljs@git+https://github.com/oldschoolgg/oldschooljs.git#7094eb4a53e5301fb401adadb25f6993448b1c83":
version: 0.0.0
- resolution: "oldschooljs@https://github.com/oldschoolgg/oldschooljs.git#commit=3c165d84fb79abca6f6b85877165f94dcf7e2940"
+ resolution: "oldschooljs@https://github.com/oldschoolgg/oldschooljs.git#commit=7094eb4a53e5301fb401adadb25f6993448b1c83"
dependencies:
e: "npm:^0.2.33"
node-fetch: "npm:2.6.7"
- checksum: 10c0/d8de4a27d9450b7b42891557f7b21a9b6dbee5981762ae8795f4a86710bc833ddad5a069f17f06cfbcdc203e95454cd0b4ec4c147183be0a2de64d0341a7f184
+ checksum: 10c0/c160e1b7eac166d7094fec2e555916bc6c4bd09480cc4abb8842ef5685446e38748c5549288b1a72a7d25447286af3518d05c81d5feb9a6816894e8f9fa6e8ca
languageName: node
linkType: hard
@@ -5171,7 +5171,7 @@ __metadata:
node-cron: "npm:^3.0.3"
node-fetch: "npm:^2.6.7"
nodemon: "npm:^3.1.7"
- oldschooljs: "git+https://github.com/oldschoolgg/oldschooljs.git#3c165d84fb79abca6f6b85877165f94dcf7e2940"
+ oldschooljs: "git+https://github.com/oldschoolgg/oldschooljs.git#7094eb4a53e5301fb401adadb25f6993448b1c83"
p-queue: "npm:^6.6.2"
piscina: "npm:^4.7.0"
postgres: "npm:^3.4.4"
|