Rule text changes - Oracle updates 11.01.2018 (closes #4412)

This commit is contained in:
LevelX2 2018-01-14 10:46:42 +01:00
parent 0f13ac8b99
commit 07ab5cb731
3 changed files with 18 additions and 18 deletions

View file

@ -51,13 +51,13 @@ import mage.players.Player;
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
*/
public class CalmingVerse extends CardImpl {
public CalmingVerse(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{G}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}");
// Destroy all enchantments you don't control. Then, if you control an untapped land, destroy all enchantments you control.
this.getSpellAbility().addEffect(new CalmingVerseEffect());
}
public CalmingVerse(final CalmingVerse card) {
@ -71,24 +71,25 @@ public class CalmingVerse extends CardImpl {
}
class CalmingVerseEffect extends OneShotEffect {
private static final FilterPermanent untappedLandFilter = new FilterPermanent("If you control an untapped land");
static {
untappedLandFilter.add(new CardTypePredicate(CardType.LAND));
untappedLandFilter.add(Predicates.not(new TappedPredicate()));
}
private static final FilterEnchantmentPermanent opponentEnchantmentsFilter = new FilterEnchantmentPermanent("enchantments you don't control");
static {
opponentEnchantmentsFilter.add(new ControllerPredicate(TargetController.OPPONENT));
}
private static final FilterControlledEnchantmentPermanent controlledEnchantmentsFilter = new FilterControlledEnchantmentPermanent("enchantments you control");
private static final FilterControlledEnchantmentPermanent controlledEnchantmentsFilter = new FilterControlledEnchantmentPermanent("enchantments you control");
public CalmingVerseEffect() {
super(Outcome.Detriment);
this.staticText = "Destroy all enchantments you don't control. Then, if you control an untapped land, destroy all enchantments you control";
this.staticText = "Destroy all enchantments you don't control. Then if you control an untapped land, destroy all enchantments you control";
}
public CalmingVerseEffect(final CalmingVerseEffect effect) {
@ -106,17 +107,17 @@ class CalmingVerseEffect extends OneShotEffect {
for (Permanent permanent : game.getBattlefield().getActivePermanents(opponentEnchantmentsFilter, source.getControllerId(), source.getSourceId(), game)) {
permanent.destroy(source.getSourceId(), game, false);
}
// Then if you control an untapped land, destroy all own enchantments
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
if (game.getState().getBattlefield().countAll(untappedLandFilter, controller.getId(), game) > 0) {
if (game.getState().getBattlefield().countAll(untappedLandFilter, controller.getId(), game) > 0) {
for (Permanent permanent : game.getBattlefield().getActivePermanents(controlledEnchantmentsFilter, source.getControllerId(), source.getSourceId(), game)) {
permanent.destroy(source.getSourceId(), game, false);
}
}
}
return true;
}

View file

@ -50,7 +50,7 @@ import mage.game.events.ZoneChangeEvent;
public class GrafdiggersCage extends CardImpl {
public GrafdiggersCage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// Creature cards can't enter the battlefield from graveyards or libraries.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GrafdiggersCageEffect()));
@ -73,7 +73,7 @@ class GrafdiggersCageEffect extends ContinuousRuleModifyingEffectImpl {
public GrafdiggersCageEffect() {
super(Duration.WhileOnBattlefield, Outcome.Benefit);
staticText = "Creature cards can't enter the battlefield from graveyards or libraries";
staticText = "Creature cards in graveyards and libraries can't enter the battlefield";
}
public GrafdiggersCageEffect(final GrafdiggersCageEffect effect) {
@ -120,12 +120,11 @@ class GrafdiggersCageEffect2 extends ContinuousRuleModifyingEffectImpl {
return new GrafdiggersCageEffect2(this);
}
@Override
public boolean checksEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.CAST_SPELL;
}
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
Card card = game.getCard(event.getSourceId());

View file

@ -48,7 +48,7 @@ import mage.players.Player;
public class RhysticScrying extends CardImpl {
public RhysticScrying(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{U}{U}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}{U}");
// Draw three cards. Then, if any player pays {2}, discard three cards.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3));
@ -69,7 +69,7 @@ class RhysticScryingEffect extends OneShotEffect {
public RhysticScryingEffect() {
super(Outcome.Benefit);
this.staticText = "Then, if any player pays {2}, discard three cards";
this.staticText = "Then if any player pays {2}, discard three cards";
}
public RhysticScryingEffect(final RhysticScryingEffect effect) {