@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; } } }
@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(); }
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; }