package net.scapeemulator.game.model.player.skills.farming.items;
import net.scapeemulator.game.dispatcher.item.ItemOnObjectHandler;
import net.scapeemulator.game.model.object.GroundObjectList.GroundObject;
import net.scapeemulator.game.model.player.Player;
import net.scapeemulator.game.model.player.SlottedItem;
import net.scapeemulator.game.model.player.action.ReachObjectAction;
import net.scapeemulator.game.model.player.skills.farming.CureType;
import net.scapeemulator.game.model.player.skills.farming.PlantState;
import net.scapeemulator.game.model.player.skills.farming.PatchState;
import net.scapeemulator.game.model.player.skills.farming.patch.IFarmPatch;
public class SecateursOnPatchHandler extends ItemOnObjectHandler {
private final IFarmPatch patch;
public SecateursOnPatchHandler(IFarmPatch patch) {
super(CureType.PRUNING.getItemId(), patch.getObjectId());
this.patch = patch;
}
@Override
public void handle(Player player, GroundObject object, SlottedItem item) {
player.startAction(new PrunePatchAction(player, object));
}
private class PrunePatchAction extends ReachObjectAction {
public PrunePatchAction(Player player, GroundObject object) {
super(1, false, player, object, 1, true);
}
@Override
public void executeAction() {
mob.turnToPosition(bounds.center());
PatchState state = mob.getFarms().getPatchState(patch);
if (state.getPlantState() == PlantState.DEAD) {
mob.sendMessage("That plant is dead, you should clear it with a spade.");
stop();
return;
}
if (state.getPlant().getCureType() != CureType.PRUNING) {
mob.sendMessage("That doesn't look like it would be very useful on that plant.");
stop();
return;
}
if (state.getPlantState() == PlantState.DISEASED) {
state.setPlantState(PlantState.GROWING);
mob.getFarms().sendUpdates(patch);
mob.playAnimation(CureType.PRUNING.getAnimation());
mob.sendMessage("You prune away the sick branches and the plant looks much healthier.");
} else if (state.getPlantState() == PlantState.HEALTH_CHECKED) {
// TODO willow tree branches
} else {
mob.sendMessage("There's nothing there that needs pruning.");
}
stop();
}
}
}