From c3a9ec062c12ca17a419eefa2344640d0d3c127d Mon Sep 17 00:00:00 2001 From: tool4ever Date: Thu, 25 Apr 2024 10:46:01 +0200 Subject: [PATCH] Remove pseudokicker (#5157) --- .../src/main/java/forge/game/ability/AbilityUtils.java | 3 --- forge-game/src/main/java/forge/game/card/Card.java | 5 ----- .../src/main/java/forge/game/card/CardFactoryUtil.java | 6 +----- .../src/main/java/forge/game/card/CardProperty.java | 4 ---- forge-gui/res/cardsfolder/g/graven_archfiend.txt | 2 +- forge-gui/res/cardsfolder/t/taste_of_paradise.txt | 9 ++++----- forge-gui/res/cardsfolder/t/tribal_flames.txt | 2 +- forge-gui/src/main/java/forge/player/HumanPlay.java | 8 -------- .../main/java/forge/player/HumanPlaySpellAbility.java | 2 -- 9 files changed, 7 insertions(+), 34 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 b7a3a4892d3..cc85700139e 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -2065,9 +2065,6 @@ public class AbilityUtils { if (sq[0].contains("TimesKicked")) { return doXMath(isUnlinkedFromCastSA(ctb, c) ? 0 : c.getKickerMagnitude(), expr, c, ctb); } - if (sq[0].contains("TimesPseudokicked")) { - return doXMath(c.getPseudoKickerMagnitude(), expr, c, ctb); - } if (sq[0].contains("TimesMutated")) { return doXMath(c.getTimesMutated(), expr, c, ctb); } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 153c03527e5..d3f93e712a4 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -4631,11 +4631,6 @@ public class Card extends GameEntity implements Comparable, IHasSVars { return hasK1 == isOptionalCostPaid(OptionalCost.Kicker2) ? (hasK1 ? 2 : 0) : 1; } - private int pseudoKickerMagnitude = 0; - public final void addPseudoMultiKickerMagnitude(final int n) { pseudoKickerMagnitude += n; } - public final void setPseudoMultiKickerMagnitude(final int n) { pseudoKickerMagnitude = n; } - public final int getPseudoKickerMagnitude() { return pseudoKickerMagnitude; } - // for cards like Giant Growth, etc. public final int getTempPowerBoost() { int result = 0; 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 b991cb0dc2e..3693d38b235 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3148,11 +3148,7 @@ public class CardFactoryUtil { final String[] n = keyword.split(":"); final SpellAbility sa = card.getFirstSpellAbility(); sa.setMultiKickerManaCost(new ManaCost(new ManaCostParser(n[1]))); - if (keyword.endsWith("Generic")) { - sa.addAnnounceVar("Pseudo-multikicker"); - } else { - sa.addAnnounceVar("Multikicker"); - } + sa.addAnnounceVar("Multikicker"); } else if (keyword.startsWith("Mutate")) { final String[] params = keyword.split(":"); final String cost = params[1]; 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 20c3a3ce852..8a56f6af171 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1831,10 +1831,6 @@ public class CardProperty { if ("1".equals(s) && !card.isOptionalCostPaid(OptionalCost.Kicker1)) return false; if ("2".equals(s) && !card.isOptionalCostPaid(OptionalCost.Kicker2)) return false; } - } else if (property.startsWith("pseudokicked")) { - if (property.equals("pseudokicked")) { - if (!card.isOptionalCostPaid(OptionalCost.Generic)) return false; - } } else if (property.equals("bargained")) { if (card.getCastSA() == null) { return false; diff --git a/forge-gui/res/cardsfolder/g/graven_archfiend.txt b/forge-gui/res/cardsfolder/g/graven_archfiend.txt index df97141467d..1df51b954f2 100644 --- a/forge-gui/res/cardsfolder/g/graven_archfiend.txt +++ b/forge-gui/res/cardsfolder/g/graven_archfiend.txt @@ -4,7 +4,7 @@ Types:Artifact Creature Gargoyle Demon PT:4/5 K:Flying S:Mode$ OptionalCost | EffectZone$ All | ValidCard$ Card.Self | ValidSA$ Spell | Cost$ Sac<1/Creature.nonDemon/non-Demon creature> | Description$ As an additional cost to cast this spell, you may sacrifice a non-Demon creature. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | IsPresent$ Card.Self+pseudokicked | NoResolvingCheck$ True | Execute$ TrigConjure | TriggerDescription$ When CARDNAME enters the battlefield, if its additional cost was paid, conjure a card named Demonic Pact onto the battlefield. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | CheckSVar$ Count$OptionalGenericCostPaid.1.0 | NoResolvingCheck$ True | Execute$ TrigConjure | TriggerDescription$ When CARDNAME enters the battlefield, if its additional cost was paid, conjure a card named Demonic Pact onto the battlefield. SVar:TrigConjure:DB$ MakeCard | Conjure$ True | Name$ Demonic Pact | Zone$ Battlefield DeckHas:Ability$Sacrifice Oracle:As an additional cost to cast this spell, you may sacrifice a non-Demon creature.\nFlying\nWhen Graven Archfiend enters the battlefield, if its additional cost was paid, conjure a card named Demonic Pact onto the battlefield. diff --git a/forge-gui/res/cardsfolder/t/taste_of_paradise.txt b/forge-gui/res/cardsfolder/t/taste_of_paradise.txt index 957505476cc..581fb472155 100644 --- a/forge-gui/res/cardsfolder/t/taste_of_paradise.txt +++ b/forge-gui/res/cardsfolder/t/taste_of_paradise.txt @@ -1,10 +1,9 @@ Name:Taste of Paradise ManaCost:3 G Types:Sorcery -Text:As an additional cost to cast this spell, you may pay {1}{G} any number of times. -K:Multikicker:1 G:Generic -A:SP$ GainLife | LifeAmount$ Y | SpellDescription$ You gain 3 life plus an additional 3 life for each additional {1}{G} you paid. -SVar:Y:SVar$X/Plus.3 -SVar:X:Count$TimesPseudokicked/Times.3 +S:Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Cost$ 1 G | Amount$ PseudoKicker | EffectZone$ All | Description$ As an additional cost to cast this spell, you may pay {1}{G} any number of times. +A:SP$ GainLife | LifeAmount$ SVar$X/Times.3 | Announce$ PseudoKicker | SpellDescription$ You gain 3 life plus an additional 3 life for each additional {1}{G} you paid. +SVar:X:SVar$PseudoKicker/Plus.1 +SVar:PseudoKicker:Number$0 DeckHas:Ability$LifeGain Oracle:As an additional cost to cast this spell, you may pay {1}{G} any number of times.\nYou gain 3 life plus an additional 3 life for each additional {1}{G} you paid. diff --git a/forge-gui/res/cardsfolder/t/tribal_flames.txt b/forge-gui/res/cardsfolder/t/tribal_flames.txt index 6fb99f50293..5049ae11032 100644 --- a/forge-gui/res/cardsfolder/t/tribal_flames.txt +++ b/forge-gui/res/cardsfolder/t/tribal_flames.txt @@ -1,6 +1,6 @@ Name:Tribal Flames ManaCost:1 R Types:Sorcery -A:SP$ DealDamage | ValidTgts$ Any | NumDmg$ X | SpellDescription$ Domain — Tribal Flames deals X damage to any target, where X is the number of basic land types among lands you control. +A:SP$ DealDamage | ValidTgts$ Any | NumDmg$ X | SpellDescription$ Domain — CARDNAME deals X damage to any target, where X is the number of basic land types among lands you control. SVar:X:Count$Domain Oracle:Domain — Tribal Flames deals X damage to any target, where X is the number of basic land types among lands you control. diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index 7eddbbb6036..bb948b3f42a 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -596,14 +596,6 @@ public class HumanPlay { } } - int timesPseudokicked = source.getPseudoKickerMagnitude(); - if (timesPseudokicked > 0 && ability.isAnnouncing("Pseudo-multikicker")) { - ManaCost mkCost = ability.getMultiKickerManaCost(); - for (int i = 0; i < timesPseudokicked; i++) { - toPay.addManaCost(mkCost); - } - } - CardCollection cardsToDelve = new CardCollection(); if (!effect) { CostAdjustment.adjust(toPay, ability, cardsToDelve, false); diff --git a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java index 408c7811c12..4358658fa46 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java +++ b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java @@ -251,8 +251,6 @@ public class HumanPlaySpellAbility { ability.setSVar(varName, value.toString()); if ("Multikicker".equals(varName)) { card.setKickerMagnitude(value); - } else if ("Pseudo-multikicker".equals(varName)) { - card.setPseudoMultiKickerMagnitude(value); } else { card.setSVar(varName, value.toString()); }