Exemplo n.º 1
0
  @Override
  public boolean apply(Game game, Ability source) {
    Player player1 = game.getPlayer(source.getFirstTarget());
    Player player2 = game.getPlayer(source.getTargets().get(1).getFirstTarget());
    if (player1 != null && player2 != null) {
      int lifePlayer1 = player1.getLife();
      int lifePlayer2 = player2.getLife();

      if (lifePlayer1 == lifePlayer2) return false;

      if (!player1.isLifeTotalCanChange() || !player2.isLifeTotalCanChange()) return false;

      // 20110930 - 118.7, 118.8
      if (lifePlayer1 < lifePlayer2 && (!player1.isCanGainLife() || !player2.isCanLoseLife()))
        return false;

      if (lifePlayer1 > lifePlayer2 && (!player1.isCanLoseLife() || !player2.isCanGainLife()))
        return false;

      player1.setLife(lifePlayer2, game);
      player2.setLife(lifePlayer1, game);
      return true;
    }
    return false;
  }