From 6f4da3fd34f3cc26459626438a807995acda36a3 Mon Sep 17 00:00:00 2001 From: geheur <41499327+geheur@users.noreply.github.com> Date: Mon, 27 Sep 2021 19:51:48 -0700 Subject: [PATCH 01/14] menu swapper: add extra op swapping for deposit box --- .../menuentryswapper/MenuEntrySwapperPlugin.java | 12 +++++++----- .../plugins/menuentryswapper/ShiftDepositMode.java | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 5e632a991e..46d64e8785 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -581,18 +581,21 @@ public class MenuEntrySwapperPlugin extends Plugin // widget ticking and prior to our client tick event. This is because drag start // is what builds the context menu row which is what the eventual click will use + final int widgetGroupId = WidgetInfo.TO_GROUP(menuEntryAdded.getActionParam1()); + + final boolean isDepositBoxPlayerInventory = widgetGroupId == WidgetID.DEPOSIT_BOX_GROUP_ID; + final boolean isChambersOfXericStorageUnitPlayerInventory = widgetGroupId == WidgetID.CHAMBERS_OF_XERIC_STORAGE_UNIT_INVENTORY_GROUP_ID; // Swap to shift-click deposit behavior // Deposit- op 1 is the current withdraw amount 1/5/10/x for deposit box interface and chambers of xeric storage unit. // Deposit- op 2 is the current withdraw amount 1/5/10/x for bank interface if (shiftModifier() && config.bankDepositShiftClick() != ShiftDepositMode.OFF && menuEntryAdded.getType() == MenuAction.CC_OP.getId() - && (menuEntryAdded.getIdentifier() == 2 || menuEntryAdded.getIdentifier() == 1) + && menuEntryAdded.getIdentifier() == (isDepositBoxPlayerInventory || isChambersOfXericStorageUnitPlayerInventory ? 1 : 2) && (menuEntryAdded.getOption().startsWith("Deposit-") || menuEntryAdded.getOption().startsWith("Store") || menuEntryAdded.getOption().startsWith("Donate"))) { ShiftDepositMode shiftDepositMode = config.bankDepositShiftClick(); - final int widgetGroupId = WidgetInfo.TO_GROUP(menuEntryAdded.getActionParam1()); - final int opId = widgetGroupId == WidgetID.DEPOSIT_BOX_GROUP_ID ? shiftDepositMode.getIdentifierDepositBox() - : widgetGroupId == WidgetID.CHAMBERS_OF_XERIC_STORAGE_UNIT_INVENTORY_GROUP_ID ? shiftDepositMode.getIdentifierChambersStorageUnit() + final int opId = isDepositBoxPlayerInventory ? shiftDepositMode.getIdentifierDepositBox() + : isChambersOfXericStorageUnitPlayerInventory ? shiftDepositMode.getIdentifierChambersStorageUnit() : shiftDepositMode.getIdentifier(); final int actionId = opId >= 6 ? MenuAction.CC_OP_LOW_PRIORITY.getId() : MenuAction.CC_OP.getId(); bankModeSwap(actionId, opId); @@ -605,7 +608,6 @@ public class MenuEntrySwapperPlugin extends Plugin && menuEntryAdded.getOption().startsWith("Withdraw")) { ShiftWithdrawMode shiftWithdrawMode = config.bankWithdrawShiftClick(); - final int widgetGroupId = WidgetInfo.TO_GROUP(menuEntryAdded.getActionParam1()); final int actionId, opId; if (widgetGroupId == WidgetID.CHAMBERS_OF_XERIC_STORAGE_UNIT_PRIVATE_GROUP_ID || widgetGroupId == WidgetID.CHAMBERS_OF_XERIC_STORAGE_UNIT_SHARED_GROUP_ID) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java index add9d4afe8..6c7deb9149 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/ShiftDepositMode.java @@ -36,7 +36,7 @@ public enum ShiftDepositMode DEPOSIT_10("Deposit-10", 5, 4, 3), DEPOSIT_X("Deposit-X", 6, 6, 5), DEPOSIT_ALL("Deposit-All", 8, 5, 4), - EXTRA_OP("Eat/Wield/Etc.", 9, 0, 0), + EXTRA_OP("Eat/Wield/Etc.", 9, 9, 0), OFF("Off", 0, 0, 0); private final String name; From 31007d3437329c2a30ce8d3e5827f9e303d5ef00 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 28 Sep 2021 17:14:37 -0400 Subject: [PATCH 02/14] api: add runtime jar This jar excludes classes we know can never be referenced at runtime, which currently takes the resulting jar from 1.1MB to .3MB --- runelite-api/pom.xml | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 3918045d57..a6dd776d73 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -64,4 +64,52 @@ test + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + runtime-jar + package + + jar + + + runtime + + net/runelite/api/AnimationID.class + net/runelite/api/EnumID.class + net/runelite/api/FontID.class + net/runelite/api/GraphicID.class + net/runelite/api/ItemID.class + net/runelite/api/NpcID.class + net/runelite/api/NullItemID.class + net/runelite/api/NullNpcID.class + net/runelite/api/NullObjectID.class + net/runelite/api/ObjectID.class + net/runelite/api/Opcodes.class + net/runelite/api/ParamID.class + net/runelite/api/ProjectileID.class + net/runelite/api/ScriptID.class + net/runelite/api/SettingID.class + net/runelite/api/SoundEffectID.class + net/runelite/api/SoundEffectVolume.class + net/runelite/api/SpriteID.class + net/runelite/api/StructID.class + + + + + + + From 87dda2d54ed71300901bc69c28905d4329990c2d Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 28 Sep 2021 18:17:31 -0400 Subject: [PATCH 03/14] api: mark runtime classes as final --- runelite-api/src/main/java/net/runelite/api/GraphicID.java | 2 +- runelite-api/src/main/java/net/runelite/api/ParamID.java | 2 +- runelite-api/src/main/java/net/runelite/api/ProjectileID.java | 2 +- runelite-api/src/main/java/net/runelite/api/SettingID.java | 2 +- runelite-api/src/main/java/net/runelite/api/StructID.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/GraphicID.java b/runelite-api/src/main/java/net/runelite/api/GraphicID.java index 6f2db34f74..f6c6138da6 100644 --- a/runelite-api/src/main/java/net/runelite/api/GraphicID.java +++ b/runelite-api/src/main/java/net/runelite/api/GraphicID.java @@ -24,7 +24,7 @@ */ package net.runelite.api; -public class GraphicID +public final class GraphicID { public static final int WINE_MAKE = 47; public static final int SPLASH = 85; diff --git a/runelite-api/src/main/java/net/runelite/api/ParamID.java b/runelite-api/src/main/java/net/runelite/api/ParamID.java index 9be05d76ef..50d2bdf71f 100644 --- a/runelite-api/src/main/java/net/runelite/api/ParamID.java +++ b/runelite-api/src/main/java/net/runelite/api/ParamID.java @@ -27,7 +27,7 @@ package net.runelite.api; /** * @see ParamHolder */ -public class ParamID +public final class ParamID { /** * @see SettingID diff --git a/runelite-api/src/main/java/net/runelite/api/ProjectileID.java b/runelite-api/src/main/java/net/runelite/api/ProjectileID.java index 1c1f82ae76..4030f92e56 100644 --- a/runelite-api/src/main/java/net/runelite/api/ProjectileID.java +++ b/runelite-api/src/main/java/net/runelite/api/ProjectileID.java @@ -29,7 +29,7 @@ package net.runelite.api; *

* Note: This class is not complete and may be missing mapped IDs. */ -public class ProjectileID +public final class ProjectileID { public static final int CANNONBALL = 53; public static final int GRANITE_CANNONBALL = 1443; diff --git a/runelite-api/src/main/java/net/runelite/api/SettingID.java b/runelite-api/src/main/java/net/runelite/api/SettingID.java index 2d471d16f2..bac3bd9be4 100644 --- a/runelite-api/src/main/java/net/runelite/api/SettingID.java +++ b/runelite-api/src/main/java/net/runelite/api/SettingID.java @@ -27,7 +27,7 @@ package net.runelite.api; /** * @see ParamID#SETTING_ID */ -public class SettingID +public final class SettingID { public static final int CAMERA_ZOOM = 14; diff --git a/runelite-api/src/main/java/net/runelite/api/StructID.java b/runelite-api/src/main/java/net/runelite/api/StructID.java index e1dab81026..54b61c4b02 100644 --- a/runelite-api/src/main/java/net/runelite/api/StructID.java +++ b/runelite-api/src/main/java/net/runelite/api/StructID.java @@ -29,7 +29,7 @@ package net.runelite.api; * @see StructComposition * @see Client#getStructComposition(int) */ -public class StructID +public final class StructID { public static final int SETTINGS_MUSIC_VOLUME = 2753; public static final int SETTINGS_EFFECT_VOLUME = 2754; From b496f9e4e8a3c7a4ae782bafef5e21f272a96752 Mon Sep 17 00:00:00 2001 From: LlemonDuck Date: Tue, 28 Sep 2021 17:30:55 -0700 Subject: [PATCH 04/14] chatcommands: cg shorthand for corrupted gauntlet --- .../runelite/client/plugins/chatcommands/ChatCommandsPlugin.java | 1 + 1 file changed, 1 insertion(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 9168c8f150..ee1e8e2fa5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -2008,6 +2008,7 @@ public class ChatCommandsPlugin extends Plugin case "cgaunt": case "cgauntlet": case "the corrupted gauntlet": + case "cg": return "Corrupted Gauntlet"; // The Nightmare From 6428a7af4ff94e16e22c58c65ef4a4c93d793e98 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Thu, 9 Sep 2021 22:41:43 -0700 Subject: [PATCH 05/14] skill calculator: Code cleanup --- .../skillcalculator/SkillCalculator.java | 30 ++++++++++--------- .../skillcalculator/SkillCalculatorPanel.java | 1 - .../SkillCalculatorPlugin.java | 1 - .../plugins/skillcalculator/UIActionSlot.java | 3 +- .../skillcalculator/UICombinedActionSlot.java | 1 - 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java index bd688d3788..6a756431d4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java @@ -1,4 +1,4 @@ -/** +/* * Copyright (c) 2018, Kruithne * Copyright (c) 2018, Psikoi * All rights reserved. @@ -81,7 +81,7 @@ class SkillCalculator extends JPanel private int currentXP = Experience.getXpForLevel(currentLevel); private int targetLevel = currentLevel + 1; private int targetXP = Experience.getXpForLevel(targetLevel); - private float xpFactor = 1.0f; + private float xpFactor = 1; SkillCalculator(Client client, UICalculatorInputArea uiInput, SpriteManager spriteManager, ItemManager itemManager) { @@ -145,7 +145,7 @@ class SkillCalculator extends JPanel skillData = cacheSkillData.getSkillData(calculatorType.getDataFile()); // Reset the XP factor, removing bonuses. - xpFactor = 1.0f; + xpFactor = 1; VarPlayer endGoalVarp = endGoalVarpForSkill(calculatorType.getSkill()); int endGoal = client.getVar(endGoalVarp); @@ -234,15 +234,17 @@ class SkillCalculator extends JPanel private void renderBonusOptions() { - if (skillData.getBonuses() != null) + if (skillData.getBonuses() == null) { - for (SkillDataBonus bonus : skillData.getBonuses()) - { - JPanel checkboxPanel = buildCheckboxPanel(bonus); + return; + } - add(checkboxPanel); - add(Box.createRigidArea(new Dimension(0, 5))); - } + for (SkillDataBonus bonus : skillData.getBonuses()) + { + JPanel checkboxPanel = buildCheckboxPanel(bonus); + + add(checkboxPanel); + add(Box.createRigidArea(new Dimension(0, 5))); } } @@ -363,7 +365,7 @@ class SkillCalculator extends JPanel updateCombinedAction(); } - private String formatXPActionString(double xp, int actionCount, String expExpression) + private static String formatXPActionString(double xp, int actionCount, String expExpression) { return XP_FORMAT.format(xp) + expExpression + NumberFormat.getIntegerInstance().format(actionCount) + (actionCount > 1 ? " actions" : " action"); } @@ -389,7 +391,7 @@ class SkillCalculator extends JPanel private void adjustXPBonus(float value) { - xpFactor = 1f + value; + xpFactor = 1 + value; calculate(); } @@ -449,12 +451,12 @@ class SkillCalculator extends JPanel }); } - private boolean slotContainsText(UIActionSlot slot, String text) + private static boolean slotContainsText(UIActionSlot slot, String text) { return slot.getAction().getName().toLowerCase().contains(text.toLowerCase()); } - private FocusAdapter buildFocusAdapter(Consumer focusLostConsumer) + private static FocusAdapter buildFocusAdapter(Consumer focusLostConsumer) { return new FocusAdapter() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java index b6abe4577f..6c2f97f57c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java @@ -23,7 +23,6 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.runelite.client.plugins.skillcalculator; import java.awt.GridBagConstraints; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java index 8999d2ad00..b62f688576 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java @@ -22,7 +22,6 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.runelite.client.plugins.skillcalculator; import java.awt.image.BufferedImage; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java index 2051a0ddcd..3d9124136a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java @@ -23,7 +23,6 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.runelite.client.plugins.skillcalculator; import java.awt.BorderLayout; @@ -80,7 +79,7 @@ class UIActionSlot extends JPanel @Getter(AccessLevel.PACKAGE) @Setter(AccessLevel.PACKAGE) - private double value = 0; + private double value; UIActionSlot(SkillDataEntry action, JLabel uiIcon) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UICombinedActionSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UICombinedActionSlot.java index fa1614c91b..46aea10dff 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UICombinedActionSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UICombinedActionSlot.java @@ -23,7 +23,6 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.runelite.client.plugins.skillcalculator; import java.awt.BorderLayout; From 7b678b2afbceedc6dbfe11044ef496136249fe82 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Thu, 9 Sep 2021 22:48:03 -0700 Subject: [PATCH 06/14] skill calculator: Define actions and bonuses in Java As the number of bonus types increases, the existing system of allowing only a single type of bonus to be applied, and only allowing actions to entirely opt out of having bonuses applied rather than more fine-grained control, is showing its age. This commit redefines all bonus and action entries in Java enums so that such systems can be better-defined. Additionally, it comes with the benefit of easier change validation via testing and enabling item and sprite ID referencing via runelite-api. --- .../main/java/net/runelite/api/SpriteID.java | 49 +- .../skillcalculator/CalculatorType.java | 42 +- .../skillcalculator/SkillCalculator.java | 33 +- .../plugins/skillcalculator/UIActionSlot.java | 6 +- .../skillcalculator/skills/AgilityAction.java | 67 + .../skills/ConstructionAction.java | 209 ++++ .../skills/ConstructionBonus.java | 39 + .../skillcalculator/skills/CookingAction.java | 164 +++ .../skills/CraftingAction.java | 175 +++ .../skillcalculator/skills/FarmingAction.java | 104 ++ .../FarmingBonus.java} | 19 +- .../skills/FiremakingAction.java | 53 + .../skills/FiremakingBonus.java | 39 + .../skillcalculator/skills/FishingAction.java | 75 ++ .../FishingBonus.java} | 23 +- .../skills/FletchingAction.java | 139 +++ .../skills/HerbloreAction.java | 113 ++ .../skillcalculator/skills/HunterAction.java | 99 ++ .../skillcalculator/skills/MagicAction.java | 221 ++++ .../skillcalculator/skills/MiningAction.java | 68 + .../MiningBonus.java} | 19 +- .../skillcalculator/skills/PrayerAction.java | 100 ++ .../skillcalculator/skills/PrayerBonus.java | 42 + .../skills/RunecraftAction.java | 78 ++ .../skills/RunecraftBonus.java | 39 + .../skillcalculator/skills/SkillAction.java | 93 ++ .../skillcalculator/skills/SkillBonus.java | 47 + .../skills/SmithingAction.java | 222 ++++ .../skills/ThievingAction.java | 85 ++ .../skills/WoodcuttingAction.java | 55 + .../skills/WoodcuttingBonus.java | 39 + .../skillcalculator/skill_agility.json | 160 --- .../skillcalculator/skill_construction.json | 1018 --------------- .../skillcalculator/skill_cooking.json | 742 ----------- .../skillcalculator/skill_crafting.json | 809 ------------ .../skillcalculator/skill_farming.json | 388 ------ .../skillcalculator/skill_firemaking.json | 82 -- .../skillcalculator/skill_fishing.json | 214 ---- .../skillcalculator/skill_fletching.json | 592 --------- .../skillcalculator/skill_herblore.json | 436 ------- .../plugins/skillcalculator/skill_hunter.json | 352 ------ .../plugins/skillcalculator/skill_magic.json | 1084 ---------------- .../plugins/skillcalculator/skill_mining.json | 166 --- .../plugins/skillcalculator/skill_prayer.json | 397 ------ .../skillcalculator/skill_runecraft.json | 240 ---- .../skillcalculator/skill_smithing.json | 1090 ----------------- .../skillcalculator/skill_thieving.json | 268 ---- .../skillcalculator/skill_woodcutting.json | 91 -- .../skillcalculator/CalculatorTypeTest.java} | 44 +- 49 files changed, 2502 insertions(+), 8227 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionBonus.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java rename runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/{beans/SkillDataBonus.java => skills/FarmingBonus.java} (78%) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingBonus.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java rename runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/{beans/SkillDataEntry.java => skills/FishingBonus.java} (78%) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java rename runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/{beans/SkillData.java => skills/MiningBonus.java} (78%) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftBonus.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillBonus.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingBonus.java delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_agility.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_construction.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_cooking.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_crafting.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_farming.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_firemaking.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fishing.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fletching.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_herblore.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_hunter.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_magic.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_mining.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_prayer.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_runecraft.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_smithing.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_thieving.json delete mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_woodcutting.json rename runelite-client/src/{main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java => test/java/net/runelite/client/plugins/skillcalculator/CalculatorTypeTest.java} (61%) diff --git a/runelite-api/src/main/java/net/runelite/api/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/SpriteID.java index d085bb0674..cb7cd1b560 100644 --- a/runelite-api/src/main/java/net/runelite/api/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/SpriteID.java @@ -1209,17 +1209,52 @@ public final class SpriteID public static final int KOUREND_FAVOUR_LOVAKENGJ_ICON = 1244; public static final int KOUREND_FAVOUR_PISCARILIUS_ICON = 1245; public static final int KOUREND_FAVOUR_SHAYZIEN_ICON = 1246; - /* Unmapped: 1247~1296 */ + public static final int SPELL_BASIC_REANIMATION = 1247; + public static final int SPELL_ADEPT_REANIMATION = 1248; + public static final int SPELL_EXPERT_REANIMATION = 1249; + public static final int SPELL_MASTER_REANIMATION = 1250; + /* Unmapped: 1251 */ + public static final int SPELL_ARCEUUS_LIBRARY_TELEPORT = 1252; + public static final int SPELL_DRAYNOR_MANOR_TELEPORT = 1253; + public static final int SPELL_SALVE_GRAVEYARD_TELEPORT = 1254; + /* Unmapped: 1255 */ + public static final int SPELL_MIND_ALTAR_TELEPORT = 1256; + public static final int SPELL_RESPAWN_TELEPORT = 1257; + /* Unmapped 1258 */ + public static final int SPELL_FENKENSTRAINS_CASTLE_TELEPORT = 1259; + public static final int SPELL_WEST_ARDOUGNE_TELEPORT = 1260; + public static final int SPELL_HARMONY_ISLAND_TELEPORT = 1261; + public static final int SPELL_BARROWS_TELEPORT = 1262; + public static final int SPELL_APE_ATOLL_TELEPORT = 1263; + public static final int SPELL_CEMETERY_TELEPORT = 1264; + /* Unmapped: 1265 */ + public static final int SPELL_RESURRECT_CROPS = 1266; + public static final int SPELL_GHOSTLY_GRASP = 1267; + public static final int SPELL_SKELETAL_GRASP = 1268; + public static final int SPELL_UNDEAD_GRASP = 1269; + public static final int SPELL_RESURRECT_LESSER_GHOST = 1270; + /* Unmapped: 1271~1296 */ public static final int QUESTS_PAGE_ICON_PURPLE_KOUREND = 1297; public static final int UNUSED_TAB_QUESTS_GREEN_ACHIEVEMENT_DIARIES = 1298; public static final int TAB_QUESTS_GREEN_ACHIEVEMENT_DIARIES = 1299; - /* Unmapped: 1300~1305 */ + /* Unmapped: 1300~1301 */ + public static final int SPELL_INFERIOR_DEMONBANE = 1302; + public static final int SPELL_SUPERIOR_DEMONBANE = 1303; + public static final int SPELL_DARK_DEMONBANE = 1304; + public static final int SPELL_MARK_OF_DARKNESS = 1305; public static final int SPELL_WARD_OF_ARCEUUS = 1306; - /* Unmapped: 1307~1309 */ + public static final int SPELL_LESSER_CORRUPTION = 1307; + public static final int SPELL_GREATER_CORRUPTION = 1308; + /* Unmapped: 1309 */ public static final int SPELL_DEATH_CHARGE = 1310; - /* Unmapped: 1311~1314 */ + public static final int SPELL_DEMONIC_OFFERING = 1311; + public static final int SPELL_SINISTER_OFFERING = 1312; + /* Unmapped: 1313~1314 */ public static final int SPELL_SHADOW_VEIL = 1315; - /* Unmapped: 1316~1324 */ + public static final int SPELL_DARK_LURE = 1316; + public static final int SPELL_VILE_VIGOUR = 1317; + public static final int SPELL_DEGRIME = 1318; + /* Unmapped: 1319~1324 */ public static final int SPELL_WARD_OF_ARCEUUS_DISABLED = 1325; /* Unmapped: 1326 */ public static final int SPELL_GREATER_CORRUPTION_DISABLED = 1327; @@ -1615,6 +1650,8 @@ public final class SpriteID public static final int HEALTHBAR_YELLOW_BACK_70PX = 2978; /* Unmapped: 2979, 2980 */ public static final int SPELL_RESURRECT_SUPERIOR_SKELETON = 2981; - /* Unmapped: 2982~2986 */ + /* Unmapped: 2982~2983 */ + public static final int SPELL_RESURRECT_GREATER_ZOMBIE = 2984; + /* Unmapped: 2985~2986 */ public static final int SPELL_RESURRECT_SUPERIOR_SKELETON_DISABLED = 2987; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CalculatorType.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CalculatorType.java index e102988f50..8c27d8a509 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CalculatorType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CalculatorType.java @@ -24,32 +24,36 @@ */ package net.runelite.client.plugins.skillcalculator; +import javax.annotation.Nullable; import lombok.AllArgsConstructor; import lombok.Getter; import net.runelite.api.Skill; +import net.runelite.client.plugins.skillcalculator.skills.*; @AllArgsConstructor @Getter enum CalculatorType { - MINING(Skill.MINING, "skill_mining.json"), - AGILITY(Skill.AGILITY, "skill_agility.json"), - SMITHING(Skill.SMITHING, "skill_smithing.json"), - HERBLORE(Skill.HERBLORE, "skill_herblore.json"), - FISHING(Skill.FISHING, "skill_fishing.json"), - THIEVING(Skill.THIEVING, "skill_thieving.json"), - COOKING(Skill.COOKING, "skill_cooking.json"), - PRAYER(Skill.PRAYER, "skill_prayer.json"), - CRAFTING(Skill.CRAFTING, "skill_crafting.json"), - FIREMAKING(Skill.FIREMAKING, "skill_firemaking.json"), - MAGIC(Skill.MAGIC, "skill_magic.json"), - FLETCHING(Skill.FLETCHING, "skill_fletching.json"), - WOODCUTTING(Skill.WOODCUTTING, "skill_woodcutting.json"), - RUNECRAFT(Skill.RUNECRAFT, "skill_runecraft.json"), - FARMING(Skill.FARMING, "skill_farming.json"), - CONSTRUCTION(Skill.CONSTRUCTION, "skill_construction.json"), - HUNTER(Skill.HUNTER, "skill_hunter.json"); + MINING(Skill.MINING, MiningBonus.values(), MiningAction.values()), + AGILITY(Skill.AGILITY, null, AgilityAction.values()), + SMITHING(Skill.SMITHING, null, SmithingAction.values()), + HERBLORE(Skill.HERBLORE, null, HerbloreAction.values()), + FISHING(Skill.FISHING, FishingBonus.values(), FishingAction.values()), + THIEVING(Skill.THIEVING, null, ThievingAction.values()), + COOKING(Skill.COOKING, null, CookingAction.values()), + PRAYER(Skill.PRAYER, PrayerBonus.values(), PrayerAction.values()), + CRAFTING(Skill.CRAFTING, null, CraftingAction.values()), + FIREMAKING(Skill.FIREMAKING, FiremakingBonus.values(), FiremakingAction.values()), + MAGIC(Skill.MAGIC, null, MagicAction.values()), + FLETCHING(Skill.FLETCHING, null, FletchingAction.values()), + WOODCUTTING(Skill.WOODCUTTING, WoodcuttingBonus.values(), WoodcuttingAction.values()), + RUNECRAFT(Skill.RUNECRAFT, RunecraftBonus.values(), RunecraftAction.values()), + FARMING(Skill.FARMING, FarmingBonus.values(), FarmingAction.values()), + CONSTRUCTION(Skill.CONSTRUCTION, ConstructionBonus.values(), ConstructionAction.values()), + HUNTER(Skill.HUNTER, null, HunterAction.values()); private final Skill skill; - private final String dataFile; -} \ No newline at end of file + @Nullable + private final SkillBonus[] skillBonuses; + private final SkillAction[] skillActions; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java index 6a756431d4..736d7b3fab 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java @@ -50,9 +50,8 @@ import net.runelite.api.Skill; import net.runelite.api.VarPlayer; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; -import net.runelite.client.plugins.skillcalculator.beans.SkillData; -import net.runelite.client.plugins.skillcalculator.beans.SkillDataBonus; -import net.runelite.client.plugins.skillcalculator.beans.SkillDataEntry; +import net.runelite.client.plugins.skillcalculator.skills.SkillAction; +import net.runelite.client.plugins.skillcalculator.skills.SkillBonus; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.DynamicGridLayout; import net.runelite.client.ui.FontManager; @@ -69,14 +68,12 @@ class SkillCalculator extends JPanel private final SpriteManager spriteManager; private final ItemManager itemManager; private final List uiActionSlots = new ArrayList<>(); - private final CacheSkillData cacheSkillData = new CacheSkillData(); private final UICombinedActionSlot combinedActionSlot; private final ArrayList combinedActionSlots = new ArrayList<>(); private final List bonusCheckBoxes = new ArrayList<>(); private final IconTextField searchBar = new IconTextField(); - private SkillData skillData; - private Skill currentSkill; + private CalculatorType currentCalculator; private int currentLevel = 1; private int currentXP = Experience.getXpForLevel(currentLevel); private int targetLevel = currentLevel + 1; @@ -137,12 +134,9 @@ class SkillCalculator extends JPanel currentXP = client.getSkillExperience(calculatorType.getSkill()); currentLevel = Experience.getLevelForXp(currentXP); - if (currentSkill != calculatorType.getSkill()) + if (currentCalculator != calculatorType) { - currentSkill = calculatorType.getSkill(); - - // Load the skill data. - skillData = cacheSkillData.getSkillData(calculatorType.getDataFile()); + currentCalculator = calculatorType; // Reset the XP factor, removing bonuses. xpFactor = 1; @@ -234,12 +228,13 @@ class SkillCalculator extends JPanel private void renderBonusOptions() { - if (skillData.getBonuses() == null) + final SkillBonus[] skillBonuses = currentCalculator.getSkillBonuses(); + if (skillBonuses == null) { return; } - for (SkillDataBonus bonus : skillData.getBonuses()) + for (SkillBonus bonus : skillBonuses) { JPanel checkboxPanel = buildCheckboxPanel(bonus); @@ -248,7 +243,7 @@ class SkillCalculator extends JPanel } } - private JPanel buildCheckboxPanel(SkillDataBonus bonus) + private JPanel buildCheckboxPanel(SkillBonus bonus) { JPanel uiOption = new JPanel(new BorderLayout()); JLabel uiLabel = new JLabel(bonus.getName()); @@ -272,7 +267,7 @@ class SkillCalculator extends JPanel return uiOption; } - private void adjustCheckboxes(JCheckBox target, SkillDataBonus bonus) + private void adjustCheckboxes(JCheckBox target, SkillBonus bonus) { adjustXPBonus(0); bonusCheckBoxes.forEach(otherSelectedCheckbox -> @@ -295,15 +290,15 @@ class SkillCalculator extends JPanel uiActionSlots.clear(); // Create new components for the action slots. - for (SkillDataEntry action : skillData.getActions()) + for (SkillAction action : currentCalculator.getSkillActions()) { JLabel uiIcon = new JLabel(); - if (action.getIcon() != null) + if (action.getIcon() != -1) { itemManager.getImage(action.getIcon()).addTo(uiIcon); } - else if (action.getSprite() != null) + else if (action.getSprite() != -1) { spriteManager.addSpriteTo(uiIcon, action.getSprite(), 0); } @@ -348,7 +343,7 @@ class SkillCalculator extends JPanel { int actionCount = 0; int neededXP = targetXP - currentXP; - SkillDataEntry action = slot.getAction(); + SkillAction action = slot.getAction(); double xp = (action.isIgnoreBonus()) ? action.getXp() : action.getXp() * xpFactor; if (neededXP > 0) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java index 3d9124136a..c005d42f90 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java @@ -41,7 +41,7 @@ import javax.swing.border.EmptyBorder; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; -import net.runelite.client.plugins.skillcalculator.beans.SkillDataEntry; +import net.runelite.client.plugins.skillcalculator.skills.SkillAction; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.components.shadowlabel.JShadowedLabel; @@ -63,7 +63,7 @@ class UIActionSlot extends JPanel private static final Dimension ICON_SIZE = new Dimension(32, 32); @Getter(AccessLevel.PACKAGE) - private final SkillDataEntry action; + private final SkillAction action; private final JShadowedLabel uiLabelActions; private final JPanel uiInfo; @@ -81,7 +81,7 @@ class UIActionSlot extends JPanel @Setter(AccessLevel.PACKAGE) private double value; - UIActionSlot(SkillDataEntry action, JLabel uiIcon) + UIActionSlot(SkillAction action, JLabel uiIcon) { this.action = action; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java new file mode 100644 index 0000000000..d62285d548 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum AgilityAction implements SkillAction +{ + GNOME_STRONGHOLD_COURSE("Gnome Stronghold", 1, 86.5f, ItemID.SWAMP_TOAD), + SHAYZIEN_BASIC_COURSE("Shayzien Basic Course", 5, 133.2f, ItemID.SHAYZIEN_HELM_1), + DRAYNOR_VILLAGE_ROOFTOP("Draynor Village Rooftop", 10, 120, ItemID.MARK_OF_GRACE), + LEAPING_TROUT("Leaping trout", 15, 5, ItemID.LEAPING_TROUT), + AL_KHARID_ROOFTOP("Al Kharid Rooftop", 20, 180, ItemID.MARK_OF_GRACE), + VARROCK_ROOFTOP("Varrock Rooftop", 30, 238, ItemID.MARK_OF_GRACE), + PENGUIN_AGILITY_COURSE("Penguin Agility Course", 30, 540, ItemID.CLOCKWORK_SUIT), + LEAPING_SALMON("Leaping salmon", 30, 6, ItemID.LEAPING_SALMON), + BARBARIAN_OUTPOST("Barbarian Outpost", 35, 152.5f, ItemID.STEEL_BATTLEAXE), + CANIFIS_ROOFTOP("Canifis Rooftop", 40, 240, ItemID.MARK_OF_GRACE), + LEAPING_STURGEON("Leaping sturgeon", 45, 7, ItemID.LEAPING_STURGEON), + APE_ATOLL_COURSE("Ape Atoll", 48, 580, ItemID.GORILLA_GREEGREE), + SHAYZIEN_ADVANCED_COURSE("Shayzien Advanced Course", 48, 474.3f, ItemID.SHAYZIEN_HELM_5), + FALADOR_ROOFTOP("Falador Rooftop", 50, 440, ItemID.MARK_OF_GRACE), + WILDERNESS_AGILITY_COURSE("Wilderness Agility Course", 52, 571, ItemID.SKULL), + HALLOWED_SEPULCHRE_FLOOR_1("Hallowed Sepulchre Floor 1", 52, 575, ItemID.RING_OF_ENDURANCE), + SEERS_VILLAGE_ROOFTOP("Seers' Village Rooftop", 60, 570, ItemID.MARK_OF_GRACE), + WEREWOLF_AGILITY_COURSE("Werewolf Agility Course", 60, 730, ItemID.STICK), + HALLOWED_SEPULCHRE_FLOOR_2("Hallowed Sepulchre Floor 2", 62, 925, ItemID.RING_OF_ENDURANCE), + POLLNIVNEACH_ROOFTOP("Pollnivneach Rooftop", 70, 890, ItemID.MARK_OF_GRACE), + HALLOWED_SEPULCHRE_FLOOR_3("Hallowed Sepulchre Floor 3", 72, 1500, ItemID.RING_OF_ENDURANCE), + PRIFDDINAS_AGILITY_COURSE("Prifddinas Agility Course", 75, 1337, ItemID.CRYSTAL_SHARD), + RELLEKKA_ROOFTOP("Rellekka Rooftop", 80, 780, ItemID.MARK_OF_GRACE), + HALLOWED_SEPULCHRE_FLOOR_4("Hallowed Sepulchre Floor 4", 82, 2700, ItemID.RING_OF_ENDURANCE), + ARDOUGNE_ROOFTOP("Ardougne Rooftop", 90, 793, ItemID.MARK_OF_GRACE), + HALLOWED_SEPULCHRE_FLOOR_5("Hallowed Sepulchre Floor 5", 92, 6000, ItemID.RING_OF_ENDURANCE), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java new file mode 100644 index 0000000000..01b1148909 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum ConstructionAction implements SkillAction +{ + EXIT_PORTAL("Exit Portal", 1, 100, ItemID.EXIT_PORTAL), + PLANK("Plank", 1, 29, ItemID.PLANK), + OAK_PLANK("Oak Plank", 1, 60, ItemID.OAK_PLANK), + TEAK_PLANK("Teak Plank", 1, 90, ItemID.TEAK_PLANK), + MAHOGANY_PLANK("Mahogany Plank", 1, 140, ItemID.MAHOGANY_PLANK), + PLANT("Plant", 1, 31, ItemID.PLANT), + FERN_BIG_PLANT("Fern (big plant)", 1, 31, ItemID.FERN_8186), + SHORT_PLANT("Short Plant", 1, 31, ItemID.SHORT_PLANT), + DOCK_LEAF("Dock Leaf", 1, 31, ItemID.DOCK_LEAF), + CRUDE_WOODEN_CHAIR("Crude Wooden Chair", 1, 58, ItemID.CRUDE_WOODEN_CHAIR), + BROWN_RUG("Brown Rug", 2, 30, ItemID.BROWN_RUG), + TORN_CURTAINS("Torn Curtains", 2, 132, ItemID.TORN_CURTAINS), + CLAY_FIREPLACE("Clay Fireplace", 3, 30, ItemID.CLAY_FIREPLACE), + WOODEN_BOOKCASE("Wooden Bookcase", 4, 115, ItemID.WOODEN_BOOKCASE), + FIREPIT("Firepit", 5, 40, ItemID.FIREPIT), + CAT_BLANKET("Cat Blanket", 5, 15, ItemID.CAT_BLANKET), + DECORATIVE_ROCK("Decorative Rock", 5, 100, ItemID.DECORATIVE_ROCK), + TREE("Tree", 5, 31, ItemID.TREE), + SMALL_FERN("Small Fern", 6, 70, ItemID.SMALL_FERN), + THISTLE("Thistle", 6, 70, ItemID.THISTLE), + BUSH("Bush", 6, 70, ItemID.BUSH), + LARGE_LEAF_BUSH("Large Leaf Bush", 6, 70, ItemID.LARGELEAF_PLANT), + WOODEN_SHELVES_1("Wooden Shelves 1", 6, 87, ItemID.WOODEN_SHELVES_1), + PUMP_AND_DRAIN("Pump and Drain", 7, 100, ItemID.PUMP_AND_DRAIN), + BEER_BARREL("Beer Barrel", 7, 87, ItemID.BEER_BARREL), + WOODEN_CHAIR("Wooden Chair", 8, 87, ItemID.WOODEN_CHAIR), + WOODEN_LARDER("Wooden Larder", 9, 228, ItemID.WOODEN_LARDER), + WOOD_DINING_TABLE("Wood Dining Table", 10, 115, ItemID.WOOD_DINING_TABLE), + POND("Pond", 10, 100, ItemID.POND), + NICE_TREE("Nice Tree", 10, 44, ItemID.NICE_TREE), + WOODEN_BENCH("Wooden Bench", 10, 115, ItemID.WOODEN_BENCH), + FIREPIT_WITH_HOOK("Firepit with Hook", 11, 60, ItemID.FIREPIT_WITH_HOOK), + REEDS("Reeds", 12, 100, ItemID.REEDS), + FERN_SMALL_PLANT("Fern (small plant)", 12, 100, ItemID.FERN), + CIDER_BARREL("Cider Barrel", 12, 91, ItemID.CIDER_BARREL), + WOODEN_SHELVES_2("Wooden Shelves 2", 12, 147, ItemID.WOODEN_SHELVES_2), + WOOD_TABLE("Wood Table", 12, 87, ItemID.WOOD_DINING_TABLE), + HUGE_PLANT("Huge Plant", 12, 100, ItemID.HUGE_PLANT), + TALL_PLANT("Tall Plant", 12, 100, ItemID.TALL_PLANT), + RUG("Rug", 13, 60, ItemID.RUG), + ROCKING_CHAIR("Rocking Chair", 14, 87, ItemID.ROCKING_CHAIR), + IMP_STATUE("Imp Statue", 15, 150, ItemID.IMP_STATUE), + OAK_TREE("Oak Tree", 15, 70, ItemID.OAK_TREE), + OAK_DECORATION("Oak Decoration", 16, 120, ItemID.OAK_DECORATION), + FIREPIT_WITH_POT("Firepit with Pot", 17, 80, ItemID.FIREPIT_WITH_POT), + CURTAINS("Curtains", 18, 225, ItemID.CURTAINS), + ASGARNIAN_ALE("Asgarnian Ale", 18, 184, ItemID.ASGARNIAN_ALE), + CAT_BASKET("Cat Basket", 19, 58, ItemID.CAT_BASKET), + OAK_CHAIR("Oak Chair", 19, 120, ItemID.OAK_CHAIR), + WOODEN_BED("Wooden Bed", 20, 117, ItemID.WOODEN_BED), + SHOE_BOX("Shoe Box", 20, 58, ItemID.SHOE_BOX), + SHAVING_STAND("Shaving Stand", 21, 30, ItemID.SHAVING_STAND), + OAK_DINING_TABLE("Oak Dining Table", 22, 240, ItemID.OAK_DINING_TABLE), + OAK_BENCH("Oak Bench", 22, 240, ItemID.OAK_BENCH), + WOODEN_SHELVES_3("Wooden Shelves 3", 23, 147, ItemID.WOODEN_SHELVES_3), + SMALL_OVEN("Small Oven", 24, 80, ItemID.SMALL_OVEN), + OAK_CLOCK("Oak Clock", 25, 142, ItemID.OAK_CLOCK), + GREENMANS_ALE("Greenman's Ale", 26, 184, ItemID.GREENMANS_ALE), + OAK_ARMCHAIR("Oak Armchair", 26, 180, ItemID.OAK_ARMCHAIR), + ROPE_BELL_PULL("Rope Bell-Pull", 26, 64, ItemID.ROPE_BELLPULL), + PUMP_AND_TUB("Pump and Tub", 27, 200, ItemID.PUMP_AND_TUB), + OAK_DRAWERS("Oak Drawers", 27, 120, ItemID.OAK_DRAWERS), + OAK_BOOKCASE("Oak Bookcase", 29, 180, ItemID.OAK_BOOKCASE), + LARGE_OVEN("Large Oven", 29, 100, ItemID.LARGE_OVEN), + OAK_SHAVING_STAND("Oak Shaving Stand", 29, 61, ItemID.OAK_SHAVING_STAND), + WILLOW_TREE("Willow Tree", 30, 100, ItemID.WILLOW_TREE), + OAK_BED("Oak Bed", 30, 210, ItemID.OAK_BED), + LONG_BONE("Long Bone", 30, 4500, ItemID.LONG_BONE), + CURVED_BONE("Curved Bone", 30, 6750, ItemID.CURVED_BONE), + CARVED_OAK_BENCH("Carved Oak Bench", 31, 240, ItemID.CARVED_OAK_BENCH), + CARVED_OAK_TABLE("Carved Oak Table", 31, 360, ItemID.CARVED_OAK_TABLE), + OAK_KITCHEN_TABLE("Oak Kitchen Table", 32, 180, ItemID.TEAK_TABLE), + BOXING_RING("Boxing Ring", 32, 420, ItemID.BOXING_RING), + OAK_LARDER("Oak Larder", 33, 480, ItemID.OAK_LARDER), + CUSHIONED_BASKET("Cushioned Basket", 33, 58, ItemID.CUSHIONED_BASKET), + STONE_FIREPLACE("Stone Fireplace", 33, 40, ItemID.STONE_FIREPLACE), + STEEL_RANGE("Steel Range", 34, 120, ItemID.STEEL_RANGE), + OAK_SHELVES_1("Oak Shelves 1", 34, 240, ItemID.OAK_SHELVES_1), + GLOVE_RACK("Glove Rack", 34, 120, ItemID.GLOVE_RACK), + LARGE_OAK_BED("Large Oak Bed", 34, 330, ItemID.LARGE_OAK_BED), + TEAK_ARMCHAIR("Teak Armchair", 35, 180, ItemID.TEAK_ARMCHAIR), + DRAGON_BITTER("Dragon Bitter", 36, 224, ItemID.DRAGON_BITTER), + TEAK_DECORATION("Teak Decoration", 36, 180, ItemID.TEAK_DECORATION), + BELL_PULL("Bell-Pull", 37, 120, ItemID.BELLPULL), + OAK_DRESSER("Oak Dresser", 37, 121, ItemID.OAK_DRESSER), + TEAK_BENCH("Teak Bench", 38, 360, ItemID.CARVED_TEAK_BENCH), + TEAK_TABLE("Teak Table", 38, 360, ItemID.TEAK_TABLE), + OAK_WARDROBE("Oak Wardrobe", 39, 180, ItemID.OAK_WARDROBE), + TEAK_BED("Teak Bed", 40, 300, ItemID.TEAK_BED), + MAHOGANY_BOOKCASE("Mahogany Bookcase", 40, 420, ItemID.MAHOGANY_BOOKCASE), + OAK_LECTERN("Oak Lectern", 40, 60, ItemID.OAK_LECTERN), + OPULENT_CURTAINS("Opulent Curtains", 40, 315, ItemID.OPULENT_CURTAINS), + FENCING_RING("Fencing Ring", 41, 570, ItemID.FENCING_RING), + GLOBE("Globe", 41, 180, ItemID.GLOBE), + FANCY_RANGE("Fancy Range", 42, 160, ItemID.FANCY_RANGE), + CRYSTAL_BALL("Crystal Ball", 42, 280, ItemID.CRYSTAL_BALL), + ALCHEMICAL_CHART("Alchemical Chart", 43, 30, ItemID.ALCHEMICAL_CHART), + TEAK_LARDER("Teak larder", 43, 750, ItemID.TEAK_LARDER), + WOODEN_TELESCOPE("Wooden Telescope", 44, 121, ItemID.OAK_TELESCOPE), + WEAPONS_RACK("Weapons Rack", 44, 180, ItemID.WEAPONS_RACK), + CARVED_TEAK_BENCH("Carved Teak Bench", 44, 360, ItemID.CARVED_TEAK_BENCH), + OAK_SHELVES_2("Oak Shelves 2", 45, 240, ItemID.OAK_SHELVES_2), + CARVED_TEAK_TABLE("Carved Teak Table", 45, 600, ItemID.CARVED_TEAK_TABLE), + LARGE_TEAK_BED("Large Teak Bed", 45, 480, ItemID.LARGE_TEAK_BED), + MAPLE_TREE("Maple Tree", 45, 122, ItemID.MAPLE_TREE), + TEAK_DRESSER("Teak Dresser", 46, 181, ItemID.TEAK_DRESSER), + SINK("Sink", 47, 300, ItemID.SINK), + EAGLE_LECTERN("Eagle Lectern", 47, 120, ItemID.EAGLE_LECTERN), + DEMON_LECTERN("Demon Lectern", 47, 120, ItemID.DEMON_LECTERN), + MOUNTED_MYTHICAL_CAPE("Mounted Mythical Cape", 47, 370, ItemID.MYTHICAL_CAPE), + CHEFS_DELIGHT("Chef's Delight", 48, 224, ItemID.CHEFS_DELIGHT), + TEAK_PORTAL("Teak Portal", 50, 270, ItemID.TEAK_PORTAL), + MAHOGANY_ARMCHAIR("Mahogany Armchair", 50, 280, ItemID.MAHOGANY_ARMCHAIR), + ORNAMENTAL_GLOBE("Ornamental Globe", 50, 270, ItemID.ORNAMENTAL_GLOBE), + TELEPORT_FOCUS("Teleport Focus", 50, 40, ItemID.TELEPORT_FOCUS), + TEAK_DRAWERS("Teak Drawers", 51, 180, ItemID.TEAK_DRAWERS), + COMBAT_RING("Combat Ring", 51, 630, ItemID.COMBAT_RING), + TEAK_KITCHEN_TABLE("Teak Kitchen Table", 52, 270, ItemID.TEAK_TABLE), + MAHOGANY_BENCH("Mahogany Bench", 52, 560, ItemID.MAHOGANY_BENCH), + MAHOGANY_TABLE("Mahogany Table", 52, 840, ItemID.MAHOGANY_TABLE), + FOUR_POSTER_BED("4-Poster Bed", 53, 450, ItemID._4POSTER), + EXTRA_WEAPONS_RACK("Extra Weapons Rack", 54, 440, ItemID.EXTRA_WEAPONS_RACK), + ELEMENTAL_SPHERE("Elemental Sphere", 54, 580, ItemID.ELEMENTAL_SPHERE), + TEAK_CLOCK("Teak Clock", 55, 202, ItemID.TEAK_CLOCK), + GILDED_DECORATION("Gilded Decoration", 56, 1020, ItemID.GILDED_DECORATION), + FANCY_TEAK_DRESSER("Fancy Teak Dresser", 56, 182, ItemID.FANCY_TEAK_DRESSER), + TEAK_SHELVES_1("Teak Shelves 1", 56, 330, ItemID.TEAK_SHELVES_1), + TEAK_EAGLE_LECTERN("Teak Eagle Lectern", 57, 180, ItemID.TEAK_EAGLE_LECTERN), + TEAK_DEMON_LECTERN("Teak Demon Lectern", 57, 180, ItemID.TEAK_DEMON_LECTERN), + LIMESTONE_ATTACK_STONE("Limestone attack stone", 59, 200, ItemID.ATTACK_STONE), + LUNAR_GLOBE("Lunar Globe", 59, 570, ItemID.LUNAR_GLOBE), + GILDED_FOUR_POSTER_BED("Gilded 4-Poster Bed", 60, 1330, ItemID.GILDED_4POSTER), + POSH_BELL_PULL("Posh Bell-Pull", 60, 420, ItemID.POSH_BELLPULL), + SPICE_RACK("Spice Rack", 60, 374, ItemID.SPICE_RACK), + YEW_TREE("Yew Tree", 60, 141, ItemID.YEW_TREE), + GILDED_BENCH("Gilded Bench", 61, 1760, ItemID.GILDED_BENCH), + TEAK_WARDROBE("Teak Wardrobe", 63, 270, ItemID.TEAK_WARDROBE), + MARBLE_FIREPLACE("Marble Fireplace", 63, 500, ItemID.MARBLE_FIREPLACE), + ASTRONOMICAL_CHART("Astronomical Chart", 63, 45, ItemID.ASTRONOMICAL_CHART), + TEAK_TELESCOPE("Teak Telescope", 64, 181, ItemID.TEAK_TELESCOPE), + MAHOGANY_DRESSER("Mahogany Dresser", 64, 281, ItemID.MAHOGANY_DRESSER), + MAHOGANY_PORTAL("Mahogany Portal", 65, 420, ItemID.MAHOGANY_PORTAL), + GREATER_FOCUS("Greater Focus", 65, 500, ItemID.GREATER_FOCUS), + OPULENT_RUG("Opulent Rug", 65, 360, ItemID.OPULENT_RUG), + TEAK_GARDEN_BENCH("Teak Garden Bench", 66, 540, ItemID.TEAK_GARDEN_BENCH), + CRYSTAL_OF_POWER("Crystal of Power", 66, 890, ItemID.CRYSTAL_OF_POWER), + TEAK_SHELVES_2("Teak Shelves 2", 67, 930, ItemID.TEAK_SHELVES_2), + MAHOGANY_DEMON_LECTERN("Mahogany Demon Lectern", 67, 580, ItemID.TEAK_DEMON_LECTERN), + MAHOGANY_EAGLE_LECTERN("Mahogany Eagle Lectern", 67, 580, ItemID.TEAK_DEMON_LECTERN), + CELESTIAL_GLOBE("Celestial Globe", 68, 570, ItemID.CELESTIAL_GLOBE), + DUNGEON_ENTRANCE("Dungeon Entrance", 70, 500, ItemID.DUNGEON_ENTRANCE), + RANGING_PEDESTALS("Ranging Pedestals", 71, 720, ItemID.RANGING_PEDESTALS), + OPULENT_TABLE("Opulent Table", 72, 3100, ItemID.OPULENT_TABLE), + OAK_DOOR("Oak Door", 74, 600, ItemID.OAK_DOOR), + GILDED_DRESSER("Gilded Dresser", 74, 582, ItemID.GILDED_DRESSER), + MAHOGANY_WARDROBE("Mahogany Wardrobe", 75, 420, ItemID.MAHOGANY_WARDROBE), + MAGIC_TREE("Magic Tree", 75, 223, ItemID.MAGIC_TREE), + ARMILLARY_GLOBE("Armillary Globe", 77, 960, ItemID.GLOBE), + GNOME_BENCH("Gnome Bench", 77, 840, ItemID.GNOME_BENCH), + MARBLE_PORTAL("Marble Portal", 80, 1500, ItemID.MARBLE_PORTAL), + SCRYING_POOL("Scrying Pool", 80, 2000, ItemID.SCRYING_POOL), + BALANCE_BEAM("Balance Beam", 81, 1000, ItemID.BALANCE_BEAM), + INFERNAL_CHART("Infernal Chart", 83, 60, ItemID.INFERNAL_CHART), + MAHOGANY_TELESCOPE("Mahogany Telescope", 84, 281, ItemID.MAHOGANY_TELESCOPE), + GILDED_CLOCK("Gilded Clock", 85, 602, ItemID.GILDED_CLOCK), + SMALL_ORRERY("Small Orrery", 86, 1320, ItemID.SMALL_ORRERY), + GILDED_WARDROBE("Gilded Wardrobe", 87, 720, ItemID.GILDED_WARDROBE), + LARGE_ORRERY("Large Orrery", 95, 1420, ItemID.LARGE_ORRERY), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionBonus.java new file mode 100644 index 0000000000..d398ea2786 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionBonus.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum ConstructionBonus implements SkillBonus +{ + CARPENTERS_OUTFIT("Carpenter's Outfit (+2.5%)", 0.025f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java new file mode 100644 index 0000000000..3a9b2a208f --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum CookingAction implements SkillAction +{ + SINEW("Sinew", 1, 3, ItemID.SINEW), + SHRIMPS("Shrimps", 1, 30, ItemID.SHRIMPS), + COOKED_CHICKEN("Cooked chicken", 1, 30, ItemID.COOKED_CHICKEN), + COOKED_MEAT("Cooked meat", 1, 30, ItemID.COOKED_MEAT), + COOKED_RABBIT("Cooked rabbit", 1, 30, ItemID.COOKED_RABBIT), + ANCHOVIES("Anchovies", 1, 30, ItemID.ANCHOVIES), + SARDINE("Sardine", 1, 40, ItemID.SARDINE), + POISON_KARAMBWAN("Poison karambwan", 1, 80, ItemID.POISON_KARAMBWAN), + UGTHANKI_MEAT("Ugthanki meat", 1, 40, ItemID.UGTHANKI_MEAT), + BREAD("Bread", 1, 40, ItemID.BREAD), + HERRING("Herring", 5, 50, ItemID.HERRING), + FRUIT_BLAST("Fruit blast", 6, 50, ItemID.FRUIT_BLAST), + BAKED_POTATO("Baked potato", 7, 15, ItemID.BAKED_POTATO), + GUPPY("Guppy", 7, 12, ItemID.GUPPY), + PINEAPPLE_PUNCH("Pineapple punch", 8, 70, ItemID.PINEAPPLE_PUNCH), + SPICY_SAUCE("Spicy sauce", 9, 25, ItemID.SPICY_SAUCE), + MACKEREL("Mackerel", 10, 60, ItemID.MACKEREL), + REDBERRY_PIE("Redberry pie", 10, 78, ItemID.REDBERRY_PIE), + TOAD_CRUNCHIES("Toad crunchies", 10, 100, ItemID.TOAD_CRUNCHIES), + CHILLI_CON_CARNE("Chilli con carne", 11, 55, ItemID.CHILLI_CON_CARNE), + ROAST_BIRD_MEAT("Roast bird meat", 11, 62.5f, ItemID.ROAST_BIRD_MEAT), + THIN_SNAIL_MEAT("Thin snail meat", 12, 70, ItemID.THIN_SNAIL_MEAT), + SPICY_CRUNCHIES("Spicy crunchies", 12, 100, ItemID.SPICY_CRUNCHIES), + SCRAMBLED_EGG("Scrambled egg", 13, 50, ItemID.SCRAMBLED_EGG), + CIDER("Cider", 14, 182, ItemID.CIDER), + WORM_CRUNCHIES("Worm crunchies", 14, 104, ItemID.WORM_CRUNCHIES), + TROUT("Trout", 15, 70, ItemID.TROUT), + SPIDER_ON_STICK("Spider on stick", 16, 80, ItemID.SPIDER_ON_STICK), + SPIDER_ON_SHAFT("Spider on shaft", 16, 80, ItemID.SPIDER_ON_SHAFT), + ROAST_RABBIT("Roast rabbit", 16, 72.5f, ItemID.ROAST_RABBIT), + CHOCCHIP_CRUNCHIES("Chocchip crunchies", 16, 100, ItemID.CHOCCHIP_CRUNCHIES), + LEAN_SNAIL_MEAT("Lean snail meat", 17, 80, ItemID.LEAN_SNAIL_MEAT), + COD("Cod", 18, 75, ItemID.COD), + WIZARD_BLIZZARD("Wizard blizzard", 18, 110, ItemID.WIZARD_BLIZZARD), + DWARVEN_STOUT("Dwarven stout", 19, 215, ItemID.DWARVEN_STOUT), + SHORT_GREEN_GUY("Short green guy", 20, 120, ItemID.SHORT_GREEN_GUY), + MEAT_PIE("Meat pie", 20, 110, ItemID.MEAT_PIE), + PIKE("Pike", 20, 80, ItemID.PIKE), + CUP_OF_TEA("Cup of tea", 20, 52, ItemID.CUP_OF_TEA), + CAVEFISH("Cavefish", 20, 23, ItemID.CAVEFISH), + ROAST_BEAST_MEAT("Roast beast meat", 21, 82.5f, ItemID.ROAST_BEAST_MEAT), + COOKED_CRAB_MEAT("Cooked crab meat", 21, 100, ItemID.COOKED_CRAB_MEAT), + POT_OF_CREAM("Pot of cream", 21, 18, ItemID.POT_OF_CREAM), + FAT_SNAIL_MEAT("Fat snail meat", 22, 95, ItemID.FAT_SNAIL_MEAT), + EGG_AND_TOMATO("Egg and tomato", 23, 50, ItemID.EGG_AND_TOMATO), + ASGARNIAN_ALE("Asgarnian ale", 24, 248, ItemID.ASGARNIAN_ALE), + SALMON("Salmon", 25, 90, ItemID.SALMON), + STEW("Stew", 25, 117, ItemID.STEW), + FRUIT_BATTA("Fruit batta", 25, 150, ItemID.FRUIT_BATTA), + TOAD_BATTA("Toad batta", 26, 152, ItemID.TOAD_BATTA), + WORM_BATTA("Worm batta", 27, 154, ItemID.WORM_BATTA), + VEGETABLE_BATTA("Vegetable batta", 28, 156, ItemID.VEGETABLE_BATTA), + SWEETCORN("Sweetcorn", 28, 104, ItemID.COOKED_SWEETCORN), + COOKED_SLIMY_EEL("Cooked slimy eel", 28, 95, ItemID.COOKED_SLIMY_EEL), + MUD_PIE("Mud pie", 29, 128, ItemID.MUD_PIE), + GREENMANS_ALE("Greenman's ale", 29, 281, ItemID.GREENMANS_ALE), + CHEESE_AND_TOMATO_BATTA("Cheese and tomato Batta", 29, 158, ItemID.CHEESETOM_BATTA), + TUNA("Tuna", 30, 100, ItemID.TUNA), + APPLE_PIE("Apple pie", 30, 130, ItemID.APPLE_PIE), + WORM_HOLE("Worm hole", 30, 170, ItemID.WORM_HOLE), + COOKED_KARAMBWAN("Cooked karambwan", 30, 190, ItemID.COOKED_KARAMBWAN), + ROASTED_CHOMPY("Roasted chompy", 30, 100, ItemID.COOKED_CHOMPY), + FISHCAKE("Fishcake", 31, 100, ItemID.COOKED_FISHCAKE), + DRUNK_DRAGON("Drunk dragon", 32, 160, ItemID.DRUNK_DRAGON), + CHOC_SATURDAY("Choc saturday", 33, 170, ItemID.CHOC_SATURDAY), + TETRA("Tetra", 33, 31, ItemID.TETRA), + GARDEN_PIE("Garden pie", 34, 138, ItemID.GARDEN_PIE), + WIZARDS_MIND_BOMB("Wizard's mind bomb", 34, 314, ItemID.WIZARDS_MIND_BOMB), + JUG_OF_WINE("Jug of wine", 35, 200, ItemID.JUG_OF_WINE), + PLAIN_PIZZA("Plain pizza", 35, 143, ItemID.PLAIN_PIZZA), + RAINBOW_FISH("Rainbow fish", 35, 110, ItemID.RAINBOW_FISH), + VEG_BALL("Veg ball", 35, 175, ItemID.VEG_BALL), + BLURBERRY_SPECIAL("Blurberry special", 37, 180, ItemID.BLURBERRY_SPECIAL), + CAVE_EEL("Cave eel", 38, 115, ItemID.CAVE_EEL), + PAT_OF_BUTTER("Pat of butter", 38, 40.5f, ItemID.PAT_OF_BUTTER), + DRAGON_BITTER("Dragon bitter", 39, 347, ItemID.DRAGON_BITTER), + POTATO_WITH_BUTTER("Potato with butter", 39, 40, ItemID.POTATO_WITH_BUTTER), + LOBSTER("Lobster", 40, 120, ItemID.LOBSTER), + CAKE("Cake", 40, 180, ItemID.CAKE), + TANGLED_TOADS_LEGS("Tangled toad's legs", 40, 185, ItemID.TANGLED_TOADS_LEGS), + CHILLI_POTATO("Chilli potato", 41, 165.5f, ItemID.CHILLI_POTATO), + COOKED_JUBBLY("Cooked jubbly", 41, 160, ItemID.COOKED_JUBBLY), + CHOCOLATE_BOMB("Chocolate bomb", 42, 190, ItemID.CHOCOLATE_BOMB), + FRIED_ONIONS("Fried onions", 42, 60, ItemID.FRIED_ONIONS), + BASS("Bass", 43, 130, ItemID.BASS), + MOONLIGHT_MEAD("Moonlight mead", 44, 380, ItemID.MOONLIGHT_MEAD), + SWORDFISH("Swordfish", 45, 140, ItemID.SWORDFISH), + MEAT_PIZZA("Meat pizza", 45, 169, ItemID.MEAT_PIZZA), + FRIED_MUSHROOMS("Fried mushrooms", 46, 60, ItemID.FRIED_MUSHROOMS), + CATFISH("Catfish", 46, 43, ItemID.CATFISH), + FISH_PIE("Fish pie", 47, 164, ItemID.FISH_PIE), + POTATO_WITH_CHEESE("Potato with cheese", 47, 40, ItemID.POTATO_WITH_CHEESE), + CHEESE("Cheese", 48, 64, ItemID.CHEESE), + AXEMANS_FOLLY("Axeman's folly", 49, 413, ItemID.AXEMANS_FOLLY), + COOKED_OOMLIE_WRAP("Cooked oomlie wrap", 50, 30, ItemID.COOKED_OOMLIE_WRAP), + CHOCOLATE_CAKE("Chocolate cake", 50, 210, ItemID.CHOCOLATE_CAKE), + EGG_POTATO("Egg potato", 51, 195.5f, ItemID.EGG_POTATO), + BOTANICAL_PIE("Botanical pie", 52, 180, ItemID.BOTANICAL_PIE), + LAVA_EEL("Lava eel", 53, 30, ItemID.LAVA_EEL), + CHEFS_DELIGHT("Chef's Delight", 54, 446, ItemID.CHEFS_DELIGHT), + ANCHOVY_PIZZA("Anchovy pizza", 55, 182, ItemID.ANCHOVY_PIZZA), + MUSHROOM_AND_ONION("Mushroom & onion", 57, 120, ItemID.MUSHROOM__ONION), + UGTHANKI_KEBAB_FRESH("Ugthanki kebab (Fresh)", 58, 80, ItemID.UGTHANKI_KEBAB), + PITTA_BREAD("Pitta bread", 58, 40, ItemID.PITTA_BREAD), + SLAYERS_RESPITE("Slayer's respite", 59, 479, ItemID.SLAYERS_RESPITE), + CURRY("Curry", 60, 280, ItemID.CURRY), + MUSHROOM_PIE("Mushroom pie", 60, 200, ItemID.MUSHROOM_PIE), + MONKFISH("Monkfish", 62, 150, ItemID.MONKFISH), + MUSHROOM_POTATO("Mushroom potato", 64, 270.5f, ItemID.MUSHROOM_POTATO), + PINEAPPLE_PIZZA("Pineapple pizza", 65, 188, ItemID.PINEAPPLE_PIZZA), + WINE_OF_ZAMORAK("Wine of zamorak", 65, 200, ItemID.WINE_OF_ZAMORAK), + TUNA_AND_CORN("Tuna and corn", 67, 204, ItemID.TUNA_AND_CORN), + TUNA_POTATO("Tuna potato", 68, 309.5f, ItemID.TUNA_POTATO), + ADMIRAL_PIE("Admiral pie", 70, 210, ItemID.ADMIRAL_PIE), + SACRED_EEL("Sacred eel", 72, 109, ItemID.SACRED_EEL), + DRAGONFRUIT_PIE("Dragonfruit pie", 73, 220, ItemID.DRAGONFRUIT_PIE), + SHARK("Shark", 80, 210, ItemID.SHARK), + SEA_TURTLE("Sea turtle", 82, 211.3f, ItemID.SEA_TURTLE), + ANGLERFISH("Anglerfish", 84, 230, ItemID.ANGLERFISH), + WILD_PIE("Wild pie", 85, 240, ItemID.WILD_PIE), + DARK_CRAB("Dark crab", 90, 215, ItemID.DARK_CRAB), + MANTA_RAY("Manta ray", 91, 216.3f, ItemID.MANTA_RAY), + SUMMER_PIE("Summer pie", 95, 260, ItemID.SUMMER_PIE), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java new file mode 100644 index 0000000000..26d5ecf040 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum CraftingAction implements SkillAction +{ + BALL_OF_WOOL("Ball of wool", 1, 2.5f, ItemID.BALL_OF_WOOL), + UNFIRED_POT("Unfired pot", 1, 6.3f, ItemID.UNFIRED_POT), + POT("Pot", 1, 6.3f, ItemID.POT), + LEATHER_GLOVES("Leather gloves", 1, 13.8f, ItemID.LEATHER_GLOVES), + OPAL("Opal", 1, 15, ItemID.OPAL), + OPAL_RING("Opal ring", 1, 10, ItemID.OPAL_RING), + MOLTEN_GLASS("Molten glass", 1, 20, ItemID.MOLTEN_GLASS), + BEER_GLASS("Beer glass", 1, 17.5f, ItemID.BEER_GLASS), + EMPTY_CANDLE_LANTERN("Empty candle lantern", 4, 19, ItemID.EMPTY_CANDLE_LANTERN), + GOLD_RING("Gold ring", 5, 15, ItemID.GOLD_RING), + BIRD_HOUSE("Bird house", 5, 15, ItemID.BIRD_HOUSE), + GOLD_NECKLACE("Gold necklace", 6, 20, ItemID.GOLD_NECKLACE), + LEATHER_BOOTS("Leather boots", 7, 16.3f, ItemID.LEATHER_BOOTS), + UNFIRED_PIE_DISH("Unfired pie dish", 7, 15, ItemID.UNFIRED_PIE_DISH), + PIE_DISH("Pie dish", 7, 10, ItemID.PIE_DISH), + GOLD_BRACELET("Gold bracelet", 7, 25, ItemID.GOLD_BRACELET), + UNFIRED_BOWL("Unfired bowl", 8, 18, ItemID.UNFIRED_BOWL), + BOWL("Bowl", 8, 15, ItemID.BOWL), + GOLD_AMULET_U("Gold amulet (u)", 8, 30, ItemID.GOLD_AMULET_U), + COWL("Cowl", 9, 18.5f, ItemID.LEATHER_COWL), + CROSSBOW_STRING("Crossbow string", 10, 15, ItemID.CROSSBOW_STRING), + BOW_STRING("Bow string", 10, 15, ItemID.BOW_STRING), + LEATHER_VAMBRACES("Leather vambraces", 11, 22, ItemID.LEATHER_VAMBRACES), + EMPTY_OIL_LAMP("Empty oil lamp", 12, 25, ItemID.EMPTY_OIL_LAMP), + JADE("Jade", 13, 20, ItemID.JADE), + JADE_RING("Jade ring", 13, 32, ItemID.JADE_RING), + LEATHER_BODY("Leather body", 14, 25, ItemID.LEATHER_BODY), + OAK_BIRD_HOUSE("Oak bird house", 15, 20, ItemID.OAK_BIRD_HOUSE), + RED_TOPAZ("Red topaz", 16, 25, ItemID.RED_TOPAZ), + TOPAZ_RING("Topaz ring", 16, 35, ItemID.TOPAZ_RING), + HOLY_SYMBOL("Holy symbol", 16, 50, ItemID.HOLY_SYMBOL), + OPAL_NECKLACE("Opal necklace", 16, 35, ItemID.OPAL_NECKLACE), + UNHOLY_SYMBOL("Unholy symbol", 17, 50, ItemID.UNHOLY_SYMBOL), + LEATHER_CHAPS("Leather chaps", 18, 27, ItemID.LEATHER_CHAPS), + UNFIRED_PLANT_POT("Unfired plant pot", 19, 20, ItemID.UNFIRED_PLANT_POT), + EMPTY_PLANT_POT("Empty plant pot", 19, 17.5f, ItemID.EMPTY_PLANT_POT), + MAGIC_STRING("Magic string", 19, 30, ItemID.MAGIC_STRING), + SAPPHIRE("Sapphire", 20, 50, ItemID.SAPPHIRE), + SAPPHIRE_RING("Sapphire ring", 20, 40, ItemID.SAPPHIRE_RING), + EMPTY_SACK("Empty sack", 21, 38, ItemID.EMPTY_SACK), + SAPPHIRE_NECKLACE("Sapphire necklace", 22, 55, ItemID.SAPPHIRE_NECKLACE), + OPAL_BRACELET("Opal bracelet", 22, 45, ItemID.OPAL_BRACELET), + SAPPHIRE_BRACELET("Sapphire bracelet", 23, 60, ItemID.SAPPHIRE_BRACELET), + TIARA("Tiara", 23, 52.5f, ItemID.TIARA), + SAPPHIRE_AMULET_U("Sapphire amulet (u)", 24, 65, ItemID.SAPPHIRE_AMULET_U), + UNFIRED_POT_LID("Unfired pot lid", 25, 20, ItemID.UNFIRED_POT_LID), + POT_LID("Pot lid", 25, 20, ItemID.POT_LID), + JADE_NECKLACE("Jade necklace", 25, 54, ItemID.JADE_NECKLACE), + WILLOW_BIRD_HOUSE("Willow bird house", 25, 25, ItemID.WILLOW_BIRD_HOUSE), + DRIFT_NET("Drift net", 26, 55, ItemID.SMALL_FISHING_NET_6209), + EMERALD("Emerald", 27, 67.5f, ItemID.EMERALD), + EMERALD_RING("Emerald ring", 27, 55, ItemID.EMERALD_RING), + OPAL_AMULET_U("Opal amulet (u)", 27, 55, ItemID.OPAL_AMULET_U), + HARDLEATHER_BODY("Hardleather body", 28, 35, ItemID.HARDLEATHER_BODY), + EMERALD_NECKLACE("Emerald necklace", 29, 60, ItemID.EMERALD_NECKLACE), + JADE_BRACELET("Jade bracelet", 29, 60, ItemID.JADE_BRACELET), + EMERALD_BRACELET("Emerald bracelet", 30, 65, ItemID.EMERALD_BRACELET), + ROPE("Rope", 30, 25, ItemID.ROPE), + EMERALD_AMULET_U("Emerald amulet (u)", 31, 70, ItemID.EMERALD_AMULET_U), + SPIKY_VAMBRACES("Spiky vambraces", 32, 6, ItemID.SPIKY_VAMBRACES), + TOPAZ_NECKLACE("Topaz necklace", 32, 70, ItemID.TOPAZ_NECKLACE), + VIAL("Vial", 33, 35, ItemID.VIAL), + RUBY("Ruby", 34, 85, ItemID.RUBY), + RUBY_RING("Ruby ring", 34, 70, ItemID.RUBY_RING), + JADE_AMULET_U("Jade amulet (u)", 34, 70, ItemID.JADE_AMULET_U), + BROODOO_SHIELD("Broodoo shield", 35, 100, ItemID.BROODOO_SHIELD), + TEAK_BIRD_HOUSE("Teak bird house", 35, 30, ItemID.TEAK_BIRD_HOUSE), + BASKET("Basket", 36, 56, ItemID.BASKET), + COIF("Coif", 38, 37, ItemID.COIF), + TOPAZ_BRACELET("Topaz bracelet", 38, 75, ItemID.TOPAZ_BRACELET), + RUBY_NECKLACE("Ruby necklace", 40, 75, ItemID.RUBY_NECKLACE), + HARD_LEATHER_SHIELD("Hard leather shield", 41, 70, ItemID.HARD_LEATHER_SHIELD), + RUBY_BRACELET("Ruby bracelet", 42, 80, ItemID.RUBY_BRACELET), + FISHBOWL("Fishbowl", 42, 42.5f, ItemID.FISHBOWL), + DIAMOND("Diamond", 43, 107.5f, ItemID.DIAMOND), + DIAMOND_RING("Diamond ring", 43, 85, ItemID.DIAMOND_RING), + TOPAZ_AMULET_U("Topaz amulet (u)", 45, 80, ItemID.TOPAZ_AMULET_U), + SNAKESKIN_BOOTS("Snakeskin boots", 45, 30, ItemID.SNAKESKIN_BOOTS), + MAPLE_BIRD_HOUSE("Maple bird house", 45, 35, ItemID.MAPLE_BIRD_HOUSE), + UNPOWERED_ORB("Unpowered orb", 46, 52.5f, ItemID.UNPOWERED_ORB), + SNAKESKIN_VAMBRACES("Snakeskin vambraces", 47, 35, ItemID.SNAKESKIN_VAMBRACES), + SNAKESKIN_BANDANA("Snakeskin bandana", 48, 45, ItemID.SNAKESKIN_BANDANA), + LANTERN_LENS("Lantern lens", 49, 55, ItemID.LANTERN_LENS), + RUBY_AMULET_U("Ruby amulet (u)", 50, 85, ItemID.RUBY_AMULET_U), + MAHOGANY_BIRD_HOUSE("Mahogany bird house", 50, 40, ItemID.MAHOGANY_BIRD_HOUSE), + SNAKESKIN_CHAPS("Snakeskin chaps", 51, 50, ItemID.SNAKESKIN_CHAPS), + SNAKESKIN_BODY("Snakeskin body", 53, 55, ItemID.SNAKESKIN_BODY), + WATER_BATTLESTAFF("Water battlestaff", 54, 100, ItemID.WATER_BATTLESTAFF), + DRAGONSTONE("Dragonstone", 55, 137.5f, ItemID.DRAGONSTONE), + DRAGONSTONE_RING("Dragonstone ring", 55, 100, ItemID.DRAGONSTONE_RING), + DIAMOND_NECKLACE("Diamond necklace", 56, 90, ItemID.DIAMOND_NECKLACE), + SNAKESKIN_SHIELD("Snakeskin shield", 56, 100, ItemID.SNAKESKIN_SHIELD), + GREEN_DHIDE_VAMB("Green D'hide vamb", 57, 62, ItemID.GREEN_DHIDE_VAMBRACES), + DIAMOND_BRACELET("Diamond bracelet", 58, 95, ItemID.DIAMOND_BRACELET), + EARTH_BATTLESTAFF("Earth battlestaff", 58, 112.5f, ItemID.EARTH_BATTLESTAFF), + GREEN_DHIDE_CHAPS("Green D'hide chaps", 60, 124, ItemID.GREEN_DHIDE_CHAPS), + YEW_BIRD_HOUSE("Yew bird house", 60, 45, ItemID.YEW_BIRD_HOUSE), + FIRE_BATTLESTAFF("Fire battlestaff", 62, 125, ItemID.FIRE_BATTLESTAFF), + GREEN_DHIDE_SHIELD("Green D'hide shield", 62, 124, ItemID.GREEN_DHIDE_SHIELD), + GREEN_DHIDE_BODY("Green D'hide body", 63, 186, ItemID.GREEN_DHIDE_BODY), + AIR_BATTLESTAFF("Air battlestaff", 66, 137.5f, ItemID.AIR_BATTLESTAFF), + BLUE_DHIDE_VAMB("Blue D'hide vamb", 66, 70, ItemID.BLUE_DHIDE_VAMBRACES), + ONYX_RING("Onyx ring", 67, 115, ItemID.ONYX_RING), + ONYX("Onyx", 67, 167.5f, ItemID.ONYX), + BLUE_DHIDE_CHAPS("Blue D'hide chaps", 68, 140, ItemID.BLUE_DHIDE_CHAPS), + BLUE_DHIDE_SHIELD("Blue D'hide shield", 69, 140, ItemID.BLUE_DHIDE_SHIELD), + DIAMOND_AMULET_U("Diamond amulet (u)", 70, 100, ItemID.DIAMOND_AMULET_U), + BLUE_DHIDE_BODY("Blue D'hide body", 71, 210, ItemID.BLUE_DHIDE_BODY), + DRAGONSTONE_NECKLACE("Dragonstone necklace", 72, 105, ItemID.DRAGON_NECKLACE), + RED_DHIDE_VAMB("Red D'hide vamb", 73, 78, ItemID.RED_DHIDE_VAMBRACES), + DRAGONSTONE_BRACELET("Dragonstone bracelet", 74, 110, ItemID.DRAGONSTONE_BRACELET), + RED_DHIDE_CHAPS("Red D'hide chaps", 75, 156, ItemID.RED_DHIDE_CHAPS), + MAGIC_BIRD_HOUSE("Magic bird house", 75, 50, ItemID.MAGIC_BIRD_HOUSE), + RED_DHIDE_SHIELD("Red D'hide shield", 76, 156, ItemID.RED_DHIDE_SHIELD), + RED_DHIDE_BODY("Red D'hide body", 77, 234, ItemID.RED_DHIDE_BODY), + BLACK_DHIDE_VAMB("Black D'hide vamb", 79, 86, ItemID.BLACK_DHIDE_VAMBRACES), + DRAGONSTONE_AMULET_U("Dragonstone amulet (u)", 80, 150, ItemID.DRAGONSTONE_AMULET_U), + BLACK_DHIDE_CHAPS("Black D'hide chaps", 82, 172, ItemID.BLACK_DHIDE_CHAPS), + ONYX_NECKLACE("Onyx necklace", 82, 120, ItemID.ONYX_NECKLACE), + AMETHYST_BOLT_TIPS("Amethyst bolt tips", 83, 4, ItemID.AMETHYST_BOLT_TIPS), + BLACK_DHIDE_SHIELD("Black D'hide shield", 83, 172, ItemID.BLACK_DHIDE_SHIELD), + BLACK_DHIDE_BODY("Black D'hide body", 84, 258, ItemID.BLACK_DHIDE_BODY), + ONYX_BRACELET("Onyx bracelet", 84, 125, ItemID.ONYX_BRACELET), + AMETHYST_ARROWTIPS("Amethyst arrowtips", 85, 4, ItemID.AMETHYST_ARROWTIPS), + AMETHYST_JAVELIN_HEADS("Amethyst javelin heads", 87, 12, ItemID.AMETHYST_JAVELIN_HEADS), + LIGHT_ORB("Light orb", 87, 70, ItemID.LIGHT_ORB), + AMETHYST_DART_TIP("Amethyst dart tip", 89, 7.5f, ItemID.AMETHYST_DART_TIP), + ZENYTE("Zenyte", 89, 200, ItemID.ZENYTE), + ZENYTE_RING("Zenyte ring", 89, 150, ItemID.ZENYTE_RING), + ONYX_AMULET_U("Onyx amulet (u)", 90, 165, ItemID.ONYX_AMULET_U), + REDWOOD_BIRD_HOUSE("Redwood bird house", 90, 55, ItemID.REDWOOD_BIRD_HOUSE), + ZENYTE_NECKLACE("Zenyte necklace", 92, 165, ItemID.ZENYTE_NECKLACE), + ZENYTE_BRACELET("Zenyte bracelet", 95, 180, ItemID.ZENYTE_BRACELET), + ZENYTE_AMULET_U("Zenyte amulet (u)", 98, 200, ItemID.ZENYTE_AMULET_U), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java new file mode 100644 index 0000000000..bcf06f1668 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum FarmingAction implements SkillAction +{ + PLANT("Plant", 1, 31, ItemID.PLANT), + FERN_BIG_PLANT("Fern (big plant)", 1, 31, ItemID.FERN_8186), + SHORT_PLANT("Short Plant", 1, 31, ItemID.SHORT_PLANT), + DOCK_LEAF("Dock Leaf", 1, 31, ItemID.DOCK_LEAF), + SMALL_FERN("Small Fern", 1, 70, ItemID.SMALL_FERN), + THISTLE("Thistle", 1, 70, ItemID.THISTLE), + BUSH("Bush", 1, 70, ItemID.BUSH), + LARGE_LEAF_BUSH("Large Leaf Bush", 1, 70, ItemID.LARGELEAF_PLANT), + HUGE_PLANT("Huge Plant", 1, 100, ItemID.HUGE_PLANT), + TALL_PLANT("Tall Plant", 1, 100, ItemID.TALL_PLANT), + REEDS("Reeds", 1, 100, ItemID.REEDS), + FERN_SMALL_PLANT("Fern (small plant)", 1, 100, ItemID.FERN), + WINTER_SQIRK("Winter Sq'irk", 1, 30, ItemID.WINTER_SQIRK), + SPRING_SQIRK("Spring Sq'irk", 1, 40, ItemID.SPRING_SQIRK), + AUTUMN_SQIRK("Autumn Sq'irk", 1, 50, ItemID.AUTUMN_SQIRK), + SUMMER_SQIRK("Summer Sq'irk", 1, 60, ItemID.SUMMER_SQIRK), + POTATOES("Potatoes", 1, 8, ItemID.POTATO), + ONIONS("Onions", 5, 10, ItemID.ONION), + CABBAGES("Cabbages", 7, 10, ItemID.CABBAGE), + GUAM_LEAF("Guam Leaf", 9, 11, ItemID.GUAM_LEAF), + TOMATOES("Tomatoes", 12, 12.5f, ItemID.TOMATO), + MARRENTILL("Marrentill", 14, 13.5f, ItemID.MARRENTILL), + OAK_TREE("Oak Tree", 15, 481.3f, ItemID.OAK_LOGS), + TARROMIN("Tarromin", 19, 16, ItemID.TARROMIN), + SWEETCORN("Sweetcorn", 20, 17, ItemID.SWEETCORN), + GIANT_SEAWEED("Giant seaweed", 23, 21, ItemID.GIANT_SEAWEED), + HARRALANDER("Harralander", 26, 21.5f, ItemID.HARRALANDER), + LIMPWURT_PLANT("Limpwurt Plant", 26, 40, ItemID.LIMPWURT_ROOT), + APPLE_TREE("Apple Tree", 27, 1221.5f, ItemID.COOKING_APPLE), + GOUTWEED("Goutweed", 29, 105, ItemID.GOUTWEED), + WILLOW_TREE("Willow Tree", 30, 1481.5f, ItemID.WILLOW_LOGS), + STRAWBERRIES("Strawberries", 31, 26, ItemID.STRAWBERRY), + RANARR_WEED("Ranarr Weed", 32, 27, ItemID.RANARR_WEED), + BANANA_TREE("Banana Tree", 33, 1778.5f, ItemID.BANANA), + TEAK_TREE("Teak Tree", 35, 7315, ItemID.TEAK_LOGS), + TOADFLAX("Toadflax", 38, 34, ItemID.TOADFLAX), + ORANGE_TREE("Orange Tree", 39, 2505.7f, ItemID.ORANGE), + CURRY_TREE("Curry Tree", 42, 2946.9f, ItemID.CURRY_LEAF), + IRIT_LEAF("Irit Leaf", 44, 43, ItemID.IRIT_LEAF), + MAPLE_TREE("Maple Tree", 45, 3448.4f, ItemID.MAPLE_LOGS), + WATERMELONS("Watermelons", 47, 49, ItemID.WATERMELON), + AVANTOE("Avantoe", 50, 54.5f, ItemID.AVANTOE), + PINEAPPLE_PLANT("Pineapple Plant", 51, 4662.7f, ItemID.PINEAPPLE), + MAHOGANY_TREE("Mahogany Tree", 55, 15783, ItemID.MAHOGANY_LOGS), + KWUARM("Kwuarm", 56, 69, ItemID.KWUARM), + PAPAYA_TREE("Papaya Tree", 57, 6218.4f, ItemID.PAPAYA_FRUIT), + WHITE_LILY("White lily", 58, 292, ItemID.WHITE_LILY), + YEW_TREE("Yew Tree", 60, 7150.9f, ItemID.YEW_LOGS), + SNAPE_GRASS("Snape grass", 61, 82, ItemID.SNAPE_GRASS), + SNAPDRAGON("Snapdragon", 62, 87.5f, ItemID.SNAPDRAGON), + HESPORI("Hespori", 65, 12662, ItemID.CLAN_WARS_CAPE_12662), + CADANTINE("Cadantine", 67, 106.5f, ItemID.CADANTINE), + PALM_TREE("Palm Tree", 68, 10260.6f, ItemID.COCONUT), + CALQUAT_TREE("Calquat Tree", 72, 12225.5f, ItemID.CALQUAT_FRUIT), + LANTADYME("Lantadyme", 73, 134.5f, ItemID.LANTADYME), + CRYSTAL_TREE("Crystal Tree", 74, 13366, ItemID.CRYSTAL_SHARD), + MAGIC_TREE("Magic Tree", 75, 13913.8f, ItemID.MAGIC_LOGS), + DWARF_WEED("Dwarf Weed", 79, 170.5f, ItemID.DWARF_WEED), + DRAGONFRUIT_TREE("Dragonfruit Tree", 81, 17895, ItemID.DRAGONFRUIT), + SPIRIT_TREE("Spirit Tree", 83, 19501.3f, ItemID.SPIRIT_TREE), + CELASTRUS_TREE("Celastrus Tree", 85, 14334, ItemID.CELASTRUS_BARK), + TORSTOL("Torstol", 85, 199.5f, ItemID.TORSTOL), + REDWOOD_TREE("Redwood Tree", 90, 22680, ItemID.REDWOOD_LOGS), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillDataBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingBonus.java similarity index 78% rename from runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillDataBonus.java rename to runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingBonus.java index 675fcb51db..bef0a0bf2c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillDataBonus.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingBonus.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Kruithne + * Copyright (c) 2021, Jordan Atwood * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,13 +22,18 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.skillcalculator.beans; +package net.runelite.client.plugins.skillcalculator.skills; +import lombok.AllArgsConstructor; import lombok.Getter; -@Getter -public class SkillDataBonus +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum FarmingBonus implements SkillBonus { - private String name; - private float value; -} \ No newline at end of file + FARMERS_OUTFIT("Farmer's Outfit (+2.5%)", 0.025f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java new file mode 100644 index 0000000000..57d1b92e7e --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum FiremakingAction implements SkillAction +{ + LOGS("Logs", 1, 40, ItemID.LOGS), + ACHEY_TREE_LOGS("Achey tree logs", 1, 40, ItemID.ACHEY_TREE_LOGS), + OAK_LOGS("Oak logs", 15, 60, ItemID.OAK_LOGS), + WILLOW_LOGS("Willow logs", 30, 90, ItemID.WILLOW_LOGS), + TEAK_LOGS("Teak logs", 35, 105, ItemID.TEAK_LOGS), + ARCTIC_PINE_LOGS("Arctic pine logs", 42, 125, ItemID.ARCTIC_PINE_LOGS), + MAPLE_LOGS("Maple logs", 45, 135, ItemID.MAPLE_LOGS), + MAHOGANY_LOGS("Mahogany logs", 50, 157.5f, ItemID.MAHOGANY_LOGS), + YEW_LOGS("Yew logs", 60, 202.5f, ItemID.YEW_LOGS), + BLISTERWOOD_LOGS("Blisterwood logs", 62, 96, ItemID.BLISTERWOOD_LOGS), + MAGIC_LOGS("Magic logs", 75, 303.8f, ItemID.MAGIC_LOGS), + REDWOOD_LOGS("Redwood logs", 90, 350, ItemID.REDWOOD_LOGS), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingBonus.java new file mode 100644 index 0000000000..6f4cd5a720 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingBonus.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum FiremakingBonus implements SkillBonus +{ + PYROMANCER_OUTFIT("Pyromancer Outfit (+2.5%)", 0.025f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java new file mode 100644 index 0000000000..c414ac2d77 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum FishingAction implements SkillAction +{ + RAW_SHRIMPS("Raw shrimps", 1, 10, ItemID.RAW_SHRIMPS), + RAW_SARDINE("Raw sardine", 5, 20, ItemID.RAW_SARDINE), + RAW_KARAMBWANJI("Raw karambwanji", 5, 5, ItemID.RAW_KARAMBWANJI), + RAW_GUPPY("Raw guppy", 7, 8, ItemID.RAW_GUPPY), + RAW_HERRING("Raw herring", 10, 30, ItemID.RAW_HERRING), + RAW_ANCHOVIES("Raw anchovies", 15, 40, ItemID.RAW_ANCHOVIES), + RAW_MACKEREL("Raw mackerel", 16, 20, ItemID.RAW_MACKEREL), + RAW_TROUT("Raw trout", 20, 50, ItemID.RAW_TROUT), + RAW_CAVEFISH("Raw cavefish", 20, 16, ItemID.RAW_CAVEFISH), + RAW_COD("Raw cod", 23, 45, ItemID.RAW_COD), + RAW_PIKE("Raw pike", 25, 60, ItemID.RAW_PIKE), + RAW_SLIMY_EEL("Raw slimy eel", 28, 65, ItemID.RAW_SLIMY_EEL), + RAW_SALMON("Raw salmon", 30, 70, ItemID.RAW_SALMON), + RAW_TETRA("Raw tetra", 33, 24, ItemID.RAW_TETRA), + RAW_TUNA("Raw tuna", 35, 80, ItemID.RAW_TUNA), + RAW_RAINBOW_FISH("Raw rainbow fish", 38, 80, ItemID.RAW_RAINBOW_FISH), + RAW_CAVE_EEL("Raw cave eel", 38, 80, ItemID.RAW_CAVE_EEL), + RAW_LOBSTER("Raw lobster", 40, 90, ItemID.RAW_LOBSTER), + RAW_BASS("Raw bass", 46, 100, ItemID.RAW_BASS), + RAW_CATFISH("Raw catfish", 46, 33, ItemID.RAW_CATFISH), + LEAPING_TROUT("Leaping trout", 48, 50, ItemID.LEAPING_TROUT), + RAW_SWORDFISH("Raw swordfish", 50, 100, ItemID.RAW_SWORDFISH), + LEAPING_SALMON("Leaping salmon", 58, 70, ItemID.LEAPING_SALMON), + RAW_MONKFISH("Raw monkfish", 62, 120, ItemID.RAW_MONKFISH), + RAW_KARAMBWAN("Raw karambwan", 65, 50, ItemID.RAW_KARAMBWAN), + LEAPING_STURGEON("Leaping sturgeon", 70, 80, ItemID.LEAPING_STURGEON), + RAW_SHARK("Raw shark", 76, 110, ItemID.RAW_SHARK), + RAW_SEA_TURTLE("Raw sea turtle", 79, 38, ItemID.RAW_SEA_TURTLE), + INFERNAL_EEL("Infernal eel", 80, 95, ItemID.INFERNAL_EEL), + RAW_MANTA_RAY("Raw manta ray", 81, 46, ItemID.RAW_MANTA_RAY), + RAW_ANGLERFISH("Raw anglerfish", 82, 120, ItemID.RAW_ANGLERFISH), + MINNOW("Minnow", 82, 26.5f, ItemID.MINNOW), + RAW_DARK_CRAB("Raw dark crab", 85, 130, ItemID.RAW_DARK_CRAB), + SACRED_EEL("Sacred eel", 87, 105, ItemID.SACRED_EEL), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillDataEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingBonus.java similarity index 78% rename from runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillDataEntry.java rename to runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingBonus.java index b21188d913..422d22968e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillDataEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingBonus.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Kruithne + * Copyright (c) 2021, Jordan Atwood * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,17 +22,18 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.skillcalculator.beans; +package net.runelite.client.plugins.skillcalculator.skills; +import lombok.AllArgsConstructor; import lombok.Getter; -@Getter -public class SkillDataEntry +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum FishingBonus implements SkillBonus { - private String name; - private int level; - private double xp; - private Integer icon; - private Integer sprite; - private boolean ignoreBonus; -} \ No newline at end of file + ANGLERS_OUTFIT("Angler's Outfit (+2.5%)", 0.025f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java new file mode 100644 index 0000000000..7da07f6817 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum FletchingAction implements SkillAction +{ + ARROW_SHAFT("Arrow shaft", 1, 0.33f, ItemID.ARROW_SHAFT), + HEADLESS_ARROW("Headless arrow", 1, 1, ItemID.HEADLESS_ARROW), + BRONZE_ARROW("Bronze arrow", 1, 1.3f, ItemID.BRONZE_ARROW), + OGRE_ARROW("Ogre arrow", 5, 1, ItemID.OGRE_ARROW), + SHORTBOW_U("Shortbow (u)", 5, 5, ItemID.SHORTBOW_U), + SHORTBOW("Shortbow", 5, 5, ItemID.SHORTBOW), + BRONZE_BOLTS("Bronze bolts", 9, 0.5f, ItemID.BRONZE_BOLTS), + WOODEN_STOCK("Wooden stock", 9, 6, ItemID.WOODEN_STOCK), + BRONZE_CROSSBOW_U("Bronze crossbow (u)", 9, 12, ItemID.BRONZE_CROSSBOW_U), + BRONZE_CROSSBOW("Bronze crossbow", 9, 6, ItemID.BRONZE_CROSSBOW), + BRONZE_DART("Bronze dart", 10, 1.8f, ItemID.BRONZE_DART), + LONGBOW("Longbow", 10, 10, ItemID.LONGBOW), + LONGBOW_U("Longbow (u)", 10, 10, ItemID.LONGBOW_U), + OPAL_BOLTS("Opal bolts", 11, 1.6f, ItemID.OPAL_BOLTS), + IRON_ARROW("Iron arrow", 15, 2.5f, ItemID.IRON_ARROW), + OAK_SHORTBOW_U("Oak shortbow (u)", 20, 16.5f, ItemID.OAK_SHORTBOW_U), + OAK_SHORTBOW("Oak shortbow", 20, 16.5f, ItemID.OAK_SHORTBOW), + IRON_DART("Iron dart", 22, 3.8f, ItemID.IRON_DART), + OAK_STOCK("Oak stock", 24, 16, ItemID.OAK_STOCK), + BLURITE_CROSSBOW_U("Blurite crossbow (u)", 24, 32, ItemID.BLURITE_CROSSBOW_U), + BLURITE_CROSSBOW("Blurite crossbow", 24, 16, ItemID.BLURITE_CROSSBOW), + OAK_LONGBOW_U("Oak longbow (u)", 25, 25, ItemID.OAK_LONGBOW_U), + OAK_LONGBOW("Oak longbow", 25, 25, ItemID.OAK_LONGBOW), + OAK_SHIELD("Oak shield", 27, 50, ItemID.OAK_SHIELD), + STEEL_ARROW("Steel arrow", 30, 5, ItemID.STEEL_ARROW), + KEBBIT_BOLTS("Kebbit bolts", 32, 1, ItemID.KEBBIT_BOLTS), + WILLOW_SHORTBOW_U("Willow shortbow (u)", 35, 33.3f, ItemID.WILLOW_SHORTBOW_U), + WILLOW_SHORTBOW("Willow shortbow", 35, 33.3f, ItemID.WILLOW_SHORTBOW), + STEEL_DART("Steel dart", 37, 7.5f, ItemID.STEEL_DART), + IRON_BOLTS("Iron bolts", 39, 1.5f, ItemID.IRON_BOLTS), + WILLOW_STOCK("Willow stock", 39, 22, ItemID.WILLOW_STOCK), + IRON_CROSSBOW_U("Iron crossbow (u)", 39, 44, ItemID.IRON_CROSSBOW_U), + IRON_CROSSBOW("Iron crossbow", 39, 22, ItemID.IRON_CROSSBOW), + WILLOW_LONGBOW_U("Willow longbow (u)", 40, 41.5f, ItemID.WILLOW_LONGBOW_U), + WILLOW_LONGBOW("Willow longbow", 40, 41.5f, ItemID.WILLOW_LONGBOW), + BATTLESTAFF("Battlestaff", 40, 80, ItemID.BATTLESTAFF), + PEARL_BOLTS("Pearl bolts", 41, 3.2f, ItemID.PEARL_BOLTS), + WILLOW_SHIELD("Willow shield", 42, 83, ItemID.WILLOW_SHIELD), + LONG_KEBBIT_BOLTS("Long kebbit bolts", 42, 1.3f, ItemID.LONG_KEBBIT_BOLTS), + SILVER_BOLTS("Silver bolts", 43, 2.5f, ItemID.SILVER_BOLTS), + MITHRIL_ARROW("Mithril arrow", 45, 7.5f, ItemID.MITHRIL_ARROW), + STEEL_BOLTS("Steel bolts", 46, 3.5f, ItemID.STEEL_BOLTS), + TEAK_STOCK("Teak stock", 46, 27, ItemID.TEAK_STOCK), + STEEL_CROSSBOW_U("Steel crossbow (u)", 46, 54, ItemID.STEEL_CROSSBOW_U), + STEEL_CROSSBOW("Steel crossbow", 46, 27, ItemID.STEEL_CROSSBOW), + MAPLE_SHORTBOW_U("Maple shortbow (u)", 50, 50, ItemID.MAPLE_SHORTBOW_U), + MAPLE_SHORTBOW("Maple shortbow", 50, 50, ItemID.MAPLE_SHORTBOW), + BARBED_BOLTS("Barbed bolts", 51, 9.5f, ItemID.BARBED_BOLTS), + MITHRIL_DART("Mithril dart", 52, 11.2f, ItemID.MITHRIL_DART), + BROAD_ARROWS("Broad arrows", 52, 10, ItemID.BROAD_ARROWS), + TOXIC_BLOWPIPE("Toxic blowpipe", 53, 120, ItemID.TOXIC_BLOWPIPE), + MITH_CROSSBOW("Mith crossbow", 54, 32, ItemID.MITHRIL_CROSSBOW), + MAPLE_STOCK("Maple stock", 54, 32, ItemID.MAPLE_STOCK), + MITHRIL_BOLTS("Mithril bolts", 54, 5, ItemID.MITHRIL_BOLTS), + MITHRIL_CROSSBOW_U("Mithril crossbow (u)", 54, 64f, ItemID.MITHRIL_CROSSBOW_U), + MAPLE_LONGBOW_U("Maple longbow (u)", 55, 58.3f, ItemID.MAPLE_LONGBOW_U), + BROAD_BOLTS("Broad bolts", 55, 3, ItemID.BROAD_BOLTS), + MAPLE_LONGBOW("Maple longbow", 55, 58, ItemID.MAPLE_LONGBOW), + SAPPHIRE_BOLTS("Sapphire bolts", 56, 4.7f, ItemID.SAPPHIRE_BOLTS), + MAPLE_SHIELD("Maple shield", 57, 116.5f, ItemID.MAPLE_SHIELD), + EMERALD_BOLTS("Emerald bolts", 58, 5.5f, ItemID.EMERALD_BOLTS), + ADAMANT_ARROW("Adamant arrow", 60, 10, ItemID.ADAMANT_ARROW), + ADAMANT_BOLTS("Adamant bolts", 61, 7, ItemID.ADAMANT_BOLTS), + MAHOGANY_STOCK("Mahogany stock", 61, 41, ItemID.MAHOGANY_STOCK), + ADAMANT_CROSSBOW_U("Adamant crossbow (u)", 61, 82, ItemID.ADAMANT_CROSSBOW_U), + ADAMANT_CROSSBOW("Adamant crossbow", 61, 41, ItemID.ADAMANT_CROSSBOW), + RUBY_BOLTS("Ruby bolts", 63, 6.3f, ItemID.RUBY_BOLTS), + DIAMOND_BOLTS("Diamond bolts", 65, 7, ItemID.DIAMOND_BOLTS), + YEW_SHORTBOW("Yew shortbow", 65, 67.5f, ItemID.YEW_SHORTBOW), + YEW_SHORTBOW_U("Yew shortbow (u)", 65, 67.5f, ItemID.YEW_SHORTBOW_U), + ADAMANT_DART("Adamant dart", 67, 15, ItemID.ADAMANT_DART), + RUNITE_CROSSBOW_U("Runite crossbow (u)", 69, 100, ItemID.RUNITE_CROSSBOW_U), + RUNE_CROSSBOW("Rune crossbow", 69, 50, ItemID.RUNE_CROSSBOW), + YEW_STOCK("Yew stock", 69, 50, ItemID.YEW_STOCK), + RUNITE_BOLTS("Runite bolts", 69, 10, ItemID.RUNITE_BOLTS), + YEW_LONGBOW("Yew longbow", 70, 75, ItemID.YEW_LONGBOW), + YEW_LONGBOW_U("Yew longbow (u)", 70, 75, ItemID.YEW_LONGBOW_U), + DRAGONSTONE_BOLTS("Dragonstone bolts", 71, 8.2f, ItemID.DRAGONSTONE_BOLTS), + YEW_SHIELD("Yew shield", 72, 150, ItemID.YEW_SHIELD), + ONYX_BOLTS("Onyx bolts", 73, 9.4f, ItemID.ONYX_BOLTS), + RUNE_ARROW("Rune arrow", 75, 12.5f, ItemID.RUNE_ARROW), + AMETHYST_BROAD_BOLTS("Amethyst broad bolts", 76, 10.6f, ItemID.AMETHYST_BROAD_BOLTS), + MAGIC_STOCK("Magic stock", 78, 70, ItemID.MAGIC_STOCK), + DRAGON_CROSSBOW_U("Dragon crossbow (u)", 78, 135, ItemID.DRAGON_CROSSBOW_U), + DRAGON_CROSSBOW("Dragon crossbow", 78, 70, ItemID.DRAGON_CROSSBOW), + MAGIC_SHORTBOW("Magic shortbow", 80, 83.3f, ItemID.MAGIC_SHORTBOW), + MAGIC_SHORTBOW_U("Magic shortbow (u)", 80, 83.3f, ItemID.MAGIC_SHORTBOW_U), + RUNE_DART("Rune dart", 81, 18.8f, ItemID.RUNE_DART), + AMETHYST_ARROW("Amethyst arrow", 82, 13.5f, ItemID.AMETHYST_ARROW), + DRAGON_BOLTS("Dragon bolts", 84, 12, ItemID.DRAGON_BOLTS_UNF), + AMETHYST_JAVELIN("Amethyst javelin", 84, 13.5f, ItemID.AMETHYST_JAVELIN), + MAGIC_LONGBOW("Magic longbow", 85, 91.5f, ItemID.MAGIC_LONGBOW), + MAGIC_LONGBOW_U("Magic longbow (u)", 85, 91.5f, ItemID.MAGIC_LONGBOW_U), + MAGIC_SHIELD("Magic shield", 87, 183, ItemID.MAGIC_SHIELD), + AMETHYST_DART("Amethyst dart", 90, 21, ItemID.AMETHYST_DART), + DRAGON_ARROW("Dragon arrow", 90, 15, ItemID.DRAGON_ARROW), + REDWOOD_SHIELD("Redwood shield", 92, 216, ItemID.REDWOOD_SHIELD), + DRAGON_DART("Dragon dart", 95, 25, ItemID.DRAGON_DART), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java new file mode 100644 index 0000000000..fc2d5b6c65 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum HerbloreAction implements SkillAction +{ + ATTACK_POTION_3("Attack potion (3)", 3, 25, ItemID.ATTACK_POTION3), + GUAM_LEAF("Guam leaf", 3, 2.5f, ItemID.GUAM_LEAF), + MARRENTILL("Marrentill", 5, 3.8f, ItemID.MARRENTILL), + ANTIPOISON_3("Antipoison (3)", 5, 37.5f, ItemID.ANTIPOISON3), + RELICYMS_BALM_3("Relicym's balm (3)", 8, 40, ItemID.RELICYMS_BALM3), + TARROMIN("Tarromin", 11, 5, ItemID.TARROMIN), + STRENGTH_POTION_3("Strength potion (3)", 12, 50, ItemID.STRENGTH_POTION3), + SERUM_207_3("Serum 207 (3)", 15, 50, ItemID.SERUM_207_3), + GUTHIX_REST_3("Guthix rest (3)", 18, 59, ItemID.GUTHIX_REST3), + GUAM_TAR("Guam tar", 19, 30, ItemID.GUAM_TAR), + HARRALANDER("Harralander", 20, 6.3f, ItemID.HARRALANDER), + COMPOST_POTION_3("Compost potion (3)", 22, 60, ItemID.COMPOST_POTION3), + RESTORE_POTION_3("Restore potion (3)", 22, 62.5f, ItemID.RESTORE_POTION3), + RANARR_WEED("Ranarr weed", 25, 7.5f, ItemID.RANARR_WEED), + ENERGY_POTION_3("Energy potion (3)", 26, 67.5f, ItemID.ENERGY_POTION3), + TOADFLAX("Toadflax", 30, 8, ItemID.TOADFLAX), + DEFENCE_POTION_3("Defence potion (3)", 30, 75, ItemID.DEFENCE_POTION3), + MARRENTILL_TAR("Marrentill tar", 31, 42.5f, ItemID.MARRENTILL_TAR), + AGILITY_POTION_3("Agility potion (3)", 34, 80, ItemID.AGILITY_POTION3), + COMBAT_POTION_3("Combat potion (3)", 36, 84, ItemID.COMBAT_POTION3), + PRAYER_POTION_3("Prayer potion (3)", 38, 87.5f, ItemID.PRAYER_POTION3), + TARROMIN_TAR("Tarromin tar", 39, 55, ItemID.TARROMIN_TAR), + IRIT_LEAF("Irit leaf", 40, 8.8f, ItemID.IRIT_LEAF), + HARRALANDER_TAR("Harralander tar", 44, 72.5f, ItemID.HARRALANDER_TAR), + SUPER_ATTACK_3("Super attack (3)", 45, 100, ItemID.SUPER_ATTACK3), + SUPERANTIPOISON_3("Superantipoison (3)", 48, 106.3f, ItemID.SUPERANTIPOISON3), + AVANTOE("Avantoe", 48, 10, ItemID.AVANTOE), + FISHING_POTION_3("Fishing potion (3)", 50, 112.5f, ItemID.FISHING_POTION3), + SUPER_ENERGY_3("Super energy (3)", 52, 117.5f, ItemID.SUPER_ENERGY3), + HUNTER_POTION_3("Hunter potion (3)", 53, 120, ItemID.HUNTER_POTION3), + KWUARM("Kwuarm", 54, 11.3f, ItemID.KWUARM), + SUPER_STRENGTH_3("Super strength (3)", 55, 125, ItemID.SUPER_STRENGTH3), + MAGIC_ESSENCE_POTION_3("Magic essence potion (3)", 57, 130, ItemID.MAGIC_ESSENCE3), + SNAPDRAGON("Snapdragon", 59, 11.8f, ItemID.SNAPDRAGON), + WEAPON_POISON("Weapon poison", 60, 137.5f, ItemID.WEAPON_POISON), + SUPER_RESTORE_3("Super restore (3)", 63, 142.5f, ItemID.SUPER_RESTORE3), + CADANTINE("Cadantine", 65, 12.5f, ItemID.CADANTINE), + SANFEW_SERUM_3("Sanfew serum (3)", 65, 160, ItemID.SANFEW_SERUM3), + SUPER_DEFENCE_3("Super defence (3)", 66, 150, ItemID.SUPER_DEFENCE3), + LANTADYME("Lantadyme", 67, 13.1f, ItemID.LANTADYME), + ANTIDOTE_PLUS_3("Antidote+ (3)", 68, 155, ItemID.ANTIDOTE3), + ANTIFIRE_POTION_3("Antifire potion (3)", 69, 157.5f, ItemID.ANTIFIRE_POTION3), + DIVINE_SUPER_ATTACK_POTION_4("Divine super attack potion(4)", 70, 2, ItemID.DIVINE_SUPER_ATTACK_POTION4), + DIVINE_SUPER_DEFENCE_POTION_4("Divine super defence potion(4)", 70, 2, ItemID.DIVINE_SUPER_DEFENCE_POTION4), + DIVINE_SUPER_STRENGTH_POTION_4("Divine super strength potion(4)", 70, 2, ItemID.DIVINE_SUPER_STRENGTH_POTION4), + DWARF_WEED("Dwarf weed", 70, 13.8f, ItemID.DWARF_WEED), + RANGING_POTION_3("Ranging potion (3)", 72, 162.5f, ItemID.RANGING_POTION3), + WEAPON_POISON_PLUS("Weapon poison (+)", 73, 165, ItemID.WEAPON_POISON_5937), + DIVINE_RANGING_POTION_4("Divine ranging potion(4)", 74, 2, ItemID.DIVINE_RANGING_POTION4), + TORSTOL("Torstol", 75, 15, ItemID.TORSTOL), + MAGIC_POTION_3("Magic potion (3)", 76, 172.5f, ItemID.MAGIC_POTION3), + STAMINA_POTION_3("Stamina potion (3)", 77, 76.5f, ItemID.STAMINA_POTION3), + STAMINA_POTION_4("Stamina potion (4)", 77, 102, ItemID.STAMINA_POTION4), + DIVINE_MAGIC_POTION_4("Divine magic potion(4)", 78, 2, ItemID.DIVINE_MAGIC_POTION4), + ZAMORAK_BREW_3("Zamorak brew (3)", 78, 175, ItemID.ZAMORAK_BREW3), + ANTIDOTE_PLUS_PLUS_3("Antidote++ (3)", 79, 177.5f, ItemID.ANTIDOTE3_5954), + BASTION_POTION_3("Bastion potion (3)", 80, 155, ItemID.BASTION_POTION3), + BATTLEMAGE_POTION_3("Battlemage potion (3)", 80, 155, ItemID.BATTLEMAGE_POTION3), + SARADOMIN_BREW_3("Saradomin brew (3)", 81, 180, ItemID.SARADOMIN_BREW3), + WEAPON_POISON_PLUS_PLUS("Weapon poison (++)", 82, 190, ItemID.WEAPON_POISON_5940), + EXTENDED_ANTIFIRE_3("Extended antifire (3)", 84, 82.5f, ItemID.EXTENDED_ANTIFIRE3), + EXTENDED_ANTIFIRE_4("Extended antifire (4)", 84, 110, ItemID.EXTENDED_ANTIFIRE4), + DIVINE_BASTION_POTION_4("Divine bastion potion(4)", 86, 2, ItemID.DIVINE_BASTION_POTION4), + DIVINE_BATTLEMAGE_POTION_4("Divine battlemage potion(4)", 86, 2, ItemID.DIVINE_BATTLEMAGE_POTION4), + ANTIVENOM_3("Anti-venom(3)", 87, 90, ItemID.ANTIVENOM3), + ANTIVENOM_4("Anti-venom(4)", 87, 120, ItemID.ANTIVENOM4), + SUPER_COMBAT_POTION_4("Super combat potion(4)", 90, 150, ItemID.SUPER_COMBAT_POTION4), + SUPER_ANTIFIRE_4("Super antifire (4)", 92, 130, ItemID.SUPER_ANTIFIRE_POTION4), + ANTIVENOM_PLUS_4("Anti-venom+(4)", 94, 125, ItemID.ANTIVENOM4_12913), + DIVINE_SUPER_COMBAT_POTION_4("Divine super combat potion(4)", 97, 2, ItemID.DIVINE_SUPER_COMBAT_POTION4), + EXTENDED_SUPER_ANTIFIRE_3("Extended super antifire (3)", 98, 120, ItemID.SUPER_ANTIFIRE_POTION3), + EXTENDED_SUPER_ANTIFIRE_4("Extended super antifire (4)", 98, 160, ItemID.SUPER_ANTIFIRE_POTION4), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java new file mode 100644 index 0000000000..01ed388c80 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum HunterAction implements SkillAction +{ + CRIMSON_SWIFT("Crimson Swift", 1, 34, ItemID.CRIMSON_SWIFT), + POLAR_KEBBIT("Polar Kebbit", 1, 30, ItemID.KEBBIT), + COMMON_KEBBIT("Common Kebbit", 3, 36, ItemID.KEBBIT_9954), + GOLDEN_WARBLER("Golden Warbler", 5, 47, ItemID.GOLDEN_WARBLER), + REGULAR_BIRD_HOUSE("Regular Bird House", 5, 280, ItemID.BIRD_HOUSE), + FELDIP_WEASEL("Feldip Weasel", 7, 48, ItemID.KEBBIT_9955), + COPPER_LONGTAIL("Copper Longtail", 9, 61, ItemID.COPPER_LONGTAIL), + CERULEAN_TWITCH("Cerulean Twitch", 11, 64.5f, ItemID.CERULEAN_TWITCH), + DESERT_DEVIL("Desert Devil", 13, 66, ItemID.KEBBIT_9956), + OAK_BIRD_HOUSE("Oak Bird House", 14, 420, ItemID.OAK_BIRD_HOUSE), + RUBY_HARVEST("Ruby Harvest", 15, 24, ItemID.BUTTERFLY), + BABY_IMPLING("Baby Impling", 17, 18, ItemID.BABY_IMPLING_JAR), + TROPICAL_WAGTAIL("Tropical Wagtail", 19, 95, ItemID.TROPICAL_WAGTAIL), + YOUNG_IMPLING("Young Impling", 22, 20, ItemID.YOUNG_IMPLING_JAR), + WILD_KEBBIT("Wild Kebbit", 23, 128, ItemID.KEBBIT), + WILLOW_BIRD_HOUSE("Willow Bird House", 24, 560, ItemID.WILLOW_BIRD_HOUSE), + SAPPHIRE_GLACIALIS("Sapphire Glacialis", 25, 34, ItemID.BUTTERFLY_9971), + FERRET("Ferret", 27, 115, ItemID.FERRET), + WHITE_RABBIT("White Rabbit", 27, 144, ItemID.RABBIT), + GOURMET_IMPLING("Gourmet Impling", 28, 22, ItemID.GOURMET_IMPLING_JAR), + SWAMP_LIZARD("Swamp Lizard", 29, 152, ItemID.SWAMP_LIZARD), + SPINED_LARUPIA("Spined Larupia", 31, 180, ItemID.LARUPIA_HAT), + BARB_TAILED_KEBBIT("Barb-tailed Kebbit", 33, 168, ItemID.KEBBIT_9958), + TEAK_BIRD_HOUSE("Teak Bird House", 34, 700, ItemID.TEAK_BIRD_HOUSE), + SNOWY_KNIGHT("Snowy Knight", 35, 44, ItemID.BUTTERFLY_9972), + EARTH_IMPLING("Earth Impling", 36, 25, ItemID.EARTH_IMPLING_JAR), + PRICKLY_KEBBIT("Prickly Kebbit", 37, 204, ItemID.KEBBIT_9957), + HORNED_GRAAHK("Horned Graahk", 41, 240, ItemID.GRAAHK_HEADDRESS), + ESSENCE_IMPLING("Essence Impling", 42, 27, ItemID.ESSENCE_IMPLING_JAR), + SPOTTED_KEBBIT("Spotted Kebbit", 43, 104, ItemID.KEBBIT_9960), + MAPLE_BIRD_HOUSE("Maple Bird House", 44, 820, ItemID.MAPLE_BIRD_HOUSE), + BLACK_WARLOCK("Black Warlock", 45, 54, ItemID.BUTTERFLY_9973), + ORANGE_SALAMANDER("Orange Salamander", 47, 224, ItemID.ORANGE_SALAMANDER), + RAZOR_BACKED_KEBBIT("Razor-backed Kebbit", 49, 348, ItemID.KEBBIT_9961), + MAHOGANY_BIRD_HOUSE("Mahogany Bird House", 49, 960, ItemID.MAHOGANY_BIRD_HOUSE), + ECLECTIC_IMPLING("Eclectic Impling", 50, 32, ItemID.ECLECTIC_IMPLING_JAR), + SABRE_TOOTHED_KEBBIT("Sabre-toothed Kebbit", 51, 200, ItemID.KEBBIT_9959), + CHINCHOMPA("Chinchompa", 53, 198.3f, ItemID.CHINCHOMPA), + SABRE_TOOTHED_KYATT("Sabre-toothed Kyatt", 55, 300, ItemID.KYATT_HAT), + DARK_KEBBIT("Dark Kebbit", 57, 132, ItemID.KEBBIT_9963), + NATURE_IMPLING("Nature Impling", 58, 34, ItemID.NATURE_IMPLING_JAR), + RED_SALAMANDER("Red Salamander", 59, 272, ItemID.RED_SALAMANDER), + YEW_BIRD_HOUSE("Yew Bird House", 59, 1020, ItemID.YEW_BIRD_HOUSE), + MANIACAL_MONKEY("Maniacal Monkey", 60, 1000, ItemID.MONKEY_19556), + CARNIVOROUS_CHINCHOMPA("Carnivorous Chinchompa", 63, 265, ItemID.RED_CHINCHOMPA), + MAGPIE_IMPLING("Magpie Impling", 65, 44, ItemID.MAGPIE_IMPLING_JAR), + MAGPIE_IMPLING_GIELINOR("Magpie Impling (Gielinor)", 65, 216, ItemID.MAGPIE_IMPLING_JAR), + BLACK_SALAMANDER("Black Salamander", 67, 319.5f, ItemID.BLACK_SALAMANDER), + DASHING_KEBBIT("Dashing Kebbit", 69, 156, ItemID.KEBBIT_9964), + BLACK_CHINCHOMPA("Black Chinchompa", 73, 315, ItemID.BLACK_CHINCHOMPA), + MAGIC_BIRD_HOUSE("Magic Bird House", 74, 1140, ItemID.MAGIC_BIRD_HOUSE), + NINJA_IMPLING("Ninja Impling", 74, 52, ItemID.NINJA_IMPLING_JAR), + NINJA_IMPLING_GIELINOR("Ninja Impling (Gielinor)", 74, 240, ItemID.NINJA_IMPLING_JAR), + CRYSTAL_IMPLING("Crystal Impling", 80, 280, ItemID.CRYSTAL_IMPLING_JAR), + DRAGON_IMPLING("Dragon Impling", 83, 65, ItemID.DRAGON_IMPLING_JAR), + DRAGON_IMPLING_GIELINOR("Dragon Impling (Gielinor)", 83, 300, ItemID.DRAGON_IMPLING_JAR), + REDWOOD_BIRD_HOUSE("Redwood Bird House", 89, 1200, ItemID.REDWOOD_BIRD_HOUSE), + LUCKY_IMPLING("Lucky Impling", 89, 380, ItemID.LUCKY_IMPLING_JAR), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java new file mode 100644 index 0000000000..bb3b5a20ff --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java @@ -0,0 +1,221 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.SpriteID; + +@AllArgsConstructor +@Getter +public enum MagicAction implements SkillAction +{ + WIND_STRIKE("Wind Strike", 1, 5.5f, SpriteID.SPELL_WIND_STRIKE), + CONFUSE("Confuse", 3, 13, SpriteID.SPELL_CONFUSE), + ENCHANT_OPAL_BOLT("Enchant Opal Bolt", 4, 9, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + WATER_STRIKE("Water Strike", 5, 7.5f, SpriteID.SPELL_WATER_STRIKE), + ARCEUUS_LIBRARY_TELEPORT("Arceuus Library Teleport", 6, 10, SpriteID.SPELL_ARCEUUS_LIBRARY_TELEPORT), + ENCHANT_SAPPHIRE_JEWELLERY("Enchant Sapphire Jewellery", 7, 17.5f, SpriteID.SPELL_LVL_1_ENCHANT), + ENCHANT_SAPPHIRE_BOLT("Enchant Sapphire Bolt", 7, 17.5f, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + EARTH_STRIKE("Earth Strike", 9, 9.5f, SpriteID.SPELL_EARTH_STRIKE), + WEAKEN("Weaken", 11, 21, SpriteID.SPELL_WEAKEN), + FIRE_STRIKE("Fire Strike", 13, 11.5f, SpriteID.SPELL_FIRE_STRIKE), + ENCHANT_JADE_BOLT("Enchant Jade Bolt", 14, 19, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + BONES_TO_BANANAS("Bones To Bananas", 15, 25, SpriteID.SPELL_BONES_TO_BANANAS), + BASIC_REANIMATION("Basic Reanimation", 16, 32, SpriteID.SPELL_BASIC_REANIMATION), + DRAYNOR_MANOR_TELEPORT("Draynor Manor Teleport", 17, 16, SpriteID.SPELL_DRAYNOR_MANOR_TELEPORT), + WIND_BOLT("Wind Bolt", 17, 13.5f, SpriteID.SPELL_WIND_BOLT), + CURSE("Curse", 19, 29, SpriteID.SPELL_CURSE), + BIND("Bind", 20, 30, SpriteID.SPELL_BIND), + LOW_LEVEL_ALCHEMY("Low Level Alchemy", 21, 31, SpriteID.SPELL_LOW_LEVEL_ALCHEMY), + WATER_BOLT("Water Bolt", 23, 16.5f, SpriteID.SPELL_WATER_BOLT), + ENCHANT_PEARL_BOLT("Enchant Pearl Bolt", 24, 29, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + VARROCK_TELEPORT("Varrock Teleport", 25, 35, SpriteID.SPELL_VARROCK_TELEPORT), + ENCHANT_EMERALD_JEWELLERY("Enchant Emerald Jewellery", 27, 37, SpriteID.SPELL_LVL_2_ENCHANT), + ENCHANT_EMERALD_BOLT("Enchant Emerald Bolt", 27, 37, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + MIND_ALTAR_TELEPORT("Mind Altar Teleport", 28, 22, SpriteID.SPELL_MIND_ALTAR_TELEPORT), + ENCHANT_TOPAZ_BOLT("Enchant Topaz Bolt", 29, 33, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + EARTH_BOLT("Earth Bolt", 29, 19.5f, SpriteID.SPELL_EARTH_BOLT), + LUMBRIDGE_TELEPORT("Lumbridge Teleport", 31, 41, SpriteID.SPELL_LUMBRIDGE_TELEPORT), + TELEKINETIC_GRAB("Telekinetic Grab", 33, 43, SpriteID.SPELL_TELEKINETIC_GRAB), + RESPAWN_TELEPORT("Respawn Teleport", 34, 27, SpriteID.SPELL_RESPAWN_TELEPORT), + FIRE_BOLT("Fire Bolt", 35, 22.5f, SpriteID.SPELL_FIRE_BOLT), + GHOSTLY_GRASP("Ghostly Grasp", 35, 22.5f, SpriteID.SPELL_GHOSTLY_GRASP), + FALADOR_TELEPORT("Falador Teleport", 37, 48, SpriteID.SPELL_FALADOR_TELEPORT), + RESURRECT_LESSER_THRALL("Resurrect Lesser Thrall", 38, 55, SpriteID.SPELL_RESURRECT_LESSER_GHOST), + CRUMBLE_UNDEAD("Crumble Undead", 39, 24.5f, SpriteID.SPELL_CRUMBLE_UNDEAD), + SALVE_GRAVEYARD_TELEPORT("Salve Graveyard Teleport", 40, 30, SpriteID.SPELL_SALVE_GRAVEYARD_TELEPORT), + TELEPORT_TO_HOUSE("Teleport To House", 40, 30, SpriteID.SPELL_TELEPORT_TO_HOUSE), + ADEPT_REANIMATION("Adept Reanimation", 41, 80, SpriteID.SPELL_ADEPT_REANIMATION), + WIND_BLAST("Wind Blast", 41, 25.5f, SpriteID.SPELL_WIND_BLAST), + SUPERHEAT_ITEM("Superheat Item", 43, 53, SpriteID.SPELL_SUPERHEAT_ITEM), + INFERIOR_DEMONBANE("Inferior Demonbane", 44, 27, SpriteID.SPELL_INFERIOR_DEMONBANE), + CAMELOT_TELEPORT("Camelot Teleport", 45, 55.5f, SpriteID.SPELL_CAMELOT_TELEPORT), + WATER_BLAST("Water Blast", 47, 28.5f, SpriteID.SPELL_WATER_BLAST), + SHADOW_VEIL("Shadow Veil", 47, 58, SpriteID.SPELL_SHADOW_VEIL), + FENKENSTRAINS_CASTLE_TELEPORT("Fenkenstrain's Castle Teleport", 48, 50, SpriteID.SPELL_FENKENSTRAINS_CASTLE_TELEPORT), + ENCHANT_RUBY_JEWELLERY("Enchant Ruby Jewellery", 49, 59, SpriteID.SPELL_LVL_3_ENCHANT), + ENCHANT_RUBY_BOLT("Enchant Ruby Bolt", 49, 59, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + IBAN_BLAST("Iban Blast", 50, 30, SpriteID.SPELL_IBAN_BLAST), + SMOKE_RUSH("Smoke Rush", 50, 30, SpriteID.SPELL_SMOKE_RUSH), + MAGIC_DART("Magic Dart", 50, 30, SpriteID.SPELL_MAGIC_DART), + SNARE("Snare", 50, 60, SpriteID.SPELL_SNARE), + DARK_LURE("Dark Lure", 50, 60, SpriteID.SPELL_DARK_LURE), + ARDOUGNE_TELEPORT("Ardougne Teleport", 51, 61, SpriteID.SPELL_ARDOUGNE_TELEPORT), + SHADOW_RUSH("Shadow Rush", 52, 31, SpriteID.SPELL_SHADOW_RUSH), + EARTH_BLAST("Earth Blast", 53, 31.5f, SpriteID.SPELL_EARTH_BLAST), + PADDEWWA_TELEPORT("Paddewwa Teleport", 54, 64, SpriteID.SPELL_PADDEWWA_TELEPORT), + HIGH_LEVEL_ALCHEMY("High Level Alchemy", 55, 65, SpriteID.SPELL_HIGH_LEVEL_ALCHEMY), + CHARGE_WATER_ORB("Charge Water Orb", 56, 66, SpriteID.SPELL_CHARGE_WATER_ORB), + BLOOD_RUSH("Blood Rush", 56, 33, SpriteID.SPELL_BLOOD_RUSH), + SKELETAL_GRASP("Skeletal Grasp", 56, 33, SpriteID.SPELL_SKELETAL_GRASP), + ENCHANT_DIAMOND_BOLT("Enchant Diamond Bolt", 57, 67, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + ENCHANT_DIAMOND_JEWELLERY("Enchant Diamond Jewellery", 57, 67, SpriteID.SPELL_LVL_4_ENCHANT), + RESURRECT_SUPERIOR_THRALL("Resurrect Superior Thrall", 57, 70, SpriteID.SPELL_RESURRECT_SUPERIOR_SKELETON), + WATCHTOWER_TELEPORT("Watchtower Teleport", 58, 68, SpriteID.SPELL_WATCHTOWER_TELEPORT), + ICE_RUSH("Ice Rush", 58, 34, SpriteID.SPELL_ICE_RUSH), + FIRE_BLAST("Fire Blast", 59, 34.5f, SpriteID.SPELL_FIRE_BLAST), + MARK_OF_DARKNESS("Mark of Darkness", 59, 70, SpriteID.SPELL_MARK_OF_DARKNESS), + SENNTISTEN_TELEPORT("Senntisten Teleport", 60, 70, SpriteID.SPELL_SENNTISTEN_TELEPORT), + CLAWS_OF_GUTHIX("Claws Of Guthix", 60, 35, SpriteID.SPELL_CLAWS_OF_GUTHIC), + FLAMES_OF_ZAMORAK("Flames Of Zamorak", 60, 35, SpriteID.SPELL_FLAMES_OF_ZAMORAK), + SARADOMIN_STRIKE("Saradomin Strike", 60, 35, SpriteID.SPELL_SARADOMIN_STRIKE), + CHARGE_EARTH_ORB("Charge Earth Orb", 60, 70, SpriteID.SPELL_CHARGE_EARTH_ORB), + BONES_TO_PEACHES("Bones To Peaches", 60, 35.5f, SpriteID.SPELL_BONES_TO_PEACHES), + WEST_ARDOUGNE_TELEPORT("West Ardougne Teleport", 61, 68, SpriteID.SPELL_WEST_ARDOUGNE_TELEPORT), + TROLLHEIM_TELEPORT("Trollheim Teleport", 61, 68, SpriteID.SPELL_TROLLHEIM_TELEPORT), + SMOKE_BURST("Smoke Burst", 62, 36, SpriteID.SPELL_SMOKE_BURST), + WIND_WAVE("Wind Wave", 62, 36, SpriteID.SPELL_WIND_WAVE), + SUPERIOR_DEMONBANE("Superior Demonbane", 62, 36, SpriteID.SPELL_SUPERIOR_DEMONBANE), + CHARGE_FIRE_ORB("Charge Fire Orb", 63, 73, SpriteID.SPELL_CHARGE_FIRE_ORB), + SHADOW_BURST("Shadow Burst", 64, 37, SpriteID.SPELL_SHADOW_BURST), + TELEPORT_APE_ATOLL("Teleport Ape Atoll", 64, 74, SpriteID.SPELL_TELEPORT_TO_APE_ATOLL), + LESSER_CORRUPTION("Lesser Corruption", 64, 75, SpriteID.SPELL_LESSER_CORRUPTION), + BAKE_PIE("Bake Pie", 65, 60, SpriteID.SPELL_BAKE_PIE), + HARMONY_ISLAND_TELEPORT("Harmony Island Teleport", 65, 74, SpriteID.SPELL_HARMONY_ISLAND_TELEPORT), + GEOMANCY("Geomancy", 65, 60, SpriteID.SPELL_GEOMANCY), + WATER_WAVE("Water Wave", 65, 37.5f, SpriteID.SPELL_WATER_WAVE), + CHARGE_AIR_ORB("Charge Air Orb", 66, 76, SpriteID.SPELL_CHARGE_AIR_ORB), + CURE_PLANT("Cure Plant", 66, 60, SpriteID.SPELL_CURE_PLANT), + KHARYRLL_TELEPORT("Kharyrll Teleport", 66, 76, SpriteID.SPELL_KHARYRLL_TELEPORT), + VULNERABILITY("Vulnerability", 66, 76, SpriteID.SPELL_VULNERABILITY), + MONSTER_EXAMINE("Monster Examine", 66, 61, SpriteID.SPELL_MONSTER_EXAMINE), + VILE_VIGOUR("Vile Vigour", 66, 76, SpriteID.SPELL_VILE_VIGOUR), + NPC_CONTACT("Npc Contact", 67, 63, SpriteID.SPELL_NPC_CONTACT), + BLOOD_BURST("Blood Burst", 68, 39, SpriteID.SPELL_BLOOD_BURST), + CURE_OTHER("Cure Other", 68, 65, SpriteID.SPELL_CURE_OTHER), + ENCHANT_DRAGONSTONE_JEWELLERY("Enchant Dragonstone Jewellery", 68, 78, SpriteID.SPELL_LVL_5_ENCHANT), + ENCHANT_DRAGONSTONE_BOLT("Enchant Dragonstone Bolt", 68, 78, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + HUMIDIFY("Humidify", 68, 65, SpriteID.SPELL_HUMIDIFY), + MOONCLAN_TELEPORT("Moonclan Teleport", 69, 66, SpriteID.SPELL_MOONCLAN_TELEPORT), + EARTH_WAVE("Earth Wave", 70, 40, SpriteID.SPELL_EARTH_WAVE), + ICE_BURST("Ice Burst", 70, 40, SpriteID.SPELL_ICE_BURST), + TELE_GROUP_MOONCLAN("Tele Group Moonclan", 70, 67, SpriteID.SPELL_TELE_GROUP_MOONCLAN), + DEGRIME("Degrime", 70, 83, SpriteID.SPELL_DEGRIME), + OURANIA_TELEPORT("Ourania Teleport", 71, 69, SpriteID.SPELL_OURANIA_TELEPORT), + CEMETERY_TELEPORT("Cemetery Teleport", 71, 82, SpriteID.SPELL_CEMETERY_TELEPORT), + CURE_ME("Cure Me", 71, 69, SpriteID.SPELL_CURE_ME), + HUNTER_KIT("Hunter Kit", 71, 70, SpriteID.SPELL_HUNTER_KIT), + EXPERT_REANIMATION("Expert Reanimation", 72, 138, SpriteID.SPELL_EXPERT_REANIMATION), + LASSAR_TELEPORT("Lassar Teleport", 72, 82, SpriteID.SPELL_LASSAR_TELEPORT), + WATERBIRTH_TELEPORT("Waterbirth Teleport", 72, 71, SpriteID.SPELL_WATERBIRTH_TELEPORT), + TELE_GROUP_WATERBIRTH("Tele Group Waterbirth", 73, 72, SpriteID.SPELL_TELE_GROUP_WATERBIRTH), + ENFEEBLE("Enfeeble", 73, 83, SpriteID.SPELL_ENFEEBLE), + WARD_OF_ARCEUUS("Ward of Arceuus", 73, 83, SpriteID.SPELL_WARD_OF_ARCEUUS), + TELEOTHER_LUMBRIDGE("Teleother Lumbridge", 74, 84, SpriteID.SPELL_TELEOTHER_LUMBRIDGE), + SMOKE_BLITZ("Smoke Blitz", 74, 42, SpriteID.SPELL_SMOKE_BLITZ), + CURE_GROUP("Cure Group", 74, 74, SpriteID.SPELL_CURE_GROUP), + STAT_SPY("Stat Spy", 75, 76, SpriteID.SPELL_STAT_SPY), + BARBARIAN_TELEPORT("Barbarian Teleport", 75, 76, SpriteID.SPELL_BARBARIAN_TELEPORT), + FIRE_WAVE("Fire Wave", 75, 42.5f, SpriteID.SPELL_FIRE_WAVE), + TELE_GROUP_BARBARIAN("Tele Group Barbarian", 76, 77, SpriteID.SPELL_TELE_GROUP_ICE_PLATEAU), + SHADOW_BLITZ("Shadow Blitz", 76, 43, SpriteID.SPELL_SHADOW_BLITZ), + SPIN_FLAX("Spin Flax", 76, 75, SpriteID.SPELL_SPIN_FLAX), + RESURRECT_GREATER_THRALL("Resurrect Greater Thrall", 76, 88, SpriteID.SPELL_RESURRECT_GREATER_ZOMBIE), + SUPERGLASS_MAKE("Superglass Make", 77, 78, SpriteID.SPELL_SUPERGLASS_MAKE), + TAN_LEATHER("Tan Leather", 78, 81, SpriteID.SPELL_TAN_LEATHER), + KHAZARD_TELEPORT("Khazard Teleport", 78, 80, SpriteID.SPELL_KHAZARD_TELEPORT), + DAREEYAK_TELEPORT("Dareeyak Teleport", 78, 88, SpriteID.SPELL_DAREEYAK_TELEPORT), + RESURRECT_CROPS("Resurrect Crops", 78, 90, SpriteID.SPELL_RESURRECT_CROPS), + ENTANGLE("Entangle", 79, 89, SpriteID.SPELL_ENTANGLE), + TELE_GROUP_KHAZARD("Tele Group Khazard", 79, 81, SpriteID.SPELL_TELE_GROUP_KHAZARD), + DREAM("Dream", 79, 82, SpriteID.SPELL_DREAM), + UNDEAD_GRASP("Undead Grasp", 79, 46.5f, SpriteID.SPELL_UNDEAD_GRASP), + CHARGE("Charge", 80, 180, SpriteID.SPELL_CHARGE), + BLOOD_BLITZ("Blood Blitz", 80, 45, SpriteID.SPELL_BLOOD_BLITZ), + STUN("Stun", 80, 90, SpriteID.SPELL_STUN), + STRING_JEWELLERY("String Jewellery", 80, 83, SpriteID.SPELL_STRING_JEWELLERY), + DEATH_CHARGE("Death Charge", 80, 90, SpriteID.SPELL_DEATH_CHARGE), + STAT_RESTORE_POT_SHARE("Stat Restore Pot Share", 81, 84, SpriteID.SPELL_STAT_RESTORE_POT_SHARE), + WIND_SURGE("Wind Surge", 81, 44, SpriteID.SPELL_WIND_SURGE), + TELEOTHER_FALADOR("Teleother Falador", 82, 92, SpriteID.SPELL_TELEOTHER_FALADOR), + MAGIC_IMBUE("Magic Imbue", 82, 86, SpriteID.SPELL_MAGIC_IMBUE), + ICE_BLITZ("Ice Blitz", 82, 46, SpriteID.SPELL_ICE_BLITZ), + DARK_DEMONBANE("Dark Demonbane", 82, 43.5f, SpriteID.SPELL_DARK_DEMONBANE), + FERTILE_SOIL("Fertile Soil", 83, 87, SpriteID.SPELL_FERTILE_SOIL), + BARROWS_TELEPORT("Barrows Teleport", 83, 90, SpriteID.SPELL_BARROWS_TELEPORT), + CARRALLANGAR_TELEPORT("Carrallangar Teleport", 84, 82, SpriteID.SPELL_CARRALLANGAR_TELEPORT), + BOOST_POTION_SHARE("Boost Potion Share", 84, 88, SpriteID.SPELL_BOOST_POTION_SHARE), + DEMONIC_OFFERING("Demonic Offering", 84, 175, SpriteID.SPELL_DEMONIC_OFFERING), + WATER_SURGE("Water Surge", 85, 46, SpriteID.SPELL_WATER_SURGE), + FISHING_GUILD_TELEPORT("Fishing Guild Teleport", 85, 89, SpriteID.SPELL_FISHING_GUILD_TELEPORT), + TELE_BLOCK("Tele Block", 85, 80, SpriteID.SPELL_TELE_BLOCK), + TELEPORT_TO_TARGET("Teleport To Target", 85, 45, SpriteID.SPELL_TELEPORT_TO_BOUNTY_TARGET), + GREATER_CORRUPTION("Greater Corruption", 85, 95, SpriteID.SPELL_GREATER_CORRUPTION), + SMOKE_BARRAGE("Smoke Barrage", 86, 48, SpriteID.SPELL_SMOKE_BARRAGE), + TELE_GROUP_FISHING_GUILD("Tele Group Fishing Guild", 86, 90, SpriteID.SPELL_TELE_GROUP_FISHING_GUILD), + PLANK_MAKE("Plank Make", 86, 90, SpriteID.SPELL_PLANK_MAKE), + CATHERBY_TELEPORT("Catherby Teleport", 87, 92, SpriteID.SPELL_CATHERBY_TELEPORT), + ENCHANT_ONYX_JEWELLERY("Enchant Onyx Jewellery", 87, 97, SpriteID.SPELL_LVL_6_ENCHANT), + ENCHANT_ONYX_BOLT("Enchant Onyx Bolt", 87, 97, SpriteID.SPELL_ENCHANT_CROSSBOW_BOLT), + SHADOW_BARRAGE("Shadow Barrage", 88, 48, SpriteID.SPELL_SHADOW_BARRAGE), + TELE_GROUP_CATHERBY("Tele Group Catherby", 88, 93, SpriteID.SPELL_TELE_GROUP_CATHERBY), + ICE_PLATEAU_TELEPORT("Ice Plateau Teleport", 89, 96, SpriteID.SPELL_ICE_PLATEAU_TELEPORT), + RECHARGE_DRAGONSTONE("Recharge Dragonstone", 89, 97.5f, SpriteID.SPELL_RECHARGE_DRAGONSTONE), + ANNAKARL_TELEPORT("Annakarl Teleport", 90, 100, SpriteID.SPELL_ANNAKARL_TELEPORT), + EARTH_SURGE("Earth Surge", 90, 48, SpriteID.SPELL_EARTH_SURGE), + MASTER_REANIMATION("Master Reanimation", 90, 170, SpriteID.SPELL_MASTER_REANIMATION), + TELE_GROUP_ICE_PLATEAU("Tele Group Ice Plateau", 90, 99, SpriteID.SPELL_TELE_GROUP_ICE_PLATEAU), + TELEOTHER_CAMELOT("Teleother Camelot", 90, 100, SpriteID.SPELL_TELEOTHER_CAMELOT), + APE_ATOLL_TELEPORT("Ape Atoll Teleport", 90, 100, SpriteID.SPELL_APE_ATOLL_TELEPORT), + ENERGY_TRANSFER("Energy Transfer", 91, 100, SpriteID.SPELL_ENERGY_TRANSFER), + BLOOD_BARRAGE("Blood Barrage", 92, 51, SpriteID.SPELL_BLOOD_BARRAGE), + HEAL_OTHER("Heal Other", 92, 101, SpriteID.SPELL_HEAL_OTHER), + SINISTER_OFFERING("Sinister Offering", 92, 180, SpriteID.SPELL_SINISTER_OFFERING), + VENGEANCE_OTHER("Vengeance Other", 93, 108, SpriteID.SPELL_VENGEANCE_OTHER), + ENCHANT_ZENYTE_JEWELLERY("Enchant Zenyte Jewellery", 93, 110, SpriteID.SPELL_LVL_7_ENCHANT), + ICE_BARRAGE("Ice Barrage", 94, 52, SpriteID.SPELL_ICE_BARRAGE), + VENGEANCE("Vengeance", 94, 112, SpriteID.SPELL_VENGEANCE), + HEAL_GROUP("Heal Group", 95, 124, SpriteID.SPELL_HEAL_GROUP), + FIRE_SURGE("Fire Surge", 95, 51, SpriteID.SPELL_FIRE_SURGE), + GHORROCK_TELEPORT("Ghorrock Teleport", 96, 106, SpriteID.SPELL_GHORROCK_TELEPORT), + SPELLBOOK_SWAP("Spellbook Swap", 96, 130, SpriteID.SPELL_SPELLBOOK_SWAP), + ; + + private final String name; + private final int level; + private final float xp; + private final int sprite; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java new file mode 100644 index 0000000000..cdbcdb74cf --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; +import net.runelite.api.NullItemID; + +@AllArgsConstructor +@Getter +public enum MiningAction implements SkillAction +{ + CLAY("Clay", 1, 5, ItemID.CLAY), + RUNE_ESSENCE("Rune essence", 1, 5, ItemID.RUNE_ESSENCE), + COPPER_ORE("Copper ore", 1, 17.5f, ItemID.COPPER_ORE), + TIN_ORE("Tin ore", 1, 17.5f, ItemID.TIN_ORE), + LIMESTONE("Limestone", 10, 26.5f, ItemID.LIMESTONE), + BARRONITE_SHARDS("Barronite shards", 14, 16, NullItemID.NULL_25683), + BARRONITE_DEPOSIT("Barronite deposit", 14, 32, ItemID.BARRONITE_DEPOSIT), + IRON_ORE("Iron ore", 15, 35, ItemID.IRON_ORE), + SILVER_ORE("Silver ore", 20, 40, ItemID.SILVER_ORE), + PURE_ESSENCE("Pure essence", 30, 5, ItemID.PURE_ESSENCE), + COAL("Coal", 30, 50, ItemID.COAL), + SANDSTONE_1KG("Sandstone (1kg)", 35, 30, ItemID.SANDSTONE_1KG), + SANDSTONE_2KG("Sandstone (2kg)", 35, 40, ItemID.SANDSTONE_2KG), + SANDSTONE_5KG("Sandstone (5kg)", 35, 50, ItemID.SANDSTONE_5KG), + SANDSTONE_10KG("Sandstone (10kg)", 35, 60, ItemID.SANDSTONE_10KG), + DENSE_ESSENCE_BLOCK("Dense essence block", 38, 12, ItemID.DENSE_ESSENCE_BLOCK), + GOLD_ORE("Gold ore", 40, 65, ItemID.GOLD_ORE), + GEM_ROCKS("Gem rocks", 40, 65, ItemID.UNCUT_RED_TOPAZ), + GRANITE_500G("Granite (500g)", 45, 50, ItemID.GRANITE_500G), + GRANITE_2KG("Granite (2kg)", 45, 60, ItemID.GRANITE_2KG), + GRANITE_5KG("Granite (5kg)", 45, 75, ItemID.GRANITE_5KG), + MITHRIL_ORE("Mithril ore", 55, 80, ItemID.MITHRIL_ORE), + SOFT_CLAY("Soft clay", 70, 5, ItemID.SOFT_CLAY), + ADAMANTITE_ORE("Adamantite ore", 70, 95, ItemID.ADAMANTITE_ORE), + RUNITE_ORE("Runite ore", 85, 125, ItemID.RUNITE_ORE), + AMETHYST("Amethyst", 92, 240, ItemID.AMETHYST), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillData.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningBonus.java similarity index 78% rename from runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillData.java rename to runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningBonus.java index 4c2d36aa68..aba67a316d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/beans/SkillData.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningBonus.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Kruithne + * Copyright (c) 2021, Jordan Atwood * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,13 +22,18 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.skillcalculator.beans; +package net.runelite.client.plugins.skillcalculator.skills; +import lombok.AllArgsConstructor; import lombok.Getter; -@Getter -public class SkillData +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum MiningBonus implements SkillBonus { - private SkillDataEntry[] actions; - private SkillDataBonus[] bonuses; -} \ No newline at end of file + PROSPECTOR_KIT("Prospector Kit (+2.5%)", 0.025f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java new file mode 100644 index 0000000000..0995027103 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum PrayerAction implements SkillAction +{ + ENSOULED_GOBLIN_HEAD("Ensouled goblin head", 1, 130, ItemID.ENSOULED_GOBLIN_HEAD, true), + ENSOULED_MONKEY_HEAD("Ensouled monkey head", 1, 182, ItemID.ENSOULED_MONKEY_HEAD, true), + ENSOULED_IMP_HEAD("Ensouled imp head", 1, 286, ItemID.ENSOULED_IMP_HEAD, true), + ENSOULED_MINOTAUR_HEAD("Ensouled minotaur head", 1, 364, ItemID.ENSOULED_MINOTAUR_HEAD, true), + ENSOULED_SCORPION_HEAD("Ensouled scorpion head", 1, 454, ItemID.ENSOULED_SCORPION_HEAD, true), + ENSOULED_BEAR_HEAD("Ensouled bear head", 1, 480, ItemID.ENSOULED_BEAR_HEAD, true), + ENSOULED_UNICORN_HEAD("Ensouled unicorn head", 1, 494, ItemID.ENSOULED_UNICORN_HEAD, true), + ENSOULED_DOG_HEAD("Ensouled dog head", 1, 520, ItemID.ENSOULED_DOG_HEAD, true), + ENSOULED_CHAOS_DRUID_HEAD("Ensouled chaos druid head", 1, 584, ItemID.ENSOULED_CHAOS_DRUID_HEAD, true), + ENSOULED_GIANT_HEAD("Ensouled giant head", 1, 650, ItemID.ENSOULED_GIANT_HEAD, true), + ENSOULED_OGRE_HEAD("Ensouled ogre head", 1, 716, ItemID.ENSOULED_OGRE_HEAD, true), + ENSOULED_ELF_HEAD("Ensouled elf head", 1, 754, ItemID.ENSOULED_ELF_HEAD, true), + ENSOULED_TROLL_HEAD("Ensouled troll head", 1, 780, ItemID.ENSOULED_TROLL_HEAD, true), + ENSOULED_HORROR_HEAD("Ensouled horror head", 1, 832, ItemID.ENSOULED_HORROR_HEAD, true), + ENSOULED_KALPHITE_HEAD("Ensouled kalphite head", 1, 884, ItemID.ENSOULED_KALPHITE_HEAD, true), + ENSOULED_DAGANNOTH_HEAD("Ensouled dagannoth head", 1, 936, ItemID.ENSOULED_DAGANNOTH_HEAD, true), + ENSOULED_BLOODVELD_HEAD("Ensouled bloodveld head", 1, 1040, ItemID.ENSOULED_BLOODVELD_HEAD, true), + ENSOULED_TZHAAR_HEAD("Ensouled tzhaar head", 1, 1104, ItemID.ENSOULED_TZHAAR_HEAD, true), + ENSOULED_DEMON_HEAD("Ensouled demon head", 1, 1170, ItemID.ENSOULED_DEMON_HEAD, true), + ENSOULED_AVIANSIE_HEAD("Ensouled aviansie head", 1, 1234, ItemID.ENSOULED_AVIANSIE_HEAD, true), + ENSOULED_ABYSSAL_HEAD("Ensouled abyssal head", 1, 1300, ItemID.ENSOULED_ABYSSAL_HEAD, true), + ENSOULED_DRAGON_HEAD("Ensouled dragon head", 1, 1560, ItemID.ENSOULED_DRAGON_HEAD, true), + FIENDISH_ASHES("Fiendish ashes", 1, 10, ItemID.FIENDISH_ASHES, true), + VILE_ASHES("Vile ashes", 1, 25, ItemID.VILE_ASHES, true), + MALICIOUS_ASHES("Malicious ashes", 1, 65, ItemID.MALICIOUS_ASHES, true), + ABYSSAL_ASHES("Abyssal ashes", 1, 85, ItemID.ABYSSAL_ASHES, true), + INFERNAL_ASHES("Infernal ashes", 1, 110, ItemID.INFERNAL_ASHES, true), + BONES("Bones", 1, 4.5f, ItemID.BONES, false), + WOLF_BONES("Wolf bones", 1, 4.5f, ItemID.WOLF_BONES, false), + LOAR_REMAINS("Loar remains", 1, 33, ItemID.LOAR_REMAINS, false), + BURNT_BONES("Burnt bones", 1, 4.5f, ItemID.BURNT_BONES, false), + MONKEY_BONES("Monkey bones", 1, 5, ItemID.MONKEY_BONES, false), + BAT_BONES("Bat bones", 1, 5.3f, ItemID.BAT_BONES, false), + JOGRE_BONES("Jogre bones", 1, 15, ItemID.JOGRE_BONES, false), + BIG_BONES("Big bones", 1, 15, ItemID.BIG_BONES, false), + ZOGRE_BONES("Zogre bones", 1, 22.5f, ItemID.ZOGRE_BONES, false), + SHAIKAHAN_BONES("Shaikahan bones", 1, 25, ItemID.SHAIKAHAN_BONES, false), + BABYDRAGON_BONES("Babydragon bones", 1, 30, ItemID.BABYDRAGON_BONES, false), + PHRIN_REMAINS("Phrin remains", 1, 46.5f, ItemID.PHRIN_REMAINS, false), + WYRM_BONES("Wyrm bones", 1, 50, ItemID.WYRM_BONES, false), + RIYL_REMAINS("Riyl remains", 1, 59.5f, ItemID.RIYL_REMAINS, false), + WYVERN_BONES("Wyvern bones", 1, 72, ItemID.WYVERN_BONES, false), + DRAGON_BONES("Dragon bones", 1, 72, ItemID.DRAGON_BONES, false), + DRAKE_BONES("Drake bones", 1, 80, ItemID.DRAKE_BONES, false), + ASYN_REMAINS("Asyn remains", 1, 82.5f, ItemID.ASYN_REMAINS, false), + FAYRG_BONES("Fayrg bones", 1, 84, ItemID.FAYRG_BONES, false), + FIYR_REMAINS("Fiyr remains", 1, 84, ItemID.FIYR_REMAINS, false), + LAVA_DRAGON_BONES("Lava dragon bones", 1, 85, ItemID.LAVA_DRAGON_BONES, false), + RAURG_BONES("Raurg bones", 1, 96, ItemID.RAURG_BONES, false), + HYDRA_BONES("Hydra bones", 1, 110, ItemID.HYDRA_BONES, false), + DAGANNOTH_BONES("Dagannoth bones", 1, 125, ItemID.DAGANNOTH_BONES, false), + OURG_BONES("Ourg bones", 1, 140, ItemID.OURG_BONES, false), + URIUM_REMAINS("Urium remains", 1, 120, ItemID.URIUM_REMAINS, false), + GUPPY("Guppy", 1, 4, ItemID.GUPPY, false), + CAVEFISH("Cavefish", 1, 7, ItemID.CAVEFISH, false), + TETRA("Tetra", 1, 10, ItemID.TETRA, false), + CATFISH("Catfish", 1, 16, ItemID.CATFISH, false), + SUPERIOR_DRAGON_BONES("Superior dragon bones", 70, 150, ItemID.SUPERIOR_DRAGON_BONES, false), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; + private final boolean ignoreBonus; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java new file mode 100644 index 0000000000..872d52e8d3 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum PrayerBonus implements SkillBonus +{ + LIT_GILDED_ALTAR("Lit Gilded Altar (350%)", 2.5f), + ECTOFUNTUS("Ectofuntus (400%)", 3), + CHAOS_ALTAR("Chaos Altar (700%)", 6), + MORYTANIA_DIARY_3_SHADES("Morytania Diary 3 Shades(150%)", 0.5f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java new file mode 100644 index 0000000000..d6eda355db --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum RunecraftAction implements SkillAction +{ + AIR_TIARA("Air tiara", 1, 25, ItemID.AIR_TIARA, true), + MIND_TIARA("Mind tiara", 1, 27.5f, ItemID.MIND_TIARA, true), + WATER_TIARA("Water tiara", 1, 30, ItemID.WATER_TIARA, true), + EARTH_TIARA("Earth tiara", 1, 32.5f, ItemID.EARTH_TIARA, true), + FIRE_TIARA("Fire tiara", 1, 35, ItemID.FIRE_TIARA, true), + BODY_TIARA("Body tiara", 1, 37.5f, ItemID.BODY_TIARA, true), + COSMIC_TIARA("Cosmic tiara", 1, 40, ItemID.COSMIC_TIARA, true), + CHAOS_TIARA("Chaos tiara", 1, 42.5f, ItemID.CHAOS_TIARA, true), + NATURE_TIARA("Nature tiara", 1, 45, ItemID.NATURE_TIARA, true), + LAW_TIARA("Law tiara", 1, 47.5f, ItemID.LAW_TIARA, true), + DEATH_TIARA("Death tiara", 1, 50, ItemID.DEATH_TIARA, true), + WRATH_TIARA("Wrath tiara", 1, 52.5f, ItemID.WRATH_TIARA, true), + AIR_RUNE("Air rune", 1, 5, ItemID.AIR_RUNE, false), + MIND_RUNE("Mind rune", 2, 5.5f, ItemID.MIND_RUNE, false), + MIND_CORE("Mind core", 2, 55, ItemID.MIND_CORE, false), + WATER_RUNE("Water rune", 5, 6, ItemID.WATER_RUNE, false), + MIST_RUNE("Mist rune", 6, 8.5f, ItemID.MIST_RUNE, false), + EARTH_RUNE("Earth rune", 9, 6.5f, ItemID.EARTH_RUNE, false), + DUST_RUNE("Dust rune", 10, 9, ItemID.DUST_RUNE, false), + MUD_RUNE("Mud rune", 13, 9.5f, ItemID.MUD_RUNE, false), + FIRE_RUNE("Fire rune", 14, 7, ItemID.FIRE_RUNE, false), + SMOKE_RUNE("Smoke rune", 15, 9.5f, ItemID.SMOKE_RUNE, false), + STEAM_RUNE("Steam rune", 19, 10, ItemID.STEAM_RUNE, false), + BODY_RUNE("Body rune", 20, 7.5f, ItemID.BODY_RUNE, false), + BODY_CORE("Body core", 20, 75, ItemID.BODY_CORE, false), + LAVA_RUNE("Lava rune", 23, 10.5f, ItemID.LAVA_RUNE, false), + COSMIC_RUNE("Cosmic rune", 27, 8, ItemID.COSMIC_RUNE, false), + CHAOS_RUNE("Chaos rune", 35, 8.5f, ItemID.CHAOS_RUNE, false), + CHAOS_CORE("Chaos core", 35, 85, ItemID.CHAOS_CORE, false), + ASTRAL_RUNE("Astral rune", 40, 8.7f, ItemID.ASTRAL_RUNE, false), + NATURE_RUNE("Nature rune", 44, 9, ItemID.NATURE_RUNE, false), + LAW_RUNE("Law rune", 54, 9.5f, ItemID.LAW_RUNE, false), + DEATH_RUNE("Death rune", 65, 10, ItemID.DEATH_RUNE, false), + BLOOD_RUNE("Blood rune", 77, 24.425f, ItemID.BLOOD_RUNE, true), + SOUL_RUNE("Soul rune", 90, 30.325f, ItemID.SOUL_RUNE, true), + WRATH_RUNE("Wrath rune", 95, 8, ItemID.WRATH_RUNE, false), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; + private final boolean ignoreBonus; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftBonus.java new file mode 100644 index 0000000000..0fa8a7477b --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftBonus.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum RunecraftBonus implements SkillBonus +{ + DAEYALT_ESSENCE("Daeyalt essence (+50%)", 0.5f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java new file mode 100644 index 0000000000..9f6153678a --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +/** + * An object representing a single skill action which grants some xp. + */ +public interface SkillAction +{ + /** + * Gets the name of this skill action, usually the item or object created, or the spell cast. + * + * @return The name of this skill action. + */ + String getName(); + + /** + * Gets the level required to perform this skill action. + * + * @return The level required to perform this skill action. + */ + int getLevel(); + + /** + * Gets the amount of xp granted for performing this skill action. + * + * @return The amount of xp granted for performing this skill action. + */ + float getXp(); + + /** + * Gets the item icon ID for this skill action, if applicable. + *

+ * Note: Either this method or {@link #getSprite()} will always return {@code -1}, and the other will return some + * value {@code 0} or greater. + * + * @return The item icon ID of this skill action, or {@code -1} if its icon should be represented using a sprite. + * @see net.runelite.api.ItemID + * @see #getSprite() + */ + default int getIcon() + { + return -1; + } + + /** + * Gets the sprite ID for this skill action, if applicable. + *

+ * Note: Either this method or {@link #getIcon()} will always return {@code -1}, and the other will return some + * value {@code 0} or greater. + * + * @return The sprite ID of this skill action, or {@code -1} if its icon should be represented using an item icon. + * @see net.runelite.api.SpriteID + * @see #getIcon() + */ + default int getSprite() + { + return -1; + } + + /** + * Returns {@code true} if this skill action is not boosted by any {@link SkillBonus skill bonuses}, {@code false} + * otherwise. + * + * @return {@code true} if this skill action is unaffected by skill bonuses, {@code false} otherwise. + */ + default boolean isIgnoreBonus() + { + return false; + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillBonus.java new file mode 100644 index 0000000000..cf7d1d8dcf --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillBonus.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +/** + * An object representing a skill bonus, such as from a skilling outfit or activity granting boosted xp. + */ +public interface SkillBonus +{ + /** + * Gets the name of this skill bonus. + * + * @return The name of this skill bonus. + */ + String getName(); + + /** + * Gets the multiplier for this skill bonus. When multiplied with the skill action XP value, it yields the amount of + * additional xp granted for that action. (eg. {@code {@link SkillAction#getXp()} * (1 + {@link #getValue()}} yields + * the full amount of xp gained) + * + * @return The skill bonus multiplier. + */ + float getValue(); +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java new file mode 100644 index 0000000000..8e32705cd1 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java @@ -0,0 +1,222 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum SmithingAction implements SkillAction +{ + BRONZE_BAR("Bronze bar", 1, 6.3f, ItemID.BRONZE_BAR), + BRONZE_AXE("Bronze axe", 1, 12.5f, ItemID.BRONZE_AXE), + BRONZE_DAGGER("Bronze dagger", 1, 12.5f, ItemID.BRONZE_DAGGER), + BRONZE_MACE("Bronze mace", 2, 12.5f, ItemID.BRONZE_MACE), + BRONZE_MED_HELM("Bronze med helm", 3, 12.5f, ItemID.BRONZE_MED_HELM), + BRONZE_BOLTS_UNF("Bronze bolts (unf)", 3, 12.5f, ItemID.BRONZE_BOLTS_UNF), + BRONZE_NAILS("Bronze nails", 4, 12.5f, ItemID.BRONZE_NAILS), + BRONZE_SWORD("Bronze sword", 4, 12.5f, ItemID.BRONZE_SWORD), + BRONZE_WIRE("Bronze wire", 4, 12.5f, ItemID.BRONZE_WIRE), + BRONZE_DART_TIP("Bronze dart tip", 4, 12.5f, ItemID.BRONZE_DART_TIP), + BRONZE_ARROWTIPS("Bronze arrowtips", 5, 12.5f, ItemID.BRONZE_ARROWTIPS), + BRONZE_SCIMITAR("Bronze scimitar", 5, 25, ItemID.BRONZE_SCIMITAR), + BRONZE_HASTA("Bronze hasta", 5, 25, ItemID.BRONZE_HASTA), + BRONZE_SPEAR("Bronze spear", 5, 25, ItemID.BRONZE_SPEAR), + BRONZE_JAVELIN_HEADS("Bronze javelin heads", 6, 12.5f, ItemID.BRONZE_JAVELIN_HEADS), + BRONZE_LONGSWORD("Bronze longsword", 6, 25, ItemID.BRONZE_LONGSWORD), + BRONZE_LIMBS("Bronze limbs", 6, 12.5f, ItemID.BRONZE_LIMBS), + BRONZE_KNIFE("Bronze knife", 7, 12.5f, ItemID.BRONZE_KNIFE), + BRONZE_FULL_HELM("Bronze full helm", 7, 25, ItemID.BRONZE_FULL_HELM), + BRONZE_SQ_SHIELD("Bronze sq shield", 8, 25, ItemID.BRONZE_SQ_SHIELD), + BRONZE_WARHAMMER("Bronze warhammer", 9, 37.5f, ItemID.BRONZE_WARHAMMER), + BRONZE_BATTLEAXE("Bronze battleaxe", 10, 37.5f, ItemID.BRONZE_BATTLEAXE), + BRONZE_CHAINBODY("Bronze chainbody", 11, 37.5f, ItemID.BRONZE_CHAINBODY), + BRONZE_KITESHIELD("Bronze kiteshield", 12, 37.5f, ItemID.BRONZE_KITESHIELD), + BRONZE_CLAWS("Bronze claws", 13, 25, ItemID.BRONZE_CLAWS), + BRONZE_2H_SWORD("Bronze 2h sword", 14, 37.5f, ItemID.BRONZE_2H_SWORD), + BARRONITE_DEPOSITS("Barronite deposits", 14, 30, ItemID.BARRONITE_DEPOSIT), + IRON_BAR("Iron bar", 15, 12.5f, ItemID.IRON_BAR), + IRON_DAGGER("Iron dagger", 15, 25, ItemID.IRON_DAGGER), + IRON_AXE("Iron axe", 16, 25, ItemID.IRON_AXE), + BRONZE_PLATELEGS("Bronze platelegs", 16, 37.5f, ItemID.BRONZE_PLATELEGS), + BRONZE_PLATESKIRT("Bronze plateskirt", 16, 37.5f, ItemID.BRONZE_PLATESKIRT), + IRON_SPIT("Iron spit", 17, 25, ItemID.IRON_SPIT), + IRON_MACE("Iron mace", 17, 25, ItemID.IRON_MACE), + IRON_BOLTS_UNF("Iron bolts (unf)", 18, 25, ItemID.IRON_BOLTS_UNF), + BRONZE_PLATEBODY("Bronze platebody", 18, 62.5f, ItemID.BRONZE_PLATEBODY), + IRON_MED_HELM("Iron med helm", 18, 25, ItemID.IRON_MED_HELM), + IRON_NAILS("Iron nails", 19, 25, ItemID.IRON_NAILS), + IRON_DART_TIP("Iron dart tip", 19, 25, ItemID.IRON_DART_TIP), + IRON_SWORD("Iron sword", 19, 25, ItemID.IRON_SWORD), + SILVER_BAR("Silver bar", 20, 13.7f, ItemID.SILVER_BAR), + IRON_ARROWTIPS("Iron arrowtips", 20, 25, ItemID.IRON_ARROWTIPS), + IRON_SCIMITAR("Iron scimitar", 20, 50, ItemID.IRON_SCIMITAR), + IRON_HASTA("Iron hasta", 20, 50, ItemID.IRON_HASTA), + IRON_SPEAR("Iron spear", 20, 50, ItemID.IRON_SPEAR), + IRON_LONGSWORD("Iron longsword", 21, 50, ItemID.IRON_LONGSWORD), + IRON_JAVELIN_HEADS("Iron javelin heads", 21, 25, ItemID.IRON_JAVELIN_HEADS), + IRON_FULL_HELM("Iron full helm", 22, 50, ItemID.IRON_FULL_HELM), + IRON_KNIFE("Iron knife", 22, 25, ItemID.IRON_KNIFE), + IRON_LIMBS("Iron limbs", 23, 25, ItemID.IRON_LIMBS), + IRON_SQ_SHIELD("Iron sq shield", 23, 50, ItemID.IRON_SQ_SHIELD), + IRON_WARHAMMER("Iron warhammer", 24, 75, ItemID.IRON_WARHAMMER), + IRON_BATTLEAXE("Iron battleaxe", 25, 75, ItemID.IRON_BATTLEAXE), + OIL_LANTERN_FRAME("Oil lantern frame", 26, 25, ItemID.OIL_LANTERN_FRAME), + IRON_CHAINBODY("Iron chainbody", 26, 75, ItemID.IRON_CHAINBODY), + IRON_KITESHIELD("Iron kiteshield", 27, 75, ItemID.IRON_KITESHIELD), + IRON_CLAWS("Iron claws", 28, 50, ItemID.IRON_CLAWS), + IRON_2H_SWORD("Iron 2h sword", 29, 75, ItemID.IRON_2H_SWORD), + STEEL_DAGGER("Steel dagger", 30, 37.5f, ItemID.STEEL_DAGGER), + STEEL_BAR("Steel bar", 30, 17.5f, ItemID.STEEL_BAR), + IRON_PLATESKIRT("Iron plateskirt", 31, 75, ItemID.IRON_PLATESKIRT), + IRON_PLATELEGS("Iron platelegs", 31, 75, ItemID.IRON_PLATELEGS), + STEEL_AXE("Steel axe", 31, 37.5f, ItemID.STEEL_AXE), + STEEL_MACE("Steel mace", 32, 37.5f, ItemID.STEEL_MACE), + IRON_PLATEBODY("Iron platebody", 33, 125, ItemID.IRON_PLATEBODY), + STEEL_MED_HELM("Steel med helm", 33, 37.5f, ItemID.STEEL_MED_HELM), + STEEL_BOLTS_UNF("Steel bolts (unf)", 33, 37.5f, ItemID.STEEL_BOLTS_UNF), + STEEL_DART_TIP("Steel dart tip", 34, 37.5f, ItemID.STEEL_DART_TIP), + STEEL_NAILS("Steel nails", 34, 37.5f, ItemID.STEEL_NAILS), + STEEL_SWORD("Steel sword", 34, 37.5f, ItemID.STEEL_SWORD), + CANNONBALL("Cannonball", 35, 25.6f, ItemID.CANNONBALL), + STEEL_SCIMITAR("Steel scimitar", 35, 75, ItemID.STEEL_SCIMITAR), + STEEL_ARROWTIPS("Steel arrowtips", 35, 37.5f, ItemID.STEEL_ARROWTIPS), + STEEL_HASTA("Steel hasta", 35, 75, ItemID.STEEL_HASTA), + STEEL_SPEAR("Steel spear", 35, 75, ItemID.STEEL_SPEAR), + STEEL_LIMBS("Steel limbs", 36, 37.5f, ItemID.STEEL_LIMBS), + STEEL_STUDS("Steel studs", 36, 37.5f, ItemID.STEEL_STUDS), + STEEL_LONGSWORD("Steel longsword", 36, 75, ItemID.STEEL_LONGSWORD), + STEEL_JAVELIN_HEADS("Steel javelin heads", 36, 37.5f, ItemID.STEEL_JAVELIN_HEADS), + STEEL_KNIFE("Steel knife", 37, 37.5f, ItemID.STEEL_KNIFE), + STEEL_FULL_HELM("Steel full helm", 37, 75, ItemID.STEEL_FULL_HELM), + STEEL_SQ_SHIELD("Steel sq shield", 38, 75, ItemID.STEEL_SQ_SHIELD), + STEEL_WARHAMMER("Steel warhammer", 39, 112.5f, ItemID.STEEL_WARHAMMER), + STEEL_BATTLEAXE("Steel battleaxe", 40, 112.5f, ItemID.STEEL_BATTLEAXE), + GOLD_BAR_GOLDSMITH_GAUNTLETS("Gold bar (Goldsmith gauntlets)", 40, 56.2f, ItemID.GOLD_BAR), + GOLD_BAR("Gold bar", 40, 22.5f, ItemID.GOLD_BAR), + STEEL_CHAINBODY("Steel chainbody", 41, 112.5f, ItemID.STEEL_CHAINBODY), + STEEL_KITESHIELD("Steel kiteshield", 42, 112.5f, ItemID.STEEL_KITESHIELD), + STEEL_CLAWS("Steel claws", 43, 75, ItemID.STEEL_CLAWS), + STEEL_2H_SWORD("Steel 2h sword", 44, 112.5f, ItemID.STEEL_2H_SWORD), + STEEL_PLATELEGS("Steel platelegs", 46, 112.5f, ItemID.STEEL_PLATELEGS), + STEEL_PLATESKIRT("Steel plateskirt", 46, 112.5f, ItemID.STEEL_PLATESKIRT), + STEEL_PLATEBODY("Steel platebody", 48, 187.5f, ItemID.STEEL_PLATEBODY), + BULLSEYE_LANTERN_UNF("Bullseye lantern (unf)", 49, 37, ItemID.BULLSEYE_LANTERN_UNF), + MITHRIL_DAGGER("Mithril dagger", 50, 50, ItemID.MITHRIL_DAGGER), + MITHRIL_BAR("Mithril bar", 50, 30, ItemID.MITHRIL_BAR), + MITHRIL_AXE("Mithril axe", 51, 50, ItemID.MITHRIL_AXE), + MITHRIL_MACE("Mithril mace", 52, 50, ItemID.MITHRIL_MACE), + MITHRIL_MED_HELM("Mithril med helm", 53, 50, ItemID.MITHRIL_MED_HELM), + MITHRIL_BOLTS_UNF("Mithril bolts (unf)", 53, 50, ItemID.MITHRIL_BOLTS_UNF), + MITHRIL_SWORD("Mithril sword", 54, 50, ItemID.MITHRIL_SWORD), + MITHRIL_DART_TIP("Mithril dart tip", 54, 50, ItemID.MITHRIL_DART_TIP), + MITHRIL_NAILS("Mithril nails", 54, 50, ItemID.MITHRIL_NAILS), + MITHRIL_ARROWTIPS("Mithril arrowtips", 55, 50, ItemID.MITHRIL_ARROWTIPS), + MITHRIL_SCIMITAR("Mithril scimitar", 55, 100, ItemID.MITHRIL_SCIMITAR), + MITHRIL_HASTA("Mithril hasta", 55, 100, ItemID.MITHRIL_HASTA), + MITHRIL_SPEAR("Mithril spear", 55, 100, ItemID.MITHRIL_SPEAR), + MITHRIL_LONGSWORD("Mithril longsword", 56, 100, ItemID.MITHRIL_LONGSWORD), + MITHRIL_JAVELIN_HEADS("Mithril javelin heads", 56, 50, ItemID.MITHRIL_JAVELIN_HEADS), + MITHRIL_LIMBS("Mithril limbs", 56, 50, ItemID.MITHRIL_LIMBS), + MITHRIL_FULL_HELM("Mithril full helm", 57, 100, ItemID.MITHRIL_FULL_HELM), + MITHRIL_KNIFE("Mithril knife", 57, 50, ItemID.MITHRIL_KNIFE), + MITHRIL_SQ_SHIELD("Mithril sq shield", 58, 100, ItemID.MITHRIL_SQ_SHIELD), + MITH_GRAPPLE_TIP("Mith grapple tip", 59, 50, ItemID.MITH_GRAPPLE_TIP), + MITHRIL_WARHAMMER("Mithril warhammer", 59, 150, ItemID.MITHRIL_WARHAMMER), + DRAGON_SQ_SHIELD("Dragon sq shield", 60, 75, ItemID.DRAGON_SQ_SHIELD), + MITHRIL_BATTLEAXE("Mithril battleaxe", 60, 150, ItemID.MITHRIL_BATTLEAXE), + MITHRIL_CHAINBODY("Mithril chainbody", 61, 150, ItemID.MITHRIL_CHAINBODY), + MITHRIL_KITESHIELD("Mithril kiteshield", 62, 150, ItemID.MITHRIL_KITESHIELD), + MITHRIL_CLAWS("Mithril claws", 63, 100, ItemID.MITHRIL_CLAWS), + MITHRIL_2H_SWORD("Mithril 2h sword", 64, 150, ItemID.MITHRIL_2H_SWORD), + MITHRIL_PLATESKIRT("Mithril plateskirt", 66, 150, ItemID.MITHRIL_PLATESKIRT), + MITHRIL_PLATELEGS("Mithril platelegs", 66, 150, ItemID.MITHRIL_PLATELEGS), + MITHRIL_PLATEBODY("Mithril platebody", 68, 250, ItemID.MITHRIL_PLATEBODY), + ADAMANT_DAGGER("Adamant dagger", 70, 62.5f, ItemID.ADAMANT_DAGGER), + ADAMANTITE_BAR("Adamantite bar", 70, 37.5f, ItemID.ADAMANTITE_BAR), + ADAMANT_AXE("Adamant axe", 71, 62.5f, ItemID.ADAMANT_AXE), + ADAMANT_MACE("Adamant mace", 72, 62.5f, ItemID.ADAMANT_MACE), + ADAMANT_BOLTS_UNF("Adamant bolts (unf)", 73, 62.5f, ItemID.ADAMANT_BOLTSUNF), + ADAMANT_MED_HELM("Adamant med helm", 73, 62.5f, ItemID.ADAMANT_MED_HELM), + ADAMANT_DART_TIP("Adamant dart tip", 74, 62.5f, ItemID.ADAMANT_DART_TIP), + ADAMANT_SWORD("Adamant sword", 74, 62.5f, ItemID.ADAMANT_SWORD), + ADAMANTITE_NAILS("Adamantite nails", 74, 62.5f, ItemID.ADAMANTITE_NAILS), + ADAMANT_ARROWTIPS("Adamant arrowtips", 75, 62.5f, ItemID.ADAMANT_ARROWTIPS), + ADAMANT_SCIMITAR("Adamant scimitar", 75, 125, ItemID.ADAMANT_SCIMITAR), + ADAMANT_HASTA("Adamant hasta", 75, 125, ItemID.ADAMANT_HASTA), + ADAMANT_SPEAR("Adamant spear", 75, 125, ItemID.ADAMANT_SPEAR), + ADAMANTITE_LIMBS("Adamantite limbs", 76, 62.5f, ItemID.ADAMANTITE_LIMBS), + ADAMANT_LONGSWORD("Adamant longsword", 76, 125, ItemID.ADAMANT_LONGSWORD), + ADAMANT_JAVELIN_HEADS("Adamant javelin heads", 76, 62.5f, ItemID.ADAMANT_JAVELIN_HEADS), + ADAMANT_FULL_HELM("Adamant full helm", 77, 125, ItemID.ADAMANT_FULL_HELM), + ADAMANT_KNIFE("Adamant knife", 77, 62.5f, ItemID.ADAMANT_KNIFE), + ADAMANT_SQ_SHIELD("Adamant sq shield", 78, 125, ItemID.ADAMANT_SQ_SHIELD), + ADAMANT_WARHAMMER("Adamant warhammer", 79, 187.5f, ItemID.ADAMANT_WARHAMMER), + ADAMANT_BATTLEAXE("Adamant battleaxe", 80, 187.5f, ItemID.ADAMANT_BATTLEAXE), + ADAMANT_CHAINBODY("Adamant chainbody", 81, 187.5f, ItemID.ADAMANT_CHAINBODY), + ADAMANT_KITESHIELD("Adamant kiteshield", 82, 187.5f, ItemID.ADAMANT_KITESHIELD), + ADAMANT_CLAWS("Adamant claws", 83, 125, ItemID.ADAMANT_CLAWS), + ADAMANT_2H_SWORD("Adamant 2h sword", 84, 187.5f, ItemID.ADAMANT_2H_SWORD), + RUNITE_BAR("Runite bar", 85, 50, ItemID.RUNITE_BAR), + RUNE_DAGGER("Rune dagger", 85, 75, ItemID.RUNE_DAGGER), + RUNE_AXE("Rune axe", 86, 75, ItemID.RUNE_AXE), + ADAMANT_PLATESKIRT("Adamant plateskirt", 86, 187.5f, ItemID.ADAMANT_PLATESKIRT), + ADAMANT_PLATELEGS("Adamant platelegs", 86, 187.5f, ItemID.ADAMANT_PLATELEGS), + RUNE_MACE("Rune mace", 87, 75, ItemID.RUNE_MACE), + RUNITE_BOLTS_UNF("Runite bolts (unf)", 88, 75, ItemID.RUNITE_BOLTS_UNF), + RUNE_MED_HELM("Rune med helm", 88, 75, ItemID.RUNE_MED_HELM), + ADAMANT_PLATEBODY("Adamant platebody", 88, 312.5f, ItemID.ADAMANT_PLATEBODY), + RUNE_SWORD("Rune sword", 89, 75, ItemID.RUNE_SWORD), + RUNE_NAILS("Rune nails", 89, 75, ItemID.RUNE_NAILS), + RUNE_DART_TIP("Rune dart tip", 89, 75, ItemID.RUNE_DART_TIP), + RUNE_ARROWTIPS("Rune arrowtips", 90, 75, ItemID.RUNE_ARROWTIPS), + RUNE_SCIMITAR("Rune scimitar", 90, 150, ItemID.RUNE_SCIMITAR), + RUNE_HASTA("Rune hasta", 90, 150, ItemID.RUNE_HASTA), + RUNE_SPEAR("Rune spear", 90, 150, ItemID.RUNE_SPEAR), + DRAGONFIRE_SHIELD("Dragonfire shield", 90, 2000, ItemID.DRAGONFIRE_SHIELD), + RUNE_LONGSWORD("Rune longsword", 91, 150, ItemID.RUNE_LONGSWORD), + RUNE_JAVELIN_HEADS("Rune javelin heads", 91, 75, ItemID.RUNE_JAVELIN_HEADS), + RUNITE_LIMBS("Runite limbs", 91, 75, ItemID.RUNITE_LIMBS), + RUNE_KNIFE("Rune knife", 92, 75, ItemID.RUNE_KNIFE), + RUNE_FULL_HELM("Rune full helm", 92, 150, ItemID.RUNE_FULL_HELM), + RUNE_SQ_SHIELD("Rune sq shield", 93, 150, ItemID.RUNE_SQ_SHIELD), + RUNE_WARHAMMER("Rune warhammer", 94, 225, ItemID.RUNE_WARHAMMER), + RUNE_BATTLEAXE("Rune battleaxe", 95, 225, ItemID.RUNE_BATTLEAXE), + RUNE_CHAINBODY("Rune chainbody", 96, 225, ItemID.RUNE_CHAINBODY), + RUNE_KITESHIELD("Rune kiteshield", 97, 225, ItemID.RUNE_KITESHIELD), + RUNE_CLAWS("Rune claws", 98, 150, ItemID.RUNE_CLAWS), + RUNE_PLATEBODY("Rune platebody", 99, 375, ItemID.RUNE_PLATEBODY), + RUNE_PLATESKIRT("Rune plateskirt", 99, 225, ItemID.RUNE_PLATESKIRT), + RUNE_PLATELEGS("Rune platelegs", 99, 225, ItemID.RUNE_PLATELEGS), + RUNE_2H_SWORD("Rune 2h sword", 99, 225, ItemID.RUNE_2H_SWORD), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java new file mode 100644 index 0000000000..1f168e6dba --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum ThievingAction implements SkillAction +{ + MAN_OR_WOMAN("Man / Woman", 1, 8, ItemID.MAN), + WINTER_SQIRKJUICE("Winter Sq'irkjuice", 1, 350, ItemID.WINTER_SQIRKJUICE), + VEGETABLE_STALL("Vegetable Stall", 2, 10, ItemID.CABBAGE), + CAKE_STALL("Cake Stall", 5, 16, ItemID.CAKE), + TEA_STALL("Tea Stall", 5, 16, ItemID.CUP_OF_TEA_4242), + CRAFTING_STALL("Crafting Stall", 5, 16, ItemID.CHISEL_5601), + MONKEY_FOOD_STALL("Monkey Food Stall", 5, 16, ItemID.BANANA), + FARMER("Farmer", 10, 14.5f, ItemID.FARMER), + FEMALE_HAM_MEMBER("Female H.A.M. Member", 15, 18.5f, ItemID.FEMALE_HAM), + SILK_STALL("Silk Stall", 20, 24, ItemID.SILK), + MALE_HAM_MEMBER("Male H.A.M. Member", 20, 22.5f, ItemID.MALE_HAM), + WINE_STALL("Wine Stall", 22, 27, ItemID.BOTTLE_OF_WINE), + WARRIOR_WOMEN_OR_AL_KHARID_WARRIOR("Warrior Women / Al-Kharid Warrior", 25, 26, ItemID.WARRIOR_WOMAN), + FRUIT_STALL("Fruit Stall", 25, 28, ItemID.STRANGE_FRUIT), + SPRING_SQIRKJUICE("Spring Sq'irkjuice", 25, 1350, ItemID.SPRING_SQIRKJUICE), + SEED_STALL("Seed Stall", 27, 10, ItemID.POTATO_SEED), + ROGUE("Rogue", 32, 35.5f, ItemID.ROGUE), + FUR_STALL("Fur Stall", 35, 36, ItemID.GREY_WOLF_FUR), + CAVE_GOBLIN("Cave Goblin", 36, 40, ItemID.CAVE_GOBLIN), + MASTER_FARMER("Master Farmer", 38, 43, ItemID.MASTER_FARMER), + GUARD("Guard", 40, 46.8f, ItemID.GUARD), + FISH_STALL("Fish Stall", 42, 42, ItemID.RAW_SALMON), + BEARDED_POLLNIVNIAN_BANDIT("Bearded Pollnivnian Bandit", 45, 65, ItemID.BANDIT_6782), + FREMENNIK_CITIZEN("Fremennik Citizen", 45, 65, ItemID.FREMENNIK), + AUTUMN_SQIRKJUICE("Autumn Sq'irkjuice", 45, 2350, ItemID.AUTUMN_SQIRKJUICE), + CROSSBOW_STALL("Crossbow Stall", 49, 52, ItemID.CROSSBOW), + SILVER_STALL("Silver Stall", 50, 54, ItemID.SILVER_BAR), + WALL_SAFE("Wall Safe", 50, 70, ItemID.STETHOSCOPE), + DESERT_BANDIT("Desert Bandit", 53, 79.5f, ItemID.BANDIT), + KNIGHT("Knight", 55, 84.3f, ItemID.KNIGHT_OF_ARDOUGNE), + POLLNIVNIAN_BANDIT("Pollnivnian Bandit", 55, 84.3f, ItemID.BANDIT_6781), + MAGIC_STALL("Magic Stall", 65, 100, ItemID.AIR_RUNE_6422), + SCIMITAR_STALL("Scimitar Stall", 65, 100, ItemID.STEEL_SCIMITAR), + MENAPHITE_THUG("Menaphite Thug", 65, 137.5f, ItemID.MENAPHITE_THUG), + SPICES_STALL("Spices Stall", 65, 81, ItemID.SPICE), + YANILLE_WATCHMAN("Yanille Watchman", 65, 137.5f, ItemID.WATCHMAN), + SUMMER_SQIRKJUICE("Summer Sq'irkjuice", 65, 3000, ItemID.SUMMER_SQIRKJUICE), + PALADIN("Paladin", 70, 151.8f, ItemID.PALADIN), + GNOME("Gnome", 75, 198.5f, ItemID.GNOME), + GEMS_STALL("Gems Stall", 75, 160, ItemID.SAPPHIRE), + HERO("Hero", 80, 275, ItemID.HERO), + VYRE("Vyre", 82, 306.9f, ItemID.VYRE), + ELF("Elf", 85, 353, ItemID.ELF), + TZHAAR_HUR("TzHaar-Hur", 90, 103.4f, ItemID.TZHAARHUR), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java new file mode 100644 index 0000000000..6bb90b5ea1 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.ItemID; + +@AllArgsConstructor +@Getter +public enum WoodcuttingAction implements SkillAction +{ + LOGS("Logs", 1, 25, ItemID.LOGS), + ACHEY_TREE_LOGS("Achey tree logs", 1, 25, ItemID.ACHEY_TREE_LOGS), + OAK_LOGS("Oak logs", 15, 37.5f, ItemID.OAK_LOGS), + WILLOW_LOGS("Willow logs", 30, 67.5f, ItemID.WILLOW_LOGS), + TEAK_LOGS("Teak logs", 35, 85, ItemID.TEAK_LOGS), + BARK("Bark", 45, 82.5f, ItemID.BARK), + MAPLE_LOGS("Maple logs", 45, 100, ItemID.MAPLE_LOGS), + MAHOGANY_LOGS("Mahogany logs", 50, 125, ItemID.MAHOGANY_LOGS), + ARCTIC_PINE_LOGS("Arctic pine logs", 54, 40, ItemID.ARCTIC_PINE_LOGS), + YEW_LOGS("Yew logs", 60, 175, ItemID.YEW_LOGS), + BLISTERWOOD_LOGS("Blisterwood logs", 62, 76, ItemID.BLISTERWOOD_LOGS), + SULLIUSCEPS("Sulliusceps", 65, 127, ItemID.SULLIUSCEP_CAP), + MAGIC_LOGS("Magic logs", 75, 250, ItemID.MAGIC_LOGS), + REDWOOD_LOGS("Redwood logs", 90, 380, ItemID.REDWOOD_LOGS), + ; + + private final String name; + private final int level; + private final float xp; + private final int icon; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingBonus.java new file mode 100644 index 0000000000..14ee9a4c21 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingBonus.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter(onMethod_ = @Override) +public enum WoodcuttingBonus implements SkillBonus +{ + LUMBERJACK_OUTFIT("Lumberjack Outfit (+2.5%)", 0.025f), + ; + + private final String name; + private final float value; +} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_agility.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_agility.json deleted file mode 100644 index e26954adde..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_agility.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "icon": 2150, - "name": "Gnome Stronghold", - "xp": 86.5 - }, - { - "level": 5, - "icon": 13359, - "name": "Shayzien Basic Course", - "xp": 133.2 - }, - { - "level": 10, - "icon": 11849, - "name": "Draynor Village Rooftop", - "xp": 120 - }, - { - "level":15, - "icon": 11328, - "name": "Leaping trout", - "xp": 5 - }, - { - "level": 20, - "icon": 11849, - "name": "Al Kharid Rooftop", - "xp": 180 - }, - { - "level": 30, - "icon": 11849, - "name": "Varrock Rooftop", - "xp": 238 - }, - { - "level": 30, - "icon": 10595, - "name": "Penguin Agility Course", - "xp": 540 - }, - { - "level":30, - "icon": 11330, - "name": "Leaping salmon", - "xp": 6 - }, - { - "level": 35, - "icon": 1365, - "name": "Barbarian Outpost", - "xp": 152.5 - }, - { - "level": 40, - "icon": 11849, - "name": "Canifis Rooftop", - "xp": 240 - }, - { - "level":45, - "icon": 11332, - "name": "Leaping sturgeon", - "xp": 7 - }, - { - "level": 48, - "icon": 4026, - "name": "Ape Atoll", - "xp": 580 - }, - { - "level": 48, - "icon": 13379, - "name": "Shayzien Advanced Course", - "xp": 474.3 - }, - { - "level": 50, - "icon": 11849, - "name": "Falador Rooftop", - "xp": 440 - }, - { - "level": 52, - "icon": 964, - "name": "Wilderness Agility Course", - "xp": 571 - }, - { - "level": 52, - "icon": 24736, - "name": "Hallowed Sepulchre Floor 1", - "xp": 575 - }, - { - "level": 60, - "icon": 11849, - "name": "Seers' Village Rooftop", - "xp": 570 - }, - { - "level": 60, - "icon": 4179, - "name": "Werewolf Agility Course", - "xp": 730 - }, - { - "level": 62, - "icon": 24736, - "name": "Hallowed Sepulchre Floor 2", - "xp": 925 - }, - { - "level": 70, - "icon": 11849, - "name": "Pollnivneach Rooftop", - "xp": 890 - }, - { - "level": 72, - "icon": 24736, - "name": "Hallowed Sepulchre Floor 3", - "xp": 1500 - }, - { - "level": 75, - "icon": 23962, - "name": "Prifddinas Agility Course", - "xp": 1337 - }, - { - "level": 80, - "icon": 11849, - "name": "Rellekka Rooftop", - "xp": 780 - }, - { - "level": 82, - "icon": 24736, - "name": "Hallowed Sepulchre Floor 4", - "xp": 2700 - }, - { - "level": 90, - "icon": 11849, - "name": "Ardougne Rooftop", - "xp": 793 - }, - { - "level": 92, - "icon": 24736, - "name": "Hallowed Sepulchre Floor 5", - "xp": 6000 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_construction.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_construction.json deleted file mode 100644 index 32897151de..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_construction.json +++ /dev/null @@ -1,1018 +0,0 @@ -{ - "bonuses": [ - { - "name": "Carpenter's Outfit (+2.5%)", - "value": 0.025 - } - ], - "actions": [ - { - "level": 1, - "icon": 8168, - "name": "Exit Portal", - "xp": 100 - }, - { - "level": 1, - "icon": 960, - "name": "Plank", - "xp": 29 - }, - { - "level": 1, - "icon": 8778, - "name": "Oak Plank", - "xp": 60 - }, - { - "level": 1, - "icon": 8780, - "name": "Teak Plank", - "xp": 90 - }, - { - "level": 1, - "icon": 8782, - "name": "Mahogany Plank", - "xp": 140 - }, - { - "level": 1, - "icon": 8180, - "name": "Plant", - "xp": 31 - }, - { - "level": 1, - "icon": 8186, - "name": "Fern (big plant)", - "xp": 31 - }, - { - "level": 1, - "icon": 8189, - "name": "Short Plant", - "xp": 31 - }, - { - "level": 1, - "icon": 8183, - "name": "Dock Leaf", - "xp": 31 - }, - { - "level": 1, - "icon": 8309, - "name": "Crude Wooden Chair", - "xp": 58 - }, - { - "level": 2, - "icon": 8316, - "name": "Brown Rug", - "xp": 30 - }, - { - "level": 2, - "icon": 8322, - "name": "Torn Curtains", - "xp": 132 - }, - { - "level": 3, - "icon": 8325, - "name": "Clay Fireplace", - "xp": 30 - }, - { - "level": 4, - "icon": 8319, - "name": "Wooden Bookcase", - "xp": 115 - }, - { - "level": 5, - "icon": 8216, - "name": "Firepit", - "xp": 40 - }, - { - "level": 5, - "icon": 8236, - "name": "Cat Blanket", - "xp": 15 - }, - { - "level": 5, - "icon": 8169, - "name": "Decorative Rock", - "xp": 100 - }, - { - "level": 5, - "icon": 8173, - "name": "Tree", - "xp": 31 - }, - { - "level": 6, - "icon": 8181, - "name": "Small Fern", - "xp": 70 - }, - { - "level": 6, - "icon": 8184, - "name": "Thistle", - "xp": 70 - }, - { - "level": 6, - "icon": 8187, - "name": "Bush", - "xp": 70 - }, - { - "level": 6, - "icon": 8190, - "name": "Large Leaf Bush", - "xp": 70 - }, - { - "level": 6, - "icon": 8223, - "name": "Wooden Shelves 1", - "xp": 87 - }, - { - "level": 7, - "icon": 8230, - "name": "Pump and Drain", - "xp": 100 - }, - { - "level": 7, - "icon": 8239, - "name": "Beer Barrel", - "xp": 87 - }, - { - "level": 8, - "icon": 8310, - "name": "Wooden Chair", - "xp": 87 - }, - { - "level": 9, - "icon": 8233, - "name": "Wooden Larder", - "xp": 228 - }, - { - "level": 10, - "icon": 8115, - "name": "Wood Dining Table", - "xp": 115 - }, - { - "level": 10, - "icon": 8170, - "name": "Pond", - "xp": 100 - }, - { - "level": 10, - "icon": 8174, - "name": "Nice Tree", - "xp": 44 - }, - { - "level": 10, - "icon": 8108, - "name": "Wooden Bench", - "xp": 115 - }, - { - "level": 11, - "icon": 8217, - "name": "Firepit with Hook", - "xp": 60 - }, - { - "level": 12, - "icon": 8185, - "name": "Reeds", - "xp": 100 - }, - { - "level": 12, - "icon": 8182, - "name": "Fern (small plant)", - "xp": 100 - }, - { - "level": 12, - "icon": 8240, - "name": "Cider Barrel", - "xp": 91 - }, - { - "level": 12, - "icon": 8224, - "name": "Wooden Shelves 2", - "xp": 147 - }, - { - "level": 12, - "icon": 8115, - "name": "Wood Table", - "xp": 87 - }, - { - "level": 12, - "icon": 8191, - "name": "Huge Plant", - "xp": 100 - }, - { - "level": 12, - "icon": 8188, - "name": "Tall Plant", - "xp": 100 - }, - { - "level": 13, - "icon": 8317, - "name": "Rug", - "xp": 60 - }, - { - "level": 14, - "icon": 8311, - "name": "Rocking Chair", - "xp": 87 - }, - { - "level": 15, - "icon": 8171, - "name": "Imp Statue", - "xp": 150 - }, - { - "level": 15, - "icon": 8175, - "name": "Oak Tree", - "xp": 70 - }, - { - "level": 16, - "icon": 8102, - "name": "Oak Decoration", - "xp": 120 - }, - { - "level": 17, - "icon": 8218, - "name": "Firepit with Pot", - "xp": 80 - }, - { - "level": 18, - "icon": 8323, - "name": "Curtains", - "xp": 225 - }, - { - "level": 18, - "icon": 1905, - "name": "Asgarnian Ale", - "xp": 184 - }, - { - "level": 19, - "icon": 8237, - "name": "Cat Basket", - "xp": 58 - }, - { - "level": 19, - "icon": 8312, - "name": "Oak Chair", - "xp": 120 - }, - { - "level": 20, - "icon": 8031, - "name": "Wooden Bed", - "xp": 117 - }, - { - "level": 20, - "icon": 8038, - "name": "Shoe Box", - "xp": 58 - }, - { - "level": 21, - "icon": 8045, - "name": "Shaving Stand", - "xp": 30 - }, - { - "level": 22, - "icon": 8116, - "name": "Oak Table", - "xp": 240 - }, - { - "level": 22, - "icon": 8109, - "name": "Oak Bench", - "xp": 240 - }, - { - "level": 23, - "icon": 8225, - "name": "Wooden Shelves 3", - "xp": 147 - }, - { - "level": 24, - "icon": 8219, - "name": "Small Oven", - "xp": 80 - }, - { - "level": 25, - "icon": 8052, - "name": "Oak Clock", - "xp": 142 - }, - { - "level": 26, - "icon": 1909, - "name": "Greenman's Ale", - "xp": 184 - }, - { - "level": 26, - "icon": 8313, - "name": "Oak Armchair", - "xp": 180 - }, - { - "level": 26, - "icon": 8099, - "name": "Rope Bell-Pull", - "xp": 64 - }, - { - "level": 27, - "icon": 8231, - "name": "Pump and Tub", - "xp": 200 - }, - { - "level": 27, - "icon": 8039, - "name": "Oak Drawers", - "xp": 120 - }, - { - "level": 29, - "icon": 8320, - "name": "Oak Bookcase", - "xp": 180 - }, - { - "level": 29, - "icon": 8220, - "name": "Large Oven", - "xp": 100 - }, - { - "level": 29, - "icon": 8046, - "name": "Oak Shaving Stand", - "xp": 61 - }, - { - "level": 30, - "icon": 8176, - "name": "Willow Tree", - "xp": 100 - }, - { - "level": 30, - "icon": 8032, - "name": "Oak Bed", - "xp": 210 - }, - { - "level": 30, - "icon": 10976, - "name": "Long Bone", - "xp": 4500 - }, - { - "level": 30, - "icon": 10977, - "name": "Curved Bone", - "xp": 6750 - }, - { - "level": 31, - "icon": 8110, - "name": "Carved Oak Bench", - "xp": 240 - }, - { - "level": 31, - "icon": 8117, - "name": "Carved Oak Table", - "xp": 360 - }, - { - "level": 32, - "icon": 8118, - "name": "Oak Table", - "xp": 180 - }, - { - "level": 32, - "icon": 8023, - "name": "Boxing Ring", - "xp": 420 - }, - { - "level": 33, - "icon": 8234, - "name": "Oak Larder", - "xp": 480 - }, - { - "level": 33, - "icon": 8238, - "name": "Cushioned Basket", - "xp": 58 - }, - { - "level": 33, - "icon": 8326, - "name": "Stone Fireplace", - "xp": 40 - }, - { - "level": 34, - "icon": 8221, - "name": "Steel Range", - "xp": 120 - }, - { - "level": 34, - "icon": 8226, - "name": "Oak Shelves 1", - "xp": 240 - }, - { - "level": 34, - "icon": 8028, - "name": "Glove Rack", - "xp": 120 - }, - { - "level": 34, - "icon": 8033, - "name": "Large Oak Bed", - "xp": 330 - }, - { - "level": 35, - "icon": 8314, - "name": "Teak Armchair", - "xp": 180 - }, - { - "level": 36, - "icon": 1911, - "name": "Dragon Bitter", - "xp": 224 - }, - { - "level": 36, - "icon": 8103, - "name": "Teak Decoration", - "xp": 180 - }, - { - "level": 37, - "icon": 8100, - "name": "Bell-Pull", - "xp": 120 - }, - { - "level": 37, - "icon": 8047, - "name": "Oak Dresser", - "xp": 121 - }, - { - "level": 38, - "icon": 8112, - "name": "Teak Bench", - "xp": 360 - }, - { - "level": 38, - "icon": 8118, - "name": "Teak Table", - "xp": 360 - }, - { - "level": 39, - "icon": 8040, - "name": "Oak Wardrobe", - "xp": 180 - }, - { - "level": 40, - "icon": 8034, - "name": "Teak Bed", - "xp": 300 - }, - { - "level": 40, - "icon": 8321, - "name": "Mahogany Bookcase", - "xp": 420 - }, - { - "level": 40, - "icon": 8334, - "name": "Oak Lectern", - "xp": 60 - }, - { - "level": 40, - "icon": 8324, - "name": "Opulent Curtains", - "xp": 315 - }, - { - "level": 41, - "icon": 8024, - "name": "Fencing Ring", - "xp": 570 - }, - { - "level": 41, - "icon": 8341, - "name": "Globe", - "xp": 180 - }, - { - "level": 42, - "icon": 8222, - "name": "Fancy Range", - "xp": 160 - }, - { - "level": 42, - "icon": 8351, - "name": "Crystal Ball", - "xp": 280 - }, - { - "level": 43, - "icon": 8354, - "name": "Alchemical Chart", - "xp": 30 - }, - { - "level": 43, - "icon": 8235, - "name": "Teak larder", - "xp": 750 - }, - { - "level": 44, - "icon": 8348, - "name": "Wooden Telescope", - "xp": 121 - }, - { - "level": 44, - "icon": 8029, - "name": "Weapons Rack", - "xp": 180 - }, - { - "level": 44, - "icon": 8112, - "name": "Carved Teak Bench", - "xp": 360 - }, - { - "level": 45, - "icon": 8227, - "name": "Oak Shelves 2", - "xp": 240 - }, - { - "level": 45, - "icon": 8119, - "name": "Carved Teak Table", - "xp": 600 - }, - { - "level": 45, - "icon": 8035, - "name": "Large Teak Bed", - "xp": 480 - }, - { - "level": 45, - "icon": 8177, - "name": "Maple Tree", - "xp": 122 - }, - { - "level": 46, - "icon": 8048, - "name": "Teak Dresser", - "xp": 181 - }, - { - "level": 47, - "icon": 8232, - "name": "Sink", - "xp": 300 - }, - { - "level": 47, - "icon": 8335, - "name": "Eagle Lectern", - "xp": 120 - }, - { - "level": 47, - "icon": 8336, - "name": "Demon Lectern", - "xp": 120 - }, - { - "level": 47, - "icon": 21913, - "name": "Mounted Mythical Cape", - "xp": 370 - }, - { - "level": 48, - "icon": 5755, - "name": "Chef's Delight", - "xp": 224 - }, - { - "level": 50, - "icon": 8328, - "name": "Teak Portal", - "xp": 270 - }, - { - "level": 50, - "icon": 8315, - "name": "Mahogany Armchair", - "xp": 280 - }, - { - "level": 50, - "icon": 8342, - "name": "Ornamental Globe", - "xp": 270 - }, - { - "level": 50, - "icon": 8331, - "name": "Teleport Focus", - "xp": 40 - }, - { - "level": 51, - "icon": 8041, - "name": "Teak Drawers", - "xp": 180 - }, - { - "level": 51, - "icon": 8025, - "name": "Combat Ring", - "xp": 630 - }, - { - "level": 52, - "icon": 8118, - "name": "Teak Kitchen Table", - "xp": 270 - }, - { - "level": 52, - "icon": 8113, - "name": "Mahogany Bench", - "xp": 560 - }, - { - "level": 52, - "icon": 8120, - "name": "Mahogany Table", - "xp": 840 - }, - { - "level": 53, - "icon": 8036, - "name": "4-Poster Bed", - "xp": 450 - }, - { - "level": 54, - "icon": 8030, - "name": "Extra Weapons Rack", - "xp": 440 - }, - { - "level": 54, - "icon": 8352, - "name": "Elemental Sphere", - "xp": 580 - }, - { - "level": 55, - "icon": 8053, - "name": "Teak Clock", - "xp": 202 - }, - { - "level": 56, - "icon": 8104, - "name": "Gilded Decoration", - "xp": 1020 - }, - { - "level": 56, - "icon": 8049, - "name": "Fancy Teak Dresser", - "xp": 182 - }, - { - "level": 56, - "icon": 8228, - "name": "Teak Shelves 1", - "xp": 330 - }, - { - "level": 57, - "icon": 8337, - "name": "Teak Eagle Lectern", - "xp": 180 - }, - { - "level": 57, - "icon": 8338, - "name": "Teak Demon Lectern", - "xp": 180 - }, - { - "level": 59, - "icon": 8154, - "name": "Limestone attack stone", - "xp": 200 - }, - { - "level": 59, - "icon": 8343, - "name": "Lunar Globe", - "xp": 570 - }, - { - "level": 60, - "icon": 8037, - "name": "Gilded 4-Poster Bed", - "xp": 1330 - }, - { - "level": 60, - "icon": 8101, - "name": "Posh Bell-Pull", - "xp": 420 - }, - { - "level": 60, - "icon": 24479, - "name": "Spice Rack", - "xp": 374 - }, - { - "level": 60, - "icon": 8178, - "name": "Yew Tree", - "xp": 141 - }, - { - "level": 61, - "icon": 8114, - "name": "Gilded Bench", - "xp": 1760 - }, - { - "level": 63, - "icon": 8042, - "name": "Teak Wardrobe", - "xp": 270 - }, - { - "level": 63, - "icon": 8327, - "name": "Marble Fireplace", - "xp": 500 - }, - { - "level": 63, - "icon": 8355, - "name": "Astronomical Chart", - "xp": 45 - }, - { - "level": 64, - "icon": 8349, - "name": "Teak Telescope", - "xp": 181 - }, - { - "level": 64, - "icon": 8050, - "name": "Mahogany Dresser", - "xp": 281 - }, - { - "level": 65, - "icon": 8329, - "name": "Mahogany Portal", - "xp": 420 - }, - { - "level": 65, - "icon": 8332, - "name": "Greater Focus", - "xp": 500 - }, - { - "level": 65, - "icon": 8318, - "name": "Opulent Rug", - "xp": 360 - }, - { - "level": 66, - "icon": 20649, - "name": "Teak Garden Bench", - "xp": 540 - }, - { - "level": 66, - "icon": 8353, - "name": "Crystal of Power", - "xp": 890 - }, - { - "level": 67, - "icon": 8229, - "name": "Teak Shelves 2", - "xp": 930 - }, - { - "level": 67, - "icon": 8338, - "name": "Mahogany Demon Lectern", - "xp": 580 - }, - { - "level": 67, - "icon": 8338, - "name": "Mahogany Eagle Lectern", - "xp": 580 - }, - { - "level": 68, - "icon": 8344, - "name": "Celestial Globe", - "xp": 570 - }, - { - "level": 70, - "icon": 8172, - "name": "Dungeon Entrance", - "xp": 500 - }, - { - "level": 71, - "icon": 8026, - "name": "Ranging Pedestals", - "xp": 720 - }, - { - "level": 72, - "icon": 8121, - "name": "Opulent Table", - "xp": 3100 - }, - { - "level": 74, - "icon": 8122, - "name": "Oak Door", - "xp": 600 - }, - { - "level": 74, - "icon": 8051, - "name": "Gilded Dresser", - "xp": 582 - }, - { - "level": 75, - "icon": 8043, - "name": "Mahogany Wardrobe", - "xp": 420 - }, - { - "level": 75, - "icon": 8179, - "name": "Magic Tree", - "xp": 223 - }, - { - "level": 77, - "icon": 8341, - "name": "Armillary Globe", - "xp": 960 - }, - { - "level": 77, - "icon": 20650, - "name": "Gnome Bench", - "xp": 840 - }, - { - "level": 80, - "icon": 8330, - "name": "Marble Portal", - "xp": 1500 - }, - { - "level": 80, - "icon": 8333, - "name": "Scrying Pool", - "xp": 2000 - }, - { - "level": 81, - "icon": 8027, - "name": "Balance Beam", - "xp": 1000 - }, - { - "level": 83, - "icon": 8356, - "name": "Infernal Chart", - "xp": 60 - }, - { - "level": 84, - "icon": 8350, - "name": "Mahogany Telescope", - "xp": 281 - }, - { - "level": 85, - "icon": 8054, - "name": "Gilded Clock", - "xp": 602 - }, - { - "level": 86, - "icon": 8346, - "name": "Small Orrery", - "xp": 1320 - }, - { - "level": 87, - "icon": 8044, - "name": "Gilded Wardrobe", - "xp": 720 - }, - { - "level": 95, - "icon": 8347, - "name": "Large Orrery", - "xp": 1420 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_cooking.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_cooking.json deleted file mode 100644 index 8e86a25a65..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_cooking.json +++ /dev/null @@ -1,742 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "icon": 9436, - "name": "Sinew", - "xp": 3 - }, - { - "level": 1, - "icon": 315, - "name": "Shrimps", - "xp": 30 - }, - { - "level": 1, - "icon": 2140, - "name": "Cooked Chicken", - "xp": 30 - }, - { - "level": 1, - "icon": 2142, - "name": "Cooked Meat", - "xp": 30 - }, - { - "level": 1, - "icon": 3228, - "name": "Cooked Rabbit", - "xp": 30 - }, - { - "level": 1, - "icon": 319, - "name": "Anchovies", - "xp": 30 - }, - { - "level": 1, - "icon": 325, - "name": "Sardine", - "xp": 40 - }, - { - "level": 1, - "icon": 3146, - "name": "Poison Karambwan", - "xp": 80 - }, - { - "level": 1, - "icon": 1861, - "name": "Ugthanki Meat", - "xp": 40 - }, - { - "level": 1, - "icon": 2309, - "name": "Bread", - "xp": 40 - }, - { - "level": 5, - "icon": 347, - "name": "Herring", - "xp": 50 - }, - { - "level": 6, - "icon": 2084, - "name": "Fruit Blast", - "xp": 50 - }, - { - "level": 7, - "icon": 6701, - "name": "Baked Potato", - "xp": 15 - }, - { - "level": 7, - "icon": 25654, - "name": "Guppy", - "xp": 12 - }, - { - "level": 8, - "icon": 2048, - "name": "Pineapple Punch", - "xp": 70 - }, - { - "level": 9, - "icon": 7072, - "name": "Spicy Sauce", - "xp": 25 - }, - { - "level": 10, - "icon": 355, - "name": "Mackerel", - "xp": 60 - }, - { - "level": 10, - "icon": 2325, - "name": "Redberry Pie", - "xp": 78 - }, - { - "level": 10, - "icon": 2217, - "name": "Toad Crunchies", - "xp": 100 - }, - { - "level": 11, - "icon": 7062, - "name": "Chilli Con Carne", - "xp": 55 - }, - { - "level": 11, - "icon": 9980, - "name": "Roast Bird Meat", - "xp": 62.5 - }, - { - "level": 12, - "icon": 3369, - "name": "Thin Snail Meat", - "xp": 70 - }, - { - "level": 12, - "icon": 2213, - "name": "Spicy Crunchies", - "xp": 100 - }, - { - "level": 13, - "icon": 7078, - "name": "Scrambled Egg", - "xp": 50 - }, - { - "level": 14, - "icon": 5763, - "name": "Cider", - "xp": 182 - }, - { - "level": 14, - "icon": 2205, - "name": "Worm Crunchies", - "xp": 104 - }, - { - "level": 15, - "icon": 333, - "name": "Trout", - "xp": 70 - }, - { - "level": 16, - "icon": 6293, - "name": "Spider on stick", - "xp": 80 - }, - { - "level": 16, - "icon": 6295, - "name": "Spider on shaft", - "xp": 80 - }, - { - "level": 16, - "icon": 7223, - "name": "Roast Rabbit", - "xp": 72.5 - }, - { - "level": 16, - "icon": 2209, - "name": "Chocchip crunchies", - "xp": 100 - }, - { - "level": 17, - "icon": 3371, - "name": "Lean Snail Meat", - "xp": 80 - }, - { - "level": 18, - "icon": 339, - "name": "Cod", - "xp": 75 - }, - { - "level": 18, - "icon": 2054, - "name": "Wizard Blizzard", - "xp": 110 - }, - { - "level": 19, - "icon": 1913, - "name": "Dwarven Stout", - "xp": 215 - }, - { - "level": 20, - "icon": 2080, - "name": "Short Green Guy", - "xp": 120 - }, - { - "level": 20, - "icon": 2327, - "name": "Meat Pie", - "xp": 110 - }, - { - "level": 20, - "icon": 351, - "name": "Pike", - "xp": 80 - }, - { - "level": 20, - "icon": 712, - "name": "Cup of tea", - "xp": 52 - }, - { - "level": 20, - "icon": 25660, - "name": "Cavefish", - "xp": 23 - }, - { - "level": 21, - "icon": 9988, - "name": "Roast Beast Meat", - "xp": 82.5 - }, - { - "level": 21, - "icon": 7521, - "name": "Cooked Crab Meat", - "xp": 100 - }, - { - "level": 21, - "icon": 2130, - "name": "Pot of cream", - "xp": 18 - }, - { - "level": 22, - "icon": 3373, - "name": "Fat Snail Meat", - "xp": 95 - }, - { - "level": 23, - "icon": 7064, - "name": "Egg And Tomato", - "xp": 50 - }, - { - "level": 24, - "icon": 1905, - "name": "Asgarnian Ale", - "xp": 248 - }, - { - "level": 25, - "icon": 329, - "name": "Salmon", - "xp": 90 - }, - { - "level": 25, - "icon": 2003, - "name": "Stew", - "xp": 117 - }, - { - "level": 25, - "icon": 2277, - "name": "Fruit Batta", - "xp": 150 - }, - { - "level": 26, - "icon": 2255, - "name": "Toad Batta", - "xp": 152 - }, - { - "level": 27, - "icon": 2253, - "name": "Worm Batta", - "xp": 154 - }, - { - "level": 28, - "icon": 2281, - "name": "Vegetable Batta", - "xp": 156 - }, - { - "level": 28, - "icon": 5988, - "name": "Sweetcorn", - "xp": 104 - }, - { - "level": 28, - "icon": 3381, - "name": "Cooked Slimy Eel", - "xp": 95 - }, - { - "level": 29, - "icon": 7170, - "name": "Mud Pie", - "xp": 128 - }, - { - "level": 29, - "icon": 1909, - "name": "Greenman's ale", - "xp": 281 - }, - { - "level": 29, - "icon": 2259, - "name": "Cheese and Tomato Batta", - "xp": 158 - }, - { - "level": 30, - "icon": 361, - "name": "Tuna", - "xp": 100 - }, - { - "level": 30, - "icon": 2323, - "name": "Apple Pie", - "xp": 130 - }, - { - "level": 30, - "icon": 2191, - "name": "Worm Hole", - "xp": 170 - }, - { - "level": 30, - "icon": 3144, - "name": "Cooked Karambwan", - "xp": 190 - }, - { - "level": 30, - "icon": 2878, - "name": "Roasted Chompy", - "xp": 100 - }, - { - "level": 31, - "icon": 7530, - "name": "Fishcake", - "xp": 100 - }, - { - "level": 32, - "icon": 2092, - "name": "Drunk Dragon", - "xp": 160 - }, - { - "level": 33, - "icon": 2074, - "name": "Choc Saturday", - "xp": 170 - }, - { - "level": 33, - "icon": 25666, - "name": "Tetra", - "xp": 31 - }, - { - "level": 34, - "icon": 7178, - "name": "Garden Pie", - "xp": 138 - }, - { - "level": 34, - "icon": 1907, - "name": "Wizard's mind bomb", - "xp": 314 - }, - { - "level": 35, - "icon": 1993, - "name": "Jug Of Wine", - "xp": 200 - }, - { - "level": 35, - "icon": 2289, - "name": "Plain Pizza", - "xp": 143 - }, - { - "level": 35, - "icon": 10136, - "name": "Rainbow Fish", - "xp": 110 - }, - { - "level": 35, - "icon": 2195, - "name": "Veg ball", - "xp": 175 - }, - { - "level": 37, - "icon": 2064, - "name": "Blurberry Special", - "xp": 180 - }, - { - "level": 38, - "icon": 5003, - "name": "Cave Eel", - "xp": 115 - }, - { - "level": 38, - "icon": 6697, - "name": "Pat of butter", - "xp": 40.5 - }, - { - "level": 39, - "icon": 1911, - "name": "Dragon Bitter", - "xp": 347 - }, - { - "level": 39, - "icon": 6703, - "name": "Potato with butter", - "xp": 40 - }, - { - "level": 40, - "icon": 379, - "name": "Lobster", - "xp": 120 - }, - { - "level": 40, - "icon": 1891, - "name": "Cake", - "xp": 180 - }, - { - "level": 40, - "icon": 2187, - "name": "Tangled toad's legs", - "xp": 185 - }, - { - "level": 41, - "icon": 7054, - "name": "Chilli Potato", - "xp": 165.5 - }, - { - "level": 41, - "icon": 7568, - "name": "Cooked Jubbly", - "xp": 160 - }, - { - "level": 42, - "icon": 2185, - "name": "Chocolate Bomb", - "xp": 190 - }, - { - "level": 42, - "icon": 7084, - "name": "Fried Onions", - "xp": 60 - }, - { - "level": 43, - "icon": 365, - "name": "Bass", - "xp": 130 - }, - { - "level": 44, - "icon": 2955, - "name": "Moonlight Mead", - "xp": 380 - }, - { - "level": 45, - "icon": 373, - "name": "Swordfish", - "xp": 140 - }, - { - "level": 45, - "icon": 2293, - "name": "Meat Pizza", - "xp": 169 - }, - { - "level": 46, - "icon": 7082, - "name": "Fried Mushrooms", - "xp": 60 - }, - { - "level": 46, - "icon": 25672, - "name": "Catfish", - "xp": 43 - }, - { - "level": 47, - "icon": 7188, - "name": "Fish Pie", - "xp": 164 - }, - { - "level": 47, - "icon": 6705, - "name": "Potato with cheese", - "xp": 40 - }, - { - "level": 48, - "icon": 1985, - "name": "Cheese", - "xp": 64 - }, - { - "level": 49, - "icon": 5751, - "name": "Axeman's folly", - "xp": 413 - }, - { - "level": 50, - "icon": 2343, - "name": "Cooked Oomlie Wrap", - "xp": 30 - }, - { - "level": 50, - "icon": 1897, - "name": "Chocolate Cake", - "xp": 210 - }, - { - "level": 51, - "icon": 7056, - "name": "Egg Potato", - "xp": 195.5 - }, - { - "level": 52, - "icon": 19662, - "name": "Botanical Pie", - "xp": 180 - }, - { - "level": 53, - "icon": 2149, - "name": "Lava Eel", - "xp": 30 - }, - { - "level": 54, - "icon": 5755, - "name": "Chef's Delight", - "xp": 446 - }, - { - "level": 55, - "icon": 2297, - "name": "Anchovy Pizza", - "xp": 182 - }, - { - "level": 57, - "icon": 7066, - "name": "Mushroom & onion", - "xp": 120 - }, - { - "level": 58, - "icon": 1883, - "name": "Ugthanki Kebab (Fresh)", - "xp": 80 - }, - { - "level": 58, - "icon": 1865, - "name": "Pitta Bread", - "xp": 40 - }, - { - "level": 59, - "icon": 5759, - "name": "Slayer's respite", - "xp": 479 - }, - { - "level": 60, - "icon": 2011, - "name": "Curry", - "xp": 280 - }, - { - "level": 60, - "icon": 21690, - "name": "Mushroom Pie", - "xp": 200 - }, - { - "level": 62, - "icon": 7946, - "name": "Monkfish", - "xp": 150 - }, - { - "level": 64, - "icon": 7058, - "name": "Mushroom Potato", - "xp": 270.5 - }, - { - "level": 65, - "icon": 2301, - "name": "Pineapple Pizza", - "xp": 188 - }, - { - "level": 65, - "icon": 245, - "name": "Wine of Zamorak", - "xp": 200 - }, - { - "level": 67, - "icon": 7068, - "name": "Tuna And Corn", - "xp": 204 - }, - { - "level": 68, - "icon": 7060, - "name": "Tuna Potato", - "xp": 309.5 - }, - { - "level": 70, - "icon": 7198, - "name": "Admiral Pie", - "xp": 210 - }, - { - "level": 72, - "icon": 13339, - "name": "Sacred Eel", - "xp": 109 - }, - { - "level": 73, - "icon": 22795, - "name": "Dragonfruit Pie", - "xp": 220 - }, - { - "level": 80, - "icon": 385, - "name": "Shark", - "xp": 210 - }, - { - "level": 82, - "icon": 397, - "name": "Sea Turtle", - "xp": 211.3 - }, - { - "level": 84, - "icon": 13441, - "name": "Anglerfish", - "xp": 230 - }, - { - "level": 85, - "icon": 7208, - "name": "Wild Pie", - "xp": 240 - }, - { - "level": 90, - "icon": 11936, - "name": "Dark Crab", - "xp": 215 - }, - { - "level": 91, - "icon": 391, - "name": "Manta Ray", - "xp": 216.3 - }, - { - "level": 95, - "icon": 7218, - "name": "Summer Pie", - "xp": 260 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_crafting.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_crafting.json deleted file mode 100644 index d8e6c6e9d2..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_crafting.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "icon": 1759, - "name": "Ball Of Wool", - "xp": 2.5 - }, - { - "level": 1, - "icon": 1787, - "name": "Unfired pot", - "xp": 6.3 - }, - { - "level": 1, - "icon": 1931, - "name": "Pot", - "xp": 6.3 - }, - { - "level": 1, - "icon": 1059, - "name": "Leather Gloves", - "xp": 13.8 - }, - { - "level": 1, - "icon": 1609, - "name": "Opal", - "xp": 15 - }, - { - "level": 1, - "icon": 21081, - "name": "Opal Ring", - "xp": 10 - }, - { - "level": 1, - "icon": 1775, - "name": "Molten Glass", - "xp": 20 - }, - { - "level": 1, - "icon": 1919, - "name": "Beer Glass", - "xp": 17.5 - }, - { - "level": 4, - "icon": 4527, - "name": "Empty Candle Lantern", - "xp": 19 - }, - { - "level": 5, - "icon": 1635, - "name": "Gold Ring", - "xp": 15 - }, - { - "level": 5, - "icon": 21512, - "name": "Bird House", - "xp": 15 - }, - { - "level": 6, - "icon": 1654, - "name": "Gold Necklace", - "xp": 20 - }, - { - "level": 7, - "icon": 1061, - "name": "Leather Boots", - "xp": 16.3 - }, - { - "level": 7, - "icon": 1789, - "name": "Unfired pie dish", - "xp": 15 - }, - { - "level": 7, - "icon": 2313, - "name": "Pie dish", - "xp": 10 - }, - { - "level": 7, - "icon": 11068, - "name": "Gold Bracelet", - "xp": 25 - }, - { - "level": 8, - "icon": 1791, - "name": "Unfired bowl", - "xp": 18 - }, - { - "level": 8, - "icon": 1923, - "name": "Bowl", - "xp": 15 - }, - { - "level": 8, - "icon": 1673, - "name": "Gold Amulet (U)", - "xp": 30 - }, - { - "level": 9, - "icon": 1167, - "name": "Cowl", - "xp": 18.5 - }, - { - "level": 10, - "icon": 9438, - "name": "Crossbow String", - "xp": 15 - }, - { - "level": 10, - "icon": 1777, - "name": "Bow String", - "xp": 15 - }, - { - "level": 11, - "icon": 1063, - "name": "Leather Vambraces", - "xp": 22 - }, - { - "level": 12, - "icon": 4525, - "name": "Empty Oil Lamp", - "xp": 25 - }, - { - "level": 13, - "icon": 1611, - "name": "Jade", - "xp": 20 - }, - { - "level": 13, - "icon": 21084, - "name": "Jade Ring", - "xp": 32 - }, - { - "level": 14, - "icon": 1129, - "name": "Leather Body", - "xp": 25 - }, - { - "level": 15, - "icon": 21515, - "name": "Oak Bird House", - "xp": 20 - }, - { - "level": 16, - "icon": 1613, - "name": "Red Topaz", - "xp": 25 - }, - { - "level": 16, - "icon": 21087, - "name": "Topaz Ring", - "xp": 35 - }, - { - "level": 16, - "icon": 1718, - "name": "Holy Symbol", - "xp": 50 - }, - { - "level": 16, - "icon": 21090, - "name": "Opal Necklace", - "xp": 35 - }, - - { - "level": 17, - "icon": 1724, - "name": "Unholy Symbol", - "xp": 50 - }, - { - "level": 18, - "icon": 1095, - "name": "Leather Chaps", - "xp": 27 - }, - { - "level": 19, - "icon": 5352, - "name": "Unfired plant pot", - "xp": 20 - }, - { - "level": 19, - "icon": 5350, - "name": "Empty plant pot", - "xp": 17.5 - }, - { - "level": 19, - "icon": 6038, - "name": "Magic String", - "xp": 30 - }, - { - "level": 20, - "icon": 1637, - "name": "Sapphire Ring", - "xp": 40 - }, - { - "level": 20, - "icon": 1607, - "name": "Sapphire", - "xp": 50 - }, - { - "level": 21, - "icon": 5418, - "name": "Empty Sack", - "xp": 38 - }, - { - "level": 22, - "icon": 1656, - "name": "Sapphire Necklace", - "xp": 55 - }, - { - "level": 22, - "icon": 21117, - "name": "Opal Bracelet", - "xp": 45 - }, - { - "level": 23, - "icon": 11071, - "name": "Sapphire Bracelet", - "xp": 60 - }, - { - "level": 23, - "icon": 5525, - "name": "Tiara", - "xp": 52.5 - }, - { - "level": 24, - "icon": 1675, - "name": "Sapphire Amulet (U)", - "xp": 65 - }, - { - "level": 25, - "icon": 4438, - "name": "Unfired pot lid", - "xp": 20 - }, - { - "level": 25, - "icon": 4440, - "name": "Pot lid", - "xp": 20 - }, - { - "level": 25, - "icon": 21093, - "name": "Jade Necklace", - "xp": 54 - }, - { - "level": 25, - "icon": 21518, - "name": "Willow Bird House", - "xp": 25 - }, - { - "level": 26, - "icon": 6209, - "name": "Drift Net", - "xp": 55 - }, - { - "level": 27, - "icon": 1605, - "name": "Emerald", - "xp": 67.5 - }, - { - "level": 27, - "icon": 1639, - "name": "Emerald Ring", - "xp": 55 - }, - { - "level": 27, - "icon": 21099, - "name": "Opal Amulet (U)", - "xp": 55 - }, - { - "level": 28, - "icon": 1131, - "name": "Hardleather Body", - "xp": 35 - }, - { - "level": 29, - "icon": 1658, - "name": "Emerald Necklace", - "xp": 60 - }, - { - "level": 29, - "icon": 21120, - "name": "Jade Bracelet", - "xp": 60 - }, - { - "level": 30, - "icon": 11076, - "name": "Emerald Bracelet", - "xp": 65 - }, - { - "level": 30, - "icon": 954, - "name": "Rope", - "xp": 25 - }, - { - "level": 31, - "icon": 1677, - "name": "Emerald Amulet (U)", - "xp": 70 - }, - { - "level": 32, - "icon": 10077, - "name": "Spiky Vambraces", - "xp": 6 - }, - { - "level": 32, - "icon": 21096, - "name": "Topaz Necklace", - "xp": 70 - }, - { - "level": 33, - "icon": 229, - "name": "Vial", - "xp": 35 - }, - { - "level": 34, - "icon": 1603, - "name": "Ruby", - "xp": 85 - }, - { - "level": 34, - "icon": 1641, - "name": "Ruby Ring", - "xp": 70 - }, - { - "level": 34, - "icon": 21102, - "name": "Jade Amulet (U)", - "xp": 70 - }, - { - "level": 35, - "icon": 6235, - "name": "Broodoo shield", - "xp": 100 - }, - { - "level": 35, - "icon": 21521, - "name": "Teak Bird House", - "xp": 30 - }, - { - "level": 36, - "icon": 5376, - "name": "Basket", - "xp": 56 - }, - { - "level": 38, - "icon": 1169, - "name": "Coif", - "xp": 37 - }, - { - "level": 38, - "icon": 21123, - "name": "Topaz Bracelet", - "xp": 75 - }, - { - "level": 40, - "icon": 1660, - "name": "Ruby Necklace", - "xp": 75 - }, - { - "level": 41, - "icon": 22269, - "name": "Hard leather shield", - "xp": 70 - }, - { - "level": 42, - "icon": 11085, - "name": "Ruby Bracelet", - "xp": 80 - }, - { - "level": 42, - "icon": 6668, - "name": "Fishbowl", - "xp": 42.5 - }, - { - "level": 43, - "icon": 1601, - "name": "Diamond", - "xp": 107.5 - }, - { - "level": 43, - "icon": 1643, - "name": "Diamond Ring", - "xp": 85 - }, - { - "level": 45, - "icon": 21105, - "name": "Topaz Amulet (U)", - "xp": 80 - }, - { - "level": 45, - "icon": 6328, - "name": "Snakeskin boots", - "xp": 30 - }, - { - "level": 45, - "icon": 22192, - "name": "Maple Bird House", - "xp": 35 - }, - { - "level": 46, - "icon": 567, - "name": "Unpowered Orb", - "xp": 52.5 - }, - { - "level": 47, - "icon": 6330, - "name": "Snakeskin vambraces", - "xp": 35 - }, - { - "level": 48, - "icon": 6326, - "name": "Snakeskin bandana", - "xp": 45 - }, - { - "level": 49, - "icon": 4542, - "name": "Lantern Lens", - "xp": 55 - }, - { - "level": 50, - "icon": 1679, - "name": "Ruby Amulet (U)", - "xp": 85 - }, - { - "level": 50, - "icon": 22195, - "name": "Mahogany Bird House", - "xp": 40 - }, - { - "level": 51, - "icon": 6324, - "name": "Snakeskin chaps", - "xp": 50 - }, - { - "level": 53, - "icon": 6322, - "name": "Snakeskin body", - "xp": 55 - }, - { - "level": 54, - "icon": 1395, - "name": "Water Battlestaff", - "xp": 100 - }, - { - "level": 55, - "icon": 1645, - "name": "Dragonstone Ring", - "xp": 100 - }, - { - "level": 55, - "icon": 1615, - "name": "Dragonstone", - "xp": 137.5 - }, - { - "level": 56, - "icon": 1662, - "name": "Diamond Necklace", - "xp": 90 - }, - { - "level": 56, - "icon": 22272, - "name": "Snakeskin shield", - "xp": 100 - }, - { - "level": 57, - "icon": 1065, - "name": "Green D'hide Vamb", - "xp": 62 - }, - { - "level": 58, - "icon": 11092, - "name": "Diamond Bracelet", - "xp": 95 - }, - { - "level": 58, - "icon": 1399, - "name": "Earth Battlestaff", - "xp": 112.5 - }, - { - "level": 60, - "icon": 1099, - "name": "Green D'hide Chaps", - "xp": 124 - }, - { - "level": 60, - "icon": 22198, - "name": "Yew Bird House", - "xp": 45 - }, - { - "level": 62, - "icon": 1393, - "name": "Fire Battlestaff", - "xp": 125 - }, - { - "level": 62, - "icon": 22275, - "name": "Green D'hide Shield", - "xp": 124 - }, - { - "level": 63, - "icon": 1135, - "name": "Green D'hide Body", - "xp": 186 - }, - { - "level": 66, - "icon": 1397, - "name": "Air Battlestaff", - "xp": 137.5 - }, - { - "level": 66, - "icon": 2487, - "name": "Blue D'hide Vamb", - "xp": 70 - }, - { - "level": 67, - "icon": 6575, - "name": "Onyx Ring", - "xp": 115 - }, - { - "level": 67, - "icon": 6573, - "name": "Onyx", - "xp": 167.5 - }, - { - "level": 68, - "icon": 2493, - "name": "Blue D'hide Chaps", - "xp": 140 - }, - { - "level": 69, - "icon": 22278, - "name": "Blue D'hide Shield", - "xp": 140 - }, - { - "level": 70, - "icon": 1681, - "name": "Diamond Amulet (U)", - "xp": 100 - }, - { - "level": 71, - "icon": 2499, - "name": "Blue D'hide Body", - "xp": 210 - }, - { - "level": 72, - "icon": 1664, - "name": "Dragonstone Necklace", - "xp": 105 - }, - { - "level": 73, - "icon": 2489, - "name": "Red D'hide Vamb", - "xp": 78 - }, - { - "level": 74, - "icon": 11115, - "name": "Dragonstone Bracelet", - "xp": 110 - }, - { - "level": 75, - "icon": 2495, - "name": "Red D'hide Chaps", - "xp": 156 - }, - { - "level": 75, - "icon": 22201, - "name": "Magic Bird House", - "xp": 50 - }, - { - "level": 76, - "icon": 22281, - "name": "Red D'hide Shield", - "xp": 156 - }, - { - "level": 77, - "icon": 2501, - "name": "Red D'hide Body", - "xp": 234 - }, - { - "level": 79, - "icon": 2491, - "name": "Black D'hide Vamb", - "xp": 86 - }, - { - "level": 80, - "icon": 1683, - "name": "Dragonstone Amulet (U)", - "xp": 150 - }, - { - "level": 82, - "icon": 2497, - "name": "Black D'hide Chaps", - "xp": 172 - }, - { - "level": 82, - "icon": 6577, - "name": "Onyx Necklace", - "xp": 120 - }, - { - "level": 83, - "icon": 21338, - "name": "Amethyst Bolt Tips", - "xp": 4 - }, - { - "level": 83, - "icon": 22284, - "name": "Black D'hide Shield", - "xp": 172 - }, - { - "level": 84, - "icon": 2503, - "name": "Black D'hide Body", - "xp": 258 - }, - { - "level": 84, - "icon": 11130, - "name": "Onyx Bracelet", - "xp": 125 - }, - { - "level": 85, - "icon": 21350, - "name": "Amethyst Arrowtips", - "xp": 4 - }, - { - "level": 87, - "icon": 21352, - "name": "Amethyst Javelin Heads", - "xp": 12 - }, - { - "level": 87, - "icon": 10973, - "name": "Light Orb", - "xp": 70 - }, - { - "level": 89, - "icon": 25853, - "name": "Amethyst Dart Tip", - "xp": 7.5 - }, - { - "level": 89, - "icon": 19538, - "name": "Zenyte Ring", - "xp": 150 - }, - { - "level": 89, - "icon": 19493, - "name": "Zenyte", - "xp": 200 - }, - { - "level": 90, - "icon": 6579, - "name": "Onyx Amulet (U)", - "xp": 165 - }, - { - "level": 90, - "icon": 22204, - "name": "Redwood Bird House", - "xp": 55 - }, - { - "level": 92, - "icon": 19535, - "name": "Zenyte Necklace", - "xp": 165 - }, - { - "level": 95, - "icon": 19492, - "name": "Zenyte Bracelet", - "xp": 180 - }, - { - "level": 98, - "icon": 19501, - "name": "Zenyte Amulet (U)", - "xp": 200 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_farming.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_farming.json deleted file mode 100644 index 70ac3b3444..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_farming.json +++ /dev/null @@ -1,388 +0,0 @@ -{ - "bonuses": [ - { - "name": "Farmer's Outfit (+2.5%)", - "value": 0.025 - } - ], - "actions": [ - { - "level": 1, - "icon": 8180, - "name": "Plant", - "xp": 31 - }, - { - "level": 1, - "icon": 8186, - "name": "Fern (big plant)", - "xp": 31 - }, - { - "level": 1, - "icon": 8189, - "name": "Short Plant", - "xp": 31 - }, - { - "level": 1, - "icon": 8183, - "name": "Dock Leaf", - "xp": 31 - }, - { - "level": 1, - "icon": 8181, - "name": "Small Fern", - "xp": 70 - }, - { - "level": 1, - "icon": 8184, - "name": "Thistle", - "xp": 70 - }, - { - "level": 1, - "icon": 8187, - "name": "Bush", - "xp": 70 - }, - { - "level": 1, - "icon": 8190, - "name": "Large Leaf Bush", - "xp": 70 - }, - { - "level": 1, - "icon": 8191, - "name": "Huge Plant", - "xp": 100 - }, - { - "level": 1, - "icon": 8188, - "name": "Tall Plant", - "xp": 100 - }, - { - "level": 1, - "icon": 8185, - "name": "Reeds", - "xp": 100 - }, - { - "level": 1, - "icon": 8182, - "name": "Fern (small plant)", - "xp": 100 - }, - { - "level": 1, - "icon": 10847, - "name": "Winter Sq'irk", - "xp": 30 - }, - { - "level": 1, - "icon": 10844, - "name": "Spring Sq'irk", - "xp": 40 - }, - { - "level": 1, - "icon": 10846, - "name": "Autumn Sq'irk", - "xp": 50 - }, - { - "level": 1, - "icon": 10845, - "name": "Summer Sq'irk", - "xp": 60 - }, - { - "level": 1, - "icon": 1942, - "name": "Potatoes", - "xp": 8 - }, - { - "level": 5, - "icon": 1957, - "name": "Onions", - "xp": 10 - }, - { - "level": 7, - "icon": 1965, - "name": "Cabbages", - "xp": 10 - }, - { - "level": 9, - "icon": 249, - "name": "Guam Leaf", - "xp": 11 - }, - { - "level": 12, - "icon": 1982, - "name": "Tomatoes", - "xp": 12.5 - }, - { - "level": 14, - "icon": 251, - "name": "Marrentill", - "xp": 13.5 - }, - { - "level": 15, - "icon": 1521, - "name": "Oak Tree", - "xp": 481.3 - }, - { - "level": 19, - "icon": 253, - "name": "Tarromin", - "xp": 16 - }, - { - "level": 20, - "icon": 5986, - "name": "Sweetcorn", - "xp": 17 - }, - { - "level": 23, - "icon": 21504, - "name": "Giant seaweed", - "xp": 21 - }, - { - "level": 26, - "icon": 255, - "name": "Harralander", - "xp": 21.5 - }, - { - "level": 26, - "icon": 225, - "name": "Limpwurt Plant", - "xp": 40 - }, - { - "level": 27, - "icon": 1955, - "name": "Apple Tree", - "xp": 1221.5 - }, - { - "level": 29, - "icon": 3261, - "name": "Goutweed", - "xp": 105 - }, - { - "level": 30, - "icon": 1519, - "name": "Willow Tree", - "xp": 1481.5 - }, - { - "level": 31, - "icon": 5504, - "name": "Strawberries", - "xp": 26 - }, - { - "level": 32, - "icon": 257, - "name": "Ranarr Weed", - "xp": 27 - }, - { - "level": 33, - "icon": 1963, - "name": "Banana Tree", - "xp": 1778.5 - }, - { - "level": 35, - "icon": 6333, - "name": "Teak Tree", - "xp": 7315 - }, - { - "level": 38, - "icon": 2998, - "name": "Toadflax", - "xp": 34 - }, - { - "level": 39, - "icon": 2108, - "name": "Orange Tree", - "xp": 2505.7 - }, - { - "level": 42, - "icon": 5970, - "name": "Curry Tree", - "xp": 2946.9 - }, - { - "level": 44, - "icon": 259, - "name": "Irit Leaf", - "xp": 43 - }, - { - "level": 45, - "icon": 1517, - "name": "Maple Tree", - "xp": 3448.4 - }, - { - "level": 47, - "icon": 5982, - "name": "Watermelons", - "xp": 49 - }, - { - "level": 50, - "icon": 261, - "name": "Avantoe", - "xp": 54.5 - }, - { - "level": 51, - "icon": 2114, - "name": "Pineapple Plant", - "xp": 4662.7 - }, - { - "level": 55, - "icon": 6332, - "name": "Mahogany Tree", - "xp": 15783 - }, - { - "level": 56, - "icon": 263, - "name": "Kwuarm", - "xp": 69 - }, - { - "level": 57, - "icon": 5972, - "name": "Papaya Tree", - "xp": 6218.4 - }, - { - "level": 58, - "icon": 22932, - "name": "White lily", - "xp": 292 - }, - { - "level": 60, - "icon": 1515, - "name": "Yew Tree", - "xp": 7150.9 - }, - { - "level": 61, - "icon": 231, - "name": "Snape grass", - "xp": 82 - }, - { - "level": 62, - "icon": 3000, - "name": "Snapdragon", - "xp": 87.5 - }, - { - "level": 65, - "icon": 23044, - "name": "Hespori", - "xp": 12662 - }, - { - "level": 67, - "icon": 265, - "name": "Cadantine", - "xp": 106.5 - }, - { - "level": 68, - "icon": 5974, - "name": "Palm Tree", - "xp": 10260.6 - }, - { - "level": 72, - "icon": 5980, - "name": "Calquat Tree", - "xp": 12225.5 - }, - { - "level": 73, - "icon": 2481, - "name": "Lantadyme", - "xp": 134.5 - }, - { - "level": 74, - "icon": 23962, - "name": "Crystal Tree", - "xp": 13366 - }, - { - "level": 75, - "icon": 1513, - "name": "Magic Tree", - "xp": 13913.8 - }, - { - "level": 79, - "icon": 267, - "name": "Dwarf Weed", - "xp": 170.5 - }, - { - "level": 81, - "icon": 22929, - "name": "Dragonfruit Tree", - "xp": 17895 - }, - { - "level": 83, - "icon": 6063, - "name": "Spirit Tree", - "xp": 19501.3 - }, - { - "level": 85, - "icon": 22935, - "name": "Celastrus Tree", - "xp": 14334 - }, - { - "level": 85, - "icon": 269, - "name": "Torstol", - "xp": 199.5 - }, - { - "level": 90, - "icon": 19669, - "name": "Redwood Tree", - "xp": 22680 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_firemaking.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_firemaking.json deleted file mode 100644 index 37fe236443..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_firemaking.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "bonuses": [ - { - "name": "Pyromancer Outfit (+2.5%)", - "value": 0.025 - } - ], - "actions": [ - { - "level": 1, - "icon": 1511, - "name": "Logs", - "xp": 40 - }, - { - "level": 1, - "icon": 2862, - "name": "Achey Tree Logs", - "xp": 40 - }, - { - "level": 15, - "icon": 1521, - "name": "Oak Logs", - "xp": 60 - }, - { - "level": 30, - "icon": 1519, - "name": "Willow Logs", - "xp": 90 - }, - { - "level": 35, - "icon": 6333, - "name": "Teak Logs", - "xp": 105 - }, - { - "level": 42, - "icon": 10810, - "name": "Arctic Pine Logs", - "xp": 125 - }, - { - "level": 45, - "icon": 1517, - "name": "Maple Logs", - "xp": 135 - }, - { - "level": 50, - "icon": 6332, - "name": "Mahogany Logs", - "xp": 157.5 - }, - { - "level": 60, - "icon": 1515, - "name": "Yew Logs", - "xp": 202.5 - }, - { - "level": 62, - "icon": 24691, - "name": "Blisterwood Logs", - "xp": 96 - }, - { - "level": 75, - "icon": 1513, - "name": "Magic Logs", - "xp": 303.8 - }, - { - "level": 90, - "icon": 19669, - "name": "Redwood Logs", - "xp": 350 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fishing.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fishing.json deleted file mode 100644 index 730be09d00..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fishing.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "bonuses": [ - { - "name": "Anglers Outfit (+2.5%)", - "value": 0.025 - } - ], - "actions": [ - { - "level": 1, - "icon": 317, - "name": "Raw Shrimps", - "xp": 10 - }, - { - "level": 5, - "icon": 327, - "name": "Raw Sardine", - "xp": 20 - }, - { - "level": 5, - "icon": 3150, - "name": "Raw Karambwanji", - "xp": 5 - }, - { - "level": 7, - "icon": 25652, - "name": "Raw Guppy", - "xp": 8 - }, - { - "level": 10, - "icon": 345, - "name": "Raw Herring", - "xp": 30 - }, - { - "level": 15, - "icon": 321, - "name": "Raw Anchovies", - "xp": 40 - }, - { - "level": 16, - "icon": 353, - "name": "Raw Mackerel", - "xp": 20 - }, - { - "level": 20, - "icon": 335, - "name": "Raw Trout", - "xp": 50 - }, - { - "level": 20, - "icon": 25658, - "name": "Raw Cavefish", - "xp": 16 - }, - { - "level": 23, - "icon": 341, - "name": "Raw Cod", - "xp": 45 - }, - { - "level": 25, - "icon": 349, - "name": "Raw Pike", - "xp": 60 - }, - { - "level": 28, - "icon": 3379, - "name": "Raw Slimy Eel", - "xp": 65 - }, - { - "level": 30, - "icon": 331, - "name": "Raw Salmon", - "xp": 70 - }, - { - "level": 33, - "icon": 25664, - "name": "Raw Tetra", - "xp": 24 - }, - { - "level": 35, - "icon": 359, - "name": "Raw Tuna", - "xp": 80 - }, - { - "level": 38, - "icon": 10138, - "name": "Raw Rainbow Fish", - "xp": 80 - }, - { - "level": 38, - "icon": 5001, - "name": "Raw Cave Eel", - "xp": 80 - }, - { - "level": 40, - "icon": 377, - "name": "Raw Lobster", - "xp": 90 - }, - { - "level": 46, - "icon": 363, - "name": "Raw Bass", - "xp": 100 - }, - { - "level": 46, - "icon": 25670, - "name": "Raw Catfish", - "xp": 33 - }, - { - "level": 48, - "icon": 11328, - "name": "Leaping Trout", - "xp": 50 - }, - { - "level": 50, - "icon": 371, - "name": "Raw Swordfish", - "xp": 100 - }, - { - "level": 58, - "icon": 11330, - "name": "Leaping Salmon", - "xp": 70 - }, - { - "level": 62, - "icon": 7944, - "name": "Raw Monkfish", - "xp": 120 - }, - { - "level": 65, - "icon": 3142, - "name": "Raw Karambwan", - "xp": 50 - }, - { - "level": 70, - "icon": 11332, - "name": "Leaping Sturgeon", - "xp": 80 - }, - { - "level": 76, - "icon": 383, - "name": "Raw Shark", - "xp": 110 - }, - { - "level": 79, - "icon": 395, - "name": "Raw Sea Turtle", - "xp": 38 - }, - { - "level": 80, - "icon": 21293, - "name": "Infernal Eel", - "xp": 95 - }, - { - "level": 81, - "icon": 389, - "name": "Raw Manta Ray", - "xp": 46 - }, - { - "level": 82, - "icon": 13439, - "name": "Raw Anglerfish", - "xp": 120 - }, - { - "level": 82, - "icon": 21356, - "name": "Minnow", - "xp": 26.5 - }, - { - "level": 85, - "icon": 11934, - "name": "Raw Dark Crab", - "xp": 130 - }, - { - "level": 87, - "icon": 13339, - "name": "Sacred Eel", - "xp": 105 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fletching.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fletching.json deleted file mode 100644 index 53e3042478..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_fletching.json +++ /dev/null @@ -1,592 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "icon": 52, - "name": "Arrow Shaft", - "xp": 0.33 - }, - { - "level": 1, - "icon": 53, - "name": "Headless Arrow", - "xp": 1 - }, - { - "level": 1, - "icon": 882, - "name": "Bronze Arrow", - "xp": 1.3 - }, - { - "level": 5, - "icon": 2866, - "name": "Ogre Arrow", - "xp": 1 - }, - { - "level": 5, - "icon": 50, - "name": "Shortbow (U)", - "xp": 5 - }, - { - "level": 5, - "icon": 841, - "name": "Shortbow", - "xp": 5 - }, - { - "level": 9, - "icon": 877, - "name": "Bronze Bolts", - "xp": 0.5 - }, - { - "level": 9, - "icon": 9440, - "name": "Wooden Stock", - "xp": 6 - }, - { - "level": 9, - "icon": 9454, - "name": "Bronze Crossbow (U)", - "xp": 12 - }, - { - "level": 9, - "icon": 9174, - "name": "Bronze Crossbow", - "xp": 6 - }, - { - "level": 10, - "icon": 806, - "name": "Bronze Dart", - "xp": 1.8 - }, - { - "level": 10, - "icon": 839, - "name": "Longbow", - "xp": 10 - }, - { - "level": 10, - "icon": 48, - "name": "Longbow (U)", - "xp": 10 - }, - { - "level": 11, - "icon": 879, - "name": "Opal Bolts", - "xp": 1.6 - }, - { - "level": 15, - "icon": 884, - "name": "Iron Arrow", - "xp": 2.5 - }, - { - "level": 20, - "icon": 54, - "name": "Oak Shortbow (U)", - "xp": 16.5 - }, - { - "level": 20, - "icon": 843, - "name": "Oak Shortbow", - "xp": 16.5 - }, - { - "level": 22, - "icon": 807, - "name": "Iron Dart", - "xp": 3.8 - }, - { - "level": 24, - "icon": 9442, - "name": "Oak Stock", - "xp": 16 - }, - { - "level": 24, - "icon": 9456, - "name": "Blurite Crossbow (U)", - "xp": 32 - }, - { - "level": 24, - "icon": 9176, - "name": "Blurite Crossbow", - "xp": 16 - }, - { - "level": 25, - "icon": 56, - "name": "Oak Longbow (U)", - "xp": 25 - }, - { - "level": 25, - "icon": 845, - "name": "Oak Longbow", - "xp": 25 - }, - { - "level": 27, - "icon": 22251, - "name": "Oak Shield", - "xp": 50 - }, - { - "level": 30, - "icon": 886, - "name": "Steel Arrow", - "xp": 5 - }, - { - "level": 32, - "icon": 10158, - "name": "Kebbit Bolts", - "xp": 1 - }, - { - "level": 35, - "icon": 60, - "name": "Willow Shortbow (U)", - "xp": 33.3 - }, - { - "level": 35, - "icon": 849, - "name": "Willow Shortbow", - "xp": 33.3 - }, - { - "level": 37, - "icon": 808, - "name": "Steel Dart", - "xp": 7.5 - }, - { - "level": 39, - "icon": 9140, - "name": "Iron Bolts", - "xp": 1.5 - }, - { - "level": 39, - "icon": 9444, - "name": "Willow Stock", - "xp": 22 - }, - { - "level": 39, - "icon": 9457, - "name": "Iron Crossbow (U)", - "xp": 44 - }, - { - "level": 39, - "icon": 9177, - "name": "Iron Crossbow", - "xp": 22 - }, - { - "level": 40, - "icon": 58, - "name": "Willow Longbow (U)", - "xp": 41.5 - }, - { - "level": 40, - "icon": 847, - "name": "Willow Longbow", - "xp": 41.5 - }, - { - "level": 40, - "icon": 1391, - "name": "Battlestaff", - "xp": 80 - }, - { - "level": 41, - "icon": 880, - "name": "Pearl Bolts", - "xp": 3.2 - }, - { - "level": 42, - "icon": 22254, - "name": "Willow Shield", - "xp": 83 - }, - { - "level": 42, - "icon": 10159, - "name": "Long Kebbit Bolts", - "xp": 1.3 - }, - { - "level": 43, - "icon": 9145, - "name": "Silver Bolts", - "xp": 2.5 - }, - { - "level": 45, - "icon": 888, - "name": "Mithril Arrow", - "xp": 7.5 - }, - { - "level": 46, - "icon": 9141, - "name": "Steel Bolts", - "xp": 3.5 - }, - { - "level": 46, - "icon": 9446, - "name": "Teak Stock", - "xp": 27 - }, - { - "level": 46, - "icon": 9459, - "name": "Steel Crossbow (U)", - "xp": 54 - }, - { - "level": 46, - "icon": 9179, - "name": "Steel Crossbow", - "xp": 27 - }, - { - "level": 50, - "icon": 64, - "name": "Maple Shortbow (U)", - "xp": 50 - }, - { - "level": 50, - "icon": 853, - "name": "Maple Shortbow", - "xp": 50 - }, - { - "level": 51, - "icon": 881, - "name": "Barbed Bolts", - "xp": 9.5 - }, - { - "level": 52, - "icon": 809, - "name": "Mithril Dart", - "xp": 11.2 - }, - { - "level": 52, - "icon": 4150, - "name": "Broad Arrows", - "xp": 10 - }, - { - "level": 53, - "icon": 12926, - "name": "Toxic Blowpipe", - "xp": 120 - }, - { - "level": 54, - "icon": 9181, - "name": "Mith Crossbow", - "xp": 32 - }, - { - "level": 54, - "icon": 9448, - "name": "Maple Stock", - "xp": 32 - }, - { - "level": 54, - "icon": 9142, - "name": "Mithril Bolts", - "xp": 5 - }, - { - "level": 54, - "icon": 9461, - "name": "Mithril Crossbow (U)", - "xp": 64 - }, - { - "level": 55, - "icon": 62, - "name": "Maple Longbow (U)", - "xp": 58.3 - }, - { - "level": 55, - "icon": 11875, - "name": "Broad Bolts", - "xp": 3 - }, - { - "level": 55, - "icon": 851, - "name": "Maple Longbow", - "xp": 58 - }, - { - "level": 56, - "icon": 9337, - "name": "Sapphire Bolts", - "xp": 4.7 - }, - { - "level": 57, - "icon": 22257, - "name": "Maple Shield", - "xp": 116.5 - }, - { - "level": 58, - "icon": 9338, - "name": "Emerald Bolts", - "xp": 5.5 - }, - { - "level": 60, - "icon": 890, - "name": "Adamant Arrow", - "xp": 10 - }, - { - "level": 61, - "icon": 9143, - "name": "Adamant Bolts", - "xp": 7 - }, - { - "level": 61, - "icon": 9450, - "name": "Mahogany Stock", - "xp": 41 - }, - { - "level": 61, - "icon": 9463, - "name": "Adamant Crossbow (U)", - "xp": 82 - }, - { - "level": 61, - "icon": 9183, - "name": "Adamant Crossbow", - "xp": 41 - }, - { - "level": 63, - "icon": 9339, - "name": "Ruby Bolts", - "xp": 6.3 - }, - { - "level": 65, - "icon": 9340, - "name": "Diamond Bolts", - "xp": 7 - }, - { - "level": 65, - "icon": 857, - "name": "Yew Shortbow", - "xp": 67.5 - }, - { - "level": 65, - "icon": 68, - "name": "Yew Shortbow (U)", - "xp": 67.5 - }, - { - "level": 67, - "icon": 810, - "name": "Adamant Dart", - "xp": 15 - }, - { - "level": 69, - "icon": 9465, - "name": "Runite Crossbow (U)", - "xp": 100 - }, - { - "level": 69, - "icon": 9185, - "name": "Rune Crossbow", - "xp": 50 - }, - { - "level": 69, - "icon": 9452, - "name": "Yew Stock", - "xp": 50 - }, - { - "level": 69, - "icon": 9144, - "name": "Runite Bolts", - "xp": 10 - }, - { - "level": 70, - "icon": 855, - "name": "Yew Longbow", - "xp": 75 - }, - { - "level": 70, - "icon": 66, - "name": "Yew Longbow (U)", - "xp": 75 - }, - { - "level": 71, - "icon": 9341, - "name": "Dragonstone Bolts", - "xp": 8.2 - }, - { - "level": 72, - "icon": 22260, - "name": "Yew Shield", - "xp": 150 - }, - { - "level": 73, - "icon": 9342, - "name": "Onyx Bolts", - "xp": 9.4 - }, - { - "level": 75, - "icon": 892, - "name": "Rune Arrow", - "xp": 12.5 - }, - { - "level": 76, - "icon": 21316, - "name": "Amethyst Broad Bolts", - "xp": 10.6 - }, - { - "level": 78, - "icon": 21952, - "name": "Magic Stock", - "xp": 70 - }, - { - "level": 78, - "icon": 21921, - "name": "Dragon Crossbow (U)", - "xp": 135 - }, - { - "level": 78, - "icon": 21902, - "name": "Dragon Crossbow", - "xp": 70 - }, - { - "level": 80, - "icon": 861, - "name": "Magic Shortbow", - "xp": 83.3 - }, - { - "level": 80, - "icon": 72, - "name": "Magic Shortbow (U)", - "xp": 83.3 - }, - { - "level": 81, - "icon": 811, - "name": "Rune Dart", - "xp": 18.8 - }, - { - "level": 82, - "icon": 21326, - "name": "Amethyst Arrow", - "xp": 13.5 - }, - { - "level": 84, - "icon": 21930, - "name": "Dragon Bolts", - "xp": 12 - }, - { - "level": 84, - "icon": 21318, - "name": "Amethyst Javelin", - "xp": 13.5 - }, - { - "level": 85, - "icon": 859, - "name": "Magic Longbow", - "xp": 91.5 - }, - { - "level": 85, - "icon": 70, - "name": "Magic Longbow (U)", - "xp": 91.5 - }, - { - "level": 87, - "icon": 22263, - "name": "Magic Shield", - "xp": 183 - }, - { - "level": 90, - "icon": 25849, - "name": "Amethyst Dart", - "xp": 21 - }, - { - "level": 90, - "icon": 11212, - "name": "Dragon Arrow", - "xp": 15 - }, - { - "level": 92, - "icon": 22266, - "name": "Redwood Shield", - "xp": 216 - }, - { - "level": 95, - "icon": 11230, - "name": "Dragon Dart", - "xp": 25 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_herblore.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_herblore.json deleted file mode 100644 index d91f14eccf..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_herblore.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "actions": [ - { - "level": 3, - "icon": 121, - "name": "Attack Potion (3)", - "xp": 25 - }, - { - "level": 3, - "icon": 249, - "name": "Guam Leaf", - "xp": 2.5 - }, - { - "level": 5, - "icon": 251, - "name": "Marrentill", - "xp": 3.8 - }, - { - "level": 5, - "icon": 175, - "name": "Antipoison (3)", - "xp": 37.5 - }, - { - "level": 8, - "icon": 4844, - "name": "Relicym's Balm (3)", - "xp": 40 - }, - { - "level": 11, - "icon": 253, - "name": "Tarromin", - "xp": 5 - }, - { - "level": 12, - "icon": 115, - "name": "Strength Potion (3)", - "xp": 50 - }, - { - "level": 15, - "icon": 3410, - "name": "Serum 207 (3)", - "xp": 50 - }, - { - "level": 18, - "icon": 4419, - "name": "Guthix Rest (3)", - "xp": 59 - }, - { - "level": 19, - "icon": 10142, - "name": "Guam tar", - "xp": 30 - }, - { - "level": 20, - "icon": 255, - "name": "Harralander", - "xp": 6.3 - }, - { - "level": 22, - "icon": 6472, - "name": "Compost Potion (3)", - "xp": 60 - }, - { - "level": 22, - "icon": 127, - "name": "Restore Potion (3)", - "xp": 62.5 - }, - { - "level": 25, - "icon": 257, - "name": "Ranarr Weed", - "xp": 7.5 - }, - { - "level": 26, - "icon": 3010, - "name": "Energy Potion (3)", - "xp": 67.5 - }, - { - "level": 30, - "icon": 2998, - "name": "Toadflax", - "xp": 8 - }, - { - "level": 30, - "icon": 133, - "name": "Defence Potion (3)", - "xp": 75 - }, - { - "level": 31, - "icon": 10143, - "name": "Marrentill tar", - "xp": 42.5 - }, - { - "level": 34, - "icon": 3034, - "name": "Agility Potion (3)", - "xp": 80 - }, - { - "level": 36, - "icon": 9741, - "name": "Combat Potion (3)", - "xp": 84 - }, - { - "level": 38, - "icon": 139, - "name": "Prayer Potion (3)", - "xp": 87.5 - }, - { - "level": 39, - "icon": 10144, - "name": "Tarromin tar", - "xp": 55 - }, - { - "level": 40, - "icon": 259, - "name": "Irit Leaf", - "xp": 8.8 - }, - { - "level": 44, - "icon": 10145, - "name": "Harralander tar", - "xp": 72.5 - }, - { - "level": 45, - "icon": 145, - "name": "Super Attack (3)", - "xp": 100 - }, - { - "level": 48, - "icon": 181, - "name": "Superantipoison (3)", - "xp": 106.3 - }, - { - "level": 48, - "icon": 261, - "name": "Avantoe", - "xp": 10 - }, - { - "level": 50, - "icon": 151, - "name": "Fishing Potion (3)", - "xp": 112.5 - }, - { - "level": 52, - "icon": 3018, - "name": "Super Energy (3)", - "xp": 117.5 - }, - { - "level": 53, - "icon": 10000, - "name": "Hunter Potion (3)", - "xp": 120 - }, - { - "level": 54, - "icon": 263, - "name": "Kwuarm", - "xp": 11.3 - }, - { - "level": 55, - "icon": 157, - "name": "Super Strength (3)", - "xp": 125 - }, - { - "level": 57, - "icon": 9022, - "name": "Magic Essence Potion (3)", - "xp": 130 - }, - { - "level": 59, - "icon": 3000, - "name": "Snapdragon", - "xp": 11.8 - }, - { - "level": 60, - "icon": 187, - "name": "Weapon Poison", - "xp": 137.5 - }, - { - "level": 63, - "icon": 3026, - "name": "Super Restore (3)", - "xp": 142.5 - }, - { - "level": 65, - "icon": 265, - "name": "Cadantine", - "xp": 12.5 - }, - { - "level": 65, - "icon": 10927, - "name": "Sanfew Serum (3)", - "xp": 160 - }, - { - "level": 66, - "icon": 163, - "name": "Super Defence (3)", - "xp": 150 - }, - { - "level": 67, - "icon": 2481, - "name": "Lantadyme", - "xp": 13.1 - }, - { - "level": 68, - "icon": 5945, - "name": "Antidote+ (3)", - "xp": 155 - }, - { - "level": 69, - "icon": 2454, - "name": "Antifire Potion (3)", - "xp": 157.5 - }, - { - "level": 70, - "icon": 23697, - "name": "Divine super attack potion(4)", - "xp:": 2 - }, - { - "level": 70, - "icon": 23721, - "name": "Divine super defence potion(4)", - "xp:": 2 - }, - { - "level": 70, - "icon": 23709, - "name": "Divine super strength potion(4)", - "xp:": 2 - }, - { - "level": 70, - "icon": 267, - "name": "Dwarf Weed", - "xp": 13.8 - }, - { - "level": 72, - "icon": 169, - "name": "Ranging Potion (3)", - "xp": 162.5 - }, - { - "level": 73, - "icon": 5937, - "name": "Weapon Poison (+)", - "xp": 165 - }, - { - "level": 74, - "icon": 23733, - "name": "Divine ranging potion(4)", - "xp:": 2 - }, - { - "level": 75, - "icon": 269, - "name": "Torstol", - "xp": 15 - }, - { - "level": 76, - "icon": 3042, - "name": "Magic Potion (3)", - "xp": 172.5 - }, - { - "level": 77, - "icon": 12627, - "name": "Stamina Potion (3)", - "xp": 76.5 - }, - { - "level": 77, - "icon": 12625, - "name": "Stamina Potion (4)", - "xp": 102 - }, - { - "level": 78, - "icon": 23745, - "name": "Divine magic potion(4)", - "xp:": 2 - }, - { - "level": 78, - "icon": 189, - "name": "Zamorak Brew (3)", - "xp": 175 - }, - { - "level": 79, - "icon": 5954, - "name": "Antidote++ (3)", - "xp": 177.5 - }, - { - "level": 80, - "icon": 22464, - "name": "Bastion Potion (3)", - "xp": 155 - }, - { - "level": 80, - "icon": 22452, - "name": "Battlemage Potion (3)", - "xp": 155 - }, - { - "level": 81, - "icon": 6687, - "name": "Saradomin Brew (3)", - "xp": 180 - }, - { - "level": 82, - "icon": 5940, - "name": "Weapon Poison (++)", - "xp": 190 - }, - { - "level": 84, - "icon": 11953, - "name": "Extended Antifire (3)", - "xp": 82.5 - }, - { - "level": 84, - "icon": 11951, - "name": "Extended Antifire (4)", - "xp": 110 - }, - { - "level": 86, - "icon": 24635, - "name": "Divine bastion potion(4)", - "xp:": 2 - }, - { - "level": 86, - "icon": 24623, - "name": "Divine battlemage potion(4)", - "xp:": 2 - }, - { - "level": 87, - "icon": 12907, - "name": "Anti-venom(3)", - "xp": 90 - }, - { - "level": 87, - "icon": 12905, - "name": "Anti-venom(4)", - "xp": 120 - }, - { - "level": 90, - "icon": 12695, - "name": "Super Combat Potion(4)", - "xp": 150 - }, - { - "level": 92, - "icon": 21978, - "name": "Super Antifire (4)", - "xp": 130 - }, - { - "level": 94, - "icon": 12913, - "name": "Anti-venom+(4)", - "xp": 125 - }, - { - "level": 97, - "icon": 23685, - "name": "Divine super combat potion(4)", - "xp:": 2 - }, - { - "level": 98, - "icon": 21981, - "name": "Extended Super Antifire (3)", - "xp": 120 - }, - { - "level": 98, - "icon": 21978, - "name": "Extended Super Antifire (4)", - "xp": 160 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_hunter.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_hunter.json deleted file mode 100644 index a50c2164d6..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_hunter.json +++ /dev/null @@ -1,352 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "icon": 9965, - "name": "Crimson Swift", - "xp": 34 - }, - { - "level": 1, - "icon": 9953, - "name": "Polar Kebbit", - "xp": 30 - }, - { - "level": 3, - "icon": 9954, - "name": "Common Kebbit", - "xp": 36 - }, - { - "level": 5, - "icon": 9968, - "name": "Golden Warbler", - "xp": 47 - }, - { - "level": 5, - "icon": 21512, - "name": "Regular Bird House", - "xp": 280 - }, - { - "level": 7, - "icon": 9955, - "name": "Feldip Weasel", - "xp": 48 - }, - { - "level": 9, - "icon": 9966, - "name": "Copper Longtail", - "xp": 61 - }, - { - "level": 11, - "icon": 9967, - "name": "Cerulean Twitch", - "xp": 64.5 - }, - { - "level": 13, - "icon": 9956, - "name": "Desert Devil", - "xp": 66 - }, - { - "level": 14, - "icon": 21515, - "name": "Oak Bird House", - "xp": 420 - }, - { - "level": 15, - "icon": 9970, - "name": "Ruby Harvest", - "xp": 24 - }, - { - "level": 17, - "icon": 11238, - "name": "Baby Impling", - "xp": 18 - }, - { - "level": 19, - "icon": 9969, - "name": "Tropical Wagtail", - "xp": 95 - }, - { - "level": 22, - "icon": 11240, - "name": "Young Impling", - "xp": 20 - }, - { - "level": 23, - "icon": 9953, - "name": "Wild Kebbit", - "xp": 128 - }, - { - "level": 24, - "icon": 21518, - "name": "Willow Bird House", - "xp": 560 - }, - { - "level": 25, - "icon": 9971, - "name": "Sapphire Glacialis", - "xp": 34 - }, - { - "level": 27, - "icon": 10092, - "name": "Ferret", - "xp": 115 - }, - { - "level": 27, - "icon": 9975, - "name": "White Rabbit", - "xp": 144 - }, - { - "level": 28, - "icon": 11242, - "name": "Gourmet Impling", - "xp": 22 - }, - { - "level": 29, - "icon": 10149, - "name": "Swamp Lizard", - "xp": 152 - }, - { - "level": 31, - "icon": 10045, - "name": "Spined Larupia", - "xp": 180 - }, - { - "level": 33, - "icon": 9958, - "name": "Barb-tailed Kebbit", - "xp": 168 - }, - { - "level": 34, - "icon": 21521, - "name": "Teak Bird House", - "xp": 700 - }, - { - "level": 35, - "icon": 9972, - "name": "Snowy Knight", - "xp": 44 - }, - { - "level": 36, - "icon": 11244, - "name": "Earth Impling", - "xp": 25 - }, - { - "level": 37, - "icon": 9957, - "name": "Prickly Kebbit", - "xp": 204 - }, - { - "level": 41, - "icon": 10051, - "name": "Horned Graahk", - "xp": 240 - }, - { - "level": 42, - "icon": 11246, - "name": "Essence Impling", - "xp": 27 - }, - { - "level": 43, - "icon": 9960, - "name": "Spotted Kebbit", - "xp": 104 - }, - { - "level": 44, - "icon": 22192, - "name": "Maple Bird House", - "xp": 820 - }, - { - "level": 45, - "icon": 9973, - "name": "Black Warlock", - "xp": 54 - }, - { - "level": 47, - "icon": 10146, - "name": "Orange Salamander", - "xp": 224 - }, - { - "level": 49, - "icon": 9961, - "name": "Razor-backed Kebbit", - "xp": 348 - }, - { - "level": 49, - "icon": 22195, - "name": "Mahogany Bird House", - "xp": 960 - }, - { - "level": 50, - "icon": 11248, - "name": "Eclectic Impling", - "xp": 32 - }, - { - "level": 51, - "icon": 9959, - "name": "Sabre-toothed Kebbit", - "xp": 200 - }, - { - "level": 53, - "icon": 9976, - "name": "Chinchompa", - "xp": 198.3 - }, - { - "level": 55, - "icon": 10039, - "name": "Sabre-toothed Kyatt", - "xp": 300 - }, - { - "level": 57, - "icon": 9963, - "name": "Dark Kebbit", - "xp": 132 - }, - { - "level": 58, - "icon": 11250, - "name": "Nature Impling", - "xp": 34 - }, - { - "level": 59, - "icon": 10147, - "name": "Red Salamander", - "xp": 272 - }, - { - "level": 59, - "icon": 22198, - "name": "Yew Bird House", - "xp": 1020 - }, - { - "level": 60, - "icon": 19556, - "name": "Maniacal Monkey", - "xp": 1000 - }, - { - "level": 63, - "icon": 9977, - "name": "Carnivorous Chinchompa", - "xp": 265 - }, - { - "level": 65, - "icon": 11252, - "name": "Magpie Impling", - "xp": 44 - }, - { - "level": 65, - "icon": 11252, - "name": "Magpie Impling (Gielinor)", - "xp": 216 - }, - { - "level": 67, - "icon": 10148, - "name": "Black Salamander", - "xp": 319.5 - }, - { - "level": 69, - "icon": 9964, - "name": "Dashing Kebbit", - "xp": 156 - }, - { - "level": 73, - "icon": 5091, - "name": "Black Chinchompa", - "xp": 315 - }, - { - "level": 74, - "icon": 22201, - "name": "Magic Bird House", - "xp": 1140 - }, - { - "level": 74, - "icon": 11254, - "name": "Ninja Impling", - "xp": 52 - }, - { - "level": 74, - "icon": 11254, - "name": "Ninja Impling (Gielinor)", - "xp": 240 - }, - { - "level": 80, - "icon": 23768, - "name": "Crystal Impling", - "xp": 280 - }, - { - "level": 83, - "icon": 11256, - "name": "Dragon Impling", - "xp": 65 - }, - { - "level": 83, - "icon": 11256, - "name": "Dragon Impling (Gielinor)", - "xp": 300 - }, - { - "level": 89, - "icon": 22204, - "name": "Redwood Bird House", - "xp": 1200 - }, - { - "level": 89, - "icon": 19732, - "name": "Lucky Impling", - "xp": 380 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_magic.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_magic.json deleted file mode 100644 index c127933d7c..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_magic.json +++ /dev/null @@ -1,1084 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "sprite": 15, - "name": "Wind Strike", - "xp": 5.5 - }, - { - "level": 3, - "sprite": 16, - "name": "Confuse", - "xp": 13 - }, - { - "level": 4, - "sprite": 358, - "name": "Enchant Opal Bolt", - "xp": 9 - }, - { - "level": 5, - "sprite": 17, - "name": "Water Strike", - "xp": 7.5 - }, - { - "level": 6, - "sprite": 1252, - "name": "Arceuus Library Teleport", - "xp": 10 - }, - { - "level": 7, - "sprite": 18, - "name": "Enchant Sapphire Jewellery", - "xp": 17.5 - }, - { - "level": 7, - "sprite": 358, - "name": "Enchant Sapphire Bolt", - "xp": 17.5 - }, - { - "level": 9, - "sprite": 19, - "name": "Earth Strike", - "xp": 9.5 - }, - { - "level": 11, - "sprite": 20, - "name": "Weaken", - "xp": 21 - }, - { - "level": 13, - "sprite": 21, - "name": "Fire Strike", - "xp": 11.5 - }, - { - "level": 14, - "sprite": 358, - "name": "Enchant Jade Bolt", - "xp": 19 - }, - { - "level": 15, - "sprite": 22, - "name": "Bones To Bananas", - "xp": 25 - }, - { - "level": 16, - "sprite": 1247, - "name": "Basic Reanimation", - "xp": 32 - }, - { - "level": 17, - "sprite": 1253, - "name": "Draynor Manor Teleport", - "xp": 16 - }, - { - "level": 17, - "sprite": 23, - "name": "Wind Bolt", - "xp": 13.5 - }, - { - "level": 19, - "sprite": 24, - "name": "Curse", - "xp": 29 - }, - { - "level": 20, - "sprite": 319, - "name": "Bind", - "xp": 30 - }, - { - "level": 21, - "sprite": 25, - "name": "Low Level Alchemy", - "xp": 31 - }, - { - "level": 23, - "sprite": 26, - "name": "Water Bolt", - "xp": 16.5 - }, - { - "level": 24, - "sprite": 358, - "name": "Enchant Pearl Bolt", - "xp": 29 - }, - { - "level": 25, - "sprite": 27, - "name": "Varrock Teleport", - "xp": 35 - }, - { - "level": 27, - "sprite": 28, - "name": "Enchant Emerald Jewellery", - "xp": 37 - }, - { - "level": 27, - "sprite": 358, - "name": "Enchant Emerald Bolt", - "xp": 37 - }, - { - "level": 28, - "sprite": 1256, - "name": "Mind Altar Teleport", - "xp": 22 - }, - { - "level": 29, - "sprite": 358, - "name": "Enchant Topaz Bolt", - "xp": 33 - }, - { - "level": 29, - "sprite": 29, - "name": "Earth Bolt", - "xp": 19.5 - }, - { - "level": 31, - "sprite": 30, - "name": "Lumbridge Teleport", - "xp": 41 - }, - { - "level": 33, - "sprite": 31, - "name": "Telekinetic Grab", - "xp": 43 - }, - { - "level": 34, - "sprite": 1257, - "name": "Respawn Teleport", - "xp": 27 - }, - { - "level": 35, - "sprite": 32, - "name": "Fire Bolt", - "xp": 22.5 - }, - { - "level": 35, - "sprite": 1267, - "name": "Ghostly Grasp", - "xp": 22.5 - }, - { - "level": 37, - "sprite": 33, - "name": "Falador Teleport", - "xp": 48 - }, - { - "level": 38, - "sprite": 1270, - "name": "Resurrect Lesser Thrall", - "xp": 55 - }, - { - "level": 39, - "sprite": 34, - "name": "Crumble Undead", - "xp": 24.5 - }, - { - "level": 40, - "sprite": 1254, - "name": "Salve Graveyard Teleport", - "xp": 30 - }, - { - "level": 40, - "sprite": 355, - "name": "Teleport To House", - "xp": 30 - }, - { - "level": 41, - "sprite": 1248, - "name": "Adept Reanimation", - "xp": 80 - }, - { - "level": 41, - "sprite": 35, - "name": "Wind Blast", - "xp": 25.5 - }, - { - "level": 43, - "sprite": 36, - "name": "Superheat Item", - "xp": 53 - }, - { - "level": 44, - "sprite": 1302, - "name": "Inferior Demonbane", - "xp": 27 - }, - { - "level": 45, - "sprite": 37, - "name": "Camelot Teleport", - "xp": 55.5 - }, - { - "level": 47, - "sprite": 38, - "name": "Water Blast", - "xp": 28.5 - }, - { - "level": 47, - "sprite": 1315, - "name": "Shadow Veil", - "xp": 58 - }, - { - "level": 48, - "sprite": 1259, - "name": "Fenkenstrain's Castle Teleport", - "xp": 50 - }, - { - "level": 49, - "sprite": 39, - "name": "Enchant Ruby Jewellery", - "xp": 59 - }, - { - "level": 49, - "sprite": 358, - "name": "Enchant Ruby Bolt", - "xp": 59 - }, - { - "level": 50, - "sprite": 53, - "name": "Iban Blast", - "xp": 30 - }, - { - "level": 50, - "sprite": 329, - "name": "Smoke Rush", - "xp": 30 - }, - { - "level": 50, - "sprite": 324, - "name": "Magic Dart", - "xp": 30 - }, - { - "level": 50, - "sprite": 320, - "name": "Snare", - "xp": 60 - }, - { - "level": 50, - "sprite": 1316, - "name": "Dark Lure", - "xp": 60 - }, - { - "level": 51, - "sprite": 54, - "name": "Ardougne Teleport", - "xp": 61 - }, - { - "level": 52, - "sprite": 337, - "name": "Shadow Rush", - "xp": 31 - }, - { - "level": 53, - "sprite": 40, - "name": "Earth Blast", - "xp": 31.5 - }, - { - "level": 54, - "sprite": 341, - "name": "Paddewwa Teleport", - "xp": 64 - }, - { - "level": 55, - "sprite": 41, - "name": "High Level Alchemy", - "xp": 65 - }, - { - "level": 56, - "sprite": 42, - "name": "Charge Water Orb", - "xp": 66 - }, - { - "level": 56, - "sprite": 333, - "name": "Blood Rush", - "xp": 33 - }, - { - "level": 56, - "sprite": 1268, - "name": "Skeletal Grasp", - "xp": 33 - }, - { - "level": 57, - "sprite": 358, - "name": "Enchant Diamond Bolt", - "xp": 67 - }, - { - "level": 57, - "sprite": 43, - "name": "Enchant Diamond Jewellery", - "xp": 67 - }, - { - "level": 57, - "sprite": 2981, - "name": "Resurrect Superior Thrall", - "xp": 70 - }, - { - "level": 58, - "sprite": 55, - "name": "Watchtower Teleport", - "xp": 68 - }, - { - "level": 58, - "sprite": 325, - "name": "Ice Rush", - "xp": 34 - }, - { - "level": 59, - "sprite": 44, - "name": "Fire Blast", - "xp": 34.5 - }, - { - "level": 59, - "sprite": 1305, - "name": "Mark of Darkness", - "xp": 70 - }, - { - "level": 60, - "sprite": 342, - "name": "Senntisten Teleport", - "xp": 70 - }, - { - "level": 60, - "sprite": 60, - "name": "Claws Of Guthix", - "xp": 35 - }, - { - "level": 60, - "sprite": 59, - "name": "Flames Of Zamorak", - "xp": 35 - }, - { - "level": 60, - "sprite": 61, - "name": "Saradomin Strike", - "xp": 35 - }, - { - "level": 60, - "sprite": 45, - "name": "Charge Earth Orb", - "xp": 70 - }, - { - "level": 60, - "sprite": 354, - "name": "Bones To Peaches", - "xp": 35.5 - }, - { - "level": 61, - "sprite": 1260, - "name": "West Ardougne Teleport", - "xp": 68 - }, - { - "level": 61, - "sprite": 323, - "name": "Trollheim Teleport", - "xp": 68 - }, - { - "level": 62, - "sprite": 330, - "name": "Smoke Burst", - "xp": 36 - }, - { - "level": 62, - "sprite": 46, - "name": "Wind Wave", - "xp": 36 - }, - { - "level": 62, - "sprite": 1303, - "name": "Superior Demonbane", - "xp": 36 - }, - { - "level": 63, - "sprite": 47, - "name": "Charge Fire Orb", - "xp": 73 - }, - { - "level": 64, - "sprite": 338, - "name": "Shadow Burst", - "xp": 37 - }, - { - "level": 64, - "sprite": 357, - "name": "Teleport Ape Atoll", - "xp": 74 - }, - { - "level": 64, - "sprite": 1307, - "name": "Lesser Corruption", - "xp": 75 - }, - { - "level": 65, - "sprite": 543, - "name": "Bake Pie", - "xp": 60 - }, - { - "level": 65, - "sprite": 1261, - "name": "Harmony Island Teleport", - "xp": 74 - }, - { - "level": 65, - "sprite": 563, - "name": "Geomancy", - "xp": 60 - }, - { - "level": 65, - "sprite": 48, - "name": "Water Wave", - "xp": 37.5 - }, - { - "level": 66, - "sprite": 49, - "name": "Charge Air Orb", - "xp": 76 - }, - { - "level": 66, - "sprite": 567, - "name": "Cure Plant", - "xp": 60 - }, - { - "level": 66, - "sprite": 343, - "name": "Kharyrll Teleport", - "xp": 76 - }, - { - "level": 66, - "sprite": 56, - "name": "Vulnerability", - "xp": 76 - }, - { - "level": 66, - "sprite": 577, - "name": "Monster Examine", - "xp": 61 - }, - { - "level": 66, - "sprite": 1317, - "name": "Vile Vigour", - "xp": 76 - }, - { - "level": 67, - "sprite": 568, - "name": "Npc Contact", - "xp": 63 - }, - { - "level": 68, - "sprite": 334, - "name": "Blood Burst", - "xp": 39 - }, - { - "level": 68, - "sprite": 559, - "name": "Cure Other", - "xp": 65 - }, - { - "level": 68, - "sprite": 50, - "name": "Enchant Dragonstone Jewellery", - "xp": 78 - }, - { - "level": 68, - "sprite": 358, - "name": "Enchant Dragonstone Bolt", - "xp": 78 - }, - { - "level": 68, - "sprite": 578, - "name": "Humidify", - "xp": 65 - }, - { - "level": 69, - "sprite": 544, - "name": "Moonclan Teleport", - "xp": 66 - }, - { - "level": 70, - "sprite": 51, - "name": "Earth Wave", - "xp": 40 - }, - { - "level": 70, - "sprite": 326, - "name": "Ice Burst", - "xp": 40 - }, - { - "level": 70, - "sprite": 569, - "name": "Tele Group Moonclan", - "xp": 67 - }, - { - "level": 70, - "sprite": 1318, - "name": "Degrime", - "xp": 83 - }, - { - "level": 71, - "sprite": 586, - "name": "Ourania Teleport", - "xp": 69 - }, - { - "level": 71, - "sprite": 1264, - "name": "Cemetery Teleport", - "xp": 82 - }, - { - "level": 71, - "sprite": 562, - "name": "Cure Me", - "xp": 69 - }, - { - "level": 71, - "sprite": 579, - "name": "Hunter Kit", - "xp": 70 - }, - { - "level": 72, - "sprite": 1249, - "name": "Expert Reanimation", - "xp": 138 - }, - { - "level": 72, - "sprite": 344, - "name": "Lassar Teleport", - "xp": 82 - }, - { - "level": 72, - "sprite": 545, - "name": "Waterbirth Teleport", - "xp": 71 - }, - { - "level": 73, - "sprite": 570, - "name": "Tele Group Waterbirth", - "xp": 72 - }, - { - "level": 73, - "sprite": 57, - "name": "Enfeeble", - "xp": 83 - }, - { - "level": 73, - "sprite": 1306, - "name": "Ward of Arceuus", - "xp": 83 - }, - { - "level": 74, - "sprite": 349, - "name": "Teleother Lumbridge", - "xp": 84 - }, - { - "level": 74, - "sprite": 331, - "name": "Smoke Blitz", - "xp": 42 - }, - { - "level": 74, - "sprite": 565, - "name": "Cure Group", - "xp": 74 - }, - { - "level": 75, - "sprite": 576, - "name": "Stat Spy", - "xp": 76 - }, - { - "level": 75, - "sprite": 547, - "name": "Barbarian Teleport", - "xp": 76 - }, - { - "level": 75, - "sprite": 52, - "name": "Fire Wave", - "xp": 42.5 - }, - { - "level": 76, - "sprite": 575, - "name": "Tele Group Barbarian", - "xp": 77 - }, - { - "level": 76, - "sprite": 339, - "name": "Shadow Blitz", - "xp": 43 - }, - { - "level": 76, - "sprite": 585, - "name": "Spin Flax", - "xp": 75 - }, - { - "level": 76, - "sprite": 2984, - "name": "Resurrect Greater Thrall", - "xp": 88 - }, - { - "level": 77, - "sprite": 548, - "name": "Superglass Make", - "xp": 78 - }, - { - "level": 78, - "sprite": 583, - "name": "Tan Leather", - "xp": 81 - }, - { - "level": 78, - "sprite": 549, - "name": "Khazard Teleport", - "xp": 80 - }, - { - "level": 78, - "sprite": 345, - "name": "Dareeyak Teleport", - "xp": 88 - }, - { - "level": 78, - "sprite": 1266, - "name": "Resurrect Crops", - "xp": 90 - }, - { - "level": 79, - "sprite": 321, - "name": "Entangle", - "xp": 89 - }, - { - "level": 79, - "sprite": 572, - "name": "Tele Group Khazard", - "xp": 81 - }, - { - "level": 79, - "sprite": 580, - "name": "Dream", - "xp": 82 - }, - { - "level": 79, - "sprite": 1269, - "name": "Undead Grasp", - "xp": 46.5 - }, - { - "level": 80, - "sprite": 322, - "name": "Charge", - "xp": 180 - }, - { - "level": 80, - "sprite": 335, - "name": "Blood Blitz", - "xp": 45 - }, - { - "level": 80, - "sprite": 58, - "name": "Stun", - "xp": 90 - }, - { - "level": 80, - "sprite": 550, - "name": "String Jewellery", - "xp": 83 - }, - { - "level": 80, - "sprite": 1310, - "name": "Death Charge", - "xp": 90 - }, - { - "level": 81, - "sprite": 554, - "name": "Stat Restore Pot Share", - "xp": 84 - }, - { - "level": 81, - "sprite": 362, - "name": "Wind Surge", - "xp": 44 - }, - { - "level": 82, - "sprite": 350, - "name": "Teleother Falador", - "xp": 92 - }, - { - "level": 82, - "sprite": 552, - "name": "Magic Imbue", - "xp": 86 - }, - { - "level": 82, - "sprite": 327, - "name": "Ice Blitz", - "xp": 46 - }, - { - "level": 82, - "sprite": 1304, - "name": "Dark Demonbane", - "xp": 43.5 - }, - { - "level": 83, - "sprite": 553, - "name": "Fertile Soil", - "xp": 87 - }, - { - "level": 83, - "sprite": 1262, - "name": "Barrows Teleport", - "xp": 90 - }, - { - "level": 84, - "sprite": 346, - "name": "Carrallangar Teleport", - "xp": 82 - }, - { - "level": 84, - "sprite": 551, - "name": "Boost Potion Share", - "xp": 88 - }, - { - "level": 84, - "sprite": 1311, - "name": "Demonic Offering", - "xp": 175 - }, - { - "level": 85, - "sprite": 363, - "name": "Water Surge", - "xp": 46 - }, - { - "level": 85, - "sprite": 555, - "name": "Fishing Guild Teleport", - "xp": 89 - }, - { - "level": 85, - "sprite": 352, - "name": "Tele Block", - "xp": 80 - }, - { - "level": 85, - "sprite": 359, - "name": "Teleport To Bounty Target", - "xp": 45 - }, - { - "level": 85, - "sprite": 1308, - "name": "Greater Corruption", - "xp": 95 - }, - { - "level": 86, - "sprite": 332, - "name": "Smoke Barrage", - "xp": 48 - }, - { - "level": 86, - "sprite": 573, - "name": "Tele Group Fishing Guild", - "xp": 90 - }, - { - "level": 86, - "sprite": 581, - "name": "Plank Make", - "xp": 90 - }, - { - "level": 87, - "sprite": 556, - "name": "Catherby Teleport", - "xp": 92 - }, - { - "level": 87, - "sprite": 353, - "name": "Enchant Onyx Jewellery", - "xp": 97 - }, - { - "level": 87, - "sprite": 358, - "name": "Enchant Onyx Bolt", - "xp": 97 - }, - { - "level": 88, - "sprite": 340, - "name": "Shadow Barrage", - "xp": 48 - }, - { - "level": 88, - "sprite": 574, - "name": "Tele Group Catherby", - "xp": 93 - }, - { - "level": 89, - "sprite": 557, - "name": "Ice Plateau Teleport", - "xp": 96 - }, - { - "level": 89, - "sprite": 584, - "name": "Recharge Dragonstone", - "xp": 97.5 - }, - { - "level": 90, - "sprite": 347, - "name": "Annakarl Teleport", - "xp": 100 - }, - { - "level": 90, - "sprite": 364, - "name": "Earth Surge", - "xp": 48 - }, - { - "level": 90, - "sprite": 1250, - "name": "Master Reanimation", - "xp": 170 - }, - { - "level": 90, - "sprite": 575, - "name": "Tele Group Ice Plateau", - "xp": 99 - }, - { - "level": 90, - "sprite": 351, - "name": "Teleother Camelot", - "xp": 100 - }, - { - "level": 90, - "sprite": 1263, - "name": "Ape Atoll Teleport", - "xp": 100 - }, - { - "level": 91, - "sprite": 558, - "name": "Energy Transfer", - "xp": 100 - }, - { - "level": 92, - "sprite": 336, - "name": "Blood Barrage", - "xp": 51 - }, - { - "level": 92, - "sprite": 560, - "name": "Heal Other", - "xp": 101 - }, - { - "level": 92, - "sprite": 1312, - "name": "Sinister Offering", - "xp": 180 - }, - { - "level": 93, - "sprite": 561, - "name": "Vengeance Other", - "xp": 108 - }, - { - "level": 93, - "sprite": 361, - "name": "Enchant Zenyte Jewellery", - "xp": 110 - }, - { - "level": 94, - "sprite": 328, - "name": "Ice Barrage", - "xp": 52 - }, - { - "level": 94, - "sprite": 564, - "name": "Vengeance", - "xp": 112 - }, - { - "level": 95, - "sprite": 566, - "name": "Heal Group", - "xp": 124 - }, - { - "level": 95, - "sprite": 365, - "name": "Fire Surge", - "xp": 51 - }, - { - "level": 96, - "sprite": 348, - "name": "Ghorrock Teleport", - "xp": 106 - }, - { - "level": 96, - "sprite": 582, - "name": "Spellbook Swap", - "xp": 130 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_mining.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_mining.json deleted file mode 100644 index a944c4782f..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_mining.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "bonuses": [ - { - "name": "Prospector Outfit (+2.5%)", - "value": 0.025 - } - ], - "actions": [ - { - "level": 1, - "icon": 434, - "name": "Clay", - "xp": 5 - }, - { - "level": 1, - "icon": 1436, - "name": "Rune Essence", - "xp": 5 - }, - { - "level": 1, - "icon": 436, - "name": "Copper Ore", - "xp": 17.5 - }, - { - "level": 1, - "icon": 438, - "name": "Tin Ore", - "xp": 17.5 - }, - { - "level": 10, - "icon": 3211, - "name": "Limestone", - "xp": 26.5 - }, - { - "level": 14, - "icon": 25683, - "name": "Barronite shards", - "xp": 16 - }, - { - "level": 14, - "icon": 25684, - "name": "Barronite deposit", - "xp": 32 - }, - { - "level": 15, - "icon": 440, - "name": "Iron Ore", - "xp": 35 - }, - { - "level": 20, - "icon": 442, - "name": "Silver Ore", - "xp": 40 - }, - { - "level": 30, - "icon": 7936, - "name": "Pure Essence", - "xp": 5 - }, - { - "level": 30, - "icon": 453, - "name": "Coal", - "xp": 50 - }, - { - "level": 35, - "icon": 6977, - "name": "Sandstone (10kg)", - "xp": 60 - }, - { - "level": 35, - "icon": 6975, - "name": "Sandstone (5kg)", - "xp": 50 - }, - { - "level": 35, - "icon": 6973, - "name": "Sandstone (2kg)", - "xp": 40 - }, - { - "level": 35, - "icon": 6971, - "name": "Sandstone (1kg)", - "xp": 30 - }, - { - "level": 38, - "icon": 13445, - "name": "Dense Essence Block", - "xp": 12 - }, - { - "level": 40, - "icon": 444, - "name": "Gold Ore", - "xp": 65 - }, - { - "level": 40, - "icon": 1629, - "name": "Gem Rocks", - "xp": 65 - }, - { - "level": 45, - "icon": 6979, - "name": "Granite (500g)", - "xp": 50 - }, - { - "level": 45, - "icon": 6981, - "name": "Granite (2kg)", - "xp": 60 - }, - { - "level": 45, - "icon": 6983, - "name": "Granite (5kg)", - "xp": 75 - }, - { - "level": 55, - "icon": 447, - "name": "Mithril Ore", - "xp": 80 - }, - { - "level": 70, - "icon": 1761, - "name": "Soft Clay", - "xp": 5 - }, - { - "level": 70, - "icon": 449, - "name": "Adamantite Ore", - "xp": 95 - }, - { - "level": 85, - "icon": 451, - "name": "Runite Ore", - "xp": 125 - }, - { - "level": 92, - "icon": 21347, - "name": "Amethyst", - "xp": 240 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_prayer.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_prayer.json deleted file mode 100644 index 9ebde37563..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_prayer.json +++ /dev/null @@ -1,397 +0,0 @@ -{ - "bonuses": [ - { - "name": "Lit Gilded Altar (350%)", - "value": 2.5 - }, - { - "name": "Ectofuntus (400%)", - "value": 3 - }, - { - "name": "Chaos Altar (700%)", - "value": 6 - }, - { - "name": "Morytania Diary 3 Shades(150%)", - "value": 0.5 - } - ], - "actions": [ - { - "level": 1, - "icon": 13447, - "name": "Ensouled Goblin Head", - "xp": 130, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13450, - "name": "Ensouled Monkey Head", - "xp": 182, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13453, - "name": "Ensouled Imp Head", - "xp": 286, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13456, - "name": "Ensouled Minotaur Head", - "xp": 364, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13459, - "name": "Ensouled Scorpion Head", - "xp": 454, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13462, - "name": "Ensouled Bear Head", - "xp": 480, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13465, - "name": "Ensouled Unicorn Head", - "xp": 494, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13468, - "name": "Ensouled Dog Head", - "xp": 520, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13471, - "name": "Ensouled Chaos Druid Head", - "xp": 584, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13474, - "name": "Ensouled Giant Head", - "xp": 650, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13477, - "name": "Ensouled Ogre Head", - "xp": 716, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13480, - "name": "Ensouled Elf Head", - "xp": 754, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13483, - "name": "Ensouled Troll Head", - "xp": 780, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13486, - "name": "Ensouled Horror Head", - "xp": 832, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13489, - "name": "Ensouled Kalphite Head", - "xp": 884, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13492, - "name": "Ensouled Dagannoth Head", - "xp": 936, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13495, - "name": "Ensouled Bloodveld Head", - "xp": 1040, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13498, - "name": "Ensouled Tzhaar Head", - "xp": 1104, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13501, - "name": "Ensouled Demon Head", - "xp": 1170, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13504, - "name": "Ensouled Aviansie Head", - "xp": 1234, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13507, - "name": "Ensouled Abyssal Head", - "xp": 1300, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 13510, - "name": "Ensouled Dragon Head", - "xp": 1560, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 25766, - "name": "Fiendish Ashes", - "xp": 10, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 25769, - "name": "Vile Ashes", - "xp": 25, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 25772, - "name": "Malicious Ashes", - "xp": 65, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 25775, - "name": "Abyssal Ashes", - "xp": 85, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 25778, - "name": "Infernal Ashes", - "xp": 110, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 526, - "name": "Bones", - "xp": 4.5 - }, - { - "level": 1, - "icon": 2859, - "name": "Wolf Bones", - "xp": 4.5 - }, - { - "level": 1, - "icon": 3396, - "name": "Loar Remains", - "xp": 33 - }, - { - "level": 1, - "icon": 528, - "name": "Burnt Bones", - "xp": 4.5 - }, - { - "level": 1, - "icon": 3179, - "name": "Monkey Bones", - "xp": 5 - }, - { - "level": 1, - "icon": 530, - "name": "Bat Bones", - "xp": 5.3 - }, - { - "level": 1, - "icon": 3125, - "name": "Jogre Bones", - "xp": 15 - }, - { - "level": 1, - "icon": 532, - "name": "Big Bones", - "xp": 15 - }, - { - "level": 1, - "icon": 4812, - "name": "Zogre Bones", - "xp": 22.5 - }, - { - "level": 1, - "icon": 3123, - "name": "Shaikahan Bones", - "xp": 25 - }, - { - "level": 1, - "icon": 534, - "name": "Babydragon Bones", - "xp": 30 - }, - { - "level": 1, - "icon": 3398, - "name": "Phrin Remains", - "xp": 46.5 - }, - { - "level": 1, - "icon": 22780, - "name": "Wyrm Bones", - "xp": 50 - }, - { - "level": 1, - "icon": 3400, - "name": "Riyl Remains", - "xp": 59.5 - }, - { - "level": 1, - "icon": 6812, - "name": "Wyvern Bones", - "xp": 72 - }, - { - "level": 1, - "icon": 536, - "name": "Dragon Bones", - "xp": 72 - }, - { - "level": 1, - "icon": 22783, - "name": "Drake Bones", - "xp": 80 - }, - { - "level": 1, - "icon": 3402, - "name": "Asyn Remains", - "xp": 82.5 - }, - { - "level": 1, - "icon": 4830, - "name": "Fayrg Bones", - "xp": 84 - }, - { - "level": 1, - "icon": 3404, - "name": "Fiyr Remains", - "xp": 84 - }, - { - "level": 1, - "icon": 11943, - "name": "Lava Dragon Bones", - "xp": 85 - }, - { - "level": 1, - "icon": 4832, - "name": "Raurg Bones", - "xp": 96 - }, - { - "level": 1, - "icon": 22786, - "name": "Hydra Bones", - "xp": 110 - }, - { - "level": 1, - "icon": 6729, - "name": "Dagannoth Bones", - "xp": 125 - }, - { - "level": 1, - "icon": 4834, - "name": "Ourg Bones", - "xp": 140 - }, - { - "level": 70, - "icon": 22124, - "name": "Superior Dragon Bones", - "xp": 150 - }, - { - "level": 1, - "icon": 25419, - "name": "Urium Remains", - "xp": 120 - }, - { - "level": 1, - "icon": 25654, - "name": "Guppy", - "xp": 4 - }, - { - "level": 1, - "icon": 25660, - "name": "Cavefish", - "xp": 7 - }, - { - "level": 1, - "icon": 25666, - "name": "Tetra", - "xp": 10 - }, - { - "level": 1, - "icon": 25672, - "name": "Cavefish", - "xp": 16 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_runecraft.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_runecraft.json deleted file mode 100644 index 901196750e..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_runecraft.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "bonuses": [ - { - "name": "Daeyalt essence (+50%)", - "value": 0.5 - } - ], - "actions": [ - { - "level": 1, - "icon": 5527, - "name": "Air Tiara", - "xp": 25, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5529, - "name": "Mind Tiara", - "xp": 27.5, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5531, - "name": "Water Tiara", - "xp": 30, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5535, - "name": "Earth Tiara", - "xp": 32.5, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5537, - "name": "Fire Tiara", - "xp": 35, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5533, - "name": "Body Tiara", - "xp": 37.5, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5539, - "name": "Cosmic Tiara", - "xp": 40, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5543, - "name": "Chaos Tiara", - "xp": 42.5, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5541, - "name": "Nature Tiara", - "xp": 45, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5545, - "name": "Law Tiara", - "xp": 47.5, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 5547, - "name": "Death Tiara", - "xp": 50, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 22121, - "name": "Wrath Tiara", - "xp": 52.5, - "ignoreBonus": true - }, - { - "level": 1, - "icon": 556, - "name": "Air Rune", - "xp": 5 - }, - { - "level": 2, - "icon": 558, - "name": "Mind Rune", - "xp": 5.5 - }, - { - "level": 2, - "icon": 25696, - "name": "Mind core", - "xp": 55 - }, - { - "level": 5, - "icon": 555, - "name": "Water Rune", - "xp": 6 - }, - { - "level": 6, - "icon": 4695, - "name": "Mist Rune", - "xp": 8.5 - }, - { - "level": 9, - "icon": 557, - "name": "Earth Rune", - "xp": 6.5 - }, - { - "level": 10, - "icon": 4696, - "name": "Dust Rune", - "xp": 9 - }, - { - "level": 13, - "icon": 4698, - "name": "Mud Rune", - "xp": 9.5 - }, - { - "level": 14, - "icon": 554, - "name": "Fire Rune", - "xp": 7 - }, - { - "level": 15, - "icon": 4697, - "name": "Smoke Rune", - "xp": 9.5 - }, - { - "level": 19, - "icon": 4694, - "name": "Steam Rune", - "xp": 10 - }, - { - "level": 20, - "icon": 559, - "name": "Body Rune", - "xp": 7.5 - }, - { - "level": 20, - "icon": 25698, - "name": "Body core", - "xp": 75 - }, - { - "level": 23, - "icon": 4699, - "name": "Lava Rune", - "xp": 10.5 - }, - { - "level": 27, - "icon": 564, - "name": "Cosmic Rune", - "xp": 8 - }, - { - "level": 35, - "icon": 562, - "name": "Chaos Rune", - "xp": 8.5 - }, - { - "level": 35, - "icon": 25700, - "name": "Chaos core", - "xp": 85 - }, - { - "level": 40, - "icon": 9075, - "name": "Astral Rune", - "xp": 8.7 - }, - { - "level": 44, - "icon": 561, - "name": "Nature Rune", - "xp": 9 - }, - { - "level": 54, - "icon": 563, - "name": "Law Rune", - "xp": 9.5 - }, - { - "level": 65, - "icon": 560, - "name": "Death Rune", - "xp": 10 - }, - { - "level": 77, - "icon": 565, - "name": "Blood Rune", - "xp": 24.425, - "ignoreBonus": true - }, - { - "level": 90, - "icon": 566, - "name": "Soul Rune", - "xp": 30.325, - "ignoreBonus": true - }, - { - "level": 95, - "icon": 21880, - "name": "Wrath Rune", - "xp": 8 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_smithing.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_smithing.json deleted file mode 100644 index bf829f53b6..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_smithing.json +++ /dev/null @@ -1,1090 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "icon": 2349, - "name": "Bronze Bar", - "xp": 6.3 - }, - { - "level": 1, - "icon": 1351, - "name": "Bronze Axe", - "xp": 12.5 - }, - { - "level": 1, - "icon": 1205, - "name": "Bronze Dagger", - "xp": 12.5 - }, - { - "level": 2, - "icon": 1422, - "name": "Bronze Mace", - "xp": 12.5 - }, - { - "level": 3, - "icon": 1139, - "name": "Bronze Med Helm", - "xp": 12.5 - }, - { - "level": 3, - "icon": 9375, - "name": "Bronze Bolts (Unf)", - "xp": 12.5 - }, - { - "level": 4, - "icon": 4819, - "name": "Bronze Nails", - "xp": 12.5 - }, - { - "level": 4, - "icon": 1277, - "name": "Bronze Sword", - "xp": 12.5 - }, - { - "level": 4, - "icon": 1794, - "name": "Bronze Wire", - "xp": 12.5 - }, - { - "level": 4, - "icon": 819, - "name": "Bronze Dart Tip", - "xp": 12.5 - }, - { - "level": 5, - "icon": 39, - "name": "Bronze Arrowtips", - "xp": 12.5 - }, - { - "level": 5, - "icon": 1321, - "name": "Bronze Scimitar", - "xp": 25 - }, - { - "level": 5, - "icon": 11367, - "name": "Bronze Hasta", - "xp": 25 - }, - { - "level": 5, - "icon": 1237, - "name": "Bronze Spear", - "xp": 25 - }, - { - "level": 6, - "icon": 19570, - "name": "Bronze Javelin Heads", - "xp": 12.5 - }, - { - "level": 6, - "icon": 1291, - "name": "Bronze Longsword", - "xp": 25 - }, - { - "level": 6, - "icon": 9420, - "name": "Bronze Limbs", - "xp": 12.5 - }, - { - "level": 7, - "icon": 864, - "name": "Bronze Knife", - "xp": 12.5 - }, - { - "level": 7, - "icon": 1155, - "name": "Bronze Full Helm", - "xp": 25 - }, - { - "level": 8, - "icon": 1173, - "name": "Bronze Sq Shield", - "xp": 25 - }, - { - "level": 9, - "icon": 1337, - "name": "Bronze Warhammer", - "xp": 37.5 - }, - { - "level": 10, - "icon": 1375, - "name": "Bronze Battleaxe", - "xp": 37.5 - }, - { - "level": 11, - "icon": 1103, - "name": "Bronze Chainbody", - "xp": 37.5 - }, - { - "level": 12, - "icon": 1189, - "name": "Bronze Kiteshield", - "xp": 37.5 - }, - { - "level": 13, - "icon": 3095, - "name": "Bronze Claws", - "xp": 25 - }, - { - "level": 14, - "icon": 1307, - "name": "Bronze 2h Sword", - "xp": 37.5 - }, - { - "level": 14, - "icon": 25684, - "name": "Barronite deposits", - "xp": 30 - }, - { - "level": 15, - "icon": 2351, - "name": "Iron Bar", - "xp": 12.5 - }, - { - "level": 15, - "icon": 1203, - "name": "Iron Dagger", - "xp": 25 - }, - { - "level": 16, - "icon": 1349, - "name": "Iron Axe", - "xp": 25 - }, - { - "level": 16, - "icon": 1075, - "name": "Bronze Platelegs", - "xp": 37.5 - }, - { - "level": 16, - "icon": 1087, - "name": "Bronze Plateskirt", - "xp": 37.5 - }, - { - "level": 17, - "icon": 7225, - "name": "Iron Spit", - "xp": 25 - }, - { - "level": 17, - "icon": 1420, - "name": "Iron Mace", - "xp": 25 - }, - { - "level": 18, - "icon": 9377, - "name": "Iron Bolts (Unf)", - "xp": 25 - }, - { - "level": 18, - "icon": 1117, - "name": "Bronze Platebody", - "xp": 62.5 - }, - { - "level": 18, - "icon": 1137, - "name": "Iron Med Helm", - "xp": 25 - }, - { - "level": 19, - "icon": 4820, - "name": "Iron Nails", - "xp": 25 - }, - { - "level": 19, - "icon": 820, - "name": "Iron Dart Tip", - "xp": 25 - }, - { - "level": 19, - "icon": 1279, - "name": "Iron Sword", - "xp": 25 - }, - { - "level": 20, - "icon": 2355, - "name": "Silver Bar", - "xp": 13.7 - }, - { - "level": 20, - "icon": 40, - "name": "Iron Arrowtips", - "xp": 25 - }, - { - "level": 20, - "icon": 1323, - "name": "Iron Scimitar", - "xp": 50 - }, - { - "level": 20, - "icon": 11369, - "name": "Iron Hasta", - "xp": 50 - }, - { - "level": 20, - "icon": 1239, - "name": "Iron Spear", - "xp": 50 - }, - { - "level": 21, - "icon": 1293, - "name": "Iron Longsword", - "xp": 50 - }, - { - "level": 21, - "icon": 19572, - "name": "Iron Javelin Heads", - "xp": 25 - }, - { - "level": 22, - "icon": 1153, - "name": "Iron Full Helm", - "xp": 50 - }, - { - "level": 22, - "icon": 863, - "name": "Iron Knife", - "xp": 25 - }, - { - "level": 23, - "icon": 9423, - "name": "Iron Limbs", - "xp": 25 - }, - { - "level": 23, - "icon": 1175, - "name": "Iron Sq Shield", - "xp": 50 - }, - { - "level": 24, - "icon": 1335, - "name": "Iron Warhammer", - "xp": 75 - }, - { - "level": 25, - "icon": 1363, - "name": "Iron Battleaxe", - "xp": 75 - }, - { - "level": 26, - "icon": 4540, - "name": "Oil Lantern Frame", - "xp": 25 - }, - { - "level": 26, - "icon": 1101, - "name": "Iron Chainbody", - "xp": 75 - }, - { - "level": 27, - "icon": 1191, - "name": "Iron Kiteshield", - "xp": 75 - }, - { - "level": 28, - "icon": 3096, - "name": "Iron Claws", - "xp": 50 - }, - { - "level": 29, - "icon": 1309, - "name": "Iron 2h Sword", - "xp": 75 - }, - { - "level": 30, - "icon": 1207, - "name": "Steel Dagger", - "xp": 37.5 - }, - { - "level": 30, - "icon": 2353, - "name": "Steel Bar", - "xp": 17.5 - }, - { - "level": 31, - "icon": 1081, - "name": "Iron Plateskirt", - "xp": 75 - }, - { - "level": 31, - "icon": 1067, - "name": "Iron Platelegs", - "xp": 75 - }, - { - "level": 31, - "icon": 1353, - "name": "Steel Axe", - "xp": 37.5 - }, - { - "level": 32, - "icon": 1424, - "name": "Steel Mace", - "xp": 37.5 - }, - { - "level": 33, - "icon": 1115, - "name": "Iron Platebody", - "xp": 125 - }, - { - "level": 33, - "icon": 1141, - "name": "Steel Med Helm", - "xp": 37.5 - }, - { - "level": 33, - "icon": 9378, - "name": "Steel Bolts (Unf)", - "xp": 37.5 - }, - { - "level": 34, - "icon": 821, - "name": "Steel Dart Tip", - "xp": 37.5 - }, - { - "level": 34, - "icon": 1539, - "name": "Steel Nails", - "xp": 37.5 - }, - { - "level": 34, - "icon": 1281, - "name": "Steel Sword", - "xp": 37.5 - }, - { - "level": 35, - "icon": 2, - "name": "Cannonball", - "xp": 25.6 - }, - { - "level": 35, - "icon": 1325, - "name": "Steel Scimitar", - "xp": 75 - }, - { - "level": 35, - "icon": 41, - "name": "Steel Arrowtips", - "xp": 37.5 - }, - { - "level": 35, - "icon": 11371, - "name": "Steel Hasta", - "xp": 75 - }, - { - "level": 35, - "icon": 1241, - "name": "Steel Spear", - "xp": 75 - }, - { - "level": 36, - "icon": 9425, - "name": "Steel Limbs", - "xp": 37.5 - }, - { - "level": 36, - "icon": 2370, - "name": "Steel Studs", - "xp": 37.5 - }, - { - "level": 36, - "icon": 1295, - "name": "Steel Longsword", - "xp": 75 - }, - { - "level": 36, - "icon": 19574, - "name": "Steel Javelin Heads", - "xp": 37.5 - }, - { - "level": 37, - "icon": 865, - "name": "Steel Knife", - "xp": 37.5 - }, - { - "level": 37, - "icon": 1157, - "name": "Steel Full Helm", - "xp": 75 - }, - { - "level": 38, - "icon": 1177, - "name": "Steel Sq Shield", - "xp": 75 - }, - { - "level": 39, - "icon": 1339, - "name": "Steel Warhammer", - "xp": 112.5 - }, - { - "level": 40, - "icon": 1365, - "name": "Steel Battleaxe", - "xp": 112.5 - }, - { - "level": 40, - "icon": 2357, - "name": "Gold Bar (Goldsmith Gauntlets)", - "xp": 56.2 - }, - { - "level": 40, - "icon": 2357, - "name": "Gold Bar", - "xp": 22.5 - }, - { - "level": 41, - "icon": 1105, - "name": "Steel Chainbody", - "xp": 112.5 - }, - { - "level": 42, - "icon": 1193, - "name": "Steel Kiteshield", - "xp": 112.5 - }, - { - "level": 43, - "icon": 3097, - "name": "Steel Claws", - "xp": 75 - }, - { - "level": 44, - "icon": 1311, - "name": "Steel 2h Sword", - "xp": 112.5 - }, - { - "level": 46, - "icon": 1069, - "name": "Steel Platelegs", - "xp": 112.5 - }, - { - "level": 46, - "icon": 1083, - "name": "Steel Plateskirt", - "xp": 112.5 - }, - { - "level": 48, - "icon": 1119, - "name": "Steel Platebody", - "xp": 187.5 - }, - { - "level": 49, - "icon": 4544, - "name": "Bullseye Lantern (Unf)", - "xp": 37 - }, - { - "level": 50, - "icon": 1209, - "name": "Mithril Dagger", - "xp": 50 - }, - { - "level": 50, - "icon": 2359, - "name": "Mithril Bar", - "xp": 30 - }, - { - "level": 51, - "icon": 1355, - "name": "Mithril Axe", - "xp": 50 - }, - { - "level": 52, - "icon": 1428, - "name": "Mithril Mace", - "xp": 50 - }, - { - "level": 53, - "icon": 1143, - "name": "Mithril Med Helm", - "xp": 50 - }, - { - "level": 53, - "icon": 9379, - "name": "Mithril Bolts (Unf)", - "xp": 50 - }, - { - "level": 54, - "icon": 1285, - "name": "Mithril Sword", - "xp": 50 - }, - { - "level": 54, - "icon": 822, - "name": "Mithril Dart Tip", - "xp": 50 - }, - { - "level": 54, - "icon": 4822, - "name": "Mithril Nails", - "xp": 50 - }, - { - "level": 55, - "icon": 42, - "name": "Mithril Arrowtips", - "xp": 50 - }, - { - "level": 55, - "icon": 1329, - "name": "Mithril Scimitar", - "xp": 100 - }, - { - "level": 55, - "icon": 11373, - "name": "Mithril Hasta", - "xp": 100 - }, - { - "level": 55, - "icon": 1243, - "name": "Mithril Spear", - "xp": 100 - }, - { - "level": 56, - "icon": 1299, - "name": "Mithril Longsword", - "xp": 100 - }, - { - "level": 56, - "icon": 19576, - "name": "Mithril Javelin Heads", - "xp": 50 - }, - { - "level": 56, - "icon": 9427, - "name": "Mithril Limbs", - "xp": 50 - }, - { - "level": 57, - "icon": 1159, - "name": "Mithril Full Helm", - "xp": 100 - }, - { - "level": 57, - "icon": 866, - "name": "Mithril Knife", - "xp": 50 - }, - { - "level": 58, - "icon": 1181, - "name": "Mithril Sq Shield", - "xp": 100 - }, - { - "level": 59, - "icon": 9416, - "name": "Mith Grapple Tip", - "xp": 50 - }, - { - "level": 59, - "icon": 1343, - "name": "Mithril Warhammer", - "xp": 150 - }, - { - "level": 60, - "icon": 1187, - "name": "Dragon Sq Shield", - "xp": 75 - }, - { - "level": 60, - "icon": 1369, - "name": "Mithril Battleaxe", - "xp": 150 - }, - { - "level": 61, - "icon": 1109, - "name": "Mithril Chainbody", - "xp": 150 - }, - { - "level": 62, - "icon": 1197, - "name": "Mithril Kiteshield", - "xp": 150 - }, - { - "level": 63, - "icon": 3099, - "name": "Mithril Claws", - "xp": 100 - }, - { - "level": 64, - "icon": 1315, - "name": "Mithril 2h Sword", - "xp": 150 - }, - { - "level": 66, - "icon": 1085, - "name": "Mithril Plateskirt", - "xp": 150 - }, - { - "level": 66, - "icon": 1071, - "name": "Mithril Platelegs", - "xp": 150 - }, - { - "level": 68, - "icon": 1121, - "name": "Mithril Platebody", - "xp": 250 - }, - { - "level": 70, - "icon": 1211, - "name": "Adamant Dagger", - "xp": 62.5 - }, - { - "level": 70, - "icon": 2361, - "name": "Adamantite Bar", - "xp": 37.5 - }, - { - "level": 71, - "icon": 1357, - "name": "Adamant Axe", - "xp": 62.5 - }, - { - "level": 72, - "icon": 1430, - "name": "Adamant Mace", - "xp": 62.5 - }, - { - "level": 73, - "icon": 9380, - "name": "Adamant Bolts (Unf)", - "xp": 62.5 - }, - { - "level": 73, - "icon": 1145, - "name": "Adamant Med Helm", - "xp": 62.5 - }, - { - "level": 74, - "icon": 823, - "name": "Adamant Dart Tip", - "xp": 62.5 - }, - { - "level": 74, - "icon": 1287, - "name": "Adamant Sword", - "xp": 62.5 - }, - { - "level": 74, - "icon": 4823, - "name": "Adamantite Nails", - "xp": 62.5 - }, - { - "level": 75, - "icon": 43, - "name": "Adamant Arrowtips", - "xp": 62.5 - }, - { - "level": 75, - "icon": 1331, - "name": "Adamant Scimitar", - "xp": 125 - }, - { - "level": 75, - "icon": 11375, - "name": "Adamant Hasta", - "xp": 125 - }, - { - "level": 75, - "icon": 1245, - "name": "Adamant Spear", - "xp": 125 - }, - { - "level": 76, - "icon": 9429, - "name": "Adamantite Limbs", - "xp": 62.5 - }, - { - "level": 76, - "icon": 1301, - "name": "Adamant Longsword", - "xp": 125 - }, - { - "level": 76, - "icon": 19578, - "name": "Adamant Javelin Heads", - "xp": 62.5 - }, - { - "level": 77, - "icon": 1161, - "name": "Adamant Full Helm", - "xp": 125 - }, - { - "level": 77, - "icon": 867, - "name": "Adamant Knife", - "xp": 62.5 - }, - { - "level": 78, - "icon": 1183, - "name": "Adamant Sq Shield", - "xp": 125 - }, - { - "level": 79, - "icon": 1345, - "name": "Adamant Warhammer", - "xp": 187.5 - }, - { - "level": 80, - "icon": 1371, - "name": "Adamant Battleaxe", - "xp": 187.5 - }, - { - "level": 81, - "icon": 1111, - "name": "Adamant Chainbody", - "xp": 187.5 - }, - { - "level": 82, - "icon": 1199, - "name": "Adamant Kiteshield", - "xp": 187.5 - }, - { - "level": 83, - "icon": 3100, - "name": "Adamant Claws", - "xp": 125 - }, - { - "level": 84, - "icon": 1317, - "name": "Adamant 2h Sword", - "xp": 187.5 - }, - { - "level": 85, - "icon": 2363, - "name": "Runite Bar", - "xp": 50 - }, - { - "level": 85, - "icon": 1213, - "name": "Rune Dagger", - "xp": 75 - }, - { - "level": 86, - "icon": 1359, - "name": "Rune Axe", - "xp": 75 - }, - { - "level": 86, - "icon": 1091, - "name": "Adamant Plateskirt", - "xp": 187.5 - }, - { - "level": 86, - "icon": 1073, - "name": "Adamant Platelegs", - "xp": 187.5 - }, - { - "level": 87, - "icon": 1432, - "name": "Rune Mace", - "xp": 75 - }, - { - "level": 88, - "icon": 9381, - "name": "Runite Bolts (Unf)", - "xp": 75 - }, - { - "level": 88, - "icon": 1147, - "name": "Rune Med Helm", - "xp": 75 - }, - { - "level": 88, - "icon": 1123, - "name": "Adamant Platebody", - "xp": 312.5 - }, - { - "level": 89, - "icon": 1289, - "name": "Rune Sword", - "xp": 75 - }, - { - "level": 89, - "icon": 4824, - "name": "Rune Nails", - "xp": 75 - }, - { - "level": 89, - "icon": 824, - "name": "Rune Dart Tip", - "xp": 75 - }, - { - "level": 90, - "icon": 44, - "name": "Rune Arrowtips", - "xp": 75 - }, - { - "level": 90, - "icon": 1333, - "name": "Rune Scimitar", - "xp": 150 - }, - { - "level": 90, - "icon": 11377, - "name": "Rune Hasta", - "xp": 150 - }, - { - "level": 90, - "icon": 1247, - "name": "Rune Spear", - "xp": 150 - }, - { - "level": 90, - "icon": 11283, - "name": "Dragonfire Shield", - "xp": 2000 - }, - { - "level": 91, - "icon": 1303, - "name": "Rune Longsword", - "xp": 150 - }, - { - "level": 91, - "icon": 19580, - "name": "Rune Javelin Heads", - "xp": 75 - }, - { - "level": 91, - "icon": 9431, - "name": "Runite Limbs", - "xp": 75 - }, - { - "level": 92, - "icon": 868, - "name": "Rune Knife", - "xp": 75 - }, - { - "level": 92, - "icon": 1163, - "name": "Rune Full Helm", - "xp": 150 - }, - { - "level": 93, - "icon": 1185, - "name": "Rune Sq Shield", - "xp": 150 - }, - { - "level": 94, - "icon": 1347, - "name": "Rune Warhammer", - "xp": 225 - }, - { - "level": 95, - "icon": 1373, - "name": "Rune Battleaxe", - "xp": 225 - }, - { - "level": 96, - "icon": 1113, - "name": "Rune Chainbody", - "xp": 225 - }, - { - "level": 97, - "icon": 1201, - "name": "Rune Kiteshield", - "xp": 225 - }, - { - "level": 98, - "icon": 3101, - "name": "Rune Claws", - "xp": 150 - }, - { - "level": 99, - "icon": 1127, - "name": "Rune Platebody", - "xp": 375 - }, - { - "level": 99, - "icon": 1093, - "name": "Rune Plateskirt", - "xp": 225 - }, - { - "level": 99, - "icon": 1079, - "name": "Rune Platelegs", - "xp": 225 - }, - { - "level": 99, - "icon": 1319, - "name": "Rune 2h Sword", - "xp": 225 - } - ] -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_thieving.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_thieving.json deleted file mode 100644 index f23248c568..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_thieving.json +++ /dev/null @@ -1,268 +0,0 @@ -{ - "actions": [ - { - "level": 1, - "icon": 3241, - "name": "Man / Woman", - "xp": 8 - }, - { - "level": 1, - "icon": 10851, - "name": "Winter Sq'irkjuice", - "xp": 350 - }, - { - "level": 2, - "icon": 1965, - "name": "Vegetable Stall", - "xp": 10 - }, - { - "level": 5, - "icon": 1891, - "name": "Cake Stall", - "xp": 16 - }, - { - "level": 5, - "icon": 4242, - "name": "Tea Stall", - "xp": 16 - }, - { - "level": 5, - "icon": 5601, - "name": "Crafting Stall", - "xp": 16 - }, - { - "level": 5, - "icon": 1963, - "name": "Monkey Food Stall", - "xp": 16 - }, - { - "level": 10, - "icon": 3243, - "name": "Farmer", - "xp": 14.5 - }, - { - "level": 15, - "icon": 4295, - "name": "Female H.A.M. Member", - "xp": 18.5 - }, - { - "level": 20, - "icon": 950, - "name": "Silk Stall", - "xp": 24 - }, - { - "level": 20, - "icon": 4297, - "name": "Male H.A.M. Member", - "xp": 22.5 - }, - { - "level": 22, - "icon": 7919, - "name": "Wine Stall", - "xp": 27 - }, - { - "level": 25, - "icon": 3245, - "name": "Warrior Women / Al-Kharid Warrior", - "xp": 26 - }, - { - "level": 25, - "icon": 464, - "name": "Fruit Stall", - "xp": 28 - }, - { - "level": 25, - "icon": 10848, - "name": "Spring Sq'irkjuice", - "xp": 1350 - }, - { - "level": 27, - "icon": 5318, - "name": "Seed Stall", - "xp": 10 - }, - { - "level": 32, - "icon": 3247, - "name": "Rogue", - "xp": 35.5 - }, - { - "level": 35, - "icon": 958, - "name": "Fur Stall", - "xp": 36 - }, - { - "level": 36, - "icon": 10998, - "name": "Cave Goblin", - "xp": 40 - }, - { - "level": 38, - "icon": 5068, - "name": "Master Farmer", - "xp": 43 - }, - { - "level": 40, - "icon": 3249, - "name": "Guard", - "xp": 46.8 - }, - { - "level": 42, - "icon": 331, - "name": "Fish Stall", - "xp": 42 - }, - { - "level": 45, - "icon": 6782, - "name": "Bearded Pollnivnian Bandit", - "xp": 65 - }, - { - "level": 45, - "icon": 3686, - "name": "Fremennik Citizen", - "xp": 65 - }, - { - "level": 45, - "icon": 10850, - "name": "Autumn Sq'irkjuice", - "xp": 2350 - }, - { - "level": 49, - "icon": 837, - "name": "Crossbow Stall", - "xp": 52 - }, - { - "level": 50, - "icon": 2355, - "name": "Silver Stall", - "xp": 54 - }, - { - "level": 50, - "icon": 5560, - "name": "Wall Safe", - "xp": 70 - }, - { - "level": 53, - "icon": 4625, - "name": "Desert Bandit", - "xp": 79.5 - }, - { - "level": 55, - "icon": 3251, - "name": "Knight", - "xp": 84.3 - }, - { - "level": 55, - "icon": 6781, - "name": "Pollnivnian Bandit", - "xp": 84.3 - }, - { - "level": 65, - "icon": 6422, - "name": "Magic Stall", - "xp": 100 - }, - { - "level": 65, - "icon": 1325, - "name": "Scimitar Stall", - "xp": 100 - }, - { - "level": 65, - "icon": 6780, - "name": "Menaphite Thug", - "xp": 137.5 - }, - { - "level": 65, - "icon": 2007, - "name": "Spices Stall", - "xp": 81 - }, - { - "level": 65, - "icon": 3253, - "name": "Yanille Watchman", - "xp": 137.5 - }, - { - "level": 65, - "icon": 10849, - "name": "Summer Sq'irkjuice", - "xp": 3000 - }, - { - "level": 70, - "icon": 3255, - "name": "Paladin", - "xp": 151.8 - }, - { - "level": 75, - "icon": 3257, - "name": "Gnome", - "xp": 198.5 - }, - { - "level": 75, - "icon": 1607, - "name": "Gems Stall", - "xp": 160 - }, - { - "level": 80, - "icon": 3259, - "name": "Hero", - "xp": 275 - }, - { - "level": 82, - "icon": 24702, - "name": "Vyre", - "xp": 306.9 - }, - { - "level": 85, - "icon": 6105, - "name": "Elf", - "xp": 353 - }, - { - "level": 90, - "icon": 21278, - "name": "TzHaar-Hur", - "xp": 103.4 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_woodcutting.json b/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_woodcutting.json deleted file mode 100644 index 8a72413c99..0000000000 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skillcalculator/skill_woodcutting.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "bonuses": [ - { "name": "Lumberjack Outfit (+2.5%)", "value": 0.025 } - ], - "actions": [ - { - "level": 1, - "icon": 1511, - "name": "Logs", - "xp": 25 - }, - { - "level": 1, - "icon": 2862, - "name": "Achey Tree Logs", - "xp": 25 - }, - { - "level": 15, - "icon": 1521, - "name": "Oak Logs", - "xp": 37.5 - }, - { - "level": 30, - "icon": 1519, - "name": "Willow Logs", - "xp": 67.5 - }, - { - "level": 35, - "icon": 6333, - "name": "Teak Logs", - "xp": 85 - }, - { - "level": 45, - "icon": 3239, - "name": "Bark", - "xp": 82.5 - }, - { - "level": 45, - "icon": 1517, - "name": "Maple Logs", - "xp": 100 - }, - { - "level": 50, - "icon": 6332, - "name": "Mahogany Logs", - "xp": 125 - }, - { - "level": 54, - "icon": 10810, - "name": "Arctic Pine Logs", - "xp": 40 - }, - { - "level": 60, - "icon": 1515, - "name": "Yew Logs", - "xp": 175 - }, - { - "level": 62, - "icon": 24691, - "name": "Blisterwood Logs", - "xp": 76 - }, - { - "level": 65, - "icon": 21626, - "name": "Sulliusceps", - "xp": 127 - }, - { - "level": 75, - "icon": 1513, - "name": "Magic Logs", - "xp": 250 - }, - { - "level": 90, - "icon": 19669, - "name": "Redwood Logs", - "xp": 380 - } - ] -} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java b/runelite-client/src/test/java/net/runelite/client/plugins/skillcalculator/CalculatorTypeTest.java similarity index 61% rename from runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java rename to runelite-client/src/test/java/net/runelite/client/plugins/skillcalculator/CalculatorTypeTest.java index 4959390271..df5ee04041 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/CacheSkillData.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/skillcalculator/CalculatorTypeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Kruithne + * Copyright (c) 2021, Jordan Atwood * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,36 +24,28 @@ */ package net.runelite.client.plugins.skillcalculator; -import com.google.gson.Gson; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import net.runelite.client.plugins.skillcalculator.beans.SkillData; +import net.runelite.client.plugins.skillcalculator.skills.SkillAction; +import static org.junit.Assert.fail; +import org.junit.Test; -class CacheSkillData +public class CalculatorTypeTest { - private final Map cache = new HashMap<>(); - - SkillData getSkillData(String dataFile) + @Test + public void skillActionsInLevelOrder() { - if (cache.containsKey(dataFile)) + for (final CalculatorType calculatorType : CalculatorType.values()) { - return cache.get(dataFile); - } + int level = 1; - try (InputStream skillDataFile = SkillCalculatorPlugin.class.getResourceAsStream(dataFile)) - { - SkillData skillData = new Gson().fromJson(new InputStreamReader(skillDataFile, StandardCharsets.UTF_8), SkillData.class); + for (final SkillAction skillAction : calculatorType.getSkillActions()) + { + if (skillAction.getLevel() < level) + { + fail("Skill action " + skillAction + " is out of order for " + calculatorType.getSkill().getName()); + } - cache.put(dataFile, skillData); - return skillData; - } - catch (IOException e) - { - throw new RuntimeException(e); + level = skillAction.getLevel(); + } } } -} \ No newline at end of file +} From ac8f778307d80903b6b580595fb97b6e746ec4ff Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Thu, 9 Sep 2021 23:36:28 -0700 Subject: [PATCH 07/14] skill calculator: Add ItemSkillAction interface This interface allows for drastically simplified skill actions, allowing us to eschew their name entries in favor of looking up the item name using the items' compositions (fetched from their IDs) at runtime. --- .../skillcalculator/SkillCalculator.java | 9 +- .../skillcalculator/SkillCalculatorPanel.java | 5 +- .../SkillCalculatorPlugin.java | 6 +- .../plugins/skillcalculator/UIActionSlot.java | 17 +- .../skillcalculator/skills/AgilityAction.java | 2 +- .../skills/ConstructionAction.java | 2 +- .../skillcalculator/skills/CookingAction.java | 251 ++++++------ .../skills/CraftingAction.java | 273 +++++++------ .../skillcalculator/skills/FarmingAction.java | 2 +- .../skills/FiremakingAction.java | 29 +- .../skillcalculator/skills/FishingAction.java | 73 ++-- .../skills/FletchingAction.java | 201 +++++----- .../skills/HerbloreAction.java | 149 ++++--- .../skillcalculator/skills/HunterAction.java | 2 +- .../skills/ItemSkillAction.java | 67 ++++ .../skillcalculator/skills/MagicAction.java | 7 + .../skillcalculator/skills/MiningAction.java | 2 +- .../skills/NamedSkillAction.java | 46 +++ .../skillcalculator/skills/PrayerAction.java | 121 +++--- .../skills/RunecraftAction.java | 77 ++-- .../skillcalculator/skills/SkillAction.java | 9 +- .../skills/SmithingAction.java | 367 +++++++++--------- .../skills/ThievingAction.java | 2 +- .../skills/WoodcuttingAction.java | 2 +- 24 files changed, 928 insertions(+), 793 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ItemSkillAction.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/NamedSkillAction.java diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java index 736d7b3fab..5bc35696ca 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java @@ -48,6 +48,7 @@ import net.runelite.api.Client; import net.runelite.api.Experience; import net.runelite.api.Skill; import net.runelite.api.VarPlayer; +import net.runelite.client.callback.ClientThread; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.skillcalculator.skills.SkillAction; @@ -65,6 +66,7 @@ class SkillCalculator extends JPanel private final UICalculatorInputArea uiInput; private final Client client; + private final ClientThread clientThread; private final SpriteManager spriteManager; private final ItemManager itemManager; private final List uiActionSlots = new ArrayList<>(); @@ -80,9 +82,10 @@ class SkillCalculator extends JPanel private int targetXP = Experience.getXpForLevel(targetLevel); private float xpFactor = 1; - SkillCalculator(Client client, UICalculatorInputArea uiInput, SpriteManager spriteManager, ItemManager itemManager) + SkillCalculator(Client client, ClientThread clientThread, UICalculatorInputArea uiInput, SpriteManager spriteManager, ItemManager itemManager) { this.client = client; + this.clientThread = clientThread; this.uiInput = uiInput; this.spriteManager = spriteManager; this.itemManager = itemManager; @@ -303,7 +306,7 @@ class SkillCalculator extends JPanel spriteManager.addSpriteTo(uiIcon, action.getSprite(), 0); } - UIActionSlot slot = new UIActionSlot(action, uiIcon); + UIActionSlot slot = new UIActionSlot(action, clientThread, itemManager, uiIcon); uiActionSlots.add(slot); // Keep our own reference. add(slot); // Add component to the panel. @@ -448,7 +451,7 @@ class SkillCalculator extends JPanel private static boolean slotContainsText(UIActionSlot slot, String text) { - return slot.getAction().getName().toLowerCase().contains(text.toLowerCase()); + return slot.getActionName().toLowerCase().contains(text.toLowerCase()); } private static FocusAdapter buildFocusAdapter(Consumer focusLostConsumer) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java index 6c2f97f57c..82d4f59648 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPanel.java @@ -32,6 +32,7 @@ import javax.swing.ImageIcon; import javax.swing.JScrollPane; import javax.swing.border.EmptyBorder; import net.runelite.api.Client; +import net.runelite.client.callback.ClientThread; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SkillIconManager; import net.runelite.client.game.SpriteManager; @@ -46,7 +47,7 @@ class SkillCalculatorPanel extends PluginPanel private final SkillIconManager iconManager; private final MaterialTabGroup tabGroup; - SkillCalculatorPanel(SkillIconManager iconManager, Client client, SpriteManager spriteManager, ItemManager itemManager) + SkillCalculatorPanel(SkillIconManager iconManager, Client client, ClientThread clientThread, SpriteManager spriteManager, ItemManager itemManager) { super(); getScrollPane().setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); @@ -70,7 +71,7 @@ class SkillCalculatorPanel extends PluginPanel final UICalculatorInputArea uiInput = new UICalculatorInputArea(); uiInput.setBorder(new EmptyBorder(15, 0, 15, 0)); uiInput.setBackground(ColorScheme.DARK_GRAY_COLOR); - uiCalculator = new SkillCalculator(client, uiInput, spriteManager, itemManager); + uiCalculator = new SkillCalculator(client, clientThread, uiInput, spriteManager, itemManager); add(tabGroup, c); c.gridy++; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java index b62f688576..1aab06820f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java @@ -27,6 +27,7 @@ package net.runelite.client.plugins.skillcalculator; import java.awt.image.BufferedImage; import javax.inject.Inject; import net.runelite.api.Client; +import net.runelite.client.callback.ClientThread; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SkillIconManager; import net.runelite.client.game.SpriteManager; @@ -46,6 +47,9 @@ public class SkillCalculatorPlugin extends Plugin @Inject private Client client; + @Inject + private ClientThread clientThread; + @Inject private SkillIconManager skillIconManager; @@ -64,7 +68,7 @@ public class SkillCalculatorPlugin extends Plugin protected void startUp() throws Exception { final BufferedImage icon = ImageUtil.loadImageResource(getClass(), "calc.png"); - final SkillCalculatorPanel uiPanel = new SkillCalculatorPanel(skillIconManager, client, spriteManager, itemManager); + final SkillCalculatorPanel uiPanel = new SkillCalculatorPanel(skillIconManager, client, clientThread, spriteManager, itemManager); uiNavigationButton = NavigationButton.builder() .tooltip("Skill Calculator") diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java index c005d42f90..aa2fd23937 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/UIActionSlot.java @@ -35,12 +35,15 @@ import java.awt.event.MouseListener; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.SwingUtilities; import javax.swing.border.Border; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; +import net.runelite.client.callback.ClientThread; +import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.skillcalculator.skills.SkillAction; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.FontManager; @@ -64,8 +67,11 @@ class UIActionSlot extends JPanel @Getter(AccessLevel.PACKAGE) private final SkillAction action; - private final JShadowedLabel uiLabelActions; + @Getter(AccessLevel.PACKAGE) + private String actionName; + + private final JShadowedLabel uiLabelActions; private final JPanel uiInfo; @Getter(AccessLevel.PACKAGE) @@ -81,7 +87,7 @@ class UIActionSlot extends JPanel @Setter(AccessLevel.PACKAGE) private double value; - UIActionSlot(SkillAction action, JLabel uiIcon) + UIActionSlot(SkillAction action, ClientThread clientThread, ItemManager itemManager, JLabel uiIcon) { this.action = action; @@ -120,7 +126,12 @@ class UIActionSlot extends JPanel uiInfo.setBackground(ColorScheme.DARKER_GRAY_COLOR); uiInfo.setBorder(new EmptyBorder(0, 5, 0, 0)); - JShadowedLabel uiLabelName = new JShadowedLabel(action.getName()); + JShadowedLabel uiLabelName = new JShadowedLabel(); + clientThread.invokeLater(() -> + { + actionName = action.getName(itemManager); + SwingUtilities.invokeLater(() -> uiLabelName.setText(actionName)); + }); uiLabelName.setForeground(Color.WHITE); uiLabelActions = new JShadowedLabel("Unknown"); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java index d62285d548..3edef73f70 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/AgilityAction.java @@ -30,7 +30,7 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum AgilityAction implements SkillAction +public enum AgilityAction implements NamedSkillAction { GNOME_STRONGHOLD_COURSE("Gnome Stronghold", 1, 86.5f, ItemID.SWAMP_TOAD), SHAYZIEN_BASIC_COURSE("Shayzien Basic Course", 5, 133.2f, ItemID.SHAYZIEN_HELM_1), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java index 01b1148909..ed0e0c65b2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ConstructionAction.java @@ -30,7 +30,7 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum ConstructionAction implements SkillAction +public enum ConstructionAction implements NamedSkillAction { EXIT_PORTAL("Exit Portal", 1, 100, ItemID.EXIT_PORTAL), PLANK("Plank", 1, 29, ItemID.PLANK), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java index 3a9b2a208f..7a6c09cc4c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CookingAction.java @@ -30,135 +30,134 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum CookingAction implements SkillAction +public enum CookingAction implements ItemSkillAction { - SINEW("Sinew", 1, 3, ItemID.SINEW), - SHRIMPS("Shrimps", 1, 30, ItemID.SHRIMPS), - COOKED_CHICKEN("Cooked chicken", 1, 30, ItemID.COOKED_CHICKEN), - COOKED_MEAT("Cooked meat", 1, 30, ItemID.COOKED_MEAT), - COOKED_RABBIT("Cooked rabbit", 1, 30, ItemID.COOKED_RABBIT), - ANCHOVIES("Anchovies", 1, 30, ItemID.ANCHOVIES), - SARDINE("Sardine", 1, 40, ItemID.SARDINE), - POISON_KARAMBWAN("Poison karambwan", 1, 80, ItemID.POISON_KARAMBWAN), - UGTHANKI_MEAT("Ugthanki meat", 1, 40, ItemID.UGTHANKI_MEAT), - BREAD("Bread", 1, 40, ItemID.BREAD), - HERRING("Herring", 5, 50, ItemID.HERRING), - FRUIT_BLAST("Fruit blast", 6, 50, ItemID.FRUIT_BLAST), - BAKED_POTATO("Baked potato", 7, 15, ItemID.BAKED_POTATO), - GUPPY("Guppy", 7, 12, ItemID.GUPPY), - PINEAPPLE_PUNCH("Pineapple punch", 8, 70, ItemID.PINEAPPLE_PUNCH), - SPICY_SAUCE("Spicy sauce", 9, 25, ItemID.SPICY_SAUCE), - MACKEREL("Mackerel", 10, 60, ItemID.MACKEREL), - REDBERRY_PIE("Redberry pie", 10, 78, ItemID.REDBERRY_PIE), - TOAD_CRUNCHIES("Toad crunchies", 10, 100, ItemID.TOAD_CRUNCHIES), - CHILLI_CON_CARNE("Chilli con carne", 11, 55, ItemID.CHILLI_CON_CARNE), - ROAST_BIRD_MEAT("Roast bird meat", 11, 62.5f, ItemID.ROAST_BIRD_MEAT), - THIN_SNAIL_MEAT("Thin snail meat", 12, 70, ItemID.THIN_SNAIL_MEAT), - SPICY_CRUNCHIES("Spicy crunchies", 12, 100, ItemID.SPICY_CRUNCHIES), - SCRAMBLED_EGG("Scrambled egg", 13, 50, ItemID.SCRAMBLED_EGG), - CIDER("Cider", 14, 182, ItemID.CIDER), - WORM_CRUNCHIES("Worm crunchies", 14, 104, ItemID.WORM_CRUNCHIES), - TROUT("Trout", 15, 70, ItemID.TROUT), - SPIDER_ON_STICK("Spider on stick", 16, 80, ItemID.SPIDER_ON_STICK), - SPIDER_ON_SHAFT("Spider on shaft", 16, 80, ItemID.SPIDER_ON_SHAFT), - ROAST_RABBIT("Roast rabbit", 16, 72.5f, ItemID.ROAST_RABBIT), - CHOCCHIP_CRUNCHIES("Chocchip crunchies", 16, 100, ItemID.CHOCCHIP_CRUNCHIES), - LEAN_SNAIL_MEAT("Lean snail meat", 17, 80, ItemID.LEAN_SNAIL_MEAT), - COD("Cod", 18, 75, ItemID.COD), - WIZARD_BLIZZARD("Wizard blizzard", 18, 110, ItemID.WIZARD_BLIZZARD), - DWARVEN_STOUT("Dwarven stout", 19, 215, ItemID.DWARVEN_STOUT), - SHORT_GREEN_GUY("Short green guy", 20, 120, ItemID.SHORT_GREEN_GUY), - MEAT_PIE("Meat pie", 20, 110, ItemID.MEAT_PIE), - PIKE("Pike", 20, 80, ItemID.PIKE), - CUP_OF_TEA("Cup of tea", 20, 52, ItemID.CUP_OF_TEA), - CAVEFISH("Cavefish", 20, 23, ItemID.CAVEFISH), - ROAST_BEAST_MEAT("Roast beast meat", 21, 82.5f, ItemID.ROAST_BEAST_MEAT), - COOKED_CRAB_MEAT("Cooked crab meat", 21, 100, ItemID.COOKED_CRAB_MEAT), - POT_OF_CREAM("Pot of cream", 21, 18, ItemID.POT_OF_CREAM), - FAT_SNAIL_MEAT("Fat snail meat", 22, 95, ItemID.FAT_SNAIL_MEAT), - EGG_AND_TOMATO("Egg and tomato", 23, 50, ItemID.EGG_AND_TOMATO), - ASGARNIAN_ALE("Asgarnian ale", 24, 248, ItemID.ASGARNIAN_ALE), - SALMON("Salmon", 25, 90, ItemID.SALMON), - STEW("Stew", 25, 117, ItemID.STEW), - FRUIT_BATTA("Fruit batta", 25, 150, ItemID.FRUIT_BATTA), - TOAD_BATTA("Toad batta", 26, 152, ItemID.TOAD_BATTA), - WORM_BATTA("Worm batta", 27, 154, ItemID.WORM_BATTA), - VEGETABLE_BATTA("Vegetable batta", 28, 156, ItemID.VEGETABLE_BATTA), - SWEETCORN("Sweetcorn", 28, 104, ItemID.COOKED_SWEETCORN), - COOKED_SLIMY_EEL("Cooked slimy eel", 28, 95, ItemID.COOKED_SLIMY_EEL), - MUD_PIE("Mud pie", 29, 128, ItemID.MUD_PIE), - GREENMANS_ALE("Greenman's ale", 29, 281, ItemID.GREENMANS_ALE), - CHEESE_AND_TOMATO_BATTA("Cheese and tomato Batta", 29, 158, ItemID.CHEESETOM_BATTA), - TUNA("Tuna", 30, 100, ItemID.TUNA), - APPLE_PIE("Apple pie", 30, 130, ItemID.APPLE_PIE), - WORM_HOLE("Worm hole", 30, 170, ItemID.WORM_HOLE), - COOKED_KARAMBWAN("Cooked karambwan", 30, 190, ItemID.COOKED_KARAMBWAN), - ROASTED_CHOMPY("Roasted chompy", 30, 100, ItemID.COOKED_CHOMPY), - FISHCAKE("Fishcake", 31, 100, ItemID.COOKED_FISHCAKE), - DRUNK_DRAGON("Drunk dragon", 32, 160, ItemID.DRUNK_DRAGON), - CHOC_SATURDAY("Choc saturday", 33, 170, ItemID.CHOC_SATURDAY), - TETRA("Tetra", 33, 31, ItemID.TETRA), - GARDEN_PIE("Garden pie", 34, 138, ItemID.GARDEN_PIE), - WIZARDS_MIND_BOMB("Wizard's mind bomb", 34, 314, ItemID.WIZARDS_MIND_BOMB), - JUG_OF_WINE("Jug of wine", 35, 200, ItemID.JUG_OF_WINE), - PLAIN_PIZZA("Plain pizza", 35, 143, ItemID.PLAIN_PIZZA), - RAINBOW_FISH("Rainbow fish", 35, 110, ItemID.RAINBOW_FISH), - VEG_BALL("Veg ball", 35, 175, ItemID.VEG_BALL), - BLURBERRY_SPECIAL("Blurberry special", 37, 180, ItemID.BLURBERRY_SPECIAL), - CAVE_EEL("Cave eel", 38, 115, ItemID.CAVE_EEL), - PAT_OF_BUTTER("Pat of butter", 38, 40.5f, ItemID.PAT_OF_BUTTER), - DRAGON_BITTER("Dragon bitter", 39, 347, ItemID.DRAGON_BITTER), - POTATO_WITH_BUTTER("Potato with butter", 39, 40, ItemID.POTATO_WITH_BUTTER), - LOBSTER("Lobster", 40, 120, ItemID.LOBSTER), - CAKE("Cake", 40, 180, ItemID.CAKE), - TANGLED_TOADS_LEGS("Tangled toad's legs", 40, 185, ItemID.TANGLED_TOADS_LEGS), - CHILLI_POTATO("Chilli potato", 41, 165.5f, ItemID.CHILLI_POTATO), - COOKED_JUBBLY("Cooked jubbly", 41, 160, ItemID.COOKED_JUBBLY), - CHOCOLATE_BOMB("Chocolate bomb", 42, 190, ItemID.CHOCOLATE_BOMB), - FRIED_ONIONS("Fried onions", 42, 60, ItemID.FRIED_ONIONS), - BASS("Bass", 43, 130, ItemID.BASS), - MOONLIGHT_MEAD("Moonlight mead", 44, 380, ItemID.MOONLIGHT_MEAD), - SWORDFISH("Swordfish", 45, 140, ItemID.SWORDFISH), - MEAT_PIZZA("Meat pizza", 45, 169, ItemID.MEAT_PIZZA), - FRIED_MUSHROOMS("Fried mushrooms", 46, 60, ItemID.FRIED_MUSHROOMS), - CATFISH("Catfish", 46, 43, ItemID.CATFISH), - FISH_PIE("Fish pie", 47, 164, ItemID.FISH_PIE), - POTATO_WITH_CHEESE("Potato with cheese", 47, 40, ItemID.POTATO_WITH_CHEESE), - CHEESE("Cheese", 48, 64, ItemID.CHEESE), - AXEMANS_FOLLY("Axeman's folly", 49, 413, ItemID.AXEMANS_FOLLY), - COOKED_OOMLIE_WRAP("Cooked oomlie wrap", 50, 30, ItemID.COOKED_OOMLIE_WRAP), - CHOCOLATE_CAKE("Chocolate cake", 50, 210, ItemID.CHOCOLATE_CAKE), - EGG_POTATO("Egg potato", 51, 195.5f, ItemID.EGG_POTATO), - BOTANICAL_PIE("Botanical pie", 52, 180, ItemID.BOTANICAL_PIE), - LAVA_EEL("Lava eel", 53, 30, ItemID.LAVA_EEL), - CHEFS_DELIGHT("Chef's Delight", 54, 446, ItemID.CHEFS_DELIGHT), - ANCHOVY_PIZZA("Anchovy pizza", 55, 182, ItemID.ANCHOVY_PIZZA), - MUSHROOM_AND_ONION("Mushroom & onion", 57, 120, ItemID.MUSHROOM__ONION), - UGTHANKI_KEBAB_FRESH("Ugthanki kebab (Fresh)", 58, 80, ItemID.UGTHANKI_KEBAB), - PITTA_BREAD("Pitta bread", 58, 40, ItemID.PITTA_BREAD), - SLAYERS_RESPITE("Slayer's respite", 59, 479, ItemID.SLAYERS_RESPITE), - CURRY("Curry", 60, 280, ItemID.CURRY), - MUSHROOM_PIE("Mushroom pie", 60, 200, ItemID.MUSHROOM_PIE), - MONKFISH("Monkfish", 62, 150, ItemID.MONKFISH), - MUSHROOM_POTATO("Mushroom potato", 64, 270.5f, ItemID.MUSHROOM_POTATO), - PINEAPPLE_PIZZA("Pineapple pizza", 65, 188, ItemID.PINEAPPLE_PIZZA), - WINE_OF_ZAMORAK("Wine of zamorak", 65, 200, ItemID.WINE_OF_ZAMORAK), - TUNA_AND_CORN("Tuna and corn", 67, 204, ItemID.TUNA_AND_CORN), - TUNA_POTATO("Tuna potato", 68, 309.5f, ItemID.TUNA_POTATO), - ADMIRAL_PIE("Admiral pie", 70, 210, ItemID.ADMIRAL_PIE), - SACRED_EEL("Sacred eel", 72, 109, ItemID.SACRED_EEL), - DRAGONFRUIT_PIE("Dragonfruit pie", 73, 220, ItemID.DRAGONFRUIT_PIE), - SHARK("Shark", 80, 210, ItemID.SHARK), - SEA_TURTLE("Sea turtle", 82, 211.3f, ItemID.SEA_TURTLE), - ANGLERFISH("Anglerfish", 84, 230, ItemID.ANGLERFISH), - WILD_PIE("Wild pie", 85, 240, ItemID.WILD_PIE), - DARK_CRAB("Dark crab", 90, 215, ItemID.DARK_CRAB), - MANTA_RAY("Manta ray", 91, 216.3f, ItemID.MANTA_RAY), - SUMMER_PIE("Summer pie", 95, 260, ItemID.SUMMER_PIE), + SINEW(ItemID.SINEW, 1, 3), + SHRIMPS(ItemID.SHRIMPS, 1, 30), + COOKED_CHICKEN(ItemID.COOKED_CHICKEN, 1, 30), + COOKED_MEAT(ItemID.COOKED_MEAT, 1, 30), + COOKED_RABBIT(ItemID.COOKED_RABBIT, 1, 30), + ANCHOVIES(ItemID.ANCHOVIES, 1, 30), + SARDINE(ItemID.SARDINE, 1, 40), + POISON_KARAMBWAN(ItemID.POISON_KARAMBWAN, 1, 80), + UGTHANKI_MEAT(ItemID.UGTHANKI_MEAT, 1, 40), + BREAD(ItemID.BREAD, 1, 40), + HERRING(ItemID.HERRING, 5, 50), + FRUIT_BLAST(ItemID.FRUIT_BLAST, 6, 50), + BAKED_POTATO(ItemID.BAKED_POTATO, 7, 15), + GUPPY(ItemID.GUPPY, 7, 12), + PINEAPPLE_PUNCH(ItemID.PINEAPPLE_PUNCH, 8, 70), + SPICY_SAUCE(ItemID.SPICY_SAUCE, 9, 25), + MACKEREL(ItemID.MACKEREL, 10, 60), + REDBERRY_PIE(ItemID.REDBERRY_PIE, 10, 78), + TOAD_CRUNCHIES(ItemID.TOAD_CRUNCHIES, 10, 100), + CHILLI_CON_CARNE(ItemID.CHILLI_CON_CARNE, 11, 55), + ROAST_BIRD_MEAT(ItemID.ROAST_BIRD_MEAT, 11, 62.5f), + THIN_SNAIL_MEAT(ItemID.THIN_SNAIL_MEAT, 12, 70), + SPICY_CRUNCHIES(ItemID.SPICY_CRUNCHIES, 12, 100), + SCRAMBLED_EGG(ItemID.SCRAMBLED_EGG, 13, 50), + CIDER(ItemID.CIDER, 14, 182), + WORM_CRUNCHIES(ItemID.WORM_CRUNCHIES, 14, 104), + TROUT(ItemID.TROUT, 15, 70), + SPIDER_ON_STICK(ItemID.SPIDER_ON_STICK, 16, 80), + SPIDER_ON_SHAFT(ItemID.SPIDER_ON_SHAFT, 16, 80), + ROAST_RABBIT(ItemID.ROAST_RABBIT, 16, 72.5f), + CHOCCHIP_CRUNCHIES(ItemID.CHOCCHIP_CRUNCHIES, 16, 100), + LEAN_SNAIL_MEAT(ItemID.LEAN_SNAIL_MEAT, 17, 80), + COD(ItemID.COD, 18, 75), + WIZARD_BLIZZARD(ItemID.WIZARD_BLIZZARD, 18, 110), + DWARVEN_STOUT(ItemID.DWARVEN_STOUT, 19, 215), + SHORT_GREEN_GUY(ItemID.SHORT_GREEN_GUY, 20, 120), + MEAT_PIE(ItemID.MEAT_PIE, 20, 110), + PIKE(ItemID.PIKE, 20, 80), + CUP_OF_TEA(ItemID.CUP_OF_TEA, 20, 52), + CAVEFISH(ItemID.CAVEFISH, 20, 23), + ROAST_BEAST_MEAT(ItemID.ROAST_BEAST_MEAT, 21, 82.5f), + COOKED_CRAB_MEAT(ItemID.COOKED_CRAB_MEAT, 21, 100), + POT_OF_CREAM(ItemID.POT_OF_CREAM, 21, 18), + FAT_SNAIL_MEAT(ItemID.FAT_SNAIL_MEAT, 22, 95), + EGG_AND_TOMATO(ItemID.EGG_AND_TOMATO, 23, 50), + ASGARNIAN_ALE(ItemID.ASGARNIAN_ALE, 24, 248), + SALMON(ItemID.SALMON, 25, 90), + STEW(ItemID.STEW, 25, 117), + FRUIT_BATTA(ItemID.FRUIT_BATTA, 25, 150), + TOAD_BATTA(ItemID.TOAD_BATTA, 26, 152), + WORM_BATTA(ItemID.WORM_BATTA, 27, 154), + VEGETABLE_BATTA(ItemID.VEGETABLE_BATTA, 28, 156), + SWEETCORN(ItemID.COOKED_SWEETCORN, 28, 104), + COOKED_SLIMY_EEL(ItemID.COOKED_SLIMY_EEL, 28, 95), + MUD_PIE(ItemID.MUD_PIE, 29, 128), + GREENMANS_ALE(ItemID.GREENMANS_ALE, 29, 281), + CHEESE_AND_TOMATO_BATTA(ItemID.CHEESETOM_BATTA, 29, 158), + TUNA(ItemID.TUNA, 30, 100), + APPLE_PIE(ItemID.APPLE_PIE, 30, 130), + WORM_HOLE(ItemID.WORM_HOLE, 30, 170), + COOKED_KARAMBWAN(ItemID.COOKED_KARAMBWAN, 30, 190), + ROASTED_CHOMPY(ItemID.COOKED_CHOMPY, 30, 100), + FISHCAKE(ItemID.COOKED_FISHCAKE, 31, 100), + DRUNK_DRAGON(ItemID.DRUNK_DRAGON, 32, 160), + CHOC_SATURDAY(ItemID.CHOC_SATURDAY, 33, 170), + TETRA(ItemID.TETRA, 33, 31), + GARDEN_PIE(ItemID.GARDEN_PIE, 34, 138), + WIZARDS_MIND_BOMB(ItemID.WIZARDS_MIND_BOMB, 34, 314), + JUG_OF_WINE(ItemID.JUG_OF_WINE, 35, 200), + PLAIN_PIZZA(ItemID.PLAIN_PIZZA, 35, 143), + RAINBOW_FISH(ItemID.RAINBOW_FISH, 35, 110), + VEG_BALL(ItemID.VEG_BALL, 35, 175), + BLURBERRY_SPECIAL(ItemID.BLURBERRY_SPECIAL, 37, 180), + CAVE_EEL(ItemID.CAVE_EEL, 38, 115), + PAT_OF_BUTTER(ItemID.PAT_OF_BUTTER, 38, 40.5f), + DRAGON_BITTER(ItemID.DRAGON_BITTER, 39, 347), + POTATO_WITH_BUTTER(ItemID.POTATO_WITH_BUTTER, 39, 40), + LOBSTER(ItemID.LOBSTER, 40, 120), + CAKE(ItemID.CAKE, 40, 180), + TANGLED_TOADS_LEGS(ItemID.TANGLED_TOADS_LEGS, 40, 185), + CHILLI_POTATO(ItemID.CHILLI_POTATO, 41, 165.5f), + COOKED_JUBBLY(ItemID.COOKED_JUBBLY, 41, 160), + CHOCOLATE_BOMB(ItemID.CHOCOLATE_BOMB, 42, 190), + FRIED_ONIONS(ItemID.FRIED_ONIONS, 42, 60), + BASS(ItemID.BASS, 43, 130), + MOONLIGHT_MEAD(ItemID.MOONLIGHT_MEAD, 44, 380), + SWORDFISH(ItemID.SWORDFISH, 45, 140), + MEAT_PIZZA(ItemID.MEAT_PIZZA, 45, 169), + FRIED_MUSHROOMS(ItemID.FRIED_MUSHROOMS, 46, 60), + CATFISH(ItemID.CATFISH, 46, 43), + FISH_PIE(ItemID.FISH_PIE, 47, 164), + POTATO_WITH_CHEESE(ItemID.POTATO_WITH_CHEESE, 47, 40), + CHEESE(ItemID.CHEESE, 48, 64), + AXEMANS_FOLLY(ItemID.AXEMANS_FOLLY, 49, 413), + COOKED_OOMLIE_WRAP(ItemID.COOKED_OOMLIE_WRAP, 50, 30), + CHOCOLATE_CAKE(ItemID.CHOCOLATE_CAKE, 50, 210), + EGG_POTATO(ItemID.EGG_POTATO, 51, 195.5f), + BOTANICAL_PIE(ItemID.BOTANICAL_PIE, 52, 180), + LAVA_EEL(ItemID.LAVA_EEL, 53, 30), + CHEFS_DELIGHT(ItemID.CHEFS_DELIGHT, 54, 446), + ANCHOVY_PIZZA(ItemID.ANCHOVY_PIZZA, 55, 182), + MUSHROOM_AND_ONION(ItemID.MUSHROOM__ONION, 57, 120), + UGTHANKI_KEBAB_FRESH(ItemID.UGTHANKI_KEBAB, 58, 80), + PITTA_BREAD(ItemID.PITTA_BREAD, 58, 40), + SLAYERS_RESPITE(ItemID.SLAYERS_RESPITE, 59, 479), + CURRY(ItemID.CURRY, 60, 280), + MUSHROOM_PIE(ItemID.MUSHROOM_PIE, 60, 200), + MONKFISH(ItemID.MONKFISH, 62, 150), + MUSHROOM_POTATO(ItemID.MUSHROOM_POTATO, 64, 270.5f), + PINEAPPLE_PIZZA(ItemID.PINEAPPLE_PIZZA, 65, 188), + WINE_OF_ZAMORAK(ItemID.WINE_OF_ZAMORAK, 65, 200), + TUNA_AND_CORN(ItemID.TUNA_AND_CORN, 67, 204), + TUNA_POTATO(ItemID.TUNA_POTATO, 68, 309.5f), + ADMIRAL_PIE(ItemID.ADMIRAL_PIE, 70, 210), + SACRED_EEL(ItemID.SACRED_EEL, 72, 109), + DRAGONFRUIT_PIE(ItemID.DRAGONFRUIT_PIE, 73, 220), + SHARK(ItemID.SHARK, 80, 210), + SEA_TURTLE(ItemID.SEA_TURTLE, 82, 211.3f), + ANGLERFISH(ItemID.ANGLERFISH, 84, 230), + WILD_PIE(ItemID.WILD_PIE, 85, 240), + DARK_CRAB(ItemID.DARK_CRAB, 90, 215), + MANTA_RAY(ItemID.MANTA_RAY, 91, 216.3f), + SUMMER_PIE(ItemID.SUMMER_PIE, 95, 260), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java index 26d5ecf040..c7c8720508 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/CraftingAction.java @@ -30,146 +30,145 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum CraftingAction implements SkillAction +public enum CraftingAction implements ItemSkillAction { - BALL_OF_WOOL("Ball of wool", 1, 2.5f, ItemID.BALL_OF_WOOL), - UNFIRED_POT("Unfired pot", 1, 6.3f, ItemID.UNFIRED_POT), - POT("Pot", 1, 6.3f, ItemID.POT), - LEATHER_GLOVES("Leather gloves", 1, 13.8f, ItemID.LEATHER_GLOVES), - OPAL("Opal", 1, 15, ItemID.OPAL), - OPAL_RING("Opal ring", 1, 10, ItemID.OPAL_RING), - MOLTEN_GLASS("Molten glass", 1, 20, ItemID.MOLTEN_GLASS), - BEER_GLASS("Beer glass", 1, 17.5f, ItemID.BEER_GLASS), - EMPTY_CANDLE_LANTERN("Empty candle lantern", 4, 19, ItemID.EMPTY_CANDLE_LANTERN), - GOLD_RING("Gold ring", 5, 15, ItemID.GOLD_RING), - BIRD_HOUSE("Bird house", 5, 15, ItemID.BIRD_HOUSE), - GOLD_NECKLACE("Gold necklace", 6, 20, ItemID.GOLD_NECKLACE), - LEATHER_BOOTS("Leather boots", 7, 16.3f, ItemID.LEATHER_BOOTS), - UNFIRED_PIE_DISH("Unfired pie dish", 7, 15, ItemID.UNFIRED_PIE_DISH), - PIE_DISH("Pie dish", 7, 10, ItemID.PIE_DISH), - GOLD_BRACELET("Gold bracelet", 7, 25, ItemID.GOLD_BRACELET), - UNFIRED_BOWL("Unfired bowl", 8, 18, ItemID.UNFIRED_BOWL), - BOWL("Bowl", 8, 15, ItemID.BOWL), - GOLD_AMULET_U("Gold amulet (u)", 8, 30, ItemID.GOLD_AMULET_U), - COWL("Cowl", 9, 18.5f, ItemID.LEATHER_COWL), - CROSSBOW_STRING("Crossbow string", 10, 15, ItemID.CROSSBOW_STRING), - BOW_STRING("Bow string", 10, 15, ItemID.BOW_STRING), - LEATHER_VAMBRACES("Leather vambraces", 11, 22, ItemID.LEATHER_VAMBRACES), - EMPTY_OIL_LAMP("Empty oil lamp", 12, 25, ItemID.EMPTY_OIL_LAMP), - JADE("Jade", 13, 20, ItemID.JADE), - JADE_RING("Jade ring", 13, 32, ItemID.JADE_RING), - LEATHER_BODY("Leather body", 14, 25, ItemID.LEATHER_BODY), - OAK_BIRD_HOUSE("Oak bird house", 15, 20, ItemID.OAK_BIRD_HOUSE), - RED_TOPAZ("Red topaz", 16, 25, ItemID.RED_TOPAZ), - TOPAZ_RING("Topaz ring", 16, 35, ItemID.TOPAZ_RING), - HOLY_SYMBOL("Holy symbol", 16, 50, ItemID.HOLY_SYMBOL), - OPAL_NECKLACE("Opal necklace", 16, 35, ItemID.OPAL_NECKLACE), - UNHOLY_SYMBOL("Unholy symbol", 17, 50, ItemID.UNHOLY_SYMBOL), - LEATHER_CHAPS("Leather chaps", 18, 27, ItemID.LEATHER_CHAPS), - UNFIRED_PLANT_POT("Unfired plant pot", 19, 20, ItemID.UNFIRED_PLANT_POT), - EMPTY_PLANT_POT("Empty plant pot", 19, 17.5f, ItemID.EMPTY_PLANT_POT), - MAGIC_STRING("Magic string", 19, 30, ItemID.MAGIC_STRING), - SAPPHIRE("Sapphire", 20, 50, ItemID.SAPPHIRE), - SAPPHIRE_RING("Sapphire ring", 20, 40, ItemID.SAPPHIRE_RING), - EMPTY_SACK("Empty sack", 21, 38, ItemID.EMPTY_SACK), - SAPPHIRE_NECKLACE("Sapphire necklace", 22, 55, ItemID.SAPPHIRE_NECKLACE), - OPAL_BRACELET("Opal bracelet", 22, 45, ItemID.OPAL_BRACELET), - SAPPHIRE_BRACELET("Sapphire bracelet", 23, 60, ItemID.SAPPHIRE_BRACELET), - TIARA("Tiara", 23, 52.5f, ItemID.TIARA), - SAPPHIRE_AMULET_U("Sapphire amulet (u)", 24, 65, ItemID.SAPPHIRE_AMULET_U), - UNFIRED_POT_LID("Unfired pot lid", 25, 20, ItemID.UNFIRED_POT_LID), - POT_LID("Pot lid", 25, 20, ItemID.POT_LID), - JADE_NECKLACE("Jade necklace", 25, 54, ItemID.JADE_NECKLACE), - WILLOW_BIRD_HOUSE("Willow bird house", 25, 25, ItemID.WILLOW_BIRD_HOUSE), - DRIFT_NET("Drift net", 26, 55, ItemID.SMALL_FISHING_NET_6209), - EMERALD("Emerald", 27, 67.5f, ItemID.EMERALD), - EMERALD_RING("Emerald ring", 27, 55, ItemID.EMERALD_RING), - OPAL_AMULET_U("Opal amulet (u)", 27, 55, ItemID.OPAL_AMULET_U), - HARDLEATHER_BODY("Hardleather body", 28, 35, ItemID.HARDLEATHER_BODY), - EMERALD_NECKLACE("Emerald necklace", 29, 60, ItemID.EMERALD_NECKLACE), - JADE_BRACELET("Jade bracelet", 29, 60, ItemID.JADE_BRACELET), - EMERALD_BRACELET("Emerald bracelet", 30, 65, ItemID.EMERALD_BRACELET), - ROPE("Rope", 30, 25, ItemID.ROPE), - EMERALD_AMULET_U("Emerald amulet (u)", 31, 70, ItemID.EMERALD_AMULET_U), - SPIKY_VAMBRACES("Spiky vambraces", 32, 6, ItemID.SPIKY_VAMBRACES), - TOPAZ_NECKLACE("Topaz necklace", 32, 70, ItemID.TOPAZ_NECKLACE), - VIAL("Vial", 33, 35, ItemID.VIAL), - RUBY("Ruby", 34, 85, ItemID.RUBY), - RUBY_RING("Ruby ring", 34, 70, ItemID.RUBY_RING), - JADE_AMULET_U("Jade amulet (u)", 34, 70, ItemID.JADE_AMULET_U), - BROODOO_SHIELD("Broodoo shield", 35, 100, ItemID.BROODOO_SHIELD), - TEAK_BIRD_HOUSE("Teak bird house", 35, 30, ItemID.TEAK_BIRD_HOUSE), - BASKET("Basket", 36, 56, ItemID.BASKET), - COIF("Coif", 38, 37, ItemID.COIF), - TOPAZ_BRACELET("Topaz bracelet", 38, 75, ItemID.TOPAZ_BRACELET), - RUBY_NECKLACE("Ruby necklace", 40, 75, ItemID.RUBY_NECKLACE), - HARD_LEATHER_SHIELD("Hard leather shield", 41, 70, ItemID.HARD_LEATHER_SHIELD), - RUBY_BRACELET("Ruby bracelet", 42, 80, ItemID.RUBY_BRACELET), - FISHBOWL("Fishbowl", 42, 42.5f, ItemID.FISHBOWL), - DIAMOND("Diamond", 43, 107.5f, ItemID.DIAMOND), - DIAMOND_RING("Diamond ring", 43, 85, ItemID.DIAMOND_RING), - TOPAZ_AMULET_U("Topaz amulet (u)", 45, 80, ItemID.TOPAZ_AMULET_U), - SNAKESKIN_BOOTS("Snakeskin boots", 45, 30, ItemID.SNAKESKIN_BOOTS), - MAPLE_BIRD_HOUSE("Maple bird house", 45, 35, ItemID.MAPLE_BIRD_HOUSE), - UNPOWERED_ORB("Unpowered orb", 46, 52.5f, ItemID.UNPOWERED_ORB), - SNAKESKIN_VAMBRACES("Snakeskin vambraces", 47, 35, ItemID.SNAKESKIN_VAMBRACES), - SNAKESKIN_BANDANA("Snakeskin bandana", 48, 45, ItemID.SNAKESKIN_BANDANA), - LANTERN_LENS("Lantern lens", 49, 55, ItemID.LANTERN_LENS), - RUBY_AMULET_U("Ruby amulet (u)", 50, 85, ItemID.RUBY_AMULET_U), - MAHOGANY_BIRD_HOUSE("Mahogany bird house", 50, 40, ItemID.MAHOGANY_BIRD_HOUSE), - SNAKESKIN_CHAPS("Snakeskin chaps", 51, 50, ItemID.SNAKESKIN_CHAPS), - SNAKESKIN_BODY("Snakeskin body", 53, 55, ItemID.SNAKESKIN_BODY), - WATER_BATTLESTAFF("Water battlestaff", 54, 100, ItemID.WATER_BATTLESTAFF), - DRAGONSTONE("Dragonstone", 55, 137.5f, ItemID.DRAGONSTONE), - DRAGONSTONE_RING("Dragonstone ring", 55, 100, ItemID.DRAGONSTONE_RING), - DIAMOND_NECKLACE("Diamond necklace", 56, 90, ItemID.DIAMOND_NECKLACE), - SNAKESKIN_SHIELD("Snakeskin shield", 56, 100, ItemID.SNAKESKIN_SHIELD), - GREEN_DHIDE_VAMB("Green D'hide vamb", 57, 62, ItemID.GREEN_DHIDE_VAMBRACES), - DIAMOND_BRACELET("Diamond bracelet", 58, 95, ItemID.DIAMOND_BRACELET), - EARTH_BATTLESTAFF("Earth battlestaff", 58, 112.5f, ItemID.EARTH_BATTLESTAFF), - GREEN_DHIDE_CHAPS("Green D'hide chaps", 60, 124, ItemID.GREEN_DHIDE_CHAPS), - YEW_BIRD_HOUSE("Yew bird house", 60, 45, ItemID.YEW_BIRD_HOUSE), - FIRE_BATTLESTAFF("Fire battlestaff", 62, 125, ItemID.FIRE_BATTLESTAFF), - GREEN_DHIDE_SHIELD("Green D'hide shield", 62, 124, ItemID.GREEN_DHIDE_SHIELD), - GREEN_DHIDE_BODY("Green D'hide body", 63, 186, ItemID.GREEN_DHIDE_BODY), - AIR_BATTLESTAFF("Air battlestaff", 66, 137.5f, ItemID.AIR_BATTLESTAFF), - BLUE_DHIDE_VAMB("Blue D'hide vamb", 66, 70, ItemID.BLUE_DHIDE_VAMBRACES), - ONYX_RING("Onyx ring", 67, 115, ItemID.ONYX_RING), - ONYX("Onyx", 67, 167.5f, ItemID.ONYX), - BLUE_DHIDE_CHAPS("Blue D'hide chaps", 68, 140, ItemID.BLUE_DHIDE_CHAPS), - BLUE_DHIDE_SHIELD("Blue D'hide shield", 69, 140, ItemID.BLUE_DHIDE_SHIELD), - DIAMOND_AMULET_U("Diamond amulet (u)", 70, 100, ItemID.DIAMOND_AMULET_U), - BLUE_DHIDE_BODY("Blue D'hide body", 71, 210, ItemID.BLUE_DHIDE_BODY), - DRAGONSTONE_NECKLACE("Dragonstone necklace", 72, 105, ItemID.DRAGON_NECKLACE), - RED_DHIDE_VAMB("Red D'hide vamb", 73, 78, ItemID.RED_DHIDE_VAMBRACES), - DRAGONSTONE_BRACELET("Dragonstone bracelet", 74, 110, ItemID.DRAGONSTONE_BRACELET), - RED_DHIDE_CHAPS("Red D'hide chaps", 75, 156, ItemID.RED_DHIDE_CHAPS), - MAGIC_BIRD_HOUSE("Magic bird house", 75, 50, ItemID.MAGIC_BIRD_HOUSE), - RED_DHIDE_SHIELD("Red D'hide shield", 76, 156, ItemID.RED_DHIDE_SHIELD), - RED_DHIDE_BODY("Red D'hide body", 77, 234, ItemID.RED_DHIDE_BODY), - BLACK_DHIDE_VAMB("Black D'hide vamb", 79, 86, ItemID.BLACK_DHIDE_VAMBRACES), - DRAGONSTONE_AMULET_U("Dragonstone amulet (u)", 80, 150, ItemID.DRAGONSTONE_AMULET_U), - BLACK_DHIDE_CHAPS("Black D'hide chaps", 82, 172, ItemID.BLACK_DHIDE_CHAPS), - ONYX_NECKLACE("Onyx necklace", 82, 120, ItemID.ONYX_NECKLACE), - AMETHYST_BOLT_TIPS("Amethyst bolt tips", 83, 4, ItemID.AMETHYST_BOLT_TIPS), - BLACK_DHIDE_SHIELD("Black D'hide shield", 83, 172, ItemID.BLACK_DHIDE_SHIELD), - BLACK_DHIDE_BODY("Black D'hide body", 84, 258, ItemID.BLACK_DHIDE_BODY), - ONYX_BRACELET("Onyx bracelet", 84, 125, ItemID.ONYX_BRACELET), - AMETHYST_ARROWTIPS("Amethyst arrowtips", 85, 4, ItemID.AMETHYST_ARROWTIPS), - AMETHYST_JAVELIN_HEADS("Amethyst javelin heads", 87, 12, ItemID.AMETHYST_JAVELIN_HEADS), - LIGHT_ORB("Light orb", 87, 70, ItemID.LIGHT_ORB), - AMETHYST_DART_TIP("Amethyst dart tip", 89, 7.5f, ItemID.AMETHYST_DART_TIP), - ZENYTE("Zenyte", 89, 200, ItemID.ZENYTE), - ZENYTE_RING("Zenyte ring", 89, 150, ItemID.ZENYTE_RING), - ONYX_AMULET_U("Onyx amulet (u)", 90, 165, ItemID.ONYX_AMULET_U), - REDWOOD_BIRD_HOUSE("Redwood bird house", 90, 55, ItemID.REDWOOD_BIRD_HOUSE), - ZENYTE_NECKLACE("Zenyte necklace", 92, 165, ItemID.ZENYTE_NECKLACE), - ZENYTE_BRACELET("Zenyte bracelet", 95, 180, ItemID.ZENYTE_BRACELET), - ZENYTE_AMULET_U("Zenyte amulet (u)", 98, 200, ItemID.ZENYTE_AMULET_U), + BALL_OF_WOOL(ItemID.BALL_OF_WOOL, 1, 2.5f), + UNFIRED_POT(ItemID.UNFIRED_POT, 1, 6.3f), + POT(ItemID.POT, 1, 6.3f), + LEATHER_GLOVES(ItemID.LEATHER_GLOVES, 1, 13.8f), + OPAL(ItemID.OPAL, 1, 15), + OPAL_RING(ItemID.OPAL_RING, 1, 10), + MOLTEN_GLASS(ItemID.MOLTEN_GLASS, 1, 20), + BEER_GLASS(ItemID.BEER_GLASS, 1, 17.5f), + EMPTY_CANDLE_LANTERN(ItemID.EMPTY_CANDLE_LANTERN, 4, 19), + GOLD_RING(ItemID.GOLD_RING, 5, 15), + BIRD_HOUSE(ItemID.BIRD_HOUSE, 5, 15), + GOLD_NECKLACE(ItemID.GOLD_NECKLACE, 6, 20), + LEATHER_BOOTS(ItemID.LEATHER_BOOTS, 7, 16.3f), + UNFIRED_PIE_DISH(ItemID.UNFIRED_PIE_DISH, 7, 15), + PIE_DISH(ItemID.PIE_DISH, 7, 10), + GOLD_BRACELET(ItemID.GOLD_BRACELET, 7, 25), + UNFIRED_BOWL(ItemID.UNFIRED_BOWL, 8, 18), + BOWL(ItemID.BOWL, 8, 15), + GOLD_AMULET_U(ItemID.GOLD_AMULET_U, 8, 30), + COWL(ItemID.LEATHER_COWL, 9, 18.5f), + CROSSBOW_STRING(ItemID.CROSSBOW_STRING, 10, 15), + BOW_STRING(ItemID.BOW_STRING, 10, 15), + LEATHER_VAMBRACES(ItemID.LEATHER_VAMBRACES, 11, 22), + EMPTY_OIL_LAMP(ItemID.EMPTY_OIL_LAMP, 12, 25), + JADE(ItemID.JADE, 13, 20), + JADE_RING(ItemID.JADE_RING, 13, 32), + LEATHER_BODY(ItemID.LEATHER_BODY, 14, 25), + OAK_BIRD_HOUSE(ItemID.OAK_BIRD_HOUSE, 15, 20), + RED_TOPAZ(ItemID.RED_TOPAZ, 16, 25), + TOPAZ_RING(ItemID.TOPAZ_RING, 16, 35), + HOLY_SYMBOL(ItemID.HOLY_SYMBOL, 16, 50), + OPAL_NECKLACE(ItemID.OPAL_NECKLACE, 16, 35), + UNHOLY_SYMBOL(ItemID.UNHOLY_SYMBOL, 17, 50), + LEATHER_CHAPS(ItemID.LEATHER_CHAPS, 18, 27), + UNFIRED_PLANT_POT(ItemID.UNFIRED_PLANT_POT, 19, 20), + EMPTY_PLANT_POT(ItemID.EMPTY_PLANT_POT, 19, 17.5f), + MAGIC_STRING(ItemID.MAGIC_STRING, 19, 30), + SAPPHIRE(ItemID.SAPPHIRE, 20, 50), + SAPPHIRE_RING(ItemID.SAPPHIRE_RING, 20, 40), + EMPTY_SACK(ItemID.EMPTY_SACK, 21, 38), + SAPPHIRE_NECKLACE(ItemID.SAPPHIRE_NECKLACE, 22, 55), + OPAL_BRACELET(ItemID.OPAL_BRACELET, 22, 45), + SAPPHIRE_BRACELET(ItemID.SAPPHIRE_BRACELET, 23, 60), + TIARA(ItemID.TIARA, 23, 52.5f), + SAPPHIRE_AMULET_U(ItemID.SAPPHIRE_AMULET_U, 24, 65), + UNFIRED_POT_LID(ItemID.UNFIRED_POT_LID, 25, 20), + POT_LID(ItemID.POT_LID, 25, 20), + JADE_NECKLACE(ItemID.JADE_NECKLACE, 25, 54), + WILLOW_BIRD_HOUSE(ItemID.WILLOW_BIRD_HOUSE, 25, 25), + DRIFT_NET(ItemID.SMALL_FISHING_NET_6209, 26, 55), + EMERALD(ItemID.EMERALD, 27, 67.5f), + EMERALD_RING(ItemID.EMERALD_RING, 27, 55), + OPAL_AMULET_U(ItemID.OPAL_AMULET_U, 27, 55), + HARDLEATHER_BODY(ItemID.HARDLEATHER_BODY, 28, 35), + EMERALD_NECKLACE(ItemID.EMERALD_NECKLACE, 29, 60), + JADE_BRACELET(ItemID.JADE_BRACELET, 29, 60), + EMERALD_BRACELET(ItemID.EMERALD_BRACELET, 30, 65), + ROPE(ItemID.ROPE, 30, 25), + EMERALD_AMULET_U(ItemID.EMERALD_AMULET_U, 31, 70), + SPIKY_VAMBRACES(ItemID.SPIKY_VAMBRACES, 32, 6), + TOPAZ_NECKLACE(ItemID.TOPAZ_NECKLACE, 32, 70), + VIAL(ItemID.VIAL, 33, 35), + RUBY(ItemID.RUBY, 34, 85), + RUBY_RING(ItemID.RUBY_RING, 34, 70), + JADE_AMULET_U(ItemID.JADE_AMULET_U, 34, 70), + BROODOO_SHIELD(ItemID.BROODOO_SHIELD, 35, 100), + TEAK_BIRD_HOUSE(ItemID.TEAK_BIRD_HOUSE, 35, 30), + BASKET(ItemID.BASKET, 36, 56), + COIF(ItemID.COIF, 38, 37), + TOPAZ_BRACELET(ItemID.TOPAZ_BRACELET, 38, 75), + RUBY_NECKLACE(ItemID.RUBY_NECKLACE, 40, 75), + HARD_LEATHER_SHIELD(ItemID.HARD_LEATHER_SHIELD, 41, 70), + RUBY_BRACELET(ItemID.RUBY_BRACELET, 42, 80), + FISHBOWL(ItemID.FISHBOWL, 42, 42.5f), + DIAMOND(ItemID.DIAMOND, 43, 107.5f), + DIAMOND_RING(ItemID.DIAMOND_RING, 43, 85), + TOPAZ_AMULET_U(ItemID.TOPAZ_AMULET_U, 45, 80), + SNAKESKIN_BOOTS(ItemID.SNAKESKIN_BOOTS, 45, 30), + MAPLE_BIRD_HOUSE(ItemID.MAPLE_BIRD_HOUSE, 45, 35), + UNPOWERED_ORB(ItemID.UNPOWERED_ORB, 46, 52.5f), + SNAKESKIN_VAMBRACES(ItemID.SNAKESKIN_VAMBRACES, 47, 35), + SNAKESKIN_BANDANA(ItemID.SNAKESKIN_BANDANA, 48, 45), + LANTERN_LENS(ItemID.LANTERN_LENS, 49, 55), + RUBY_AMULET_U(ItemID.RUBY_AMULET_U, 50, 85), + MAHOGANY_BIRD_HOUSE(ItemID.MAHOGANY_BIRD_HOUSE, 50, 40), + SNAKESKIN_CHAPS(ItemID.SNAKESKIN_CHAPS, 51, 50), + SNAKESKIN_BODY(ItemID.SNAKESKIN_BODY, 53, 55), + WATER_BATTLESTAFF(ItemID.WATER_BATTLESTAFF, 54, 100), + DRAGONSTONE(ItemID.DRAGONSTONE, 55, 137.5f), + DRAGONSTONE_RING(ItemID.DRAGONSTONE_RING, 55, 100), + DIAMOND_NECKLACE(ItemID.DIAMOND_NECKLACE, 56, 90), + SNAKESKIN_SHIELD(ItemID.SNAKESKIN_SHIELD, 56, 100), + GREEN_DHIDE_VAMB(ItemID.GREEN_DHIDE_VAMBRACES, 57, 62), + DIAMOND_BRACELET(ItemID.DIAMOND_BRACELET, 58, 95), + EARTH_BATTLESTAFF(ItemID.EARTH_BATTLESTAFF, 58, 112.5f), + GREEN_DHIDE_CHAPS(ItemID.GREEN_DHIDE_CHAPS, 60, 124), + YEW_BIRD_HOUSE(ItemID.YEW_BIRD_HOUSE, 60, 45), + FIRE_BATTLESTAFF(ItemID.FIRE_BATTLESTAFF, 62, 125), + GREEN_DHIDE_SHIELD(ItemID.GREEN_DHIDE_SHIELD, 62, 124), + GREEN_DHIDE_BODY(ItemID.GREEN_DHIDE_BODY, 63, 186), + AIR_BATTLESTAFF(ItemID.AIR_BATTLESTAFF, 66, 137.5f), + BLUE_DHIDE_VAMB(ItemID.BLUE_DHIDE_VAMBRACES, 66, 70), + ONYX_RING(ItemID.ONYX_RING, 67, 115), + ONYX(ItemID.ONYX, 67, 167.5f), + BLUE_DHIDE_CHAPS(ItemID.BLUE_DHIDE_CHAPS, 68, 140), + BLUE_DHIDE_SHIELD(ItemID.BLUE_DHIDE_SHIELD, 69, 140), + DIAMOND_AMULET_U(ItemID.DIAMOND_AMULET_U, 70, 100), + BLUE_DHIDE_BODY(ItemID.BLUE_DHIDE_BODY, 71, 210), + DRAGONSTONE_NECKLACE(ItemID.DRAGON_NECKLACE, 72, 105), + RED_DHIDE_VAMB(ItemID.RED_DHIDE_VAMBRACES, 73, 78), + DRAGONSTONE_BRACELET(ItemID.DRAGONSTONE_BRACELET, 74, 110), + RED_DHIDE_CHAPS(ItemID.RED_DHIDE_CHAPS, 75, 156), + MAGIC_BIRD_HOUSE(ItemID.MAGIC_BIRD_HOUSE, 75, 50), + RED_DHIDE_SHIELD(ItemID.RED_DHIDE_SHIELD, 76, 156), + RED_DHIDE_BODY(ItemID.RED_DHIDE_BODY, 77, 234), + BLACK_DHIDE_VAMB(ItemID.BLACK_DHIDE_VAMBRACES, 79, 86), + DRAGONSTONE_AMULET_U(ItemID.DRAGONSTONE_AMULET_U, 80, 150), + BLACK_DHIDE_CHAPS(ItemID.BLACK_DHIDE_CHAPS, 82, 172), + ONYX_NECKLACE(ItemID.ONYX_NECKLACE, 82, 120), + AMETHYST_BOLT_TIPS(ItemID.AMETHYST_BOLT_TIPS, 83, 4), + BLACK_DHIDE_SHIELD(ItemID.BLACK_DHIDE_SHIELD, 83, 172), + BLACK_DHIDE_BODY(ItemID.BLACK_DHIDE_BODY, 84, 258), + ONYX_BRACELET(ItemID.ONYX_BRACELET, 84, 125), + AMETHYST_ARROWTIPS(ItemID.AMETHYST_ARROWTIPS, 85, 4), + AMETHYST_JAVELIN_HEADS(ItemID.AMETHYST_JAVELIN_HEADS, 87, 12), + LIGHT_ORB(ItemID.LIGHT_ORB, 87, 70), + AMETHYST_DART_TIP(ItemID.AMETHYST_DART_TIP, 89, 7.5f), + ZENYTE(ItemID.ZENYTE, 89, 200), + ZENYTE_RING(ItemID.ZENYTE_RING, 89, 150), + ONYX_AMULET_U(ItemID.ONYX_AMULET_U, 90, 165), + REDWOOD_BIRD_HOUSE(ItemID.REDWOOD_BIRD_HOUSE, 90, 55), + ZENYTE_NECKLACE(ItemID.ZENYTE_NECKLACE, 92, 165), + ZENYTE_BRACELET(ItemID.ZENYTE_BRACELET, 95, 180), + ZENYTE_AMULET_U(ItemID.ZENYTE_AMULET_U, 98, 200), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java index bcf06f1668..6f17dcceb3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FarmingAction.java @@ -30,7 +30,7 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum FarmingAction implements SkillAction +public enum FarmingAction implements NamedSkillAction { PLANT("Plant", 1, 31, ItemID.PLANT), FERN_BIG_PLANT("Fern (big plant)", 1, 31, ItemID.FERN_8186), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java index 57d1b92e7e..424fb851a8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FiremakingAction.java @@ -30,24 +30,23 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum FiremakingAction implements SkillAction +public enum FiremakingAction implements ItemSkillAction { - LOGS("Logs", 1, 40, ItemID.LOGS), - ACHEY_TREE_LOGS("Achey tree logs", 1, 40, ItemID.ACHEY_TREE_LOGS), - OAK_LOGS("Oak logs", 15, 60, ItemID.OAK_LOGS), - WILLOW_LOGS("Willow logs", 30, 90, ItemID.WILLOW_LOGS), - TEAK_LOGS("Teak logs", 35, 105, ItemID.TEAK_LOGS), - ARCTIC_PINE_LOGS("Arctic pine logs", 42, 125, ItemID.ARCTIC_PINE_LOGS), - MAPLE_LOGS("Maple logs", 45, 135, ItemID.MAPLE_LOGS), - MAHOGANY_LOGS("Mahogany logs", 50, 157.5f, ItemID.MAHOGANY_LOGS), - YEW_LOGS("Yew logs", 60, 202.5f, ItemID.YEW_LOGS), - BLISTERWOOD_LOGS("Blisterwood logs", 62, 96, ItemID.BLISTERWOOD_LOGS), - MAGIC_LOGS("Magic logs", 75, 303.8f, ItemID.MAGIC_LOGS), - REDWOOD_LOGS("Redwood logs", 90, 350, ItemID.REDWOOD_LOGS), + LOGS(ItemID.LOGS, 1, 40), + ACHEY_TREE_LOGS(ItemID.ACHEY_TREE_LOGS, 1, 40), + OAK_LOGS(ItemID.OAK_LOGS, 15, 60), + WILLOW_LOGS(ItemID.WILLOW_LOGS, 30, 90), + TEAK_LOGS(ItemID.TEAK_LOGS, 35, 105), + ARCTIC_PINE_LOGS(ItemID.ARCTIC_PINE_LOGS, 42, 125), + MAPLE_LOGS(ItemID.MAPLE_LOGS, 45, 135), + MAHOGANY_LOGS(ItemID.MAHOGANY_LOGS, 50, 157.5f), + YEW_LOGS(ItemID.YEW_LOGS, 60, 202.5f), + BLISTERWOOD_LOGS(ItemID.BLISTERWOOD_LOGS, 62, 96), + MAGIC_LOGS(ItemID.MAGIC_LOGS, 75, 303.8f), + REDWOOD_LOGS(ItemID.REDWOOD_LOGS, 90, 350), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java index c414ac2d77..7f42218de2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FishingAction.java @@ -30,46 +30,45 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum FishingAction implements SkillAction +public enum FishingAction implements ItemSkillAction { - RAW_SHRIMPS("Raw shrimps", 1, 10, ItemID.RAW_SHRIMPS), - RAW_SARDINE("Raw sardine", 5, 20, ItemID.RAW_SARDINE), - RAW_KARAMBWANJI("Raw karambwanji", 5, 5, ItemID.RAW_KARAMBWANJI), - RAW_GUPPY("Raw guppy", 7, 8, ItemID.RAW_GUPPY), - RAW_HERRING("Raw herring", 10, 30, ItemID.RAW_HERRING), - RAW_ANCHOVIES("Raw anchovies", 15, 40, ItemID.RAW_ANCHOVIES), - RAW_MACKEREL("Raw mackerel", 16, 20, ItemID.RAW_MACKEREL), - RAW_TROUT("Raw trout", 20, 50, ItemID.RAW_TROUT), - RAW_CAVEFISH("Raw cavefish", 20, 16, ItemID.RAW_CAVEFISH), - RAW_COD("Raw cod", 23, 45, ItemID.RAW_COD), - RAW_PIKE("Raw pike", 25, 60, ItemID.RAW_PIKE), - RAW_SLIMY_EEL("Raw slimy eel", 28, 65, ItemID.RAW_SLIMY_EEL), - RAW_SALMON("Raw salmon", 30, 70, ItemID.RAW_SALMON), - RAW_TETRA("Raw tetra", 33, 24, ItemID.RAW_TETRA), - RAW_TUNA("Raw tuna", 35, 80, ItemID.RAW_TUNA), - RAW_RAINBOW_FISH("Raw rainbow fish", 38, 80, ItemID.RAW_RAINBOW_FISH), - RAW_CAVE_EEL("Raw cave eel", 38, 80, ItemID.RAW_CAVE_EEL), - RAW_LOBSTER("Raw lobster", 40, 90, ItemID.RAW_LOBSTER), - RAW_BASS("Raw bass", 46, 100, ItemID.RAW_BASS), - RAW_CATFISH("Raw catfish", 46, 33, ItemID.RAW_CATFISH), - LEAPING_TROUT("Leaping trout", 48, 50, ItemID.LEAPING_TROUT), - RAW_SWORDFISH("Raw swordfish", 50, 100, ItemID.RAW_SWORDFISH), - LEAPING_SALMON("Leaping salmon", 58, 70, ItemID.LEAPING_SALMON), - RAW_MONKFISH("Raw monkfish", 62, 120, ItemID.RAW_MONKFISH), - RAW_KARAMBWAN("Raw karambwan", 65, 50, ItemID.RAW_KARAMBWAN), - LEAPING_STURGEON("Leaping sturgeon", 70, 80, ItemID.LEAPING_STURGEON), - RAW_SHARK("Raw shark", 76, 110, ItemID.RAW_SHARK), - RAW_SEA_TURTLE("Raw sea turtle", 79, 38, ItemID.RAW_SEA_TURTLE), - INFERNAL_EEL("Infernal eel", 80, 95, ItemID.INFERNAL_EEL), - RAW_MANTA_RAY("Raw manta ray", 81, 46, ItemID.RAW_MANTA_RAY), - RAW_ANGLERFISH("Raw anglerfish", 82, 120, ItemID.RAW_ANGLERFISH), - MINNOW("Minnow", 82, 26.5f, ItemID.MINNOW), - RAW_DARK_CRAB("Raw dark crab", 85, 130, ItemID.RAW_DARK_CRAB), - SACRED_EEL("Sacred eel", 87, 105, ItemID.SACRED_EEL), + RAW_SHRIMPS(ItemID.RAW_SHRIMPS, 1, 10), + RAW_SARDINE(ItemID.RAW_SARDINE, 5, 20), + RAW_KARAMBWANJI(ItemID.RAW_KARAMBWANJI, 5, 5), + RAW_GUPPY(ItemID.RAW_GUPPY, 7, 8), + RAW_HERRING(ItemID.RAW_HERRING, 10, 30), + RAW_ANCHOVIES(ItemID.RAW_ANCHOVIES, 15, 40), + RAW_MACKEREL(ItemID.RAW_MACKEREL, 16, 20), + RAW_TROUT(ItemID.RAW_TROUT, 20, 50), + RAW_CAVEFISH(ItemID.RAW_CAVEFISH, 20, 16), + RAW_COD(ItemID.RAW_COD, 23, 45), + RAW_PIKE(ItemID.RAW_PIKE, 25, 60), + RAW_SLIMY_EEL(ItemID.RAW_SLIMY_EEL, 28, 65), + RAW_SALMON(ItemID.RAW_SALMON, 30, 70), + RAW_TETRA(ItemID.RAW_TETRA, 33, 24), + RAW_TUNA(ItemID.RAW_TUNA, 35, 80), + RAW_RAINBOW_FISH(ItemID.RAW_RAINBOW_FISH, 38, 80), + RAW_CAVE_EEL(ItemID.RAW_CAVE_EEL, 38, 80), + RAW_LOBSTER(ItemID.RAW_LOBSTER, 40, 90), + RAW_BASS(ItemID.RAW_BASS, 46, 100), + RAW_CATFISH(ItemID.RAW_CATFISH, 46, 33), + LEAPING_TROUT(ItemID.LEAPING_TROUT, 48, 50), + RAW_SWORDFISH(ItemID.RAW_SWORDFISH, 50, 100), + LEAPING_SALMON(ItemID.LEAPING_SALMON, 58, 70), + RAW_MONKFISH(ItemID.RAW_MONKFISH, 62, 120), + RAW_KARAMBWAN(ItemID.RAW_KARAMBWAN, 65, 50), + LEAPING_STURGEON(ItemID.LEAPING_STURGEON, 70, 80), + RAW_SHARK(ItemID.RAW_SHARK, 76, 110), + RAW_SEA_TURTLE(ItemID.RAW_SEA_TURTLE, 79, 38), + INFERNAL_EEL(ItemID.INFERNAL_EEL, 80, 95), + RAW_MANTA_RAY(ItemID.RAW_MANTA_RAY, 81, 46), + RAW_ANGLERFISH(ItemID.RAW_ANGLERFISH, 82, 120), + MINNOW(ItemID.MINNOW, 82, 26.5f), + RAW_DARK_CRAB(ItemID.RAW_DARK_CRAB, 85, 130), + SACRED_EEL(ItemID.SACRED_EEL, 87, 105), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java index 7da07f6817..c869ed06a2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/FletchingAction.java @@ -30,110 +30,109 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum FletchingAction implements SkillAction +public enum FletchingAction implements ItemSkillAction { - ARROW_SHAFT("Arrow shaft", 1, 0.33f, ItemID.ARROW_SHAFT), - HEADLESS_ARROW("Headless arrow", 1, 1, ItemID.HEADLESS_ARROW), - BRONZE_ARROW("Bronze arrow", 1, 1.3f, ItemID.BRONZE_ARROW), - OGRE_ARROW("Ogre arrow", 5, 1, ItemID.OGRE_ARROW), - SHORTBOW_U("Shortbow (u)", 5, 5, ItemID.SHORTBOW_U), - SHORTBOW("Shortbow", 5, 5, ItemID.SHORTBOW), - BRONZE_BOLTS("Bronze bolts", 9, 0.5f, ItemID.BRONZE_BOLTS), - WOODEN_STOCK("Wooden stock", 9, 6, ItemID.WOODEN_STOCK), - BRONZE_CROSSBOW_U("Bronze crossbow (u)", 9, 12, ItemID.BRONZE_CROSSBOW_U), - BRONZE_CROSSBOW("Bronze crossbow", 9, 6, ItemID.BRONZE_CROSSBOW), - BRONZE_DART("Bronze dart", 10, 1.8f, ItemID.BRONZE_DART), - LONGBOW("Longbow", 10, 10, ItemID.LONGBOW), - LONGBOW_U("Longbow (u)", 10, 10, ItemID.LONGBOW_U), - OPAL_BOLTS("Opal bolts", 11, 1.6f, ItemID.OPAL_BOLTS), - IRON_ARROW("Iron arrow", 15, 2.5f, ItemID.IRON_ARROW), - OAK_SHORTBOW_U("Oak shortbow (u)", 20, 16.5f, ItemID.OAK_SHORTBOW_U), - OAK_SHORTBOW("Oak shortbow", 20, 16.5f, ItemID.OAK_SHORTBOW), - IRON_DART("Iron dart", 22, 3.8f, ItemID.IRON_DART), - OAK_STOCK("Oak stock", 24, 16, ItemID.OAK_STOCK), - BLURITE_CROSSBOW_U("Blurite crossbow (u)", 24, 32, ItemID.BLURITE_CROSSBOW_U), - BLURITE_CROSSBOW("Blurite crossbow", 24, 16, ItemID.BLURITE_CROSSBOW), - OAK_LONGBOW_U("Oak longbow (u)", 25, 25, ItemID.OAK_LONGBOW_U), - OAK_LONGBOW("Oak longbow", 25, 25, ItemID.OAK_LONGBOW), - OAK_SHIELD("Oak shield", 27, 50, ItemID.OAK_SHIELD), - STEEL_ARROW("Steel arrow", 30, 5, ItemID.STEEL_ARROW), - KEBBIT_BOLTS("Kebbit bolts", 32, 1, ItemID.KEBBIT_BOLTS), - WILLOW_SHORTBOW_U("Willow shortbow (u)", 35, 33.3f, ItemID.WILLOW_SHORTBOW_U), - WILLOW_SHORTBOW("Willow shortbow", 35, 33.3f, ItemID.WILLOW_SHORTBOW), - STEEL_DART("Steel dart", 37, 7.5f, ItemID.STEEL_DART), - IRON_BOLTS("Iron bolts", 39, 1.5f, ItemID.IRON_BOLTS), - WILLOW_STOCK("Willow stock", 39, 22, ItemID.WILLOW_STOCK), - IRON_CROSSBOW_U("Iron crossbow (u)", 39, 44, ItemID.IRON_CROSSBOW_U), - IRON_CROSSBOW("Iron crossbow", 39, 22, ItemID.IRON_CROSSBOW), - WILLOW_LONGBOW_U("Willow longbow (u)", 40, 41.5f, ItemID.WILLOW_LONGBOW_U), - WILLOW_LONGBOW("Willow longbow", 40, 41.5f, ItemID.WILLOW_LONGBOW), - BATTLESTAFF("Battlestaff", 40, 80, ItemID.BATTLESTAFF), - PEARL_BOLTS("Pearl bolts", 41, 3.2f, ItemID.PEARL_BOLTS), - WILLOW_SHIELD("Willow shield", 42, 83, ItemID.WILLOW_SHIELD), - LONG_KEBBIT_BOLTS("Long kebbit bolts", 42, 1.3f, ItemID.LONG_KEBBIT_BOLTS), - SILVER_BOLTS("Silver bolts", 43, 2.5f, ItemID.SILVER_BOLTS), - MITHRIL_ARROW("Mithril arrow", 45, 7.5f, ItemID.MITHRIL_ARROW), - STEEL_BOLTS("Steel bolts", 46, 3.5f, ItemID.STEEL_BOLTS), - TEAK_STOCK("Teak stock", 46, 27, ItemID.TEAK_STOCK), - STEEL_CROSSBOW_U("Steel crossbow (u)", 46, 54, ItemID.STEEL_CROSSBOW_U), - STEEL_CROSSBOW("Steel crossbow", 46, 27, ItemID.STEEL_CROSSBOW), - MAPLE_SHORTBOW_U("Maple shortbow (u)", 50, 50, ItemID.MAPLE_SHORTBOW_U), - MAPLE_SHORTBOW("Maple shortbow", 50, 50, ItemID.MAPLE_SHORTBOW), - BARBED_BOLTS("Barbed bolts", 51, 9.5f, ItemID.BARBED_BOLTS), - MITHRIL_DART("Mithril dart", 52, 11.2f, ItemID.MITHRIL_DART), - BROAD_ARROWS("Broad arrows", 52, 10, ItemID.BROAD_ARROWS), - TOXIC_BLOWPIPE("Toxic blowpipe", 53, 120, ItemID.TOXIC_BLOWPIPE), - MITH_CROSSBOW("Mith crossbow", 54, 32, ItemID.MITHRIL_CROSSBOW), - MAPLE_STOCK("Maple stock", 54, 32, ItemID.MAPLE_STOCK), - MITHRIL_BOLTS("Mithril bolts", 54, 5, ItemID.MITHRIL_BOLTS), - MITHRIL_CROSSBOW_U("Mithril crossbow (u)", 54, 64f, ItemID.MITHRIL_CROSSBOW_U), - MAPLE_LONGBOW_U("Maple longbow (u)", 55, 58.3f, ItemID.MAPLE_LONGBOW_U), - BROAD_BOLTS("Broad bolts", 55, 3, ItemID.BROAD_BOLTS), - MAPLE_LONGBOW("Maple longbow", 55, 58, ItemID.MAPLE_LONGBOW), - SAPPHIRE_BOLTS("Sapphire bolts", 56, 4.7f, ItemID.SAPPHIRE_BOLTS), - MAPLE_SHIELD("Maple shield", 57, 116.5f, ItemID.MAPLE_SHIELD), - EMERALD_BOLTS("Emerald bolts", 58, 5.5f, ItemID.EMERALD_BOLTS), - ADAMANT_ARROW("Adamant arrow", 60, 10, ItemID.ADAMANT_ARROW), - ADAMANT_BOLTS("Adamant bolts", 61, 7, ItemID.ADAMANT_BOLTS), - MAHOGANY_STOCK("Mahogany stock", 61, 41, ItemID.MAHOGANY_STOCK), - ADAMANT_CROSSBOW_U("Adamant crossbow (u)", 61, 82, ItemID.ADAMANT_CROSSBOW_U), - ADAMANT_CROSSBOW("Adamant crossbow", 61, 41, ItemID.ADAMANT_CROSSBOW), - RUBY_BOLTS("Ruby bolts", 63, 6.3f, ItemID.RUBY_BOLTS), - DIAMOND_BOLTS("Diamond bolts", 65, 7, ItemID.DIAMOND_BOLTS), - YEW_SHORTBOW("Yew shortbow", 65, 67.5f, ItemID.YEW_SHORTBOW), - YEW_SHORTBOW_U("Yew shortbow (u)", 65, 67.5f, ItemID.YEW_SHORTBOW_U), - ADAMANT_DART("Adamant dart", 67, 15, ItemID.ADAMANT_DART), - RUNITE_CROSSBOW_U("Runite crossbow (u)", 69, 100, ItemID.RUNITE_CROSSBOW_U), - RUNE_CROSSBOW("Rune crossbow", 69, 50, ItemID.RUNE_CROSSBOW), - YEW_STOCK("Yew stock", 69, 50, ItemID.YEW_STOCK), - RUNITE_BOLTS("Runite bolts", 69, 10, ItemID.RUNITE_BOLTS), - YEW_LONGBOW("Yew longbow", 70, 75, ItemID.YEW_LONGBOW), - YEW_LONGBOW_U("Yew longbow (u)", 70, 75, ItemID.YEW_LONGBOW_U), - DRAGONSTONE_BOLTS("Dragonstone bolts", 71, 8.2f, ItemID.DRAGONSTONE_BOLTS), - YEW_SHIELD("Yew shield", 72, 150, ItemID.YEW_SHIELD), - ONYX_BOLTS("Onyx bolts", 73, 9.4f, ItemID.ONYX_BOLTS), - RUNE_ARROW("Rune arrow", 75, 12.5f, ItemID.RUNE_ARROW), - AMETHYST_BROAD_BOLTS("Amethyst broad bolts", 76, 10.6f, ItemID.AMETHYST_BROAD_BOLTS), - MAGIC_STOCK("Magic stock", 78, 70, ItemID.MAGIC_STOCK), - DRAGON_CROSSBOW_U("Dragon crossbow (u)", 78, 135, ItemID.DRAGON_CROSSBOW_U), - DRAGON_CROSSBOW("Dragon crossbow", 78, 70, ItemID.DRAGON_CROSSBOW), - MAGIC_SHORTBOW("Magic shortbow", 80, 83.3f, ItemID.MAGIC_SHORTBOW), - MAGIC_SHORTBOW_U("Magic shortbow (u)", 80, 83.3f, ItemID.MAGIC_SHORTBOW_U), - RUNE_DART("Rune dart", 81, 18.8f, ItemID.RUNE_DART), - AMETHYST_ARROW("Amethyst arrow", 82, 13.5f, ItemID.AMETHYST_ARROW), - DRAGON_BOLTS("Dragon bolts", 84, 12, ItemID.DRAGON_BOLTS_UNF), - AMETHYST_JAVELIN("Amethyst javelin", 84, 13.5f, ItemID.AMETHYST_JAVELIN), - MAGIC_LONGBOW("Magic longbow", 85, 91.5f, ItemID.MAGIC_LONGBOW), - MAGIC_LONGBOW_U("Magic longbow (u)", 85, 91.5f, ItemID.MAGIC_LONGBOW_U), - MAGIC_SHIELD("Magic shield", 87, 183, ItemID.MAGIC_SHIELD), - AMETHYST_DART("Amethyst dart", 90, 21, ItemID.AMETHYST_DART), - DRAGON_ARROW("Dragon arrow", 90, 15, ItemID.DRAGON_ARROW), - REDWOOD_SHIELD("Redwood shield", 92, 216, ItemID.REDWOOD_SHIELD), - DRAGON_DART("Dragon dart", 95, 25, ItemID.DRAGON_DART), + ARROW_SHAFT(ItemID.ARROW_SHAFT, 1, 0.33f), + HEADLESS_ARROW(ItemID.HEADLESS_ARROW, 1, 1), + BRONZE_ARROW(ItemID.BRONZE_ARROW, 1, 1.3f), + OGRE_ARROW(ItemID.OGRE_ARROW, 5, 1), + SHORTBOW_U(ItemID.SHORTBOW_U, 5, 5), + SHORTBOW(ItemID.SHORTBOW, 5, 5), + BRONZE_BOLTS(ItemID.BRONZE_BOLTS, 9, 0.5f), + WOODEN_STOCK(ItemID.WOODEN_STOCK, 9, 6), + BRONZE_CROSSBOW_U(ItemID.BRONZE_CROSSBOW_U, 9, 12), + BRONZE_CROSSBOW(ItemID.BRONZE_CROSSBOW, 9, 6), + BRONZE_DART(ItemID.BRONZE_DART, 10, 1.8f), + LONGBOW(ItemID.LONGBOW, 10, 10), + LONGBOW_U(ItemID.LONGBOW_U, 10, 10), + OPAL_BOLTS(ItemID.OPAL_BOLTS, 11, 1.6f), + IRON_ARROW(ItemID.IRON_ARROW, 15, 2.5f), + OAK_SHORTBOW_U(ItemID.OAK_SHORTBOW_U, 20, 16.5f), + OAK_SHORTBOW(ItemID.OAK_SHORTBOW, 20, 16.5f), + IRON_DART(ItemID.IRON_DART, 22, 3.8f), + OAK_STOCK(ItemID.OAK_STOCK, 24, 16), + BLURITE_CROSSBOW_U(ItemID.BLURITE_CROSSBOW_U, 24, 32), + BLURITE_CROSSBOW(ItemID.BLURITE_CROSSBOW, 24, 16), + OAK_LONGBOW_U(ItemID.OAK_LONGBOW_U, 25, 25), + OAK_LONGBOW(ItemID.OAK_LONGBOW, 25, 25), + OAK_SHIELD(ItemID.OAK_SHIELD, 27, 50), + STEEL_ARROW(ItemID.STEEL_ARROW, 30, 5), + KEBBIT_BOLTS(ItemID.KEBBIT_BOLTS, 32, 1), + WILLOW_SHORTBOW_U(ItemID.WILLOW_SHORTBOW_U, 35, 33.3f), + WILLOW_SHORTBOW(ItemID.WILLOW_SHORTBOW, 35, 33.3f), + STEEL_DART(ItemID.STEEL_DART, 37, 7.5f), + IRON_BOLTS(ItemID.IRON_BOLTS, 39, 1.5f), + WILLOW_STOCK(ItemID.WILLOW_STOCK, 39, 22), + IRON_CROSSBOW_U(ItemID.IRON_CROSSBOW_U, 39, 44), + IRON_CROSSBOW(ItemID.IRON_CROSSBOW, 39, 22), + WILLOW_LONGBOW_U(ItemID.WILLOW_LONGBOW_U, 40, 41.5f), + WILLOW_LONGBOW(ItemID.WILLOW_LONGBOW, 40, 41.5f), + BATTLESTAFF(ItemID.BATTLESTAFF, 40, 80), + PEARL_BOLTS(ItemID.PEARL_BOLTS, 41, 3.2f), + WILLOW_SHIELD(ItemID.WILLOW_SHIELD, 42, 83), + LONG_KEBBIT_BOLTS(ItemID.LONG_KEBBIT_BOLTS, 42, 1.3f), + SILVER_BOLTS(ItemID.SILVER_BOLTS, 43, 2.5f), + MITHRIL_ARROW(ItemID.MITHRIL_ARROW, 45, 7.5f), + STEEL_BOLTS(ItemID.STEEL_BOLTS, 46, 3.5f), + TEAK_STOCK(ItemID.TEAK_STOCK, 46, 27), + STEEL_CROSSBOW_U(ItemID.STEEL_CROSSBOW_U, 46, 54), + STEEL_CROSSBOW(ItemID.STEEL_CROSSBOW, 46, 27), + MAPLE_SHORTBOW_U(ItemID.MAPLE_SHORTBOW_U, 50, 50), + MAPLE_SHORTBOW(ItemID.MAPLE_SHORTBOW, 50, 50), + BARBED_BOLTS(ItemID.BARBED_BOLTS, 51, 9.5f), + MITHRIL_DART(ItemID.MITHRIL_DART, 52, 11.2f), + BROAD_ARROWS(ItemID.BROAD_ARROWS, 52, 10), + TOXIC_BLOWPIPE(ItemID.TOXIC_BLOWPIPE, 53, 120), + MITH_CROSSBOW(ItemID.MITHRIL_CROSSBOW, 54, 32), + MAPLE_STOCK(ItemID.MAPLE_STOCK, 54, 32), + MITHRIL_BOLTS(ItemID.MITHRIL_BOLTS, 54, 5), + MITHRIL_CROSSBOW_U(ItemID.MITHRIL_CROSSBOW_U, 54, 64), + MAPLE_LONGBOW_U(ItemID.MAPLE_LONGBOW_U, 55, 58.3f), + BROAD_BOLTS(ItemID.BROAD_BOLTS, 55, 3), + MAPLE_LONGBOW(ItemID.MAPLE_LONGBOW, 55, 58), + SAPPHIRE_BOLTS(ItemID.SAPPHIRE_BOLTS, 56, 4.7f), + MAPLE_SHIELD(ItemID.MAPLE_SHIELD, 57, 116.5f), + EMERALD_BOLTS(ItemID.EMERALD_BOLTS, 58, 5.5f), + ADAMANT_ARROW(ItemID.ADAMANT_ARROW, 60, 10), + ADAMANT_BOLTS(ItemID.ADAMANT_BOLTS, 61, 7), + MAHOGANY_STOCK(ItemID.MAHOGANY_STOCK, 61, 41), + ADAMANT_CROSSBOW_U(ItemID.ADAMANT_CROSSBOW_U, 61, 82), + ADAMANT_CROSSBOW(ItemID.ADAMANT_CROSSBOW, 61, 41), + RUBY_BOLTS(ItemID.RUBY_BOLTS, 63, 6.3f), + DIAMOND_BOLTS(ItemID.DIAMOND_BOLTS, 65, 7), + YEW_SHORTBOW(ItemID.YEW_SHORTBOW, 65, 67.5f), + YEW_SHORTBOW_U(ItemID.YEW_SHORTBOW_U, 65, 67.5f), + ADAMANT_DART(ItemID.ADAMANT_DART, 67, 15), + RUNITE_CROSSBOW_U(ItemID.RUNITE_CROSSBOW_U, 69, 100), + RUNE_CROSSBOW(ItemID.RUNE_CROSSBOW, 69, 50), + YEW_STOCK(ItemID.YEW_STOCK, 69, 50), + RUNITE_BOLTS(ItemID.RUNITE_BOLTS, 69, 10), + YEW_LONGBOW(ItemID.YEW_LONGBOW, 70, 75), + YEW_LONGBOW_U(ItemID.YEW_LONGBOW_U, 70, 75), + DRAGONSTONE_BOLTS(ItemID.DRAGONSTONE_BOLTS, 71, 8.2f), + YEW_SHIELD(ItemID.YEW_SHIELD, 72, 150), + ONYX_BOLTS(ItemID.ONYX_BOLTS, 73, 9.4f), + RUNE_ARROW(ItemID.RUNE_ARROW, 75, 12.5f), + AMETHYST_BROAD_BOLTS(ItemID.AMETHYST_BROAD_BOLTS, 76, 10.6f), + MAGIC_STOCK(ItemID.MAGIC_STOCK, 78, 70), + DRAGON_CROSSBOW_U(ItemID.DRAGON_CROSSBOW_U, 78, 135), + DRAGON_CROSSBOW(ItemID.DRAGON_CROSSBOW, 78, 70), + MAGIC_SHORTBOW(ItemID.MAGIC_SHORTBOW, 80, 83.3f), + MAGIC_SHORTBOW_U(ItemID.MAGIC_SHORTBOW_U, 80, 83.3f), + RUNE_DART(ItemID.RUNE_DART, 81, 18.8f), + AMETHYST_ARROW(ItemID.AMETHYST_ARROW, 82, 13.5f), + DRAGON_BOLTS(ItemID.DRAGON_BOLTS_UNF, 84, 12), + AMETHYST_JAVELIN(ItemID.AMETHYST_JAVELIN, 84, 13.5f), + MAGIC_LONGBOW(ItemID.MAGIC_LONGBOW, 85, 91.5f), + MAGIC_LONGBOW_U(ItemID.MAGIC_LONGBOW_U, 85, 91.5f), + MAGIC_SHIELD(ItemID.MAGIC_SHIELD, 87, 183), + AMETHYST_DART(ItemID.AMETHYST_DART, 90, 21), + DRAGON_ARROW(ItemID.DRAGON_ARROW, 90, 15), + REDWOOD_SHIELD(ItemID.REDWOOD_SHIELD, 92, 216), + DRAGON_DART(ItemID.DRAGON_DART, 95, 25), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java index fc2d5b6c65..805bea57f0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HerbloreAction.java @@ -30,84 +30,83 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum HerbloreAction implements SkillAction +public enum HerbloreAction implements ItemSkillAction { - ATTACK_POTION_3("Attack potion (3)", 3, 25, ItemID.ATTACK_POTION3), - GUAM_LEAF("Guam leaf", 3, 2.5f, ItemID.GUAM_LEAF), - MARRENTILL("Marrentill", 5, 3.8f, ItemID.MARRENTILL), - ANTIPOISON_3("Antipoison (3)", 5, 37.5f, ItemID.ANTIPOISON3), - RELICYMS_BALM_3("Relicym's balm (3)", 8, 40, ItemID.RELICYMS_BALM3), - TARROMIN("Tarromin", 11, 5, ItemID.TARROMIN), - STRENGTH_POTION_3("Strength potion (3)", 12, 50, ItemID.STRENGTH_POTION3), - SERUM_207_3("Serum 207 (3)", 15, 50, ItemID.SERUM_207_3), - GUTHIX_REST_3("Guthix rest (3)", 18, 59, ItemID.GUTHIX_REST3), - GUAM_TAR("Guam tar", 19, 30, ItemID.GUAM_TAR), - HARRALANDER("Harralander", 20, 6.3f, ItemID.HARRALANDER), - COMPOST_POTION_3("Compost potion (3)", 22, 60, ItemID.COMPOST_POTION3), - RESTORE_POTION_3("Restore potion (3)", 22, 62.5f, ItemID.RESTORE_POTION3), - RANARR_WEED("Ranarr weed", 25, 7.5f, ItemID.RANARR_WEED), - ENERGY_POTION_3("Energy potion (3)", 26, 67.5f, ItemID.ENERGY_POTION3), - TOADFLAX("Toadflax", 30, 8, ItemID.TOADFLAX), - DEFENCE_POTION_3("Defence potion (3)", 30, 75, ItemID.DEFENCE_POTION3), - MARRENTILL_TAR("Marrentill tar", 31, 42.5f, ItemID.MARRENTILL_TAR), - AGILITY_POTION_3("Agility potion (3)", 34, 80, ItemID.AGILITY_POTION3), - COMBAT_POTION_3("Combat potion (3)", 36, 84, ItemID.COMBAT_POTION3), - PRAYER_POTION_3("Prayer potion (3)", 38, 87.5f, ItemID.PRAYER_POTION3), - TARROMIN_TAR("Tarromin tar", 39, 55, ItemID.TARROMIN_TAR), - IRIT_LEAF("Irit leaf", 40, 8.8f, ItemID.IRIT_LEAF), - HARRALANDER_TAR("Harralander tar", 44, 72.5f, ItemID.HARRALANDER_TAR), - SUPER_ATTACK_3("Super attack (3)", 45, 100, ItemID.SUPER_ATTACK3), - SUPERANTIPOISON_3("Superantipoison (3)", 48, 106.3f, ItemID.SUPERANTIPOISON3), - AVANTOE("Avantoe", 48, 10, ItemID.AVANTOE), - FISHING_POTION_3("Fishing potion (3)", 50, 112.5f, ItemID.FISHING_POTION3), - SUPER_ENERGY_3("Super energy (3)", 52, 117.5f, ItemID.SUPER_ENERGY3), - HUNTER_POTION_3("Hunter potion (3)", 53, 120, ItemID.HUNTER_POTION3), - KWUARM("Kwuarm", 54, 11.3f, ItemID.KWUARM), - SUPER_STRENGTH_3("Super strength (3)", 55, 125, ItemID.SUPER_STRENGTH3), - MAGIC_ESSENCE_POTION_3("Magic essence potion (3)", 57, 130, ItemID.MAGIC_ESSENCE3), - SNAPDRAGON("Snapdragon", 59, 11.8f, ItemID.SNAPDRAGON), - WEAPON_POISON("Weapon poison", 60, 137.5f, ItemID.WEAPON_POISON), - SUPER_RESTORE_3("Super restore (3)", 63, 142.5f, ItemID.SUPER_RESTORE3), - CADANTINE("Cadantine", 65, 12.5f, ItemID.CADANTINE), - SANFEW_SERUM_3("Sanfew serum (3)", 65, 160, ItemID.SANFEW_SERUM3), - SUPER_DEFENCE_3("Super defence (3)", 66, 150, ItemID.SUPER_DEFENCE3), - LANTADYME("Lantadyme", 67, 13.1f, ItemID.LANTADYME), - ANTIDOTE_PLUS_3("Antidote+ (3)", 68, 155, ItemID.ANTIDOTE3), - ANTIFIRE_POTION_3("Antifire potion (3)", 69, 157.5f, ItemID.ANTIFIRE_POTION3), - DIVINE_SUPER_ATTACK_POTION_4("Divine super attack potion(4)", 70, 2, ItemID.DIVINE_SUPER_ATTACK_POTION4), - DIVINE_SUPER_DEFENCE_POTION_4("Divine super defence potion(4)", 70, 2, ItemID.DIVINE_SUPER_DEFENCE_POTION4), - DIVINE_SUPER_STRENGTH_POTION_4("Divine super strength potion(4)", 70, 2, ItemID.DIVINE_SUPER_STRENGTH_POTION4), - DWARF_WEED("Dwarf weed", 70, 13.8f, ItemID.DWARF_WEED), - RANGING_POTION_3("Ranging potion (3)", 72, 162.5f, ItemID.RANGING_POTION3), - WEAPON_POISON_PLUS("Weapon poison (+)", 73, 165, ItemID.WEAPON_POISON_5937), - DIVINE_RANGING_POTION_4("Divine ranging potion(4)", 74, 2, ItemID.DIVINE_RANGING_POTION4), - TORSTOL("Torstol", 75, 15, ItemID.TORSTOL), - MAGIC_POTION_3("Magic potion (3)", 76, 172.5f, ItemID.MAGIC_POTION3), - STAMINA_POTION_3("Stamina potion (3)", 77, 76.5f, ItemID.STAMINA_POTION3), - STAMINA_POTION_4("Stamina potion (4)", 77, 102, ItemID.STAMINA_POTION4), - DIVINE_MAGIC_POTION_4("Divine magic potion(4)", 78, 2, ItemID.DIVINE_MAGIC_POTION4), - ZAMORAK_BREW_3("Zamorak brew (3)", 78, 175, ItemID.ZAMORAK_BREW3), - ANTIDOTE_PLUS_PLUS_3("Antidote++ (3)", 79, 177.5f, ItemID.ANTIDOTE3_5954), - BASTION_POTION_3("Bastion potion (3)", 80, 155, ItemID.BASTION_POTION3), - BATTLEMAGE_POTION_3("Battlemage potion (3)", 80, 155, ItemID.BATTLEMAGE_POTION3), - SARADOMIN_BREW_3("Saradomin brew (3)", 81, 180, ItemID.SARADOMIN_BREW3), - WEAPON_POISON_PLUS_PLUS("Weapon poison (++)", 82, 190, ItemID.WEAPON_POISON_5940), - EXTENDED_ANTIFIRE_3("Extended antifire (3)", 84, 82.5f, ItemID.EXTENDED_ANTIFIRE3), - EXTENDED_ANTIFIRE_4("Extended antifire (4)", 84, 110, ItemID.EXTENDED_ANTIFIRE4), - DIVINE_BASTION_POTION_4("Divine bastion potion(4)", 86, 2, ItemID.DIVINE_BASTION_POTION4), - DIVINE_BATTLEMAGE_POTION_4("Divine battlemage potion(4)", 86, 2, ItemID.DIVINE_BATTLEMAGE_POTION4), - ANTIVENOM_3("Anti-venom(3)", 87, 90, ItemID.ANTIVENOM3), - ANTIVENOM_4("Anti-venom(4)", 87, 120, ItemID.ANTIVENOM4), - SUPER_COMBAT_POTION_4("Super combat potion(4)", 90, 150, ItemID.SUPER_COMBAT_POTION4), - SUPER_ANTIFIRE_4("Super antifire (4)", 92, 130, ItemID.SUPER_ANTIFIRE_POTION4), - ANTIVENOM_PLUS_4("Anti-venom+(4)", 94, 125, ItemID.ANTIVENOM4_12913), - DIVINE_SUPER_COMBAT_POTION_4("Divine super combat potion(4)", 97, 2, ItemID.DIVINE_SUPER_COMBAT_POTION4), - EXTENDED_SUPER_ANTIFIRE_3("Extended super antifire (3)", 98, 120, ItemID.SUPER_ANTIFIRE_POTION3), - EXTENDED_SUPER_ANTIFIRE_4("Extended super antifire (4)", 98, 160, ItemID.SUPER_ANTIFIRE_POTION4), + ATTACK_POTION_3(ItemID.ATTACK_POTION3, 3, 25), + GUAM_LEAF(ItemID.GUAM_LEAF, 3, 2.5f), + MARRENTILL(ItemID.MARRENTILL, 5, 3.8f), + ANTIPOISON_3(ItemID.ANTIPOISON3, 5, 37.5f), + RELICYMS_BALM_3(ItemID.RELICYMS_BALM3, 8, 40), + TARROMIN(ItemID.TARROMIN, 11, 5), + STRENGTH_POTION_3(ItemID.STRENGTH_POTION3, 12, 50), + SERUM_207_3(ItemID.SERUM_207_3, 15, 50), + GUTHIX_REST_3(ItemID.GUTHIX_REST3, 18, 59), + GUAM_TAR(ItemID.GUAM_TAR, 19, 30), + HARRALANDER(ItemID.HARRALANDER, 20, 6.3f), + COMPOST_POTION_3(ItemID.COMPOST_POTION3, 22, 60), + RESTORE_POTION_3(ItemID.RESTORE_POTION3, 22, 62.5f), + RANARR_WEED(ItemID.RANARR_WEED, 25, 7.5f), + ENERGY_POTION_3(ItemID.ENERGY_POTION3, 26, 67.5f), + TOADFLAX(ItemID.TOADFLAX, 30, 8), + DEFENCE_POTION_3(ItemID.DEFENCE_POTION3, 30, 75), + MARRENTILL_TAR(ItemID.MARRENTILL_TAR, 31, 42.5f), + AGILITY_POTION_3(ItemID.AGILITY_POTION3, 34, 80), + COMBAT_POTION_3(ItemID.COMBAT_POTION3, 36, 84), + PRAYER_POTION_3(ItemID.PRAYER_POTION3, 38, 87.5f), + TARROMIN_TAR(ItemID.TARROMIN_TAR, 39, 55), + IRIT_LEAF(ItemID.IRIT_LEAF, 40, 8.8f), + HARRALANDER_TAR(ItemID.HARRALANDER_TAR, 44, 72.5f), + SUPER_ATTACK_3(ItemID.SUPER_ATTACK3, 45, 100), + SUPERANTIPOISON_3(ItemID.SUPERANTIPOISON3, 48, 106.3f), + AVANTOE(ItemID.AVANTOE, 48, 10), + FISHING_POTION_3(ItemID.FISHING_POTION3, 50, 112.5f), + SUPER_ENERGY_3(ItemID.SUPER_ENERGY3, 52, 117.5f), + HUNTER_POTION_3(ItemID.HUNTER_POTION3, 53, 120), + KWUARM(ItemID.KWUARM, 54, 11.3f), + SUPER_STRENGTH_3(ItemID.SUPER_STRENGTH3, 55, 125), + MAGIC_ESSENCE_POTION_3(ItemID.MAGIC_ESSENCE3, 57, 130), + SNAPDRAGON(ItemID.SNAPDRAGON, 59, 11.8f), + WEAPON_POISON(ItemID.WEAPON_POISON, 60, 137.5f), + SUPER_RESTORE_3(ItemID.SUPER_RESTORE3, 63, 142.5f), + CADANTINE(ItemID.CADANTINE, 65, 12.5f), + SANFEW_SERUM_3(ItemID.SANFEW_SERUM3, 65, 160), + SUPER_DEFENCE_3(ItemID.SUPER_DEFENCE3, 66, 150), + LANTADYME(ItemID.LANTADYME, 67, 13.1f), + ANTIDOTE_PLUS_3(ItemID.ANTIDOTE3, 68, 155), + ANTIFIRE_POTION_3(ItemID.ANTIFIRE_POTION3, 69, 157.5f), + DIVINE_SUPER_ATTACK_POTION_4(ItemID.DIVINE_SUPER_ATTACK_POTION4, 70, 2), + DIVINE_SUPER_DEFENCE_POTION_4(ItemID.DIVINE_SUPER_DEFENCE_POTION4, 70, 2), + DIVINE_SUPER_STRENGTH_POTION_4(ItemID.DIVINE_SUPER_STRENGTH_POTION4, 70, 2), + DWARF_WEED(ItemID.DWARF_WEED, 70, 13.8f), + RANGING_POTION_3(ItemID.RANGING_POTION3, 72, 162.5f), + WEAPON_POISON_PLUS(ItemID.WEAPON_POISON_5937, 73, 165), + DIVINE_RANGING_POTION_4(ItemID.DIVINE_RANGING_POTION4, 74, 2), + TORSTOL(ItemID.TORSTOL, 75, 15), + MAGIC_POTION_3(ItemID.MAGIC_POTION3, 76, 172.5f), + STAMINA_POTION_3(ItemID.STAMINA_POTION3, 77, 76.5f), + STAMINA_POTION_4(ItemID.STAMINA_POTION4, 77, 102), + DIVINE_MAGIC_POTION_4(ItemID.DIVINE_MAGIC_POTION4, 78, 2), + ZAMORAK_BREW_3(ItemID.ZAMORAK_BREW3, 78, 175), + ANTIDOTE_PLUS_PLUS_3(ItemID.ANTIDOTE3_5954, 79, 177.5f), + BASTION_POTION_3(ItemID.BASTION_POTION3, 80, 155), + BATTLEMAGE_POTION_3(ItemID.BATTLEMAGE_POTION3, 80, 155), + SARADOMIN_BREW_3(ItemID.SARADOMIN_BREW3, 81, 180), + WEAPON_POISON_PLUS_PLUS(ItemID.WEAPON_POISON_5940, 82, 190), + EXTENDED_ANTIFIRE_3(ItemID.EXTENDED_ANTIFIRE3, 84, 82.5f), + EXTENDED_ANTIFIRE_4(ItemID.EXTENDED_ANTIFIRE4, 84, 110), + DIVINE_BASTION_POTION_4(ItemID.DIVINE_BASTION_POTION4, 86, 2), + DIVINE_BATTLEMAGE_POTION_4(ItemID.DIVINE_BATTLEMAGE_POTION4, 86, 2), + ANTIVENOM_3(ItemID.ANTIVENOM3, 87, 90), + ANTIVENOM_4(ItemID.ANTIVENOM4, 87, 120), + SUPER_COMBAT_POTION_4(ItemID.SUPER_COMBAT_POTION4, 90, 150), + SUPER_ANTIFIRE_4(ItemID.SUPER_ANTIFIRE_POTION4, 92, 130), + ANTIVENOM_PLUS_4(ItemID.ANTIVENOM4_12913, 94, 125), + DIVINE_SUPER_COMBAT_POTION_4(ItemID.DIVINE_SUPER_COMBAT_POTION4, 97, 2), + EXTENDED_SUPER_ANTIFIRE_3(ItemID.SUPER_ANTIFIRE_POTION3, 98, 120), + EXTENDED_SUPER_ANTIFIRE_4(ItemID.SUPER_ANTIFIRE_POTION4, 98, 160), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java index 01ed388c80..644bcd2598 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/HunterAction.java @@ -30,7 +30,7 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum HunterAction implements SkillAction +public enum HunterAction implements NamedSkillAction { CRIMSON_SWIFT("Crimson Swift", 1, 34, ItemID.CRIMSON_SWIFT), POLAR_KEBBIT("Polar Kebbit", 1, 30, ItemID.KEBBIT), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ItemSkillAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ItemSkillAction.java new file mode 100644 index 0000000000..61a148749a --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ItemSkillAction.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import net.runelite.client.game.ItemManager; + +/** + * An object representing a single skill action involving an item which grants some xp. + */ +public interface ItemSkillAction extends SkillAction +{ + /** + * Gets the item ID used for this action. + * + * @return The item ID used for this action. + * @see net.runelite.api.ItemID + */ + int getItemId(); + + /** + * Gets the item icon ID for this skill action. + * + * @return The item icon ID of this skill action. + * @see net.runelite.api.ItemID + * @see #getItemId() + */ + @Override + default int getIcon() + { + return getItemId(); + } + + /** + * Gets the name of this skill action's associated item. + * + * @param itemManager An {@link ItemManager item manager} instance. + * @return The name of this skill action item. + * @see #getItemId() + */ + @Override + default String getName(final ItemManager itemManager) + { + return itemManager.getItemComposition(getItemId()).getName(); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java index bb3b5a20ff..e907ebb48a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MagicAction.java @@ -27,6 +27,7 @@ package net.runelite.client.plugins.skillcalculator.skills; import lombok.AllArgsConstructor; import lombok.Getter; import net.runelite.api.SpriteID; +import net.runelite.client.game.ItemManager; @AllArgsConstructor @Getter @@ -218,4 +219,10 @@ public enum MagicAction implements SkillAction private final int level; private final float xp; private final int sprite; + + @Override + public String getName(final ItemManager itemManager) + { + return getName(); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java index cdbcdb74cf..e16b0cd6c2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/MiningAction.java @@ -31,7 +31,7 @@ import net.runelite.api.NullItemID; @AllArgsConstructor @Getter -public enum MiningAction implements SkillAction +public enum MiningAction implements NamedSkillAction { CLAY("Clay", 1, 5, ItemID.CLAY), RUNE_ESSENCE("Rune essence", 1, 5, ItemID.RUNE_ESSENCE), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/NamedSkillAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/NamedSkillAction.java new file mode 100644 index 0000000000..b551474bc9 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/NamedSkillAction.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2021, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.skillcalculator.skills; + +import net.runelite.client.game.ItemManager; + +/** + * An object representing a single skill action which grants some xp, with an explicitly defined name field. + */ +public interface NamedSkillAction extends SkillAction +{ + /** + * Gets the name of this skill action, usually the item or object created, or the spell cast. + * + * @return The name of this skill action. + */ + String getName(); + + @Override + default String getName(ItemManager itemManager) + { + return getName(); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java index 0995027103..ba4c1fa48e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerAction.java @@ -30,71 +30,70 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum PrayerAction implements SkillAction +public enum PrayerAction implements ItemSkillAction { - ENSOULED_GOBLIN_HEAD("Ensouled goblin head", 1, 130, ItemID.ENSOULED_GOBLIN_HEAD, true), - ENSOULED_MONKEY_HEAD("Ensouled monkey head", 1, 182, ItemID.ENSOULED_MONKEY_HEAD, true), - ENSOULED_IMP_HEAD("Ensouled imp head", 1, 286, ItemID.ENSOULED_IMP_HEAD, true), - ENSOULED_MINOTAUR_HEAD("Ensouled minotaur head", 1, 364, ItemID.ENSOULED_MINOTAUR_HEAD, true), - ENSOULED_SCORPION_HEAD("Ensouled scorpion head", 1, 454, ItemID.ENSOULED_SCORPION_HEAD, true), - ENSOULED_BEAR_HEAD("Ensouled bear head", 1, 480, ItemID.ENSOULED_BEAR_HEAD, true), - ENSOULED_UNICORN_HEAD("Ensouled unicorn head", 1, 494, ItemID.ENSOULED_UNICORN_HEAD, true), - ENSOULED_DOG_HEAD("Ensouled dog head", 1, 520, ItemID.ENSOULED_DOG_HEAD, true), - ENSOULED_CHAOS_DRUID_HEAD("Ensouled chaos druid head", 1, 584, ItemID.ENSOULED_CHAOS_DRUID_HEAD, true), - ENSOULED_GIANT_HEAD("Ensouled giant head", 1, 650, ItemID.ENSOULED_GIANT_HEAD, true), - ENSOULED_OGRE_HEAD("Ensouled ogre head", 1, 716, ItemID.ENSOULED_OGRE_HEAD, true), - ENSOULED_ELF_HEAD("Ensouled elf head", 1, 754, ItemID.ENSOULED_ELF_HEAD, true), - ENSOULED_TROLL_HEAD("Ensouled troll head", 1, 780, ItemID.ENSOULED_TROLL_HEAD, true), - ENSOULED_HORROR_HEAD("Ensouled horror head", 1, 832, ItemID.ENSOULED_HORROR_HEAD, true), - ENSOULED_KALPHITE_HEAD("Ensouled kalphite head", 1, 884, ItemID.ENSOULED_KALPHITE_HEAD, true), - ENSOULED_DAGANNOTH_HEAD("Ensouled dagannoth head", 1, 936, ItemID.ENSOULED_DAGANNOTH_HEAD, true), - ENSOULED_BLOODVELD_HEAD("Ensouled bloodveld head", 1, 1040, ItemID.ENSOULED_BLOODVELD_HEAD, true), - ENSOULED_TZHAAR_HEAD("Ensouled tzhaar head", 1, 1104, ItemID.ENSOULED_TZHAAR_HEAD, true), - ENSOULED_DEMON_HEAD("Ensouled demon head", 1, 1170, ItemID.ENSOULED_DEMON_HEAD, true), - ENSOULED_AVIANSIE_HEAD("Ensouled aviansie head", 1, 1234, ItemID.ENSOULED_AVIANSIE_HEAD, true), - ENSOULED_ABYSSAL_HEAD("Ensouled abyssal head", 1, 1300, ItemID.ENSOULED_ABYSSAL_HEAD, true), - ENSOULED_DRAGON_HEAD("Ensouled dragon head", 1, 1560, ItemID.ENSOULED_DRAGON_HEAD, true), - FIENDISH_ASHES("Fiendish ashes", 1, 10, ItemID.FIENDISH_ASHES, true), - VILE_ASHES("Vile ashes", 1, 25, ItemID.VILE_ASHES, true), - MALICIOUS_ASHES("Malicious ashes", 1, 65, ItemID.MALICIOUS_ASHES, true), - ABYSSAL_ASHES("Abyssal ashes", 1, 85, ItemID.ABYSSAL_ASHES, true), - INFERNAL_ASHES("Infernal ashes", 1, 110, ItemID.INFERNAL_ASHES, true), - BONES("Bones", 1, 4.5f, ItemID.BONES, false), - WOLF_BONES("Wolf bones", 1, 4.5f, ItemID.WOLF_BONES, false), - LOAR_REMAINS("Loar remains", 1, 33, ItemID.LOAR_REMAINS, false), - BURNT_BONES("Burnt bones", 1, 4.5f, ItemID.BURNT_BONES, false), - MONKEY_BONES("Monkey bones", 1, 5, ItemID.MONKEY_BONES, false), - BAT_BONES("Bat bones", 1, 5.3f, ItemID.BAT_BONES, false), - JOGRE_BONES("Jogre bones", 1, 15, ItemID.JOGRE_BONES, false), - BIG_BONES("Big bones", 1, 15, ItemID.BIG_BONES, false), - ZOGRE_BONES("Zogre bones", 1, 22.5f, ItemID.ZOGRE_BONES, false), - SHAIKAHAN_BONES("Shaikahan bones", 1, 25, ItemID.SHAIKAHAN_BONES, false), - BABYDRAGON_BONES("Babydragon bones", 1, 30, ItemID.BABYDRAGON_BONES, false), - PHRIN_REMAINS("Phrin remains", 1, 46.5f, ItemID.PHRIN_REMAINS, false), - WYRM_BONES("Wyrm bones", 1, 50, ItemID.WYRM_BONES, false), - RIYL_REMAINS("Riyl remains", 1, 59.5f, ItemID.RIYL_REMAINS, false), - WYVERN_BONES("Wyvern bones", 1, 72, ItemID.WYVERN_BONES, false), - DRAGON_BONES("Dragon bones", 1, 72, ItemID.DRAGON_BONES, false), - DRAKE_BONES("Drake bones", 1, 80, ItemID.DRAKE_BONES, false), - ASYN_REMAINS("Asyn remains", 1, 82.5f, ItemID.ASYN_REMAINS, false), - FAYRG_BONES("Fayrg bones", 1, 84, ItemID.FAYRG_BONES, false), - FIYR_REMAINS("Fiyr remains", 1, 84, ItemID.FIYR_REMAINS, false), - LAVA_DRAGON_BONES("Lava dragon bones", 1, 85, ItemID.LAVA_DRAGON_BONES, false), - RAURG_BONES("Raurg bones", 1, 96, ItemID.RAURG_BONES, false), - HYDRA_BONES("Hydra bones", 1, 110, ItemID.HYDRA_BONES, false), - DAGANNOTH_BONES("Dagannoth bones", 1, 125, ItemID.DAGANNOTH_BONES, false), - OURG_BONES("Ourg bones", 1, 140, ItemID.OURG_BONES, false), - URIUM_REMAINS("Urium remains", 1, 120, ItemID.URIUM_REMAINS, false), - GUPPY("Guppy", 1, 4, ItemID.GUPPY, false), - CAVEFISH("Cavefish", 1, 7, ItemID.CAVEFISH, false), - TETRA("Tetra", 1, 10, ItemID.TETRA, false), - CATFISH("Catfish", 1, 16, ItemID.CATFISH, false), - SUPERIOR_DRAGON_BONES("Superior dragon bones", 70, 150, ItemID.SUPERIOR_DRAGON_BONES, false), + ENSOULED_GOBLIN_HEAD(ItemID.ENSOULED_GOBLIN_HEAD, 1, 130, true), + ENSOULED_MONKEY_HEAD(ItemID.ENSOULED_MONKEY_HEAD, 1, 182, true), + ENSOULED_IMP_HEAD(ItemID.ENSOULED_IMP_HEAD, 1, 286, true), + ENSOULED_MINOTAUR_HEAD(ItemID.ENSOULED_MINOTAUR_HEAD, 1, 364, true), + ENSOULED_SCORPION_HEAD(ItemID.ENSOULED_SCORPION_HEAD, 1, 454, true), + ENSOULED_BEAR_HEAD(ItemID.ENSOULED_BEAR_HEAD, 1, 480, true), + ENSOULED_UNICORN_HEAD(ItemID.ENSOULED_UNICORN_HEAD, 1, 494, true), + ENSOULED_DOG_HEAD(ItemID.ENSOULED_DOG_HEAD, 1, 520, true), + ENSOULED_CHAOS_DRUID_HEAD(ItemID.ENSOULED_CHAOS_DRUID_HEAD, 1, 584, true), + ENSOULED_GIANT_HEAD(ItemID.ENSOULED_GIANT_HEAD, 1, 650, true), + ENSOULED_OGRE_HEAD(ItemID.ENSOULED_OGRE_HEAD, 1, 716, true), + ENSOULED_ELF_HEAD(ItemID.ENSOULED_ELF_HEAD, 1, 754, true), + ENSOULED_TROLL_HEAD(ItemID.ENSOULED_TROLL_HEAD, 1, 780, true), + ENSOULED_HORROR_HEAD(ItemID.ENSOULED_HORROR_HEAD, 1, 832, true), + ENSOULED_KALPHITE_HEAD(ItemID.ENSOULED_KALPHITE_HEAD, 1, 884, true), + ENSOULED_DAGANNOTH_HEAD(ItemID.ENSOULED_DAGANNOTH_HEAD, 1, 936, true), + ENSOULED_BLOODVELD_HEAD(ItemID.ENSOULED_BLOODVELD_HEAD, 1, 1040, true), + ENSOULED_TZHAAR_HEAD(ItemID.ENSOULED_TZHAAR_HEAD, 1, 1104, true), + ENSOULED_DEMON_HEAD(ItemID.ENSOULED_DEMON_HEAD, 1, 1170, true), + ENSOULED_AVIANSIE_HEAD(ItemID.ENSOULED_AVIANSIE_HEAD, 1, 1234, true), + ENSOULED_ABYSSAL_HEAD(ItemID.ENSOULED_ABYSSAL_HEAD, 1, 1300, true), + ENSOULED_DRAGON_HEAD(ItemID.ENSOULED_DRAGON_HEAD, 1, 1560, true), + FIENDISH_ASHES(ItemID.FIENDISH_ASHES, 1, 10, true), + VILE_ASHES(ItemID.VILE_ASHES, 1, 25, true), + MALICIOUS_ASHES(ItemID.MALICIOUS_ASHES, 1, 65, true), + ABYSSAL_ASHES(ItemID.ABYSSAL_ASHES, 1, 85, true), + INFERNAL_ASHES(ItemID.INFERNAL_ASHES, 1, 110, true), + BONES(ItemID.BONES, 1, 4.5f, false), + WOLF_BONES(ItemID.WOLF_BONES, 1, 4.5f, false), + LOAR_REMAINS(ItemID.LOAR_REMAINS, 1, 33, false), + BURNT_BONES(ItemID.BURNT_BONES, 1, 4.5f, false), + MONKEY_BONES(ItemID.MONKEY_BONES, 1, 5, false), + BAT_BONES(ItemID.BAT_BONES, 1, 5.3f, false), + JOGRE_BONES(ItemID.JOGRE_BONES, 1, 15, false), + BIG_BONES(ItemID.BIG_BONES, 1, 15, false), + ZOGRE_BONES(ItemID.ZOGRE_BONES, 1, 22.5f, false), + SHAIKAHAN_BONES(ItemID.SHAIKAHAN_BONES, 1, 25, false), + BABYDRAGON_BONES(ItemID.BABYDRAGON_BONES, 1, 30, false), + PHRIN_REMAINS(ItemID.PHRIN_REMAINS, 1, 46.5f, false), + WYRM_BONES(ItemID.WYRM_BONES, 1, 50, false), + RIYL_REMAINS(ItemID.RIYL_REMAINS, 1, 59.5f, false), + WYVERN_BONES(ItemID.WYVERN_BONES, 1, 72, false), + DRAGON_BONES(ItemID.DRAGON_BONES, 1, 72, false), + DRAKE_BONES(ItemID.DRAKE_BONES, 1, 80, false), + ASYN_REMAINS(ItemID.ASYN_REMAINS, 1, 82.5f, false), + FAYRG_BONES(ItemID.FAYRG_BONES, 1, 84, false), + FIYR_REMAINS(ItemID.FIYR_REMAINS, 1, 84, false), + LAVA_DRAGON_BONES(ItemID.LAVA_DRAGON_BONES, 1, 85, false), + RAURG_BONES(ItemID.RAURG_BONES, 1, 96, false), + HYDRA_BONES(ItemID.HYDRA_BONES, 1, 110, false), + DAGANNOTH_BONES(ItemID.DAGANNOTH_BONES, 1, 125, false), + OURG_BONES(ItemID.OURG_BONES, 1, 140, false), + URIUM_REMAINS(ItemID.URIUM_REMAINS, 1, 120, false), + GUPPY(ItemID.GUPPY, 1, 4, false), + CAVEFISH(ItemID.CAVEFISH, 1, 7, false), + TETRA(ItemID.TETRA, 1, 10, false), + CATFISH(ItemID.CATFISH, 1, 16, false), + SUPERIOR_DRAGON_BONES(ItemID.SUPERIOR_DRAGON_BONES, 70, 150, false), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; private final boolean ignoreBonus; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java index d6eda355db..b779822207 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/RunecraftAction.java @@ -30,49 +30,48 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum RunecraftAction implements SkillAction +public enum RunecraftAction implements ItemSkillAction { - AIR_TIARA("Air tiara", 1, 25, ItemID.AIR_TIARA, true), - MIND_TIARA("Mind tiara", 1, 27.5f, ItemID.MIND_TIARA, true), - WATER_TIARA("Water tiara", 1, 30, ItemID.WATER_TIARA, true), - EARTH_TIARA("Earth tiara", 1, 32.5f, ItemID.EARTH_TIARA, true), - FIRE_TIARA("Fire tiara", 1, 35, ItemID.FIRE_TIARA, true), - BODY_TIARA("Body tiara", 1, 37.5f, ItemID.BODY_TIARA, true), - COSMIC_TIARA("Cosmic tiara", 1, 40, ItemID.COSMIC_TIARA, true), - CHAOS_TIARA("Chaos tiara", 1, 42.5f, ItemID.CHAOS_TIARA, true), - NATURE_TIARA("Nature tiara", 1, 45, ItemID.NATURE_TIARA, true), - LAW_TIARA("Law tiara", 1, 47.5f, ItemID.LAW_TIARA, true), - DEATH_TIARA("Death tiara", 1, 50, ItemID.DEATH_TIARA, true), - WRATH_TIARA("Wrath tiara", 1, 52.5f, ItemID.WRATH_TIARA, true), - AIR_RUNE("Air rune", 1, 5, ItemID.AIR_RUNE, false), - MIND_RUNE("Mind rune", 2, 5.5f, ItemID.MIND_RUNE, false), - MIND_CORE("Mind core", 2, 55, ItemID.MIND_CORE, false), - WATER_RUNE("Water rune", 5, 6, ItemID.WATER_RUNE, false), - MIST_RUNE("Mist rune", 6, 8.5f, ItemID.MIST_RUNE, false), - EARTH_RUNE("Earth rune", 9, 6.5f, ItemID.EARTH_RUNE, false), - DUST_RUNE("Dust rune", 10, 9, ItemID.DUST_RUNE, false), - MUD_RUNE("Mud rune", 13, 9.5f, ItemID.MUD_RUNE, false), - FIRE_RUNE("Fire rune", 14, 7, ItemID.FIRE_RUNE, false), - SMOKE_RUNE("Smoke rune", 15, 9.5f, ItemID.SMOKE_RUNE, false), - STEAM_RUNE("Steam rune", 19, 10, ItemID.STEAM_RUNE, false), - BODY_RUNE("Body rune", 20, 7.5f, ItemID.BODY_RUNE, false), - BODY_CORE("Body core", 20, 75, ItemID.BODY_CORE, false), - LAVA_RUNE("Lava rune", 23, 10.5f, ItemID.LAVA_RUNE, false), - COSMIC_RUNE("Cosmic rune", 27, 8, ItemID.COSMIC_RUNE, false), - CHAOS_RUNE("Chaos rune", 35, 8.5f, ItemID.CHAOS_RUNE, false), - CHAOS_CORE("Chaos core", 35, 85, ItemID.CHAOS_CORE, false), - ASTRAL_RUNE("Astral rune", 40, 8.7f, ItemID.ASTRAL_RUNE, false), - NATURE_RUNE("Nature rune", 44, 9, ItemID.NATURE_RUNE, false), - LAW_RUNE("Law rune", 54, 9.5f, ItemID.LAW_RUNE, false), - DEATH_RUNE("Death rune", 65, 10, ItemID.DEATH_RUNE, false), - BLOOD_RUNE("Blood rune", 77, 24.425f, ItemID.BLOOD_RUNE, true), - SOUL_RUNE("Soul rune", 90, 30.325f, ItemID.SOUL_RUNE, true), - WRATH_RUNE("Wrath rune", 95, 8, ItemID.WRATH_RUNE, false), + AIR_TIARA(ItemID.AIR_TIARA, 1, 25, true), + MIND_TIARA(ItemID.MIND_TIARA, 1, 27.5f, true), + WATER_TIARA(ItemID.WATER_TIARA, 1, 30, true), + EARTH_TIARA(ItemID.EARTH_TIARA, 1, 32.5f, true), + FIRE_TIARA(ItemID.FIRE_TIARA, 1, 35, true), + BODY_TIARA(ItemID.BODY_TIARA, 1, 37.5f, true), + COSMIC_TIARA(ItemID.COSMIC_TIARA, 1, 40, true), + CHAOS_TIARA(ItemID.CHAOS_TIARA, 1, 42.5f, true), + NATURE_TIARA(ItemID.NATURE_TIARA, 1, 45, true), + LAW_TIARA(ItemID.LAW_TIARA, 1, 47.5f, true), + DEATH_TIARA(ItemID.DEATH_TIARA, 1, 50, true), + WRATH_TIARA(ItemID.WRATH_TIARA, 1, 52.5f, true), + AIR_RUNE(ItemID.AIR_RUNE, 1, 5, false), + MIND_RUNE(ItemID.MIND_RUNE, 2, 5.5f, false), + MIND_CORE(ItemID.MIND_CORE, 2, 55, false), + WATER_RUNE(ItemID.WATER_RUNE, 5, 6, false), + MIST_RUNE(ItemID.MIST_RUNE, 6, 8.5f, false), + EARTH_RUNE(ItemID.EARTH_RUNE, 9, 6.5f, false), + DUST_RUNE(ItemID.DUST_RUNE, 10, 9, false), + MUD_RUNE(ItemID.MUD_RUNE, 13, 9.5f, false), + FIRE_RUNE(ItemID.FIRE_RUNE, 14, 7, false), + SMOKE_RUNE(ItemID.SMOKE_RUNE, 15, 9.5f, false), + STEAM_RUNE(ItemID.STEAM_RUNE, 19, 10, false), + BODY_RUNE(ItemID.BODY_RUNE, 20, 7.5f, false), + BODY_CORE(ItemID.BODY_CORE, 20, 75, false), + LAVA_RUNE(ItemID.LAVA_RUNE, 23, 10.5f, false), + COSMIC_RUNE(ItemID.COSMIC_RUNE, 27, 8, false), + CHAOS_RUNE(ItemID.CHAOS_RUNE, 35, 8.5f, false), + CHAOS_CORE(ItemID.CHAOS_CORE, 35, 85, false), + ASTRAL_RUNE(ItemID.ASTRAL_RUNE, 40, 8.7f, false), + NATURE_RUNE(ItemID.NATURE_RUNE, 44, 9, false), + LAW_RUNE(ItemID.LAW_RUNE, 54, 9.5f, false), + DEATH_RUNE(ItemID.DEATH_RUNE, 65, 10, false), + BLOOD_RUNE(ItemID.BLOOD_RUNE, 77, 24.425f, true), + SOUL_RUNE(ItemID.SOUL_RUNE, 90, 30.325f, true), + WRATH_RUNE(ItemID.WRATH_RUNE, 95, 8, false), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; private final boolean ignoreBonus; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java index 9f6153678a..f7b739457c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SkillAction.java @@ -24,17 +24,22 @@ */ package net.runelite.client.plugins.skillcalculator.skills; +import net.runelite.api.ItemComposition; +import net.runelite.client.game.ItemManager; + /** * An object representing a single skill action which grants some xp. */ public interface SkillAction { /** - * Gets the name of this skill action, usually the item or object created, or the spell cast. + * Gets the name of this skill action, usually the item or object created, or the spell cast. This name may be + * fetched via {@link ItemComposition#getName()} from some defined item ID or explicitly defined. * + * @param itemManager An {@link ItemManager item manager} instance. * @return The name of this skill action. */ - String getName(); + String getName(final ItemManager itemManager); /** * Gets the level required to perform this skill action. diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java index 8e32705cd1..f4211febb9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/SmithingAction.java @@ -30,193 +30,192 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum SmithingAction implements SkillAction +public enum SmithingAction implements ItemSkillAction { - BRONZE_BAR("Bronze bar", 1, 6.3f, ItemID.BRONZE_BAR), - BRONZE_AXE("Bronze axe", 1, 12.5f, ItemID.BRONZE_AXE), - BRONZE_DAGGER("Bronze dagger", 1, 12.5f, ItemID.BRONZE_DAGGER), - BRONZE_MACE("Bronze mace", 2, 12.5f, ItemID.BRONZE_MACE), - BRONZE_MED_HELM("Bronze med helm", 3, 12.5f, ItemID.BRONZE_MED_HELM), - BRONZE_BOLTS_UNF("Bronze bolts (unf)", 3, 12.5f, ItemID.BRONZE_BOLTS_UNF), - BRONZE_NAILS("Bronze nails", 4, 12.5f, ItemID.BRONZE_NAILS), - BRONZE_SWORD("Bronze sword", 4, 12.5f, ItemID.BRONZE_SWORD), - BRONZE_WIRE("Bronze wire", 4, 12.5f, ItemID.BRONZE_WIRE), - BRONZE_DART_TIP("Bronze dart tip", 4, 12.5f, ItemID.BRONZE_DART_TIP), - BRONZE_ARROWTIPS("Bronze arrowtips", 5, 12.5f, ItemID.BRONZE_ARROWTIPS), - BRONZE_SCIMITAR("Bronze scimitar", 5, 25, ItemID.BRONZE_SCIMITAR), - BRONZE_HASTA("Bronze hasta", 5, 25, ItemID.BRONZE_HASTA), - BRONZE_SPEAR("Bronze spear", 5, 25, ItemID.BRONZE_SPEAR), - BRONZE_JAVELIN_HEADS("Bronze javelin heads", 6, 12.5f, ItemID.BRONZE_JAVELIN_HEADS), - BRONZE_LONGSWORD("Bronze longsword", 6, 25, ItemID.BRONZE_LONGSWORD), - BRONZE_LIMBS("Bronze limbs", 6, 12.5f, ItemID.BRONZE_LIMBS), - BRONZE_KNIFE("Bronze knife", 7, 12.5f, ItemID.BRONZE_KNIFE), - BRONZE_FULL_HELM("Bronze full helm", 7, 25, ItemID.BRONZE_FULL_HELM), - BRONZE_SQ_SHIELD("Bronze sq shield", 8, 25, ItemID.BRONZE_SQ_SHIELD), - BRONZE_WARHAMMER("Bronze warhammer", 9, 37.5f, ItemID.BRONZE_WARHAMMER), - BRONZE_BATTLEAXE("Bronze battleaxe", 10, 37.5f, ItemID.BRONZE_BATTLEAXE), - BRONZE_CHAINBODY("Bronze chainbody", 11, 37.5f, ItemID.BRONZE_CHAINBODY), - BRONZE_KITESHIELD("Bronze kiteshield", 12, 37.5f, ItemID.BRONZE_KITESHIELD), - BRONZE_CLAWS("Bronze claws", 13, 25, ItemID.BRONZE_CLAWS), - BRONZE_2H_SWORD("Bronze 2h sword", 14, 37.5f, ItemID.BRONZE_2H_SWORD), - BARRONITE_DEPOSITS("Barronite deposits", 14, 30, ItemID.BARRONITE_DEPOSIT), - IRON_BAR("Iron bar", 15, 12.5f, ItemID.IRON_BAR), - IRON_DAGGER("Iron dagger", 15, 25, ItemID.IRON_DAGGER), - IRON_AXE("Iron axe", 16, 25, ItemID.IRON_AXE), - BRONZE_PLATELEGS("Bronze platelegs", 16, 37.5f, ItemID.BRONZE_PLATELEGS), - BRONZE_PLATESKIRT("Bronze plateskirt", 16, 37.5f, ItemID.BRONZE_PLATESKIRT), - IRON_SPIT("Iron spit", 17, 25, ItemID.IRON_SPIT), - IRON_MACE("Iron mace", 17, 25, ItemID.IRON_MACE), - IRON_BOLTS_UNF("Iron bolts (unf)", 18, 25, ItemID.IRON_BOLTS_UNF), - BRONZE_PLATEBODY("Bronze platebody", 18, 62.5f, ItemID.BRONZE_PLATEBODY), - IRON_MED_HELM("Iron med helm", 18, 25, ItemID.IRON_MED_HELM), - IRON_NAILS("Iron nails", 19, 25, ItemID.IRON_NAILS), - IRON_DART_TIP("Iron dart tip", 19, 25, ItemID.IRON_DART_TIP), - IRON_SWORD("Iron sword", 19, 25, ItemID.IRON_SWORD), - SILVER_BAR("Silver bar", 20, 13.7f, ItemID.SILVER_BAR), - IRON_ARROWTIPS("Iron arrowtips", 20, 25, ItemID.IRON_ARROWTIPS), - IRON_SCIMITAR("Iron scimitar", 20, 50, ItemID.IRON_SCIMITAR), - IRON_HASTA("Iron hasta", 20, 50, ItemID.IRON_HASTA), - IRON_SPEAR("Iron spear", 20, 50, ItemID.IRON_SPEAR), - IRON_LONGSWORD("Iron longsword", 21, 50, ItemID.IRON_LONGSWORD), - IRON_JAVELIN_HEADS("Iron javelin heads", 21, 25, ItemID.IRON_JAVELIN_HEADS), - IRON_FULL_HELM("Iron full helm", 22, 50, ItemID.IRON_FULL_HELM), - IRON_KNIFE("Iron knife", 22, 25, ItemID.IRON_KNIFE), - IRON_LIMBS("Iron limbs", 23, 25, ItemID.IRON_LIMBS), - IRON_SQ_SHIELD("Iron sq shield", 23, 50, ItemID.IRON_SQ_SHIELD), - IRON_WARHAMMER("Iron warhammer", 24, 75, ItemID.IRON_WARHAMMER), - IRON_BATTLEAXE("Iron battleaxe", 25, 75, ItemID.IRON_BATTLEAXE), - OIL_LANTERN_FRAME("Oil lantern frame", 26, 25, ItemID.OIL_LANTERN_FRAME), - IRON_CHAINBODY("Iron chainbody", 26, 75, ItemID.IRON_CHAINBODY), - IRON_KITESHIELD("Iron kiteshield", 27, 75, ItemID.IRON_KITESHIELD), - IRON_CLAWS("Iron claws", 28, 50, ItemID.IRON_CLAWS), - IRON_2H_SWORD("Iron 2h sword", 29, 75, ItemID.IRON_2H_SWORD), - STEEL_DAGGER("Steel dagger", 30, 37.5f, ItemID.STEEL_DAGGER), - STEEL_BAR("Steel bar", 30, 17.5f, ItemID.STEEL_BAR), - IRON_PLATESKIRT("Iron plateskirt", 31, 75, ItemID.IRON_PLATESKIRT), - IRON_PLATELEGS("Iron platelegs", 31, 75, ItemID.IRON_PLATELEGS), - STEEL_AXE("Steel axe", 31, 37.5f, ItemID.STEEL_AXE), - STEEL_MACE("Steel mace", 32, 37.5f, ItemID.STEEL_MACE), - IRON_PLATEBODY("Iron platebody", 33, 125, ItemID.IRON_PLATEBODY), - STEEL_MED_HELM("Steel med helm", 33, 37.5f, ItemID.STEEL_MED_HELM), - STEEL_BOLTS_UNF("Steel bolts (unf)", 33, 37.5f, ItemID.STEEL_BOLTS_UNF), - STEEL_DART_TIP("Steel dart tip", 34, 37.5f, ItemID.STEEL_DART_TIP), - STEEL_NAILS("Steel nails", 34, 37.5f, ItemID.STEEL_NAILS), - STEEL_SWORD("Steel sword", 34, 37.5f, ItemID.STEEL_SWORD), - CANNONBALL("Cannonball", 35, 25.6f, ItemID.CANNONBALL), - STEEL_SCIMITAR("Steel scimitar", 35, 75, ItemID.STEEL_SCIMITAR), - STEEL_ARROWTIPS("Steel arrowtips", 35, 37.5f, ItemID.STEEL_ARROWTIPS), - STEEL_HASTA("Steel hasta", 35, 75, ItemID.STEEL_HASTA), - STEEL_SPEAR("Steel spear", 35, 75, ItemID.STEEL_SPEAR), - STEEL_LIMBS("Steel limbs", 36, 37.5f, ItemID.STEEL_LIMBS), - STEEL_STUDS("Steel studs", 36, 37.5f, ItemID.STEEL_STUDS), - STEEL_LONGSWORD("Steel longsword", 36, 75, ItemID.STEEL_LONGSWORD), - STEEL_JAVELIN_HEADS("Steel javelin heads", 36, 37.5f, ItemID.STEEL_JAVELIN_HEADS), - STEEL_KNIFE("Steel knife", 37, 37.5f, ItemID.STEEL_KNIFE), - STEEL_FULL_HELM("Steel full helm", 37, 75, ItemID.STEEL_FULL_HELM), - STEEL_SQ_SHIELD("Steel sq shield", 38, 75, ItemID.STEEL_SQ_SHIELD), - STEEL_WARHAMMER("Steel warhammer", 39, 112.5f, ItemID.STEEL_WARHAMMER), - STEEL_BATTLEAXE("Steel battleaxe", 40, 112.5f, ItemID.STEEL_BATTLEAXE), - GOLD_BAR_GOLDSMITH_GAUNTLETS("Gold bar (Goldsmith gauntlets)", 40, 56.2f, ItemID.GOLD_BAR), - GOLD_BAR("Gold bar", 40, 22.5f, ItemID.GOLD_BAR), - STEEL_CHAINBODY("Steel chainbody", 41, 112.5f, ItemID.STEEL_CHAINBODY), - STEEL_KITESHIELD("Steel kiteshield", 42, 112.5f, ItemID.STEEL_KITESHIELD), - STEEL_CLAWS("Steel claws", 43, 75, ItemID.STEEL_CLAWS), - STEEL_2H_SWORD("Steel 2h sword", 44, 112.5f, ItemID.STEEL_2H_SWORD), - STEEL_PLATELEGS("Steel platelegs", 46, 112.5f, ItemID.STEEL_PLATELEGS), - STEEL_PLATESKIRT("Steel plateskirt", 46, 112.5f, ItemID.STEEL_PLATESKIRT), - STEEL_PLATEBODY("Steel platebody", 48, 187.5f, ItemID.STEEL_PLATEBODY), - BULLSEYE_LANTERN_UNF("Bullseye lantern (unf)", 49, 37, ItemID.BULLSEYE_LANTERN_UNF), - MITHRIL_DAGGER("Mithril dagger", 50, 50, ItemID.MITHRIL_DAGGER), - MITHRIL_BAR("Mithril bar", 50, 30, ItemID.MITHRIL_BAR), - MITHRIL_AXE("Mithril axe", 51, 50, ItemID.MITHRIL_AXE), - MITHRIL_MACE("Mithril mace", 52, 50, ItemID.MITHRIL_MACE), - MITHRIL_MED_HELM("Mithril med helm", 53, 50, ItemID.MITHRIL_MED_HELM), - MITHRIL_BOLTS_UNF("Mithril bolts (unf)", 53, 50, ItemID.MITHRIL_BOLTS_UNF), - MITHRIL_SWORD("Mithril sword", 54, 50, ItemID.MITHRIL_SWORD), - MITHRIL_DART_TIP("Mithril dart tip", 54, 50, ItemID.MITHRIL_DART_TIP), - MITHRIL_NAILS("Mithril nails", 54, 50, ItemID.MITHRIL_NAILS), - MITHRIL_ARROWTIPS("Mithril arrowtips", 55, 50, ItemID.MITHRIL_ARROWTIPS), - MITHRIL_SCIMITAR("Mithril scimitar", 55, 100, ItemID.MITHRIL_SCIMITAR), - MITHRIL_HASTA("Mithril hasta", 55, 100, ItemID.MITHRIL_HASTA), - MITHRIL_SPEAR("Mithril spear", 55, 100, ItemID.MITHRIL_SPEAR), - MITHRIL_LONGSWORD("Mithril longsword", 56, 100, ItemID.MITHRIL_LONGSWORD), - MITHRIL_JAVELIN_HEADS("Mithril javelin heads", 56, 50, ItemID.MITHRIL_JAVELIN_HEADS), - MITHRIL_LIMBS("Mithril limbs", 56, 50, ItemID.MITHRIL_LIMBS), - MITHRIL_FULL_HELM("Mithril full helm", 57, 100, ItemID.MITHRIL_FULL_HELM), - MITHRIL_KNIFE("Mithril knife", 57, 50, ItemID.MITHRIL_KNIFE), - MITHRIL_SQ_SHIELD("Mithril sq shield", 58, 100, ItemID.MITHRIL_SQ_SHIELD), - MITH_GRAPPLE_TIP("Mith grapple tip", 59, 50, ItemID.MITH_GRAPPLE_TIP), - MITHRIL_WARHAMMER("Mithril warhammer", 59, 150, ItemID.MITHRIL_WARHAMMER), - DRAGON_SQ_SHIELD("Dragon sq shield", 60, 75, ItemID.DRAGON_SQ_SHIELD), - MITHRIL_BATTLEAXE("Mithril battleaxe", 60, 150, ItemID.MITHRIL_BATTLEAXE), - MITHRIL_CHAINBODY("Mithril chainbody", 61, 150, ItemID.MITHRIL_CHAINBODY), - MITHRIL_KITESHIELD("Mithril kiteshield", 62, 150, ItemID.MITHRIL_KITESHIELD), - MITHRIL_CLAWS("Mithril claws", 63, 100, ItemID.MITHRIL_CLAWS), - MITHRIL_2H_SWORD("Mithril 2h sword", 64, 150, ItemID.MITHRIL_2H_SWORD), - MITHRIL_PLATESKIRT("Mithril plateskirt", 66, 150, ItemID.MITHRIL_PLATESKIRT), - MITHRIL_PLATELEGS("Mithril platelegs", 66, 150, ItemID.MITHRIL_PLATELEGS), - MITHRIL_PLATEBODY("Mithril platebody", 68, 250, ItemID.MITHRIL_PLATEBODY), - ADAMANT_DAGGER("Adamant dagger", 70, 62.5f, ItemID.ADAMANT_DAGGER), - ADAMANTITE_BAR("Adamantite bar", 70, 37.5f, ItemID.ADAMANTITE_BAR), - ADAMANT_AXE("Adamant axe", 71, 62.5f, ItemID.ADAMANT_AXE), - ADAMANT_MACE("Adamant mace", 72, 62.5f, ItemID.ADAMANT_MACE), - ADAMANT_BOLTS_UNF("Adamant bolts (unf)", 73, 62.5f, ItemID.ADAMANT_BOLTSUNF), - ADAMANT_MED_HELM("Adamant med helm", 73, 62.5f, ItemID.ADAMANT_MED_HELM), - ADAMANT_DART_TIP("Adamant dart tip", 74, 62.5f, ItemID.ADAMANT_DART_TIP), - ADAMANT_SWORD("Adamant sword", 74, 62.5f, ItemID.ADAMANT_SWORD), - ADAMANTITE_NAILS("Adamantite nails", 74, 62.5f, ItemID.ADAMANTITE_NAILS), - ADAMANT_ARROWTIPS("Adamant arrowtips", 75, 62.5f, ItemID.ADAMANT_ARROWTIPS), - ADAMANT_SCIMITAR("Adamant scimitar", 75, 125, ItemID.ADAMANT_SCIMITAR), - ADAMANT_HASTA("Adamant hasta", 75, 125, ItemID.ADAMANT_HASTA), - ADAMANT_SPEAR("Adamant spear", 75, 125, ItemID.ADAMANT_SPEAR), - ADAMANTITE_LIMBS("Adamantite limbs", 76, 62.5f, ItemID.ADAMANTITE_LIMBS), - ADAMANT_LONGSWORD("Adamant longsword", 76, 125, ItemID.ADAMANT_LONGSWORD), - ADAMANT_JAVELIN_HEADS("Adamant javelin heads", 76, 62.5f, ItemID.ADAMANT_JAVELIN_HEADS), - ADAMANT_FULL_HELM("Adamant full helm", 77, 125, ItemID.ADAMANT_FULL_HELM), - ADAMANT_KNIFE("Adamant knife", 77, 62.5f, ItemID.ADAMANT_KNIFE), - ADAMANT_SQ_SHIELD("Adamant sq shield", 78, 125, ItemID.ADAMANT_SQ_SHIELD), - ADAMANT_WARHAMMER("Adamant warhammer", 79, 187.5f, ItemID.ADAMANT_WARHAMMER), - ADAMANT_BATTLEAXE("Adamant battleaxe", 80, 187.5f, ItemID.ADAMANT_BATTLEAXE), - ADAMANT_CHAINBODY("Adamant chainbody", 81, 187.5f, ItemID.ADAMANT_CHAINBODY), - ADAMANT_KITESHIELD("Adamant kiteshield", 82, 187.5f, ItemID.ADAMANT_KITESHIELD), - ADAMANT_CLAWS("Adamant claws", 83, 125, ItemID.ADAMANT_CLAWS), - ADAMANT_2H_SWORD("Adamant 2h sword", 84, 187.5f, ItemID.ADAMANT_2H_SWORD), - RUNITE_BAR("Runite bar", 85, 50, ItemID.RUNITE_BAR), - RUNE_DAGGER("Rune dagger", 85, 75, ItemID.RUNE_DAGGER), - RUNE_AXE("Rune axe", 86, 75, ItemID.RUNE_AXE), - ADAMANT_PLATESKIRT("Adamant plateskirt", 86, 187.5f, ItemID.ADAMANT_PLATESKIRT), - ADAMANT_PLATELEGS("Adamant platelegs", 86, 187.5f, ItemID.ADAMANT_PLATELEGS), - RUNE_MACE("Rune mace", 87, 75, ItemID.RUNE_MACE), - RUNITE_BOLTS_UNF("Runite bolts (unf)", 88, 75, ItemID.RUNITE_BOLTS_UNF), - RUNE_MED_HELM("Rune med helm", 88, 75, ItemID.RUNE_MED_HELM), - ADAMANT_PLATEBODY("Adamant platebody", 88, 312.5f, ItemID.ADAMANT_PLATEBODY), - RUNE_SWORD("Rune sword", 89, 75, ItemID.RUNE_SWORD), - RUNE_NAILS("Rune nails", 89, 75, ItemID.RUNE_NAILS), - RUNE_DART_TIP("Rune dart tip", 89, 75, ItemID.RUNE_DART_TIP), - RUNE_ARROWTIPS("Rune arrowtips", 90, 75, ItemID.RUNE_ARROWTIPS), - RUNE_SCIMITAR("Rune scimitar", 90, 150, ItemID.RUNE_SCIMITAR), - RUNE_HASTA("Rune hasta", 90, 150, ItemID.RUNE_HASTA), - RUNE_SPEAR("Rune spear", 90, 150, ItemID.RUNE_SPEAR), - DRAGONFIRE_SHIELD("Dragonfire shield", 90, 2000, ItemID.DRAGONFIRE_SHIELD), - RUNE_LONGSWORD("Rune longsword", 91, 150, ItemID.RUNE_LONGSWORD), - RUNE_JAVELIN_HEADS("Rune javelin heads", 91, 75, ItemID.RUNE_JAVELIN_HEADS), - RUNITE_LIMBS("Runite limbs", 91, 75, ItemID.RUNITE_LIMBS), - RUNE_KNIFE("Rune knife", 92, 75, ItemID.RUNE_KNIFE), - RUNE_FULL_HELM("Rune full helm", 92, 150, ItemID.RUNE_FULL_HELM), - RUNE_SQ_SHIELD("Rune sq shield", 93, 150, ItemID.RUNE_SQ_SHIELD), - RUNE_WARHAMMER("Rune warhammer", 94, 225, ItemID.RUNE_WARHAMMER), - RUNE_BATTLEAXE("Rune battleaxe", 95, 225, ItemID.RUNE_BATTLEAXE), - RUNE_CHAINBODY("Rune chainbody", 96, 225, ItemID.RUNE_CHAINBODY), - RUNE_KITESHIELD("Rune kiteshield", 97, 225, ItemID.RUNE_KITESHIELD), - RUNE_CLAWS("Rune claws", 98, 150, ItemID.RUNE_CLAWS), - RUNE_PLATEBODY("Rune platebody", 99, 375, ItemID.RUNE_PLATEBODY), - RUNE_PLATESKIRT("Rune plateskirt", 99, 225, ItemID.RUNE_PLATESKIRT), - RUNE_PLATELEGS("Rune platelegs", 99, 225, ItemID.RUNE_PLATELEGS), - RUNE_2H_SWORD("Rune 2h sword", 99, 225, ItemID.RUNE_2H_SWORD), + BRONZE_BAR(ItemID.BRONZE_BAR, 1, 6.3f), + BRONZE_AXE(ItemID.BRONZE_AXE, 1, 12.5f), + BRONZE_DAGGER(ItemID.BRONZE_DAGGER, 1, 12.5f), + BRONZE_MACE(ItemID.BRONZE_MACE, 2, 12.5f), + BRONZE_MED_HELM(ItemID.BRONZE_MED_HELM, 3, 12.5f), + BRONZE_BOLTS_UNF(ItemID.BRONZE_BOLTS_UNF, 3, 12.5f), + BRONZE_NAILS(ItemID.BRONZE_NAILS, 4, 12.5f), + BRONZE_SWORD(ItemID.BRONZE_SWORD, 4, 12.5f), + BRONZE_WIRE(ItemID.BRONZE_WIRE, 4, 12.5f), + BRONZE_DART_TIP(ItemID.BRONZE_DART_TIP, 4, 12.5f), + BRONZE_ARROWTIPS(ItemID.BRONZE_ARROWTIPS, 5, 12.5f), + BRONZE_SCIMITAR(ItemID.BRONZE_SCIMITAR, 5, 25), + BRONZE_HASTA(ItemID.BRONZE_HASTA, 5, 25), + BRONZE_SPEAR(ItemID.BRONZE_SPEAR, 5, 25), + BRONZE_JAVELIN_HEADS(ItemID.BRONZE_JAVELIN_HEADS, 6, 12.5f), + BRONZE_LONGSWORD(ItemID.BRONZE_LONGSWORD, 6, 25), + BRONZE_LIMBS(ItemID.BRONZE_LIMBS, 6, 12.5f), + BRONZE_KNIFE(ItemID.BRONZE_KNIFE, 7, 12.5f), + BRONZE_FULL_HELM(ItemID.BRONZE_FULL_HELM, 7, 25), + BRONZE_SQ_SHIELD(ItemID.BRONZE_SQ_SHIELD, 8, 25), + BRONZE_WARHAMMER(ItemID.BRONZE_WARHAMMER, 9, 37.5f), + BRONZE_BATTLEAXE(ItemID.BRONZE_BATTLEAXE, 10, 37.5f), + BRONZE_CHAINBODY(ItemID.BRONZE_CHAINBODY, 11, 37.5f), + BRONZE_KITESHIELD(ItemID.BRONZE_KITESHIELD, 12, 37.5f), + BRONZE_CLAWS(ItemID.BRONZE_CLAWS, 13, 25), + BRONZE_2H_SWORD(ItemID.BRONZE_2H_SWORD, 14, 37.5f), + BARRONITE_DEPOSITS(ItemID.BARRONITE_DEPOSIT, 14, 30), + IRON_BAR(ItemID.IRON_BAR, 15, 12.5f), + IRON_DAGGER(ItemID.IRON_DAGGER, 15, 25), + IRON_AXE(ItemID.IRON_AXE, 16, 25), + BRONZE_PLATELEGS(ItemID.BRONZE_PLATELEGS, 16, 37.5f), + BRONZE_PLATESKIRT(ItemID.BRONZE_PLATESKIRT, 16, 37.5f), + IRON_SPIT(ItemID.IRON_SPIT, 17, 25), + IRON_MACE(ItemID.IRON_MACE, 17, 25), + IRON_BOLTS_UNF(ItemID.IRON_BOLTS_UNF, 18, 25), + BRONZE_PLATEBODY(ItemID.BRONZE_PLATEBODY, 18, 62.5f), + IRON_MED_HELM(ItemID.IRON_MED_HELM, 18, 25), + IRON_NAILS(ItemID.IRON_NAILS, 19, 25), + IRON_DART_TIP(ItemID.IRON_DART_TIP, 19, 25), + IRON_SWORD(ItemID.IRON_SWORD, 19, 25), + SILVER_BAR(ItemID.SILVER_BAR, 20, 13.7f), + IRON_ARROWTIPS(ItemID.IRON_ARROWTIPS, 20, 25), + IRON_SCIMITAR(ItemID.IRON_SCIMITAR, 20, 50), + IRON_HASTA(ItemID.IRON_HASTA, 20, 50), + IRON_SPEAR(ItemID.IRON_SPEAR, 20, 50), + IRON_LONGSWORD(ItemID.IRON_LONGSWORD, 21, 50), + IRON_JAVELIN_HEADS(ItemID.IRON_JAVELIN_HEADS, 21, 25), + IRON_FULL_HELM(ItemID.IRON_FULL_HELM, 22, 50), + IRON_KNIFE(ItemID.IRON_KNIFE, 22, 25), + IRON_LIMBS(ItemID.IRON_LIMBS, 23, 25), + IRON_SQ_SHIELD(ItemID.IRON_SQ_SHIELD, 23, 50), + IRON_WARHAMMER(ItemID.IRON_WARHAMMER, 24, 75), + IRON_BATTLEAXE(ItemID.IRON_BATTLEAXE, 25, 75), + OIL_LANTERN_FRAME(ItemID.OIL_LANTERN_FRAME, 26, 25), + IRON_CHAINBODY(ItemID.IRON_CHAINBODY, 26, 75), + IRON_KITESHIELD(ItemID.IRON_KITESHIELD, 27, 75), + IRON_CLAWS(ItemID.IRON_CLAWS, 28, 50), + IRON_2H_SWORD(ItemID.IRON_2H_SWORD, 29, 75), + STEEL_DAGGER(ItemID.STEEL_DAGGER, 30, 37.5f), + STEEL_BAR(ItemID.STEEL_BAR, 30, 17.5f), + IRON_PLATESKIRT(ItemID.IRON_PLATESKIRT, 31, 75), + IRON_PLATELEGS(ItemID.IRON_PLATELEGS, 31, 75), + STEEL_AXE(ItemID.STEEL_AXE, 31, 37.5f), + STEEL_MACE(ItemID.STEEL_MACE, 32, 37.5f), + IRON_PLATEBODY(ItemID.IRON_PLATEBODY, 33, 125), + STEEL_MED_HELM(ItemID.STEEL_MED_HELM, 33, 37.5f), + STEEL_BOLTS_UNF(ItemID.STEEL_BOLTS_UNF, 33, 37.5f), + STEEL_DART_TIP(ItemID.STEEL_DART_TIP, 34, 37.5f), + STEEL_NAILS(ItemID.STEEL_NAILS, 34, 37.5f), + STEEL_SWORD(ItemID.STEEL_SWORD, 34, 37.5f), + CANNONBALL(ItemID.CANNONBALL, 35, 25.6f), + STEEL_SCIMITAR(ItemID.STEEL_SCIMITAR, 35, 75), + STEEL_ARROWTIPS(ItemID.STEEL_ARROWTIPS, 35, 37.5f), + STEEL_HASTA(ItemID.STEEL_HASTA, 35, 75), + STEEL_SPEAR(ItemID.STEEL_SPEAR, 35, 75), + STEEL_LIMBS(ItemID.STEEL_LIMBS, 36, 37.5f), + STEEL_STUDS(ItemID.STEEL_STUDS, 36, 37.5f), + STEEL_LONGSWORD(ItemID.STEEL_LONGSWORD, 36, 75), + STEEL_JAVELIN_HEADS(ItemID.STEEL_JAVELIN_HEADS, 36, 37.5f), + STEEL_KNIFE(ItemID.STEEL_KNIFE, 37, 37.5f), + STEEL_FULL_HELM(ItemID.STEEL_FULL_HELM, 37, 75), + STEEL_SQ_SHIELD(ItemID.STEEL_SQ_SHIELD, 38, 75), + STEEL_WARHAMMER(ItemID.STEEL_WARHAMMER, 39, 112.5f), + STEEL_BATTLEAXE(ItemID.STEEL_BATTLEAXE, 40, 112.5f), + GOLD_BAR_GOLDSMITH_GAUNTLETS(ItemID.GOLD_BAR, 40, 56.2f), + GOLD_BAR(ItemID.GOLD_BAR, 40, 22.5f), + STEEL_CHAINBODY(ItemID.STEEL_CHAINBODY, 41, 112.5f), + STEEL_KITESHIELD(ItemID.STEEL_KITESHIELD, 42, 112.5f), + STEEL_CLAWS(ItemID.STEEL_CLAWS, 43, 75), + STEEL_2H_SWORD(ItemID.STEEL_2H_SWORD, 44, 112.5f), + STEEL_PLATELEGS(ItemID.STEEL_PLATELEGS, 46, 112.5f), + STEEL_PLATESKIRT(ItemID.STEEL_PLATESKIRT, 46, 112.5f), + STEEL_PLATEBODY(ItemID.STEEL_PLATEBODY, 48, 187.5f), + BULLSEYE_LANTERN_UNF(ItemID.BULLSEYE_LANTERN_UNF, 49, 37), + MITHRIL_DAGGER(ItemID.MITHRIL_DAGGER, 50, 50), + MITHRIL_BAR(ItemID.MITHRIL_BAR, 50, 30), + MITHRIL_AXE(ItemID.MITHRIL_AXE, 51, 50), + MITHRIL_MACE(ItemID.MITHRIL_MACE, 52, 50), + MITHRIL_MED_HELM(ItemID.MITHRIL_MED_HELM, 53, 50), + MITHRIL_BOLTS_UNF(ItemID.MITHRIL_BOLTS_UNF, 53, 50), + MITHRIL_SWORD(ItemID.MITHRIL_SWORD, 54, 50), + MITHRIL_DART_TIP(ItemID.MITHRIL_DART_TIP, 54, 50), + MITHRIL_NAILS(ItemID.MITHRIL_NAILS, 54, 50), + MITHRIL_ARROWTIPS(ItemID.MITHRIL_ARROWTIPS, 55, 50), + MITHRIL_SCIMITAR(ItemID.MITHRIL_SCIMITAR, 55, 100), + MITHRIL_HASTA(ItemID.MITHRIL_HASTA, 55, 100), + MITHRIL_SPEAR(ItemID.MITHRIL_SPEAR, 55, 100), + MITHRIL_LONGSWORD(ItemID.MITHRIL_LONGSWORD, 56, 100), + MITHRIL_JAVELIN_HEADS(ItemID.MITHRIL_JAVELIN_HEADS, 56, 50), + MITHRIL_LIMBS(ItemID.MITHRIL_LIMBS, 56, 50), + MITHRIL_FULL_HELM(ItemID.MITHRIL_FULL_HELM, 57, 100), + MITHRIL_KNIFE(ItemID.MITHRIL_KNIFE, 57, 50), + MITHRIL_SQ_SHIELD(ItemID.MITHRIL_SQ_SHIELD, 58, 100), + MITH_GRAPPLE_TIP(ItemID.MITH_GRAPPLE_TIP, 59, 50), + MITHRIL_WARHAMMER(ItemID.MITHRIL_WARHAMMER, 59, 150), + DRAGON_SQ_SHIELD(ItemID.DRAGON_SQ_SHIELD, 60, 75), + MITHRIL_BATTLEAXE(ItemID.MITHRIL_BATTLEAXE, 60, 150), + MITHRIL_CHAINBODY(ItemID.MITHRIL_CHAINBODY, 61, 150), + MITHRIL_KITESHIELD(ItemID.MITHRIL_KITESHIELD, 62, 150), + MITHRIL_CLAWS(ItemID.MITHRIL_CLAWS, 63, 100), + MITHRIL_2H_SWORD(ItemID.MITHRIL_2H_SWORD, 64, 150), + MITHRIL_PLATESKIRT(ItemID.MITHRIL_PLATESKIRT, 66, 150), + MITHRIL_PLATELEGS(ItemID.MITHRIL_PLATELEGS, 66, 150), + MITHRIL_PLATEBODY(ItemID.MITHRIL_PLATEBODY, 68, 250), + ADAMANT_DAGGER(ItemID.ADAMANT_DAGGER, 70, 62.5f), + ADAMANTITE_BAR(ItemID.ADAMANTITE_BAR, 70, 37.5f), + ADAMANT_AXE(ItemID.ADAMANT_AXE, 71, 62.5f), + ADAMANT_MACE(ItemID.ADAMANT_MACE, 72, 62.5f), + ADAMANT_BOLTS_UNF(ItemID.ADAMANT_BOLTSUNF, 73, 62.5f), + ADAMANT_MED_HELM(ItemID.ADAMANT_MED_HELM, 73, 62.5f), + ADAMANT_DART_TIP(ItemID.ADAMANT_DART_TIP, 74, 62.5f), + ADAMANT_SWORD(ItemID.ADAMANT_SWORD, 74, 62.5f), + ADAMANTITE_NAILS(ItemID.ADAMANTITE_NAILS, 74, 62.5f), + ADAMANT_ARROWTIPS(ItemID.ADAMANT_ARROWTIPS, 75, 62.5f), + ADAMANT_SCIMITAR(ItemID.ADAMANT_SCIMITAR, 75, 125), + ADAMANT_HASTA(ItemID.ADAMANT_HASTA, 75, 125), + ADAMANT_SPEAR(ItemID.ADAMANT_SPEAR, 75, 125), + ADAMANTITE_LIMBS(ItemID.ADAMANTITE_LIMBS, 76, 62.5f), + ADAMANT_LONGSWORD(ItemID.ADAMANT_LONGSWORD, 76, 125), + ADAMANT_JAVELIN_HEADS(ItemID.ADAMANT_JAVELIN_HEADS, 76, 62.5f), + ADAMANT_FULL_HELM(ItemID.ADAMANT_FULL_HELM, 77, 125), + ADAMANT_KNIFE(ItemID.ADAMANT_KNIFE, 77, 62.5f), + ADAMANT_SQ_SHIELD(ItemID.ADAMANT_SQ_SHIELD, 78, 125), + ADAMANT_WARHAMMER(ItemID.ADAMANT_WARHAMMER, 79, 187.5f), + ADAMANT_BATTLEAXE(ItemID.ADAMANT_BATTLEAXE, 80, 187.5f), + ADAMANT_CHAINBODY(ItemID.ADAMANT_CHAINBODY, 81, 187.5f), + ADAMANT_KITESHIELD(ItemID.ADAMANT_KITESHIELD, 82, 187.5f), + ADAMANT_CLAWS(ItemID.ADAMANT_CLAWS, 83, 125), + ADAMANT_2H_SWORD(ItemID.ADAMANT_2H_SWORD, 84, 187.5f), + RUNITE_BAR(ItemID.RUNITE_BAR, 85, 50), + RUNE_DAGGER(ItemID.RUNE_DAGGER, 85, 75), + RUNE_AXE(ItemID.RUNE_AXE, 86, 75), + ADAMANT_PLATESKIRT(ItemID.ADAMANT_PLATESKIRT, 86, 187.5f), + ADAMANT_PLATELEGS(ItemID.ADAMANT_PLATELEGS, 86, 187.5f), + RUNE_MACE(ItemID.RUNE_MACE, 87, 75), + RUNITE_BOLTS_UNF(ItemID.RUNITE_BOLTS_UNF, 88, 75), + RUNE_MED_HELM(ItemID.RUNE_MED_HELM, 88, 75), + ADAMANT_PLATEBODY(ItemID.ADAMANT_PLATEBODY, 88, 312.5f), + RUNE_SWORD(ItemID.RUNE_SWORD, 89, 75), + RUNE_NAILS(ItemID.RUNE_NAILS, 89, 75), + RUNE_DART_TIP(ItemID.RUNE_DART_TIP, 89, 75), + RUNE_ARROWTIPS(ItemID.RUNE_ARROWTIPS, 90, 75), + RUNE_SCIMITAR(ItemID.RUNE_SCIMITAR, 90, 150), + RUNE_HASTA(ItemID.RUNE_HASTA, 90, 150), + RUNE_SPEAR(ItemID.RUNE_SPEAR, 90, 150), + DRAGONFIRE_SHIELD(ItemID.DRAGONFIRE_SHIELD, 90, 2000), + RUNE_LONGSWORD(ItemID.RUNE_LONGSWORD, 91, 150), + RUNE_JAVELIN_HEADS(ItemID.RUNE_JAVELIN_HEADS, 91, 75), + RUNITE_LIMBS(ItemID.RUNITE_LIMBS, 91, 75), + RUNE_KNIFE(ItemID.RUNE_KNIFE, 92, 75), + RUNE_FULL_HELM(ItemID.RUNE_FULL_HELM, 92, 150), + RUNE_SQ_SHIELD(ItemID.RUNE_SQ_SHIELD, 93, 150), + RUNE_WARHAMMER(ItemID.RUNE_WARHAMMER, 94, 225), + RUNE_BATTLEAXE(ItemID.RUNE_BATTLEAXE, 95, 225), + RUNE_CHAINBODY(ItemID.RUNE_CHAINBODY, 96, 225), + RUNE_KITESHIELD(ItemID.RUNE_KITESHIELD, 97, 225), + RUNE_CLAWS(ItemID.RUNE_CLAWS, 98, 150), + RUNE_PLATEBODY(ItemID.RUNE_PLATEBODY, 99, 375), + RUNE_PLATESKIRT(ItemID.RUNE_PLATESKIRT, 99, 225), + RUNE_PLATELEGS(ItemID.RUNE_PLATELEGS, 99, 225), + RUNE_2H_SWORD(ItemID.RUNE_2H_SWORD, 99, 225), ; - private final String name; + private final int itemId; private final int level; private final float xp; - private final int icon; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java index 1f168e6dba..0809ef0b72 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java @@ -30,7 +30,7 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum ThievingAction implements SkillAction +public enum ThievingAction implements NamedSkillAction { MAN_OR_WOMAN("Man / Woman", 1, 8, ItemID.MAN), WINTER_SQIRKJUICE("Winter Sq'irkjuice", 1, 350, ItemID.WINTER_SQIRKJUICE), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java index 6bb90b5ea1..8aad519aaa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/WoodcuttingAction.java @@ -30,7 +30,7 @@ import net.runelite.api.ItemID; @AllArgsConstructor @Getter -public enum WoodcuttingAction implements SkillAction +public enum WoodcuttingAction implements NamedSkillAction { LOGS("Logs", 1, 25, ItemID.LOGS), ACHEY_TREE_LOGS("Achey tree logs", 1, 25, ItemID.ACHEY_TREE_LOGS), From 546cd6daf82f0bd2081109506269aa63728ecdde Mon Sep 17 00:00:00 2001 From: neatclient12345 <88599015+neatclient12345@users.noreply.github.com> Date: Tue, 28 Sep 2021 19:43:31 -0700 Subject: [PATCH 08/14] skill calculator: Fix grammar 0-action selections (#13995) --- .../client/plugins/skillcalculator/SkillCalculator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java index 5bc35696ca..8d9581adde 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java @@ -365,7 +365,7 @@ class SkillCalculator extends JPanel private static String formatXPActionString(double xp, int actionCount, String expExpression) { - return XP_FORMAT.format(xp) + expExpression + NumberFormat.getIntegerInstance().format(actionCount) + (actionCount > 1 ? " actions" : " action"); + return XP_FORMAT.format(xp) + expExpression + NumberFormat.getIntegerInstance().format(actionCount) + (actionCount == 1 ? " action" : " actions"); } private void updateInputFields() From 1294984dcefca9511d9e278c1bce2161a212c601 Mon Sep 17 00:00:00 2001 From: dekvall Date: Tue, 28 Sep 2021 19:51:53 -0700 Subject: [PATCH 09/14] skill calculator: Add common thieving chests --- .../client/plugins/skillcalculator/skills/ThievingAction.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java index 0809ef0b72..c43a1414a1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/ThievingAction.java @@ -48,6 +48,7 @@ public enum ThievingAction implements NamedSkillAction FRUIT_STALL("Fruit Stall", 25, 28, ItemID.STRANGE_FRUIT), SPRING_SQIRKJUICE("Spring Sq'irkjuice", 25, 1350, ItemID.SPRING_SQIRKJUICE), SEED_STALL("Seed Stall", 27, 10, ItemID.POTATO_SEED), + NATURE_RUNE_CHEST("Nature Rune Chest", 28, 25, ItemID.NATURE_RUNE), ROGUE("Rogue", 32, 35.5f, ItemID.ROGUE), FUR_STALL("Fur Stall", 35, 36, ItemID.GREY_WOLF_FUR), CAVE_GOBLIN("Cave Goblin", 36, 40, ItemID.CAVE_GOBLIN), @@ -63,6 +64,7 @@ public enum ThievingAction implements NamedSkillAction DESERT_BANDIT("Desert Bandit", 53, 79.5f, ItemID.BANDIT), KNIGHT("Knight", 55, 84.3f, ItemID.KNIGHT_OF_ARDOUGNE), POLLNIVNIAN_BANDIT("Pollnivnian Bandit", 55, 84.3f, ItemID.BANDIT_6781), + STONE_CHEST("Stone Chest", 64, 280, ItemID.XERICIAN_FABRIC), MAGIC_STALL("Magic Stall", 65, 100, ItemID.AIR_RUNE_6422), SCIMITAR_STALL("Scimitar Stall", 65, 100, ItemID.STEEL_SCIMITAR), MENAPHITE_THUG("Menaphite Thug", 65, 137.5f, ItemID.MENAPHITE_THUG), @@ -72,8 +74,10 @@ public enum ThievingAction implements NamedSkillAction PALADIN("Paladin", 70, 151.8f, ItemID.PALADIN), GNOME("Gnome", 75, 198.5f, ItemID.GNOME), GEMS_STALL("Gems Stall", 75, 160, ItemID.SAPPHIRE), + DORGESH_KAAN_RICH_CHEST("Dorgesh-Kaan Rich Chest", 78, 650, ItemID.MINING_HELMET), HERO("Hero", 80, 275, ItemID.HERO), VYRE("Vyre", 82, 306.9f, ItemID.VYRE), + ROGUES_CASTLE_CHEST("Wilderness Rogues' Chest", 84, 100, ItemID.DRAGONSTONE), ELF("Elf", 85, 353, ItemID.ELF), TZHAAR_HUR("TzHaar-Hur", 90, 103.4f, ItemID.TZHAARHUR), ; From 9209de31e27a13916dc98812f49cfb07cc369cf0 Mon Sep 17 00:00:00 2001 From: evaan Date: Tue, 28 Sep 2021 20:03:51 -0700 Subject: [PATCH 10/14] skill calculator: Add bonecrusher prayer bonus --- .../client/plugins/skillcalculator/skills/PrayerBonus.java | 1 + 1 file changed, 1 insertion(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java index 872d52e8d3..bf0f48c537 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/skills/PrayerBonus.java @@ -35,6 +35,7 @@ public enum PrayerBonus implements SkillBonus ECTOFUNTUS("Ectofuntus (400%)", 3), CHAOS_ALTAR("Chaos Altar (700%)", 6), MORYTANIA_DIARY_3_SHADES("Morytania Diary 3 Shades(150%)", 0.5f), + BONECRUSHER("Bonecrusher (50%)", -0.5f), ; private final String name; From b6316b47728e18ca2b76941a58543d8fd8f0e759 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 28 Sep 2021 23:34:57 -0400 Subject: [PATCH 11/14] api: move Favour to achievementdiary plugin --- .../main/java/net/runelite/api/Favour.java | 45 ------------------- .../achievementdiary/FavourRequirement.java | 19 +++++++- .../diaries/KourendDiaryRequirement.java | 31 +++++++------ 3 files changed, 33 insertions(+), 62 deletions(-) delete mode 100644 runelite-api/src/main/java/net/runelite/api/Favour.java diff --git a/runelite-api/src/main/java/net/runelite/api/Favour.java b/runelite-api/src/main/java/net/runelite/api/Favour.java deleted file mode 100644 index 38904257b1..0000000000 --- a/runelite-api/src/main/java/net/runelite/api/Favour.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2019 William - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.api; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * An enumeration of Kourend house favour the player can earn. - */ -@RequiredArgsConstructor -@Getter -public enum Favour -{ - ARCEUUS("Arceuus", Varbits.KOUREND_FAVOR_ARCEUUS), - HOSIDIUS("Hosidius", Varbits.KOUREND_FAVOR_HOSIDIUS), - LOVAKENGJ("Lovakengj", Varbits.KOUREND_FAVOR_LOVAKENGJ), - PISCARILIUS("Piscarilius", Varbits.KOUREND_FAVOR_PISCARILIUS), - SHAYZIEN("Shayzien", Varbits.KOUREND_FAVOR_SHAYZIEN); - - private final String name; - private final Varbits varbit; -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java index a39953492c..ef608a2be5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/FavourRequirement.java @@ -27,12 +27,29 @@ package net.runelite.client.plugins.achievementdiary; import lombok.Getter; import lombok.RequiredArgsConstructor; import net.runelite.api.Client; -import net.runelite.api.Favour; +import net.runelite.api.Varbits; @RequiredArgsConstructor @Getter public class FavourRequirement implements Requirement { + /** + * An enumeration of Kourend house favour the player can earn. + */ + @RequiredArgsConstructor + @Getter + public enum Favour + { + ARCEUUS("Arceuus", Varbits.KOUREND_FAVOR_ARCEUUS), + HOSIDIUS("Hosidius", Varbits.KOUREND_FAVOR_HOSIDIUS), + LOVAKENGJ("Lovakengj", Varbits.KOUREND_FAVOR_LOVAKENGJ), + PISCARILIUS("Piscarilius", Varbits.KOUREND_FAVOR_PISCARILIUS), + SHAYZIEN("Shayzien", Varbits.KOUREND_FAVOR_SHAYZIEN); + + private final String name; + private final Varbits varbit; + } + private final Favour house; private final int percent; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/diaries/KourendDiaryRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/diaries/KourendDiaryRequirement.java index 2cde458c8e..6a44468381 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/diaries/KourendDiaryRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/diaries/KourendDiaryRequirement.java @@ -24,13 +24,12 @@ */ package net.runelite.client.plugins.achievementdiary.diaries; -import net.runelite.api.Favour; import net.runelite.api.Quest; import net.runelite.api.Skill; -import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement; -import net.runelite.client.plugins.achievementdiary.SkillRequirement; -import net.runelite.client.plugins.achievementdiary.QuestRequirement; import net.runelite.client.plugins.achievementdiary.FavourRequirement; +import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement; +import net.runelite.client.plugins.achievementdiary.QuestRequirement; +import net.runelite.client.plugins.achievementdiary.SkillRequirement; public class KourendDiaryRequirement extends GenericDiaryRequirement { @@ -41,7 +40,7 @@ public class KourendDiaryRequirement extends GenericDiaryRequirement new SkillRequirement(Skill.MINING, 15)); add("Steal from a Hosidius Food Stall.", new SkillRequirement(Skill.THIEVING, 25), - new FavourRequirement(Favour.HOSIDIUS, 15)); + new FavourRequirement(FavourRequirement.Favour.HOSIDIUS, 15)); add("Browse the Warrens General Store.", new QuestRequirement(Quest.THE_QUEEN_OF_THIEVES, true)); add("Enter your Player Owned House from Hosidius.", @@ -65,11 +64,11 @@ public class KourendDiaryRequirement extends GenericDiaryRequirement add("Enter the Farming Guild.", new SkillRequirement(Skill.FARMING, 45)); add("Switch to the Necromancy Spellbook at Tyss.", - new FavourRequirement(Favour.ARCEUUS, 60)); + new FavourRequirement(FavourRequirement.Favour.ARCEUUS, 60)); add("Repair a Piscarilius crane.", new SkillRequirement(Skill.CRAFTING, 30)); add("Deliver some intelligence to Captain Ginea.", - new FavourRequirement(Favour.SHAYZIEN, 40)); + new FavourRequirement(FavourRequirement.Favour.SHAYZIEN, 40)); add("Catch a Bluegill on Molch Island.", new SkillRequirement(Skill.FISHING, 43), new SkillRequirement(Skill.HUNTER, 35)); @@ -86,23 +85,23 @@ public class KourendDiaryRequirement extends GenericDiaryRequirement //HARD add("Enter the Woodcutting Guild.", new SkillRequirement(Skill.WOODCUTTING, 60), - new FavourRequirement(Favour.HOSIDIUS, 75)); + new FavourRequirement(FavourRequirement.Favour.HOSIDIUS, 75)); add("Smelt an Adamantite bar in The Forsaken Tower.", new SkillRequirement(Skill.SMITHING, 70), new QuestRequirement(Quest.THE_FORSAKEN_TOWER, true)); add("Kill a Lizardman Shaman in Molch.", - new FavourRequirement(Favour.SHAYZIEN, 100)); + new FavourRequirement(FavourRequirement.Favour.SHAYZIEN, 100)); add("Mine some Lovakite.", new SkillRequirement(Skill.MINING, 65), - new FavourRequirement(Favour.LOVAKENGJ, 30)); + new FavourRequirement(FavourRequirement.Favour.LOVAKENGJ, 30)); add("Plant some Logavano seeds at the Tithe Farm.", new SkillRequirement(Skill.FARMING, 74), - new FavourRequirement(Favour.HOSIDIUS, 100)); + new FavourRequirement(FavourRequirement.Favour.HOSIDIUS, 100)); add("Teleport to Xeric's Heart using Xeric's Talisman.", new QuestRequirement(Quest.ARCHITECTURAL_ALLIANCE)); add("Deliver an artefact to Captain Khaled.", new SkillRequirement(Skill.THIEVING, 49), - new FavourRequirement(Favour.PISCARILIUS, 75)); + new FavourRequirement(FavourRequirement.Favour.PISCARILIUS, 75)); add("Kill a Wyrm in the Karuulm Slayer Dungeon.", new SkillRequirement(Skill.SLAYER, 62)); add("Cast Monster Examine on a Troll south of Mount Quidamortem.", @@ -114,21 +113,21 @@ public class KourendDiaryRequirement extends GenericDiaryRequirement new SkillRequirement(Skill.RUNECRAFT, 77), new SkillRequirement(Skill.MINING, 38), new SkillRequirement(Skill.CRAFTING, 38), - new FavourRequirement(Favour.ARCEUUS, 100)); + new FavourRequirement(FavourRequirement.Favour.ARCEUUS, 100)); add("Chop some Redwood logs.", new SkillRequirement(Skill.WOODCUTTING, 90), - new FavourRequirement(Favour.HOSIDIUS, 75)); + new FavourRequirement(FavourRequirement.Favour.HOSIDIUS, 75)); add("Catch an Anglerfish and cook it whilst in Great Kourend.", new SkillRequirement(Skill.FISHING, 82), new SkillRequirement(Skill.COOKING, 84), - new FavourRequirement(Favour.PISCARILIUS, 100)); + new FavourRequirement(FavourRequirement.Favour.PISCARILIUS, 100)); add("Kill a Hydra in the Karuulm Slayer Dungeon.", new SkillRequirement(Skill.SLAYER, 95)); add("Create an Ape Atoll teleport tablet.", new SkillRequirement(Skill.MAGIC, 90), new SkillRequirement(Skill.MINING, 38), new SkillRequirement(Skill.CRAFTING, 38), - new FavourRequirement(Favour.ARCEUUS, 100)); + new FavourRequirement(FavourRequirement.Favour.ARCEUUS, 100)); add("Create your own Battlestaff from scratch within the Farming Guild.", new SkillRequirement(Skill.FARMING, 85), new SkillRequirement(Skill.FLETCHING, 40)); From c1f442e36ee96f657b8682e56c8e4aeb6093315d Mon Sep 17 00:00:00 2001 From: Hydrox6 Date: Fri, 25 Jun 2021 20:43:03 +0100 Subject: [PATCH 12/14] gpu: display device and driver being used during plugin startup --- .../runelite/client/plugins/gpu/GpuPlugin.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index b8a533e7c9..536527b205 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -328,6 +328,24 @@ public class GpuPlugin extends Plugin implements DrawCallbacks invokeOnMainThread(() -> { + try + { + // Get and display the device and driver used by the GPU plugin + GLDrawable dummyDrawable = GLDrawableFactory.getFactory(GLProfile.getDefault()) + .createDummyDrawable(GLProfile.getDefaultDevice(), true, new GLCapabilities(GLProfile.getDefault()), null); + dummyDrawable.setRealized(true); + GLContext versionContext = dummyDrawable.createContext(null); + versionContext.makeCurrent(); + GL versionGL = versionContext.getGL(); + log.info("Using device: {}", versionGL.glGetString(GL.GL_RENDERER)); + log.info("Using driver: {}", versionGL.glGetString(GL.GL_VERSION)); + versionContext.destroy(); + } + catch (Exception ex) + { + log.warn("error checking device and driver version", ex); + } + GLProfile glProfile = GLProfile.get(GLProfile.GL4); GLCapabilities glCaps = new GLCapabilities(glProfile); From 8d537cabf1acab37ec91bc1ff67de475eddaabb6 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 28 Sep 2021 14:49:27 -0400 Subject: [PATCH 13/14] api: add clan ids and accessors --- runelite-api/pom.xml | 1 + .../main/java/net/runelite/api/Client.java | 18 +++++++++ .../java/net/runelite/api/clan/ClanID.java | 37 +++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 runelite-api/src/main/java/net/runelite/api/clan/ClanID.java diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index a6dd776d73..1b2e9d6de4 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -86,6 +86,7 @@ runtime + net/runelite/api/clan/ClanID.class net/runelite/api/AnimationID.class net/runelite/api/EnumID.class net/runelite/api/FontID.class diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 6dceaf0f0e..4c72f833a3 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1916,4 +1916,22 @@ public interface Client extends GameEngine */ @Nullable ClanSettings getGuestClanSettings(); + + /** + * Get clan channel by id. + * @param clanId the clan id + * @return + * @see net.runelite.api.clan.ClanID + */ + @Nullable + ClanChannel getClanChannel(int clanId); + + /** + * Get clan settings by id + * @param clanId the clan id + * @return + * @see net.runelite.api.clan.ClanID + */ + @Nullable + ClanSettings getClanSettings(int clanId); } diff --git a/runelite-api/src/main/java/net/runelite/api/clan/ClanID.java b/runelite-api/src/main/java/net/runelite/api/clan/ClanID.java new file mode 100644 index 0000000000..5b0c59b37a --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/clan/ClanID.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.api.clan; + +public final class ClanID +{ + /** + * The primary clan. + */ + public static final int CLAN = 0; + /** + * The group ironman clan. + */ + public static final int GROUP_IRONMAN = 1; +} From e60ce99081d5908cb3e2d7f87c9ce7cba0f9051b Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 30 Sep 2021 17:47:09 -0400 Subject: [PATCH 14/14] spec counter: add Dinh's bulwark --- .../runelite/client/plugins/specialcounter/SpecialWeapon.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialWeapon.java b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialWeapon.java index e638b1b713..2011a2e0e6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialWeapon.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialWeapon.java @@ -39,7 +39,8 @@ enum SpecialWeapon BANDOS_GODSWORD("Bandos Godsword", new int[]{ItemID.BANDOS_GODSWORD, ItemID.BANDOS_GODSWORD_OR}, true, SpecialCounterConfig::bandosGodswordThreshold), BARRELCHEST_ANCHOR("Barrelchest Anchor", new int[]{ItemID.BARRELCHEST_ANCHOR}, true, (c) -> 0), BONE_DAGGER("Bone Dagger", new int[]{ItemID.BONE_DAGGER, ItemID.BONE_DAGGER_P, ItemID.BONE_DAGGER_P_8876, ItemID.BONE_DAGGER_P_8878}, true, (c) -> 0), - DORGESHUUN_CROSSBOW("Dorgeshuun Crossbow", new int[]{ItemID.DORGESHUUN_CROSSBOW}, true, (c) -> 0); + DORGESHUUN_CROSSBOW("Dorgeshuun Crossbow", new int[]{ItemID.DORGESHUUN_CROSSBOW}, true, (c) -> 0), + BULWARK("Dinh's Bulwark", new int[]{ItemID.DINHS_BULWARK}, false, c -> 0); private final String name; private final int[] itemID;