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.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 HerbOnVialHandler extends ItemOnItemHandler {
private static final int VIAL_OF_WATER = 227;
private final HerbloreRecipe recipe;
public HerbOnVialHandler(Herb herb) {
super(herb.getCleanId(), VIAL_OF_WATER);
String message = "You put the " + ItemDefinitions.forId(herb.getCleanId()).getName() + " into the vial of water.";
recipe = new HerbloreRecipe(herb.getCleanId(), VIAL_OF_WATER, herb.getLevel(), 0.0, herb.getUnfinishedId(), message, null, 1);
}
@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);
}
}