Пример #1
0
 public void AddSpell(ISpellsProvider provider, int index)
 {
     foreach (SpellData spell in provider.Spells)
     {
         _spells[index] = spell;
         OnCooldownChanged?.Invoke(index, _spells[index]);
     }
 }
Пример #2
0
        private void ReduceCooldowns(float damage)
        {
            for (int i = 0; i < 4; i++)
            {
                if (_spells[i] != null)
                {
                    _spells[i].DamageToCast = (_spells[i].DamageToCast - damage > 0) ?
                                              _spells[i].DamageToCast - damage : 0;

                    OnCooldownChanged?.Invoke(i, _spells[i]);
                }
            }
        }
Пример #3
0
        private void CastSpell(int spellIndex)
        {
            SpellData spellToCast = _spells[spellIndex - 1];

            if (spellToCast.DamageToCast <= 0)
            {
                spellToCast.Cast(transform, GetSpellTarget(spellToCast.CastType));

                spellToCast.DamageToCast = spellToCast.Cooldown;

                OnCooldownChanged?.Invoke(spellIndex - 1, spellToCast);

                ReduceCooldowns(0);
            }
        }