Exemple #1
0
 private void UpdateState(PokeBattleStates state)
 {
     _currentState = state;
 }
Exemple #2
0
        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);
        }