コード例 #1
0
        public void Heal(int amount)
        {
            currentHealth += amount;
            currentHealth  = Mathf.Clamp(currentHealth, 0, maxHealth);

            OnResourceChange?.Invoke(new ResourceChangeData(
                                         ResourceChangeType.GAIN,
                                         currentHealth,
                                         maxHealth));
        }
コード例 #2
0
        public int GetAnyResourceUpToValue(ResourceType type, int value)
        {
            var result = storedResources.GetAnyResourceUpToValue(type, value);

            if (result != 0)
            {
                OnResourceChange?.Invoke();
            }
            return(result);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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));
        }
コード例 #5
0
 public void SpendResources(ResourceCollection collection)
 {
     storedResources.TrySpendResource(collection);
     OnResourceChange?.Invoke();
 }
コード例 #6
0
 public void AddResource(Resource value)
 {
     storedResources.AddResources(value);
     OnResourceChange?.Invoke();
 }