cleanup related to 634570ac

fix Annie Joins Up, Clara Oswald, Echoes of Eternity in same way
This commit is contained in:
xenohedron 2024-10-11 01:18:49 -04:00
parent 634570ac39
commit 00eeac09bd
7 changed files with 21 additions and 41 deletions

View file

@ -16,6 +16,7 @@ import mage.game.Game;
import mage.game.events.EntersTheBattlefieldEvent;
import mage.game.events.GameEvent;
import mage.game.events.NumberOfTriggersEvent;
import mage.util.CardUtil;
import java.util.UUID;
@ -75,26 +76,25 @@ class AncientGreenwardenEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (!(event instanceof NumberOfTriggersEvent)) {
return false;
}
NumberOfTriggersEvent numberOfTriggersEvent = (NumberOfTriggersEvent) event;
// Only triggers for the source controller
if (!source.isControlledBy(event.getPlayerId())) {
return false;
}
GameEvent sourceEvent = numberOfTriggersEvent.getSourceEvent();
GameEvent sourceEvent = ((NumberOfTriggersEvent) event).getSourceEvent();
// Only EtB triggers of lands
if (sourceEvent == null
|| sourceEvent.getType() != GameEvent.EventType.ENTERS_THE_BATTLEFIELD
|| !(sourceEvent instanceof EntersTheBattlefieldEvent)
|| !((EntersTheBattlefieldEvent) sourceEvent).getTarget().isLand(game)) {
return false;
}
return game.getPermanent(numberOfTriggersEvent.getSourceId()) != null;
// Only for triggers of permanents
return game.getPermanent(event.getSourceId()) != null;
}
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
event.setAmount(event.getAmount() + 1);
event.setAmount(CardUtil.overflowInc(event.getAmount(), 1));
return false;
}
}

View file

@ -12,7 +12,6 @@ import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.NumberOfTriggersEvent;
import mage.game.permanent.Permanent;
import mage.target.TargetPermanent;
import mage.util.CardUtil;
@ -79,10 +78,7 @@ class AnnieJoinsUpEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (!(event instanceof NumberOfTriggersEvent)) {
return false;
}
Permanent permanent = game.getPermanent(((NumberOfTriggersEvent) event).getSourceId());
Permanent permanent = game.getPermanentOrLKIBattlefield(event.getSourceId());
return permanent != null
&& permanent.isControlledBy(source.getControllerId())
&& permanent.isLegendary(game)

View file

@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.NumberOfTriggersEvent;
import mage.game.permanent.Permanent;
import mage.util.CardUtil;
@ -75,10 +74,7 @@ class ClaraOswaldEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (!(event instanceof NumberOfTriggersEvent)) {
return false;
}
Permanent permanent = game.getPermanent(((NumberOfTriggersEvent) event).getSourceId());
Permanent permanent = game.getPermanentOrLKIBattlefield(event.getSourceId());
return permanent != null
&& permanent.isControlledBy(source.getControllerId())
&& permanent.hasSubtype(SubType.DOCTOR, game);

View file

@ -12,7 +12,6 @@ import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.ColorlessPredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.NumberOfTriggersEvent;
import mage.game.permanent.Permanent;
import mage.game.stack.Spell;
import mage.util.CardUtil;
@ -78,11 +77,10 @@ class EchoesOfEternityEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (!(event instanceof NumberOfTriggersEvent)
|| !source.isControlledBy(game.getControllerId(event.getSourceId()))) {
if (!source.isControlledBy(event.getPlayerId())) {
return false;
}
Permanent permanent = game.getPermanent(event.getSourceId());
Permanent permanent = game.getPermanentOrLKIBattlefield(event.getSourceId());
if (permanent != null && permanent.getColor(game).isColorless()
&& !permanent.getId().equals(source.getSourceId())) {
return true;

View file

@ -13,8 +13,8 @@ import mage.constants.Outcome;
import mage.constants.SubType;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.NumberOfTriggersEvent;
import mage.game.permanent.Permanent;
import mage.util.CardUtil;
import java.util.UUID;
@ -72,10 +72,7 @@ class HarmonicProdigyEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (!(event instanceof NumberOfTriggersEvent)) {
return false;
}
Permanent permanent = game.getPermanentOrLKIBattlefield(((NumberOfTriggersEvent) event).getSourceId());
Permanent permanent = game.getPermanentOrLKIBattlefield(event.getSourceId());
return permanent != null
&& permanent.isControlledBy(source.getControllerId())
&& (permanent.hasSubtype(SubType.SHAMAN, game)
@ -85,7 +82,7 @@ class HarmonicProdigyEffect extends ReplacementEffectImpl {
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
event.setAmount(event.getAmount() + 1);
event.setAmount(CardUtil.overflowInc(event.getAmount(), 1));
return false;
}
}

View file

@ -18,8 +18,8 @@ import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.NumberOfTriggersEvent;
import mage.game.permanent.Permanent;
import mage.util.CardUtil;
import java.util.UUID;
@ -90,14 +90,10 @@ class RoamingThroneReplacementEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (!(event instanceof NumberOfTriggersEvent)) {
return false;
}
NumberOfTriggersEvent numberOfTriggersEvent = (NumberOfTriggersEvent) event;
if (!source.isControlledBy(event.getPlayerId())) {
return false;
}
Permanent permanentSource = game.getPermanentOrLKIBattlefield(numberOfTriggersEvent.getSourceId());
Permanent permanentSource = game.getPermanentOrLKIBattlefield(event.getSourceId());
return permanentSource != null
&& filter.match(permanentSource, source.getControllerId(), source, game)
&& permanentSource.hasSubtype(ChooseCreatureTypeEffect.getChosenCreatureType(source.getSourceId(), game), game);
@ -105,7 +101,7 @@ class RoamingThroneReplacementEffect extends ReplacementEffectImpl {
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
event.setAmount(event.getAmount() + 1);
event.setAmount(CardUtil.overflowInc(event.getAmount(), 1));
return false;
}
}

View file

@ -8,6 +8,7 @@ import mage.game.Game;
import mage.game.events.EntersTheBattlefieldEvent;
import mage.game.events.GameEvent;
import mage.game.events.NumberOfTriggersEvent;
import mage.util.CardUtil;
/**
* @author TheElk801
@ -36,15 +37,11 @@ public class AdditionalTriggerControlledETBReplacementEffect extends Replacement
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (!(event instanceof NumberOfTriggersEvent)) {
return false;
}
NumberOfTriggersEvent numberOfTriggersEvent = (NumberOfTriggersEvent) event;
// Only triggers for the source controller
if (!source.isControlledBy(event.getPlayerId())) {
return false;
}
GameEvent sourceEvent = numberOfTriggersEvent.getSourceEvent();
GameEvent sourceEvent = ((NumberOfTriggersEvent) event).getSourceEvent();
// Only EtB triggers
if (sourceEvent == null
|| sourceEvent.getType() != GameEvent.EventType.ENTERS_THE_BATTLEFIELD
@ -52,12 +49,12 @@ public class AdditionalTriggerControlledETBReplacementEffect extends Replacement
return false;
}
// Only for triggers of permanents
return game.getPermanent(numberOfTriggersEvent.getSourceId()) != null;
return game.getPermanent(event.getSourceId()) != null;
}
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
event.setAmount(event.getAmount() + 1);
event.setAmount(CardUtil.overflowInc(event.getAmount(), 1));
return false;
}
}