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(); } }
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()); } }
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; } }
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()); } }
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(); } }
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()); } }
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(); } }