Esempio n. 1
0
 public override void IstGestorben(Todesart todesart)
 {
     if (Kaste == "Sammler" && AktuelleLast >= 10 && (ZielOptimized == Speicher.bau || Ziel == Speicher.bau))
     {
         Speicher.zucker_counter = Speicher.zucker_counter - 1;
     }
 }
Esempio n. 2
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)
 {
     memory.ActionUnsuccessful();
     Todesart = todesart;
     DiedAnts.Enqueue(this);
     Ants.Remove(id);
 }
Esempio n. 3
0
 /// <summary>
 /// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
 /// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
 /// mehr ausführen.
 /// Weitere Infos unter http://wiki.antme.net/de/API1:IstGestorben
 /// </summary>
 /// <param name="todesart">Art des Todes</param>
 public override void IstGestorben(Todesart todesart)
 {
     if (Kaste != "ApfelSammler")
     {
         Ticketmanager.Instance.UnregisterAmeise(this, ticket);
     }
     if (Kaste != "ZuckerSammler")
     {
         Apfelticketmanager.InstanceApfel.UnregisterApfelAmeise(this);
     }
 }
Esempio n. 4
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();
            }
        }
Esempio n. 5
0
        private static Character InheritAnt(SmartassAnt Parent1, SmartassAnt Parent2, SmartassAnt DiedAnt)
        {
            Todesart  DeathReason        = DiedAnt.Todesart;
            Character inheritedCharacter = new Character();

            //Vereerbungsfunktion
            inheritedCharacter.faulheit.OverrideValue((Parent1.character.faulheit.Value() + Parent2.character.faulheit.Value()) / 2.0);
            inheritedCharacter.teamfaehigkeit.OverrideValue((Parent1.character.teamfaehigkeit.Value() + Parent2.character.teamfaehigkeit.Value()) / 2.0);
            inheritedCharacter.wut.OverrideValue((Parent1.character.wut.Value() + Parent2.character.wut.Value()) / 2.0);

            //Memory (inkl. Ratings vereerben?)


            //Lernen von gestorbener Ameise
            switch (DeathReason)
            {
            case Todesart.Besiegt:
                //Mehr Wut, weil das andere Ameisenvolk aggressiv ist
                inheritedCharacter.wut.OverrideValue(Math.Min(inheritedCharacter.wut.Value() + 10 * Memory.learneffect, 100.0));
                //Mehr Teamfähigkeit, weil sie im Team seltener stirbt
                inheritedCharacter.teamfaehigkeit.OverrideValue(Math.Min(inheritedCharacter.teamfaehigkeit.Value() + 10 * Memory.learneffect, 100.0));
                break;

            case Todesart.Gefressen:
                //Weniger Wut, weil das zum Tod führt
                inheritedCharacter.wut.OverrideValue(Math.Max(inheritedCharacter.wut.Value() - 10 * Memory.learneffect, 0.0));
                //Weniger Faulheit, damit sie Wanzen nicht mehr im Weg stehen bleiben
                inheritedCharacter.faulheit.OverrideValue(Math.Max(inheritedCharacter.faulheit.Value() - 10 * Memory.learneffect, 0.0));
                //Mehr Teamfähigkeit, weil sie im Team seltener stirbt
                inheritedCharacter.teamfaehigkeit.OverrideValue(Math.Min(inheritedCharacter.teamfaehigkeit.Value() + 10 * Memory.learneffect, 100.0));
                break;

            case Todesart.Verhungert:
                //Mehr Faulheit, weil sie nicht verhungern können, wenn sie stehen bleiben
                inheritedCharacter.faulheit.OverrideValue(Math.Min(inheritedCharacter.faulheit.Value() + 10 * Memory.learneffect, 100.0));
                //Weniger Teamfähigkeit, damit sie nicht mehr beim helfen verhungern kann
                inheritedCharacter.teamfaehigkeit.OverrideValue(Math.Max(inheritedCharacter.teamfaehigkeit.Value() - 10 * Memory.learneffect, 0.0));
                break;
            }

            //Mutation
            Random randBool = new Random(), randDirection = new Random(), randValue = new Random();

            //Faulheit
            if (randBool.Next(2) == 1)
            {
                if (randDirection.NextDouble() >= 0.5)
                {
                    //Wert verstärken, höchstens 15 Punkte mehr, aber nicht auf mehr als 100.0
                    inheritedCharacter.faulheit.OverrideValue(Math.Min(inheritedCharacter.faulheit.Value() + 0.15 * randValue.NextDouble() * 100, 100.0));
                }
                else
                {
                    //Wert verringern, maximal 15 Punkte weniger, aber weniger als 0.0
                    inheritedCharacter.faulheit.OverrideValue(Math.Max(inheritedCharacter.faulheit.Value() - 0.15 * randValue.NextDouble() * 100, 0.0));
                }
            }

            //Teamfähigkeit
            //Entscheiden, ob Mutation eintritt
            if (randBool.Next(2) == 1)
            {
                if (randDirection.NextDouble() >= 0.5)
                {
                    //Wert verstärken, höchstens 15 Punkte mehr, aber nicht auf mehr als 100.0
                    inheritedCharacter.teamfaehigkeit.OverrideValue(Math.Min(inheritedCharacter.teamfaehigkeit.Value() + 0.15 * randValue.NextDouble() * 100, 100.0));
                }
                else
                {
                    //Wert verringern, maximal 15 Punkte weniger, aber weniger als 0.0
                    inheritedCharacter.teamfaehigkeit.OverrideValue(Math.Max(inheritedCharacter.teamfaehigkeit.Value() - 0.15 * randValue.NextDouble() * 100, 0.0));
                }
            }

            //Wut
            if (randBool.Next(2) == 1)
            {
                if (randDirection.NextDouble() >= 0.5)
                {
                    //Wert verstärken, höchstens 15 Punkte mehr, aber nicht auf mehr als 100.0
                    inheritedCharacter.wut.OverrideValue(Math.Min(inheritedCharacter.wut.Value() + 0.15 * randValue.NextDouble() * 100, 100.0));
                }
                else
                {
                    //Wert verringern, maximal 15 Punkte weniger, aber weniger als 0.0
                    inheritedCharacter.wut.OverrideValue(Math.Max(inheritedCharacter.wut.Value() - 0.15 * randValue.NextDouble() * 100, 0.0));
                }
            }
            return(inheritedCharacter);
        }
