public bool SpendConsumable(Consumable consumable, int amount, string source = "") { if (CheckBalance(consumable, amount) >= 0) { GetConsumable(consumable).Amount -= amount; HandleStats(consumable, -amount, source); //event if (OnConsumableStateChanged != null) { OnConsumableStateChanged.Invoke(consumable); } return(true); } else { return(false); } }
public ConsumableEntry AddConsumable(Consumable consumable, int amount, string source = "") { ConsumableEntry consumableEntry = GetConsumable(consumable); if (consumableEntry == null) { consumableEntry = new ConsumableEntry(); consumableEntry.Id = consumable.Name; Consumables.Add(consumableEntry); } consumableEntry.Amount += amount; HandleStats(consumable, amount, source); //event if (OnConsumableStateChanged != null) { OnConsumableStateChanged.Invoke(consumable); } return(consumableEntry); }