Remove pseudokicker (#5157)

This commit is contained in:
tool4ever
2024-04-25 10:46:01 +02:00
committed by GitHub
parent 7e828fd654
commit c3a9ec062c
9 changed files with 7 additions and 34 deletions

View File

@@ -2065,9 +2065,6 @@ public class AbilityUtils {
if (sq[0].contains("TimesKicked")) { if (sq[0].contains("TimesKicked")) {
return doXMath(isUnlinkedFromCastSA(ctb, c) ? 0 : c.getKickerMagnitude(), expr, c, ctb); 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")) { if (sq[0].contains("TimesMutated")) {
return doXMath(c.getTimesMutated(), expr, c, ctb); return doXMath(c.getTimesMutated(), expr, c, ctb);
} }

View File

@@ -4631,11 +4631,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
return hasK1 == isOptionalCostPaid(OptionalCost.Kicker2) ? (hasK1 ? 2 : 0) : 1; 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. // for cards like Giant Growth, etc.
public final int getTempPowerBoost() { public final int getTempPowerBoost() {
int result = 0; int result = 0;

View File

@@ -3148,11 +3148,7 @@ public class CardFactoryUtil {
final String[] n = keyword.split(":"); final String[] n = keyword.split(":");
final SpellAbility sa = card.getFirstSpellAbility(); final SpellAbility sa = card.getFirstSpellAbility();
sa.setMultiKickerManaCost(new ManaCost(new ManaCostParser(n[1]))); sa.setMultiKickerManaCost(new ManaCost(new ManaCostParser(n[1])));
if (keyword.endsWith("Generic")) { sa.addAnnounceVar("Multikicker");
sa.addAnnounceVar("Pseudo-multikicker");
} else {
sa.addAnnounceVar("Multikicker");
}
} else if (keyword.startsWith("Mutate")) { } else if (keyword.startsWith("Mutate")) {
final String[] params = keyword.split(":"); final String[] params = keyword.split(":");
final String cost = params[1]; final String cost = params[1];

View File

@@ -1831,10 +1831,6 @@ public class CardProperty {
if ("1".equals(s) && !card.isOptionalCostPaid(OptionalCost.Kicker1)) return false; if ("1".equals(s) && !card.isOptionalCostPaid(OptionalCost.Kicker1)) return false;
if ("2".equals(s) && !card.isOptionalCostPaid(OptionalCost.Kicker2)) 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")) { } else if (property.equals("bargained")) {
if (card.getCastSA() == null) { if (card.getCastSA() == null) {
return false; return false;

View File

@@ -4,7 +4,7 @@ Types:Artifact Creature Gargoyle Demon
PT:4/5 PT:4/5
K:Flying 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. 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 SVar:TrigConjure:DB$ MakeCard | Conjure$ True | Name$ Demonic Pact | Zone$ Battlefield
DeckHas:Ability$Sacrifice 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. 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.

View File

@@ -1,10 +1,9 @@
Name:Taste of Paradise Name:Taste of Paradise
ManaCost:3 G ManaCost:3 G
Types:Sorcery Types:Sorcery
Text:As an additional cost to cast this spell, you may pay {1}{G} any number of times. 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.
K:Multikicker:1 G:Generic 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.
A:SP$ GainLife | LifeAmount$ Y | SpellDescription$ You gain 3 life plus an additional 3 life for each additional {1}{G} you paid. SVar:X:SVar$PseudoKicker/Plus.1
SVar:Y:SVar$X/Plus.3 SVar:PseudoKicker:Number$0
SVar:X:Count$TimesPseudokicked/Times.3
DeckHas:Ability$LifeGain 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. 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.

View File

@@ -1,6 +1,6 @@
Name:Tribal Flames Name:Tribal Flames
ManaCost:1 R ManaCost:1 R
Types:Sorcery 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 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. Oracle:Domain — Tribal Flames deals X damage to any target, where X is the number of basic land types among lands you control.

View File

@@ -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(); CardCollection cardsToDelve = new CardCollection();
if (!effect) { if (!effect) {
CostAdjustment.adjust(toPay, ability, cardsToDelve, false); CostAdjustment.adjust(toPay, ability, cardsToDelve, false);

View File

@@ -251,8 +251,6 @@ public class HumanPlaySpellAbility {
ability.setSVar(varName, value.toString()); ability.setSVar(varName, value.toString());
if ("Multikicker".equals(varName)) { if ("Multikicker".equals(varName)) {
card.setKickerMagnitude(value); card.setKickerMagnitude(value);
} else if ("Pseudo-multikicker".equals(varName)) {
card.setPseudoMultiKickerMagnitude(value);
} else { } else {
card.setSVar(varName, value.toString()); card.setSVar(varName, value.toString());
} }