Public Repository for the Magicbane Shadowbane Emulator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.8 KiB

package engine.devcmd.cmds;
import engine.devcmd.AbstractDevCmd;
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);
}
if (!(target instanceof Mob))
{
throwbackError(pcSender, "Must target a MOB while setting camp level!");
return;
}
// 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;
}
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]);
}
}
campZone.setCampLvl(targetLevel);
}
@Override
protected String _getUsageString() {
return "Sets the level of the currently occupied camp to the desired level";
}
@Override
protected String _getHelpString() {
return "'./setcamplevel levelNum'";
}
}