private void UpdateState(PokeBattleStates state) { _currentState = state; }
private string DoPlayerMove(int moveIndex, BattlePlayer attacker, BattlePlayer defender, PokeBattleStates nextState) { var logMessage = ""; var attackingPokemon = attacker.CurrentPokemon; var defendingPokemon = defender.CurrentPokemon; var attackerMove = attackingPokemon.Moves[moveIndex - 1]; var combatActionMessage = ""; var successfulAttack = attackingPokemon.CombatAction(defendingPokemon, attackerMove, out combatActionMessage); var defendingAfflictionMsg = attackingPokemon.TriggerAilments(defendingPokemon); var attackingAfflictionMsg = defendingPokemon.TriggerAilments(attackingPokemon); if (successfulAttack && !isPlayerDisabled(defender)) { logMessage += $"|{attackingPokemon.Name} used [{attackerMove.Name}]!\n"; logMessage += combatActionMessage; logMessage += CreateEffectLogMessage(attackerMove, attackingPokemon, defendingPokemon); logMessage += defendingAfflictionMsg; logMessage += attackingAfflictionMsg; UpdateState(nextState); } if (!successfulAttack) { logMessage += $"|{attackingPokemon.Name} can't use {attackerMove.Name}! It's out of PP."; } else if (isPlayerDisabled(defender)) { logMessage += $"|{attackingPokemon.Name} used [{attackerMove.Name}]!\n"; logMessage += combatActionMessage; logMessage += CreateEffectLogMessage(attackerMove, attackingPokemon, defendingPokemon); logMessage += defendingAfflictionMsg; logMessage += attackingAfflictionMsg; } return(logMessage); }