public IEnumerator BossTurn3()
    {
        if (battleSystemFossil.enemyLightingEffects[0] != null)
        {
            battleSystemFossil.enemyLightingEffects[0].SetActive(true);
            battleSystemFossil.currentEnemies[0].GetComponent <Image>().enabled = false;
        }
        //Sets all lighting effects for the final boss

        if (battleSystemFossil.bossUnit[2].GetComponent <UnitStats>().currentHP < battleSystemFossil.bossUnit[2].GetComponent <UnitStats>().maxHP / 2)
        {
            isDead = playerStats.TakeDamage(battleSystemFossil.bossUnit[2].damage / PlayerStats.defendButton);
            playerStats.TakeDamage(battleSystemFossil.playerUnit.damage);
            battleSystemFossil.playerUnit.damage++;

            battleSystemFossil.playerColor.color = new Color(1, 0, 0);

            battleSystemFossil.CreatePlayerParticles();

            cameraShake.shake      = battleSystemFossil.playerPrefab;
            EnemyHolder.shakeEnemy = true;

            battleSystemFossil.playerHUD.SetHP(battleSystemFossil.playerUnit.currentHP);

            yield return(new WaitForSeconds(.2f));

            battleSystemFossil.playerColor.color = new Color(1, 1, 1);
            EnemyHolder.shakeEnemy = false;

            yield return(new WaitForSeconds(.2f));

            battleSystemFossil.enemyLightingEffects[0].SetActive(false);

            yield return(new WaitForSeconds(.55f));
        }
        else
        {
            isDead = playerStats.TakeDamage(battleSystemFossil.bossUnit[2].damage / PlayerStats.defendButton);

            battleSystemFossil.playerColor.color = new Color(1, 0, 0);

            battleSystemFossil.CreatePlayerParticles();

            cameraShake.shake      = battleSystemFossil.playerPrefab;
            EnemyHolder.shakeEnemy = true;

            battleSystemFossil.playerHUD.SetHP(battleSystemFossil.playerUnit.currentHP);

            yield return(new WaitForSeconds(.2f));

            battleSystemFossil.playerColor.color = new Color(1, 1, 1);
            EnemyHolder.shakeEnemy = false;

            yield return(new WaitForSeconds(.2f));

            battleSystemFossil.enemyLightingEffects[0].SetActive(false);

            yield return(new WaitForSeconds(.55f));
        }

        EnemyHolder.coroutinesRunning--;

        if (isDead)
        {
            battleSystemFossil.state = BattleStateFossil.LOST;
            battleSystemFossil.StartCoroutine("EndBattle");
        }
    } //Basic enemy turn that will look at which enemy the player is fighting, and start seperate scripts depending on the enemy.
