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()); } }
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()); } }