Beispiel #1
0
    public void Heal(StatsBase healer, StatsBase target, int amount, bool dontContinueAfterAttack)
    {
        target.Heal(amount);

        messageText.text += string.Format("{0} heals {1} health.", target.characterName, amount);
        AudioPlayer.Instance.HealSpell();

        if (!dontContinueAfterAttack)
        {
            StartCoroutine(NextTurnWait());
        }
    }
Beispiel #2
0
    public void Attack(StatsBase attacker, StatsBase target, int damage, bool ignoreDefence, bool lifesteal, bool showAnimation, bool dontAdvanceAfterAttack)
    {
        int damageTaken = target.TakeDamage(damage, ignoreDefence);

        if (damageTaken > 0)
        {
            if (ignoreDefence)
            {
                messageText.text += "Critical hit!\n";
            }
            if (!lifesteal)
            {
                messageText.text += string.Format("{0} takes {1} damage.", target.characterName, damageTaken);
                if (showAnimation)
                {
                    AudioPlayer.Instance.TakeDamage();
                }
            }
            else
            {
                attacker.Heal(damageTaken);
                messageText.text += string.Format("Absorbs {0} HP from {1}!", damageTaken, target.characterName);
                AudioPlayer.Instance.HealSpell();
            }

            if (target.isEnemy && showAnimation)
            {
                spriteManager.PlayMeleeEffect(allEnemies.IndexOf((EnemyStats)target));
                if (target.currentHP > 0)
                {
                    spriteManager.FlickerSprite(allEnemies.IndexOf((EnemyStats)target));
                }
            }
        }
        else
        {
            messageText.text += string.Format("{0} blocks the attack.", target.characterName);
            AudioPlayer.Instance.Block();
        }

        if (target.isDead)
        {
            messageText.text += string.Format("\n{0} dies!", target.characterName);
        }

        if (!dontAdvanceAfterAttack)
        {
            StartCoroutine(NextTurnWait());
        }
    }