mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
Fix cards 'G' to 'J' with card name instead of {this}, also some split cards now that I've confirmed they work correctly
This commit is contained in:
parent
c0256da7de
commit
339dff5de8
17 changed files with 75 additions and 119 deletions
|
|
@ -1,7 +1,6 @@
|
||||||
|
|
||||||
package mage.cards.a;
|
package mage.cards.a;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.Effect;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
|
|
@ -12,6 +11,8 @@ import mage.constants.SpellAbilityType;
|
||||||
import mage.game.permanent.token.ElephantToken;
|
import mage.game.permanent.token.ElephantToken;
|
||||||
import mage.target.common.TargetAnyTarget;
|
import mage.target.common.TargetAnyTarget;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public final class AssaultBattery extends SplitCard {
|
public final class AssaultBattery extends SplitCard {
|
||||||
|
|
||||||
public AssaultBattery(UUID ownerId, CardSetInfo setInfo) {
|
public AssaultBattery(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
|
@ -20,7 +21,7 @@ public final class AssaultBattery extends SplitCard {
|
||||||
// Assault
|
// Assault
|
||||||
// Assault deals 2 damage to any target.
|
// Assault deals 2 damage to any target.
|
||||||
Effect effect = new DamageTargetEffect(2);
|
Effect effect = new DamageTargetEffect(2);
|
||||||
effect.setText("Assault deals 2 damage to any target");
|
effect.setText("{this} deals 2 damage to any target");
|
||||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetAnyTarget());
|
getLeftHalfCard().getSpellAbility().addTarget(new TargetAnyTarget());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,12 @@
|
||||||
package mage.cards.c;
|
package mage.cards.c;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.effects.common.DamageTargetControllerEffect;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.effects.common.discard.DiscardTargetEffect;
|
import mage.abilities.effects.common.discard.DiscardTargetEffect;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.cards.SplitCard;
|
import mage.cards.SplitCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SpellAbilityType;
|
import mage.constants.SpellAbilityType;
|
||||||
import mage.game.Game;
|
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
import mage.players.Player;
|
|
||||||
import mage.target.common.TargetCreatureOrPlaneswalker;
|
import mage.target.common.TargetCreatureOrPlaneswalker;
|
||||||
import mage.target.common.TargetOpponent;
|
import mage.target.common.TargetOpponent;
|
||||||
|
|
||||||
|
|
@ -27,7 +22,8 @@ public final class CarnivalCarnage extends SplitCard {
|
||||||
|
|
||||||
// Carnival
|
// Carnival
|
||||||
// Carnival deals 1 damage to target creature or planeswalker and 1 damage to that permanent's controller.
|
// Carnival deals 1 damage to target creature or planeswalker and 1 damage to that permanent's controller.
|
||||||
this.getLeftHalfCard().getSpellAbility().addEffect(new CarnivalEffect());
|
this.getLeftHalfCard().getSpellAbility().addEffect(new DamageTargetEffect(1));
|
||||||
|
this.getLeftHalfCard().getSpellAbility().addEffect(new DamageTargetControllerEffect(1).setText("and 1 damage to that permanent's controller"));
|
||||||
this.getLeftHalfCard().getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
|
this.getLeftHalfCard().getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
|
||||||
|
|
||||||
// Carnage
|
// Carnage
|
||||||
|
|
@ -48,35 +44,3 @@ public final class CarnivalCarnage extends SplitCard {
|
||||||
return new CarnivalCarnage(this);
|
return new CarnivalCarnage(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class CarnivalEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
CarnivalEffect() {
|
|
||||||
super(Outcome.Benefit);
|
|
||||||
staticText = "{this} deals 1 damage to target creature or planeswalker " +
|
|
||||||
"and 1 damage to that permanent's controller";
|
|
||||||
}
|
|
||||||
|
|
||||||
private CarnivalEffect(final CarnivalEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CarnivalEffect copy() {
|
|
||||||
return new CarnivalEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
|
||||||
if (permanent == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
permanent.damage(1, source.getSourceId(), source, game);
|
|
||||||
Player player = game.getPlayer(permanent.getControllerId());
|
|
||||||
if (player != null) {
|
|
||||||
player.damage(1, source.getSourceId(), source, game);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.c;
|
package mage.cards.c;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.dynamicvalue.common.GetXValue;
|
import mage.abilities.dynamicvalue.common.GetXValue;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
|
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
|
||||||
|
|
@ -11,6 +10,8 @@ import mage.constants.CardType;
|
||||||
import mage.constants.SpellAbilityType;
|
import mage.constants.SpellAbilityType;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stravant
|
* @author Stravant
|
||||||
*/
|
*/
|
||||||
|
|
@ -22,7 +23,7 @@ public final class CutRibbons extends SplitCard {
|
||||||
// Cut
|
// Cut
|
||||||
// Cut deals 4 damage to target creature.
|
// Cut deals 4 damage to target creature.
|
||||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||||
getLeftHalfCard().getSpellAbility().addEffect(new DamageTargetEffect(4).setText("Cut deals 4 damage to target creature"));
|
getLeftHalfCard().getSpellAbility().addEffect(new DamageTargetEffect(4).setText("{this} deals 4 damage to target creature"));
|
||||||
|
|
||||||
// to
|
// to
|
||||||
// Ribbons
|
// Ribbons
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,23 @@
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|
||||||
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.effects.common.AttachEffect;
|
import mage.abilities.effects.common.AttachEffect;
|
||||||
import mage.constants.Outcome;
|
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
|
||||||
import mage.target.TargetPermanent;
|
|
||||||
import mage.abilities.keyword.EnchantAbility;
|
import mage.abilities.keyword.EnchantAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.Outcome;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
|
import mage.target.TargetPermanent;
|
||||||
import mage.target.common.TargetNonlandPermanent;
|
import mage.target.common.TargetNonlandPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class GiantsGrasp extends CardImpl {
|
public final class GiantsGrasp extends CardImpl {
|
||||||
|
|
@ -40,7 +39,7 @@ public final class GiantsGrasp extends CardImpl {
|
||||||
|
|
||||||
// When Giant's Grasp enters the battlefield, gain control of target nonland permanent for as long as Giant's Grasp remains on the battlefield.
|
// When Giant's Grasp enters the battlefield, gain control of target nonland permanent for as long as Giant's Grasp remains on the battlefield.
|
||||||
GainControlTargetEffect controlEffect = new GainControlTargetEffect(Duration.UntilSourceLeavesBattlefield);
|
GainControlTargetEffect controlEffect = new GainControlTargetEffect(Duration.UntilSourceLeavesBattlefield);
|
||||||
controlEffect.setText("gain control of target nonland permanent for as long as Giant's Grasp remains on the battlefield");
|
controlEffect.setText("gain control of target nonland permanent for as long as {this} remains on the battlefield");
|
||||||
ability = new EntersBattlefieldTriggeredAbility(controlEffect);
|
ability = new EntersBattlefieldTriggeredAbility(controlEffect);
|
||||||
ability.addTarget(new TargetNonlandPermanent());
|
ability.addTarget(new TargetNonlandPermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
|
|
@ -46,7 +45,7 @@ class GoblinLyreEffect extends OneShotEffect {
|
||||||
GoblinLyreEffect() {
|
GoblinLyreEffect() {
|
||||||
super(Outcome.Damage);
|
super(Outcome.Damage);
|
||||||
this.staticText = "Flip a coin. If you win the flip, {this} deals damage to target opponent or planeswalker equal to the number of creatures you control. "
|
this.staticText = "Flip a coin. If you win the flip, {this} deals damage to target opponent or planeswalker equal to the number of creatures you control. "
|
||||||
+ "If you lose the flip, Goblin Lyre deals damage to you equal to the number of creatures that opponent or that planeswalker's controller controls";
|
+ "If you lose the flip, {this} deals damage to you equal to the number of creatures that opponent or that planeswalker's controller controls";
|
||||||
}
|
}
|
||||||
|
|
||||||
private GoblinLyreEffect(final GoblinLyreEffect effect) {
|
private GoblinLyreEffect(final GoblinLyreEffect effect) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.Effect;
|
||||||
|
|
@ -16,14 +15,15 @@ import mage.filter.StaticFilters;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author emerald000
|
* @author emerald000
|
||||||
*/
|
*/
|
||||||
public final class GravePeril extends CardImpl {
|
public final class GravePeril extends CardImpl {
|
||||||
|
|
||||||
public GravePeril(UUID ownerId, CardSetInfo setInfo) {
|
public GravePeril(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}");
|
||||||
|
|
||||||
// When a nonblack creature enters the battlefield, sacrifice Grave Peril. If you do, destroy that creature.
|
// When a nonblack creature enters the battlefield, sacrifice Grave Peril. If you do, destroy that creature.
|
||||||
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new GravePerilEffect(), StaticFilters.FILTER_PERMANENT_CREATURE_NON_BLACK, false, SetTargetPointer.PERMANENT).setTriggerPhrase("When a nonblack creature enters, "));
|
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new GravePerilEffect(), StaticFilters.FILTER_PERMANENT_CREATURE_NON_BLACK, false, SetTargetPointer.PERMANENT).setTriggerPhrase("When a nonblack creature enters, "));
|
||||||
|
|
@ -43,7 +43,7 @@ class GravePerilEffect extends OneShotEffect {
|
||||||
|
|
||||||
GravePerilEffect() {
|
GravePerilEffect() {
|
||||||
super(Outcome.DestroyPermanent);
|
super(Outcome.DestroyPermanent);
|
||||||
this.staticText = "sacrifice Grave Peril. If you do, destroy that creature";
|
this.staticText = "sacrifice {this}. If you do, destroy that creature";
|
||||||
}
|
}
|
||||||
|
|
||||||
private GravePerilEffect(final GravePerilEffect effect) {
|
private GravePerilEffect(final GravePerilEffect effect) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
|
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.ActivatedAbilityImpl;
|
import mage.abilities.ActivatedAbilityImpl;
|
||||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||||
|
|
@ -18,7 +17,8 @@ import mage.counters.CounterType;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.filter.predicate.Predicates;
|
import mage.filter.predicate.Predicates;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -81,6 +81,6 @@ class GreaterGargadonAbility extends ActivatedAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return super.getRule() + " Activate only if Greater Gargadon is suspended.";
|
return super.getRule() + " Activate only if {this} is suspended.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,18 @@ package mage.cards.h;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
|
||||||
import mage.abilities.effects.ContinuousEffect;
|
import mage.abilities.effects.ContinuousEffect;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
||||||
|
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -26,12 +24,6 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class Halfdane extends CardImpl {
|
public final class Halfdane extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("target creature other than Halfdane");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(AnotherPredicate.instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Halfdane(UUID ownerId, CardSetInfo setInfo) {
|
public Halfdane(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}{B}");
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
@ -41,7 +33,7 @@ public final class Halfdane extends CardImpl {
|
||||||
|
|
||||||
// At the beginning of your upkeep, change Halfdane's base power and toughness to the power and toughness of target creature other than Halfdane until the end of your next upkeep.
|
// At the beginning of your upkeep, change Halfdane's base power and toughness to the power and toughness of target creature other than Halfdane until the end of your next upkeep.
|
||||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new HalfdaneUpkeepEffect());
|
Ability ability = new BeginningOfUpkeepTriggeredAbility(new HalfdaneUpkeepEffect());
|
||||||
ability.addTarget(new TargetPermanent(filter));
|
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -59,7 +51,7 @@ class HalfdaneUpkeepEffect extends OneShotEffect {
|
||||||
|
|
||||||
HalfdaneUpkeepEffect() {
|
HalfdaneUpkeepEffect() {
|
||||||
super(Outcome.Detriment);
|
super(Outcome.Detriment);
|
||||||
this.staticText = "change {this}'s base power and toughness to the power and toughness of target creature other than Halfdane until the end of your next upkeep";
|
this.staticText = "change {this}'s base power and toughness to the power and toughness of target creature other than {this} until the end of your next upkeep";
|
||||||
}
|
}
|
||||||
|
|
||||||
private HalfdaneUpkeepEffect(final HalfdaneUpkeepEffect effect) {
|
private HalfdaneUpkeepEffect(final HalfdaneUpkeepEffect effect) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import mage.abilities.common.EntersBattlefieldAbility;
|
import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.condition.Condition;
|
import mage.abilities.condition.Condition;
|
||||||
|
|
@ -14,13 +12,17 @@ import mage.abilities.keyword.WardAbility;
|
||||||
import mage.abilities.mana.BlueManaAbility;
|
import mage.abilities.mana.BlueManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.ComparisonType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.SubType;
|
||||||
import mage.filter.common.FilterLandPermanent;
|
import mage.filter.common.FilterLandPermanent;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
import mage.game.permanent.token.custom.CreatureToken;
|
import mage.game.permanent.token.custom.CreatureToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class HallOfStormGiants extends CardImpl {
|
public final class HallOfStormGiants extends CardImpl {
|
||||||
|
|
@ -51,10 +53,10 @@ public final class HallOfStormGiants extends CardImpl {
|
||||||
.withSubType(SubType.GIANT)
|
.withSubType(SubType.GIANT)
|
||||||
.withAbility(new WardAbility(new GenericManaCost(3))),
|
.withAbility(new WardAbility(new GenericManaCost(3))),
|
||||||
CardType.LAND, Duration.EndOfTurn).setText(
|
CardType.LAND, Duration.EndOfTurn).setText(
|
||||||
"Until end of turn, Hall of Storm Giants becomes a 7/7 blue Giant creature with ward {3}. " +
|
"Until end of turn, {this} becomes a 7/7 blue Giant creature with ward {3}. " +
|
||||||
"It's still a land. " +
|
"It's still a land. " +
|
||||||
"<i>(Whenever it becomes the target of a spell or ability an opponent controls, " +
|
"<i>(Whenever it becomes the target of a spell or ability an opponent controls, " +
|
||||||
"counter it unless that player pays {3}.)</i>"),
|
"counter it unless that player pays {3}.)</i>"),
|
||||||
new ManaCostsImpl<>("{5}{U}")));
|
new ManaCostsImpl<>("{5}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
|
@ -10,15 +9,15 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.Zone;
|
import mage.constants.SubType;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.target.common.TargetLandPermanent;
|
import mage.target.common.TargetLandPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jeffwadsworth
|
* @author jeffwadsworth
|
||||||
*/
|
*/
|
||||||
public final class Helldozer extends CardImpl {
|
public final class Helldozer extends CardImpl {
|
||||||
|
|
@ -55,7 +54,7 @@ class HelldozerEffect extends OneShotEffect {
|
||||||
|
|
||||||
HelldozerEffect() {
|
HelldozerEffect() {
|
||||||
super(Outcome.DestroyPermanent);
|
super(Outcome.DestroyPermanent);
|
||||||
this.staticText = "Destroy target land. If that land was nonbasic, untap Helldozer";
|
this.staticText = "Destroy target land. If that land was nonbasic, untap {this}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private HelldozerEffect(final HelldozerEffect effect) {
|
private HelldozerEffect(final HelldozerEffect effect) {
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,10 @@ import mage.constants.Outcome;
|
||||||
import mage.constants.SpellAbilityType;
|
import mage.constants.SpellAbilityType;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterAttackingCreature;
|
import mage.filter.common.FilterAttackingCreature;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
|
||||||
import mage.filter.predicate.Predicates;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.TargetPlayer;
|
import mage.target.TargetPlayer;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
|
||||||
import mage.target.common.TargetSacrifice;
|
import mage.target.common.TargetSacrifice;
|
||||||
import mage.target.targetpointer.FixedTarget;
|
import mage.target.targetpointer.FixedTarget;
|
||||||
|
|
||||||
|
|
@ -57,7 +54,7 @@ class HitEffect extends OneShotEffect {
|
||||||
|
|
||||||
HitEffect() {
|
HitEffect() {
|
||||||
super(Outcome.DestroyPermanent);
|
super(Outcome.DestroyPermanent);
|
||||||
this.staticText = "Target player sacrifices an artifact or creature. Hit deals damage to that player equal to that permanent's mana value";
|
this.staticText = "Target player sacrifices an artifact or creature. {this} deals damage to that player equal to that permanent's mana value";
|
||||||
}
|
}
|
||||||
|
|
||||||
private HitEffect(final HitEffect effect) {
|
private HitEffect(final HitEffect effect) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
|
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
|
@ -15,9 +14,10 @@ import mage.abilities.keyword.VigilanceAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.Zone;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -40,11 +40,11 @@ public final class HundredHandedOne extends CardImpl {
|
||||||
|
|
||||||
// As long as Hundred-Handed One is monstrous, it has reach and can block an additional ninety-nine creatures each combat.
|
// As long as Hundred-Handed One is monstrous, it has reach and can block an additional ninety-nine creatures each combat.
|
||||||
ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(
|
ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(
|
||||||
new GainAbilitySourceEffect(ReachAbility.getInstance(), Duration.WhileOnBattlefield),
|
new GainAbilitySourceEffect(ReachAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||||
MonstrousCondition.instance,
|
MonstrousCondition.instance,
|
||||||
"As long as Hundred-Handed One is monstrous, it has reach");
|
"As long as {this} is monstrous, it has reach");
|
||||||
ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(
|
ConditionalContinuousEffect effect2 = new ConditionalContinuousEffect(
|
||||||
new CanBlockAdditionalCreatureEffect(99),
|
new CanBlockAdditionalCreatureEffect(99),
|
||||||
MonstrousCondition.instance,
|
MonstrousCondition.instance,
|
||||||
"and can block an additional ninety-nine creatures each combat");
|
"and can block an additional ninety-nine creatures each combat");
|
||||||
Ability ability = new SimpleStaticAbility(effect1);
|
Ability ability = new SimpleStaticAbility(effect1);
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.effects.common.InfoEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
|
||||||
import mage.abilities.effects.common.InfoEffect;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -28,10 +28,10 @@ public final class IllusionaryInformant extends CardImpl {
|
||||||
|
|
||||||
// TODO: Draft specific abilities not implemented
|
// TODO: Draft specific abilities not implemented
|
||||||
// Draft Illusionary Informant face up.
|
// Draft Illusionary Informant face up.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("Draft Illusionary Informant face up - not implemented.")));
|
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("Draft {this} face up - not implemented.")));
|
||||||
|
|
||||||
// During the draft, you may turn Illusionary Informant face down. If you do, look at the next card drafted by a player of your choice.
|
// During the draft, you may turn Illusionary Informant face down. If you do, look at the next card drafted by a player of your choice.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("During the draft, you may turn Illusionary Informant face down. If you do, "
|
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("During the draft, you may turn {this} face down. If you do, "
|
||||||
+ "look at the next card drafted by a player of your choice - not implemented.")));
|
+ "look at the next card drafted by a player of your choice - not implemented.")));
|
||||||
|
|
||||||
// Flying
|
// Flying
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
|
|
@ -17,23 +16,23 @@ import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
|
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||||
import mage.filter.predicate.permanent.TappedPredicate;
|
import mage.filter.predicate.permanent.TappedPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
import mage.target.targetpointer.FixedTarget;
|
import mage.target.targetpointer.FixedTarget;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jeffwadsworth
|
* @author jeffwadsworth
|
||||||
*/
|
*/
|
||||||
public final class ImpelledGiant extends CardImpl {
|
public final class ImpelledGiant extends CardImpl {
|
||||||
|
|
||||||
static final private FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an untapped red creature you control other than Impelled Giant");
|
static final private FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("an untapped red creature you control other than {this}");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(TappedPredicate.UNTAPPED);
|
filter.add(TappedPredicate.UNTAPPED);
|
||||||
|
|
@ -73,7 +72,7 @@ class ImpelledGiantCost extends CostImpl {
|
||||||
|
|
||||||
public ImpelledGiantCost(TargetControlledPermanent target) {
|
public ImpelledGiantCost(TargetControlledPermanent target) {
|
||||||
this.target = target;
|
this.target = target;
|
||||||
this.text = "Tap an untapped red creature you control other than Impelled Giant";
|
this.text = "Tap an untapped red creature you control other than {this}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private ImpelledGiantCost(final ImpelledGiantCost cost) {
|
private ImpelledGiantCost(final ImpelledGiantCost cost) {
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ class InquisitionEffect extends OneShotEffect {
|
||||||
|
|
||||||
public InquisitionEffect() {
|
public InquisitionEffect() {
|
||||||
super(Outcome.Exile);
|
super(Outcome.Exile);
|
||||||
staticText = "Target player reveals their hand. Inquisition deals damage to that player equal to the number of white cards in their hand";
|
staticText = "Target player reveals their hand. {this} deals damage to that player equal to the number of white cards in their hand";
|
||||||
}
|
}
|
||||||
|
|
||||||
private InquisitionEffect(final InquisitionEffect effect) {
|
private InquisitionEffect(final InquisitionEffect effect) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.effects.common.GainLifeEffect;
|
import mage.abilities.effects.common.GainLifeEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
|
|
@ -12,8 +11,9 @@ import mage.constants.SpellAbilityType;
|
||||||
import mage.target.common.TargetAnyTarget;
|
import mage.target.common.TargetAnyTarget;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class IntegrityIntervention extends SplitCard {
|
public final class IntegrityIntervention extends SplitCard {
|
||||||
|
|
@ -33,7 +33,7 @@ public final class IntegrityIntervention extends SplitCard {
|
||||||
// Intervention
|
// Intervention
|
||||||
// Intervention deals 3 damage to any target and you gain 3 life.
|
// Intervention deals 3 damage to any target and you gain 3 life.
|
||||||
this.getRightHalfCard().getSpellAbility().addEffect(
|
this.getRightHalfCard().getSpellAbility().addEffect(
|
||||||
new DamageTargetEffect(3).setText("Intervention deals 3 damage to any target")
|
new DamageTargetEffect(3).setText("{this} deals 3 damage to any target")
|
||||||
);
|
);
|
||||||
this.getRightHalfCard().getSpellAbility().addEffect(
|
this.getRightHalfCard().getSpellAbility().addEffect(
|
||||||
new GainLifeEffect(3).setText("and you gain 3 life")
|
new GainLifeEffect(3).setText("and you gain 3 life")
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
|
|
||||||
package mage.cards.j;
|
package mage.cards.j;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldAbility;
|
import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
|
@ -12,21 +11,25 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.abilities.keyword.MultikickerAbility;
|
import mage.abilities.keyword.MultikickerAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.TargetController;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jeffwadsworth
|
* @author jeffwadsworth
|
||||||
*/
|
*/
|
||||||
public final class JoragaWarcaller extends CardImpl {
|
public final class JoragaWarcaller extends CardImpl {
|
||||||
|
|
||||||
private static final String rule = "Other Elf creatures you control get +1/+1 for each +1/+1 counter on Joraga Warcaller";
|
private static final String rule = "Other Elf creatures you control get +1/+1 for each +1/+1 counter on {this}";
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("elf creatures you control");
|
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("elf creatures you control");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(TargetController.YOU.getControllerPredicate());
|
filter.add(TargetController.YOU.getControllerPredicate());
|
||||||
filter.add(SubType.ELF.getPredicate());
|
filter.add(SubType.ELF.getPredicate());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue