Exemplo n.º 1
0
    IEnumerator EnemyMove()
    {
        state = StateBattle.EnemyMove;

        var move = enemyUnit.Pokemon.GetRandomMove();

        yield return(dialogBox.TypeDialog($"{enemyUnit.Pokemon.Base.Name} uso {move.Base.Name}"));

        yield return(new WaitForSeconds(1f));

        var damageDetails = playerUnit.Pokemon.TakeDamage(move, enemyUnit.Pokemon);

        yield return(playerHud.UpdateHP());

        yield return(ShowDamageDetails(damageDetails));

        yield return(new WaitForSeconds(1f));

        if (damageDetails.Fainted)
        {
            yield return(dialogBox.TypeDialog($"{playerUnit.Pokemon.Base.Name} Desmayado"));
        }
        else
        {
            PlayerMove();
        }
    }
Exemplo n.º 2
0
    IEnumerator PerformPlayerMove()
    {
        state = StateBattle.Busy;

        var move = playerUnit.Pokemon.Moves[currentMove];

        yield return(dialogBox.TypeDialog($"{playerUnit.Pokemon.Base.Name} uso {move.Base.Name}"));

        yield return(new WaitForSeconds(1f));

        var damageDetails = enemyUnit.Pokemon.TakeDamage(move, playerUnit.Pokemon);

        yield return(enemyHud.UpdateHP());

        yield return(ShowDamageDetails(damageDetails));

        yield return(new WaitForSeconds(1f));

        if (damageDetails.Fainted)
        {
            yield return(dialogBox.TypeDialog($"{enemyUnit.Pokemon.Base.Name} Desmayado"));
        }
        else
        {
            StartCoroutine(EnemyMove());
        }
    }
Exemplo n.º 3
0
 public void ChangeState(string state)
 {
     StateBattle nextState = GetComponent(state) as StateBattle;
     if(nextState != null){
         prevState.OnExitState();
         nextState.OnEnterState();
         nextState.enabled = true;
         prevState.enabled = false;
         prevState = nextState;
     }
 }
Exemplo n.º 4
0
    void Awake()
    {
        List <StateBattle> states = new List<StateBattle>();
        StateBattle[] sts = GetComponents<StateBattle>();

        foreach(StateBattle s in sts){
            if(s.enabled){
                if(prevState != null){
                    Debug.Log("There's more than one default state.");
                }
                else{
                    prevState = s;
                }
            }
        }
    }
    IEnumerator PerformPlayerMove()
    {
        state = StateBattle.Busy;

        var move = playerUnit.Pokemon.Moves[currentMove];

        yield return(dialogBox.TypeDialog($"{playerUnit.Pokemon.Base.Name} uso {move.Base.Name}"));

        yield return(new WaitForSeconds(1f));

        var damageDetails = enemyUnit.Pokemon.TakeDamage(move, playerUnit.Pokemon);

        yield return(enemyHud.UpdateHP());

        yield return(ShowDamageDetails(damageDetails));

        yield return(new WaitForSeconds(1f));

        if (damageDetails.Fainted)
        {
            yield return(dialogBox.TypeDialog($"{enemyUnit.Pokemon.Base.Name} Desmayado"));

            enemyUnit.PlayFaintAnimation();

            yield return(new WaitForSeconds(2f));

            OnBattleOver(true);

            /*var nextPokemon = wildPokemon.GetPokemon();*/

            /*if (nextPokemon != null)
             * {
             *  enemyUnit.Setup(wildPokemon.GetPokemon());
             *  enemyHud.SetData(enemyUnit.Pokemon);
             *  dialogBox.SetMoveNames(enemyUnit.Pokemon.Moves);
             *  yield return dialogBox.TypeDialog($"Aparecio un {enemyUnit.Pokemon.Base.Name}");
             *  EnemyMove();
             * }*/
        }
        else
        {
            StartCoroutine(EnemyMove());
        }
    }
