Пример #1
0
 /// <summary>
 /// Nyilvántartásba vesz egy felfedező hangyát
 /// </summary>
 /// <param name="UnderlyingAnt">A követendő hangya</param>
 public Explorer(CorvinusAnt UnderlyingAnt)
     : base(UnderlyingAnt)
 {
     this.Type = AntType.Explorer;
     this.UnderlyingAnt.EveryTick += new CorvinusAnt.TickDelegate(Explorer_UnderlyingAnt_EveryTick);
     this.Task = new Task(TaskType.Discover);
 }
Пример #2
0
 /// <summary>
 /// Nyilvántartásba vesz egy cukorgyűjtögető hangyát
 /// </summary>
 /// <param name="UnderlyingAnt">A követendő hangya</param>
 public SugarWorker(CorvinusAnt UnderlyingAnt)
     : base(UnderlyingAnt)
 {
     this.Type = AntType.SugarWorker;
     this.UnderlyingAnt.EveryTick += new CorvinusAnt.TickDelegate(SugarWorker_UnderlyingAnt_EveryTick);
     this.UnderlyingAnt.Idle += new CorvinusAnt.IdleDelegate(SugarWorker_UnderlyingAnt_Idle);
 }
Пример #3
0
 /// <summary>
 /// Nyilvántartásba vesz egy hangyát
 /// </summary>
 /// <param name="UnderlyingAnt">A hangya</param>
 protected AntBase(CorvinusAnt UnderlyingAnt)
 {
     this.UnderlyingAnt = UnderlyingAnt;
     if (this is Queen)
     {
         if (Queen.Ant != null) { throw new InvalidOperationException("Queen already exists"); }
         Queen.Ant = (Queen)this;
         return;
     }
     if (BaseList.Contains(UnderlyingAnt) || UnderlyingAnt.CurrentEnergy <= 0) { throw new InvalidOperationException("This ant is already being tracked"); }
     All.Add(this);
     this.UnderlyingAnt.Died += new CorvinusAnt.DiedDelegate(UnderlyingAnt_Died);
     this.UnderlyingAnt.EveryTick += new CorvinusAnt.TickDelegate(UnderlyingAnt_EveryTick);
 }
Пример #4
0
 /// <summary>
 /// Nyilvántartásba vesz egy hangyát a megadott típussal
 /// </summary>
 /// <param name="Ant">A hangya</param>
 /// <param name="Type">Milyen típusú hangya legyen?</param>
 /// <returns>A nyilvántartott hangya</returns>
 public static AntBase TrackAs(CorvinusAnt Ant, AntType Type)
 {
     if (Type == AntType.Any) { throw new ArgumentException("AntType.Any cannot be used here"); }
     if (Ants.AntBase.BaseList.Contains(Ant)) { return null; }
     try
     {
         switch (Type)
         {
             case AntType.Queen: return new Queen(Ant);
             case AntType.Explorer: return new Explorer(Ant);
             case AntType.SugarWorker: return new SugarWorker(Ant);
             case AntType.FruitWorker: return new FruitWorker(Ant);
             case AntType.Soldier: return new Soldier(Ant);
             default: throw new ArgumentException("Invalid ant type");
         }
     }
     catch (InvalidOperationException) { return null; }
 }
Пример #5
0
 /// <summary>
 /// Megkeresi egy adott eredeti hangyának a nyilvántartott párját
 /// </summary>
 /// <param name="Ant">A hangya</param>
 /// <returns>A talált nyilvántartott hangya, vagy null, ha nincs ilyen</returns>
 public static AntBase FindBy(CorvinusAnt Ant)
 {
     foreach (AntBase item in All) { if (item.UnderlyingAnt == Ant) { return item; } }
     return null;
 }
Пример #6
0
 /// <summary>
 /// Nyilvántartásba vesz egy harcos hangyát
 /// </summary>
 /// <param name="UnderlyingAnt">A követendő hangya</param>
 public Soldier(CorvinusAnt UnderlyingAnt)
     : base(UnderlyingAnt)
 {
     this.Type = AntType.Soldier;
 }
Пример #7
0
 /// <summary>
 /// Nyilvántartásba veszi a királynőt
 /// </summary>
 /// <param name="UnderlyingAnt">A követendő királynő</param>
 public Queen(CorvinusAnt UnderlyingAnt)
     : base(UnderlyingAnt)
 {
     this.Type = AntType.Queen;
     this.UnderlyingAnt.EveryTick += new CorvinusAnt.TickDelegate(Queen_UnderlyingAnt_EveryTick);
 }