osrs-tools 2.5.3 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +270 -270
- package/dist/runescape/model/quest/QuestTool.d.ts.map +1 -1
- package/dist/runescape/model/quest/QuestTool.js +102 -4
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts +4 -0
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.js +4 -0
- package/dist/runescape/model/quest/all/AtFirstLight.d.ts +4 -0
- package/dist/runescape/model/quest/all/AtFirstLight.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/AtFirstLight.js +4 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts +4 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.js +4 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts +4 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.js +4 -0
- package/dist/runescape/model/quest/all/ColdWar.js +1 -1
- package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts +4 -0
- package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DeathOnTheIsle.js +4 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts +4 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.js +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.d.ts +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.js +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.js +4 -0
- package/dist/runescape/model/quest/all/DragonSlayerI.js +1 -1
- package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts +4 -0
- package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ErnestTheChicken.js +38 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts +4 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.js +4 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts +4 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.js +4 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.d.ts +4 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.js +37 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts +4 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.js +25 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.d.ts +4 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.js +4 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts +4 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.js +4 -0
- package/dist/runescape/model/quest/all/MountainDaughter.d.ts +4 -0
- package/dist/runescape/model/quest/all/MountainDaughter.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MountainDaughter.js +25 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.js +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.js +4 -0
- package/dist/runescape/model/quest/all/PerilousMoons.d.ts +4 -0
- package/dist/runescape/model/quest/all/PerilousMoons.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PerilousMoons.js +4 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.d.ts +4 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.js +4 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts +4 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.js +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.js +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.js +4 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts +4 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.js +25 -0
- package/dist/runescape/model/quest/all/RuneMysteries.d.ts +4 -0
- package/dist/runescape/model/quest/all/RuneMysteries.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RuneMysteries.js +4 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts +4 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.js +4 -0
- package/dist/runescape/model/quest/all/SheepShearer.d.ts +4 -0
- package/dist/runescape/model/quest/all/SheepShearer.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SheepShearer.js +4 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts +4 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.js +4 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts +4 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.js +4 -0
- package/dist/runescape/model/quest/all/SleepingGiants.d.ts +4 -0
- package/dist/runescape/model/quest/all/SleepingGiants.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SleepingGiants.js +4 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts +4 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.js +4 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts +4 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.js +4 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.d.ts +4 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.js +4 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts +4 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.js +4 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.js +25 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.js +34 -0
- package/dist/runescape/model/quest/all/TheDigSite.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheDigSite.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheDigSite.js +4 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.js +4 -0
- package/dist/runescape/model/quest/all/TheFeud.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheFeud.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheFeud.js +4 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.js +4 -0
- package/dist/runescape/model/quest/all/TheHandInTheSand.js +1 -1
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.js +4 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.js +4 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts +4 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.js +4 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.js +4 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.js +4 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.d.ts +4 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.js +4 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts +4 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.js +4 -0
- package/dist/runescape/model/quest/all/WitchsPotion.d.ts +4 -0
- package/dist/runescape/model/quest/all/WitchsPotion.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/WitchsPotion.js +4 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts +4 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.js +4 -0
- package/dist/runescape/model/quest/all/index.d.ts +47 -0
- package/dist/runescape/model/quest/all/index.d.ts.map +1 -1
- package/dist/runescape/model/quest/all/index.js +47 -0
- package/dist/runescape/model/slayer/index.d.ts +10 -10
- package/dist/runescape/model/slayer/index.d.ts.map +1 -1
- package/dist/runescape/model/slayer/index.js +8 -8
- package/dist/runescape/model/slayer/masters/index.d.ts +19 -19
- package/dist/runescape/model/slayer/masters/index.d.ts.map +1 -1
- package/dist/runescape/model/slayer/masters/index.js +20 -20
- package/dist/runescape/model/slayer/masters/registry.d.ts +1 -1
- package/dist/runescape/model/slayer/masters/registry.d.ts.map +1 -1
- package/dist/runescape/model/slayer/masters/registry.js +1 -1
- package/dist/runescape/model/slayer/masters.d.ts +8 -0
- package/dist/runescape/model/slayer/masters.d.ts.map +1 -0
- package/dist/runescape/model/slayer/masters.js +6 -0
- package/dist/runescape/model/slayer/tasks/index.d.ts +11 -11
- package/dist/runescape/model/slayer/tasks/index.js +11 -11
- package/package.json +96 -96
- package/public/assets/icons/diaries/Ardougne_Diary.png +0 -0
- package/public/assets/icons/diaries/Desert_Diary.png +0 -0
- package/public/assets/icons/diaries/Falador_Diary.png +0 -0
- package/public/assets/icons/diaries/Fremennik_Diary.png +0 -0
- package/public/assets/icons/diaries/Kandarin_Diary.png +0 -0
- package/public/assets/icons/diaries/Karamja_Diary.png +0 -0
- package/public/assets/icons/diaries/Morytania_Diary.png +0 -0
- package/public/assets/icons/diaries/Varrock_Diary.png +0 -0
- package/public/assets/icons/diaries/Wilderness_Diary.png +0 -0
- package/public/assets/icons/skills/Agility_icon.png +0 -0
- package/public/assets/icons/skills/Attack_icon.png +0 -0
- package/public/assets/icons/skills/Construction_icon.png +0 -0
- package/public/assets/icons/skills/Cooking_icon.png +0 -0
- package/public/assets/icons/skills/Crafting_icon.png +0 -0
- package/public/assets/icons/skills/Defence_icon.png +0 -0
- package/public/assets/icons/skills/Farming_icon.png +0 -0
- package/public/assets/icons/skills/Firemaking_icon.png +0 -0
- package/public/assets/icons/skills/Fishing_icon.png +0 -0
- package/public/assets/icons/skills/Fletching_icon.png +0 -0
- package/public/assets/icons/skills/Herblore_icon.png +0 -0
- package/public/assets/icons/skills/Hitpoints_icon.png +0 -0
- package/public/assets/icons/skills/Magic_icon.png +0 -0
- package/public/assets/icons/skills/Mining_icon.png +0 -0
- package/public/assets/icons/skills/Prayer_icon.png +0 -0
- package/public/assets/icons/skills/Ranged_icon.png +0 -0
- package/public/assets/icons/skills/Sailing_icon.png +0 -0
- package/public/assets/icons/skills/Slayer_icon.png +0 -0
- package/public/assets/icons/skills/Smithing_icon.png +0 -0
- package/public/assets/icons/skills/Strength_icon.png +0 -0
- package/public/assets/icons/skills/Thieving_icon.png +0 -0
- package/public/assets/icons/skills/Woodcutting_icon.png +0 -0
- package/public/assets/icons/tabs/Combat_Tab.png +0 -0
- package/public/assets/icons/tabs/Inventory_Tab.png +0 -0
- package/public/assets/icons/tabs/Magic_Tab.png +0 -0
- package/public/assets/icons/tabs/Prayer_Tab.png +0 -0
- package/public/assets/icons/tabs/Quest_Tab.png +0 -0
- package/public/assets/icons/tabs/Skills_Tab.png +0 -0
- package/public/assets/icons/ui/Bank.png +0 -0
- package/public/assets/icons/ui/Music.png +0 -0
- package/public/assets/icons/ui/Quest_Points.png +0 -0
- package/public/assets/icons/ui/Settings.png +0 -0
- package/dist/runescape/model/Item/ClueScrollRewards.js +0 -286
- package/dist/runescape/model/Item/all/StudiedChaps.js +0 -35
- package/dist/runescape/model/Item/models/YellowPartyhat.obj +0 -149
- package/dist/runescape/model/slayer/Masters.js +0 -101
- package/dist/runescape/tools/ClueScrollHelper.js +0 -103
- package/dist/runescape/utils/cache.js +0 -124
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Clue Scroll Reward Item Mappings
|
|
3
|
-
* Organizes all clue scroll rewards by tier with their correct rarity tiers
|
|
4
|
-
* Based on official OSRS Wiki data
|
|
5
|
-
*/
|
|
6
|
-
import { AdamantPlatebody } from './all/AdamantPlatebody';
|
|
7
|
-
import { AdamantPlatelegs } from './all/AdamantPlatelegs';
|
|
8
|
-
import { AdamantShieldG } from './all/AdamantShieldG';
|
|
9
|
-
import { AirRune } from './all/AirRune';
|
|
10
|
-
import { AmuletOfMagic } from './all/AmuletOfMagic';
|
|
11
|
-
import { AmuletOfMagicT } from './all/AmuletOfMagicT';
|
|
12
|
-
import { AmuletOfPowerT } from './all/AmuletOfPowerT';
|
|
13
|
-
import { AmuletOfTheVoid } from './all/AmuletOfTheVoid';
|
|
14
|
-
import { AncestralRobeBottom } from './all/AncestralRobeBottom';
|
|
15
|
-
import { AncestralRobeTop } from './all/AncestralRobeTop';
|
|
16
|
-
import { BlackAxe } from './all/BlackAxe';
|
|
17
|
-
import { BlackBattleaxe } from './all/BlackBattleaxe';
|
|
18
|
-
import { BlackDagger } from './all/BlackDagger';
|
|
19
|
-
import { BlackFullHelm } from './all/BlackFullHelm';
|
|
20
|
-
import { BlackFullHelmT } from './all/BlackFullHelmT';
|
|
21
|
-
import { BlackLongsword } from './all/BlackLongsword';
|
|
22
|
-
import { BlackPlatebody } from './all/BlackPlatebody';
|
|
23
|
-
import { BlackPlatebodyT } from './all/BlackPlatebodyT';
|
|
24
|
-
import { BlackPlatelegs } from './all/BlackPlatelegs';
|
|
25
|
-
import { BlackPlatelegsT } from './all/BlackPlatelegsT';
|
|
26
|
-
import { BlackPickaxe } from './all/BlackPickaxe';
|
|
27
|
-
import { BodyRune } from './all/BodyRune';
|
|
28
|
-
import { BlueDHideBody } from './all/BlueDHideBody';
|
|
29
|
-
import { BlueDHideChaps } from './all/BlueDHideChaps';
|
|
30
|
-
import { CapeOfSkulls } from './all/CapeOfSkulls';
|
|
31
|
-
import { ChaosRune } from './all/ChaosRune';
|
|
32
|
-
import { Coins } from './all/Coins';
|
|
33
|
-
import { Coif } from './all/Coif';
|
|
34
|
-
import { CrawsBow } from './all/CrawsBow';
|
|
35
|
-
import { DragonBoots } from './all/DragonBoots';
|
|
36
|
-
import { DragonFullHelm } from './all/DragonFullHelm';
|
|
37
|
-
import { DragonMediumHelm } from './all/DragonMediumHelm';
|
|
38
|
-
import { DragonPlatebody } from './all/DragonPlatebody';
|
|
39
|
-
import { DragonPlatelegs } from './all/DragonPlatelegs';
|
|
40
|
-
import { EarthRune } from './all/EarthRune';
|
|
41
|
-
import { FireRune } from './all/FireRune';
|
|
42
|
-
import { FlaredTrousers } from './all/FlaredTrousersItem';
|
|
43
|
-
import { GildedFullHelm } from './all/GildedFullHelm';
|
|
44
|
-
import { GildedLegs } from './all/GildedLegs';
|
|
45
|
-
import { GildedPlatebody } from './all/GildedPlatebody';
|
|
46
|
-
import { GoldenApron } from './all/GoldenApron';
|
|
47
|
-
import { GoldenChefsHat } from './all/GoldenChefsHat';
|
|
48
|
-
import { GreenDHideBody } from './all/GreenDHideBody';
|
|
49
|
-
import { HamJoint } from './all/HamJoint';
|
|
50
|
-
import { IronBoots } from './all/IronBoots';
|
|
51
|
-
import { IronFullHelm } from './all/IronFullHelm';
|
|
52
|
-
import { IronFullHelmT } from './all/IronFullHelmT';
|
|
53
|
-
import { IronPlatebody } from './all/IronPlatebody';
|
|
54
|
-
import { IronPlatebodyT } from './all/IronPlatebodyT';
|
|
55
|
-
import { IronPlatelegs } from './all/IronPlatelegs';
|
|
56
|
-
import { LawRune } from './all/LawRune';
|
|
57
|
-
import { MasterScrollBookEmpty } from './all/MasterScrollBookEmpty';
|
|
58
|
-
import { MindRune } from './all/MindRune';
|
|
59
|
-
import { MithrilBoots } from './all/MithrilBoots';
|
|
60
|
-
import { MithrilFullHelm } from './all/MithrilFullHelm';
|
|
61
|
-
import { MithrilPlatebody } from './all/MithrilPlatebody';
|
|
62
|
-
import { MithrilPlatelegs } from './all/MithrilPlatelegs';
|
|
63
|
-
import { MithrilShieldT } from './all/MithrilShieldT';
|
|
64
|
-
import { MonksRobeG } from './all/MonksRobeG';
|
|
65
|
-
import { MonksRobeTopG } from './all/MonksRobeTopG';
|
|
66
|
-
import { NatureRune } from './all/NatureRune';
|
|
67
|
-
import { RainBow } from './all/RainBow';
|
|
68
|
-
import { RangerBoots } from './all/RangerBoots';
|
|
69
|
-
import { RangerGloves } from './all/RangerGloves';
|
|
70
|
-
import { RangerLegs } from './all/RangerLegs';
|
|
71
|
-
import { RangerTunic } from './all/RangerTunic';
|
|
72
|
-
import { RedDHideBody } from './all/RedDHideBody';
|
|
73
|
-
import { RedDHideChaps } from './all/RedDHideChaps';
|
|
74
|
-
import { RedElegantShirt } from './all/RedElegantShirt';
|
|
75
|
-
import { RuneFullHelm } from './all/RuneFullHelm';
|
|
76
|
-
import { RuneFullHelmT } from './all/RuneFullHelmT';
|
|
77
|
-
import { RuneMediumHelm } from './all/RuneMediumHelm';
|
|
78
|
-
import { RunePlatebody } from './all/RunePlatebody';
|
|
79
|
-
import { RunePlatebodyT } from './all/RunePlatebodyT';
|
|
80
|
-
import { RunePlatelegs } from './all/RunePlatelegs';
|
|
81
|
-
import { RuniteBar } from './all/RuniteBar';
|
|
82
|
-
import { Salmon } from './all/Salmon';
|
|
83
|
-
import { StaffOfAir } from './all/StaffOfAir';
|
|
84
|
-
import { StaffOfBobTheCat } from './all/StaffOfBobTheCat';
|
|
85
|
-
import { SteelBoots } from './all/SteelBoots';
|
|
86
|
-
import { SteelFullHelm } from './all/SteelFullHelm';
|
|
87
|
-
import { SteelFullHelmT } from './all/SteelFullHelmT';
|
|
88
|
-
import { SteelPickaxe } from './all/SteelPickaxe';
|
|
89
|
-
import { SteelPlatebody } from './all/SteelPlatebody';
|
|
90
|
-
import { SteelPlatebodyT } from './all/SteelPlatebodyT';
|
|
91
|
-
import { SteelPlatelegs } from './all/SteelPlatelegs';
|
|
92
|
-
import { StudiedBody } from './all/StudiedBody';
|
|
93
|
-
import { StudiedChaps } from './all/StudiedChaps';
|
|
94
|
-
import { TeamCapeI } from './all/TeamCapeI';
|
|
95
|
-
import { TeamCapeX } from './all/TeamCapeX';
|
|
96
|
-
import { TeamCapeZero } from './all/TeamCapeZero';
|
|
97
|
-
import { ThammaronsSceptre } from './all/ThammaronsSceptre';
|
|
98
|
-
import { ThirdAgeLongsword } from './all/ThirdAgeLongsword';
|
|
99
|
-
import { ThirdAgePlatebody } from './all/ThirdAgePlatebody';
|
|
100
|
-
import { ThirdAgePlatelegs } from './all/ThirdAgePlatelegs';
|
|
101
|
-
import { TreasonousRing } from './all/TreasonousRing';
|
|
102
|
-
import { Trout } from './all/Trout';
|
|
103
|
-
import { TwistedBow } from './all/TwistedBow';
|
|
104
|
-
import { UncutDiamond } from './all/UncutDiamond';
|
|
105
|
-
import { UncutEmerald } from './all/UncutEmerald';
|
|
106
|
-
import { UncutRuby } from './all/UncutRuby';
|
|
107
|
-
import { UncutSapphire } from './all/UncutSapphire';
|
|
108
|
-
import { WaterRune } from './all/WaterRune';
|
|
109
|
-
import { WillowCompBow } from './all/WillowCompBow';
|
|
110
|
-
import { WillowLongbow } from './all/WillowLongbow';
|
|
111
|
-
import { WillowShortbow } from './all/WillowShortbow';
|
|
112
|
-
import { WoodenShieldG } from './all/WoodenShieldG';
|
|
113
|
-
/**
|
|
114
|
-
* Reward odds mapping for Beginner clue scrolls
|
|
115
|
-
* Items are organized with their rarity tiers (denominator)
|
|
116
|
-
*/
|
|
117
|
-
export const BEGINNER_REWARDS = {
|
|
118
|
-
'Iron full helm': { item: IronFullHelm, rarity: 10 },
|
|
119
|
-
'Iron platebody': { item: IronPlatebody, rarity: 10 },
|
|
120
|
-
'Iron platelegs': { item: IronPlatelegs, rarity: 10 },
|
|
121
|
-
'Iron boots': { item: IronBoots, rarity: 10 },
|
|
122
|
-
'Steel full helm': { item: SteelFullHelm, rarity: 15 },
|
|
123
|
-
'Steel platebody': { item: SteelPlatebody, rarity: 15 },
|
|
124
|
-
'Steel platelegs': { item: SteelPlatelegs, rarity: 15 },
|
|
125
|
-
'Steel boots': { item: SteelBoots, rarity: 15 },
|
|
126
|
-
'Mithril full helm': { item: MithrilFullHelm, rarity: 25 },
|
|
127
|
-
'Mithril platebody': { item: MithrilPlatebody, rarity: 25 },
|
|
128
|
-
'Mithril platelegs': { item: MithrilPlatelegs, rarity: 25 },
|
|
129
|
-
'Mithril boots': { item: MithrilBoots, rarity: 25 },
|
|
130
|
-
'Uncut sapphire': { item: UncutSapphire, rarity: 50 },
|
|
131
|
-
'Uncut emerald': { item: UncutEmerald, rarity: 50 },
|
|
132
|
-
'Uncut ruby': { item: UncutRuby, rarity: 50 },
|
|
133
|
-
'Uncut diamond': { item: UncutDiamond, rarity: 100 },
|
|
134
|
-
};
|
|
135
|
-
/**
|
|
136
|
-
* Reward odds mapping for Easy clue scrolls
|
|
137
|
-
*/
|
|
138
|
-
export const EASY_REWARDS = {
|
|
139
|
-
'Black full helm': { item: BlackFullHelm, rarity: 36 },
|
|
140
|
-
'Black platebody': { item: BlackPlatebody, rarity: 36 },
|
|
141
|
-
'Black platelegs': { item: BlackPlatelegs, rarity: 36 },
|
|
142
|
-
'Black longsword': { item: BlackLongsword, rarity: 36 },
|
|
143
|
-
'Black battleaxe': { item: BlackBattleaxe, rarity: 36 },
|
|
144
|
-
'Black axe': { item: BlackAxe, rarity: 36 },
|
|
145
|
-
'Black dagger': { item: BlackDagger, rarity: 36 },
|
|
146
|
-
'Steel pickaxe': { item: SteelPickaxe, rarity: 36 },
|
|
147
|
-
'Black pickaxe': { item: BlackPickaxe, rarity: 36 },
|
|
148
|
-
'Coif': { item: Coif, rarity: 36 },
|
|
149
|
-
'Studded body': { item: StudiedBody, rarity: 36 },
|
|
150
|
-
'Studded chaps': { item: StudiedChaps, rarity: 36 },
|
|
151
|
-
'Willow shortbow': { item: WillowShortbow, rarity: 36 },
|
|
152
|
-
'Staff of air': { item: StaffOfAir, rarity: 36 },
|
|
153
|
-
'Air rune': { item: AirRune, rarity: 36 },
|
|
154
|
-
'Mind rune': { item: MindRune, rarity: 36 },
|
|
155
|
-
'Water rune': { item: WaterRune, rarity: 36 },
|
|
156
|
-
'Earth rune': { item: EarthRune, rarity: 36 },
|
|
157
|
-
'Fire rune': { item: FireRune, rarity: 36 },
|
|
158
|
-
'Body rune': { item: BodyRune, rarity: 36 },
|
|
159
|
-
'Chaos rune': { item: ChaosRune, rarity: 36 },
|
|
160
|
-
'Nature rune': { item: NatureRune, rarity: 36 },
|
|
161
|
-
'Law rune': { item: LawRune, rarity: 36 },
|
|
162
|
-
'Trout': { item: Trout, rarity: 36 },
|
|
163
|
-
'Salmon': { item: Salmon, rarity: 36 },
|
|
164
|
-
'Coins (50-200)': { item: Coins, rarity: 36 },
|
|
165
|
-
'Willow longbow': { item: WillowLongbow, rarity: 40 },
|
|
166
|
-
'Amulet of magic': { item: AmuletOfMagic, rarity: 40 },
|
|
167
|
-
'Willow comp bow': { item: WillowCompBow, rarity: 360 },
|
|
168
|
-
'Amulet of magic (t)': { item: AmuletOfMagicT, rarity: 360 },
|
|
169
|
-
'Wooden shield (g)': { item: WoodenShieldG, rarity: 1404 },
|
|
170
|
-
'Black full helm (t)': { item: BlackFullHelmT, rarity: 1404 },
|
|
171
|
-
'Black platebody (t)': { item: BlackPlatebodyT, rarity: 1404 },
|
|
172
|
-
'Black platelegs (t)': { item: BlackPlatelegsT, rarity: 1404 },
|
|
173
|
-
'Steel full helm (t)': { item: SteelFullHelmT, rarity: 1404 },
|
|
174
|
-
'Steel platebody (t)': { item: SteelPlatebodyT, rarity: 1404 },
|
|
175
|
-
'Iron full helm (t)': { item: IronFullHelmT, rarity: 1404 },
|
|
176
|
-
'Iron platebody (t)': { item: IronPlatebodyT, rarity: 1404 },
|
|
177
|
-
'Flared trousers': { item: FlaredTrousers, rarity: 1404 },
|
|
178
|
-
'Ham joint': { item: HamJoint, rarity: 1404 },
|
|
179
|
-
'Staff of bob the cat': { item: StaffOfBobTheCat, rarity: 1404 },
|
|
180
|
-
'Amulet of power (t)': { item: AmuletOfPowerT, rarity: 1404 },
|
|
181
|
-
'Rain bow': { item: RainBow, rarity: 1404 },
|
|
182
|
-
'Master scroll book (empty)': { item: MasterScrollBookEmpty, rarity: 1404 },
|
|
183
|
-
'Golden chef\'s hat': { item: GoldenChefsHat, rarity: 2808 },
|
|
184
|
-
'Golden apron': { item: GoldenApron, rarity: 2808 },
|
|
185
|
-
'Red elegant shirt': { item: RedElegantShirt, rarity: 2808 },
|
|
186
|
-
'Team cape zero': { item: TeamCapeZero, rarity: 5616 },
|
|
187
|
-
'Team cape i': { item: TeamCapeI, rarity: 5616 },
|
|
188
|
-
'Team cape x': { item: TeamCapeX, rarity: 5616 },
|
|
189
|
-
'Cape of skulls': { item: CapeOfSkulls, rarity: 5616 },
|
|
190
|
-
'Monk\'s robe top (g)': { item: MonksRobeTopG, rarity: 14040 },
|
|
191
|
-
'Monk\'s robe (g)': { item: MonksRobeG, rarity: 14040 },
|
|
192
|
-
};
|
|
193
|
-
/**
|
|
194
|
-
* Reward odds mapping for Medium clue scrolls
|
|
195
|
-
*/
|
|
196
|
-
export const MEDIUM_REWARDS = {
|
|
197
|
-
'Mithril platebody': { item: MithrilPlatebody, rarity: 40 },
|
|
198
|
-
'Mithril platelegs': { item: MithrilPlatelegs, rarity: 40 },
|
|
199
|
-
'Adamant platebody': { item: AdamantPlatebody, rarity: 40 },
|
|
200
|
-
'Adamant platelegs': { item: AdamantPlatelegs, rarity: 40 },
|
|
201
|
-
'Rune medium helm': { item: RuneMediumHelm, rarity: 60 },
|
|
202
|
-
'Rune full helm': { item: RuneFullHelm, rarity: 60 },
|
|
203
|
-
'Ranger tunic': { item: RangerTunic, rarity: 60 },
|
|
204
|
-
'Mithril shield (t)': { item: MithrilShieldT, rarity: 240 },
|
|
205
|
-
'Adamant shield (g)': { item: AdamantShieldG, rarity: 240 },
|
|
206
|
-
'Green d\'hide body': { item: GreenDHideBody, rarity: 600 },
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* Reward odds mapping for Hard clue scrolls
|
|
210
|
-
*/
|
|
211
|
-
export const HARD_REWARDS = {
|
|
212
|
-
'Rune full helm': { item: RuneFullHelm, rarity: 48 },
|
|
213
|
-
'Rune platebody': { item: RunePlatebody, rarity: 48 },
|
|
214
|
-
'Rune platelegs': { item: RunePlatelegs, rarity: 48 },
|
|
215
|
-
'Runite bar': { item: RuniteBar, rarity: 48 },
|
|
216
|
-
'Blue d\'hide body': { item: BlueDHideBody, rarity: 64 },
|
|
217
|
-
'Blue d\'hide chaps': { item: BlueDHideChaps, rarity: 64 },
|
|
218
|
-
'Dragon medium helm': { item: DragonMediumHelm, rarity: 80 },
|
|
219
|
-
'Amulet of the void': { item: AmuletOfTheVoid, rarity: 108 },
|
|
220
|
-
'Rune full helm (t)': { item: RuneFullHelmT, rarity: 240 },
|
|
221
|
-
'Rune platebody (t)': { item: RunePlatebodyT, rarity: 240 },
|
|
222
|
-
'Ranger boots': { item: RangerBoots, rarity: 336 },
|
|
223
|
-
'Ranger gloves': { item: RangerGloves, rarity: 336 },
|
|
224
|
-
'Ranger tunic': { item: RangerTunic, rarity: 336 },
|
|
225
|
-
'Ranger legs': { item: RangerLegs, rarity: 336 },
|
|
226
|
-
};
|
|
227
|
-
/**
|
|
228
|
-
* Reward odds mapping for Elite clue scrolls
|
|
229
|
-
*/
|
|
230
|
-
export const ELITE_REWARDS = {
|
|
231
|
-
'Rune full helm': { item: RuneFullHelm, rarity: 36 },
|
|
232
|
-
'Dragon platebody': { item: DragonPlatebody, rarity: 50 },
|
|
233
|
-
'Dragon platelegs': { item: DragonPlatelegs, rarity: 50 },
|
|
234
|
-
'Dragon medium helm': { item: DragonMediumHelm, rarity: 50 },
|
|
235
|
-
'Red d\'hide body': { item: RedDHideBody, rarity: 45 },
|
|
236
|
-
'Red d\'hide chaps': { item: RedDHideChaps, rarity: 45 },
|
|
237
|
-
'Craw\'s bow': { item: CrawsBow, rarity: 360 },
|
|
238
|
-
'Thammaron\'s sceptre': { item: ThammaronsSceptre, rarity: 360 },
|
|
239
|
-
'Treasonous ring': { item: TreasonousRing, rarity: 360 },
|
|
240
|
-
};
|
|
241
|
-
/**
|
|
242
|
-
* Reward odds mapping for Master clue scrolls
|
|
243
|
-
*/
|
|
244
|
-
export const MASTER_REWARDS = {
|
|
245
|
-
'Gilded platebody': { item: GildedPlatebody, rarity: 12 },
|
|
246
|
-
'Gilded platelegs': { item: GildedLegs, rarity: 12 },
|
|
247
|
-
'Gilded full helm': { item: GildedFullHelm, rarity: 12 },
|
|
248
|
-
'Dragon full helm': { item: DragonFullHelm, rarity: 30 },
|
|
249
|
-
'Dragon platebody': { item: DragonPlatebody, rarity: 30 },
|
|
250
|
-
'Dragon platelegs': { item: DragonPlatelegs, rarity: 30 },
|
|
251
|
-
'Dragon boots': { item: DragonBoots, rarity: 30 },
|
|
252
|
-
'Twisted bow': { item: TwistedBow, rarity: 800 },
|
|
253
|
-
'Ancestral robe top': { item: AncestralRobeTop, rarity: 800 },
|
|
254
|
-
'Ancestral robe bottom': { item: AncestralRobeBottom, rarity: 800 },
|
|
255
|
-
'3rd age longsword': { item: ThirdAgeLongsword, rarity: 1000 },
|
|
256
|
-
'3rd age platebody': { item: ThirdAgePlatebody, rarity: 1000 },
|
|
257
|
-
'3rd age platelegs': { item: ThirdAgePlatelegs, rarity: 1000 },
|
|
258
|
-
};
|
|
259
|
-
/**
|
|
260
|
-
* Gets all reward odds for a specific clue tier
|
|
261
|
-
*/
|
|
262
|
-
export function getClueRewardsByTier(tier) {
|
|
263
|
-
switch (tier.toLowerCase()) {
|
|
264
|
-
case 'beginner':
|
|
265
|
-
return BEGINNER_REWARDS;
|
|
266
|
-
case 'easy':
|
|
267
|
-
return EASY_REWARDS;
|
|
268
|
-
case 'medium':
|
|
269
|
-
return MEDIUM_REWARDS;
|
|
270
|
-
case 'hard':
|
|
271
|
-
return HARD_REWARDS;
|
|
272
|
-
case 'elite':
|
|
273
|
-
return ELITE_REWARDS;
|
|
274
|
-
case 'master':
|
|
275
|
-
return MASTER_REWARDS;
|
|
276
|
-
default:
|
|
277
|
-
throw new Error(`Unknown clue tier: ${tier}`);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* Gets all items for a specific tier as an array
|
|
282
|
-
*/
|
|
283
|
-
export function getClueItemsList(tier) {
|
|
284
|
-
const rewards = getClueRewardsByTier(tier);
|
|
285
|
-
return Object.values(rewards).map(r => r.item);
|
|
286
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Item } from '../Item';
|
|
2
|
-
const studiedChapsData = {
|
|
3
|
-
id: 1333,
|
|
4
|
-
name: 'Studded chaps',
|
|
5
|
-
iconUrl: '/assets/items/studded-chaps.png',
|
|
6
|
-
examine: 'Leather chaps with metal studs.',
|
|
7
|
-
value: 50,
|
|
8
|
-
highAlch: 30,
|
|
9
|
-
lowAlch: 20,
|
|
10
|
-
weight: 2.721,
|
|
11
|
-
members: true,
|
|
12
|
-
tradeable: true,
|
|
13
|
-
equipable: true,
|
|
14
|
-
releaseDate: '2001-12-10',
|
|
15
|
-
destroy: 'Drop',
|
|
16
|
-
questItem: false,
|
|
17
|
-
stackable: false,
|
|
18
|
-
noted: false,
|
|
19
|
-
officialWikiUrl: 'https://oldschool.runescape.wiki/w/Studded_chaps',
|
|
20
|
-
attackStab: 0,
|
|
21
|
-
attackSlash: 0,
|
|
22
|
-
attackCrush: 0,
|
|
23
|
-
attackRanged: 0,
|
|
24
|
-
attackMagic: -5,
|
|
25
|
-
defenceStab: 15,
|
|
26
|
-
defenceSlash: 18,
|
|
27
|
-
defenceCrush: 12,
|
|
28
|
-
defenceRanged: 15,
|
|
29
|
-
defenceMagic: -3,
|
|
30
|
-
strength: 0,
|
|
31
|
-
rangedStrength: 0,
|
|
32
|
-
magicDamage: 0,
|
|
33
|
-
prayer: 0,
|
|
34
|
-
};
|
|
35
|
-
export const StudiedChaps = Item.fromJson(studiedChapsData);
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
# Made by RuneLite Model-Dumper Plugin
|
|
2
|
-
mtllib Item Yellow partyhat 2026-03-24_23-28-34.mtl
|
|
3
|
-
o Item Yellow partyhat 2026-03-24_23-28-34
|
|
4
|
-
v 0 7 9
|
|
5
|
-
v 7 7 9
|
|
6
|
-
v 7 2 9
|
|
7
|
-
v 0 2 9
|
|
8
|
-
v -7 7 9
|
|
9
|
-
v 0 10 10
|
|
10
|
-
v 5 17 11
|
|
11
|
-
v -7 2 9
|
|
12
|
-
v -10 3 -2
|
|
13
|
-
v -10 9 -2
|
|
14
|
-
v -10 17 4
|
|
15
|
-
v 10 9 -2
|
|
16
|
-
v 10 3 -2
|
|
17
|
-
v 10 17 4
|
|
18
|
-
v 8 7 -12
|
|
19
|
-
v 7 0 -11
|
|
20
|
-
v 9 17 -7
|
|
21
|
-
v -7 0 -11
|
|
22
|
-
v -8 7 -12
|
|
23
|
-
v -10 17 -7
|
|
24
|
-
v 0 7 -14
|
|
25
|
-
v 0 -1 -13
|
|
26
|
-
v 5 17 -13
|
|
27
|
-
v -5 17 -13
|
|
28
|
-
v -5 17 11
|
|
29
|
-
v 7 9 9
|
|
30
|
-
v 0 9 9
|
|
31
|
-
v -7 9 9
|
|
32
|
-
v -10 10 -2
|
|
33
|
-
v -8 9 -12
|
|
34
|
-
v 0 9 -14
|
|
35
|
-
v 8 9 -12
|
|
36
|
-
v 10 10 -2
|
|
37
|
-
v -5 19 11
|
|
38
|
-
v 0 12 10
|
|
39
|
-
v 5 19 11
|
|
40
|
-
v -10 19 4
|
|
41
|
-
v -10 19 -7
|
|
42
|
-
v -5 19 -13
|
|
43
|
-
v 5 19 -13
|
|
44
|
-
v 9 19 -7
|
|
45
|
-
v 10 19 4
|
|
46
|
-
usemtl c0
|
|
47
|
-
f 1 2 3
|
|
48
|
-
usemtl c1
|
|
49
|
-
f 1 3 4
|
|
50
|
-
usemtl c2
|
|
51
|
-
f 1 4 5
|
|
52
|
-
usemtl c3
|
|
53
|
-
f 1 5 6
|
|
54
|
-
usemtl c4
|
|
55
|
-
f 1 6 2
|
|
56
|
-
usemtl c5
|
|
57
|
-
f 2 6 7
|
|
58
|
-
usemtl c6
|
|
59
|
-
f 4 8 5
|
|
60
|
-
usemtl c7
|
|
61
|
-
f 5 8 9
|
|
62
|
-
usemtl c8
|
|
63
|
-
f 5 9 10
|
|
64
|
-
usemtl c9
|
|
65
|
-
f 5 10 11
|
|
66
|
-
usemtl c10
|
|
67
|
-
f 12 13 3
|
|
68
|
-
usemtl c11
|
|
69
|
-
f 12 3 2
|
|
70
|
-
usemtl c12
|
|
71
|
-
f 12 2 14
|
|
72
|
-
usemtl c13
|
|
73
|
-
f 15 16 13
|
|
74
|
-
usemtl c14
|
|
75
|
-
f 15 13 12
|
|
76
|
-
usemtl c15
|
|
77
|
-
f 15 12 17
|
|
78
|
-
usemtl c16
|
|
79
|
-
f 10 9 18
|
|
80
|
-
usemtl c17
|
|
81
|
-
f 10 18 19
|
|
82
|
-
usemtl c18
|
|
83
|
-
f 10 19 20
|
|
84
|
-
usemtl c19
|
|
85
|
-
f 21 22 16
|
|
86
|
-
usemtl c20
|
|
87
|
-
f 21 16 15
|
|
88
|
-
usemtl c21
|
|
89
|
-
f 21 15 23
|
|
90
|
-
usemtl c22
|
|
91
|
-
f 19 18 22
|
|
92
|
-
usemtl c23
|
|
93
|
-
f 19 22 21
|
|
94
|
-
usemtl c24
|
|
95
|
-
f 19 21 24
|
|
96
|
-
usemtl c9
|
|
97
|
-
f 6 5 25
|
|
98
|
-
usemtl c25
|
|
99
|
-
f 4 3 26
|
|
100
|
-
usemtl c26
|
|
101
|
-
f 4 26 27
|
|
102
|
-
usemtl c27
|
|
103
|
-
f 4 27 8
|
|
104
|
-
usemtl c28
|
|
105
|
-
f 8 27 28
|
|
106
|
-
usemtl c29
|
|
107
|
-
f 8 28 29
|
|
108
|
-
usemtl c30
|
|
109
|
-
f 8 29 9
|
|
110
|
-
usemtl c31
|
|
111
|
-
f 9 29 30
|
|
112
|
-
usemtl c32
|
|
113
|
-
f 9 30 18
|
|
114
|
-
usemtl c33
|
|
115
|
-
f 18 30 31
|
|
116
|
-
usemtl c16
|
|
117
|
-
f 18 31 22
|
|
118
|
-
usemtl c8
|
|
119
|
-
f 22 31 32
|
|
120
|
-
usemtl c34
|
|
121
|
-
f 22 32 16
|
|
122
|
-
usemtl c2
|
|
123
|
-
f 16 32 33
|
|
124
|
-
usemtl c35
|
|
125
|
-
f 16 33 13
|
|
126
|
-
usemtl c36
|
|
127
|
-
f 13 33 26
|
|
128
|
-
usemtl c37
|
|
129
|
-
f 13 26 3
|
|
130
|
-
usemtl c38
|
|
131
|
-
f 34 28 35
|
|
132
|
-
usemtl c39
|
|
133
|
-
f 35 28 27
|
|
134
|
-
usemtl c40
|
|
135
|
-
f 35 27 26
|
|
136
|
-
usemtl c41
|
|
137
|
-
f 35 26 36
|
|
138
|
-
usemtl c42
|
|
139
|
-
f 28 37 29
|
|
140
|
-
usemtl c43
|
|
141
|
-
f 29 38 30
|
|
142
|
-
usemtl c44
|
|
143
|
-
f 30 39 31
|
|
144
|
-
usemtl c9
|
|
145
|
-
f 31 40 32
|
|
146
|
-
usemtl c45
|
|
147
|
-
f 32 41 33
|
|
148
|
-
usemtl c46
|
|
149
|
-
f 33 42 26
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { SlayerMaster } from './SlayerMaster';
|
|
2
|
-
import { chaeldarTasks } from './task/ChaelderTasks';
|
|
3
|
-
import { duradelTasks } from './task/DuradelTasks';
|
|
4
|
-
import { konarTasks } from './task/KonarTasks';
|
|
5
|
-
import { krystiliaTasks } from './task/KrystiliaTasks';
|
|
6
|
-
import { mazchnaTasks } from './task/MazchnaTasks';
|
|
7
|
-
import { nieveTasks } from './task/NieveTasks';
|
|
8
|
-
import { spriaTasks } from './task/SpriaTasks';
|
|
9
|
-
import { turealTasks } from './task/TurealTasks';
|
|
10
|
-
import { vannakaTasks } from './task/VannakaTasks';
|
|
11
|
-
// TODO: Add the rest of the tasks for each master
|
|
12
|
-
// TODO: Add the rest of the masters
|
|
13
|
-
// TODO: Ensure points are correct
|
|
14
|
-
// Mazchna: https://oldschool.runescape.wiki/w/Mazchna
|
|
15
|
-
export const Mazchna = new SlayerMaster('Mazchna', mazchnaTasks, 'Canifis', 0, 'https://oldschool.runescape.wiki/w/Mazchna', {
|
|
16
|
-
1: 2,
|
|
17
|
-
10: 5,
|
|
18
|
-
100: 50,
|
|
19
|
-
1000: 100,
|
|
20
|
-
250: 70,
|
|
21
|
-
50: 15,
|
|
22
|
-
}, undefined);
|
|
23
|
-
// Spria: https://oldschool.runescape.wiki/w/Spria
|
|
24
|
-
export const Spria = new SlayerMaster('Spria', spriaTasks, 'Draynor Village', 0, 'https://oldschool.runescape.wiki/w/Spria', {
|
|
25
|
-
1: 2,
|
|
26
|
-
10: 5,
|
|
27
|
-
100: 50,
|
|
28
|
-
1000: 100,
|
|
29
|
-
250: 70,
|
|
30
|
-
50: 15,
|
|
31
|
-
}, undefined);
|
|
32
|
-
// Tureal: https://oldschool.runescape.wiki/w/Turael
|
|
33
|
-
export const Turael = new SlayerMaster('Turael', turealTasks, 'Burthope', 0, 'https://oldschool.runescape.wiki/w/Turael', {
|
|
34
|
-
1: 2,
|
|
35
|
-
10: 5,
|
|
36
|
-
100: 50,
|
|
37
|
-
1000: 100,
|
|
38
|
-
250: 70,
|
|
39
|
-
50: 15,
|
|
40
|
-
}, undefined);
|
|
41
|
-
// Vannaka: https://oldschool.runescape.wiki/w/Vannaka
|
|
42
|
-
export const Vannaka = new SlayerMaster('Vannaka', vannakaTasks, 'Edgeville Dungeon', 0, 'https://oldschool.runescape.wiki/w/Vannaka', {
|
|
43
|
-
1: 2,
|
|
44
|
-
10: 5,
|
|
45
|
-
100: 50,
|
|
46
|
-
1000: 100,
|
|
47
|
-
250: 70,
|
|
48
|
-
50: 15,
|
|
49
|
-
}, undefined);
|
|
50
|
-
// Konar Quo Maten: https://oldschool.runescape.wiki/w/Konar_Quo_Maten
|
|
51
|
-
export const KonarQuoMaten = new SlayerMaster('Konar Quo Maten', konarTasks, 'Mount Karuulm', 0, 'https://oldschool.runescape.wiki/w/Konar_Quo_Maten', {
|
|
52
|
-
1: 2,
|
|
53
|
-
10: 5,
|
|
54
|
-
100: 50,
|
|
55
|
-
1000: 100,
|
|
56
|
-
250: 70,
|
|
57
|
-
50: 15,
|
|
58
|
-
}, undefined);
|
|
59
|
-
// Krystilia: https://oldschool.runescape.wiki/w/Krystilia
|
|
60
|
-
export const Krystilia = new SlayerMaster('Krystilia', krystiliaTasks, 'Edgeville', 0, 'https://oldschool.runescape.wiki/w/Krystilia', {
|
|
61
|
-
1: 2,
|
|
62
|
-
10: 5,
|
|
63
|
-
100: 50,
|
|
64
|
-
1000: 100,
|
|
65
|
-
250: 70,
|
|
66
|
-
50: 15,
|
|
67
|
-
}, undefined);
|
|
68
|
-
// Nieve: https://oldschool.runescape.wiki/w/Nieve
|
|
69
|
-
export const Nieve = new SlayerMaster('Nieve', nieveTasks, "Nieve's Cave", 0, 'https://oldschool.runescape.wiki/w/Nieve', {
|
|
70
|
-
1: 12,
|
|
71
|
-
10: 60,
|
|
72
|
-
100: 300,
|
|
73
|
-
1000: 600,
|
|
74
|
-
250: 420,
|
|
75
|
-
50: 180,
|
|
76
|
-
}, {
|
|
77
|
-
1: 15,
|
|
78
|
-
10: 75,
|
|
79
|
-
100: 375,
|
|
80
|
-
1000: 750,
|
|
81
|
-
250: 525,
|
|
82
|
-
50: 225,
|
|
83
|
-
});
|
|
84
|
-
// Duradel: https://oldschool.runescape.wiki/w/Duradel
|
|
85
|
-
export const Duradel = new SlayerMaster('Duradel', duradelTasks, 'Shilo Village', 85, 'https://oldschool.runescape.wiki/w/Duradel', {
|
|
86
|
-
1: 15,
|
|
87
|
-
10: 75,
|
|
88
|
-
100: 375,
|
|
89
|
-
1000: 750,
|
|
90
|
-
250: 525,
|
|
91
|
-
50: 225,
|
|
92
|
-
}, undefined);
|
|
93
|
-
// Chaeldar: https://oldschool.runescape.wiki/w/Chaeldar
|
|
94
|
-
export const Chaeldar = new SlayerMaster('Chaeldar', chaeldarTasks, 'Zanaris', 0, 'https://oldschool.runescape.wiki/w/Chaeldar', {
|
|
95
|
-
1: 10,
|
|
96
|
-
10: 50,
|
|
97
|
-
100: 250,
|
|
98
|
-
1000: 500,
|
|
99
|
-
250: 350,
|
|
100
|
-
50: 150,
|
|
101
|
-
}, undefined);
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helper class for OSRS Clue Scrolls
|
|
3
|
-
* Handles casket opening simulation with accurate wiki-based reward odds
|
|
4
|
-
*/
|
|
5
|
-
import { getClueRewardsByTier, } from '../model/Item/ClueScrollRewards';
|
|
6
|
-
/**
|
|
7
|
-
* Main ClueScrollHelper class that provides methods to simulate clue scroll rewards, calculate probabilities, and list possible rewards
|
|
8
|
-
*
|
|
9
|
-
* Reference: https://oldschool.runescape.wiki/w/Clue_scrolls
|
|
10
|
-
*/
|
|
11
|
-
export class ClueScrollHelper {
|
|
12
|
-
/**
|
|
13
|
-
* Select a random reward based on rarity tiers
|
|
14
|
-
* Uses item rarity values to create weighted selection
|
|
15
|
-
*/
|
|
16
|
-
static selectRandomReward(rewards) {
|
|
17
|
-
const items = [];
|
|
18
|
-
let totalWeight = 0;
|
|
19
|
-
for (const { item, rarity } of Object.values(rewards)) {
|
|
20
|
-
const probability = 1 / rarity;
|
|
21
|
-
items.push({ item, probability });
|
|
22
|
-
totalWeight += probability;
|
|
23
|
-
}
|
|
24
|
-
const random = Math.random() * totalWeight;
|
|
25
|
-
let cumulative = 0;
|
|
26
|
-
for (const { item, probability } of items) {
|
|
27
|
-
cumulative += probability;
|
|
28
|
-
if (random < cumulative) {
|
|
29
|
-
return item;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
// Fallback to last item if rounding errors occur
|
|
33
|
-
return items[items.length - 1].item;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Simulate opening a clue casket and return a random reward item
|
|
37
|
-
* @param tier The difficulty tier of the clue scroll
|
|
38
|
-
* @returns The Item object that is the reward
|
|
39
|
-
*/
|
|
40
|
-
static openCasket(tier) {
|
|
41
|
-
const rewards = getClueRewardsByTier(tier);
|
|
42
|
-
return this.selectRandomReward(rewards);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get the probability of obtaining a specific item from a casket as a fraction
|
|
46
|
-
* @param tier The difficulty tier
|
|
47
|
-
* @param itemName The item name to check probability for
|
|
48
|
-
* @returns The probability as a fraction (e.g., 0.0278 for 1/36)
|
|
49
|
-
*/
|
|
50
|
-
static getItemProbability(tier, itemName) {
|
|
51
|
-
const rewards = getClueRewardsByTier(tier);
|
|
52
|
-
const reward = rewards[itemName];
|
|
53
|
-
return reward ? 1 / reward.rarity : 0;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get the rarity denominator (X in "1 in X") for an item
|
|
57
|
-
*/
|
|
58
|
-
static getItemRarity(tier, itemName) {
|
|
59
|
-
const rewards = getClueRewardsByTier(tier);
|
|
60
|
-
const reward = rewards[itemName];
|
|
61
|
-
return reward ? reward.rarity : 0;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Get all possible rewards for a tier as Item objects
|
|
65
|
-
*/
|
|
66
|
-
static getPossibleRewards(tier) {
|
|
67
|
-
const rewards = getClueRewardsByTier(tier);
|
|
68
|
-
return Object.values(rewards).map(r => r.item);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get all possible reward items names for a tier
|
|
72
|
-
*/
|
|
73
|
-
static getPossibleRewardNames(tier) {
|
|
74
|
-
const rewards = getClueRewardsByTier(tier);
|
|
75
|
-
return Object.keys(rewards);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Simulate opening multiple caskets
|
|
79
|
-
* @param tier The clue tier
|
|
80
|
-
* @param count Number of caskets to open
|
|
81
|
-
* @returns Array of reward Item objects
|
|
82
|
-
*/
|
|
83
|
-
static simulateMultiple(tier, count) {
|
|
84
|
-
const rewards = [];
|
|
85
|
-
for (let i = 0; i < count; i++) {
|
|
86
|
-
rewards.push(this.openCasket(tier));
|
|
87
|
-
}
|
|
88
|
-
return rewards;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get reward statistics for a tier
|
|
92
|
-
*/
|
|
93
|
-
static getRewardStats(tier) {
|
|
94
|
-
const rewards = getClueRewardsByTier(tier);
|
|
95
|
-
const items = Object.values(rewards);
|
|
96
|
-
return {
|
|
97
|
-
tier,
|
|
98
|
-
totalUnique: items.length,
|
|
99
|
-
rareItems: items.filter(r => r.rarity > 100).length,
|
|
100
|
-
commonItems: items.filter(r => r.rarity <= 50).length,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|