// Start is called before the first frame update void Start() { this.enemyRunesManager = GameObject.Find("Enemy Runes").GetComponent <EnemyRunesManager>(); transform.localScale = new Vector3(0, 0, 1); Enemy.OnDeath += () => { Destroy(this.gameObject); }; Enemy.OnAttack += (target) => { float intensity = 1; var startPosition = transform.position; var targetPosition = new Vector3(target.Coordinates.x, target.Coordinates.y, startPosition.z); /// attack animation attackAnimation = StartCoroutine(AnimUtils.Animate(0.5f, (t) => { float lerp = Mathf.Pow(Mathf.Cos(Mathf.PI / 2 + Mathf.PI * Mathf.Sqrt(t)), 4) * intensity; transform.position = Vector3.Lerp(startPosition, targetPosition, lerp); if (t == 1) { attackAnimation = null; } })); }; Enemy.OnHeal += (int heal) => { AnimUtils.AddDamageOrHealNumber(heal, transform.position, false); }; Enemy.OnHit += (int damage) => { AnimUtils.AddDamageOrHealNumber(damage, transform.position, true); }; Enemy.OnRuneTriggered += (message) => AnimUtils.ShowFloatingText(message, transform.position); }
void HandlePlayerHit(int damage) { AnimUtils.AddDamageOrHealNumber(damage, transform.position, true); animator.SetTrigger("hit"); }
private void HandleHeal(int amount) { AnimUtils.AddDamageOrHealNumber(amount, transform.position, false); AudioSource.PlayClipAtPoint(heal, transform.position, 1.4f); }