/// <summary> /// Wird wiederholt aufgerufen in der die Ameise von einer Ameise eines /// anderen Volkes Ameise angegriffen wird. /// </summary> /// <param name="ameise">Die angreifende feindliche Ameise.</param> public override void WirdAngegriffen(Ameise ameise) { if (Kaste.Substring(0, 7) == "Krieger" && Ziel == null) { GreifeAn(ameise); } }
/// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise mindestens eine Ameise eines /// anderen Volkes sieht. /// </summary> /// <param name="ameise">Die nächstgelegen feindliche Ameise.</param> public override void SiehtFeind(Ameise ameise) { if (Kaste.Substring(0, 7) == "Krieger" && Ziel == null) { GreifeAn(ameise); } }
/// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise mindestens einen Käfer /// sieht. /// </summary> /// <param name="wanze">Der nächstgelegene Käfer.</param> public override void SiehtFeind(Wanze wanze) { SprüheMarkierung(0, 60); if (Kaste.Substring(0, 7) == "Krieger" && Ziel == null) { GreifeAn(wanze); } }
/// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise mindstens ein /// Obststück sieht. /// </summary> /// <param name="obst">Das nächstgelegene Obststück.</param> public override void Sieht(Obst obst) { if (BrauchtNochTräger(obst)) { SprüheMarkierung (Koordinate.BestimmeRichtung(this, obst), Koordinate.BestimmeEntfernung(this, obst)); if (Kaste.Substring(0, 7) == "Sammler" && Ziel == null) { GeheZuZiel(obst); } } }
/// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise mindestens einen /// Zuckerhaufen sieht. /// </summary> /// <param name="zucker">Der nächstgelegene Zuckerhaufen.</param> public override void Sieht(Zucker zucker) { if (gemerkterZucker == null) { gemerkterZucker = zucker; } SprüheMarkierung(0, 60); if (Kaste.Substring(0, 7) == "Sammler" && Ziel == null) { GeheZuZiel(zucker); } }
/// <summary> /// Wird unabhängig von äußeren Umständen in jeder Runde aufgerufen. /// </summary> public override void Tick() { if (Kaste.Substring(0, 7) == "Sammler") { if (letzteLast > 0 && AktuelleLast == 0) { erfolgreicheSammler++; aktualisiereSammler(); } letzteLast = AktuelleLast; } else { if (zielWarInsekt && Ziel == null) { erfolgreicheKrieger++; aktualisiereKrieger(); } zielWarInsekt = Ziel is Insekt; } }
/// <summary> /// Wird einmal aufgerufen, wenn die Ameise gestorben ist. /// </summary> /// <param name="todesart">Die Todesart der Ameise</param> public override void IstGestorben(Todesart todesart) { if (todesart == Todesart.Verhungert) { return; } if (Kaste.Substring(0, 7) == "Sammler") { if (letzteLast > 0) { erfolgloseSammler++; aktualisiereSammler(); } } else { erfolgloseKrieger++; aktualisiereKrieger(); } }