forked from 2009Scape/Server
Added handler for Ali the Snake Charmer
This commit is contained in:
parent
b86a2b10d9
commit
c06356db20
1 changed files with 109 additions and 0 deletions
|
|
@ -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};
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue