Esempio n. 1
0
        private void ReflectDamage(Characters.Character source, Characters.Character target, float damage)
        {
            if (source == target)
            {
                return;
            }

            damage *= EffectPower;
            source.TakeDamage(TargetStats, damage, 0);
        }
Esempio n. 2
0
        //TODO BasicAttack method and SpellDamage method

        private void DealDamage(Characters.Character stats, DamageType type, float physicalDamageAmount, float magicDamageAmount, bool reduced)
        {
            if (reduced)
            {
                physicalDamageAmount *= 1 - stats.DamageReducePercentage / 100;
                magicDamageAmount    *= 1 - stats.DamageReducePercentage / 100;
            }

            switch (type)
            {
            case DamageType.Physical:
                stats.TakeDamage(_myStats, physicalDamageAmount, 0);
                break;

            case DamageType.PhysicalLethal:
                stats.TakeLethalDamage(_myStats, physicalDamageAmount, 0);
                break;

            case DamageType.Magic:
                stats.TakeDamage(_myStats, 0, magicDamageAmount);
                break;

            case DamageType.PhysicalMagic:
                stats.TakeLethalDamage(_myStats, 0, magicDamageAmount);
                break;

            case DamageType.Mixed:
                stats.TakeDamage(_myStats, physicalDamageAmount, magicDamageAmount);
                break;

            case DamageType.MixedLethal:
                stats.TakeLethalDamage(_myStats, physicalDamageAmount, magicDamageAmount);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
Esempio n. 3
0
        private IEnumerator DealBasicAttackDamage(Characters.Character stats, float delay)
        {
            yield return(new WaitForSeconds(delay));

            stats.TakeDamage(_myStats, _myStats.stats[2].GetValue(), _myStats.stats[9].GetValue());
        }