some updates

This commit is contained in:
theelk801 2023-08-29 21:11:27 -04:00
parent 46f7f6a422
commit 5c1c02ba9e
16 changed files with 29 additions and 28 deletions

View file

@ -1,7 +1,7 @@
package mage.cards.a;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerOrBattleTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.TransformSourceEffect;
@ -41,9 +41,9 @@ public final class AetherbladeAgent extends TransformingDoubleFacedCard {
this.getRightHalfCard().addAbility(DeathtouchAbility.getInstance());
// Whenever Gitaxian Mindstinger deals combat damage to a player or battle, draw a card.
this.getRightHalfCard().addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
this.getRightHalfCard().addAbility(new DealsCombatDamageToAPlayerOrBattleTriggeredAbility(
new DrawCardSourceControllerEffect(1), false
).setOrBattle(true));
));
}
private AetherbladeAgent(final AetherbladeAgent card) {

View file

@ -3,9 +3,7 @@ package mage.cards.a;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.TransformIntoSourceTriggeredAbility;
import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility;
import mage.abilities.condition.common.EquippedSourceCondition;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
import mage.abilities.effects.common.TransformSourceEffect;
import mage.cards.CardSetInfo;
@ -51,7 +49,6 @@ public final class AvacynianMissionaries extends TransformingDoubleFacedCard {
// When this creature transforms into Lunarch Inquisitors, you may exile another target creature until Lunarch Inquisitors leaves the battlefield.
Ability ability = new TransformIntoSourceTriggeredAbility(new ExileUntilSourceLeavesEffect(), true);
ability.addTarget(new TargetPermanent(filter));
ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
this.getRightHalfCard().addAbility(ability);
}

View file

@ -49,7 +49,7 @@ public final class DennickPiousApprentice extends TransformingDoubleFacedCard {
this.getRightHalfCard().addAbility(new PutCardIntoGraveFromAnywhereAllTriggeredAbility(
new InvestigateEffect(1), false,
StaticFilters.FILTER_CARD_CREATURE, TargetController.ANY
).setTriggersOnce(true).setTriggerPhrase("Whenever one or more creature cards are put into graveyards from anywhere, "));
).setTriggersOnceEachTurn(true).setTriggerPhrase("Whenever one or more creature cards are put into graveyards from anywhere, "));
// If Dennick, Pious Apparition would be put into a graveyard from anywhere, exile it instead.
this.getRightHalfCard().addAbility(DisturbAbility.makeExileAbility());

View file

