diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 17109d5d1d7..d582a8ae5e0 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -20,7 +20,6 @@ import forge.game.combat.AttackRequirement; import forge.game.combat.AttackingBand; import forge.game.combat.Combat; import forge.game.combat.CombatUtil; -import forge.game.keyword.Keyword; import forge.game.keyword.KeywordInterface; import forge.game.mana.Mana; import forge.game.player.Player; @@ -637,9 +636,6 @@ public class CardProperty { if (property.endsWith("With") && card.getPairedWith() != source) { return false; } - if (property.endsWith("Soulbond") && !card.getPairedWith().hasKeyword(Keyword.SOULBOND)) { - return false; - } } else if (property.startsWith("Above")) { // "Are Above" Source final CardCollectionView cards = card.getOwner().getCardsIn(ZoneType.Graveyard); if (cards.indexOf(source) >= cards.indexOf(card)) { diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index cc6f51d7f55..0582be7b266 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -812,14 +812,14 @@ public class MagicStack /* extends MyObservable */ implements Iterable players = game.getPlayersInTurnOrder(playerTurn); - for(Player p : players) { + for (Player p : players) { if (p.hasLost()) { continue; } result |= chooseOrderOfSimultaneousStackEntry(p, false); } - for(Player p : players) { + for (Player p : players) { if (p.hasLost()) { continue; } diff --git a/forge-gui/res/cardsfolder/f/flowering_lumberknot.txt b/forge-gui/res/cardsfolder/f/flowering_lumberknot.txt index bfb66c264d9..1766a4211af 100644 --- a/forge-gui/res/cardsfolder/f/flowering_lumberknot.txt +++ b/forge-gui/res/cardsfolder/f/flowering_lumberknot.txt @@ -2,6 +2,6 @@ Name:Flowering Lumberknot ManaCost:3 G Types:Creature Treefolk PT:5/5 -S:Mode$ Continuous | Affected$ Creature.Self+!PairedWithSoulbond | AddHiddenKeyword$ CARDNAME can't attack or block. | Description$ CARDNAME can't attack or block unless it's paired with a creature with soulbond. +S:Mode$ Continuous | Affected$ Creature.Self | IsPresent$ Creature.PairedWith+withSoulbond | PresentCompare$ EQ0 | AddHiddenKeyword$ CARDNAME can't attack or block. | Description$ CARDNAME can't attack or block unless it's paired with a creature with soulbond. AI:RemoveDeck:Random Oracle:Flowering Lumberknot can't attack or block unless it's paired with a creature with soulbond. diff --git a/forge-gui/res/cardsfolder/upcoming/persistent_marshstalker.txt b/forge-gui/res/cardsfolder/upcoming/persistent_marshstalker.txt index d1b4c95b6f4..54c50f67b6c 100644 --- a/forge-gui/res/cardsfolder/upcoming/persistent_marshstalker.txt +++ b/forge-gui/res/cardsfolder/upcoming/persistent_marshstalker.txt @@ -1,7 +1,7 @@ Name:Persistent Marshstalker ManaCost:1 B Types:Creature Rat Berserker -PT:2/1 +PT:3/1 S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | Description$ CARDNAME gets +1/+0 for each other Rat you control. T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YouCtrl+Rat | TriggerZones$ Graveyard | Execute$ TrigChangeZone | CheckSVar$ Y | SVarCompare$ GE7 | TriggerDescription$ Threshold — Whenever you attack with one or more Rats, if seven of more cards are in your graveyard, you may pay {2}{B}. If you do, return CARDNAME from your graveyard to the battlefield tapped and attacking. SVar:TrigChangeZone:AB$ ChangeZone | Cost$ 2 B | Origin$ Graveyard | Destination$ Battlefield | Tapped$ True | Attacking$ True diff --git a/forge-gui/res/cardsfolder/upcoming/thornplate_intimidator.txt b/forge-gui/res/cardsfolder/upcoming/thornplate_intimidator.txt index 8080633dd11..a5ead5cfcd8 100644 --- a/forge-gui/res/cardsfolder/upcoming/thornplate_intimidator.txt +++ b/forge-gui/res/cardsfolder/upcoming/thornplate_intimidator.txt @@ -4,7 +4,7 @@ Types:Creature Rat Rogue PT:4/3 K:Offspring:3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigGenericChoice | TriggerDescription$ When this creature enters, target opponent loses 3 life unless they sacrifice a nonland permanent or discard a card. -SVar:TrigGenericChoice:DB$ GenericChoice | Defined$ Targeted | Choices$ PaySac,PayDiscard | FallbackAbility$ LoseLifeFallback | AILogic$ PayUnlessCost +SVar:TrigGenericChoice:DB$ GenericChoice | ValidTgts$ Opponent | Choices$ PaySac,PayDiscard | FallbackAbility$ LoseLifeFallback | AILogic$ PayUnlessCost SVar:PaySac:DB$ LoseLife | LifeAmount$ 3 | Defined$ Targeted | UnlessCost$ Sac<1/Permanent.nonland/nonland permanent> | UnlessPayer$ Targeted | UnlessAI$ LifeLE3 | SpellDescription$ You lose 3 life unless you sacrifice a nonland permanent SVar:PayDiscard:DB$ LoseLife | LifeAmount$ 3 | Defined$ Targeted | UnlessCost$ Discard<1/Card> | UnlessPayer$ Targeted | UnlessAI$ LifeLE3 | SpellDescription$ You lose 3 life unless you discard a card # TODO: Most likely the ChooseGenericEffect code can be simplified somehow to avoid the necessity of having a dedicated fallback ability