IEnumerator FollowPath(List <Waypoint> path)
    {
        var pathLength = path.Count;
        var iteration  = 0;

        foreach (Waypoint block in path)
        {
            iteration += 1;
            if (iteration == pathLength)
            {
                transform.position = block.transform.position;
                GetComponent <AudioSource>().PlayOneShot(baseDamageSFX);
                yield return(new WaitForSeconds(1f));

                friendlyBase.DamageBase();
                enemyDamage.DestroyEnemy();
                healthDisplay.UpdateHealth();
            }
            else
            {
                transform.position = block.transform.position;
                yield return(new WaitForSeconds(1f));
            }
        }
    }
Exemple #2
0
 private void ProcessHit(DamageDealer damageDealer)
 {
     health -= damageDealer.GetDamage();
     healthText.UpdateHealth();
     damageDealer.Hit();
     if (health <= 0)
     {
         AudioSource.PlayClipAtPoint(playerDestructionSound, Camera.main.transform.position, playerExplosionVolume);
         sceneLoader.GetComponent <SceneLoader>().DelayedNextScene();
         Destroy(gameObject);
     }
 }
 private void ProcessHit(DamageDealer dmgDealer)
 {
     if (!isInvincible)
     {
         Health -= dmgDealer.Damage;
         dmgDealer.Hit();
         if (Health <= 0)
         {
             Die();
         }
         else
         {
             ImmuneDamage();
             Blink();
             AudioSource.PlayClipAtPoint(getDamageSFX, Camera.main.transform.position, getDamageSFXVolume);
         }
         healthDisplayer.UpdateHealth(health);
     }
     else
     {
         dmgDealer.Hit();
     }
 }