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; } } } } }
/*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; } }
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; } } } }