runelite-client: Centralize the high alchemy multiplier

This commit is contained in:
Max Weber
2019-06-17 04:16:58 -06:00
committed by Adam
parent f59c0be7f3
commit a8b00c9989
7 changed files with 19 additions and 14 deletions

View File

@@ -108,4 +108,10 @@ public class Constants
*/
public static final int ITEM_SPRITE_HEIGHT = 32;
/**
* High alchemy = shop price * HIGH_ALCHEMY_MULTIPLIER
*
* @see ItemComposition#getPrice
*/
public static final float HIGH_ALCHEMY_MULTIPLIER = .6f;
}

View File

@@ -87,6 +87,8 @@ public interface ItemComposition
* alchemy values, respectively.
*
* @return the general store value of the item
*
* @see Constants#HIGH_ALCHEMY_MULTIPLIER
*/
int getPrice();

View File

@@ -34,6 +34,7 @@ import javax.inject.Inject;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.InventoryID;
import net.runelite.api.Item;
import net.runelite.api.ItemComposition;
@@ -47,7 +48,6 @@ import net.runelite.client.game.ItemManager;
@Slf4j
class BankCalculation
{
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
private static final ImmutableList<Varbits> TAB_VARBITS = ImmutableList.of(
Varbits.BANK_TAB_ONE_COUNT,
Varbits.BANK_TAB_TWO_COUNT,
@@ -157,7 +157,7 @@ class BankCalculation
if (price > 0)
{
haPrice += (long) Math.round(price * HIGH_ALCHEMY_CONSTANT) *
haPrice += (long) Math.round(price * Constants.HIGH_ALCHEMY_MULTIPLIER) *
(long) quantity;
}
}

View File

@@ -36,6 +36,7 @@ import lombok.Value;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.Experience;
import net.runelite.api.IconID;
import net.runelite.api.ItemComposition;
@@ -80,7 +81,6 @@ import org.apache.commons.text.WordUtils;
@Slf4j
public class ChatCommandsPlugin extends Plugin
{
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
private static final Pattern KILLCOUNT_PATTERN = Pattern.compile("Your (.+) (?:kill|harvest) count is: <col=ff0000>(\\d+)</col>");
private static final Pattern RAIDS_PATTERN = Pattern.compile("Your completed (.+) count is: <col=ff0000>(\\d+)</col>");
private static final Pattern WINTERTODT_PATTERN = Pattern.compile("Your subdued Wintertodt count is: <col=ff0000>(\\d+)</col>");
@@ -614,7 +614,7 @@ public class ChatCommandsPlugin extends Plugin
ItemComposition itemComposition = itemManager.getItemComposition(itemId);
if (itemComposition != null)
{
int alchPrice = Math.round(itemComposition.getPrice() * HIGH_ALCHEMY_CONSTANT);
int alchPrice = Math.round(itemComposition.getPrice() * Constants.HIGH_ALCHEMY_MULTIPLIER);
builder
.append(ChatColorType.NORMAL)
.append(" HA value ")

View File

@@ -35,6 +35,7 @@ import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.ItemComposition;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.GameStateChanged;
@@ -68,7 +69,6 @@ import net.runelite.http.api.examine.ExamineClient;
@Slf4j
public class ExaminePlugin extends Plugin
{
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
private static final Pattern X_PATTERN = Pattern.compile("^\\d+ x ");
private final Deque<PendingExamine> pending = new ArrayDeque<>();
@@ -319,7 +319,7 @@ public class ExaminePlugin extends Plugin
quantity = Math.max(1, quantity);
int itemCompositionPrice = itemComposition.getPrice();
final int gePrice = itemManager.getItemPrice(id);
final int alchPrice = itemCompositionPrice <= 0 ? 0 : Math.round(itemCompositionPrice * HIGH_ALCHEMY_CONSTANT);
final int alchPrice = itemCompositionPrice <= 0 ? 0 : Math.round(itemCompositionPrice * Constants.HIGH_ALCHEMY_MULTIPLIER);
if (gePrice > 0 || alchPrice > 0)
{

View File

@@ -46,6 +46,7 @@ import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.GameState;
import net.runelite.api.Item;
import net.runelite.api.ItemComposition;
@@ -95,8 +96,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;
// Ground item menu options
@@ -369,7 +368,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 = Math.round(itemComposition.getPrice() * Constants.HIGH_ALCHEMY_MULTIPLIER);
final GroundItem groundItem = GroundItem.builder()
.id(itemId)
@@ -481,7 +480,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 = Math.round(itemComposition.getPrice() * Constants.HIGH_ALCHEMY_MULTIPLIER) * quantity;
final int gePrice = quantity * price;
final Color hidden = getHidden(itemComposition.getName(), gePrice, haPrice, itemComposition.isTradeable());
final Color highlighted = getHighlighted(itemComposition.getName(), gePrice, haPrice);

View File

@@ -29,6 +29,7 @@ import java.awt.Dimension;
import java.awt.Graphics2D;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.InventoryID;
import net.runelite.api.Item;
import net.runelite.api.ItemComposition;
@@ -48,9 +49,6 @@ import net.runelite.client.util.StackFormatter;
class ItemPricesOverlay extends Overlay
{
// Used when getting High Alchemy value - multiplied by general store price.
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
private static final int INVENTORY_ITEM_WIDGETID = WidgetInfo.INVENTORY.getPackedId();
private static final int BANK_INVENTORY_ITEM_WIDGETID = WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER.getPackedId();
private static final int BANK_ITEM_WIDGETID = WidgetInfo.BANK_ITEM_CONTAINER.getPackedId();
@@ -204,7 +202,7 @@ class ItemPricesOverlay extends Overlay
}
if (config.showHAValue())
{
haPrice = Math.round(itemDef.getPrice() * HIGH_ALCHEMY_CONSTANT);
haPrice = Math.round(itemDef.getPrice() * Constants.HIGH_ALCHEMY_MULTIPLIER);
}
if (gePrice > 0 && haPrice > 0 && config.showAlchProfit())
{