Package mage.players

Examples of mage.players.Player


    return true;
  }

  @Override
  public boolean canTarget(UUID id, Game game) {
    Player player = game.getPlayer(id);
    if (player != null) {
      return filter.match(player);
    }
    return false;
  }
View Full Code Here


    return false;
  }

  @Override
  public boolean canTarget(UUID id, Ability source, Game game) {
    Player player = game.getPlayer(id);
    if (player != null) {
      if (source != null)
        return player.canBeTargetedBy(game.getObject(source.getSourceId())) && filter.match(player);
      else
        return filter.match(player);
    }
    return false;
  }
View Full Code Here

    this.scryNumber = effect.scryNumber;
  }

  @Override
  public boolean apply(Game game, Ability source) {
    Player player = game.getPlayer(source.getControllerId());
    Cards cards = new CardsImpl(Zone.PICK);
    for (int i = 0; i < scryNumber; i++) {
      Card card = player.getLibrary().removeFromTop(game);
      cards.add(card);
      game.setZone(card.getId(), Zone.PICK);
    }
    TargetCard target1 = new TargetCard(Zone.PICK, filter1);
    while (cards.size() > 0 && player.choose(cards, target1, game)) {
      Card card = cards.get(target1.getFirstTarget(), game);
      cards.remove(card);
      card.moveToZone(Zone.LIBRARY, source.getId(), game, false);
      target1.clearChosen();
    }
    if (cards.size() > 1) {
      TargetCard target2 = new TargetCard(Zone.PICK, filter2);
      target2.setRequired(true);
      while (cards.size() > 1) {
        player.choose(cards, target2, game);
        Card card = cards.get(target2.getFirstTarget(), game);
        cards.remove(card);
        card.moveToZone(Zone.LIBRARY, source.getId(), game, true);
        target2.clearChosen();
      }
View Full Code Here

  }

  @Override
  public boolean changeControllerId(UUID controllerId, Game game) {
    if (!controllerId.equals(this.controllerId)) {
      Player newController = game.getPlayer(controllerId);
      if (newController != null && (!newController.hasLeft() || !newController.hasLost())) {
        this.removeFromCombat(game);
        this.controlledFromStartOfTurn = false;
        this.controllerId = controllerId;
        this.abilities.setControllerId(controllerId);
        return true;
View Full Code Here

        damageDone = damageCreature(damageAmount, sourceId, game, preventable, combat);
      }
      if (damageDone > 0) {
        Permanent source = game.getPermanent(sourceId);
        if (source != null && source.getAbilities().containsKey(LifelinkAbility.getInstance().getId())) {
          Player player = game.getPlayer(source.getControllerId());
          player.gainLife(damageDone, game);
        }
        if (source != null && source.getAbilities().containsKey(DeathtouchAbility.getInstance().getId())) {
          deathtouched = true;
        }
      }
View Full Code Here

  @Override
  public boolean canChoose(UUID sourceId, UUID sourceControllerId, Game game) {
    for (UUID playerId: game.getPlayer(sourceControllerId).getInRange()) {
      if (filter.matchOwner(playerId)) {
        Player player = game.getPlayer(playerId);
        if (player != null) {
          switch (zone) {
            case HAND:
              if (player.getHand().count(filter, game) >= this.minNumberOfTargets)
                return true;
              break;
            case GRAVEYARD:
              if (player.getGraveyard().count(filter, game) >= this.minNumberOfTargets)
                return true;
              break;
            case LIBRARY:
              if (player.getLibrary().count(filter, game) >= this.minNumberOfTargets)
                return true;
              break;
          }
        }
      }
View Full Code Here

  }

  @Override
  public Set<UUID> possibleTargets(UUID sourceId, UUID sourceControllerId, Game game) {
    Set<UUID> possibleTargets = new HashSet<UUID>();
    Player player = game.getPlayer(sourceControllerId);
    if (player != null) {
      switch (zone) {
        case HAND:
          for (Card card: player.getHand().getCards(filter, game)) {
            possibleTargets.add(card.getId());
          }
          break;
        case GRAVEYARD:
          for (Card card: player.getGraveyard().getCards(filter, game)) {
            possibleTargets.add(card.getId());
          }
          break;
        case LIBRARY:
          for (Card card: player.getLibrary().getUniqueCards(game)) {
            if (filter.match(card))
              possibleTargets.add(card.getId());
          }
          break;
      }
View Full Code Here

      Permanent permanent = game.getPermanent(target);
      if (permanent != null) {
        permanent.damage(multiTarget.getTargetAmount(target), source.getId(), game, true, false);
      }
      else {
        Player player = game.getPlayer(target);
        if (player != null) {
          player.damage(multiTarget.getTargetAmount(target), source.getId(), game, false, true);
        }
      }
    }
    return true;
  }
View Full Code Here

  }

  @Override
  public boolean apply(Game game, Ability source) {
    for (UUID playerId: source.getTargets().get(0).getTargets()) {
      Player player = game.getPlayer(playerId);
      if (player != null) {
        player.gainLife(life, game);
      }
    }
    return true;
  }
View Full Code Here


  @Override
  public boolean moveToZone(Zone toZone, UUID sourceId, Game game, boolean flag) {
    Zone fromZone = game.getZone(objectId);
    Player controller = game.getPlayer(controllerId);
    if (controller != null && controller.removeFromBattlefield(this, game)) {
      ZoneChangeEvent event = new ZoneChangeEvent(this, sourceId, controllerId, fromZone, toZone);
      if (!game.replaceEvent(event)) {
        Card card = game.getCard(objectId);
        Player owner = game.getPlayer(ownerId);
        if (owner != null) {
          switch (event.getToZone()) {
            case GRAVEYARD:
              owner.putInGraveyard(card, game, !flag);
              break;
            case HAND:
              owner.getHand().add(card);
              break;
            case EXILED:
              game.getExile().getPermanentExile().add(card);
              break;
            case LIBRARY:
              if (flag)
                owner.getLibrary().putOnTop(card, game);
              else
                owner.getLibrary().putOnBottom(card, game);
              break;
            case BATTLEFIELD:
              //should never happen
              break;
          }
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.