Exemplo n.º 1
0
  @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();
  }
Exemplo n.º 2
0
  @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();
    }
  }