From 5221d871a05f49dd6ad7f4fd6b65a16f96e3b4c2 Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 26 Jan 2018 09:07:50 +0300 Subject: [PATCH 1/3] - Only copy the intrinsic abilities in CardState#copyFrom, fixes clone abilities copying too much (e.g. copied tokens from Splinter Twin gaining the copy ability). --- .../src/main/java/forge/game/card/CardState.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index 963380f20dc..e661d81e06a 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -384,16 +384,20 @@ public class CardState extends GameObject { manaAbilities.clear(); for (SpellAbility sa : source.manaAbilities) { - SpellAbility saCopy = sa.copy(); - saCopy.setHostCard(card); // update HostCard - manaAbilities.add(saCopy); + if (sa.isIntrinsic()) { + SpellAbility saCopy = sa.copy(); + saCopy.setHostCard(card); // update HostCard + manaAbilities.add(saCopy); + } } nonManaAbilities.clear(); for (SpellAbility sa : source.nonManaAbilities) { - SpellAbility saCopy = sa.copy(); - saCopy.setHostCard(card); // update HostCard - nonManaAbilities.add(saCopy); + if (sa.isIntrinsic()) { + SpellAbility saCopy = sa.copy(); + saCopy.setHostCard(card); // update HostCard + nonManaAbilities.add(saCopy); + } } setIntrinsicKeywords(source.intrinsicKeywords.getValues()); From b866338197dfd5da5ef282e136002fb63fdaee8e Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 26 Jan 2018 09:07:50 +0300 Subject: [PATCH 2/3] - Only copy the intrinsic abilities in CardState#copyFrom, fixes clone abilities copying too much (e.g. copied tokens from Splinter Twin gaining the copy ability). --- .../src/main/java/forge/game/card/CardState.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index 963380f20dc..e661d81e06a 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -384,16 +384,20 @@ public class CardState extends GameObject { manaAbilities.clear(); for (SpellAbility sa : source.manaAbilities) { - SpellAbility saCopy = sa.copy(); - saCopy.setHostCard(card); // update HostCard - manaAbilities.add(saCopy); + if (sa.isIntrinsic()) { + SpellAbility saCopy = sa.copy(); + saCopy.setHostCard(card); // update HostCard + manaAbilities.add(saCopy); + } } nonManaAbilities.clear(); for (SpellAbility sa : source.nonManaAbilities) { - SpellAbility saCopy = sa.copy(); - saCopy.setHostCard(card); // update HostCard - nonManaAbilities.add(saCopy); + if (sa.isIntrinsic()) { + SpellAbility saCopy = sa.copy(); + saCopy.setHostCard(card); // update HostCard + nonManaAbilities.add(saCopy); + } } setIntrinsicKeywords(source.intrinsicKeywords.getValues()); From 21c4e2eedaef9559f4c42f672eca92ee57bc1893 Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 26 Jan 2018 13:36:48 +0300 Subject: [PATCH 3/3] - Fixed Nissa, Steward of Elements references and AI logic. --- forge-gui/res/cardsfolder/n/nissa_steward_of_elements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/n/nissa_steward_of_elements.txt b/forge-gui/res/cardsfolder/n/nissa_steward_of_elements.txt index 9ee0d2b8728..7fb667cbd16 100644 --- a/forge-gui/res/cardsfolder/n/nissa_steward_of_elements.txt +++ b/forge-gui/res/cardsfolder/n/nissa_steward_of_elements.txt @@ -5,7 +5,7 @@ Loyalty:0 K:etbCounter:LOYALTY:X SVar:X:Count$xPaid A:AB$ Scry | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | ScryNum$ 2 | SpellDescription$ Scry 2. -A:AB$ Dig | Cost$ AddCounter<0/LOYALTY> | Planeswalker$ True | DigNum$ 1 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Land,Creature.cmcLEY | ForceRevealToController$ True | PromptToSkipOptionalAbility$ True | OptionalAbilityPrompt$ Would you like to put the permanent onto the battlefield? | DestinationZone$ Battlefield | LibraryPosition2$ 0 | SpellDescription$ Look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal to the number of loyalty counters on Nissa, Steward of Elements, you may put that card onto the battlefield. +A:AB$ Dig | Cost$ AddCounter<0/LOYALTY> | Planeswalker$ True | DigNum$ 1 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Land,Creature.cmcLEY | ForceRevealToController$ True | PromptToSkipOptionalAbility$ True | References$ Y | AILogic$ AlwaysConfirm | OptionalAbilityPrompt$ Would you like to put the permanent onto the battlefield? | DestinationZone$ Battlefield | LibraryPosition2$ 0 | SpellDescription$ Look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal to the number of loyalty counters on Nissa, Steward of Elements, you may put that card onto the battlefield. A:AB$ Untap | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidTgts$ Land.YouCtrl | TargetMin$ 0 | TargetMax$ 2 | RememberTargets$ True | SubAbility$ Animate | SpellDescription$ Untap up to two target lands you control. They become 5/5 Elemental creatures with flying and haste until end of turn. They're still lands. SVar:Animate:DB$ Animate | Defined$ Remembered | Power$ 5 | Toughness$ 5 | Types$ Creature,Elemental | Keywords$ Flying & Haste SVar:Y:Count$CardCounters.LOYALTY