package net.scapeemulator.game.model.player.skills.herblore; import net.scapeemulator.game.dispatcher.item.ItemOnItemHandler; import net.scapeemulator.game.model.definition.ItemDefinitions; import net.scapeemulator.game.model.mob.Animation; import net.scapeemulator.game.model.player.Item; import net.scapeemulator.game.model.player.Player; import net.scapeemulator.game.model.player.SlottedItem; import net.scapeemulator.game.model.player.skills.MakeItemInterface; import net.scapeemulator.game.model.player.skills.MakeItemInterface.MakeItemInterfaceListener; /** * @author David Insley */ public class CombineSecondaryHandler extends ItemOnItemHandler { private static final Animation MIXING_ANIMATION = new Animation(363); private final HerbloreRecipe recipe; public CombineSecondaryHandler(Potion potion) { super(potion.getUnfinishedId(), potion.getSecondary()); String message = "You mix the " + ItemDefinitions.forId(potion.getSecondary()).getName().toLowerCase() + " into your potion."; recipe = new HerbloreRecipe(potion.getUnfinishedId(), potion.getSecondary(), potion.getLevel(), potion.getXp(), potion.getPotionId(), message, MIXING_ANIMATION, 3); } @Override public void handle(Player player, SlottedItem itemOne, SlottedItem itemTwo) { if (!recipe.getRequirements().hasRequirementsDisplayOne(player)) { return; } if (player.getInventory().getAmount(itemOne.getItem().getId()) < 2 || player.getInventory().getAmount(itemTwo.getItem().getId()) < 2) { player.startAction(new HerbloreAction(player, recipe, 1)); return; } MakeItemInterface.showMakeItemInterface(player, new MakeItemInterfaceListener() { @Override public void makeAllSelected() { makeAmountSelected(28); } @Override public void makeAmountSelected(int amount) { player.startAction(new HerbloreAction(player, recipe, amount)); } @Override public void cancelled() { } }, new Item(recipe.getProduct()), false); } }