Fixed bug with syncopate to consume all the mana available
Now pay[[{x}]] is not supported because of this.
use "pay[[{value:storedx}]]" instead
This commit is contained in:
@@ -88480,7 +88480,7 @@ toughness=3
|
|||||||
[card]
|
[card]
|
||||||
name=Syncopate
|
name=Syncopate
|
||||||
target=*|stack
|
target=*|stack
|
||||||
auto=transforms((,newability[pay[[{x}]] name(pay {value} mana) donothing?fizzleto(exile)])) forever
|
auto=transforms((,newability[pay[[{value:storedx}]] name(pay {value} mana) donothing?fizzleto(exile)])) forever
|
||||||
text=Counter target spell unless its controller pays {X}. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.
|
text=Counter target spell unless its controller pays {X}. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.
|
||||||
mana={X}{U}
|
mana={X}{U}
|
||||||
type=Instant
|
type=Instant
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#Testing Counter unless pay {X} mechanic
|
#Testing Counter unless pay {X} mechanic
|
||||||
#P1 casts Think Twice with {4} left in his mana pool and P2 counters with Syncopate using X = 3. P1 chooses to pay {3} and Think Twice resolves with {1} left in his mana pool.
|
#P1 casts Think Twice with {5} left in his mana pool and P2 counters with Syncopate using X = 3. P1 chooses to pay {3} and Think Twice resolves with {2} left in his mana pool.
|
||||||
[INIT]
|
[INIT]
|
||||||
firstmain
|
firstmain
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
hand:think twice
|
hand:think twice
|
||||||
manapool:{5}{U}
|
manapool:{1}{U}{5}
|
||||||
library:counterspell
|
library:counterspell
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
hand:syncopate
|
hand:syncopate
|
||||||
@@ -21,7 +21,7 @@ firstmain
|
|||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
hand:counterspell
|
hand:counterspell
|
||||||
graveyard:think twice
|
graveyard:think twice
|
||||||
manapool:{1}
|
manapool:{2}
|
||||||
[PLAYER2]
|
[PLAYER2]
|
||||||
graveyard:syncopate
|
graveyard:syncopate
|
||||||
[END]
|
[END]
|
||||||
@@ -1144,9 +1144,6 @@ int GenericPaidAbility::resolve()
|
|||||||
baseAbility = Af.parseMagicLine(baseAbilityStrSplit[0], this->GetId(), NULL, source);
|
baseAbility = Af.parseMagicLine(baseAbilityStrSplit[0], this->GetId(), NULL, source);
|
||||||
baseAbility->target = target;
|
baseAbility->target = target;
|
||||||
optionalCost = ManaCost::parseManaCost(baseCost, NULL, source);
|
optionalCost = ManaCost::parseManaCost(baseCost, NULL, source);
|
||||||
if (optionalCost->hasX()) {
|
|
||||||
optionalCost->add(Constants::MTG_COLOR_ARTIFACT, source->storedSourceCard->X);
|
|
||||||
}
|
|
||||||
|
|
||||||
// hacky way to produce better MenuText
|
// hacky way to produce better MenuText
|
||||||
AAFakeAbility* isFake = dynamic_cast< AAFakeAbility* >( baseAbility );
|
AAFakeAbility* isFake = dynamic_cast< AAFakeAbility* >( baseAbility );
|
||||||
@@ -3530,10 +3527,10 @@ int MenuAbility::reactToChoiceClick(Targetable * object,int choice,int control)
|
|||||||
if (mClone && !toPay && optionalCosts.size() && i < int(optionalCosts.size()) && optionalCosts[i])//paidability only supports the first ability as paid for now.
|
if (mClone && !toPay && optionalCosts.size() && i < int(optionalCosts.size()) && optionalCosts[i])//paidability only supports the first ability as paid for now.
|
||||||
{
|
{
|
||||||
toPay = NEW ManaCost();
|
toPay = NEW ManaCost();
|
||||||
if(optionalCosts[i]->extraCosts)
|
if (optionalCosts[i]->extraCosts)
|
||||||
toPay->extraCosts = optionalCosts[i]->extraCosts->clone();
|
toPay->extraCosts = optionalCosts[i]->extraCosts->clone();
|
||||||
toPay->addExtraCost(NEW ExtraManaCost(NEW ManaCost(optionalCosts[i])));
|
toPay->addExtraCost(NEW ExtraManaCost(NEW ManaCost(optionalCosts[i])));
|
||||||
toPay->setExtraCostsAction(this,source);
|
toPay->setExtraCostsAction(this, source);
|
||||||
game->mExtraPayment = toPay->extraCosts;
|
game->mExtraPayment = toPay->extraCosts;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ int ManaCost::hasX()
|
|||||||
DebugTrace("Seems ManaCost was not properly initialized");
|
DebugTrace("Seems ManaCost was not properly initialized");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(xColor > 0)
|
if (xColor > 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return cost[Constants::NB_Colors];
|
return cost[Constants::NB_Colors];
|
||||||
|
|||||||
Reference in New Issue
Block a user