From a27bd64d5dd49d03afbddb64d66ddb6d812d6f7a Mon Sep 17 00:00:00 2001 From: swordshine Date: Fri, 16 Jan 2015 07:26:08 +0000 Subject: [PATCH] - FRF: Added Channel Harm --- .../src/main/java/forge/game/ability/AbilityUtils.java | 10 ++++++---- .../forge/game/ability/effects/DamageDealEffect.java | 8 ++++++++ forge-gui/res/cardsfolder/p/pyrrhic_revival.txt | 9 ++------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 5c8e21b84b4..205689b489f 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -275,14 +275,16 @@ public class AbilityUtils { String validDefined = defined.substring("Valid ".length()); list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), validDefined.split(","), hostCard.getController(), hostCard); } - else if (defined.startsWith("ValidHand ")) { - String validDefined = defined.substring("ValidHand ".length()); - list = CardLists.getValidCards(game.getCardsIn(ZoneType.Hand), validDefined.split(","), hostCard.getController(), hostCard); - } else if (defined.startsWith("ValidAll ")) { String validDefined = defined.substring("ValidAll ".length()); list = CardLists.getValidCards(game.getCardsInGame(), validDefined.split(","), hostCard.getController(), hostCard); } + else if (defined.startsWith("Valid")) { + String[] s = defined.split(" "); + String zone = s[0].substring("Valid".length()); + String validDefined = s[1]; + list = CardLists.getValidCards(game.getCardsIn(ZoneType.smartValueOf(zone)), validDefined.split(","), hostCard.getController(), hostCard); + } else { return cards; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java index 669f0f7385b..bb6b92de492 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java @@ -15,6 +15,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import com.google.common.collect.Iterables; + public class DamageDealEffect extends SpellAbilityEffect { /* (non-Javadoc) @@ -74,6 +76,12 @@ public class DamageDealEffect extends SpellAbilityEffect { final boolean divideOnResolution = sa.hasParam("DividerOnResolution"); List tgts = getTargets(sa); + if (sa.hasParam("OptionalDecider")) { + Player decider = Iterables.getFirst(AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("OptionalDecider"), sa), null); + if (decider != null && !decider.getController().confirmAction(sa, null, "Do you want to deal " + dmg + " damage to " + tgts + " ?")) { + return; + } + } // Right now for Fireball, maybe later for other stuff if (sa.hasParam("DivideEvenly")) { diff --git a/forge-gui/res/cardsfolder/p/pyrrhic_revival.txt b/forge-gui/res/cardsfolder/p/pyrrhic_revival.txt index 7eb39336a9d..b296f26fdc2 100644 --- a/forge-gui/res/cardsfolder/p/pyrrhic_revival.txt +++ b/forge-gui/res/cardsfolder/p/pyrrhic_revival.txt @@ -1,12 +1,7 @@ Name:Pyrrhic Revival ManaCost:3 WB WB WB Types:Sorcery -A:SP$ Effect | Cost$ 3 WB WB WB | Name$ Pyrrhic Revival Effect | ReplacementEffects$ PyrrhicEvent | Triggers$ RemoveEffect | SVars$ PyrrhicAddExtraCounter,PyrrhicMoveToBattlefield,PyrrhicCleanup | References$ PyrrhicAddExtraCounter,PyrrhicMoveToBattlefield,PyrrhicCleanup | ImprintCards$ Self | SubAbility$ DBChangeZoneAll | SpellDescription$ Each player returns each creature card from his or her graveyard to the battlefield with an additional -1/-1 counter on it. -SVar:PyrrhicEvent:Event$ Moved | Origin$ Graveyard | Destination$ Battlefield | ValidCard$ Creature | ReplaceWith$ PyrrhicAddExtraCounter | Description$ Each creature enters the battlefield with an additional -1/-1 counters on it. -SVar:PyrrhicAddExtraCounter:AB$ PutCounter | Cost$ 0 | ETB$ True | Defined$ ReplacedCard | CounterType$ M1M1 | CounterNum$ 1 | SubAbility$ PyrrhicMoveToBattlefield -SVar:PyrrhicMoveToBattlefield:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ ReplacedCard -SVar:RemoveEffect:Mode$ ChangesZone | Origin$ Stack | Destination$ Any | Static$ True | ValidCard$ Card.IsImprinted | Execute$ PyrrhicCleanup -SVar:PyrrhicCleanup:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:DBChangeZoneAll:DB$ ChangeZoneAll | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature +A:SP$ ChangeZone | Cost$ 3 WB WB WB | Origin$ Graveyard | Destination$ Battlefield | WithCounters$ M1M1_1 | Defined$ ValidGraveyard Creature | SpellDescription$ Each player returns each creature card from his or her graveyard to the battlefield with an additional -1/-1 counter on it. +SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/pyrrhic_revival.jpg Oracle:Each player returns each creature card from his or her graveyard to the battlefield with an additional -1/-1 counter on it.