Package mage.target

Examples of mage.target.Target


    @Override
    public String getText(Mode mode) {
        StringBuilder sb = new StringBuilder();
        if (mode.getTargets().size() > 0) {
            Target target = mode.getTargets().get(0);
            if (mode.getTargets().get(0).getZone() == Zone.HAND) {
                sb.append("you may put ").append(target.getTargetName()).append(" from your hand onto the battlefield");
            }
            else {
                sb.append("you may cast target ").append(target.getTargetName()).append(" without paying its mana cost");
            }
        }
        return sb.toString();
    }
View Full Code Here


    public String getText(Mode mode) {
        if (staticText != null && !staticText.isEmpty()) {
            return staticText;
        }
        StringBuilder sb = new StringBuilder();
        Target target = mode.getTargets().get(0);
        if(target.getNumberOfTargets() > 1){
            if (target.getNumberOfTargets() < target.getMaxNumberOfTargets()) {
                sb.append("Up to");
            }
            sb.append(target.getMaxNumberOfTargets()).append(" target ");
        } else {
            sb.append("Target ");
        }
        sb.append(target.getTargetName()).append(" can't block {this}");
        if (duration.equals(Duration.EndOfTurn)) {
            sb.append(" this turn");
        }

        return sb.toString();
View Full Code Here

    @Override
    public boolean replaceEvent(GameEvent event, Ability source, Game game) {
        Permanent creature = game.getPermanent(event.getTargetId());
        Player controller = game.getPlayer(source.getControllerId());
        if (creature != null && controller != null) {
            Target target = new TargetControlledCreaturePermanent(1, Integer.MAX_VALUE, filter, true);
            target.setRequired(false);
            if (!target.canChoose(source.getSourceId(), source.getControllerId(), game)) {
                return false;
            }
            if (controller.chooseUse(Outcome.Detriment, "Devour creatures?", game)) {
                controller.chooseTarget(Outcome.Detriment, target, source, game);
                if (target.getTargets().size() > 0) {
                    List<ArrayList<String>> cardSubtypes = new ArrayList<>();
                    int devouredCreatures = target.getTargets().size();
                    game.informPlayers(new StringBuilder(creature.getName()).append(" devours ").append(devouredCreatures).append(" creatures").toString());
                    for (UUID targetId: target.getTargets()) {
                        Permanent targetCreature = game.getPermanent(targetId);
                        if (targetCreature != null) {
                            cardSubtypes.add((ArrayList<String>) targetCreature.getSubtype());
                        }
                        if (targetCreature == null || !targetCreature.sacrifice(source.getSourceId(), game)) {
View Full Code Here

    @Override
    public String getText(Mode mode) {
        if (staticText != null && !staticText.isEmpty()) {
            return staticText;
        }
        Target target = mode.getTargets().get(0);

        StringBuilder sb = new StringBuilder();
        sb.append("Untap ");
        if (target.getNumberOfTargets() == 0) {
            sb.append("up to ");
        }

        if (target.getMaxNumberOfTargets() > 1 || target.getNumberOfTargets() == 0) {
            sb.append(target.getMaxNumberOfTargets()).append(" target ").append(target.getTargetName()).append("s");
        } else {
            if (!target.getTargetName().startsWith("another")) {
                sb.append("target ");
            }
            sb.append(target.getTargetName());
        }

        return sb.toString();
    }
View Full Code Here

        // {2}, {tap}: Untap target attacking creature you control. Prevent all combat damage that would be dealt to and dealt by that creature this turn.
        Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new GenericManaCost(2));
        ability.addCost(new TapSourceCost());
        ability.addEffect(new PreventCombatDamageToSourceEffect(Duration.EndOfTurn));
        ability.addEffect(new PreventCombatDamageBySourceEffect(Duration.EndOfTurn));
        Target target = new TargetCreaturePermanent(filter);
        ability.addTarget(target);
        this.addAbility(ability);
    }
View Full Code Here

                targetId = stackAbility.getEffects().get(0).getTargetPointer().getFirst(game, stackAbility);
            }
        }
       
        if (targetId == null) {
            Target target = card.getSpellAbility().getTargets().get(0);
            Player player = game.getPlayer(card.getOwnerId());
            Outcome auraOutcome = Outcome.BoostCreature;
            Ability: for (Ability ability:card.getAbilities()) {
                if (ability instanceof SpellAbility) {
                    for (Effect effect: ability.getEffects()) {
                        if (effect instanceof AttachEffect) {
                            auraOutcome = effect.getOutcome();
                            break Ability;
                        }
                    }
                }
            }
            if (player != null && player.choose(auraOutcome, target, card.getId(), game)) {
                targetId = target.getFirstTarget();
            }
        }

        Permanent targetPermanent = game.getPermanent(targetId);
        Player targetPlayer = game.getPlayer(targetId);
View Full Code Here

        this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(4)), false));

        // +1: Chandra, Pyromaster deals 1 damage to target player and 1 damage to up to one target creature that player controls. That creature can't block this turn.
        LoyaltyAbility ability1 = new LoyaltyAbility(new ChandraPyromasterEffect1(), 1);
        Target target1 = new TargetPlayer();
        ability1.addTarget(target1);
        ability1.addTarget(new ChandraPyromasterTarget());
        this.addAbility(ability1);

        // 0: Exile the top card of your library. You may play it this turn.
