use of mage.abilities.effects.common.CreateTokenEffect in project mage by magefree.
the class AmassEffect method apply.
@Override
public boolean apply(Game game, Ability source) {
int xValue = amassNumber.calculate(game, source, this);
Player player = game.getPlayer(source.getControllerId());
if (player == null) {
return false;
}
if (!game.getBattlefield().containsControlled(filter, source, game, 1)) {
new CreateTokenEffect(new ZombieArmyToken()).apply(game, source);
}
Target target = new TargetPermanent(filter);
target.setNotTarget(true);
if (!player.choose(outcome, target, source.getSourceId(), game)) {
return false;
}
Permanent permanent = game.getPermanent(target.getFirstTarget());
if (permanent == null) {
return false;
}
permanent.addCounters(CounterType.P1P1.createInstance(xValue), source.getControllerId(), source, game);
this.amassedCreatureId = permanent.getId();
return true;
}
use of mage.abilities.effects.common.CreateTokenEffect in project mage by magefree.
the class BlightHerderEffect method apply.
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
Target target = new TargetCardInExile(2, 2, filter, null);
if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) {
if (controller.chooseTarget(outcome, target, source, game)) {
Cards cardsToGraveyard = new CardsImpl(target.getTargets());
controller.moveCards(cardsToGraveyard, Zone.GRAVEYARD, source, game);
return new CreateTokenEffect(new EldraziScionToken(), 3).apply(game, source);
}
}
return true;
}
return false;
}
use of mage.abilities.effects.common.CreateTokenEffect in project mage by magefree.
the class BoxOfFreerangeGoblinsEffect method apply.
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
int amount = controller.rollDice(outcome, source, game, 6);
CreateTokenEffect effect = new CreateTokenEffect(new GoblinToken(), amount);
effect.apply(game, source);
return true;
}
return false;
}
use of mage.abilities.effects.common.CreateTokenEffect in project mage by magefree.
the class UginTheIneffableLookAtFaceDownEffect method apply.
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (player == null || sourceObject == null) {
return false;
}
Card card = player.getLibrary().getFromTop(game);
if (card == null) {
return false;
}
// exile and look
UUID exileZoneId = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter());
if (player.moveCardsToExile(card, source, game, false, exileZoneId, sourceObject.getIdName() + " (" + player.getName() + ")")) {
card.turnFaceDown(source, game, source.getControllerId());
player.lookAtCards(player.getName() + " - " + card.getIdName() + " - " + CardUtil.sdf.format(System.currentTimeMillis()), card, game);
}
// create token
Set<MageObjectReference> tokenObjs = new HashSet<>();
CreateTokenEffect effect = new CreateTokenEffect(new UginTheIneffableToken());
effect.apply(game, source);
// with return ability
for (UUID addedTokenId : effect.getLastAddedTokenIds()) {
// display referenced exiled face-down card on token
SimpleStaticAbility sa = new SimpleStaticAbility(Zone.BATTLEFIELD, new InfoEffect("Referenced object: " + card.getId().toString().substring(0, 3)));
GainAbilityTargetEffect gainAbilityEffect = new GainAbilityTargetEffect(sa, Duration.WhileOnBattlefield);
gainAbilityEffect.setTargetPointer(new FixedTarget(addedTokenId));
game.addEffect(gainAbilityEffect, source);
// look at face-down card in exile
UginTheIneffableLookAtFaceDownEffect lookAtEffect = new UginTheIneffableLookAtFaceDownEffect();
lookAtEffect.setTargetPointer(new FixedTarget(card.getId(), game));
game.addEffect(lookAtEffect, source);
tokenObjs.add(new MageObjectReference(addedTokenId, game));
game.addDelayedTriggeredAbility(new UginTheIneffableDelayedTriggeredAbility(tokenObjs, new MageObjectReference(card, game)), source);
}
return true;
}
use of mage.abilities.effects.common.CreateTokenEffect in project mage by magefree.
the class FlockOfRabidSheepEffect method apply.
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
int repeat = source.getManaCostsToPay().getX();
int wonCount = 0;
for (int i = 1; i <= repeat; i++) {
if (controller.flipCoin(source, game, true)) {
wonCount++;
}
}
new CreateTokenEffect(new RabidSheepToken(), wonCount).apply(game, source);
return true;
}
return false;
}
Aggregations