Esempio n. 6
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)
 {
     networkCommands("IstGestorben");
 }
Esempio n. 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)
 {
     memory.ActionUnsuccessful();
 }
Esempio n. 8
0
 /// <summary>
 /// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie 
 /// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion 
 /// mehr ausführen.
 /// Weitere Infos unter http://wiki.antme.net/de/API1:IstGestorben
 /// </summary>
 /// <param name="todesart">Art des Todes</param>
 public override void IstGestorben(Todesart todesart)
 {
 }
Esempio n. 9
0
 public override void IstGestorben(Todesart todesart)
 {
     Storage.scouting[dir] = false;
     Storage.ants.Remove(this);
     Denke(((Todesart)todesart).ToString());
 }
Esempio n. 10
0
 /// <summary>
 /// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
 /// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
 /// mehr ausführen.
 /// <see href="http://wiki.antme.net/de/API1:IstGestorben">Weitere Infos</see>
 /// </summary>
 /// <param name="todesart">Art des Todes</param>
 public virtual void IstGestorben(Todesart todesart)
 {
 }
 public override void IstGestorben(Todesart todesart)
 {
     Denke(((Todesart)todesart).ToString());
     Storage.ants.Remove(this);
 }
Esempio n. 12
0
 /// <summary>
 /// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
 /// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
 /// mehr ausführen.
 /// Weitere Infos unter http://wiki.antme.net/de/API1:IstGestorben
 /// </summary>
 /// <param name="todesart">Art des Todes</param>
 public override void IstGestorben(Todesart todesart)
 {
     brain.IstGestorben(todesart);
 }
Esempio n. 13
0
 public override void IstGestorben(Todesart todesart)
 {
     Storage.ants.Remove(this);
 }
Esempio n. 14
0
 public override void IstGestorben(Todesart todesart)
 {
     ameisenActionHandler.IstGestorben(todesart);
 }
Esempio n. 15
0
 public abstract void IstGestorben(Todesart todesart);
Esempio n. 16
0
 public void IstGestorben(Todesart todesart)
 {
     throw new System.NotImplementedException();
 }
Esempio n. 17
0
 /// <summary> && zuckers == null
 /// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
 /// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
 /// mehr ausführen.
 /// Weitere Infos unter http://wiki.antme.net/de/API1:IstGestorben
 /// </summary>
 /// <param name="todesart">Art des Todes</param>
 public override void IstGestorben(Todesart todesart)
 {
     TicketManager.Instance.UnregisterAmeise(this);
 }
Esempio n. 18
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)
 {
     networkCommands("IstGestorben");
 }
Esempio n. 19
0
 /// <summary>
 /// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
 /// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
 /// mehr ausführen.
 /// Weitere Infos unter http://wiki.antme.net/de/API1:IstGestorben
 /// </summary>
 /// <param name="todesart">Art des Todes</param>
 public override void IstGestorben(Todesart todesart)
 {
     // 1vs1, Todersursache ist egal
 }
Esempio n. 20
0
 public override void IstGestorben(Todesart todesart)
 {
     verhalten.IstGestorben(todesart);
 }
Esempio n. 21
0
 public override void IstGestorben(Todesart todesart)
 {
 }
Esempio n. 22
0
 /// <summary>
 /// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
 /// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
 /// mehr ausführen.
 /// </summary>
 /// <param name="todesart">Art des Todes</param>
 public override void IstGestorben(Todesart todesart)
 {
     // Man sagt die Guten sterben jung, doch die Besten sterben nie.. deshalb haben wir diese Methode nicht ausprogrammiert
 }