public void PlayEnemyDeathSFX(
     EnemyController.EnemyType type,
     AudioClip deathSFX,
     float deathSFXVolume,
     AudioSource enemyAudioSource,
     bool isCalledByAnimation = false)
 {
     if (type != EnemyController.EnemyType.Demon ||
         (type == EnemyController.EnemyType.Demon && isCalledByAnimation))
     {
         enemyAudioSource.PlayOneShot(deathSFX, deathSFXVolume);
     }
 }
        public void OnCreateEnemy(object sender, EnemyController.EnemyType enemyType)
        {
            if (sender is Point2D)
            {
                CreateSmallAsteroid(_smallAsteroidPoints, (Point2D)sender);
            }

            if (enemyType == EnemyController.EnemyType.Asteroid)
            {
                CreateAsteroid(_asteroidPoints, CreateRandomOffScreenPoint());
            }

            if (enemyType == EnemyController.EnemyType.UFO)
            {
                CreateUFO(_ufoPoints, CreateRandomOffScreenPoint());
            }
        }
    public void Possess(EnemyController.EnemyType type)
    {
        switch (type)
        {
        case EnemyController.EnemyType.GHOST_FOOD:
            StartCoroutine(CountdownPossession(firstCountdownDuration, firstCountdown, firstPosession, type));
            break;

        case EnemyController.EnemyType.GHOST_MIND:
            StartCoroutine(CountdownPossession(secondCountdownDuration, secondCountdown, secondPosession, type));
            break;

        case EnemyController.EnemyType.GHOST_HEALTH:
            StartCoroutine(CountdownPossession(thirdCountdownDuration, thirdCountdown, thirdPosession, type));
            break;
        }
    }
Example #4
0
    public void UpdateEnemySpeakBox(String newText, EnemyController.EnemyType type)
    {
        enemyText.text = newText;

        enemyImage.enabled = true;
        switch (type)
        {
        case EnemyController.EnemyType.Delegator:
            enemyImage.sprite = enemyDelegatorHead;
            break;

        case EnemyController.EnemyType.Hottie:
            enemyImage.sprite = enemyHottieHead;
            break;

        case EnemyController.EnemyType.Manager:
            enemyImage.sprite = enemyManagerHead;
            break;
        }
    }
Example #5
0
    public void DePossessed(EnemyController.EnemyType type)
    {
        switch (type)
        {
        case EnemyController.EnemyType.GHOST_FOOD:
            maxFood = 6f;
            break;

        case EnemyController.EnemyType.GHOST_HEALTH:
            maxHealth = 6f;
            break;

        case EnemyController.EnemyType.GHOST_MIND:
            maxHappy = 6f;
            break;
        }

        GameController.instance.HUD.UpdatePanels();
        animator.SetBool("possessed", false);
    }
    private IEnumerator CountdownPossession(float duration, TextMeshPro textObject, GameObject possession, EnemyController.EnemyType type)
    {
        int totalTime = 0;

        possession.SetActive(true);

        petController.Possessed(type);

        while (totalTime < duration)
        {
            totalTime += 1;
            Debug.Log("Total time " + totalTime);
            var secondsLeft = duration - totalTime;
            textObject.text = secondsLeft.ToString() + "s";
            yield return(new WaitForSeconds(1f));
        }

        possession.SetActive(false);

        petController.DePossessed(type);

        yield break;
    }
 public EnemyItem(EnemyController.EnemyType enemyType, int timeToSpawn)
 {
     EnemyType   = enemyType;
     TimeToSpawn = timeToSpawn;
 }