simplified various cards to use isInstantOrSorcery method

This commit is contained in:
Evan Kranzler 2021-03-22 20:01:20 -04:00
parent df866f858e
commit 2a42bec1f2
38 changed files with 46 additions and 43 deletions

View file

@ -87,7 +87,7 @@ class AbeyanceEffect extends ContinuousRuleModifyingEffectImpl {
return false;
}
if (event.getType() == GameEvent.EventType.CAST_SPELL
&& (object.isInstant() || object.isSorcery())) {
&& object.isInstantOrSorcery()) {
return true;
}
if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) {

View file

@ -131,7 +131,7 @@ class AzorTheLawbringerCantCastEffect extends ContinuousRuleModifyingEffectImpl
if (opponentId.equals(event.getPlayerId())) {
MageObject object = game.getObject(event.getSourceId());
if (event.getType() == GameEvent.EventType.CAST_SPELL) {
if (object.isInstant() || object.isSorcery()) {
if (object.isInstantOrSorcery()) {
return true;
}
}

View file

@ -1,6 +1,7 @@
package mage.cards.b;
import mage.MageInt;
import mage.MageObject;
import mage.MageObjectReference;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
@ -75,7 +76,7 @@ class BackdraftHellkiteEffect extends ContinuousEffectImpl {
player.getGraveyard()
.stream()
.map((cardId) -> game.getCard(cardId))
.filter(card -> card.isInstant() || card.isSorcery())
.filter(MageObject::isInstantOrSorcery)
.forEachOrdered(card -> affectedObjectList.add(new MageObjectReference(card, game)));
}

View file

@ -93,7 +93,7 @@ class BlazeCommandoTriggeredAbility extends TriggeredAbilityImpl {
if (isControlledBy(game.getControllerId(event.getSourceId()))) {
MageObject damageSource = game.getObject(event.getSourceId());
if (damageSource != null) {
if (damageSource.isInstant()|| damageSource.isSorcery()) {
if (damageSource.isInstantOrSorcery()) {
if (!handledStackObjects.contains(damageSource.getId())) {
handledStackObjects.add(damageSource.getId());
return true;

View file

@ -60,7 +60,7 @@ class BonusRoundDelayedTriggeredAbility extends DelayedTriggeredAbility {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && (spell.isInstant() || spell.isSorcery())) {
if (spell != null && spell.isInstantOrSorcery()) {
this.getEffects().setTargetPointer(new FixedTarget(event.getTargetId()));
return true;
}

View file

@ -71,7 +71,7 @@ class BoseijuWhoSheltersAllWatcher extends Watcher {
if (event.getType() == GameEvent.EventType.MANA_PAID) {
if (event.getData() != null && event.getData().equals(originalId.toString()) && event.getTargetId() != null) {
Card spell = game.getSpell(event.getTargetId());
if (spell != null && (spell.isInstant() || spell.isSorcery())) {
if (spell != null && spell.isInstantOrSorcery()) {
spells.add(new MageObjectReference(game.getObject(event.getTargetId()), game));
}
}

View file

@ -86,7 +86,7 @@ class ChandraTheFirebrandAbility extends DelayedTriggeredAbility {
public boolean checkTrigger(GameEvent event, Game game) {
if (event.getPlayerId().equals(this.getControllerId())) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && (spell.isInstant() || spell.isSorcery())) {
if (spell != null && spell.isInstantOrSorcery()) {
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
}

View file

@ -82,7 +82,7 @@ class ChaosWandEffect extends OneShotEffect {
}
opponent.moveCards(card, Zone.EXILED, source, game);
controller.revealCards(source, new CardsImpl(card), game);
if (card.isInstant() || card.isSorcery()) {
if (card.isInstantOrSorcery()) {
boolean cardWasCast = false;
if (controller.chooseUse(Outcome.PlayForFree, "Cast " + card.getName()
+ " without paying its mana cost?", source, game)) {

View file

@ -85,7 +85,7 @@ class CurseOfEchoesCopyTriggeredAbility extends TriggeredAbilityImpl {
@Override
public boolean checkTrigger(GameEvent event, Game game) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && (spell.isInstant() || spell.isSorcery())) {
if (spell != null && spell.isInstantOrSorcery()) {
Permanent enchantment = game.getPermanent(sourceId);
if (enchantment != null && enchantment.getAttachedTo() != null) {
Player player = game.getPlayer(enchantment.getAttachedTo());

View file

@ -1,5 +1,6 @@
package mage.cards.d;
import mage.MageObject;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.common.CopyTargetSpellEffect;
import mage.cards.CardImpl;
@ -71,7 +72,7 @@ class DoubleVisionCopyTriggeredAbility extends SpellCastControllerTriggeredAbili
if (watcher != null) {
List<Spell> eligibleSpells = watcher.getSpellsCastThisTurn(this.getControllerId())
.stream()
.filter(s -> s.isInstant() || s.isSorcery())
.filter(MageObject::isInstantOrSorcery)
.collect(Collectors.toList());
return eligibleSpells.size() == 1 && eligibleSpells.get(0).getId().equals(spell.getId());
}

View file

@ -65,7 +65,7 @@ class DoublecastAbility extends DelayedTriggeredAbility {
public boolean checkTrigger(GameEvent event, Game game) {
if (event.getPlayerId().equals(this.getControllerId())) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && (spell.isInstant() || spell.isSorcery())) {
if (spell != null && spell.isInstantOrSorcery()) {
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
}

View file

@ -72,7 +72,7 @@ class EyeOfTheStormAbility extends TriggeredAbilityImpl {
&& !spell.isCopy()
&& spell.getCard() != null
&& !spell.getCard().isCopy()
&& (spell.isInstant() || spell.isSorcery())) {
&& spell.isInstantOrSorcery()) {
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
}

View file

@ -75,7 +75,7 @@ class FireServantEffect extends ReplacementEffectImpl {
return spell != null &&
spell.isControlledBy(source.getControllerId()) &&
spell.getColor(game).isRed() &&
(spell.isInstant() || spell.isSorcery());
spell.isInstantOrSorcery();
}
@Override

View file

@ -75,7 +75,7 @@ class ForethoughtAmuletEffect extends ReplacementEffectImpl {
public boolean applies(GameEvent event, Ability source, Game game) {
if (event.getAmount() >= 3) {
MageObject object = game.getObject(event.getSourceId());
return object != null && (object.isInstant() || object.isSorcery());
return object != null && object.isInstantOrSorcery();
}
return false;
}

View file

@ -60,7 +60,7 @@ class GalvanothEffect extends OneShotEffect {
Card card = controller.getLibrary().getFromTop(game);
if (card != null) {
controller.lookAtCards(source, null, new CardsImpl(card), game);
if (card.isInstant() || card.isSorcery()) {
if (card.isInstantOrSorcery()) {
if (controller.chooseUse(Outcome.PlayForFree, "Cast " + card.getName() + " without paying its mana cost?", source, game)) {
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
controller.cast(controller.chooseAbilityForCast(card, game, true),

View file

@ -79,7 +79,7 @@ class HowlOfTheHordeDelayedTriggeredAbility extends DelayedTriggeredAbility {
public boolean checkTrigger(GameEvent event, Game game) {
if (event.getPlayerId().equals(this.getControllerId())) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && (spell.isInstant() || spell.isSorcery())) {
if (spell != null && spell.isInstantOrSorcery()) {
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
}

View file

@ -87,8 +87,8 @@ class MirariTriggeredAbility extends TriggeredAbilityImpl {
private boolean isControlledInstantOrSorcery(Spell spell) {
return spell != null
&& (spell.isControlledBy(this.getControllerId()))
&& (spell.isInstant() || spell.isSorcery());
&& spell.isControlledBy(this.getControllerId())
&& spell.isInstantOrSorcery();
}
@Override

View file

@ -129,7 +129,7 @@ class NarsetTranscendentTriggeredAbility extends DelayedTriggeredAbility {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && spell.getFromZone() == Zone.HAND) {
if (spell.getCard() != null
&& spell.getCard().isInstant() || spell.getCard().isSorcery()) {
&& spell.getCard().isInstantOrSorcery()) {
for (Effect effect : getEffects()) {
effect.setTargetPointer(new FixedTarget(spell.getId()));
}

View file

@ -77,7 +77,7 @@ class NivixAerieOfTheFiremindEffect extends OneShotEffect {
Card card = library.getFromTop(game);
if (card != null
&& controller.moveCardsToExile(card, source, game, true, source.getSourceId(), CardUtil.createObjectRealtedWindowTitle(source, game, null))
&& (card.isInstant() || card.isSorcery())) {
&& card.isInstantOrSorcery()) {
ContinuousEffect effect = new NivixAerieOfTheFiremindCanCastEffect();
effect.setTargetPointer(new FixedTarget(card.getId()));
game.addEffect(effect, source);

View file

@ -1,5 +1,6 @@
package mage.cards.p;
import mage.MageObject;
import mage.MageObjectReference;
import mage.abilities.Ability;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -63,7 +64,7 @@ class PastInFlamesEffect extends ContinuousEffectImpl {
if (this.affectedObjectsSet) {
Player player = game.getPlayer(source.getControllerId());
if (player != null) {
player.getGraveyard().stream().map((cardId) -> game.getCard(cardId)).filter((card) -> (card.isInstant() || card.isSorcery())).forEachOrdered((card) -> {
player.getGraveyard().stream().map((cardId) -> game.getCard(cardId)).filter(MageObject::isInstantOrSorcery).forEachOrdered((card) -> {
affectedObjectList.add(new MageObjectReference(card, game));
});
}

View file

@ -87,8 +87,8 @@ class PyromancerAscensionQuestTriggeredAbility extends TriggeredAbilityImpl {
private boolean isControlledInstantOrSorcery(Spell spell) {
return spell != null &&
(spell.isControlledBy(this.getControllerId())) &&
(spell.isInstant() || spell.isSorcery());
spell.isControlledBy(this.getControllerId()) &&
spell.isInstantOrSorcery();
}
@Override
@ -134,8 +134,8 @@ class PyromancerAscensionCopyTriggeredAbility extends TriggeredAbilityImpl {
private boolean isControlledInstantOrSorcery(Spell spell) {
return spell != null &&
(spell.isControlledBy(this.getControllerId())) &&
(spell.isInstant() || spell.isSorcery());
spell.isControlledBy(this.getControllerId()) &&
spell.isInstantOrSorcery();
}
@Override

View file

@ -68,7 +68,7 @@ class PyromancersSwathReplacementEffect extends ReplacementEffectImpl {
public boolean applies(GameEvent event, Ability source, Game game) {
if (source.isControlledBy(game.getControllerId(event.getSourceId()))) {
MageObject object = game.getObject(event.getSourceId());
return object != null && (object.isInstant() || object.isSorcery());
return object != null && object.isInstantOrSorcery();
}
return false;
}

View file

@ -120,7 +120,7 @@ class RalStormConduitDelayedTriggeredAbility extends DelayedTriggeredAbility {
public boolean checkTrigger(GameEvent event, Game game) {
if (event.getPlayerId().equals(this.getControllerId())) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && (spell.isInstant() || spell.isSorcery())) {
if (spell != null && spell.isInstantOrSorcery()) {
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
}

View file

@ -85,7 +85,7 @@ class SatyrFiredancerTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
MageObject sourceObject = game.getObject(event.getSourceId());
if (sourceObject == null || !(sourceObject.isInstant() || sourceObject.isSorcery())) {
if (sourceObject == null || !sourceObject.isInstantOrSorcery()) {
return false;
}
for (Effect effect : this.getEffects()) {

View file

@ -119,7 +119,7 @@ class SentinelTowerWatcher extends Watcher {
public void watch(GameEvent event, Game game) {
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
MageObject object = game.getObject(event.getTargetId());
if (object != null && (object.isInstant() || object.isSorcery())) {
if (object != null && object.isInstantOrSorcery()) {
spellsThisTurn.add(new MageObjectReference(object, game));
}
}

View file

@ -111,7 +111,7 @@ class SphinxsDecreeCantCastEffect extends ContinuousRuleModifyingEffectImpl {
if (opponentId.equals(event.getPlayerId())) {
MageObject object = game.getObject(event.getSourceId());
if (event.getType() == GameEvent.EventType.CAST_SPELL) {
if (object != null && (object.isInstant() || object.isSorcery())) {
if (object != null && object.isInstantOrSorcery()) {
return true;
}
}

View file

@ -96,7 +96,7 @@ class TaigamOjutaiMasterTriggeredAbility extends DelayedTriggeredAbility {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null && spell.getFromZone() == Zone.HAND) {
if (spell.getCard() != null
&& spell.getCard().isInstant() || spell.getCard().isSorcery()) {
&& spell.getCard().isInstantOrSorcery()) {
for (Effect effect : getEffects()) {
effect.setTargetPointer(new FixedTarget(spell.getId()));
}

View file

@ -120,7 +120,7 @@ class TergridGodOfFrightTriggeredAbility extends TriggeredAbilityImpl {
if (event.getType() == GameEvent.EventType.DISCARDED_CARD) {
Card discardedCard = game.getCard(event.getTargetId());
if (discardedCard != null
&& !(discardedCard.isInstantOrSorcery())) {
&& !discardedCard.isInstantOrSorcery()) {
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(discardedCard.getId(), game));
}

View file

@ -97,7 +97,7 @@ class TheMirariConjectureDelayedTriggeredAbility extends DelayedTriggeredAbility
if (event.getPlayerId().equals(this.getControllerId())) {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null
&& (spell.isInstant() || spell.isSorcery())) {
&& spell.isInstantOrSorcery()) {
this.getEffects().setTargetPointer(new FixedTarget(event.getTargetId()));
return true;
}

View file

@ -158,7 +158,7 @@ class ThousandYearStormWatcher extends Watcher {
public void watch(GameEvent event, Game game) {
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
MageObject object = game.getObject(event.getTargetId());
if (object != null && (object.isInstant() || object.isSorcery())) {
if (object != null && object.isInstantOrSorcery()) {
UUID playerId = event.getPlayerId();
List<MageObjectReference> spellsCast = spellsThisTurn.getOrDefault(playerId, new ArrayList<MageObjectReference>());
spellsCast.add(new MageObjectReference(object, game));

View file

@ -67,7 +67,7 @@ class CreaturesYouControlBecomesTargetTriggeredAbility extends TriggeredAbilityI
MageObject object = game.getObject(event.getSourceId());
if (object instanceof Spell) {
Card c = (Spell) object;
if (c.isInstant() || c.isSorcery()) {
if (c.isInstantOrSorcery()) {
if (getTargets().isEmpty()) {
for (Effect effect : getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getTargetId()));

View file

@ -46,7 +46,7 @@ public class PreventDamageByTargetEffect extends PreventionEffectImpl {
if (!this.used && super.applies(event, source, game)) {
MageObject mageObject = game.getObject(event.getSourceId());
if (mageObject != null
&& (mageObject.isInstant() || mageObject.isSorcery())) {
&& mageObject.isInstantOrSorcery()) {
for (Target target : source.getTargets()) {
if (target instanceof TargetSpell) {
if (((TargetSpell) target).getSourceIds().contains(event.getSourceId())) {

View file

@ -23,7 +23,7 @@ public class SupportEffect extends AddCountersTargetEffect {
super(CounterType.P1P1.createInstance(0), StaticValue.get(1));
this.amountSupportTargets = StaticValue.get(amount);
this.otherPermanent = otherPermanent;
if (card.isInstant() || card.isSorcery()) {
if (card.isInstantOrSorcery()) {
card.getSpellAbility().addTarget(new TargetCreaturePermanent(0, amount, new FilterCreaturePermanent("target creatures"), false));
}
staticText = setText();

View file

@ -99,7 +99,7 @@ public class ProtectionAbility extends StaticAbility {
// object is still a card and not a spell yet. So return only if the source object can't be a spell
// otherwise the following FilterObject check will be applied
if (source instanceof StackObject
|| (!source.isInstant() && !source.isSorcery())) {
|| !source.isInstantOrSorcery()) {
return true;
}
}
@ -107,7 +107,7 @@ public class ProtectionAbility extends StaticAbility {
// Emrakul, the Aeons Torn
if (filter instanceof FilterStackObject) {
if (filter.match(source, game)) {
return (!source.isInstantOrSorcery());
return !source.isInstantOrSorcery();
}
}

View file

@ -25,7 +25,7 @@ public class SupportAbility extends EntersBattlefieldTriggeredAbility {
*/
public SupportAbility(Card card, int amount, boolean otherPermanent) {
super(new SupportEffect(card, amount, otherPermanent));
if (!card.isInstant() && !card.isSorcery()) {
if (!card.isInstantOrSorcery()) {
FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures");
if (card.isCreature()) {
filter.add(AnotherPredicate.instance);

View file

@ -44,7 +44,7 @@ class InstantOrSorceryCastManaCondition extends ManaCondition implements Conditi
public boolean apply(Game game, Ability source) {
if (source instanceof SpellAbility) {
MageObject object = game.getObject(source.getSourceId());
return object != null && (object.isInstant() || object.isSorcery());
return object != null && object.isInstantOrSorcery();
}
return false;
}

View file

@ -110,7 +110,7 @@ public final class RateCard {
}
private static int isRemoval(Card card) {
if (card.isEnchantment() || card.isInstant() || card.isSorcery()) {
if (card.isEnchantment() || card.isInstantOrSorcery()) {
for (Ability ability : card.getAbilities()) {
for (Effect effect : ability.getEffects()) {

View file

@ -207,7 +207,7 @@ public class Spell extends StackObjImpl implements Card {
turnController.controlPlayersTurn(game, controller.getId());
}
}
if (this.isInstant() || this.isSorcery()) {
if (this.isInstantOrSorcery()) {
int index = 0;
result = false;
boolean legalParts = false;