May spend Mana only work on Stack

This commit is contained in:
Hans Mackowiak
2021-01-26 17:02:39 +01:00
parent c3a4c977a1
commit 1ba01c38be
5 changed files with 20 additions and 20 deletions

View File

@@ -2,6 +2,6 @@ Name:Emissary's Ploy
Types:Conspiracy Types:Conspiracy
Text:(Start the game with this conspiracy face up in the command zone.) Text:(Start the game with this conspiracy face up in the command zone.)
K:Before drawing your opening hand, choose 1, 2, or 3. K:Before drawing your opening hand, choose 1, 2, or 3.
S:Mode$ Continuous| Affected$ Creature.YouCtrl+cmcEQX | AffectedZone$ Hand,Library,Graveyard,Exile,Command | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast creature spells with converted mana cost equal to the chosen number. S:Mode$ Continuous | Affected$ Creature.YouCtrl+cmcEQX | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast creature spells with converted mana cost equal to the chosen number.
SVar:X:Count$ChosenNumber SVar:X:Count$ChosenNumber
Oracle:(Start the game with this conspiracy face up in the command zone.)\nBefore drawing your opening hand, choose 1, 2, or 3. You may spend mana as though it were mana of any color to cast creature spells with converted mana cost equal to the chosen number. Oracle:(Start the game with this conspiracy face up in the command zone.)\nBefore drawing your opening hand, choose 1, 2, or 3. You may spend mana as though it were mana of any color to cast creature spells with converted mana cost equal to the chosen number.

View File

@@ -3,6 +3,5 @@ ManaCost:G
Types:Legendary Enchantment Types:Legendary Enchantment
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top three cards of your library. You may reveal a creature, land, or planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in any order. T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top three cards of your library. You may reveal a creature, land, or planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in any order.
SVar:TrigDig:DB$Dig | DigNum$ 3 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature,Land,Planeswalker SVar:TrigDig:DB$Dig | DigNum$ 3 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature,Land,Planeswalker
S:Mode$ Continuous| Affected$ Planeswalker.YouCtrl | AffectedZone$ Hand,Library,Graveyard,Exile,Command | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast planeswalker spells. S:Mode$ Continuous | Affected$ Planeswalker.YouCtrl | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast planeswalker spells.
SVar:Picture:http://www.wizards.com/global/images/magic/general/oath_of_nissa.jpg
Oracle:When Oath of Nissa enters the battlefield, look at the top three cards of your library. You may reveal a creature, land, or planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in any order.\nYou may spend mana as though it were mana of any color to cast planeswalker spells. Oracle:When Oath of Nissa enters the battlefield, look at the top three cards of your library. You may reveal a creature, land, or planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in any order.\nYou may spend mana as though it were mana of any color to cast planeswalker spells.

View File

@@ -2,6 +2,6 @@ Name:Unexpected Potential
ManaCost:no cost ManaCost:no cost
Types:Conspiracy Types:Conspiracy
K:Hidden agenda K:Hidden agenda
S:Mode$ Continuous | EffectZone$ Command | Affected$ Card.NamedCard | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | AffectedZone$ Hand,Graveyard,Exile,Library,Command | Description$ You may spend mana as though it were mana of any color to cast spells with the chosen name. S:Mode$ Continuous | EffectZone$ Command | Affected$ Card.NamedCard | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast spells with the chosen name.
SVar:AgendaLogic:BestCreatureInComputerDeck SVar:AgendaLogic:BestCreatureInComputerDeck
Oracle:Hidden agenda (Start the game with this conspiracy face down in the command zone and secretly name a card. You may turn this conspiracy face up any time and reveal the chosen name.)\nYou may spend mana as though it were mana of any color to cast spells with the chosen name. Oracle:Hidden agenda (Start the game with this conspiracy face down in the command zone and secretly name a card. You may turn this conspiracy face up any time and reveal the chosen name.)\nYou may spend mana as though it were mana of any color to cast spells with the chosen name.

View File

