diff --git a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java index 20ab2ee1a5c..8293884e698 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java @@ -33,7 +33,7 @@ public class CharmEffect extends SpellAbilityEffect { List toRemove = Lists.newArrayList(); for (AbilitySub ch : choices) { // 603.3c If one of the modes would be illegal, that mode can't be chosen. - if ((ch.usesTargeting() && ch.isTrigger() && ch.getMinTargets() > 0 && + if ((ch.usesTargeting() && ch.getMinTargets() > 0 && ch.getTargetRestrictions().getNumCandidates(ch, true) == 0) || (restriction != null && restriction.contains(ch.getDescription()))) { toRemove.add(ch); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index c0d23476463..704df3893c6 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -147,7 +147,7 @@ public class CountersPutEffect extends SpellAbilityEffect { } } else if (sa.hasParam("Choices")) { int n = AbilityUtils.calculateAmount(card, sa.getParamOrDefault("ChoiceAmount", "1"), sa); - String what = (sa.getParamOrDefault("ChoicesDesc", sa.getParam("Choices"))); + String what = sa.getParamOrDefault("ChoicesDesc", sa.getParam("Choices")); stringBuilder.append(Lang.nounWithNumeralExceptOne(n, what)); } else { final List targetCards = SpellAbilityEffect.getTargetCards(sa); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index d20a7812668..ca849719b27 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3028,7 +3028,7 @@ public class CardFactoryUtil { // because it doesn't work other wise c.setForetoldCostByEffect(true); } - String sb = TextUtil.concatWithSpace(getActivatingPlayer().toString(),"has foretold."); + String sb = TextUtil.concatWithSpace(getActivatingPlayer().toString(), "has foretold."); game.getGameLog().add(GameLogEntryType.STACK_RESOLVE, sb); game.fireEvent(new GameEventCardForetold(getActivatingPlayer())); } diff --git a/forge-gui/res/cardsfolder/upcoming/case_of_the_gorgons_kiss.txt b/forge-gui/res/cardsfolder/upcoming/case_of_the_gorgons_kiss.txt index 445bc155e0c..2bb4e5148b9 100644 --- a/forge-gui/res/cardsfolder/upcoming/case_of_the_gorgons_kiss.txt +++ b/forge-gui/res/cardsfolder/upcoming/case_of_the_gorgons_kiss.txt @@ -3,7 +3,7 @@ ManaCost:B Types:Enchantment Case T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When this Case enters the battlefield, destroy up to one target creature that was dealt damage this turn. SVar:TrigDestroy:DB$ Destroy | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.wasDealtDamageThisTurn | TgtPrompt$ Select up to one target creature that was dealt damage this turn -T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ Count$ThisTurnEntered_Graveyard_Creature | SVarCompare$ GE3 | IsPresent$ Card.Self+IsUnsolved | Execute$ Solved | TriggerDescription$ To solve – Three or more creature cards were put into graveyards from anywhere this turn. (If unsolved, solve at the beginning of your end step.) +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ Count$ThisTurnEntered_Graveyard_Creature.nonToken | SVarCompare$ GE3 | IsPresent$ Card.Self+IsUnsolved | Execute$ Solved | TriggerDescription$ To solve – Three or more creature cards were put into graveyards from anywhere this turn. (If unsolved, solve at the beginning of your end step.) SVar:Solved:DB$ AlterAttribute | Defined$ Self | Attributes$ Solved S:Mode$ Continuous | Affected$ Card.Self+IsSolved | AddType$ Creature & Gorgon | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Deathtouch & Lifelink | Description$ Solved – This Case is a 4/4 Gorgon creature with deathtouch and lifelink in addition to its other types. DeckHints:Ability$Sacrifice|Discard diff --git a/forge-gui/res/cardsfolder/upcoming/conspiracy_unraveler.txt b/forge-gui/res/cardsfolder/upcoming/conspiracy_unraveler.txt index f71b290c2c8..78f56bbb332 100644 --- a/forge-gui/res/cardsfolder/upcoming/conspiracy_unraveler.txt +++ b/forge-gui/res/cardsfolder/upcoming/conspiracy_unraveler.txt @@ -3,6 +3,6 @@ ManaCost:5 U U Types:Creature Sphinx Detective PT:6/6 K:Flying -S:Mode$ Continuous | Affected$ Card.YouCtrl+nonLand | MayPlay$ True | MayPlayAltManaCost$ CollectEvidence<10> | AffectedZone$ Hand,Graveyard,Exile,Library,Command | Description$ You may collect evidence 10 rather than pay the mana cost for spells that you cast. (To collect evidence 10, exile cards with total mana value 10 or greater from your graveyard.) +S:Mode$ Continuous | Affected$ Card.YouCtrl+nonLand | MayPlay$ True | MayPlayAltManaCost$ CollectEvidence<10> | MayPlayDontGrantZonePermissions$ True | AffectedZone$ Hand,Graveyard,Exile,Library,Command | Description$ You may collect evidence 10 rather than pay the mana cost for spells that you cast. (To collect evidence 10, exile cards with total mana value 10 or greater from your graveyard.) DeckHints:Ability$Graveyard|Mill|Discard|Dredge Oracle:Flying\nYou may collect evidence 10 rather than pay the mana cost for spells that you cast. (To collect evidence 10, exile cards with total mana value 10 or greater from your graveyard.) diff --git a/forge-gui/res/cardsfolder/upcoming/kellan_inquisitive_prodigy_tail_the_suspect.txt b/forge-gui/res/cardsfolder/upcoming/kellan_inquisitive_prodigy_tail_the_suspect.txt index 1ceceec2022..4077688a561 100644 --- a/forge-gui/res/cardsfolder/upcoming/kellan_inquisitive_prodigy_tail_the_suspect.txt +++ b/forge-gui/res/cardsfolder/upcoming/kellan_inquisitive_prodigy_tail_the_suspect.txt @@ -5,7 +5,7 @@ PT:3/4 K:Flying K:Vigilance T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ Whenever CARDNAME attacks, destroy up to one target artifact. If you controlled that permanent, draw a card. -SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target artifact | RememberLKI$ True | SubAbility$ DBDraw +SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target artifact | RememberLKI$ True | AlwaysRemember$ True | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | ConditionDefined$ RememberedLKI | ConditionPresent$ Card.YouCtrl | NumCards$ 1 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True DeckHas:Ability$Investigate|Token & Type$Artifact diff --git a/forge-gui/res/cardsfolder/upcoming/teysa_opulent_oligarch.txt b/forge-gui/res/cardsfolder/upcoming/teysa_opulent_oligarch.txt index 6e1931b3793..44e9d076f81 100644 --- a/forge-gui/res/cardsfolder/upcoming/teysa_opulent_oligarch.txt +++ b/forge-gui/res/cardsfolder/upcoming/teysa_opulent_oligarch.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Advisor PT:2/3 K:Deathtouch T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigInvestigate | TriggerDescription$ At the beginning of your end step, investigate for each opponent who lost life this turn. -SVar:TrigInvestigate:DB$ Investigate | Num$ PlayerCountOpponents$HasPropertyLostLifeThisTurn +SVar:TrigInvestigate:DB$ Investigate | Num$ PlayerCountRegisteredOpponents$HasPropertyLostLifeThisTurn T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Clue.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | ActivationLimit$ 1 | TriggerDescription$ Whenever a Clue you control is put into a graveyard from the battlefield, create a 1/1 white and black Spirit creature token with flying. This ability triggers only once each turn. SVar:TrigToken:DB$ Token | TokenScript$ wb_1_1_spirit_flying DeckHas:Ability$Investigate|Token|Sacrifice & Type$Artifact|Clue|Spirit