Package mage.players

Examples of mage.players.Player


  }

  @Override
  public boolean resolve(Game game) {
    if (optional) {
      Player player = game.getPlayer(this.getControllerId());
      MageObject object = game.getObject(sourceId);
      StringBuilder sb = new StringBuilder();
      sb.append("Use ").append(this.getRule()).append("ability");
      if (object != null) {
        sb.append(" from ").append(object.getName());
      }
      sb.append("?");
      if (!player.chooseUse(this.effects.get(0).getOutcome(), sb.toString(), game)) {
        return false;
      }
    }
    //20091005 - 603.4
    if (checkInterveningIfClause(game))
View Full Code Here


    return new PlayTargetWithoutPayingManaEffect(this);
  }

  @Override
  public boolean apply(Game game, Ability source) {
    Player controller = game.getPlayer(source.getControllerId());
    Card target = (Card) game.getObject(source.getFirstTarget());
    return controller.cast(target.getSpellAbility(), game, true);
  }
View Full Code Here

      if (permanent != null) {
        if (filter.match(permanent, source.getControllerId(), game))
          return true;
      }
      else {
        Player player = game.getPlayer(event.getTargetId());
        if (player != null && filter.match(player, source.getControllerId(), game))
          return true;
      }
    }
    return false;
View Full Code Here

    return new GainLifeEffect(this);
  }

  @Override
  public boolean apply(Game game, Ability source) {
    Player player = game.getPlayer(source.getControllerId());
    if (player != null) {
      player.gainLife(life, game);
    }
    return true;
  }
View Full Code Here

    PlayerList players;
    switch (game.getAttackOption()) {
      case LEFT:
        players = game.getState().getPlayerList(attackerId);
        while (true) {
          Player opponent = players.getNext(game);
          if (opponents.contains(opponent.getId())) {
            addDefender(opponent.getId(), game);
            break;
          }
        }
        break;
      case RIGHT:
        players = game.getState().getPlayerList(attackerId);
        while (true) {
          Player opponent = players.getPrevious(game);
          if (opponents.contains(opponent.getId())) {
            addDefender(opponent.getId(), game);
            break;
          }
        }
        break;
      case MULITPLE:
View Full Code Here

          int lethalDamage = blocker.getToughness().getValue() - blocker.getDamage();
          if (lethalDamage >= damage) {
            blocker.damage(damage, attacker.getId(), game, true, true);
          }
          else {
            Player player = game.getPlayer(attacker.getControllerId());
            int damageAssigned = player.getAmount(lethalDamage, damage, "Assign damage to " + blocker.getName(), game);
            blocker.damage(damageAssigned, attacker.getId(), game, true, true);
            damage -= damageAssigned;
            if (damage > 0)
              defenderDamage(attacker, damage, game);
          }
View Full Code Here

  }

  private void multiBlockerDamage(boolean first, Game game) {
    //TODO:  handle banding
    Permanent attacker = game.getPermanent(attackers.get(0));
    Player player = game.getPlayer(attacker.getControllerId());
    int damage = attacker.getPower().getValue();
    if (attacker != null && canDamage(attacker, first)) {
      for (UUID blockerId: blockerOrder) {
        Permanent blocker = game.getPermanent(blockerId);
        int lethalDamage = blocker.getToughness().getValue() - blocker.getDamage();
        if (lethalDamage >= damage) {
          blocker.damage(damage, attacker.getId(), game, true, true);
          damage = 0;
          break;
        }
        int damageAssigned = player.getAmount(lethalDamage, damage, "Assign damage to " + blocker.getName(), game);
        blocker.damage(damageAssigned, attacker.getId(), game, true, true);
        damage -= damageAssigned;
      }
      if (damage > 0 && hasTrample(attacker)) {
        defenderDamage(attacker, damage, game);
View Full Code Here

      if (defender != null) {
        defender.damage(amount, attacker.getId(), game, true, true);
      }
    }
    else {
      Player defender = game.getPlayer(defenderId);
      defender.damage(amount, attacker.getId(), game, true, true);
    }
  }
View Full Code Here

  @Override
  public boolean canChoose(UUID sourceId, UUID sourceControllerId, Game game) {
    int count = 0;
    MageObject targetSource = game.getObject(sourceId);
    for (UUID playerId: game.getPlayer(sourceControllerId).getInRange()) {
      Player player = game.getPlayer(playerId);
      if (player != null && !player.hasLeft() && filter.match(player)) {
        if (player.canBeTargetedBy(targetSource)) {
          count++;
          if (count >= this.minNumberOfTargets)
            return true;
        }
      }
View Full Code Here

  @Override
  public Set<UUID> possibleTargets(UUID sourceId, UUID sourceControllerId, Game game) {
    Set<UUID> possibleTargets = new HashSet<UUID>();
    MageObject targetSource = game.getObject(sourceId);
    for (UUID playerId: game.getPlayer(sourceControllerId).getInRange()) {
      Player player = game.getPlayer(playerId);
      if (player != null && !player.hasLeft() && filter.match(player)) {
        if (player.canBeTargetedBy(targetSource))
          possibleTargets.add(playerId);
      }
    }
    return possibleTargets;
  }
View Full Code Here

TOP

Related Classes of mage.players.Player

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.