|
|
|
package engine.devcmd.cmds;
|
|
|
|
|
|
|
|
import engine.devcmd.AbstractDevCmd;
|
|
|
|
import engine.gameManager.PowersManager;
|
|
|
|
import engine.gameManager.ZoneManager;
|
|
|
|
import engine.objects.*;
|
|
|
|
|
|
|
|
public class SetCampLevelCmd extends AbstractDevCmd {
|
|
|
|
public SetCampLevelCmd() { super("setcamplevel"); }
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void _doCmd(PlayerCharacter pcSender, String[] args, AbstractGameObject target) {
|
|
|
|
|
|
|
|
if (args.length > 1)
|
|
|
|
{
|
|
|
|
this.sendUsage(pcSender);
|
|
|
|
}
|
|
|
|
|
|
|
|
int targetLevel = 0;
|
|
|
|
if (args.length == 1) {
|
|
|
|
try {
|
|
|
|
targetLevel = Integer.parseInt(args[0]);
|
|
|
|
} catch (NumberFormatException nfe) {
|
|
|
|
throwbackError(pcSender, "Argument MUST be integer. Received: " + args[0]);
|
|
|
|
} catch (Exception e) {
|
|
|
|
throwbackError(pcSender, "Unknown command parsing provided camp level: " + args[0]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ((target instanceof Mob))
|
|
|
|
{
|
|
|
|
// Get the camp that owns the targeted Mob
|
|
|
|
Zone campZone = ((Mob) target).parentZone;
|
|
|
|
|
|
|
|
// Make sure that the zone we're targeting is valid for action
|
|
|
|
if (campZone == null ||
|
|
|
|
campZone.zoneMobSet.isEmpty() ||
|
|
|
|
campZone.isPlayerCity()) {
|
|
|
|
throwbackError(pcSender, "Current zone must own mobs, and NOT be a city.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
campZone.setCampLvl(targetLevel);
|
|
|
|
}
|
|
|
|
else if (target instanceof PlayerCharacter)
|
|
|
|
{
|
|
|
|
PlayerCharacter pc = (PlayerCharacter)target;
|
|
|
|
PowersManager.applyPower(pc, pc, pc.getLoc(), "CMP-001", targetLevel, false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected String _getUsageString() {
|
|
|
|
return "Sets the level of the currently occupied camp to the desired level";
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected String _getHelpString() {
|
|
|
|
return "'./setcamplevel levelNum'";
|
|
|
|
}
|
|
|
|
}
|