@@ -4,5 +4,5 @@ Types:Creature Naga Cleric
PT:3/4 PT:3/4
S:Mode$ Continuous | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ You | Description$ You may look at the top card of your library any time. S:Mode$ Continuous | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ You | Description$ You may look at the top card of your library any time.
S:Mode$ Continuous | Affected$ Creature.TopLibrary+YouCtrl+nonLand | AffectedZone$ Library | MayPlay$ True | Description$ You may cast the top card of your library if it's a creature card. S:Mode$ Continuous | Affected$ Creature.TopLibrary+YouCtrl+nonLand | AffectedZone$ Library | MayPlay$ True | Description$ You may cast the top card of your library if it's a creature card.
S:Mode$ Continuous | AddHiddenKeyword$ May spend mana as though it were mana of any type to cast CARDNAME | Affected$ Card.Creature+nonLand | AffectedZone$ Library,Hand,Graveyard,Exile | Description$ You may spend mana as though it were mana of any type to cast creature spells. S:Mode$ Continuous | Affected$ Creature.YouCtrl | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any type to cast CARDNAME | Description$ You may spend mana as though it were mana of any type to cast creature spells.
Oracle:You may look at the top card of your library any time.\nYou may cast the top card of your library if it's a creature card.\nYou may spend mana as though it were mana of any type to cast creature spells. Oracle:You may look at the top card of your library any time.\nYou may cast the top card of your library if it's a creature card.\nYou may spend mana as though it were mana of any type to cast creature spells.

View File

@@ -74,24 +74,11 @@ public class HumanPlaySpellAbility {
boolean manaTypeConversion = false; boolean manaTypeConversion = false;
boolean manaColorConversion = false; boolean manaColorConversion = false;
if (ability.isSpell()) {
if (c.hasKeyword("May spend mana as though it were mana of any type to cast CARDNAME")
|| (option != null && option.isIgnoreManaCostType())) {
manaTypeConversion = true;
} else if (c.hasKeyword("May spend mana as though it were mana of any color to cast CARDNAME")
|| (option != null && option.isIgnoreManaCostColor())) {
manaColorConversion = true;
}
}
final boolean playerManaConversion = human.hasManaConversion()
&& human.getController().confirmAction(ability, null, "Do you want to spend mana as though it were mana of any color to pay the cost?");
boolean keywordColor = false; boolean keywordColor = false;
// freeze Stack. No abilities should go onto the stack while I'm filling requirements. // freeze Stack. No abilities should go onto the stack while I'm filling requirements.
game.getStack().freezeStack(); game.getStack().freezeStack();
if (ability instanceof Spell && !c.isCopiedSpell()) { if (ability.isSpell() && !c.isCopiedSpell()) {
fromZone = game.getZoneOf(c); fromZone = game.getZoneOf(c);
fromState = c.getCurrentStateName(); fromState = c.getCurrentStateName();
if (fromZone != null) { if (fromZone != null) {
@@ -111,6 +98,20 @@ public class HumanPlaySpellAbility {
ability = GameActionUtil.addExtraKeywordCost(ability); ability = GameActionUtil.addExtraKeywordCost(ability);
if (ability.isSpell() && !ability.isCopied()) { // These hidden keywords should only apply on the Stack
final Card host = ability.getHostCard();
if (host.hasKeyword("May spend mana as though it were mana of any type to cast CARDNAME")
|| (option != null && option.isIgnoreManaCostType())) {
manaTypeConversion = true;
} else if (host.hasKeyword("May spend mana as though it were mana of any color to cast CARDNAME")
|| (option != null && option.isIgnoreManaCostColor())) {
manaColorConversion = true;
}
}
final boolean playerManaConversion = human.hasManaConversion()
&& human.getController().confirmAction(ability, null, "Do you want to spend mana as though it were mana of any color to pay the cost?");
Cost abCost = ability.getPayCosts(); Cost abCost = ability.getPayCosts();
CostPayment payment = new CostPayment(abCost, ability); CostPayment payment = new CostPayment(abCost, ability);