示例#1
0
 /// <summary>
 /// Notify listeners and add/update stored allied units.
 /// </summary>
 /// <param name="unit">Unit where Alliance == Self</param>
 private void AddUnitSelf(Unit unit)
 {
     if (GameConstants.IsWorker(unit.UnitType))
     {
         if (WorkersSelf.ContainsKey(unit.Tag))
         {
             WorkersSelf[unit.Tag].DataSource = unit;
         }
         else
         {
             var data = new IntelUnit(unit);
             WorkersSelf.Add(unit.Tag, data);
             Handler.Handle(Case.WorkerAddedSelf, data);
         }
     }
     else if (IsBuilding(unit.UnitType))
     {
         if (StructuresSelf.ContainsKey(unit.Tag))
         {
             StructuresSelf[unit.Tag].DataSource = unit;
         }
         else
         {
             var data = new IntelUnit(unit);
             StructuresSelf.Add(unit.Tag, data);
             Handler.Handle(Case.StructureAddedSelf, data);
         }
     }
     else     // must be unit
     {
         if (UnitsSelf.ContainsKey(unit.Tag))
         {
             UnitsSelf[unit.Tag].DataSource = unit;
         }
         else
         {
             var data = new IntelUnit(unit);
             UnitsSelf.Add(unit.Tag, data);
             Handler.Handle(Case.UnitAddedSelf, data);
         }
     }
 }