@Override public ImproviseAbility copy() { return new ImproviseAbility(this); }
public ImproviseAbility() { super(Zone.STACK, null); this.setRuleAtTheTop(true); }
public InspiringStatuary(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // Non-artifact spells you cast have improvise. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledSpellsEffect(new ImproviseAbility(), filter))); }
public FoundryAssembler(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}"); this.subtype.add(SubType.ASSEMBLY_WORKER); this.power = new MageInt(3); this.toughness = new MageInt(3); // Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1).) addAbility(new ImproviseAbility()); }
public SaheelisDirective(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}{R}{R}"); // Improvise this.addAbility(new ImproviseAbility()); // Reveal the top X cards of your library. You may put any number of artifact cards with converted mana cost X or less from among them onto the battlefield. Then put all cards revealed this way that weren't put onto the battlefield into your graveyard. this.getSpellAbility().addEffect(new SaheelisDirectiveEffect()); }
public ReverseEngineer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U}{U}"); // Improvise this.addAbility(new ImproviseAbility()); // Draw three cards. getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3)); }
public BarricadeBreaker(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}"); this.subtype.add(SubType.JUGGERNAUT); this.power = new MageInt(7); this.toughness = new MageInt(5); // Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) this.addAbility(new ImproviseAbility()); // Barricade Breaker attacks each combat if able. this.addAbility(new AttacksEachCombatStaticAbility()); }
public BastionInventor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}"); this.subtype.add(SubType.VEDALKEN, SubType.ARTIFICER); this.power = new MageInt(4); this.toughness = new MageInt(4); // Improvise this.addAbility(new ImproviseAbility()); // Hexproof this.addAbility(HexproofAbility.getInstance()); }
public WhirOfInvention(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{U}{U}{U}"); // Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) addAbility(new ImproviseAbility()); // Search your library for an artifact card with converted mana cost X or less, put it onto the battlefield, then shuffle your library. this.getSpellAbility().addEffect(new SearchLibraryWithLessCMCPutInPlayEffect(new FilterArtifactCard())); }
public SweatworksBrawler(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.ARTIFICER); this.power = new MageInt(3); this.toughness = new MageInt(3); // Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) addAbility(new ImproviseAbility()); // Menace this.addAbility(new MenaceAbility()); }
public WindKinRaiders(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.ARTIFICER); this.power = new MageInt(4); this.toughness = new MageInt(3); // Improvise this.addAbility(new ImproviseAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); }
public FenHauler(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{B}"); this.subtype.add(SubType.INSECT); this.power = new MageInt(5); this.toughness = new MageInt(5); // Improvise this.addAbility(new ImproviseAbility()); // Fen Hauler can't be blocked by artifact creatures. this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield))); }
public EnragedGiant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{R}"); this.subtype.add(SubType.GIANT); this.power = new MageInt(4); this.toughness = new MageInt(4); // Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) this.addAbility(new ImproviseAbility()); // Trample this.addAbility(TrampleAbility.getInstance()); // haste. this.addAbility(HasteAbility.getInstance()); }
public MetallicRebuke(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}"); // Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) this.addAbility(new ImproviseAbility()); // Counter target spell unless its controller pays {3}. getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(3))); getSpellAbility().addTarget(new TargetSpell()); }
public BattleAtTheBridge(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{B}"); // Improvise (Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) addAbility(new ImproviseAbility()); // Target creature gets -X/-X until end of turn. You gain X life. DynamicValue x = new SignInversionDynamicValue(ManacostVariableValue.instance); this.getSpellAbility().addEffect(new BoostTargetEffect(x, x, Duration.EndOfTurn, true)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.instance)); }
public MaverickThopterist(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.ARTIFICER); this.power = new MageInt(2); this.toughness = new MageInt(2); // Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) this.addAbility(new ImproviseAbility()); // When Maverick Thopterist enters the battlefield, create two 1/1 flying Thopter creature tokens. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ThopterColorlessToken(), 2))); }
public SlyRequisitioner(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.ARTIFICER); this.power = new MageInt(2); this.toughness = new MageInt(2); // Improvise this.addAbility(new ImproviseAbility()); // Whenever a nontoken artifact you control is put into a graveyard from the battlefield, create a 1/1 colorless Servo artifact creature token. this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new CreateTokenEffect(new ServoToken()), false, filter, false)); }
public FreejamRegent(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{R}"); this.subtype.add(SubType.DRAGON); this.power = new MageInt(4); this.toughness = new MageInt(4); // Improvise this.addAbility(new ImproviseAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); // {1}{R}: Freejam Regent gets +2/+0 until end of turn. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}"))); }
public HeraldOfAnguish(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{B}{B}"); this.subtype.add(SubType.DEMON); this.power = new MageInt(5); this.toughness = new MageInt(5); // Improvise this.addAbility(new ImproviseAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); // At the beginning of your end step, each opponent discards a card. this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new DiscardEachPlayerEffect(TargetController.OPPONENT), false)); // {1}{B}, Sacrifice an artifact: Target creature gets -2/-2 until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, -2, Duration.EndOfTurn), new ManaCostsImpl("{1}{B}")); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledArtifactPermanent()))); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); }