@Override public void onBypassFeedback(Player player, String command) { if (!canBypassCheck(player, this)) { return; } if (_powerUnits != 0) { return; } Functions.npcShout(this, NpcString.FORTRESS_POWER_DISABLED); FortressSiegeEvent siegeEvent = getEvent(FortressSiegeEvent.class); if (siegeEvent == null) { return; } siegeEvent.spawnAction(FortressSiegeEvent.IN_POWER_UNITS, false); siegeEvent.barrackAction(3, true); siegeEvent.broadcastTo( SystemMsg.THE_BARRACKS_HAVE_BEEN_SEIZED, SiegeEvent.ATTACKERS, SiegeEvent.DEFENDERS); onDecay(); siegeEvent.checkBarracks(); }
public void powerOff(PowerControlUnitInstance powerUnit) { FortressSiegeEvent event = getEvent(FortressSiegeEvent.class); SpawnExObject exObject = event.getFirstObject(FortressSiegeEvent.IN_POWER_UNITS); int machineNumber = -1; for (int i = 0; i < 3; i++) { Spawner spawn = exObject.getSpawns().get(i); if (spawn == powerUnit.getSpawn()) { machineNumber = i; } } NpcString msg = null; switch (machineNumber) { case 0: msg = NpcString.MACHINE_NO_1_POWER_OFF; break; case 1: msg = NpcString.MACHINE_NO_2_POWER_OFF; break; case 2: msg = NpcString.MACHINE_NO_3_POWER_OFF; break; default: throw new IllegalArgumentException("Wrong spawn at fortress: " + event.getName()); } _powerUnits--; Functions.npcShout(this, msg); }
@Override public void onSpawn() { super.onSpawn(); FortressSiegeEvent siegeEvent = getEvent(FortressSiegeEvent.class); if (siegeEvent == null) { return; } siegeEvent.barrackAction(3, false); }