Fix Ashiok

This commit is contained in:
tool4EvEr
2023-09-17 23:00:22 +02:00
parent db4039d7eb
commit 07d1d68e71
5 changed files with 18 additions and 14 deletions

View File

@@ -118,6 +118,7 @@ public enum AbilityKey {
ScryBottom("ScryBottom"), ScryBottom("ScryBottom"),
ScryNum("ScryNum"), ScryNum("ScryNum"),
Sides("Sides"), Sides("Sides"),
SimultaneousETB("SimultaneousETB"),
Source("Source"), Source("Source"),
Sources("Sources"), Sources("Sources"),
SourceSA("SourceSA"), SourceSA("SourceSA"),

View File

@@ -398,11 +398,14 @@ public class DigEffect extends SpellAbilityEffect {
if (sa.hasParam("Tapped")) { if (sa.hasParam("Tapped")) {
c.setTapped(true); c.setTapped(true);
} }
if (destZone1.equals(ZoneType.Battlefield) && sa.hasParam("WithCounter")) { if (destZone1.equals(ZoneType.Battlefield)) {
moveParams.put(AbilityKey.SimultaneousETB, movedCards);
if (sa.hasParam("WithCounter")) {
final int numCtr = AbilityUtils.calculateAmount(host, final int numCtr = AbilityUtils.calculateAmount(host,
sa.getParamOrDefault("WithCounterNum", "1"), sa); sa.getParamOrDefault("WithCounterNum", "1"), sa);
c.addEtbCounter(CounterType.getType(sa.getParam("WithCounter")), numCtr, player); c.addEtbCounter(CounterType.getType(sa.getParam("WithCounter")), numCtr, player);
} }
}
if (sa.hasAdditionalAbility("AnimateSubAbility")) { if (sa.hasAdditionalAbility("AnimateSubAbility")) {
// need LKI before Animate does apply // need LKI before Animate does apply
moveParams.put(AbilityKey.CardLKI, CardUtil.getLKICopy(c)); moveParams.put(AbilityKey.CardLKI, CardUtil.getLKICopy(c));
@@ -477,8 +480,7 @@ public class DigEffect extends SpellAbilityEffect {
} }
} else { } else {
// just move them randomly // just move them randomly
for (int i = 0; i < rest.size(); i++) { for (Card c : rest) {
Card c = rest.get(i);
final ZoneType origin = c.getZone().getZoneType(); final ZoneType origin = c.getZone().getZoneType();
final PlayerZone toZone = c.getOwner().getZone(destZone2); final PlayerZone toZone = c.getOwner().getZone(destZone2);
c = game.getAction().moveTo(toZone, c, sa); c = game.getAction().moveTo(toZone, c, sa);

View File

@@ -99,11 +99,6 @@ public class DigUntilEffect extends SpellAbilityEffect {
final Card host = sa.getHostCard(); final Card host = sa.getHostCard();
final Game game = host.getGame(); final Game game = host.getGame();
String[] type = new String[]{"Card"};
if (sa.hasParam("Valid")) {
type = sa.getParam("Valid").split(",");
}
int untilAmount = 1; int untilAmount = 1;
if (sa.hasParam("Amount")) { if (sa.hasParam("Amount")) {
untilAmount = AbilityUtils.calculateAmount(host, sa.getParam("Amount"), sa); untilAmount = AbilityUtils.calculateAmount(host, sa.getParam("Amount"), sa);
@@ -115,6 +110,11 @@ public class DigUntilEffect extends SpellAbilityEffect {
maxRevealed = AbilityUtils.calculateAmount(host, sa.getParam("MaxRevealed"), sa); maxRevealed = AbilityUtils.calculateAmount(host, sa.getParam("MaxRevealed"), sa);
} }
String[] type = new String[]{"Card"};
if (sa.hasParam("Valid")) {
type = sa.getParam("Valid").split(",");
}
final boolean remember = sa.hasParam("RememberFound"); final boolean remember = sa.hasParam("RememberFound");
final boolean imprint = sa.hasParam("ImprintFound"); final boolean imprint = sa.hasParam("ImprintFound");

View File

@@ -312,6 +312,7 @@ public class ReplacementHandler {
replacementEffect.setReplacingObjects(runParams, tailend); replacementEffect.setReplacingObjects(runParams, tailend);
//set original Params to update them later //set original Params to update them later
tailend.setReplacingObject(AbilityKey.OriginalParams, runParams); tailend.setReplacingObject(AbilityKey.OriginalParams, runParams);
tailend.setReplacingObjectsFrom(runParams, AbilityKey.SimultaneousETB);
tailend = tailend.getSubAbility(); tailend = tailend.getSubAbility();
} while(tailend != null); } while(tailend != null);

View File

@@ -3,12 +3,12 @@ ManaCost:3 B B
Types:Legendary Planeswalker Ashiok Types:Legendary Planeswalker Ashiok
Loyalty:5 Loyalty:5
R:Event$ PayLife | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ ExileTop | Amount$ LEY | Description$ If you would pay life while your library has at least that many cards in it, exile that many cards from the top of your library instead. R:Event$ PayLife | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ ExileTop | Amount$ LEY | Description$ If you would pay life while your library has at least that many cards in it, exile that many cards from the top of your library instead.
SVar:ExileTop:DB$ Dig | DigNum$ X | ChangeNum$ All | DestinationZone$ Exile SVar:ExileTop:DB$ DigUntil | Amount$ X | Valid$ Card.NotDefinedReplacedSimultaneousETB | NoMoveRevealed$ True | FoundDestination$ Exile
SVar:X:ReplaceCount$Amount SVar:X:ReplaceCount$Amount
SVar:Y:Count$ValidLibrary Card SVar:Y:Count$ValidLibrary Card.YouOwn
A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | DigNum$ 2 | ChangeNum$ 1 | DestinationZone2$ Exile | NoReveal$ True | SpellDescription$ Look at the top two cards of your library. Exile one of them and put the other into your hand. A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | DigNum$ 2 | ChangeNum$ 1 | DestinationZone2$ Exile | NoReveal$ True | SpellDescription$ Look at the top two cards of your library. Exile one of them and put the other into your hand.
A:AB$ Token | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | TokenAmount$ 2 | TokenScript$ b_1_1_nightmare_exile_counter | TokenOwner$ You | SpellDescription$ Create two 1/1 black Nightmare creature tokens with "At the beginning of combat on your turn, if a card was put into exile this turn, put a +1/+1 counter on this creature." A:AB$ Token | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | TokenAmount$ 2 | TokenScript$ b_1_1_nightmare_exile_counter | TokenOwner$ You | SpellDescription$ Create two 1/1 black Nightmare creature tokens with "At the beginning of combat on your turn, if a card was put into exile this turn, put a +1/+1 counter on this creature."
A:AB$ Discard | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidTgts$ Player | NumCards$ Z | Mode$ TgtChoose | SpellDescription$ Target player exiles the top X cards of their library, where X is the total mana value of cards you own in exile. A:AB$ Dig | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidTgts$ Player | DigNum$ Z | ChangeNum$ All | DestinationZone$ Exile | SpellDescription$ Target player exiles the top X cards of their library, where X is the total mana value of cards you own in exile.
SVar:Z:Count$ValidExile Card.YouOwn$SumCMC SVar:Z:Count$ValidExile Card.YouOwn$SumCMC
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:If you would pay life while your library has at least that many cards in it, exile that many cards from the top of your library instead.\n+1: Look at the top two cards of your library. Exile one of them and put the other into your hand.\n2: Create two 1/1 black Nightmare creature tokens with "At the beginning of combat on your turn, if a card was put into exile this turn, put a +1/+1 counter on this creature."\n7: Target player exiles the top X cards of their library, where X is the total mana value of cards you own in exile. Oracle:If you would pay life while your library has at least that many cards in it, exile that many cards from the top of your library instead.\n+1: Look at the top two cards of your library. Exile one of them and put the other into your hand.\n2: Create two 1/1 black Nightmare creature tokens with "At the beginning of combat on your turn, if a card was put into exile this turn, put a +1/+1 counter on this creature."\n7: Target player exiles the top X cards of their library, where X is the total mana value of cards you own in exile.