Server/09HDscape-server/src/plugin/dialogue/DismissDialoguePlugin.java
2019-05-28 22:15:17 -08:00

79 lines
1.7 KiB
Java

package plugin.dialogue;
import org.crandor.game.content.dialogue.DialogueInterpreter;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.content.skill.member.summoning.pet.Pet;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.game.node.entity.player.Player;
/**
* Represents the dialogue plugin used to dismiss a follower.
* @author 'Vexia
* @version 1.0
*/
@InitializablePlugin
public final class DismissDialoguePlugin extends DialoguePlugin {
/**
* Constructs a new {@code DismissDialoguePlugin} {@code Object}.
*/
public DismissDialoguePlugin() {
/**
* empty.
*/
}
/**
* Constructs a new {@code DismissDialoguePlugin} {@code Object}.
* @param player the player.
*/
public DismissDialoguePlugin(Player player) {
super(player);
}
@Override
public DialoguePlugin newInstance(Player player) {
return new DismissDialoguePlugin(player);
}
@Override
public boolean open(Object... args) {
if (player.getFamiliarManager().getFamiliar() instanceof Pet) {
interpreter.sendOptions("Free pet", "Yes", "No");
} else {
interpreter.sendOptions("Dismiss Familiar", "Yes", "No");
}
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
switch (stage) {
case 0:
switch (buttonId) {
case 1:
if (player.getFamiliarManager().getFamiliar() instanceof Pet) {
interpreter.sendDialogues(player, null, "Run along; I'm setting you free.");
} else {
end();
}
player.getFamiliarManager().dismiss(false);
stage = 1;
break;
case 2:
end();
break;
}
break;
case 1:
end();
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[] { DialogueInterpreter.getDialogueKey("dismiss_dial") };
}
}