Пример #1
0
 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);
 }
Пример #2
0
 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...");
   }
 }
Пример #3
0
  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);
    }
  }
Пример #4
0
  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);
  }
Пример #5
0
  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;
    }
  }