[SLX] update Street Fighter cards to Universes Within versions

This commit is contained in:
Evan Kranzler 2022-12-14 09:34:16 -05:00
parent 88e82d12a0
commit 50a52d18e3
10 changed files with 167 additions and 121 deletions

View file

@ -1,4 +1,4 @@
package mage.cards.k;
package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
@ -24,9 +24,9 @@ import java.util.UUID;
/**
* @author TheElk801
*/
public final class KenBurningBrawler extends CardImpl {
public final class AishaOfSparksAndSmoke extends CardImpl {
public KenBurningBrawler(UUID ownerId, CardSetInfo setInfo) {
public AishaOfSparksAndSmoke(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{R}");
this.addSuperType(SuperType.LEGENDARY);
@ -45,35 +45,35 @@ public final class KenBurningBrawler extends CardImpl {
// ShoryukenWhenever Ken deals combat damage, you may cast a sorcery spell from your hand with mana value less than or equal to that damage without paying its mana cost.
this.addAbility(new DealsCombatDamageTriggeredAbility(
new KenBurningBrawlerEffect(), false
new AishaOfSparksAndSmokeEffect(), false
).withFlavorWord("Shoryuken"));
}
private KenBurningBrawler(final KenBurningBrawler card) {
private AishaOfSparksAndSmoke(final AishaOfSparksAndSmoke card) {
super(card);
}
@Override
public KenBurningBrawler copy() {
return new KenBurningBrawler(this);
public AishaOfSparksAndSmoke copy() {
return new AishaOfSparksAndSmoke(this);
}
}
class KenBurningBrawlerEffect extends OneShotEffect {
class AishaOfSparksAndSmokeEffect extends OneShotEffect {
KenBurningBrawlerEffect() {
AishaOfSparksAndSmokeEffect() {
super(Outcome.Benefit);
staticText = "you may cast a sorcery spell from your hand with mana value " +
"less than or equal to that damage without paying its mana cost";
}
private KenBurningBrawlerEffect(final KenBurningBrawlerEffect effect) {
private AishaOfSparksAndSmokeEffect(final AishaOfSparksAndSmokeEffect effect) {
super(effect);
}
@Override
public KenBurningBrawlerEffect copy() {
return new KenBurningBrawlerEffect(this);
public AishaOfSparksAndSmokeEffect copy() {
return new AishaOfSparksAndSmokeEffect(this);
}
@Override

View file

@ -1,4 +1,4 @@
package mage.cards.e;
package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
@ -6,7 +6,10 @@ import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.ChooseOpponentEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.ruleModifying.CombatDamageByToughnessEffect;
import mage.cards.CardImpl;
@ -16,16 +19,21 @@ import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.players.Player;
import mage.target.common.TargetCreaturePermanent;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class EHondaSumoChampion extends CardImpl {
public final class BaldinCenturyHerdmaster extends CardImpl {
public EHondaSumoChampion(UUID ownerId, CardSetInfo setInfo) {
public BaldinCenturyHerdmaster(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}");
this.addSuperType(SuperType.LEGENDARY);
@ -43,18 +51,48 @@ public final class EHondaSumoChampion extends CardImpl {
// Hundred Hand SlapWhenever E. Honda, Sumo Champion attacks, up to one hundred target creatures each get +0/+X until end of turn, where X is the number of cards in your hand.
Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect(
StaticValue.get(0), CardsInTargetPlayerHandCount.instance, Duration.EndOfTurn
StaticValue.get(0), BaldinCenturyHerdmasterValue.instance, Duration.EndOfTurn
).setText("up to one hundred target creatures each get +0/+X until end of turn, where X is the number of cards in your hand"));
ability.addTarget(new TargetCreaturePermanent(0, 100));
this.addAbility(ability.withFlavorWord("Hundred Hand Slap"));
}
private EHondaSumoChampion(final EHondaSumoChampion card) {
private BaldinCenturyHerdmaster(final BaldinCenturyHerdmaster card) {
super(card);
}
@Override
public EHondaSumoChampion copy() {
return new EHondaSumoChampion(this);
public BaldinCenturyHerdmaster copy() {
return new BaldinCenturyHerdmaster(this);
}
}
enum BaldinCenturyHerdmasterValue implements DynamicValue {
instance;
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
return Optional.ofNullable(game.getPlayer(
(UUID) game.getState().getValue(sourceAbility.getSourceId() + ChooseOpponentEffect.VALUE_KEY)
))
.filter(Objects::nonNull)
.map(Player::getHand)
.map(Set::size)
.orElse(0);
}
@Override
public BaldinCenturyHerdmasterValue copy() {
return this;
}
@Override
public String getMessage() {
return "";
}
@Override
public String toString() {
return "1";
}
}

View file

@ -1,4 +1,4 @@
package mage.cards.g;
package mage.cards.i;
import mage.MageInt;
import mage.abilities.Ability;
@ -25,9 +25,9 @@ import java.util.UUID;
/**
* @author TheElk801
*/
public final class GuileSonicSoldier extends CardImpl {
public final class ImmardTheStormcleaver extends CardImpl {
public GuileSonicSoldier(UUID ownerId, CardSetInfo setInfo) {
public ImmardTheStormcleaver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{R}{W}");
this.addSuperType(SuperType.LEGENDARY);
@ -39,36 +39,36 @@ public final class GuileSonicSoldier extends CardImpl {
// Whenever Guile, Sonic Soldier enters the battlefield or attacks, put a charge counter on him or remove one from him. When you remove a counter this way, choose one
// Sonic BoomGuile, Sonic Soldier deals 4 damage to any target.
// Flash KickGuile, Sonic Soldier gains lifelink and indestructible until end of turn.
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new GuileSonicSoldierEffect()));
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new ImmardTheStormcleaverEffect()));
}
private GuileSonicSoldier(final GuileSonicSoldier card) {
private ImmardTheStormcleaver(final ImmardTheStormcleaver card) {
super(card);
}
@Override
public GuileSonicSoldier copy() {
return new GuileSonicSoldier(this);
public ImmardTheStormcleaver copy() {
return new ImmardTheStormcleaver(this);
}
}
class GuileSonicSoldierEffect extends OneShotEffect {
class ImmardTheStormcleaverEffect extends OneShotEffect {
private final ReflexiveTriggeredAbility ability = makeAbility();
GuileSonicSoldierEffect() {
ImmardTheStormcleaverEffect() {
super(Outcome.Benefit);
staticText = "put a charge counter on him or remove one from him. When you remove a counter this way, "
+ CardUtil.getTextWithFirstCharLowerCase(ability.getRule());
}
private GuileSonicSoldierEffect(final GuileSonicSoldierEffect effect) {
private ImmardTheStormcleaverEffect(final ImmardTheStormcleaverEffect effect) {
super(effect);
}
@Override
public GuileSonicSoldierEffect copy() {
return new GuileSonicSoldierEffect(this);
public ImmardTheStormcleaverEffect copy() {
return new ImmardTheStormcleaverEffect(this);
}
@Override

View file

@ -1,4 +1,4 @@
package mage.cards.z;
package mage.cards.m;
import mage.MageInt;
import mage.MageObjectReference;
@ -33,15 +33,15 @@ import java.util.UUID;
/**
* @author TheElk801
*/
public final class ZangiefTheRedCyclone extends CardImpl {
public final class MaarikaBrutalGladiator extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature");
static {
filter.add(ZangiefTheRedCycloneWatcher::checkPermanent);
filter.add(MaarikaBrutalGladiatorWatcher::checkPermanent);
}
public ZangiefTheRedCyclone(UUID ownerId, CardSetInfo setInfo) {
public MaarikaBrutalGladiator(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{R}{G}");
this.addSuperType(SuperType.LEGENDARY);
@ -61,21 +61,21 @@ public final class ZangiefTheRedCyclone extends CardImpl {
// Spinning PiledriverWhenever Zangief deals damage to a creature, if that creature was dealt excess damage this turn, that creature's controller sacrifices a noncreature, nonland permanent.
this.addAbility(new DealsDamageToACreatureTriggeredAbility(
new ZangiefTheRedCycloneEffect(), false, false, true, filter
).withFlavorWord("Spinning Piledriver"), new ZangiefTheRedCycloneWatcher());
new MaarikaBrutalGladiatorEffect(), false, false, true, filter
).withFlavorWord("Spinning Piledriver"), new MaarikaBrutalGladiatorWatcher());
}
private ZangiefTheRedCyclone(final ZangiefTheRedCyclone card) {
private MaarikaBrutalGladiator(final MaarikaBrutalGladiator card) {
super(card);
}
@Override
public ZangiefTheRedCyclone copy() {
return new ZangiefTheRedCyclone(this);
public MaarikaBrutalGladiator copy() {
return new MaarikaBrutalGladiator(this);
}
}
class ZangiefTheRedCycloneEffect extends OneShotEffect {
class MaarikaBrutalGladiatorEffect extends OneShotEffect {
private static final FilterPermanent filter = new FilterNonlandPermanent("noncreature, nonland permanent");
@ -83,19 +83,19 @@ class ZangiefTheRedCycloneEffect extends OneShotEffect {
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
}
ZangiefTheRedCycloneEffect() {
MaarikaBrutalGladiatorEffect() {
super(Outcome.Benefit);
staticText = "if that creature was dealt excess damage this turn, " +
"that creature's controller sacrifices a noncreature, nonland permanent";
}
private ZangiefTheRedCycloneEffect(final ZangiefTheRedCycloneEffect effect) {
private MaarikaBrutalGladiatorEffect(final MaarikaBrutalGladiatorEffect effect) {
super(effect);
}
@Override
public ZangiefTheRedCycloneEffect copy() {
return new ZangiefTheRedCycloneEffect(this);
public MaarikaBrutalGladiatorEffect copy() {
return new MaarikaBrutalGladiatorEffect(this);
}
@Override
@ -110,11 +110,11 @@ class ZangiefTheRedCycloneEffect extends OneShotEffect {
}
}
class ZangiefTheRedCycloneWatcher extends Watcher {
class MaarikaBrutalGladiatorWatcher extends Watcher {
private final Set<MageObjectReference> morSet = new HashSet<>();
ZangiefTheRedCycloneWatcher() {
MaarikaBrutalGladiatorWatcher() {
super(WatcherScope.GAME);
}
@ -135,7 +135,7 @@ class ZangiefTheRedCycloneWatcher extends Watcher {
static boolean checkPermanent(Permanent input, Game game) {
return game
.getState()
.getWatcher(ZangiefTheRedCycloneWatcher.class)
.getWatcher(MaarikaBrutalGladiatorWatcher.class)
.morSet
.stream()
.anyMatch(mor -> mor.refersTo(input, game));

View file

@ -1,4 +1,4 @@
package mage.cards.d;
package mage.cards.t;
import mage.MageInt;
import mage.MageObjectReference;
@ -33,7 +33,7 @@ import java.util.UUID;
/**
* @author TheElk801
*/
public final class DhalsimPliablePacifist extends CardImpl {
public final class TadeasJuniperAscendant extends CardImpl {
private static final Condition condition = new InvertCondition(SourceAttackingCondition.instance);
private static final FilterControlledCreaturePermanent filter
@ -43,7 +43,7 @@ public final class DhalsimPliablePacifist extends CardImpl {
filter.add(new AbilityPredicate(ReachAbility.class));
}
public DhalsimPliablePacifist(UUID ownerId, CardSetInfo setInfo) {
public TadeasJuniperAscendant(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{W}");
this.addSuperType(SuperType.LEGENDARY);
@ -63,37 +63,37 @@ public final class DhalsimPliablePacifist extends CardImpl {
// Whenever a creature you control with reach attacks, untap it and it can't be blocked by creatures with greater power this combat.
this.addAbility(new AttacksCreatureYouControlTriggeredAbility(
new DhalsimPliablePacifistEffect(), false, filter, true
new TadeasJuniperAscendantEffect(), false, filter, true
));
// Fierce PunchWhenever one or more creatures you control deal combat damage to a player, draw a card.
this.addAbility(new DhalsimPliablePacifistTriggeredAbility());
this.addAbility(new TadeasJuniperAscendantTriggeredAbility());
}
private DhalsimPliablePacifist(final DhalsimPliablePacifist card) {
private TadeasJuniperAscendant(final TadeasJuniperAscendant card) {
super(card);
}
@Override
public DhalsimPliablePacifist copy() {
return new DhalsimPliablePacifist(this);
public TadeasJuniperAscendant copy() {
return new TadeasJuniperAscendant(this);
}
}
class DhalsimPliablePacifistEffect extends OneShotEffect {
class TadeasJuniperAscendantEffect extends OneShotEffect {
DhalsimPliablePacifistEffect() {
TadeasJuniperAscendantEffect() {
super(Outcome.Benefit);
staticText = "untap it and it can't be blocked by creatures with greater power this combat";
}
private DhalsimPliablePacifistEffect(final DhalsimPliablePacifistEffect effect) {
private TadeasJuniperAscendantEffect(final TadeasJuniperAscendantEffect effect) {
super(effect);
}
@Override
public DhalsimPliablePacifistEffect copy() {
return new DhalsimPliablePacifistEffect(this);
public TadeasJuniperAscendantEffect copy() {
return new TadeasJuniperAscendantEffect(this);
}
@Override
@ -103,28 +103,28 @@ class DhalsimPliablePacifistEffect extends OneShotEffect {
return false;
}
permanent.untap(game);
game.addEffect(new DhalsimPliablePacifistBlockEffect(permanent, game), source);
game.addEffect(new TadeasJuniperAscendantBlockEffect(permanent, game), source);
return true;
}
}
class DhalsimPliablePacifistBlockEffect extends RestrictionEffect {
class TadeasJuniperAscendantBlockEffect extends RestrictionEffect {
private final MageObjectReference mor;
DhalsimPliablePacifistBlockEffect(Permanent permanent, Game game) {
TadeasJuniperAscendantBlockEffect(Permanent permanent, Game game) {
super(Duration.EndOfTurn);
this.mor = new MageObjectReference(permanent, game);
}
private DhalsimPliablePacifistBlockEffect(final DhalsimPliablePacifistBlockEffect effect) {
private TadeasJuniperAscendantBlockEffect(final TadeasJuniperAscendantBlockEffect effect) {
super(effect);
this.mor = effect.mor;
}
@Override
public DhalsimPliablePacifistBlockEffect copy() {
return new DhalsimPliablePacifistBlockEffect(this);
public TadeasJuniperAscendantBlockEffect copy() {
return new TadeasJuniperAscendantBlockEffect(this);
}
@Override
@ -143,23 +143,23 @@ class DhalsimPliablePacifistBlockEffect extends RestrictionEffect {
}
}
class DhalsimPliablePacifistTriggeredAbility extends TriggeredAbilityImpl {
class TadeasJuniperAscendantTriggeredAbility extends TriggeredAbilityImpl {
private final Set<UUID> damagedPlayerIds = new HashSet<>();
DhalsimPliablePacifistTriggeredAbility() {
TadeasJuniperAscendantTriggeredAbility() {
super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), false);
this.withFlavorWord("Fierce Punch");
setTriggerPhrase("Whenever one or more creatures you control deal combat damage to a player, ");
}
private DhalsimPliablePacifistTriggeredAbility(final DhalsimPliablePacifistTriggeredAbility ability) {
private TadeasJuniperAscendantTriggeredAbility(final TadeasJuniperAscendantTriggeredAbility ability) {
super(ability);
}
@Override
public DhalsimPliablePacifistTriggeredAbility copy() {
return new DhalsimPliablePacifistTriggeredAbility(this);
public TadeasJuniperAscendantTriggeredAbility copy() {
return new TadeasJuniperAscendantTriggeredAbility(this);
}
@Override

View file

@ -1,4 +1,4 @@
package mage.cards.b;
package mage.cards.t;
import mage.MageInt;
import mage.abilities.Ability;
@ -23,9 +23,9 @@ import java.util.UUID;
/**
* @author TheElk801
*/
public final class BlankaFerociousFriend extends CardImpl {
public final class TheHowlingAbomination extends CardImpl {
public BlankaFerociousFriend(UUID ownerId, CardSetInfo setInfo) {
public TheHowlingAbomination(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{G}");
this.addSuperType(SuperType.LEGENDARY);
@ -40,7 +40,7 @@ public final class BlankaFerociousFriend extends CardImpl {
// Rolling AttackBlanka, Ferocious Friend has trample as long as you've cast three or more spells this turn.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(TrampleAbility.getInstance()), BlankaFerociousFriendCondition.instance,
new GainAbilitySourceEffect(TrampleAbility.getInstance()), TheHowlingAbominationCondition.instance,
"{this} has trample as long as you've cast three or more spells this turn"
)).withFlavorWord("Rolling Attack"));
@ -53,17 +53,17 @@ public final class BlankaFerociousFriend extends CardImpl {
this.addAbility(ability.withFlavorWord("Electric Thunder"));
}
private BlankaFerociousFriend(final BlankaFerociousFriend card) {
private TheHowlingAbomination(final TheHowlingAbomination card) {
super(card);
}
@Override
public BlankaFerociousFriend copy() {
return new BlankaFerociousFriend(this);
public TheHowlingAbomination copy() {
return new TheHowlingAbomination(this);
}
}
enum BlankaFerociousFriendCondition implements Condition {
enum TheHowlingAbominationCondition implements Condition {
instance;
@Override

View file

@ -1,4 +1,4 @@
package mage.cards.r;
package mage.cards.v;
import mage.MageInt;
import mage.abilities.Ability;
@ -24,9 +24,9 @@ import java.util.UUID;
/**
* @author TheElk801
*/
public final class RyuWorldWarrior extends CardImpl {
public final class VikyaScorchingStalwart extends CardImpl {
public RyuWorldWarrior(UUID ownerId, CardSetInfo setInfo) {
public VikyaScorchingStalwart(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
this.addSuperType(SuperType.LEGENDARY);
@ -39,38 +39,38 @@ public final class RyuWorldWarrior extends CardImpl {
this.addAbility(new TrainingAbility());
// Hadoken{4}{R}, {Q}, Discard a card: Ryu, World Warrior deals damage equal to his power to any target. If excess damage was dealt to a creature this way, draw a card.
Ability ability = new SimpleActivatedAbility(new RyuWorldWarriorEffect(), new ManaCostsImpl<>("{4}{R}"));
Ability ability = new SimpleActivatedAbility(new VikyaScorchingStalwartEffect(), new ManaCostsImpl<>("{4}{R}"));
ability.addCost(new UntapSourceCost());
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability.withFlavorWord("Hadoken"));
}
private RyuWorldWarrior(final RyuWorldWarrior card) {
private VikyaScorchingStalwart(final VikyaScorchingStalwart card) {
super(card);
}
@Override
public RyuWorldWarrior copy() {
return new RyuWorldWarrior(this);
public VikyaScorchingStalwart copy() {
return new VikyaScorchingStalwart(this);
}
}
class RyuWorldWarriorEffect extends OneShotEffect {
class VikyaScorchingStalwartEffect extends OneShotEffect {
RyuWorldWarriorEffect() {
VikyaScorchingStalwartEffect() {
super(Outcome.Benefit);
staticText = "{this} deals damage equal to his power to any target. " +
"If excess damage was dealt to a creature this way, draw a card";
}
private RyuWorldWarriorEffect(final RyuWorldWarriorEffect effect) {
private VikyaScorchingStalwartEffect(final VikyaScorchingStalwartEffect effect) {
super(effect);
}
@Override
public RyuWorldWarriorEffect copy() {
return new RyuWorldWarriorEffect(this);
public VikyaScorchingStalwartEffect copy() {
return new VikyaScorchingStalwartEffect(this);
}
@Override

View file

@ -1,4 +1,4 @@
package mage.cards.c;
package mage.cards.z;
import mage.ApprovingObject;
import mage.MageInt;
@ -23,9 +23,9 @@ import java.util.UUID;
/**
* @author TheElk801
*/
public final class ChunLiCountlessKicks extends CardImpl {
public final class ZethiArcaneBlademaster extends CardImpl {
public ChunLiCountlessKicks(UUID ownerId, CardSetInfo setInfo) {
public ZethiArcaneBlademaster(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}");
this.addSuperType(SuperType.LEGENDARY);
@ -38,24 +38,24 @@ public final class ChunLiCountlessKicks extends CardImpl {
this.addAbility(new MultikickerAbility("{W/U}"));
// When Chun-Li enters the battlefield, exile up to X target instant cards from your graveyard, where X is the number of times Chun-Li was kicked. Put a kick counter on each of them.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ChunLiCountlessKicksExileEffect())
.setTargetAdjuster(ChunLiCountlessKicksAdjuster.instance));
this.addAbility(new EntersBattlefieldTriggeredAbility(new ZethiArcaneBlademasterExileEffect())
.setTargetAdjuster(ZethiArcaneBlademasterAdjuster.instance));
// Lightning KickWhenever Chun-Li attacks, copy each exiled card you own with a kick counter on it. You may cast the copies.
this.addAbility(new AttacksTriggeredAbility(new ChunLiCountlessKicksCastEffect()).withFlavorWord("Lightning Kick"));
this.addAbility(new AttacksTriggeredAbility(new ZethiArcaneBlademasterCastEffect()).withFlavorWord("Lightning Kick"));
}
private ChunLiCountlessKicks(final ChunLiCountlessKicks card) {
private ZethiArcaneBlademaster(final ZethiArcaneBlademaster card) {
super(card);
}
@Override
public ChunLiCountlessKicks copy() {
return new ChunLiCountlessKicks(this);
public ZethiArcaneBlademaster copy() {
return new ZethiArcaneBlademaster(this);
}
}
enum ChunLiCountlessKicksAdjuster implements TargetAdjuster {
enum ZethiArcaneBlademasterAdjuster implements TargetAdjuster {
instance;
private static final FilterCard filter = new FilterCard("instant cards from your graveyard");
@ -71,21 +71,21 @@ enum ChunLiCountlessKicksAdjuster implements TargetAdjuster {
}
}
class ChunLiCountlessKicksExileEffect extends OneShotEffect {
class ZethiArcaneBlademasterExileEffect extends OneShotEffect {
ChunLiCountlessKicksExileEffect() {
ZethiArcaneBlademasterExileEffect() {
super(Outcome.Benefit);
staticText = "exile up to X target instant cards from your graveyard, "
+ "where X is the number of times {this} was kicked. Put a kick counter on each of them";
}
private ChunLiCountlessKicksExileEffect(final ChunLiCountlessKicksExileEffect effect) {
private ZethiArcaneBlademasterExileEffect(final ZethiArcaneBlademasterExileEffect effect) {
super(effect);
}
@Override
public ChunLiCountlessKicksExileEffect copy() {
return new ChunLiCountlessKicksExileEffect(this);
public ZethiArcaneBlademasterExileEffect copy() {
return new ZethiArcaneBlademasterExileEffect(this);
}
@Override
@ -101,20 +101,20 @@ class ChunLiCountlessKicksExileEffect extends OneShotEffect {
}
}
class ChunLiCountlessKicksCastEffect extends OneShotEffect {
class ZethiArcaneBlademasterCastEffect extends OneShotEffect {
ChunLiCountlessKicksCastEffect() {
ZethiArcaneBlademasterCastEffect() {
super(Outcome.Benefit);
staticText = "copy each exiled card you own with a kick counter on it. You may cast the copies";
}
private ChunLiCountlessKicksCastEffect(final ChunLiCountlessKicksCastEffect effect) {
private ZethiArcaneBlademasterCastEffect(final ZethiArcaneBlademasterCastEffect effect) {
super(effect);
}
@Override
public ChunLiCountlessKicksCastEffect copy() {
return new ChunLiCountlessKicksCastEffect(this);
public ZethiArcaneBlademasterCastEffect copy() {
return new ZethiArcaneBlademasterCastEffect(this);
}
@Override
@ -153,7 +153,7 @@ class ChunLiCountlessKicksCastEffect extends OneShotEffect {
);
game.getState().setValue("PlayFromNotOwnHandZone" + copiedCard.getId(), null);
} else {
Logger.getLogger(ChunLiCountlessKicksCastEffect.class).error("Chun Li, Countless Kicks: "
Logger.getLogger(ZethiArcaneBlademasterCastEffect.class).error("Chun Li, Countless Kicks: "
+ "spell ability == null " + copiedCard.getName());
}
}

View file

@ -421,14 +421,14 @@ public class SecretLairDrop extends ExpansionSet {
cards.add(new SetCardInfo("Freed from the Real", 425, Rarity.RARE, mage.cards.f.FreedFromTheReal.class));
cards.add(new SetCardInfo("Boseiju, Who Shelters All", 426, Rarity.RARE, mage.cards.b.BoseijuWhoSheltersAll.class));
cards.add(new SetCardInfo("Hall of the Bandit Lord", 427, Rarity.RARE, mage.cards.h.HallOfTheBanditLord.class));
cards.add(new SetCardInfo("E. Honda, Sumo Champion", 428, Rarity.RARE, mage.cards.e.EHondaSumoChampion.class));
cards.add(new SetCardInfo("Ryu, World Warrior", 429, Rarity.RARE, mage.cards.r.RyuWorldWarrior.class));
cards.add(new SetCardInfo("Ken, Burning Brawler", 430, Rarity.RARE, mage.cards.k.KenBurningBrawler.class));
cards.add(new SetCardInfo("Blanka, Ferocious Friend", 431, Rarity.RARE, mage.cards.b.BlankaFerociousFriend.class));
cards.add(new SetCardInfo("Chun-Li, Countless Kicks", 432, Rarity.RARE, mage.cards.c.ChunLiCountlessKicks.class));
cards.add(new SetCardInfo("Dhalsim, Pliable Pacifist", 433, Rarity.RARE, mage.cards.d.DhalsimPliablePacifist.class));
cards.add(new SetCardInfo("Guile, Sonic Soldier", 434, Rarity.RARE, mage.cards.g.GuileSonicSoldier.class));
cards.add(new SetCardInfo("Zangief, the Red Cyclone", 435, Rarity.RARE, mage.cards.z.ZangiefTheRedCyclone.class));
cards.add(new SetCardInfo("Baldin, Century Herdmaster", 428, Rarity.RARE, mage.cards.b.BaldinCenturyHerdmaster.class));
cards.add(new SetCardInfo("Vikya, Scorching Stalwart", 429, Rarity.RARE, mage.cards.v.VikyaScorchingStalwart.class));
cards.add(new SetCardInfo("Aisha of Sparks and Smoke", 430, Rarity.RARE, mage.cards.a.AishaOfSparksAndSmoke.class));
cards.add(new SetCardInfo("The Howling Abomination", 431, Rarity.RARE, mage.cards.t.TheHowlingAbomination.class));
cards.add(new SetCardInfo("Zethi, Arcane Blademaster", 432, Rarity.RARE, mage.cards.z.ZethiArcaneBlademaster.class));
cards.add(new SetCardInfo("Tadeas, Juniper Ascendant", 433, Rarity.RARE, mage.cards.t.TadeasJuniperAscendant.class));
cards.add(new SetCardInfo("Immard, the Stormcleaver", 434, Rarity.RARE, mage.cards.i.ImmardTheStormcleaver.class));
cards.add(new SetCardInfo("Maarika, Brutal Gladiator", 435, Rarity.RARE, mage.cards.m.MaarikaBrutalGladiator.class));
cards.add(new SetCardInfo("Windbrisk Heights", 436, Rarity.RARE, mage.cards.w.WindbriskHeights.class));
cards.add(new SetCardInfo("Shelldock Isle", 437, Rarity.RARE, mage.cards.s.ShelldockIsle.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Howltooth Hollow", 438, Rarity.RARE, mage.cards.h.HowltoothHollow.class));

View file

@ -21,15 +21,23 @@ public final class UniversesWithin extends ExpansionSet {
this.hasBasicLands = false;
this.hasBoosters = false;
cards.add(new SetCardInfo("Aisha of Sparks and Smoke", 12, Rarity.RARE, mage.cards.a.AishaOfSparksAndSmoke.class));
cards.add(new SetCardInfo("Arvinox, the Mind Flail", 1, Rarity.MYTHIC, mage.cards.a.ArvinoxTheMindFlail.class));
cards.add(new SetCardInfo("Baldin, Century Herdmaster", 10, Rarity.RARE, mage.cards.b.BaldinCenturyHerdmaster.class));
cards.add(new SetCardInfo("Bjorna, Nightfall Alchemist", 2, Rarity.RARE, mage.cards.b.BjornaNightfallAlchemist.class));
cards.add(new SetCardInfo("Cecily, Haunted Mage", 3, Rarity.RARE, mage.cards.c.CecilyHauntedMage.class));
cards.add(new SetCardInfo("Elmar, Ulvenwald Informant", 4, Rarity.RARE, mage.cards.e.ElmarUlvenwaldInformant.class));
cards.add(new SetCardInfo("Hargilde, Kindly Runechanter", 5, Rarity.RARE, mage.cards.h.HargildeKindlyRunechanter.class));
cards.add(new SetCardInfo("Havengul Laboratory", 9, Rarity.RARE, mage.cards.h.HavengulLaboratory.class));
cards.add(new SetCardInfo("Havengul Mystery", 9, Rarity.RARE, mage.cards.h.HavengulMystery.class));
cards.add(new SetCardInfo("Immard, the Stormcleaver", 14, Rarity.RARE, mage.cards.i.ImmardTheStormcleaver.class));
cards.add(new SetCardInfo("Maarika, Brutal Gladiator", 15, Rarity.RARE, mage.cards.m.MaarikaBrutalGladiator.class));
cards.add(new SetCardInfo("Othelm, Sigardian Outcast", 6, Rarity.RARE, mage.cards.o.OthelmSigardianOutcast.class));
cards.add(new SetCardInfo("Sophina, Spearsage Deserter", 7, Rarity.RARE, mage.cards.s.SophinaSpearsageDeserter.class));
cards.add(new SetCardInfo("Tadeas, Juniper Ascendant", 16, Rarity.RARE, mage.cards.t.TadeasJuniperAscendant.class));
cards.add(new SetCardInfo("The Howling Abomination", 13, Rarity.RARE, mage.cards.t.TheHowlingAbomination.class));
cards.add(new SetCardInfo("Vikya, Scorching Stalwart", 11, Rarity.RARE, mage.cards.v.VikyaScorchingStalwart.class));
cards.add(new SetCardInfo("Wernog, Rider's Chaplain", 8, Rarity.RARE, mage.cards.w.WernogRidersChaplain.class));
cards.add(new SetCardInfo("Zethi, Arcane Blademaster", 17, Rarity.RARE, mage.cards.z.ZethiArcaneBlademaster.class));
}
}