mirror of
https://github.com/magefree/mage.git
synced 2025-12-19 18:20:13 -08:00
[MSH] Implement Quicksilver, Brash Blur
This commit is contained in:
parent
7bae541245
commit
c1c1e94f70
3 changed files with 114 additions and 0 deletions
58
Mage.Sets/src/mage/cards/q/QuicksilverBrashBlur.java
Normal file
58
Mage.Sets/src/mage/cards/q/QuicksilverBrashBlur.java
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
package mage.cards.q;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
|
import mage.abilities.keyword.HasteAbility;
|
||||||
|
import mage.abilities.keyword.LeylineAbility;
|
||||||
|
import mage.abilities.keyword.PowerUpAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
|
import mage.counters.CounterType;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class QuicksilverBrashBlur extends CardImpl {
|
||||||
|
|
||||||
|
public QuicksilverBrashBlur(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");
|
||||||
|
|
||||||
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.MUTANT);
|
||||||
|
this.subtype.add(SubType.HERO);
|
||||||
|
this.power = new MageInt(1);
|
||||||
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
|
// If Quicksilver, Brash Blur is in your opening hand, you may begin the game with him on the battlefield.
|
||||||
|
this.addAbility(LeylineAbility.getInstance());
|
||||||
|
|
||||||
|
// Haste
|
||||||
|
this.addAbility(HasteAbility.getInstance());
|
||||||
|
|
||||||
|
// Power-up -- {4}{R}: Put a +1/+1 counter and a double strike counter on Quicksilver.
|
||||||
|
Ability ability = new PowerUpAbility(
|
||||||
|
new AddCountersSourceEffect(CounterType.P1P1.createInstance())
|
||||||
|
.setText("put a +1/+1 counter"),
|
||||||
|
new ManaCostsImpl<>("{4}{R}")
|
||||||
|
);
|
||||||
|
ability.addEffect(new AddCountersSourceEffect(CounterType.DOUBLE_STRIKE.createInstance())
|
||||||
|
.setText("and a double strike counter on {this}"));
|
||||||
|
this.addAbility(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
private QuicksilverBrashBlur(final QuicksilverBrashBlur card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuicksilverBrashBlur copy() {
|
||||||
|
return new QuicksilverBrashBlur(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package mage.sets;
|
package mage.sets;
|
||||||
|
|
||||||
import mage.cards.ExpansionSet;
|
import mage.cards.ExpansionSet;
|
||||||
|
import mage.constants.Rarity;
|
||||||
import mage.constants.SetType;
|
import mage.constants.SetType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -18,5 +19,7 @@ public final class MarvelSuperHeroes extends ExpansionSet {
|
||||||
super("Marvel Super Heroes", "MSH", ExpansionSet.buildDate(2026, 6, 26), SetType.EXPANSION);
|
super("Marvel Super Heroes", "MSH", ExpansionSet.buildDate(2026, 6, 26), SetType.EXPANSION);
|
||||||
this.blockName = "Marvel Super Heroes"; // for sorting in GUI
|
this.blockName = "Marvel Super Heroes"; // for sorting in GUI
|
||||||
this.hasBasicLands = false; // temporary
|
this.hasBasicLands = false; // temporary
|
||||||
|
|
||||||
|
cards.add(new SetCardInfo("Quicksilver, Brash Blur", 148, Rarity.RARE, mage.cards.q.QuicksilverBrashBlur.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
package mage.abilities.keyword;
|
||||||
|
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.ActivatedAbilityImpl;
|
||||||
|
import mage.abilities.costs.Cost;
|
||||||
|
import mage.abilities.costs.CostAdjuster;
|
||||||
|
import mage.abilities.effects.Effect;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.game.permanent.Permanent;
|
||||||
|
import mage.util.CardUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public class PowerUpAbility extends ActivatedAbilityImpl {
|
||||||
|
|
||||||
|
private enum PowerUpAbilityAdjuster implements CostAdjuster {
|
||||||
|
instance;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reduceCost(Ability ability, Game game) {
|
||||||
|
Permanent permanent = ability.getSourcePermanentIfItStillExists(game);
|
||||||
|
if (permanent != null && permanent.getTurnsOnBattlefield() == 0) {
|
||||||
|
CardUtil.adjustCost(ability, permanent.getManaCost(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public PowerUpAbility(Effect effect, Cost cost) {
|
||||||
|
this(Zone.BATTLEFIELD, effect, cost);
|
||||||
|
this.maxActivationsPerGame = 1;
|
||||||
|
this.setCostAdjuster(PowerUpAbilityAdjuster.instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PowerUpAbility(Zone zone, Effect effect, Cost cost) {
|
||||||
|
super(zone, effect, cost);
|
||||||
|
}
|
||||||
|
|
||||||
|
private PowerUpAbility(final PowerUpAbility ability) {
|
||||||
|
super(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PowerUpAbility copy() {
|
||||||
|
return new PowerUpAbility(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getRule() {
|
||||||
|
return "Power-up — " + super.getRule();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue