@Override public JumpStartAbility copy() { return new JumpStartAbility(this); }
@Override public String getRule(boolean all) { return getRule(); }
@Override public SpellAbility getSpellAbilityToResolve(Game game) { Card card = game.getCard(getSourceId()); if (card != null) { if (!replacementEffectAdded) { replacementEffectAdded = true; ContinuousEffect effect = new JumpStartReplacementEffect(); effect.setTargetPointer(new FixedTarget(getSourceId(), game.getState().getZoneChangeCounter(getSourceId()))); game.addEffect(effect, this); } } return this; }
public JumpStartAbility(Card card) { super(card.getManaCost(), card.getName() + " with jump-start", Zone.GRAVEYARD, SpellAbilityType.BASE_ALTERNATE); this.getCosts().addAll(card.getSpellAbility().getCosts().copy()); Cost cost = new DiscardTargetCost(new TargetCardInHand()); cost.setText(""); this.addCost(cost); this.getEffects().addAll(card.getSpellAbility().getEffects().copy()); this.getTargets().addAll(card.getSpellAbility().getTargets().copy()); this.spellAbilityType = SpellAbilityType.BASE_ALTERNATE; this.timing = card.getSpellAbility().getTiming(); }
public RadicalIdea(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}"); // Draw a card. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public ChemistersInsight(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}"); // Draw two cards. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public RiskFactor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}"); // Target opponent may have Risk Factor deal 4 damage to them. If that player doesn't, you draw three cards. this.getSpellAbility().addEffect(new RiskFactorEffect()); this.getSpellAbility().addTarget(new TargetOpponent()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public SonicAssault(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}{R}"); // Tap target creature. Sonic Assault deals 2 damage to that creature's controller. this.getSpellAbility().addEffect(new SonicAssaultEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public DirectCurrent(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}{R}"); // Direct Current deals 2 damage to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(2)); this.getSpellAbility().addTarget(new TargetAnyTarget()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public Quasiduplicate(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}{U}"); // Create a token that's a copy of target creature you control. this.getSpellAbility().addEffect(new CreateTokenCopyTargetEffect()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public BeaconBolt(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}{R}"); // Beacon Bolt deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard. this.getSpellAbility().addEffect(new DamageTargetEffect( InstantSorceryExileGraveyardCount.instance ).setText("{this} deals damage to target creature equal to " + "the total number of instant and sorcery cards " + "you own in exile and in your graveyard")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public GraviticPunch(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}"); // Target creature you control deals damage equal to its power to target player. this.getSpellAbility().addEffect(new GraviticPunchEffect()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); this.getSpellAbility().addTarget(new TargetPlayer()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public MaximizeVelocity(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}"); // Target creature gets +1/+1 and gains haste until end of turn. this.getSpellAbility().addEffect(new BoostTargetEffect( 1, 1, Duration.EndOfTurn ).setText("Target creature gets +1/+1")); this.getSpellAbility().addEffect(new GainAbilityTargetEffect( HasteAbility.getInstance(), Duration.EndOfTurn ).setText("and gains haste until end of turn")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public MaximizeAltitude(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{U}"); // Target creature gets +1/+1 and flying until end of turn. this.getSpellAbility().addEffect(new BoostTargetEffect( 1, 1, Duration.EndOfTurn ).setText("Target creature gets +1/+1")); this.getSpellAbility().addEffect(new GainAbilityTargetEffect( FlyingAbility.getInstance(), Duration.EndOfTurn ).setText("and gains flying until end of turn")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Jump-start this.addAbility(new JumpStartAbility(this)); }