@Override
  public Action effectuer(Humain h) {

    if (nextAction != null) h.getEsprit().getActions().push(nextAction);
    Action a;
    if (comp.compare((double) (h.getAttr().get(attribute)), d)) {
      a = listeActions.get(0).effectuer(h);
    } else {
      a = listeActions.get(1).effectuer(h);
    }
    return a;
  }
Beispiel #2
0
  protected void initializeItemsToDraw() {

    ownedCognitons = h.getEsprit().getCognitons();
    allCognitons = new ArrayList<TypeCogniton>();
    plans = new ArrayList<NPlan>();

    for (Cogniton cog : ownedCognitons) {
      allCognitons.add(cog.getCogniton());
    }

    //	allCognitons.addAll(Configuration.cloudCognitons);
    ownedPlans = h.getEsprit().getPlans();
    for (NPlanPondere pl : ownedPlans) {
      plans.add(pl.getPlan());
    }
    for (Group gr : h.getEsprit().getGroups().keySet()) {
      groups.add(gr);
      for (TypeCogniton cog : gr.getArrayListOfCognitonType(h.getEsprit().getGroups().get(gr))) {
        allCognitons.add(cog);
      }
    }
  }
Beispiel #3
0
  protected void initializeDrawing() {
    for (int i = 0; i < allCognitons.size(); i++) {
      afficherCogniton(allCognitons.get(i), 80, 40 + espacement * i);
    }

    for (int i = 0; i < plans.size(); i++) {
      afficherPlan(
          plans.get(i),
          espaceCognitonsPlans,
          40 + espacement * i,
          h.getEsprit().getPlan(plans.get(i)));
    }

    for (int i = 0; i < groups.size(); i++) {
      showGroup(
          groups.get(i),
          h.getEsprit().getGroups().get(groups.get(i)),
          espaceCognitonsPlans * 1.8,
          40 + espacement * i);
    }

    creerLiensInfluence();
    creerLiensConditionnels();
  }
Beispiel #4
0
  public Action effectuer(Humain h) {
    Esprit m = h.getEsprit();

    // Number of turns
    if (m.getActionData(this) == null) {
      h.getEsprit().addTag(myTag);
      m.setActionData(this, turns - 1);
    } else {
      if (m.ownTag(myTag)) {
        m.setActionData(this, (Integer) m.getActionData(this) - 1);
      } else {
        h.getEsprit().cleanActionData(this);
        return nextAction;
      }
    }

    List<Humain> humains = h.humansHereWithTag(compatibleTag);

    // Do the trade
    if (!humains.isEmpty()) {

      Humain target = humains.get((int) Math.floor(humains.size() * Math.random()));

      // Change my inventory
      for (int i = 0; i < nItemToGive; i++) {
        h.getInventaire().deleteObjets(itemToGive, 1);
      }
      for (int i = 0; i < nItemToTake; i++) {
        h.getInventaire().addObjets(itemToTake, 1);
      }

      // Change target inventory
      for (int i = 0; i < nItemToGive; i++) {
        target.getInventaire().addObjets(itemToGive, 1);
      }
      for (int i = 0; i < nItemToTake; i++) {
        target.getInventaire().deleteObjets(itemToTake, 1);
      }

      // Remove the tags
      h.getEsprit().cleanActionData(this);
      h.getEsprit().removeTag(myTag);
      target.getEsprit().removeTag(compatibleTag);
      return listeActions.get(0);

    } else if (m.getActionData(this).equals(0)) {
      h.getEsprit().cleanActionData(this);
      h.getEsprit().removeTag(myTag);
      return listeActions.get(1);
    } else {
      return this;
    }
  }
Beispiel #5
0
  public void updateData() {

    try {
      semaphore.acquire();
    } catch (InterruptedException ex) {
      System.out.println(ex);
    }

    groups = new ArrayList<Group>();
    for (Group gr : h.getEsprit().getGroups().keySet()) {
      groups.add(gr);
    }

    // Add cognitons
    for (Cogniton cog : h.getEsprit().getCognitons()) {
      if (!this.cognitonIsDrawn(cog.getCogniton())) {
        this.afficherCogniton(cog.getCogniton(), Math.random() * 400, Math.random() * 400);

        this.gCognitons.get(gCognitons.size() - 1).setOpacite(0.0);
        this.gCognitons
            .get(gCognitons.size() - 1)
            .addAnimation(
                new JJAnimationOpacite(50, gCognitons.get(gCognitons.size() - 1), 0.02, false));

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      }
    }
    for (Group gr : groups) {
      for (Cogniton cog : gr.getRolesAndCulturons().get(h.getEsprit().getGroups().get(gr))) {
        if (!this.cognitonIsDrawn(cog.getCogniton())) {
          this.afficherCogniton(cog.getCogniton(), Math.random() * 400, Math.random() * 400);

          this.gCognitons.get(gCognitons.size() - 1).setOpacite(0.0);
          this.gCognitons
              .get(gCognitons.size() - 1)
              .addAnimation(
                  new JJAnimationOpacite(50, gCognitons.get(gCognitons.size() - 1), 0.02, false));

          this.supprimerLiensInfluence();
          this.supprimerLiensConditionnels();
          this.clearTriggerLink();

          creerLiensInfluence();
          creerLiensConditionnels();
          createTriggerLink();
        }
      }
    }

    // Add plans
    for (NPlanPondere pl : h.getEsprit().getPlans()) {
      if (!this.planIsDrawn(pl.getPlan())) {
        this.afficherPlan(pl.getPlan(), Math.random() * 400, Math.random() * 400, pl);

        this.gPlan.get(gPlan.size() - 1).setOpacite(0.0);
        this.gPlan
            .get(gPlan.size() - 1)
            .addAnimation(new JJAnimationOpacite(50, gPlan.get(gPlan.size() - 1), 0.02, false));

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      }
    }
    // Remove cognitons
    for (TypeCogniton cog : Configuration.cognitons) {
      if (cog.getType() != TypeDeCogniton.CULTURON
          && this.cognitonIsDrawn(cog)
          && !h.getEsprit().ownCogniton(cog)) {
        this.removeCogniton(cog);

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      } else if (cog.getType() == TypeDeCogniton.CULTURON) {
        boolean exist = false;
        for (Group gr : groups) {
          if (gr.roleContainsCulturon(cog, h.getEsprit().getGroups().get(gr))) {
            exist = true;
          }
        }
        if (!exist) {
          this.removeCogniton(cog);

          this.supprimerLiensInfluence();
          this.supprimerLiensConditionnels();
          this.clearTriggerLink();

          creerLiensInfluence();
          creerLiensConditionnels();
          createTriggerLink();
        }
      }
    }
    // Remove plans
    for (NPlan pl : Configuration.plans) {
      if (this.planIsDrawn(pl) && !h.getEsprit().ownPlan(pl)) {
        this.removePlan(pl);

        this.supprimerLiensInfluence();
        this.supprimerLiensConditionnels();
        this.clearTriggerLink();

        creerLiensInfluence();
        creerLiensConditionnels();
        createTriggerLink();
      }
    }
    semaphore.release();
  }