mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
fix Cycling for Zero with xPaid, also do Zaxara with xPaid
This commit is contained in:
committed by
Michael Kamensky
parent
0bb42a2794
commit
b5deb0b252
@@ -27,7 +27,6 @@ public enum AbilityKey {
|
||||
Blockers("Blockers"),
|
||||
CastSA("CastSA"),
|
||||
CastSACMC("CastSACMC"),
|
||||
CastSAX("CastSAX"),
|
||||
Card("Card"),
|
||||
Cards("Cards"),
|
||||
CardLKI("CardLKI"),
|
||||
|
||||
@@ -1586,13 +1586,13 @@ public class AbilityUtils {
|
||||
// If the chosen creature has X in its mana cost, that X is considered to be 0.
|
||||
// The value of X in Altered Ego’s last ability will be whatever value was chosen for X while casting Altered Ego.
|
||||
if (sa.getOriginalHost() != null || !sa.getHostCard().equals(c)) {
|
||||
return 0;
|
||||
return CardFactoryUtil.doXMath(0, expr, c);
|
||||
}
|
||||
|
||||
if (root.isTrigger()) {
|
||||
Trigger t = root.getTrigger();
|
||||
if (t == null) {
|
||||
return 0;
|
||||
return CardFactoryUtil.doXMath(0, expr, c);
|
||||
}
|
||||
|
||||
// 107.3k If an object’s enters-the-battlefield triggered ability or replacement effect refers to X,
|
||||
@@ -1603,11 +1603,15 @@ public class AbilityUtils {
|
||||
return CardFactoryUtil.doXMath(c.getXManaCostPaid(), expr, c);
|
||||
} else if (TriggerType.SpellCast.equals(t.getMode())) {
|
||||
// Cast Trigger like Hydroid Krasis
|
||||
return CardFactoryUtil.doXMath(c.getXManaCostPaid(), expr, c);
|
||||
SpellAbility castSA = (SpellAbility) root.getTriggeringObject(AbilityKey.SpellAbility);
|
||||
if (castSA == null || castSA.getXManaCostPaid() == null) {
|
||||
return CardFactoryUtil.doXMath(0, expr, c);
|
||||
}
|
||||
return CardFactoryUtil.doXMath(castSA.getXManaCostPaid(), expr, c);
|
||||
} else if (TriggerType.Cycled.equals(t.getMode())) {
|
||||
SpellAbility cycleSA = (SpellAbility) sa.getTriggeringObject(AbilityKey.Cause);
|
||||
if (cycleSA == null) {
|
||||
return 0;
|
||||
if (cycleSA == null || cycleSA.getXManaCostPaid() == null) {
|
||||
return CardFactoryUtil.doXMath(0, expr, c);
|
||||
}
|
||||
return CardFactoryUtil.doXMath(cycleSA.getXManaCostPaid(), expr, c);
|
||||
}
|
||||
@@ -1619,7 +1623,7 @@ public class AbilityUtils {
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return CardFactoryUtil.doXMath(0, expr, c);
|
||||
}
|
||||
|
||||
// Count$Kicked.<numHB>.<numNotHB>
|
||||
|
||||
@@ -278,8 +278,7 @@ public class TriggerSpellAbilityCast extends Trigger {
|
||||
AbilityKey.Activator,
|
||||
AbilityKey.CurrentStormCount,
|
||||
AbilityKey.CurrentCastSpells,
|
||||
AbilityKey.CastSACMC,
|
||||
AbilityKey.CastSAX
|
||||
AbilityKey.CastSACMC
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -293,7 +293,6 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
||||
runParams.put(AbilityKey.Activator, sp.getActivatingPlayer());
|
||||
runParams.put(AbilityKey.CastSA, si.getSpellAbility(true));
|
||||
runParams.put(AbilityKey.CastSACMC, si.getSpellAbility(true).getHostCard().getCMC());
|
||||
runParams.put(AbilityKey.CastSAX, si.getSpellAbility(true).getHostCard().getXManaCostPaid());
|
||||
runParams.put(AbilityKey.CurrentStormCount, thisTurnCast.size());
|
||||
runParams.put(AbilityKey.CurrentCastSpells, new CardCollection(thisTurnCast));
|
||||
game.getTriggerHandler().runTrigger(TriggerType.SpellAbilityCast, runParams, true);
|
||||
|
||||
@@ -8,7 +8,7 @@ T:Mode$ SpellCast | ValidCard$ Card.hasXCost | ValidActivatingPlayer$ You | Trig
|
||||
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_0_0_hydra | TokenOwner$ You | RememberTokens$ True | SubAbility$ DBPutCounter
|
||||
SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | References$ X | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:TriggerCount$CastSAX
|
||||
SVar:X:Count$xPaid
|
||||
DeckHas:Ability$Token
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:Deathtouch\n{T}: Add two mana of any one color.\nWhenever you cast a spell with {X} in its mana cost, create a 0/0 green Hydra creature token, then put X +1/+1 counters on it.
|
||||
|
||||
Reference in New Issue
Block a user