From 4be0f127b182e2f296cdd892dd52540d40b339a7 Mon Sep 17 00:00:00 2001 From: nwjgit Date: Wed, 15 Nov 2023 12:07:22 -0600 Subject: [PATCH 1/3] fix baby red dragons --- src/data/monsters_data.json | 188 +++++++++--------- .../monsters/low/a-f/BabyRedDragon.ts | 2 +- 2 files changed, 95 insertions(+), 95 deletions(-) diff --git a/src/data/monsters_data.json b/src/data/monsters_data.json index d55a20d9b..3c5c164e8 100644 --- a/src/data/monsters_data.json +++ b/src/data/monsters_data.json @@ -519,46 +519,6 @@ "slayerXP": 60, "assignableSlayerMasters": ["vannaka"] }, - "137": { - "members": true, - "combatLevel": 65, - "hitpoints": 65, - "maxHit": 6, - "attackType": ["slash"], - "attackSpeed": 4, - "aggressive": true, - "poisonous": false, - "immuneToPoison": false, - "immuneToVenom": false, - "attributes": [], - "category": [], - "examineText": "Young, but still dangerous.", - "wikiName": "Baby red dragon (Construction)", - "wikiURL": "https://oldschool.runescape.wiki/w/Baby_red_dragon_(Construction)", - "attackLevel": 55, - "strengthLevel": 55, - "defenceLevel": 55, - "magicLevel": 1, - "rangedLevel": 1, - "attackStab": 0, - "attackSlash": 0, - "attackCrush": 0, - "attackMagic": 0, - "attackRanged": 0, - "defenceStab": 30, - "defenceSlash": 50, - "defenceCrush": 50, - "defenceMagic": 40, - "defenceRanged": 30, - "attackAccuracy": 0, - "meleeStrength": 0, - "rangedStrength": 0, - "magicDamage": 0, - "isSlayerMonster": false, - "slayerLevelRequired": 0, - "slayerXP": 0, - "assignableSlayerMasters": [] - }, "232": { "members": true, "combatLevel": 64, @@ -679,6 +639,46 @@ "slayerXP": 50, "assignableSlayerMasters": ["vannaka", "chaeldar", "konar", "nieve", "duradel"] }, + "244": { + "members": true, + "combatLevel": 48, + "hitpoints": 50, + "maxHit": 5, + "attackType": ["slash"], + "attackSpeed": 4, + "aggressive": true, + "poisonous": false, + "immuneToPoison": false, + "immuneToVenom": false, + "attributes": ["dragon"], + "category": ["red dragons"], + "examineText": "Young but still dangerous.", + "wikiName": "Baby red dragon (1)", + "wikiURL": "https://oldschool.runescape.wiki/w/Baby_red_dragon#1", + "attackLevel": 40, + "strengthLevel": 40, + "defenceLevel": 40, + "magicLevel": 1, + "rangedLevel": 1, + "attackStab": 0, + "attackSlash": 0, + "attackCrush": 0, + "attackMagic": 0, + "attackRanged": 0, + "defenceStab": 30, + "defenceSlash": 50, + "defenceCrush": 50, + "defenceMagic": 40, + "defenceRanged": 30, + "attackAccuracy": 0, + "meleeStrength": 0, + "rangedStrength": 0, + "magicDamage": 0, + "isSlayerMonster": true, + "slayerLevelRequired": 1, + "slayerXP": 50, + "assignableSlayerMasters": ["konar", "nieve", "duradel"] + }, "247": { "members": true, "combatLevel": 152, @@ -2858,7 +2858,7 @@ "poisonous": false, "immuneToPoison": false, "immuneToVenom": false, - "attributes": [], + "attributes": ["kalphite"], "category": ["scabarites"], "examineText": "A mounted lancer.", "wikiName": "Locust rider (Lancer)", @@ -5450,7 +5450,7 @@ "maxHit": 3, "attackType": ["stab"], "attackSpeed": 4, - "aggressive": false, + "aggressive": true, "poisonous": false, "immuneToPoison": false, "immuneToVenom": false, @@ -9838,7 +9838,7 @@ "poisonous": false, "immuneToPoison": false, "immuneToVenom": false, - "attributes": [], + "attributes": ["demon"], "category": [], "examineText": "This creature has been dragged back from the grave.", "wikiName": "Reanimated imp", @@ -10318,7 +10318,7 @@ "poisonous": true, "immuneToPoison": false, "immuneToVenom": false, - "attributes": [], + "attributes": ["kalphite"], "category": ["kalphite"], "examineText": "This creature has been dragged back from the grave.", "wikiName": "Reanimated kalphite", @@ -14366,8 +14366,8 @@ "12204": { "members": true, "combatLevel": 791, - "hitpoints": 900, - "maxHit": 42, + "hitpoints": 2700, + "maxHit": 57, "attackType": [], "attackSpeed": 10, "aggressive": true, @@ -14377,13 +14377,13 @@ "attributes": [], "category": ["bosses"], "examineText": "Dare you face the shadows?", - "wikiName": "The Whisperer (Post-Quest)", - "wikiURL": "https://oldschool.runescape.wiki/w/The_Whisperer#Post-Quest", - "attackLevel": 280, - "strengthLevel": 280, - "defenceLevel": 250, - "magicLevel": 180, - "rangedLevel": 180, + "wikiName": "The Whisperer (Awakened)", + "wikiURL": "https://oldschool.runescape.wiki/w/The_Whisperer#Awakened", + "attackLevel": 378, + "strengthLevel": 378, + "defenceLevel": 300, + "magicLevel": 225, + "rangedLevel": 243, "attackStab": 0, "attackSlash": 0, "attackCrush": 0, @@ -14400,14 +14400,14 @@ "magicDamage": 0, "isSlayerMonster": true, "slayerLevelRequired": 1, - "slayerXP": 900, + "slayerXP": 2700, "assignableSlayerMasters": ["konar", "nieve", "duradel"] }, "12205": { "members": true, "combatLevel": 791, - "hitpoints": 900, - "maxHit": 42, + "hitpoints": 2700, + "maxHit": 57, "attackType": [], "attackSpeed": 10, "aggressive": true, @@ -14417,13 +14417,13 @@ "attributes": [], "category": ["bosses"], "examineText": "Dare you face the shadows?", - "wikiName": "The Whisperer (Post-Quest)", - "wikiURL": "https://oldschool.runescape.wiki/w/The_Whisperer#Post-Quest", - "attackLevel": 280, - "strengthLevel": 280, - "defenceLevel": 250, - "magicLevel": 180, - "rangedLevel": 180, + "wikiName": "The Whisperer (Awakened)", + "wikiURL": "https://oldschool.runescape.wiki/w/The_Whisperer#Awakened", + "attackLevel": 378, + "strengthLevel": 378, + "defenceLevel": 300, + "magicLevel": 225, + "rangedLevel": 243, "attackStab": 0, "attackSlash": 0, "attackCrush": 0, @@ -14440,14 +14440,14 @@ "magicDamage": 0, "isSlayerMonster": true, "slayerLevelRequired": 1, - "slayerXP": 900, + "slayerXP": 2700, "assignableSlayerMasters": ["konar", "nieve", "duradel"] }, "12214": { "members": true, "combatLevel": 798, - "hitpoints": 900, - "maxHit": 87, + "hitpoints": 2700, + "maxHit": 86, "attackType": ["melee", "magic"], "attackSpeed": null, "aggressive": true, @@ -14457,13 +14457,13 @@ "attributes": [], "category": ["bosses"], "examineText": "An unfathomably huge sea creature.", - "wikiName": "The Leviathan (Post-Quest)", - "wikiURL": "https://oldschool.runescape.wiki/w/The_Leviathan#Post-Quest", - "attackLevel": 300, - "strengthLevel": 360, - "defenceLevel": 250, - "magicLevel": 160, - "rangedLevel": 160, + "wikiName": "The Leviathan (Awakened)", + "wikiURL": "https://oldschool.runescape.wiki/w/The_Leviathan#Awakened", + "attackLevel": 525, + "strengthLevel": 630, + "defenceLevel": 287, + "magicLevel": 280, + "rangedLevel": 280, "attackStab": 0, "attackSlash": 0, "attackCrush": 0, @@ -14480,14 +14480,14 @@ "magicDamage": 0, "isSlayerMonster": true, "slayerLevelRequired": 1, - "slayerXP": 1777.4, + "slayerXP": 2700, "assignableSlayerMasters": ["konar", "nieve", "duradel"] }, "12215": { "members": true, "combatLevel": 798, - "hitpoints": 900, - "maxHit": 87, + "hitpoints": 2700, + "maxHit": 86, "attackType": ["melee", "magic"], "attackSpeed": null, "aggressive": true, @@ -14497,13 +14497,13 @@ "attributes": [], "category": ["bosses"], "examineText": "An unfathomably huge sea creature.", - "wikiName": "The Leviathan (Post-Quest)", - "wikiURL": "https://oldschool.runescape.wiki/w/The_Leviathan#Post-Quest", - "attackLevel": 300, - "strengthLevel": 360, - "defenceLevel": 250, - "magicLevel": 160, - "rangedLevel": 160, + "wikiName": "The Leviathan (Awakened)", + "wikiURL": "https://oldschool.runescape.wiki/w/The_Leviathan#Awakened", + "attackLevel": 525, + "strengthLevel": 630, + "defenceLevel": 287, + "magicLevel": 280, + "rangedLevel": 280, "attackStab": 0, "attackSlash": 0, "attackCrush": 0, @@ -14520,13 +14520,13 @@ "magicDamage": 0, "isSlayerMonster": true, "slayerLevelRequired": 1, - "slayerXP": 1777.4, + "slayerXP": 2700, "assignableSlayerMasters": ["konar", "nieve", "duradel"] }, "12223": { "members": true, "combatLevel": 784, - "hitpoints": 700, + "hitpoints": 1400, "maxHit": null, "attackType": ["slash"], "attackSpeed": 5, @@ -14537,9 +14537,9 @@ "attributes": [], "category": ["bosses"], "examineText": "How does he suck blood now?", - "wikiName": "Vardorvis (Post-Quest)", - "wikiURL": "https://oldschool.runescape.wiki/w/Vardorvis#Post-Quest", - "attackLevel": 280, + "wikiName": "Vardorvis (Awakened)", + "wikiURL": "https://oldschool.runescape.wiki/w/Vardorvis#Awakened", + "attackLevel": 420, "strengthLevel": 0, "defenceLevel": 0, "magicLevel": 215, @@ -14560,13 +14560,13 @@ "magicDamage": 0, "isSlayerMonster": true, "slayerLevelRequired": 1, - "slayerXP": 1085, + "slayerXP": 1400, "assignableSlayerMasters": ["konar", "nieve", "duradel"] }, "12224": { "members": true, "combatLevel": 784, - "hitpoints": 700, + "hitpoints": 1400, "maxHit": null, "attackType": ["slash"], "attackSpeed": 5, @@ -14577,9 +14577,9 @@ "attributes": [], "category": ["bosses"], "examineText": "How does he suck blood now?", - "wikiName": "Vardorvis (Post-Quest)", - "wikiURL": "https://oldschool.runescape.wiki/w/Vardorvis#Post-Quest", - "attackLevel": 280, + "wikiName": "Vardorvis (Awakened)", + "wikiURL": "https://oldschool.runescape.wiki/w/Vardorvis#Awakened", + "attackLevel": 420, "strengthLevel": 0, "defenceLevel": 0, "magicLevel": 215, @@ -14600,7 +14600,7 @@ "magicDamage": 0, "isSlayerMonster": true, "slayerLevelRequired": 1, - "slayerXP": 1085, + "slayerXP": 1400, "assignableSlayerMasters": ["konar", "nieve", "duradel"] } } diff --git a/src/simulation/monsters/low/a-f/BabyRedDragon.ts b/src/simulation/monsters/low/a-f/BabyRedDragon.ts index 4c0ec4a56..a5f64e28d 100644 --- a/src/simulation/monsters/low/a-f/BabyRedDragon.ts +++ b/src/simulation/monsters/low/a-f/BabyRedDragon.ts @@ -4,7 +4,7 @@ import SimpleMonster from '../../../../structures/SimpleMonster'; const BabyRedDragonTable = new LootTable().every('Babydragon bones'); export default new SimpleMonster({ - id: 137, + id: 244, name: 'Baby red Dragon', table: BabyRedDragonTable, aliases: ['baby red dragon', 'baby red drags'] From 4e3ac7a36bb681d23565056fddcd856760709674 Mon Sep 17 00:00:00 2001 From: nwjgit Date: Sat, 27 Jan 2024 22:50:23 -0600 Subject: [PATCH 2/3] fix --- scripts/prepareItems.ts | 13 ++++++++++++- src/data/items/item_data.json | 12 ------------ src/simulation/monsters/low/g-m/LavaDragon.ts | 3 ++- src/structures/Items.ts | 3 +++ test/Items.test.ts | 2 ++ 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/scripts/prepareItems.ts b/scripts/prepareItems.ts index 869ca3cdc..eba630d0f 100644 --- a/scripts/prepareItems.ts +++ b/scripts/prepareItems.ts @@ -414,12 +414,23 @@ export default async function prepareItems(): Promise { itemNameMap[item.id] = item; } } - const deletedItems = Object.values(previousItems) + const deletedItems: any[] = Object.values(previousItems) .filter((i: any) => !(itemNameMap as any)[i.id]) .filter(notEmpty); messages.push(`New Items: ${moidLink(newItems)}.`); messages.push(`Deleted Items: ${moidLink(deletedItems)}.`); + const sql = `SELECT + ${deletedItems + .map( + item => `COUNT(*) FILTER (WHERE bank->>'${item.id}' IS NOT NULL) AS people_with_item_${item.id}, + SUM((bank->>'${item.id}')::int) AS sum_item_${item.id},` + ) + .join('\n')} + +FROM users; +`; + messages.push(`${sql}`); messages.push( `Major price changes NOT changed: ${majorPriceChanges diff --git a/src/data/items/item_data.json b/src/data/items/item_data.json index c29471e2c..e50c14ac1 100644 --- a/src/data/items/item_data.json +++ b/src/data/items/item_data.json @@ -224964,18 +224964,6 @@ "wiki_url": "https://oldschool.runescape.wiki/w/Mysterious_crushed_meat", "price": 0 }, - "22405": { - "id": 22405, - "name": "Vial of blood", - "members": true, - "cost": 100, - "weight": 0.02, - "release_date": "2018-05-24", - "examine": "A glass vial containing some blood. Yuck.", - "wiki_name": "Vial of blood (A Taste of Hope)", - "wiki_url": "https://oldschool.runescape.wiki/w/Vial_of_blood_(A_Taste_of_Hope)", - "price": 0 - }, "22406": { "id": 22406, "name": "Unfinished blood potion", diff --git a/src/simulation/monsters/low/g-m/LavaDragon.ts b/src/simulation/monsters/low/g-m/LavaDragon.ts index 1f9b0a472..54d506758 100644 --- a/src/simulation/monsters/low/g-m/LavaDragon.ts +++ b/src/simulation/monsters/low/g-m/LavaDragon.ts @@ -51,7 +51,8 @@ export const LavaDragonTable = new LootTable() /* Tertiary */ .tertiary(250, 'Clue scroll (elite)') - .tertiary(10_000, 'Draconic visage'); + .tertiary(10_000, 'Draconic visage') + .tertiary(18, 'Ensouled dragon head'); export default new SimpleMonster({ id: 6593, diff --git a/src/structures/Items.ts b/src/structures/Items.ts index 2ac8da10a..0481018bf 100644 --- a/src/structures/Items.ts +++ b/src/structures/Items.ts @@ -16,6 +16,9 @@ export interface ItemCollection { export const USELESS_ITEMS = [ 617, 8890, 6964, 2513, 19_492, 11_071, 11_068, 21_284, 24_735, 21_913, 4703, 4561, 2425, 4692, 3741, + // Quest blood vial + 22_405, + // Pharaoh's sceptres 9045, 9046, 9047, 9048, 9049, 9050, 9051, 13_074, 13_075, 13_076, 13_077, 13_078, 16_176, 21_445, 21_446, 26_948, 26_950, 26_945, diff --git a/test/Items.test.ts b/test/Items.test.ts index 09eea5f59..c321552f2 100644 --- a/test/Items.test.ts +++ b/test/Items.test.ts @@ -102,6 +102,8 @@ describe('Items', () => { expect(coins.id).toBe(995); expect(coins.price).toEqual(1); expect(Items.get('Snowy knight')!.price).toEqual(0); + + expect(Items.get('Vial of blood')!.id).toEqual(22_446); }, 60_000 ); From 757a1df104e1c07b48a73f069dfa36e73d46bafa Mon Sep 17 00:00:00 2001 From: nwjgit Date: Sat, 27 Jan 2024 23:00:12 -0600 Subject: [PATCH 3/3] fix unit tests --- src/constants.ts | 1 + src/meta/types.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/constants.ts b/src/constants.ts index b51e63c1d..ca2e282b5 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -80,6 +80,7 @@ export const mappedBossNames: [keyof BossRecords, string][] = [ ['phantomMuspah', 'Phantom Muspah'], ['sarachnis', 'Sarachnis'], ['scorpia', 'Scorpia'], + ['scurrius', 'Scurrius'], ['skotizo', 'Skotizo'], ['spindel', 'Spindel'], ['tempoross', 'Tempoross'], diff --git a/src/meta/types.ts b/src/meta/types.ts index cf89cd7c4..319724b24 100644 --- a/src/meta/types.ts +++ b/src/meta/types.ts @@ -96,6 +96,7 @@ export interface BossRecords { phantomMuspah: MinigameScore; sarachnis: MinigameScore; scorpia: MinigameScore; + scurrius: MinigameScore; skotizo: MinigameScore; spindel: MinigameScore; tempoross: MinigameScore;