mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Remove pseudokicker (#5157)
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user