Exemplo n.º 6
0
    IEnumerator EnemyMove()
    {
        state = StateBattle.EnemyMove;

        var move = enemyUnit.PokemonList[enemyCount].GetRandomMove();

        yield return(dialogBox.TypeDialog($"{enemyUnit.PokemonList[enemyCount].Base.Name} uso {move.Base.Name}"));

        yield return(new WaitForSeconds(1f));

        var damageDetails = playerUnit.PokemonList[pokemonCount].TakeDamage(move, enemyUnit.PokemonList[enemyCount]);

        yield return(playerHud.UpdateHP());

        yield return(ShowDamageDetails(damageDetails));

        yield return(new WaitForSeconds(1f));

        if (damageDetails.Fainted)
        {
            yield return(dialogBox.TypeDialog($"{playerUnit.PokemonList[pokemonCount].Base.Name} Desmayado"));

            if (pokemonCount < 2)
            {
                pokemonCount++;

                playerUnit.Setup();
                playerUnit.SetSprite(pokemonCount);
                playerHud.SetData(playerUnit.PokemonList[pokemonCount]);
                dialogBox.SetMoveNames(playerUnit.PokemonList[pokemonCount].Moves);

                PlayerMove();
            }
            else
            {
                yield return(dialogBox.TypeDialog("Perdiste!"));
            }
        }
        else
        {
            PlayerMove();
        }
    }
Exemplo n.º 7
0
    IEnumerator PerformPlayerMove()
    {
        state = StateBattle.Busy;

        var move = playerUnit.PokemonList[pokemonCount].Moves[currentMove];

        yield return(dialogBox.TypeDialog($"{playerUnit.PokemonList[pokemonCount].Base.Name} uso {move.Base.Name}"));

        yield return(new WaitForSeconds(1f));

        var damageDetails = enemyUnit.PokemonList[enemyCount].TakeDamage(move, playerUnit.PokemonList[pokemonCount]);

        yield return(enemyHud.UpdateHP());

        yield return(ShowDamageDetails(damageDetails));

        yield return(new WaitForSeconds(1f));

        if (damageDetails.Fainted)
        {
            yield return(dialogBox.TypeDialog($"{enemyUnit.PokemonList[enemyCount].Base.Name} Desmayado"));

            if (enemyCount < 2)
            {
                enemyCount++;

                enemyUnit.Setup();
                enemyUnit.SetSprite(enemyCount);
                enemyHud.SetData(enemyUnit.PokemonList[enemyCount]);
                dialogBox.SetMoveNames(enemyUnit.PokemonList[enemyCount].Moves);
                StartCoroutine(EnemyMove());
            }
            else
            {
                yield return(dialogBox.TypeDialog("Ganaste!"));
            }
        }
        else
        {
            StartCoroutine(EnemyMove());
        }
    }
Exemplo n.º 8
0
 void PlayerMove()
 {
     state = StateBattle.PlayerMove;
     dialogBox.EnableDialogText(false);
     dialogBox.EnableMoveSelector(true);
 }
    IEnumerator EnemyMove()
    {
        state = StateBattle.EnemyMove;

        var move = enemyUnit.Pokemon.GetRandomMove();

        yield return(dialogBox.TypeDialog($"{enemyUnit.Pokemon.Base.Name} uso {move.Base.Name}"));

        enemyUnit.PlayAttackAnimation();
        yield return(new WaitForSeconds(1f));

        playerUnit.PlayHitAnimation();
        var damageDetails = playerUnit.Pokemon.TakeDamage(move, enemyUnit.Pokemon);

        yield return(playerHud.UpdateHP());

        yield return(ShowDamageDetails(damageDetails));

        yield return(new WaitForSeconds(1f));

        if (damageDetails.Fainted)
        {
            yield return(dialogBox.TypeDialog($"{playerUnit.Pokemon.Base.Name} Desmayado"));

            playerUnit.PlayFaintAnimation();

            yield return(new WaitForSeconds(2f));

            var nextPokemon = playerParty.GetHealthyPokemon();

            if (nextPokemon != null)
            {
                playerUnit.Setup(nextPokemon);
                playerHud.SetData(nextPokemon);

                dialogBox.SetMoveNames(nextPokemon.Moves);

                yield return(dialogBox.TypeDialog($"Go {nextPokemon.Base.Name}!"));

                PlayerMove();
            }
            else
            {
                OnBattleOver(false);
            }

            /*var nextPokemon = playerParty.GetPokemon();
             * if (nextPokemon != null)
             * {
             *  playerUnit.Setup(playerParty.GetPokemon());
             *  playerHud.SetData(playerUnit.Pokemon);
             *  dialogBox.SetMoveNames(playerUnit.Pokemon.Moves);
             *  yield return dialogBox.TypeDialog($"El jugador eligio {playerUnit.Pokemon.Base.Name}");
             *  PlayerMove();
             * }*/
        }
        else
        {
            PlayerMove();
        }
    }