@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; } } }
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; }
@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(); }
@Override public void zeichne(Graphics2D g2, int posX, int posY, Grafiken graf, int feldgroesse) { if ((int) (Math.random() * 10000) == TYP && gamepanel != null) gamepanel.getSounds().playSound(Geraeusch.WASSERPLAETSCHERN); int l; if (arbeiter == 0) l = 0; else l = aniZaehler; BufferedImage img = graf.getBauwerk(this.TYP, l); g2.drawImage(img, posX, posY, feldgroesse * 2, feldgroesse * 2, null); }