@ -67,7 +67,7 @@ public final class GarrukRelentless extends TransformingDoubleFacedCard {
this.getRightHalfCard().addAbility(new LoyaltyAbility(new DoIfCostPaid(
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(
StaticFilters.FILTER_CARD_CREATURE_A
), true, true),
), true),
null,
new SacrificeTargetCost(new TargetControlledPermanent(
StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT

View file

@ -95,7 +95,7 @@ class RavagerOfTheFellsEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
game.damagePlayerOrPlaneswalker(source.getTargets().get(0).getFirstTarget(), 2, source.getSourceId(), source, game, false, true);
game.damagePlayerOrPermanent(source.getTargets().get(0).getFirstTarget(), 2, source.getSourceId(), source, game, false, true);
Permanent creature = game.getPermanent(source.getTargets().get(1).getFirstTarget());
if (creature != null) {
creature.damage(2, source.getSourceId(), source, game, false, true);

View file

@ -86,7 +86,7 @@ class LazotepConvertCopyEffect extends OneShotEffect {
public LazotepConvertCopyEffect() {
super(Outcome.Copy);
this.staticText = "as a copy of any creature card in a graveyard, " +
"except it's a 4/4 black Zombie in addition to its other colors and types";
"except it's a 4/4 black Zombie in addition to its other types";
}
public LazotepConvertCopyEffect(final LazotepConvertCopyEffect effect) {
@ -106,8 +106,11 @@ class LazotepConvertCopyEffect extends OneShotEffect {
if (copyFromCard == null) {
return true;
}
Card modifiedCopy = copyFromCard.copy();
//Appliers must be applied before CopyEffect, its applier setting is just for copies of copies
applier.apply(game, modifiedCopy, source, source.getSourceId());
game.addEffect(new CopyEffect(
Duration.Custom, copyFromCard, source.getSourceId()
Duration.Custom, modifiedCopy, source.getSourceId()
).setApplier(applier), source);
return true;
}

View file

@ -61,7 +61,7 @@ public final class InvasionOfErgamon extends TransformingDoubleFacedCard {
// When Truga Cliffcharger enters the battlefield, you may discard a card. If you do, search your library for a land or battle card, reveal it, put it into your hand, then shuffle.
this.getRightHalfCard().addAbility(new EntersBattlefieldTriggeredAbility(
new DoIfCostPaid(new SearchLibraryPutInHandEffect(
new TargetCardInLibrary(filter), true, true
new TargetCardInLibrary(filter), true
), new DiscardCardCost())
));
}

View file

@ -1,7 +1,7 @@
package mage.cards.i;
import mage.abilities.Ability;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerOrBattleTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SiegeAbility;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
@ -47,9 +47,9 @@ public final class InvasionOfKamigawa extends TransformingDoubleFacedCard {
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
// Whenever Rooftop Saboteurs deals combat damage to a player or battle, draw a card.
this.getRightHalfCard().addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
this.getRightHalfCard().addAbility(new DealsCombatDamageToAPlayerOrBattleTriggeredAbility(
new DrawCardSourceControllerEffect(1), false
).setOrBattle(true));
));
}
private InvasionOfKamigawa(final InvasionOfKamigawa card) {

View file

@ -28,7 +28,7 @@ import java.util.UUID;
*/
public final class InvasionOfSegovia extends TransformingDoubleFacedCard {
private static final FilterCard filter = new FilterCard("noncreature spells");
private static final FilterCard filter = new FilterCard("noncreature spells you cast");
static {
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));

View file

@ -146,7 +146,7 @@ class DefiantThundermawEffect extends OneShotEffect {
if (mor == null) {
return false;
}
game.damagePlayerOrPlaneswalker(
game.damagePlayerOrPermanent(
getTargetPointer().getFirst(game, source), 2,
mor.getSourceId(), source, game, false, true
);

View file

@ -133,6 +133,7 @@ class LivingBreakthroughEffect extends ContinuousRuleModifyingEffectImpl {
private LivingBreakthroughEffect(final LivingBreakthroughEffect effect) {
super(effect);
this.manaValue = effect.manaValue;
}
@Override

View file

@ -7,15 +7,15 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.CastCardFromGraveyardThenExileItEffect;
import mage.abilities.effects.common.DrawDiscardControllerEffect;
import mage.abilities.effects.common.ExileAndReturnSourceEffect;
import mage.abilities.effects.common.GetEmblemEffect;
import mage.abilities.effects.common.MayCastTargetThenExileEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardSetInfo;
import mage.cards.TransformingDoubleFacedCard;
import mage.constants.*;
import mage.filter.common.FilterInstantOrSorceryCard;
import mage.filter.StaticFilters;
import mage.game.command.emblems.JaceTelepathUnboundEmblem;
import mage.target.common.TargetCardInYourGraveyard;
import mage.target.common.TargetCreaturePermanent;
@ -56,10 +56,8 @@ public final class JaceVrynsProdigy extends TransformingDoubleFacedCard {
this.getRightHalfCard().addAbility(ability);
// -3: You may cast target instant or sorcery card from your graveyard this turn. If that card would be put into your graveyard this turn, exile it instead.
ability = new LoyaltyAbility(new CastCardFromGraveyardThenExileItEffect()
.setText("You may cast target instant or sorcery card from your graveyard this turn. " +
"If that spell would be put into your graveyard, exile it instead"), -3);
ability.addTarget(new TargetCardInYourGraveyard(new FilterInstantOrSorceryCard()));
ability = new LoyaltyAbility(new MayCastTargetThenExileEffect(Duration.EndOfTurn), -3);
ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_INSTANT_OR_SORCERY_FROM_YOUR_GRAVEYARD));
this.getRightHalfCard().addAbility(ability);
// 9: You get an emblem with "Whenever you cast a spell, target opponent mills five cards."

View file

@ -82,7 +82,7 @@ public final class KytheonHeroOfAkros extends TransformingDoubleFacedCard {
// 0: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(
new GideonBattleForgedToken(), "planeswalker", Duration.EndOfTurn
new GideonBattleForgedToken(), CardType.PLANESWALKER, Duration.EndOfTurn
), 0);
ability.addEffect(new PreventAllDamageToSourceEffect(Duration.EndOfTurn)
.setText("Prevent all damage that would be dealt to him this turn"));

View file

@ -51,7 +51,9 @@ public final class LunarchVeteran extends TransformingDoubleFacedCard {
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
// Whenever another creature you control leaves the battlefield, you gain 1 life.
this.getRightHalfCard().addAbility(new LeavesBattlefieldAllTriggeredAbility(new GainLifeEffect(1), filter));
this.getRightHalfCard().addAbility(new LeavesBattlefieldAllTriggeredAbility(
new GainLifeEffect(1), StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL
));
// If Luminous Phantom would be put into a graveyard from anywhere, exile it instead.
this.getRightHalfCard().addAbility(DisturbAbility.makeExileAbility());

View file

@ -15,7 +15,7 @@ import mage.constants.SubType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterArtifactOrEnchantmentPermanent;
import mage.filter.predicate.permanent.DefendingPlayerControlsPredicate;
import mage.filter.predicate.permanent.DefendingPlayerControlsSourceAttackingPredicate;
import mage.target.TargetPermanent;
import java.util.UUID;
@ -29,7 +29,7 @@ public final class OutlandLiberator extends TransformingDoubleFacedCard {
= new FilterArtifactOrEnchantmentPermanent("artifact or enchantment defending player controls");
static {
filter.add(DefendingPlayerControlsPredicate.instance);
filter.add(DefendingPlayerControlsSourceAttackingPredicate.instance);
}
public OutlandLiberator(UUID ownerId, CardSetInfo setInfo) {

View file

@ -73,7 +73,7 @@ public final class RatchetFieldMedic extends TransformingDoubleFacedCard {
this.getRightHalfCard().addAbility(new DiesCreatureTriggeredAbility(
new TransformSourceEffect().setText("convert {this}"), false, filter
).setTriggerPhrase("Whenever one or more nontoken artifacts you control " +
"are put into a graveyard from the battlefield, ").setTriggersOnce(true));
"are put into a graveyard from the battlefield, ").setTriggersOnceEachTurn(true));
}
private RatchetFieldMedic(final RatchetFieldMedic card) {