Kotlin/Java split
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
package rs09.game.ai;
|
||||
|
||||
import core.game.content.dialogue.DialoguePlugin;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.info.Rights;
|
||||
|
||||
/**
|
||||
* Handles artificial intelligent player controls.
|
||||
* @author Emperor
|
||||
*/
|
||||
public final class AIPControlDialogue extends DialoguePlugin {
|
||||
|
||||
/**
|
||||
* The AIP to control.
|
||||
*/
|
||||
private AIPlayer aip;
|
||||
|
||||
/**
|
||||
* Constructs a new {@code AIPControlDialogue} {@code Object}.
|
||||
*/
|
||||
public AIPControlDialogue() {
|
||||
/*
|
||||
* empty.
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new {@code AIPControlDialogue} {@code Object}.
|
||||
* @param player The player.
|
||||
*/
|
||||
public AIPControlDialogue(Player player) {
|
||||
super(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DialoguePlugin newInstance(Player player) {
|
||||
return new AIPControlDialogue(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean open(Object... args) {
|
||||
if (player.getDetails().getRights() != Rights.ADMINISTRATOR) {
|
||||
return false;
|
||||
}
|
||||
aip = (AIPlayer) args[0];
|
||||
String select = "Select";
|
||||
if (player.getAttribute("aip_select") == aip) {
|
||||
select = "Deselect";
|
||||
}
|
||||
interpreter.sendOptions("AIP#" + aip.getUid() + " controls", select, "Settings", "Follow", "Stand-by", "Clear");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(int interfaceId, int buttonId) {
|
||||
switch (interfaceId) {
|
||||
case 234:
|
||||
switch (buttonId) {
|
||||
case 1:
|
||||
if (player.getAttribute("aip_select") == aip) {
|
||||
player.removeAttribute("aip_select");
|
||||
break;
|
||||
}
|
||||
player.setAttribute("aip_select", aip);
|
||||
break;
|
||||
case 2:
|
||||
interpreter.sendOptions("AIP#" + aip.getUid() + " settings", "Toggle run", "Toggle retaliate", "Toggle special attack");
|
||||
return true;
|
||||
case 3:
|
||||
aip.follow(player);
|
||||
player.removeAttribute("aip_select");
|
||||
break;
|
||||
case 4:
|
||||
aip.getPulseManager().clear();
|
||||
player.removeAttribute("aip_select");
|
||||
break;
|
||||
case 5:
|
||||
AIPlayer.deregister(aip.getUid());
|
||||
player.removeAttribute("aip_select");
|
||||
break;
|
||||
}
|
||||
close();
|
||||
return true;
|
||||
case 230:
|
||||
switch (buttonId) {
|
||||
case 1:
|
||||
aip.getSettings().toggleRun();
|
||||
break;
|
||||
case 2:
|
||||
aip.getSettings().toggleRetaliating();
|
||||
break;
|
||||
case 3:
|
||||
aip.getSettings().toggleSpecialBar();
|
||||
break;
|
||||
}
|
||||
close();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getIds() {
|
||||
return new int[0];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user