View Full Code Here

    this.color.setWhite(true);
    this.power = new MageInt(2);
    this.toughness = new MageInt(2);

    Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
    Target target = new TargetPermanent(filter);
    target.setRequired(true);
    ability.addTarget(target);
    this.addAbility(ability);
  }
View Full Code Here

        int amount = Math.min(count, player.getHand().size() + game.getBattlefield().getAllActivePermanents(player.getId()).size());
        int cardsFromHand = 0;
       
        while (player.isInGame() && amount > 0) {
           
            Target target;
            do {
                FilterControlledPermanent filter = new FilterControlledPermanent();
                filter.setMessage("permanent you control (" + amount + " left in total)" );
                List<PermanentIdPredicate> uuidPredicates = new ArrayList<>();
                for (UUID uuid :selectedObjects) {
                    uuidPredicates.add(new PermanentIdPredicate(uuid));
                }
                filter.add(Predicates.not(Predicates.or(uuidPredicates)));                   
               
                target = new TargetControlledPermanent(0, 1, filter, true);
                if (target.canChoose(player.getId(), game)
                        && player.choose(Outcome.Exile, target, source.getSourceId(), game)) {               
                    for (UUID targetId : target.getTargets()) {
                        if (!selectedObjects.contains(targetId)) {
                            Permanent chosen = game.getPermanent(targetId);
                            if (chosen != null) {
                                amount--;
                                game.informPlayers(player.getName() + " selects " + chosen.getLogName() + " from battlefield");
                                selectedObjects.add(targetId);
                            }
                        }
                    }
                }
            } while (amount > 0 && !target.getTargets().isEmpty() && player.isInGame());
            if (amount > 0) {               
                TargetCard targetInHand;
                do {
                    FilterCard filterInHand = new FilterCard();
                    filterInHand.setMessage("card from your hand (" + amount + " left in total)");                   
View Full Code Here

        this.toughness = new MageInt(4);

        // Whenever Haazda Snare Squad attacks you may pay {W}. If you do, tap target creature an opponent controls.
        Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new TapTargetEffect(""), new ManaCostsImpl("{W}")),false,
                "Whenever {this} attacks you may pay {W}. If you do, tap target creature an opponent controls.");
        Target target = new TargetCreaturePermanent(filter);
        ability.addTarget(target);
        this.addAbility(ability);

    }
View Full Code Here

TOP

Related Classes of mage.target.Target

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.