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'"; } }