From ae382760d089a4050c64e3a5c0c430f20f5300e7 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 8 May 2014 04:56:36 +0000 Subject: [PATCH] - Fixed Bronze Horse - Fixed a crash when Precursor Golem is targeted with an Electrolyze --- .../forge/game/ability/effects/CopySpellAbilityEffect.java | 4 ++-- .../src/main/java/forge/game/spellability/SpellAbility.java | 6 +++++- .../java/forge/game/spellability/TargetRestrictions.java | 5 +++++ forge-gui/res/cardsfolder/b/bronze_horse.txt | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java index 252f29e1d8f..37a51cb803d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java @@ -101,7 +101,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { mayChoseNewTargets = false; for (GameObject o : candidates) { SpellAbility copy = CardFactory.copySpellAbilityAndSrcCard(card, chosenSA.getHostCard(), chosenSA, true); - copy.resetFirstTarget(o); + copy.resetFirstTarget(o, chosenSA); copies.add(copy); } } else {// Precursor Golem, Ink-Treader Nephilim @@ -118,7 +118,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { mayChoseNewTargets = false; for (Card c : valid) { SpellAbility copy = CardFactory.copySpellAbilityAndSrcCard(card, chosenSA.getHostCard(), chosenSA, true); - copy.resetFirstTarget(c); + copy.resetFirstTarget(c, chosenSA); copies.add(copy); } } diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index ab0c9811718..5b28a8aff7d 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -1409,12 +1409,16 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit * Reset the first target. * */ - public void resetFirstTarget(GameObject c) { + public void resetFirstTarget(GameObject c, SpellAbility originalSA) { SpellAbility sa = this; while (sa != null) { if (sa.targetRestricions != null) { sa.targetChosen = new TargetChoices(); sa.targetChosen.add(c); + if (!originalSA.targetRestricions.getDividedMap().isEmpty()) { + sa.targetRestricions.addDividedAllocation(c, + Iterables.getFirst(originalSA.targetRestricions.getDividedMap().values(), null)); + } break; } sa = sa.subAbility; diff --git a/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java b/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java index 4dbfe146343..05c2ada35f6 100644 --- a/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java +++ b/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java @@ -709,4 +709,9 @@ public class TargetRestrictions { public int getDividedValue(Object tgt) { return this.dividedMap.get(tgt); } + + public HashMap getDividedMap() { + return this.dividedMap; + } + } diff --git a/forge-gui/res/cardsfolder/b/bronze_horse.txt b/forge-gui/res/cardsfolder/b/bronze_horse.txt index 5a85bd8671a..fefe6fb336b 100644 --- a/forge-gui/res/cardsfolder/b/bronze_horse.txt +++ b/forge-gui/res/cardsfolder/b/bronze_horse.txt @@ -3,7 +3,7 @@ ManaCost:7 Types:Artifact Creature Horse PT:4/4 K:Trample -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ PreventAllDamageBy Spell.IsTargetingSource | CheckSVar$ X | SVarCompare$ GE1 | Description$ Prevent all damage that would be dealt to CARDNAME by spells that target it. +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ PreventAllDamageBy Spell.IsTargetingSource | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you control another creature, prevent all damage that would be dealt to CARDNAME by spells that target it. SVar:X:Count$Valid Creature.YouCtrl+Other SVar:BuffedBy:Creature SVar:Picture:http://www.wizards.com/global/images/magic/general/bronze_horse.jpg