- Fix Jhoira of the Ghitu when activating multiple times in a row.

This commit is contained in:
Sol
2015-04-03 16:41:32 +00:00
parent 204167581e
commit 0584270a94
3 changed files with 7 additions and 1 deletions

View File

@@ -86,6 +86,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
final boolean etbcounter = sa.hasParam("ETB"); final boolean etbcounter = sa.hasParam("ETB");
final boolean remember = sa.hasParam("RememberCounters"); final boolean remember = sa.hasParam("RememberCounters");
final boolean rememberCards = sa.hasParam("RememberCards");
int counterAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("CounterNum"), sa); int counterAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("CounterNum"), sa);
final int max = sa.hasParam("MaxFromEffect") ? Integer.parseInt(sa.getParam("MaxFromEffect")) : -1; final int max = sa.hasParam("MaxFromEffect") ? Integer.parseInt(sa.getParam("MaxFromEffect")) : -1;
@@ -124,6 +125,9 @@ public class CountersPutEffect extends SpellAbilityEffect {
final int value = tgtCard.getTotalCountersToAdd(); final int value = tgtCard.getTotalCountersToAdd();
tgtCard.addCountersAddedBy(card, counterType, value); tgtCard.addCountersAddedBy(card, counterType, value);
} }
if (rememberCards) {
card.addRemembered(tgtCard);
}
if (sa.hasParam("Evolve")) { if (sa.hasParam("Evolve")) {
final HashMap<String, Object> runParams = new HashMap<String, Object>(); final HashMap<String, Object> runParams = new HashMap<String, Object>();
runParams.put("Card", tgtCard); runParams.put("Card", tgtCard);

View File

@@ -2,7 +2,7 @@ Name:Jhoira of the Ghitu
ManaCost:1 U R ManaCost:1 U R
Types:Legendary Creature Human Wizard Types:Legendary Creature Human Wizard
PT:2/2 PT:2/2
A:AB$ PutCounter | Cost$ 2 ExileFromHand<1/Card.nonLand/nonland card> | CostDesc$ {2}, Exile a nonland card from your hand: | RememberCostCards$ True | Defined$ Remembered | CounterType$ TIME | CounterNum$ 4 | SubAbility$ GiveSuspend | TgtZone$ Exile | StackDescription$ Put four time counters on the exiled card. | SpellDescription$ Put four time counters on the exiled card. If it doesn't have suspend, it gains suspend. (At the beginning of your upkeep, remove a time counter from that card. When the last is removed, cast it without paying its mana cost. If it's a creature, it has haste.) A:AB$ PutCounter | Cost$ 2 ExileFromHand<1/Card.nonLand/nonland card> | CostDesc$ {2}, Exile a nonland card from your hand: | RememberCards$ True | Defined$ ExiledCards | CounterType$ TIME | CounterNum$ 4 | SubAbility$ GiveSuspend | TgtZone$ Exile | StackDescription$ Put four time counters on the exiled card. | SpellDescription$ Put four time counters on the exiled card. If it doesn't have suspend, it gains suspend. (At the beginning of your upkeep, remove a time counter from that card. When the last is removed, cast it without paying its mana cost. If it's a creature, it has haste.)
SVar:GiveSuspend:DB$ PumpAll | ValidCards$ Card.IsRemembered+withoutSuspend | KW$ Suspend | PumpZone$ Exile | Permanent$ True | SubAbility$ DBCleanup | StackDescription$ If it doesn't have suspend, it gains suspend. SVar:GiveSuspend:DB$ PumpAll | ValidCards$ Card.IsRemembered+withoutSuspend | KW$ Suspend | PumpZone$ Exile | Permanent$ True | SubAbility$ DBCleanup | StackDescription$ If it doesn't have suspend, it gains suspend.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:RemAIDeck:True SVar:RemAIDeck:True

View File

@@ -92,6 +92,8 @@ public class HumanPlaySpellAbility {
ability.setHostCard(game.getAction().moveToStack(c)); ability.setHostCard(game.getAction().moveToStack(c));
} }
ability.resetPaidHash();
// 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();