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]
|
||||
name=Syncopate
|
||||
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.
|
||||
mana={X}{U}
|
||||
type=Instant
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#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]
|
||||
firstmain
|
||||
[PLAYER1]
|
||||
hand:think twice
|
||||
manapool:{5}{U}
|
||||
manapool:{1}{U}{5}
|
||||
library:counterspell
|
||||
[PLAYER2]
|
||||
hand:syncopate
|
||||
@@ -21,7 +21,7 @@ firstmain
|
||||
[PLAYER1]
|
||||
hand:counterspell
|
||||
graveyard:think twice
|
||||
manapool:{1}
|
||||
manapool:{2}
|
||||
[PLAYER2]
|
||||
graveyard:syncopate
|
||||
[END]
|
||||
@@ -1144,9 +1144,6 @@ int GenericPaidAbility::resolve()
|
||||
baseAbility = Af.parseMagicLine(baseAbilityStrSplit[0], this->GetId(), NULL, source);
|
||||
baseAbility->target = target;
|
||||
optionalCost = ManaCost::parseManaCost(baseCost, NULL, source);
|
||||
if (optionalCost->hasX()) {
|
||||
optionalCost->add(Constants::MTG_COLOR_ARTIFACT, source->storedSourceCard->X);
|
||||
}
|
||||
|
||||
// hacky way to produce better MenuText
|
||||
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.
|
||||
{
|
||||
toPay = NEW ManaCost();
|
||||
if(optionalCosts[i]->extraCosts)
|
||||
toPay->extraCosts = optionalCosts[i]->extraCosts->clone();
|
||||
if (optionalCosts[i]->extraCosts)
|
||||
toPay->extraCosts = optionalCosts[i]->extraCosts->clone();
|
||||
toPay->addExtraCost(NEW ExtraManaCost(NEW ManaCost(optionalCosts[i])));
|
||||
toPay->setExtraCostsAction(this,source);
|
||||
toPay->setExtraCostsAction(this, source);
|
||||
game->mExtraPayment = toPay->extraCosts;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -424,7 +424,7 @@ int ManaCost::hasX()
|
||||
DebugTrace("Seems ManaCost was not properly initialized");
|
||||
return 0;
|
||||
}
|
||||
if(xColor > 0)
|
||||
if (xColor > 0)
|
||||
return 0;
|
||||
|
||||
return cost[Constants::NB_Colors];
|
||||
|
||||
Reference in New Issue
Block a user