diff --git a/runelite-api/src/main/java/net/runelite/api/Constants.java b/runelite-api/src/main/java/net/runelite/api/Constants.java index ffb2c1ba66..2d8ea3deed 100644 --- a/runelite-api/src/main/java/net/runelite/api/Constants.java +++ b/runelite-api/src/main/java/net/runelite/api/Constants.java @@ -97,4 +97,9 @@ public class Constants * All game-play actions operate within multiples of this duration. */ public static final int GAME_TICK_LENGTH = 600; + + /** + * Used when getting High Alchemy value - multiplied by general store price. + */ + public static final float HIGH_ALCHEMY_CONSTANT = 0.6f; } diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index 9799398854..0a7844f6a2 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -45,6 +45,7 @@ import lombok.Value; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM; +import static net.runelite.api.Constants.HIGH_ALCHEMY_CONSTANT; import net.runelite.api.GameState; import net.runelite.api.ItemComposition; import net.runelite.api.ItemID; @@ -187,9 +188,6 @@ public class ItemManager private final Color outlineColor; } - // Used when getting High Alchemy value - multiplied by general store price. - private static final float HIGH_ALCHEMY_CONSTANT = 0.6f; - private final Client client; private final ScheduledExecutorService scheduledExecutorService; private final ClientThread clientThread; @@ -425,7 +423,7 @@ public class ItemManager return 1000; } - return (int) (getItemComposition(itemID).getPrice() * HIGH_ALCHEMY_CONSTANT); + return (int) Math.max(1, getItemComposition(itemID).getPrice() * HIGH_ALCHEMY_CONSTANT); } /** diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java index fc5b592e11..e994790655 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java @@ -98,8 +98,6 @@ import net.runelite.client.util.Text; ) public class GroundItemsPlugin extends Plugin { - // Used when getting High Alchemy value - multiplied by general store price. - private static final float HIGH_ALCHEMY_CONSTANT = 0.6f; // ItemID for coins private static final int COINS = ItemID.COINS_995; @@ -322,7 +320,7 @@ public class GroundItemsPlugin extends Plugin for (ItemStack is : items) { composition = itemManager.getItemComposition(is.getId()); - Color itemColor = getHighlighted(composition.getName(), itemManager.getItemPrice(is.getId()) * is.getQuantity(), Math.round(composition.getPrice() * HIGH_ALCHEMY_CONSTANT) * is.getQuantity()); + Color itemColor = getHighlighted(composition.getName(), itemManager.getItemPrice(is.getId()) * is.getQuantity(), itemManager.getAlchValue(is.getId()) * is.getQuantity()); if (itemColor != null) { if (config.notifyHighlightedDrops() && itemColor.equals(config.highlightedColor())) @@ -483,7 +481,7 @@ public class GroundItemsPlugin extends Plugin final int itemId = item.getId(); final ItemComposition itemComposition = itemManager.getItemComposition(itemId); final int realItemId = itemComposition.getNote() != -1 ? itemComposition.getLinkedNoteId() : itemId; - final int alchPrice = Math.round(itemComposition.getPrice() * HIGH_ALCHEMY_CONSTANT); + final int alchPrice = itemManager.getAlchValue(realItemId); int durationMillis; if (client.isInInstancedRegion()) { @@ -614,7 +612,7 @@ public class GroundItemsPlugin extends Plugin final int realItemId = itemComposition.getNote() != -1 ? itemComposition.getLinkedNoteId() : itemComposition.getId(); final int itemPrice = itemManager.getItemPrice(realItemId); final int price = itemPrice <= 0 ? itemComposition.getPrice() : itemPrice; - final int haPrice = Math.round(itemComposition.getPrice() * HIGH_ALCHEMY_CONSTANT) * quantity; + final int haPrice = itemManager.getAlchValue(realItemId); final int gePrice = quantity * price; final Color hidden = getHidden(itemComposition.getName(), gePrice, haPrice, itemComposition.isTradeable()); final Color highlighted = getHighlighted(itemComposition.getName(), gePrice, haPrice); @@ -767,7 +765,7 @@ public class GroundItemsPlugin extends Plugin { final ItemComposition itemComposition = itemManager.getItemComposition(itemId); final int realItemId = itemComposition.getNote() != -1 ? itemComposition.getLinkedNoteId() : itemId; - final int alchPrice = Math.round(itemComposition.getPrice() * HIGH_ALCHEMY_CONSTANT); + final int alchPrice = itemManager.getAlchValue(realItemId); final int gePrice = itemManager.getItemPrice(realItemId); return getHidden(itemComposition.getName(), gePrice, alchPrice, itemComposition.isTradeable()) != null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java index 7a7fc07394..4c3d5fbad7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java @@ -48,7 +48,6 @@ public class HighAlchemyOverlay extends WidgetItemOverlay private final HighAlchemyPlugin plugin; private final int alchPrice; private final int alchPriceNoStaff; - private static final float HIGH_ALCHEMY_CONSTANT = 0.6f; @Inject public HighAlchemyOverlay(ItemManager itemManager, HighAlchemyPlugin plugin, HighAlchemyConfig config) @@ -107,9 +106,8 @@ public class HighAlchemyOverlay extends WidgetItemOverlay { return 0; } - ItemComposition itemComp = itemManager.getItemComposition(id); - float haValue = itemComp.getPrice() * HIGH_ALCHEMY_CONSTANT; - return Math.round(haValue); + + return itemManager.getAlchValue(id); } private int getHAProfit(int haPrice, int gePrice, int alchCost)