From 587cb5ba8ba59d441f48d306c4ce3eb3522884f6 Mon Sep 17 00:00:00 2001 From: Evan Kranzler <theelk801@gmail.com> Date: Fri, 20 Apr 2018 11:24:50 -0400 Subject: [PATCH] updated some more cards --- .../src/mage/cards/a/AvacynGuardianAngel.java | 47 ++++++++++--------- .../src/mage/cards/c/ChandraPyromaster.java | 30 +++++++----- .../src/mage/cards/c/ChandraRoaringFlame.java | 4 +- .../src/mage/cards/s/SoulOfShandalar.java | 5 +- 4 files changed, 44 insertions(+), 42 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java b/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java index fbfa09f67f..5ac6231748 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java +++ b/Mage.Sets/src/mage/cards/a/AvacynGuardianAngel.java @@ -47,8 +47,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; -import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import mage.target.common.TargetPlayerOrPlaneswalker; /** * @@ -57,13 +57,13 @@ import mage.target.common.TargetCreaturePermanent; public class AvacynGuardianAngel extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature"); - + static { filter.add(new AnotherPredicate()); } - + public AvacynGuardianAngel(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}{W}"); this.addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.ANGEL); @@ -75,17 +75,17 @@ public class AvacynGuardianAngel extends CardImpl { // Vigilance this.addAbility(VigilanceAbility.getInstance()); // {1}{W}: Prevent all damage that would be dealt to another target creature this turn by sources of the color of your choice. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new AvacynGuardianAngelPreventToCreatureEffect(), + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AvacynGuardianAngelPreventToCreatureEffect(), new ManaCostsImpl<>("{1}{W}")); - ability.addTarget(new TargetCreaturePermanent(filter)); + ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); - + // {5}{W}{W}: Prevent all damage that would be dealt to target player this turn by sources of the color of your choice. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new AvacynGuardianAngelPreventToPlayerEffect(), + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AvacynGuardianAngelPreventToPlayerEffect(), new ManaCostsImpl<>("{5}{W}{W}")); - ability.addTarget(new TargetPlayer()); + ability.addTarget(new TargetPlayerOrPlaneswalker()); this.addAbility(ability); } @@ -100,21 +100,21 @@ public class AvacynGuardianAngel extends CardImpl { } class AvacynGuardianAngelPreventToCreatureEffect extends OneShotEffect { - + AvacynGuardianAngelPreventToCreatureEffect() { super(Outcome.PreventDamage); this.staticText = "Prevent all damage that would be dealt to another target creature this turn by sources of the color of your choice"; } - + AvacynGuardianAngelPreventToCreatureEffect(final AvacynGuardianAngelPreventToCreatureEffect effect) { super(effect); } - + @Override public AvacynGuardianAngelPreventToCreatureEffect copy() { return new AvacynGuardianAngelPreventToCreatureEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); @@ -130,7 +130,7 @@ class AvacynGuardianAngelPreventToCreatureEffect extends OneShotEffect { } class AvacynGuardianAngelPreventToCreaturePreventionEffect extends PreventionEffectImpl { - + private final ObjectColor color; AvacynGuardianAngelPreventToCreaturePreventionEffect(ObjectColor color) { @@ -169,21 +169,21 @@ class AvacynGuardianAngelPreventToCreaturePreventionEffect extends PreventionEff } class AvacynGuardianAngelPreventToPlayerEffect extends OneShotEffect { - + AvacynGuardianAngelPreventToPlayerEffect() { super(Outcome.PreventDamage); - this.staticText = "Prevent all damage that would be dealt to target player this turn by sources of the color of your choice"; + this.staticText = "Prevent all damage that would be dealt to target player or planeswalker this turn by sources of the color of your choice"; } - + AvacynGuardianAngelPreventToPlayerEffect(final AvacynGuardianAngelPreventToPlayerEffect effect) { super(effect); } - + @Override public AvacynGuardianAngelPreventToPlayerEffect copy() { return new AvacynGuardianAngelPreventToPlayerEffect(this); } - + @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); @@ -199,7 +199,7 @@ class AvacynGuardianAngelPreventToPlayerEffect extends OneShotEffect { } class AvacynGuardianAngelPreventToPlayerPreventionEffect extends PreventionEffectImpl { - + private final ObjectColor color; AvacynGuardianAngelPreventToPlayerPreventionEffect(ObjectColor color) { @@ -220,7 +220,8 @@ class AvacynGuardianAngelPreventToPlayerPreventionEffect extends PreventionEffec @Override public boolean applies(GameEvent event, Ability source, Game game) { if (super.applies(event, source, game)) { - if (event.getType() == GameEvent.EventType.DAMAGE_PLAYER + if ((event.getType() == GameEvent.EventType.DAMAGE_PLAYER + || event.getType() == GameEvent.EventType.DAMAGED_PLANESWALKER) && event.getTargetId().equals(getTargetPointer().getFirst(game, source))) { MageObject sourceObject = game.getObject(event.getSourceId()); if (sourceObject != null && sourceObject.getColor(game).shares(this.color)) { diff --git a/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java b/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java index 2ad8974aa9..7ada58cf61 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java +++ b/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java @@ -51,7 +51,7 @@ import mage.players.Player; import mage.target.Target; import mage.target.TargetCard; import mage.target.TargetPermanent; -import mage.target.TargetPlayer; +import mage.target.common.TargetPlayerOrPlaneswalker; import mage.target.targetpointer.FixedTarget; /** @@ -68,7 +68,7 @@ public class ChandraPyromaster extends CardImpl { // +1: Chandra, Pyromaster deals 1 damage to target player and 1 damage to up to one target creature that player controls. That creature can't block this turn. LoyaltyAbility ability1 = new LoyaltyAbility(new ChandraPyromasterEffect1(), 1); - Target target1 = new TargetPlayer(); + Target target1 = new TargetPlayerOrPlaneswalker(); ability1.addTarget(target1); ability1.addTarget(new ChandraPyromasterTarget()); this.addAbility(ability1); @@ -97,7 +97,7 @@ class ChandraPyromasterEffect1 extends OneShotEffect { public ChandraPyromasterEffect1() { super(Outcome.Damage); - staticText = "{this} deals 1 damage to target player and 1 damage to up to one target creature that player controls. That creature can't block this turn"; + staticText = "{this} deals 1 damage to target player or planeswalker and 1 damage to up to one target creature that player or that planeswalker’s controller controls. That creature can’t block this turn."; } public ChandraPyromasterEffect1(final ChandraPyromasterEffect1 effect) { @@ -111,10 +111,7 @@ class ChandraPyromasterEffect1 extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getTargets().get(0).getFirstTarget()); - if (player != null) { - player.damage(1, source.getSourceId(), game, false, true); - } + game.damagePlayerOrPlaneswalker(source.getTargets().get(0).getFirstTarget(), 1, source.getSourceId(), game, false, true); Permanent creature = game.getPermanent(source.getTargets().get(1).getFirstTarget()); if (creature != null) { creature.damage(1, source.getSourceId(), game, false, true); @@ -129,7 +126,7 @@ class ChandraPyromasterEffect1 extends OneShotEffect { class ChandraPyromasterTarget extends TargetPermanent { public ChandraPyromasterTarget() { - super(0, 1, new FilterCreaturePermanent("creature that the targeted player controls"), false); + super(0, 1, new FilterCreaturePermanent("creature that the targeted player or planeswalker's controller controls"), false); } public ChandraPyromasterTarget(final ChandraPyromasterTarget target) { @@ -138,7 +135,11 @@ class ChandraPyromasterTarget extends TargetPermanent { @Override public boolean canTarget(UUID id, Ability source, Game game) { - UUID firstTarget = source.getFirstTarget(); + Player player = game.getPlayerOrPlaneswalkerController(source.getFirstTarget()); + if (player == null) { + return false; + } + UUID firstTarget = player.getId(); Permanent permanent = game.getPermanent(id); if (firstTarget != null && permanent != null && permanent.getControllerId().equals(firstTarget)) { return super.canTarget(id, source, game); @@ -163,10 +164,13 @@ class ChandraPyromasterTarget extends TargetPermanent { if (object instanceof StackObject) { UUID playerId = ((StackObject) object).getStackAbility().getFirstTarget(); - for (UUID targetId : availablePossibleTargets) { - Permanent permanent = game.getPermanent(targetId); - if (permanent != null && permanent.getControllerId().equals(playerId)) { - possibleTargets.add(targetId); + Player player = game.getPlayerOrPlaneswalkerController(playerId); + if (player != null) { + for (UUID targetId : availablePossibleTargets) { + Permanent permanent = game.getPermanent(targetId); + if (permanent != null && permanent.getControllerId().equals(player.getId())) { + possibleTargets.add(targetId); + } } } } diff --git a/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java b/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java index 3f3fda5930..f048556ec5 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java +++ b/Mage.Sets/src/mage/cards/c/ChandraRoaringFlame.java @@ -44,8 +44,8 @@ import mage.constants.SuperType; import mage.game.Game; import mage.game.command.emblems.ChandraRoaringFlameEmblem; import mage.players.Player; -import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import mage.target.common.TargetPlayerOrPlaneswalker; /** * @@ -66,7 +66,7 @@ public class ChandraRoaringFlame extends CardImpl { // +1: Chandra, Roaring Flame deals 2 damage to target player. LoyaltyAbility loyaltyAbility = new LoyaltyAbility(new DamageTargetEffect(2), 1); - loyaltyAbility.addTarget(new TargetPlayer()); + loyaltyAbility.addTarget(new TargetPlayerOrPlaneswalker()); this.addAbility(loyaltyAbility); //-2: Chandra, Roaring Flame deals 2 damage to target creature. diff --git a/Mage.Sets/src/mage/cards/s/SoulOfShandalar.java b/Mage.Sets/src/mage/cards/s/SoulOfShandalar.java index 556d6b511c..8d5f50803e 100644 --- a/Mage.Sets/src/mage/cards/s/SoulOfShandalar.java +++ b/Mage.Sets/src/mage/cards/s/SoulOfShandalar.java @@ -110,10 +110,7 @@ class SoulOfShandalarEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getTargets().get(0).getFirstTarget()); - if (player != null) { - player.damage(3, source.getSourceId(), game, false, true); - } + game.damagePlayerOrPlaneswalker(source.getTargets().get(0).getFirstTarget(), 3, source.getSourceId(), game, false, true); Permanent creature = game.getPermanent(source.getTargets().get(1).getFirstTarget()); if (creature != null) { creature.damage(3, source.getSourceId(), game, false, true);