mirror of
https://github.com/magefree/mage.git
synced 2026-01-10 21:02:08 -08:00
[EOE] Implement Possibility Technician
This commit is contained in:
parent
c8de422c12
commit
e9af0d8f03
2 changed files with 95 additions and 0 deletions
93
Mage.Sets/src/mage/cards/p/PossibilityTechnician.java
Normal file
93
Mage.Sets/src/mage/cards/p/PossibilityTechnician.java
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
package mage.cards.p;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldThisOrAnotherTriggeredAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.keyword.WarpAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class PossibilityTechnician extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterPermanent(SubType.KAVU, "Kavu");
|
||||
|
||||
public PossibilityTechnician(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
||||
|
||||
this.subtype.add(SubType.KAVU);
|
||||
this.subtype.add(SubType.ARTIFICER);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever this creature or another Kavu you control enters, exile the top card of your library. For as long as that card remains exiled, you may play it if you control a Kavu.
|
||||
this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility(
|
||||
new PossibilityTechnicianEffect(), filter, false, true
|
||||
));
|
||||
|
||||
// Warp {1}{R}
|
||||
this.addAbility(new WarpAbility(this, "{1}{R}"));
|
||||
}
|
||||
|
||||
private PossibilityTechnician(final PossibilityTechnician card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PossibilityTechnician copy() {
|
||||
return new PossibilityTechnician(this);
|
||||
}
|
||||
}
|
||||
|
||||
class PossibilityTechnicianEffect extends OneShotEffect {
|
||||
|
||||
private static final Condition condition
|
||||
= new PermanentsOnTheBattlefieldCondition(new FilterControlledPermanent(SubType.KAVU));
|
||||
|
||||
PossibilityTechnicianEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "exile the top card of your library. " +
|
||||
"For as long as that card remains exiled, you may play it if you control a Kavu";
|
||||
}
|
||||
|
||||
private PossibilityTechnicianEffect(final PossibilityTechnicianEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PossibilityTechnicianEffect copy() {
|
||||
return new PossibilityTechnicianEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
if (player == null) {
|
||||
return false;
|
||||
}
|
||||
Card card = player.getLibrary().getFromTop(game);
|
||||
if (card == null) {
|
||||
return false;
|
||||
}
|
||||
player.moveCards(card, Zone.EXILED, source, game);
|
||||
CardUtil.makeCardPlayable(
|
||||
game, source, card, false, Duration.Custom,
|
||||
false, source.getControllerId(), condition
|
||||
);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -119,6 +119,8 @@ public final class EdgeOfEternities extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Plains", 267, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Plains", 268, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Plains", 367, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
|
||||
cards.add(new SetCardInfo("Possibility Technician", 153, Rarity.RARE, mage.cards.p.PossibilityTechnician.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Possibility Technician", 295, Rarity.RARE, mage.cards.p.PossibilityTechnician.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Ragost, Deft Gastronaut", 224, Rarity.RARE, mage.cards.r.RagostDeftGastronaut.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Ragost, Deft Gastronaut", 300, Rarity.RARE, mage.cards.r.RagostDeftGastronaut.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Red Tiger Mechan", 154, Rarity.COMMON, mage.cards.r.RedTigerMechan.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue