Remove fake "marker" abilities

Only three cards used these, but it should be handled by a hint instead and be more broadly applicable
This commit is contained in:
xenohedron 2023-08-27 15:20:48 -04:00
parent fd46ac052a
commit 53be4f384e
5 changed files with 0 additions and 106 deletions

View file

@ -10,9 +10,6 @@ import mage.abilities.effects.common.combat.AttacksIfAbleTargetEffect;
import mage.abilities.effects.common.combat.BlocksIfAbleTargetEffect;
import mage.abilities.effects.common.combat.CantAttackTargetEffect;
import mage.abilities.effects.common.combat.CantBlockTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.AttacksThisTurnMarkerAbility;
import mage.abilities.keyword.BlocksThisTurnMarkerAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@ -79,18 +76,11 @@ class BorosBattleshaperEffect extends OneShotEffect {
ContinuousEffectImpl effect = new BlocksIfAbleTargetEffect(Duration.EndOfTurn);
effect.setTargetPointer(new FixedTarget(creature1.getId(), game));
game.addEffect(effect, source);
effect = new GainAbilityTargetEffect(BlocksThisTurnMarkerAbility.getInstance(), Duration.EndOfTurn, "");
effect.setTargetPointer(new FixedTarget(creature1.getId(), game));
game.addEffect(effect, source);
} else {
// Attacks
ContinuousEffectImpl effect = new AttacksIfAbleTargetEffect(Duration.EndOfTurn);
effect.setTargetPointer(new FixedTarget(creature1.getId(), game));
game.addEffect(effect, source);
effect = new GainAbilityTargetEffect(AttacksThisTurnMarkerAbility.getInstance(), Duration.EndOfTurn, "");
effect.setTargetPointer(new FixedTarget(creature1.getId(), game));
game.addEffect(effect, source);
}
}
Permanent creature2 = game.getPermanent(source.getTargets().get(1).getFirstTarget());

View file

@ -1,4 +1,3 @@
package mage.cards.c;
import java.util.UUID;
@ -8,9 +7,6 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.combat.AttacksIfAbleTargetEffect;
import mage.abilities.effects.common.combat.BlocksIfAbleTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.AttacksThisTurnMarkerAbility;
import mage.abilities.keyword.BlocksThisTurnMarkerAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -34,13 +30,11 @@ public final class CourtlyProvocateur extends CardImpl {
// {tap}: Target creature attacks this turn if able.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AttacksIfAbleTargetEffect(Duration.EndOfTurn), new TapSourceCost());
ability.addEffect(new GainAbilityTargetEffect(AttacksThisTurnMarkerAbility.getInstance(), Duration.EndOfTurn, null));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
// {tap}: Target creature blocks this turn if able.
Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BlocksIfAbleTargetEffect(Duration.EndOfTurn), new TapSourceCost());
ability2.addEffect(new GainAbilityTargetEffect(BlocksThisTurnMarkerAbility.getInstance(), Duration.EndOfTurn, null));
ability2.addTarget(new TargetCreaturePermanent());
this.addAbility(ability2);
}

View file

@ -1,11 +1,8 @@
package mage.cards.p;
import java.util.UUID;
import mage.abilities.effects.common.combat.BlocksIfAbleAllEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.keyword.BlocksThisTurnMarkerAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -32,7 +29,6 @@ public final class PredatoryRampage extends CardImpl {
this.getSpellAbility().addEffect(new BoostControlledEffect(3, 3, Duration.EndOfTurn));
// Each creature your opponents control blocks this turn if able.
this.getSpellAbility().addEffect(new BlocksIfAbleAllEffect(filter, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new GainAbilityAllEffect(BlocksThisTurnMarkerAbility.getInstance(), Duration.EndOfTurn, filter, ""));
}
private PredatoryRampage(final PredatoryRampage card) {

View file

@ -1,43 +0,0 @@
package mage.abilities.keyword;
import mage.constants.Zone;
import mage.abilities.MageSingleton;
import mage.abilities.StaticAbility;
import java.io.ObjectStreamException;
/**
* This is marker ability that is used only for rule display.
* You should use {@see AttacksIfAbleTargetEffect} for real effect.
*
* @author magenoxx_at_googlemail.com
*/
public class AttacksThisTurnMarkerAbility extends StaticAbility implements MageSingleton {
private static final AttacksThisTurnMarkerAbility instance = new AttacksThisTurnMarkerAbility();
private Object readResolve() throws ObjectStreamException {
return instance;
}
public static AttacksThisTurnMarkerAbility getInstance() {
return instance;
}
private AttacksThisTurnMarkerAbility() {
super(Zone.BATTLEFIELD, null);
}
@Override
public String getRule() {
return "{this} attacks this turn if able";
}
@Override
public AttacksThisTurnMarkerAbility copy() {
return instance;
}
}

View file

@ -1,43 +0,0 @@
package mage.abilities.keyword;
import mage.constants.Zone;
import mage.abilities.MageSingleton;
import mage.abilities.StaticAbility;
import java.io.ObjectStreamException;
/**
* This is marker ability that is used only for rule display.
* You should use {@see BlocksIfAbleTargetEffect} for real effect.
*
* @author magenoxx_at_googlemail.com
*/
public class BlocksThisTurnMarkerAbility extends StaticAbility implements MageSingleton {
private static final BlocksThisTurnMarkerAbility instance = new BlocksThisTurnMarkerAbility();
private Object readResolve() throws ObjectStreamException {
return instance;
}
public static BlocksThisTurnMarkerAbility getInstance() {
return instance;
}
private BlocksThisTurnMarkerAbility() {
super(Zone.BATTLEFIELD, null);
}
@Override
public String getRule() {
return "{this} blocks this turn if able";
}
@Override
public BlocksThisTurnMarkerAbility copy() {
return instance;
}
}