Added handler for Ali the Snake Charmer

This commit is contained in:
Ceikry 2020-03-13 09:49:10 -05:00
parent b86a2b10d9
commit c06356db20

View file

@ -0,0 +1,109 @@
package plugin.interaction.city.pollnivneach;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.content.dialogue.FacialExpression;
import org.crandor.game.interaction.NodeUsageEvent;
import org.crandor.game.interaction.UseWithHandler;
import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.item.GroundItemManager;
import org.crandor.game.node.item.Item;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.plugin.Plugin;
/**
* Handles Ali the Snake Charmer
* @author ceik
*/
@InitializablePlugin
public class SnakeCharmerBasket extends UseWithHandler {
public SnakeCharmerBasket() {
super(995);
}
@Override
public Plugin<Object> newInstance(Object arg) throws Throwable {
addHandler(6230, OBJECT_TYPE, this);
new AliTheSnakeCharmer().init();
return this;
}
@Override
public boolean handle(NodeUsageEvent event) {
final Player player = event.getPlayer();
if (player.getInventory().containsItem(new Item(995,3))) {
player.getInventory().remove(new Item(995, 3));
player.getDialogueInterpreter().open(1872, true);
}
return true;
}
public class AliTheSnakeCharmer extends DialoguePlugin {
public AliTheSnakeCharmer() {
/**
* empty.
*/
}
public AliTheSnakeCharmer(Player player) {
super(player);
}
@Override
public DialoguePlugin newInstance(Player player) {
return new AliTheSnakeCharmer(player);
}
@Override
public boolean open(Object... args) {
if (args.length > 0) {
stage = 5;
} else {
player("Wow a snake charmer. Can I have a go? Please?");
stage = 0;
}
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
switch (stage) {
case 0:
player.getDialogueInterpreter().sendDialogue("The snake charmer fails to acknowledge you,","he seems too deep into the music to notice you.");
stage = 4;
break;
case 4:
end();
break;
case 5:
player.getDialogueInterpreter().sendDialogue("The snake charmer snaps out of his trance","and directs his full attention to you.");
stage = 6;
break;
case 6:
player(FacialExpression.JOLLY, "Wow a snake charmer. Can I have a go? Please?");
stage = 7;
break;
case 7:
if(!player.getInventory().containsItems(new Item(4605),new Item(4606)) && !player.getBank().containItems(4605,4606)) {
if (player.getInventory().freeSlots() >= 2) {
player.getInventory().add(new Item(4605));
player.getInventory().add(new Item(4606));
} else {
GroundItemManager.create(new Item(4605), player.getLocation());
GroundItemManager.create(new Item(4606), player.getLocation());
}
npc(FacialExpression.ANNOYED, "If it means that you'll leave me alone, I would give you"," my snake harming super starter kit complete","with flute and basket.");
} else {
npc(FacialExpression.ANGRY,"I already gave you one!");
}
stage = 4;
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[]{1872};
}
}
}