// 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);
 }
Example #2
0
 void HandlePlayerHit(int damage)
 {
     AnimUtils.AddDamageOrHealNumber(damage, transform.position, true);
     animator.SetTrigger("hit");
 }
Example #3
0
 private void HandleHeal(int amount)
 {
     AnimUtils.AddDamageOrHealNumber(amount, transform.position, false);
     AudioSource.PlayClipAtPoint(heal, transform.position, 1.4f);
 }