예제 #1
0
 @Override
 public void arbeiterFertig(Mensch m) {
   if (m.equals(hasArbeiter) && hasBesteller == null) {
     hasArbeiter = null;
     m.despawn();
   } else if (m.equals(hasArbeiter) && gamepanel != null) {
     m.setzeZiel(getFeld(), gamepanel.getMap());
     hasBesteller.bestellungAngekommen(this);
     hasBesteller = null;
   } else m.despawn();
 }
예제 #2
0
 @Override
 public void neuGeladen(Map m, ArrayList<Kreatur> kList) {
   if (hasBesteller != null)
     hasBesteller = m.getFeldBei(hasBesteller.getX(), hasBesteller.getY()).getInhalt();
   if (hasArbeiter != null) {
     Feld f = m.getFeldBei(hasArbeiter.x, hasArbeiter.y);
     Feld f2 = m.getFeldBei(hasArbeiter.getZiel().getH(), hasArbeiter.getZiel().getV());
     hasArbeiter = new Mensch(Berufe.BRUNNENMEISTER, f, kList, this);
     hasArbeiter.setzeZiel(f2, m);
   }
 }
예제 #3
0
 public Flugzeug(int leute) {
   this.leute = leute;
   for (int i = 0; i < leute; i++) {
     int zahl = (int) (Math.random() * 100);
     Mensch mensch = new Mensch();
     if (zahl <= 10) {
       mensch.setErkrankt(true);
     }
     menschen.add(mensch);
   }
 }
예제 #4
0
  @Override
  public void aktion(Gamepanel gp) {
    gamepanel = gp;
    durchgangzaehler++;
    if (durchgangzaehler % 20 == 0) {
      if (aniZaehler < 7) {

        aniZaehler++;
      } else {
        if (arbeiter == noetigeArbeiter) hasLager.add(Waren.WASSER, 50);
        aniZaehler = 1;
      }

      if (durchgangzaehler > 500) {

        if (arbeiter < noetigeArbeiter) {
          if (gp.getEinwohner().unterschichtArbeitslos() >= noetigeArbeiter) {
            Feld w =
                new Strecke(gp.getMap())
                    .getNaechstesFeldMitEigenschaft(getFeld(), Eigenschaften.WOHNHAUS);
            if (w != null) {
              arbeiter += noetigeArbeiter - arbeiter;
              hasArbeiter = new Mensch(Berufe.BRUNNENMEISTER, w, gp.getKreaturenliste(), this);
              hasArbeiter.setzeZiel(this.getFeld(), gp.getMap());
            }
          }
        }
        durchgangzaehler = 0;
      }
    }
  }
예제 #5
0
 public void nextround(Simulation simulation) {
   int zufall = (int) (Math.random() * this.leute);
   Mensch mensch = this.menschen.get(zufall);
   if (mensch.isErkrankt()) {
     int zufall2 = (int) (Math.random() * 100);
     if (zufall2 <= simulation.prozent) {
       mensch.setErkrankt(false);
     } else {
       try {
         this.menschen.get(zufall + 1).setErkrankt(true);
       } catch (Exception x) {
       }
       try {
         this.menschen.get(zufall - 1).setErkrankt(true);
       } catch (Exception x) {
       }
     }
   }
 }
예제 #6
0
  public boolean order(Bauwerk bw) {
    if (gamepanel == null) return false;

    if (arbeiter < noetigeArbeiter || hasBesteller != null || hasArbeiter != null) return false;

    hasBesteller = bw;

    hasArbeiter =
        new Mensch(Berufe.BRUNNENMEISTER, this.getFeld(), gamepanel.getKreaturenliste(), this);

    hasArbeiter.setzeZiel(hasBesteller.getFeld(), gamepanel.getMap());

    return true;
  }