mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +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"),
|
Blockers("Blockers"),
|
||||||
CastSA("CastSA"),
|
CastSA("CastSA"),
|
||||||
CastSACMC("CastSACMC"),
|
CastSACMC("CastSACMC"),
|
||||||
CastSAX("CastSAX"),
|
|
||||||
Card("Card"),
|
Card("Card"),
|
||||||
Cards("Cards"),
|
Cards("Cards"),
|
||||||
CardLKI("CardLKI"),
|
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.
|
// 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.
|
// 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)) {
|
if (sa.getOriginalHost() != null || !sa.getHostCard().equals(c)) {
|
||||||
return 0;
|
return CardFactoryUtil.doXMath(0, expr, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (root.isTrigger()) {
|
if (root.isTrigger()) {
|
||||||
Trigger t = root.getTrigger();
|
Trigger t = root.getTrigger();
|
||||||
if (t == null) {
|
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,
|
// 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);
|
return CardFactoryUtil.doXMath(c.getXManaCostPaid(), expr, c);
|
||||||
} else if (TriggerType.SpellCast.equals(t.getMode())) {
|
} else if (TriggerType.SpellCast.equals(t.getMode())) {
|
||||||
// Cast Trigger like Hydroid Krasis
|
// 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())) {
|
} else if (TriggerType.Cycled.equals(t.getMode())) {
|
||||||
SpellAbility cycleSA = (SpellAbility) sa.getTriggeringObject(AbilityKey.Cause);
|
SpellAbility cycleSA = (SpellAbility) sa.getTriggeringObject(AbilityKey.Cause);
|
||||||
if (cycleSA == null) {
|
if (cycleSA == null || cycleSA.getXManaCostPaid() == null) {
|
||||||
return 0;
|
return CardFactoryUtil.doXMath(0, expr, c);
|
||||||
}
|
}
|
||||||
return CardFactoryUtil.doXMath(cycleSA.getXManaCostPaid(), 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>
|
// Count$Kicked.<numHB>.<numNotHB>
|
||||||
|
|||||||
@@ -278,8 +278,7 @@ public class TriggerSpellAbilityCast extends Trigger {
|
|||||||
AbilityKey.Activator,
|
AbilityKey.Activator,
|
||||||
AbilityKey.CurrentStormCount,
|
AbilityKey.CurrentStormCount,
|
||||||
AbilityKey.CurrentCastSpells,
|
AbilityKey.CurrentCastSpells,
|
||||||
AbilityKey.CastSACMC,
|
AbilityKey.CastSACMC
|
||||||
AbilityKey.CastSAX
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -293,7 +293,6 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
|||||||
runParams.put(AbilityKey.Activator, sp.getActivatingPlayer());
|
runParams.put(AbilityKey.Activator, sp.getActivatingPlayer());
|
||||||
runParams.put(AbilityKey.CastSA, si.getSpellAbility(true));
|
runParams.put(AbilityKey.CastSA, si.getSpellAbility(true));
|
||||||
runParams.put(AbilityKey.CastSACMC, si.getSpellAbility(true).getHostCard().getCMC());
|
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.CurrentStormCount, thisTurnCast.size());
|
||||||
runParams.put(AbilityKey.CurrentCastSpells, new CardCollection(thisTurnCast));
|
runParams.put(AbilityKey.CurrentCastSpells, new CardCollection(thisTurnCast));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SpellAbilityCast, runParams, true);
|
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: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:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | References$ X | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:X:TriggerCount$CastSAX
|
SVar:X:Count$xPaid
|
||||||
DeckHas:Ability$Token
|
DeckHas:Ability$Token
|
||||||
AI:RemoveDeck:Random
|
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.
|
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