Пример #1
0
  /**
   * <pre>
   * run the production cycle for the settlement, lehen and regiments
   * for each tick only 1 settlement are calculated
   * first all settlement , then all lehen and then all regiment
   *
   * @return ModelStatus : MODEL_PRODUCTION | MODEL_ENABLED
   * </pre>
   */
  private ModelStatus nextProductionQueue() {
    int lSize = productionQueue.size();
    if (productionQueue.isEmpty() == false) {
      Settlement settle = productionQueue.get(0);
      settle.getMsg().clear();
      settle
          .getMsg()
          .add("[REALMS] Settle production:" + settle.getId() + ":" + lSize + ":" + this.dayOfWeek);
      settle.getReputations().resetDaily();
      settle.getMsg().add("settler max");
      settle.setSettlerMax();
      settle.getMsg().add("Building enable");
      settle.checkBuildingsEnabled(server);
      settle.getMsg().add("worker needed");
      settle.setWorkerNeeded();
      settle.getMsg().add("happiness");
      settle.doResident(data);
      settle.getMsg().add("produce");
      settle.doProduce(server, data, this.dayOfWeek);
      settle.getMsg().add("UnitTrain");
      settle.doUnitTrain(unitFactory);
      data.writeSettlement(settle);

      productionQueue.remove(0);
      messageData.log("remove 0");
      return ModelStatus.MODEL_PRODUCTION;
    }

    lSize = lehenProductionQueue.size();
    if (lehenProductionQueue.isEmpty() == false) {
      Lehen lehen = lehenProductionQueue.get(0);
      //			lehen.getMsg().clear();
      lehen
          .getMsg()
          .add(
              "[REALMS] lehen produce:"
                  + lehen.getName()
                  + ":"
                  + lehen.getId()
                  + " Settle:"
                  + lehen.getSupportId()
                  + " day"
                  + this.dayOfWeek);
      lehen.doProduce(server, data, this.dayOfWeek);
      lehen.getMsg().add("Lehen happiness");
      lehen.doResident(data);
      lehen.doUnitTrain(unitFactory);
      data.writeLehen(lehen);
      lehenProductionQueue.remove(0);
      return ModelStatus.MODEL_PRODUCTION;
    }

    if (regimentProductionQueue.isEmpty() == false) {
      Regiment regiment = regimentProductionQueue.get(0);
      regiment.getMsg().clear();
      regiment.getMsg().add("[REALMS] regiment production ");
      regiment.doProduce(server, data);
      data.writeRegiment(regiment);
      regimentProductionQueue.remove(0);
      return ModelStatus.MODEL_PRODUCTION;
    }
    System.out.println("[REALMS] production ended");
    return ModelStatus.MODEL_ENABLED;
  }