private void FinishBattle() { SC_GameLogic.battleMusic.Stop(); if (attackMove != null) { attackMove.moveSound.Stop(); } if (currentTurn == GlobalEnums.Turns.PlayersTurn) { foeAnimator.SetTrigger("DieFoe"); victoryMusic.Play(); } else if (currentTurn == GlobalEnums.Turns.FoesTurn) { playerAnimator.SetTrigger("DiePlayer"); losingMusic.Play(); } FoeTimeLeft.enabled = false; PlayerTimeLeft.enabled = false; isInBattle = false; isWaitingForRespond = true; MessageState = GlobalEnums.MessageBoxState.GameOver; battleState = GlobalEnums.BattleStates.GameOver; ManageMessageBox(); canExit = true; }
private void handleStartOfBattle() { if (battleState == GlobalEnums.BattleStates.Start) { battleState = GlobalEnums.BattleStates.Battling; if (isMultiplayer == true) { if (currentTurn == GlobalEnums.Turns.PlayersTurn) { MessageState = GlobalEnums.MessageBoxState.Selection; isSelectionMenuEnabled = true; ChangeMenu(GlobalEnums.BattleMenus.Selection); ManageMessageBox(); } else if (currentTurn == GlobalEnums.Turns.FoesTurn) { MessageState = GlobalEnums.MessageBoxState.WaitingForAttack; ManageMessageBox(); } if (isInBattle == true && currentTurn == GlobalEnums.Turns.PlayersTurn && MessageState != GlobalEnums.MessageBoxState.Attack) { ManagePlayersTurn(); } } else { currentTurn = GetRandomTurn(); } } }
private void AttackOpponent(SC_BasePokemon _attackPokemon, SC_PokemonMove _attackMove, SC_BasePokemon _defensePokemon) { isAbleToPress = false; if (canExit != true) { _attackMove.moveSound.Play(); } currentMenu = GlobalEnums.BattleMenus.Message; MessageState = GlobalEnums.MessageBoxState.Attack; attackMove = _attackMove; ManageMessageBox(attackMove); isWaitingForRespond = true; _attackMove.currPP--; float _lvl = (float)_attackPokemon.level; float _power = (float)attackMove.power; float _A = (float)_attackPokemon.attack; float _D = (float)_defensePokemon.defense; float _damage = (((((((2f * _lvl) / 5f) + 2f) * _power) * (_A / _D)) + 2f) / 50f); if (currentTurn == GlobalEnums.Turns.PlayersTurn) { playerAnimator.SetTrigger("Attack"); backgroundAnimator.SetTrigger("Attack"); StartCoroutine(FlashAfterAttack(Img_foePokemon, 4, 0.1f)); } else if (currentTurn == GlobalEnums.Turns.FoesTurn) { playerBoxAnimator.SetTrigger("Attack"); foeAnimator.SetTrigger("Attack"); foeBoxAnimator.SetTrigger("Attack"); backgroundAnimator.SetTrigger("Attack"); StartCoroutine(FlashAfterAttack(Img_playerPokemon, 4, 0.1f)); } if (_defensePokemon.HpStats.curr - _damage < 1) { PlayerTimeLeft.enabled = false; FoeTimeLeft.enabled = false; float _oldHP = (_defensePokemon.HpStats.curr) / _defensePokemon.HpStats.max; StartCoroutine(handlePlayerHpDecrease(_defensePokemon, Text_PlayerHP, _defensePokemon.HpStats.curr, 0, 0.06f)); StartCoroutine(_defensePokemon.healthBar.SetHealthBarScale(_oldHP, 0)); _defensePokemon.HpStats.curr = 0; battleState = GlobalEnums.BattleStates.GameOver; } else { float _newHP = (_defensePokemon.HpStats.curr - _damage) / _defensePokemon.HpStats.max; float _oldHP = (_defensePokemon.HpStats.curr) / _defensePokemon.HpStats.max; StartCoroutine(handlePlayerHpDecrease(_defensePokemon, Text_PlayerHP, _defensePokemon.HpStats.curr, _defensePokemon.HpStats.curr - _damage, 0.06f)); StartCoroutine(_defensePokemon.healthBar.SetHealthBarScale(_oldHP, _newHP)); _defensePokemon.HpStats.curr -= _damage; } }
private void RestartBattle() { isInBattle = false; isWaitingForRespond = true; isSelectionMenuEnabled = false; isMovesMenuEnabled = false; isFoeAttackingATM = false; canExit = false; MessageState = GlobalEnums.MessageBoxState.EnterBattle; battleState = GlobalEnums.BattleStates.Start; currentMenu = GlobalEnums.BattleMenus.Message; currentTurn = GlobalEnums.Turns.PlayersTurn; attackMove = null; }
private void AttackOpponent(SC_BasePokemon _attackPokemon, SC_PokemonMove _attackMove, SC_BasePokemon _defensePokemon) { currentMenu = GlobalEnums.BattleMenus.Message; MessageState = GlobalEnums.MessageBoxState.Attack; attackMove = _attackMove; ManageMessageBox(attackMove); isWaitingForRespond = true; _attackMove.currPP--; float _lvl = (float)_attackPokemon.level; float _power = (float)attackMove.power; float _A = (float)_attackPokemon.attack; float _D = (float)_defensePokemon.defense; float _modifier = (float)(UnityEngine.Random.Range(0.8f, 1f)); float _damage = (((((((2f * _lvl) / 5f) + 2f) * _power) * (_A / _D)) + 2f) / 50f) * _modifier; //float damage = (((((((2f * lvl) / 5f) + 2f) * power) * (A/D)) / 50f) + 2f) * modifier; //Debug.Log("damage: " + damage); if (currentTurn == GlobalEnums.Turns.PlayersTurn) { StartCoroutine(FlashAfterAttack(Img_foePokemon, 4, 0.1f)); } else if (currentTurn == GlobalEnums.Turns.FoesTurn) { StartCoroutine(FlashAfterAttack(Img_playerPokemon, 4, 0.1f)); } if (_defensePokemon.HpStats.curr - _damage < 0) { _defensePokemon.HpStats.curr = 0; _defensePokemon.healthBar.SetHealthBarScale(0); Text_PlayerHP.text = ((int)playerPokemon.HpStats.curr).ToString() + "/" + playerPokemon.HpStats.max.ToString(); battleState = GlobalEnums.BattleStates.GameOver; } else { float newHP = (_defensePokemon.HpStats.curr - _damage) / _defensePokemon.HpStats.max; _defensePokemon.HpStats.curr -= _damage; _defensePokemon.healthBar.SetHealthBarScale(newHP); Text_PlayerHP.text = ((int)playerPokemon.HpStats.curr).ToString() + "/" + playerPokemon.HpStats.max.ToString(); } }
private void FinishBattle() { SC_GameLogic.battleMusic.Stop(); if (currentTurn == GlobalEnums.Turns.PlayersTurn) { victoryMusic.Play(); } else if (currentTurn == GlobalEnums.Turns.FoesTurn) { losingMusic.Play(); } isInBattle = false; isWaitingForRespond = true; MessageState = GlobalEnums.MessageBoxState.GameOver; battleState = GlobalEnums.BattleStates.GameOver; ManageMessageBox(); }
private void Update() { if (battleCamera.activeInHierarchy == false) { return; } if (isInBattle != true) { ChangeMenu(GlobalEnums.BattleMenus.Message); return; } if (Input.GetKeyDown(KeyCode.Z)) { clickSound.Play(); if (canExit == true) { BackToMainMenu(); } if (battleState == GlobalEnums.BattleStates.GameOver && battleCamera.activeInHierarchy == true) { FinishBattle(); canExit = true; return; } else { isWaitingForRespond = false; } if (MessageState == GlobalEnums.MessageBoxState.EnterBattle) { MessageState = GlobalEnums.MessageBoxState.Selection; isSelectionMenuEnabled = true; ChangeMenu(GlobalEnums.BattleMenus.Selection); ManageMessageBox(); return; } if (MessageState == GlobalEnums.MessageBoxState.Attack) { if (currentTurn == GlobalEnums.Turns.PlayersTurn) { currentTurn = GlobalEnums.Turns.FoesTurn; } else if (currentTurn == GlobalEnums.Turns.FoesTurn && isFoeAttackingATM != true) { currentTurn = GlobalEnums.Turns.PlayersTurn; MessageState = GlobalEnums.MessageBoxState.Selection; ChangeMenu(GlobalEnums.BattleMenus.Selection); ManageMessageBox(); isWaitingForRespond = false; isSelectionMenuEnabled = true; isMovesMenuEnabled = false; } return; } } if (isWaitingForRespond == true) { ManageMessageBox(attackMove); } else { if (battleState == GlobalEnums.BattleStates.Start) { battleState = GlobalEnums.BattleStates.Battling; currentTurn = GetRandomTurn(); if (currentTurn == GlobalEnums.Turns.FoesTurn) { StartCoroutine(AIdelay(2f)); } else { MessageState = GlobalEnums.MessageBoxState.Selection; ManageMessageBox(); } } if (isInBattle == true && currentTurn == GlobalEnums.Turns.PlayersTurn && MessageState != GlobalEnums.MessageBoxState.Attack) { ManagePlayersTurn(); } else if (isInBattle == true && currentTurn == GlobalEnums.Turns.FoesTurn && isFoeAttackingATM != true) { isFoeAttackingATM = true; isSelectionMenuEnabled = false; isMovesMenuEnabled = false; isWaitingForRespond = true; StartCoroutine(AIdelay(2f)); } } }