Files
Server/src/engine/devcmd/cmds/aiInfoCmd.java
T

103 lines
3.8 KiB
Java
Raw Normal View History

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.devcmd.cmds;
import engine.Enum.GameObjectType;
import engine.devcmd.AbstractDevCmd;
2023-07-15 09:23:48 -04:00
import engine.objects.AbstractGameObject;
import engine.objects.Mob;
import engine.objects.PlayerCharacter;
import java.util.Map;
/**
* @author
*/
public class aiInfoCmd extends AbstractDevCmd {
public aiInfoCmd() {
super("aiinfo");
}
@Override
2023-08-08 11:01:05 -04:00
protected void _doCmd(PlayerCharacter playerCharacter, String[] words,
AbstractGameObject target) {
2023-08-08 11:01:05 -04:00
// Arg Count Check
2023-08-08 11:01:05 -04:00
if (words.length != 1) {
2023-08-08 11:01:05 -04:00
this.sendUsage(playerCharacter);
return;
}
2023-08-08 11:01:05 -04:00
if (playerCharacter == null)
return;
String newline = "\r\n ";
GameObjectType objType = target.getObjectType();
String output;
2023-07-15 09:23:48 -04:00
if (objType != GameObjectType.Mob) {
output = "Please Select A Mob For AI Info" + newline;
2023-08-08 11:01:05 -04:00
throwbackInfo(playerCharacter, output);
return;
}
Mob mob = (Mob) target;
output = "Mob AI Information:" + newline;
output += mob.getName() + newline;
if (mob.BehaviourType != null) {
output += "BehaviourType: " + mob.BehaviourType.toString() + newline;
if (mob.BehaviourType.BehaviourHelperType != null) {
output += "Behaviour Helper Type: " + mob.BehaviourType.BehaviourHelperType.toString() + newline;
} else {
output += "Behaviour Helper Type: NULL" + newline;
2023-04-16 12:48:23 -05:00
}
2023-04-15 22:04:55 -05:00
output += "Wimpy: " + mob.BehaviourType.isWimpy + newline;
output += "Agressive: " + mob.BehaviourType.isAgressive + newline;
output += "Can Roam: " + mob.BehaviourType.canRoam + newline;
output += "Calls For Help: " + mob.BehaviourType.callsForHelp + newline;
output += "Responds To Call For Help: " + mob.BehaviourType.respondsToCallForHelp + newline;
2023-07-15 09:23:48 -04:00
} else {
2023-04-15 22:04:55 -05:00
output += "BehaviourType: NULL" + newline;
}
2023-05-09 20:27:24 -05:00
output += "Aggro Range: " + mob.getAggroRange() + newline;
output += "Player Aggro Map Size: " + mob.playerAgroMap.size() + newline;
2023-08-08 11:01:05 -04:00
if (mob.playerAgroMap.size() > 0) {
output += "Players Loaded:" + newline;
}
for (Map.Entry<Integer, Boolean> entry : mob.playerAgroMap.entrySet()) {
2023-08-08 11:51:04 -05:00
output += "Player ID: " + entry.getKey() + " Hate Value: " + (PlayerCharacter.getPlayerCharacter(entry.getKey())).getHateValue() + newline;
}
2023-08-08 11:01:05 -04:00
if (mob.getCombatTarget() != null)
output += "Current Target: " + mob.getCombatTarget().getName() + newline;
else
output += "Current Target: NULL" + newline;
for (int token : mob.mobPowers.keySet())
output += token + newline;
throwbackInfo(playerCharacter, output);
}
@Override
protected String _getHelpString() {
return "Gets AI information on a Mob.";
}
@Override
protected String _getUsageString() {
return "' /aiinfo targetID'";
}
}