public void Heal(int amount) { currentHealth += amount; currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth); OnResourceChange?.Invoke(new ResourceChangeData( ResourceChangeType.GAIN, currentHealth, maxHealth)); }
public int GetAnyResourceUpToValue(ResourceType type, int value) { var result = storedResources.GetAnyResourceUpToValue(type, value); if (result != 0) { OnResourceChange?.Invoke(); } return(result); }
public void TakeDamage(int amount) { currentHealth -= amount; currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth); OnResourceChange?.Invoke(new ResourceChangeData( ResourceChangeType.LOSE, currentHealth, maxHealth)); if (currentHealth <= 0) { OnDie?.Invoke(this); } }
public void UseMana(int amount) { if (amount < 1) { return; } currentMana -= amount; currentMana = Mathf.Clamp(currentMana, 0, maxMana); OnResourceChange?.Invoke(new ResourceChangeData( ResourceChangeType.LOSE, currentMana, maxMana)); }
public void SpendResources(ResourceCollection collection) { storedResources.TrySpendResource(collection); OnResourceChange?.Invoke(); }
public void AddResource(Resource value) { storedResources.AddResources(value); OnResourceChange?.Invoke(); }