public void drawSituation() { wait(600); System.out.println("\n"); wait(50); System.out.println("|---------------------------------------|"); wait(50); System.out.println( "| " + opponent.getName() + "'s " + opponent.getPokemonName() + " HP:" + opponent.getPokemon().getHp() + " \t\t|"); wait(50); System.out.println("|\t\t\t\t\t|"); wait(50); System.out.println("|\t\t(-o-)\t\t |"); wait(50); System.out.println("|\t\t\t\t\t|"); wait(50); System.out.println( "|\t" + player.getName() + "'s " + player.getPokemonName() + " HP:" + player.getPokemon().getHp() + " \t\t|"); wait(50); System.out.println("|---------------------------------------|"); wait(50); System.out.println("\n"); wait(50); }
public void printVerdict() { if (player.getPokemon().getHp() > 0 && opponent.getPokemon().getHp() < 0) { System.out.println("Gary's pokemon fainted!"); System.out.println("You win!"); } else if (player.getPokemon().getHp() < 0 && opponent.getPokemon().getHp() > 0) { System.out.println("Your pokemon fainted!"); System.out.println("You lost! I hope you saved your game..."); } }
public void executeMoves() { MoveOrder attackOrder = resolveTurnOrder(player, opponent); // choose attacks player.setChosenAction(chooseAttack(player)); opponent.setChosenAction(chooseAttack(opponent)); // get order for always correct sequential attacking Trainer firstP = (attackOrder.getFirst()); Move firstPM = (attackOrder.getFirst().getChosenAction()); Trainer secondP = (attackOrder.getSecond()); Move secondPM = (attackOrder.getSecond().getChosenAction()); if (firstPM.getCat().toUpperCase().equals("PHYSICAL")) { attack(firstP.getPokemon(), firstPM, secondP.getPokemon()); } else if (firstPM.getCat().toUpperCase().equals("STATUS")) { stat(firstPM, secondP.getPokemon()); } else if (firstPM.getName().toUpperCase().equals("USEPOTION")) { heal(firstP); } if (secondPM.getCat().toUpperCase().equals("PHYSICAL")) { attack(secondP.getPokemon(), secondPM, firstP.getPokemon()); } else if (secondPM.getCat().toUpperCase().equals("STATUS")) { stat(secondPM, firstP.getPokemon()); } else if (secondPM.getName().toUpperCase().equals("USEPOTION")) { heal(secondP); } }
public void chooseCharacters() { String playerPokemonName; String opponentPokemonName; while (true) { System.out.print("Enter your pokemon: "); playerPokemonName = reader.nextLine(); System.out.print("Enter opponent's pokemon: "); opponentPokemonName = reader.nextLine(); // a bit hardcoded... if (!playerPokemonName.equals("bulbasaur") && !playerPokemonName.equals("charmander") && !playerPokemonName.equals("squirtle")) { System.out.println("Either name was invalid! Try lowercase?"); } else if ((!opponentPokemonName.equals("bulbasaur") && !opponentPokemonName.equals("charmander") && !opponentPokemonName.equals("squirtle"))) { System.out.println("Either name was invalid! Try lowercase?"); } else { break; } } player = new Trainer("Ash", playerPokemonName); opponent = new Trainer("Gary", opponentPokemonName); pokemons.add(player.getPokemon()); pokemons.add(opponent.getPokemon()); wait(600); System.out.println( "So it is - " + player.getName() + "'s " + player.getPokemonName() + " versus " + opponent.getName() + "'s " + opponent.getPokemonName() + "! "); wait(600); }
public Move chooseAttack(Trainer trainer) { // player attackchooser if (trainer == player) { ArrayList<Move> availableMoves = player.getPokemon().getMoveSet(); for (int i = 0; i < availableMoves.size(); i++) { System.out.println(i + ") " + availableMoves.get(i)); } System.out.println("2) Use Potion (" + player.getPotionAmount() + " left)"); System.out.print("\n Choose action (number): "); String command = reader.nextLine(); Move chosenMove; while (true) { if (command.equals("0")) { chosenMove = availableMoves.get(0); System.out.println( player.getPokemonName() + " will use: " + availableMoves.get(0).getName()); break; } else if (command.equals("1")) { chosenMove = availableMoves.get(1); System.out.println( player.getPokemonName() + " will use: " + availableMoves.get(1).getName()); break; } else if (command.equals("2")) { // use potion as a move, check for it in method attack() chosenMove = new Move("usepotion", "", "", 0, 0, 0); break; } else { System.out.println("Invalid move!"); System.out.print("\n Choose action (number): "); command = reader.nextLine(); } } return chosenMove; } // AI control else if (trainer == opponent) { Move chosenMove; int randomized; randomized = random.nextInt((2 - 0 + 1) + 0); ArrayList<Move> availableMoves = opponent.getPokemon().getMoveSet(); for (int i = 0; i < availableMoves.size(); i++) { if (randomized == 2) { if (opponent.getPokemon().isFullHp()) { // System.out.println("Gary tried to use a potion, but his pokemon is already at Full // HP!"); wait(200); chosenMove = availableMoves.get(0); } if (opponent.getPokemon().getHp() < 40 && opponent.getPotionAmount() != 0) { chosenMove = new Move("usepotion", "", "", 0, 0, 0); } else { chosenMove = availableMoves.get(0); System.out.println( "Gary's " + opponent.getPokemonName() + " will use: " + chosenMove.getName()); wait(600); } return chosenMove; } else { wait(200); chosenMove = availableMoves.get(randomized); System.out.println( "Gary's " + opponent.getPokemonName() + " will use: " + chosenMove.getName()); wait(600); return chosenMove; } } System.out.println("Critical error! Exiting... \"chooseAttack()\", AI controlled"); return null; } else { System.out.println("Critical error! Exiting... \"chooseAttack()\""); return null; } }