Пример #1
0
 /// <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);
     }
 }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        /// <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);
                }
            }
        }
Пример #5
0
        /// <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);
            }
        }
Пример #6
0
 /// <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;
     }
 }
Пример #7
0
        /// <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();
            }
        }