Beispiel #2
0
    public IEnumerator EnemyTurn1()
    {
        switch (EnemyHolder.coroutinesRunning)
        {
        case 0:
            if (battleSystemFossil.enemyLightingEffects[0] != null)
            {
                battleSystemFossil.enemyLightingEffects[0].SetActive(true);
                battleSystemFossil.currentEnemies[0].GetComponent <Image>().enabled = false;

                thisEnemy = battleSystemFossil.currentEnemies[0];

                if (EnemyHolder.enemyDowned[0] != null && EnemyHolder.enemyDowned[0].GetComponent <UnitStats>().isDowned == true)
                {
                    battleSystemFossil.enemyLightingEffects[0].SetActive(false);
                    battleSystemFossil.currentEnemies[0].GetComponent <Image>().enabled = true;
                }
            }
            if (EnemyHolder.enemyDowned[0] != null)
            {
                if (EnemyHolder.enemyDowned[0].GetComponent <UnitStats>().isDowned == true)
                {
                    EnemyHolder.isDowned = true;
                }
            }
            break;

        case 1:
            yield return(new WaitForSeconds(1f));

            if (battleSystemFossil.enemyLightingEffects[1] != null)
            {
                battleSystemFossil.enemyLightingEffects[1].SetActive(true);
                battleSystemFossil.currentEnemies[1].GetComponent <Image>().enabled = false;

                thisEnemy = battleSystemFossil.currentEnemies[1];

                if (EnemyHolder.enemyDowned[1] != null && EnemyHolder.enemyDowned[1].GetComponent <UnitStats>().isDowned == true)
                {
                    battleSystemFossil.enemyLightingEffects[1].SetActive(false);
                    battleSystemFossil.currentEnemies[1].GetComponent <Image>().enabled = true;
                }
            }
            if (EnemyHolder.enemyDowned[1] != null)
            {
                if (EnemyHolder.enemyDowned[1].GetComponent <UnitStats>().isDowned == true)
                {
                    EnemyHolder.isDowned = true;
                }
            }
            break;

        case 2:
            yield return(new WaitForSeconds(2f));

            if (battleSystemFossil.enemyLightingEffects[2] != null)
            {
                battleSystemFossil.enemyLightingEffects[2].SetActive(true);
                battleSystemFossil.currentEnemies[2].GetComponent <Image>().enabled = false;

                thisEnemy = battleSystemFossil.currentEnemies[2];

                if (EnemyHolder.enemyDowned[2] != null && EnemyHolder.enemyDowned[2].GetComponent <UnitStats>().isDowned == true)
                {
                    battleSystemFossil.enemyLightingEffects[2].SetActive(false);
                    battleSystemFossil.currentEnemies[2].GetComponent <Image>().enabled = true;
                }
            }
            if (EnemyHolder.enemyDowned[2] != null)
            {
                if (EnemyHolder.enemyDowned[2].GetComponent <UnitStats>().isDowned == true)
                {
                    EnemyHolder.isDowned = true;
                }
            }
            break;

        case 3:
            yield return(new WaitForSeconds(3f));

            if (battleSystemFossil.enemyLightingEffects[3] != null)
            {
                battleSystemFossil.enemyLightingEffects[3].SetActive(true);
                battleSystemFossil.currentEnemies[3].GetComponent <Image>().enabled = false;

                thisEnemy = battleSystemFossil.currentEnemies[3];

                if (EnemyHolder.enemyDowned[3] != null && EnemyHolder.enemyDowned[3].GetComponent <UnitStats>().isDowned == true)
                {
                    battleSystemFossil.enemyLightingEffects[3].SetActive(false);
                    battleSystemFossil.currentEnemies[3].GetComponent <Image>().enabled = true;
                }
            }
            if (EnemyHolder.enemyDowned[3] != null)
            {
                if (EnemyHolder.enemyDowned[3].GetComponent <UnitStats>().isDowned == true)
                {
                    EnemyHolder.isDowned = true;
                }
            }
            break;
        }// Delays the coroutines activation depending on how many enemies you are fighting and disables specific lighting effects depending on downed enemies

        if (thisEnemy != null)
        {
            if (EnemyHolder.isDowned == false && thisEnemy.GetComponent <UnitStats>().currentHP > thisEnemy.GetComponent <UnitStats>().maxHP / 2)
            {
                isDead = playerStats.TakeDamage(GameObject.FindGameObjectWithTag("Enemy1").GetComponent <UnitStats>().damage / PlayerStats.defendButton);

                battleSystemFossil.playerColor.color = new Color(1, 0, 0); //Sets the player color to red

                battleSystemFossil.CreatePlayerParticles();                //Generates feedback particles that shooot out of player

                cameraShake.shake      = battleSystemFossil.playerPrefab;
                EnemyHolder.shakeEnemy = true;
                //Shakes the player for more feedback

                battleSystemFossil.playerHUD.SetHP(battleSystemFossil.playerUnit.currentHP); //Sets the HP of the player in the HUD

                yield return(new WaitForSeconds(.2f));

                battleSystemFossil.playerColor.color = new Color(1, 1, 1);
                EnemyHolder.shakeEnemy = false;
                //Turns color and shaking back to normal

                yield return(new WaitForSeconds(.2f));

                for (int j = 0; j <= EnemyHolder.enemyAmount; j++)
                {
                    if (battleSystemFossil.enemyLightingEffects[j] != null)
                    {
                        battleSystemFossil.enemyLightingEffects[j].SetActive(false);
                        battleSystemFossil.currentEnemies[j].GetComponent <Image>().enabled = true;
                    }
                }
                //Depending on how many enemies you are fighting, turns off respecitve lights

                yield return(new WaitForSeconds(.55f));
            }
            else if (EnemyHolder.isDowned == false && thisEnemy.GetComponent <UnitStats>().currentHP < thisEnemy.GetComponent <UnitStats>().maxHP / 2)
            {
                if (isCharging == true)
                {
                    isDead = playerStats.TakeDamage((GameObject.FindGameObjectWithTag("Enemy1").GetComponent <UnitStats>().damage * 2) / PlayerStats.defendButton);

                    battleSystemFossil.playerColor.color = new Color(1, 0, 0); //Sets the player color to red

                    battleSystemFossil.CreatePlayerParticles();                //Generates feedback particles that shooot out of player

                    cameraShake.shake      = battleSystemFossil.playerPrefab;
                    EnemyHolder.shakeEnemy = true;
                    //Shakes the player for more feedback

                    battleSystemFossil.playerHUD.SetHP(battleSystemFossil.playerUnit.currentHP); //Sets the HP of the player in the HUD

                    yield return(new WaitForSeconds(.15f));

                    battleSystemFossil.playerColor.color = new Color(1, 1, 1);
                    EnemyHolder.shakeEnemy = false;
                    //Turns color and shaking back to normal

                    yield return(new WaitForSeconds(.15f));

                    for (int j = 0; j <= EnemyHolder.enemyAmount; j++)
                    {
                        if (battleSystemFossil.enemyLightingEffects[j] != null)
                        {
                            battleSystemFossil.enemyLightingEffects[j].SetActive(false);
                            battleSystemFossil.currentEnemies[j].GetComponent <Image>().enabled = true;
                        }
                    }
                    //Depending on how many enemies you are fighting, turns off respecitve lights

                    isCharging = false;
                }
                else if (isCharging == false)
                {
                    infoBar.GetComponent <Animator>().SetBool("isOpen", true);

                    infoBar.transform.GetChild(0).gameObject.GetComponent <Text>().text = "The enemy is charging up an attack";

                    yield return(new WaitForSeconds(.55f));

                    for (int j = 0; j <= EnemyHolder.enemyAmount; j++)
                    {
                        if (battleSystemFossil.enemyLightingEffects[j] != null)
                        {
                            battleSystemFossil.enemyLightingEffects[j].SetActive(false);
                            battleSystemFossil.currentEnemies[j].GetComponent <Image>().enabled = true;
                        }
                    }

                    infoBar.GetComponent <Animator>().SetBool("isOpen", false);

                    yield return(new WaitForSeconds(.2f));

                    infoBar.transform.GetChild(0).gameObject.GetComponent <Text>().text = "Select an enemy";

                    isCharging = true;
                } //If it is the first time the enemy is attacking, it will say that the enemy is charging an attack
            }
        }         //Special attack that only occurs when the enemy has less than half health, attacks the player 5 times in quick succession

        if (EnemyHolder.isDowned == true)
        {
            yield return(new WaitForSeconds(.95f));

            EnemyHolder.isDowned = false;

            for (int j = 0; j <= EnemyHolder.enemyAmount; j++)
            {
                if (battleSystemFossil.enemyLightingEffects[j] != null)
                {
                    battleSystemFossil.enemyLightingEffects[j].SetActive(false);
                    battleSystemFossil.currentEnemies[j].GetComponent <Image>().enabled = true;
                }
            }
        }

        EnemyHolder.coroutinesRunning--;

        if (isDead)
        {
            battleSystemFossil.state = BattleStateFossil.LOST;
            battleSystemFossil.StartCoroutine("EndBattle");
        }
    } //Basic enemy turn that will look at which enemy the player is fighting, and start seperate scripts depending on the enemy.