@WebPostAction("Colony.giveUp") public void giveUp(CqsSession session, @Parameter("c") Position position) { if (session.isRestricted()) { session.log(ErrorCode.RESTRICTED_ACCESS); return; } Colony colony = session.getColony(position); HumanColonyController controller = (HumanColonyController) colony.getController(); BuildingEnum[] buildings = BuildingEnum.values(); // clear building queue if (colony.isBuildingInProgress()) colony.abortBuilding(); controller.clearBuildingQueue(); // put building removal in queue for (int i = 0; i < buildings.length; i++) { if ((buildings[i] != BuildingEnum.RESIDENCE) && (buildings[i] != BuildingEnum.UNIVERSITY)) { int j = colony.getBuilding(buildings[i]); if ((j > 0) && controller.addBuildingRemoval(buildings[i], j)) colony.resumeBuilding(); } } int j = colony.getBuilding(BuildingEnum.UNIVERSITY); if ((j > 0) && controller.addBuildingRemoval(BuildingEnum.UNIVERSITY, j)) colony.resumeBuilding(); j = colony.getBuilding(BuildingEnum.RESIDENCE); if ((j > 0) && controller.addBuildingRemoval(BuildingEnum.RESIDENCE, j)) colony.resumeBuilding(); }
@WebPostAction("Colony.addBuilding") public void addBuilding( CqsSession session, @Parameter("c") Position position, @Parameter("id") int id, @Parameter("count") String count) { Colony colony = session.getColony(position); BuildingEnum i = BuildingEnum.valueOf(id); int j = Input.decode(count, 0, -MAX, MAX); if (j == 0) throw new ErrorCodeException(ErrorCode.INVALID_INPUT); if (j < 0) { if (((HumanColonyController) colony.getController()).addBuildingRemoval(i, -j)) colony.resumeBuilding(); } else { if (((HumanColonyController) colony.getController()).addBuildingConstruction(i, j)) colony.resumeBuilding(); } }