public override void Execute(Level level)
 {
     foreach(var unit in UnitsToRemove)
     {
         List<Component> components = level.GetComponentManager().GetComponents(0);
         for (int i = 0; i < components.Count; i++)
         {
             UnitStorageComponent c = (UnitStorageComponent)components[i];
             if (c.GetUnitTypeIndex(unit.Data) != -1)
             {
                 var storageCount = c.GetUnitCountByData(unit.Data);
                 if(storageCount >= unit.Count)
                 {
                     c.RemoveUnits(unit.Data, unit.Count);
                     break;
                 }
                 else
                 {
                     c.RemoveUnits(unit.Data, storageCount);
                     unit.Count -= storageCount;
                 }
             }
         }
     }
 }
Beispiel #2
0
        /*public int L1X { get; set; }
        *
        *  public int L1Y { get; set; }
        *
        *  public int L2X { get; set; }
        *
        *  public int L2Y { get; set; }
        *
        *  public int L3X { get; set; }
        *
        *  public int L3Y { get; set; }*/

        public void AddComponent(Component c)
        {
            if (m_vComponents[c.Type].Type != -1)
            {
            }
            else
            {
                m_vLevel.GetComponentManager().AddComponent(c);
                m_vComponents[c.Type] = c;
            }
        }
Beispiel #3
0
 public void AddComponent(Component c)
 {
     if (m_vComponents[c.Type].Type != -1)
     {
         //ignore, component already set
     }
     else
     {
         m_vLevel.GetComponentManager().AddComponent(c);
         m_vComponents[c.Type] = c;
     }
 }
 public override void Execute(Level level)
 {
     List<Component> components = level.GetComponentManager().GetComponents(0);
     for (int i = 0; i < components.Count; i++)
     {
         UnitStorageComponent c = (UnitStorageComponent)components[i];
         if (c.GetUnitTypeIndex(Spell) != -1)
         {
             var storageCount = c.GetUnitCountByData(Spell);
             if (storageCount >= 1)
             {
                 c.RemoveUnits(Spell, 1);
                 break;
             }
         }
     }
 }