diff --git a/src/main/java/work/fking/masteringmixology/MasteringMixologyConfig.java b/src/main/java/work/fking/masteringmixology/MasteringMixologyConfig.java index da7a5ac..d602c04 100644 --- a/src/main/java/work/fking/masteringmixology/MasteringMixologyConfig.java +++ b/src/main/java/work/fking/masteringmixology/MasteringMixologyConfig.java @@ -21,16 +21,6 @@ public interface MasteringMixologyConfig extends Config { ) String HIGHLIGHTS = "Highlights"; - @ConfigItem( - keyName = "strategy", - name = "Strategy", - description = "Selects the potion order highlighting strategy", - position = 1 - ) - default Strategy strategy() { - return Strategy.FAVOR_EXPERIENCE; - } - @ConfigItem( keyName = "highlightLevers", name = "Highlight levers", diff --git a/src/main/java/work/fking/masteringmixology/MasteringMixologyPlugin.java b/src/main/java/work/fking/masteringmixology/MasteringMixologyPlugin.java index cae3071..1fcdce3 100644 --- a/src/main/java/work/fking/masteringmixology/MasteringMixologyPlugin.java +++ b/src/main/java/work/fking/masteringmixology/MasteringMixologyPlugin.java @@ -25,7 +25,6 @@ import net.runelite.client.ui.overlay.OverlayManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import work.fking.masteringmixology.evaluator.PotionOrderEvaluator.EvaluatorContext; import javax.inject.Inject; import java.awt.Color; @@ -105,7 +104,6 @@ public class MasteringMixologyPlugin extends Plugin { private final Map highlightedObjects = new LinkedHashMap<>(); private List potionOrders = Collections.emptyList(); - private PotionOrder bestPotionOrder; private boolean inLab = false; private PotionType alembicPotionType; @@ -394,11 +392,10 @@ public void onScriptPostFired(ScriptPostFired event) { if (textComponents.size() < 4) { return; } - var bestPotionOrderIdx = bestPotionOrder != null ? bestPotionOrder.idx() : -1; for (var order : potionOrders) { // The first text widget is always the interface title 'Potion Orders' - appendPotionRecipe(textComponents.get(order.idx()), order.idx(), bestPotionOrderIdx == order.idx(), order.fulfilled()); + appendPotionRecipe(textComponents.get(order.idx()), order.idx(), order.fulfilled()); } } @@ -482,18 +479,7 @@ private void unHighlightLevers() { private void updatePotionOrders() { LOGGER.debug("Updating potion orders"); potionOrders = getPotionOrders(); - var strategy = config.strategy(); - - if (strategy != Strategy.NONE) { - var evaluatorContext = new EvaluatorContext( - potionOrders, - client.getVarpValue(VARP_LYE_RESIN), - client.getVarpValue(VARP_AGA_RESIN), - client.getVarpValue(VARP_MOX_RESIN) - ); - bestPotionOrder = strategy.evaluator().evaluate(evaluatorContext); - LOGGER.debug("Best potion order: {}", bestPotionOrder); - } + // Trigger a fake varbit update to force run the clientscript proc var varbitType = client.getVarbit(VARBIT_POTION_ORDER_1); @@ -515,19 +501,13 @@ private List findTextComponents(Widget parent) { return textComponents; } - private void appendPotionRecipe(Widget component, int orderIdx, boolean highlight, boolean fulfilled) { + private void appendPotionRecipe(Widget component, int orderIdx, boolean fulfilled) { var potionType = getPotionType(orderIdx); if (potionType == null) { return; } - var builder = new StringBuilder(); - - if (highlight) { - builder.append("").append(component.getText()).append(""); - } else { - builder.append(component.getText()); - } + var builder = new StringBuilder(component.getText()); if (fulfilled) { builder.append(" (done!)"); diff --git a/src/main/java/work/fking/masteringmixology/Strategy.java b/src/main/java/work/fking/masteringmixology/Strategy.java deleted file mode 100644 index 2a07026..0000000 --- a/src/main/java/work/fking/masteringmixology/Strategy.java +++ /dev/null @@ -1,33 +0,0 @@ -package work.fking.masteringmixology; - -import work.fking.masteringmixology.evaluator.BestExperienceEvaluator; -import work.fking.masteringmixology.evaluator.FavorModifierEvaluator; -import work.fking.masteringmixology.evaluator.FavorComponentEvaluator; -import work.fking.masteringmixology.evaluator.PotionOrderEvaluator; - -public enum Strategy { - NONE("None", null), - FAVOR_EXPERIENCE("Favor experience", new BestExperienceEvaluator()), - FAVOR_ALEMBIC("Favor alembic", new FavorModifierEvaluator(PotionModifier.CRYSTALISED)), - FAVOR_RETORT("Favor retort", new FavorModifierEvaluator(PotionModifier.CONCENTRATED)), - FAVOR_MOX("Favor mox", new FavorComponentEvaluator(PotionComponent.MOX)), - FAVOR_AGA("Favor aga", new FavorComponentEvaluator(PotionComponent.AGA)), - FAVOR_LYE("Favor lye", new FavorComponentEvaluator(PotionComponent.LYE)); - - private final String name; - private final PotionOrderEvaluator evaluator; - - Strategy(String name, PotionOrderEvaluator evaluator) { - this.name = name; - this.evaluator = evaluator; - } - - public PotionOrderEvaluator evaluator() { - return evaluator; - } - - @Override - public String toString() { - return name; - } -} diff --git a/src/main/java/work/fking/masteringmixology/evaluator/BestExperienceEvaluator.java b/src/main/java/work/fking/masteringmixology/evaluator/BestExperienceEvaluator.java deleted file mode 100644 index 3a3b842..0000000 --- a/src/main/java/work/fking/masteringmixology/evaluator/BestExperienceEvaluator.java +++ /dev/null @@ -1,24 +0,0 @@ -package work.fking.masteringmixology.evaluator; - -import work.fking.masteringmixology.PotionOrder; - -public class BestExperienceEvaluator implements PotionOrderEvaluator { - - @Override - public PotionOrder evaluate(EvaluatorContext context) { - PotionOrder bestOrder = null; - var bestExperience = 0; - - for (PotionOrder order : context.orders()) { - var potionExperience = order.potionType().experience(); - var modifierExperience = order.potionModifier().quickActionExperience(); - var totalExperience = potionExperience + modifierExperience; - - if (totalExperience > bestExperience) { - bestOrder = order; - bestExperience = totalExperience; - } - } - return bestOrder; - } -} diff --git a/src/main/java/work/fking/masteringmixology/evaluator/FavorComponentEvaluator.java b/src/main/java/work/fking/masteringmixology/evaluator/FavorComponentEvaluator.java deleted file mode 100644 index 493f662..0000000 --- a/src/main/java/work/fking/masteringmixology/evaluator/FavorComponentEvaluator.java +++ /dev/null @@ -1,42 +0,0 @@ -package work.fking.masteringmixology.evaluator; - -import work.fking.masteringmixology.PotionComponent; -import work.fking.masteringmixology.PotionOrder; -import work.fking.masteringmixology.PotionType; - -public class FavorComponentEvaluator implements PotionOrderEvaluator { - - private final PotionComponent favoredComponent; - - public FavorComponentEvaluator(PotionComponent favoredComponent) { - this.favoredComponent = favoredComponent; - } - - @Override - public PotionOrder evaluate(EvaluatorContext context) { - PotionOrder bestOrder = null; - var bestScore = 0; - - for (var order : context.orders()) { - var score = computePotionScore(order.potionType()); - if (score > bestScore) { - bestOrder = order; - bestScore = score; - } - } - return bestOrder; - } - - private int computePotionScore(PotionType potionType) { - var score = 0; - - for (var component : potionType.components()) { - if (component == favoredComponent) { - score += 3; - } else { - score++; - } - } - return score; - } -} diff --git a/src/main/java/work/fking/masteringmixology/evaluator/FavorModifierEvaluator.java b/src/main/java/work/fking/masteringmixology/evaluator/FavorModifierEvaluator.java deleted file mode 100644 index 2a9bac4..0000000 --- a/src/main/java/work/fking/masteringmixology/evaluator/FavorModifierEvaluator.java +++ /dev/null @@ -1,23 +0,0 @@ -package work.fking.masteringmixology.evaluator; - -import work.fking.masteringmixology.PotionModifier; -import work.fking.masteringmixology.PotionOrder; - -public class FavorModifierEvaluator implements PotionOrderEvaluator { - - private final PotionModifier modifier; - - public FavorModifierEvaluator(PotionModifier modifier) { - this.modifier = modifier; - } - - @Override - public PotionOrder evaluate(EvaluatorContext context) { - for (var order : context.orders()) { - if (order.potionModifier() == modifier) { - return order; - } - } - return null; - } -} diff --git a/src/main/java/work/fking/masteringmixology/evaluator/PotionOrderEvaluator.java b/src/main/java/work/fking/masteringmixology/evaluator/PotionOrderEvaluator.java deleted file mode 100644 index b781dc4..0000000 --- a/src/main/java/work/fking/masteringmixology/evaluator/PotionOrderEvaluator.java +++ /dev/null @@ -1,47 +0,0 @@ -package work.fking.masteringmixology.evaluator; - -import work.fking.masteringmixology.PotionOrder; - -import java.util.List; - -public interface PotionOrderEvaluator { - - /** - * Evaluates all the potion orders and determines which one should be highlighted. - * - * @param context The context containing the potion orders and additional player related information. - * @return The potion order to be highlighted. - */ - PotionOrder evaluate(EvaluatorContext context); - - class EvaluatorContext { - - private final List orders; - private final int lyeResin; - private final int agaResin; - private final int moxResin; - - public EvaluatorContext(List orders, int lyeResin, int agaResin, int moxResin) { - this.orders = orders; - this.lyeResin = lyeResin; - this.agaResin = agaResin; - this.moxResin = moxResin; - } - - public List orders() { - return orders; - } - - public int lyeResin() { - return lyeResin; - } - - public int agaResin() { - return agaResin; - } - - public int moxResin() { - return moxResin; - } - } -}