mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Merge branch 'Card-Forge:master' into YONE4
This commit is contained in:
@@ -2040,7 +2040,7 @@ public class ComputerUtilCombat {
|
||||
|
||||
final boolean hasTrample = attacker.hasKeyword(Keyword.TRAMPLE);
|
||||
|
||||
if (combat != null && hasTrample && attacker.isAttacking()) {
|
||||
if (combat != null && remaining != null && hasTrample && attacker.isAttacking()) {
|
||||
// if attacker has trample and some of its blockers are also blocking others it's generally a good idea
|
||||
// to assign those without trample first so we can maximize the damage to the defender
|
||||
for (final Card c : remaining) {
|
||||
|
||||
@@ -3230,7 +3230,6 @@ public class AbilityUtils {
|
||||
return num;
|
||||
}
|
||||
return secondaryNum;
|
||||
|
||||
} else {
|
||||
return num;
|
||||
}
|
||||
@@ -3389,15 +3388,15 @@ public class AbilityUtils {
|
||||
String[] lparts = l[0].split(" ", 2);
|
||||
final List<ZoneType> vZone = ZoneType.listValueOf(lparts[0].split("Valid")[1]);
|
||||
String restrictions = TextUtil.fastReplace(l[0], TextUtil.addSuffix(lparts[0]," "), "");
|
||||
CardCollection cards = CardLists.getValidCards(game.getCardsIn(vZone), restrictions, player, source, ctb);
|
||||
return doXMath(cards.size(), m, source, ctb);
|
||||
int num = CardLists.getValidCardCount(game.getCardsIn(vZone), restrictions, player, source, ctb);
|
||||
return doXMath(num, m, source, ctb);
|
||||
}
|
||||
|
||||
// count valid cards on the battlefield
|
||||
if (l[0].startsWith("Valid ")) {
|
||||
final String restrictions = l[0].substring(6);
|
||||
CardCollection cardsonbattlefield = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), restrictions, player, source, ctb);
|
||||
return doXMath(cardsonbattlefield.size(), m, source, ctb);
|
||||
int num = CardLists.getValidCardCount(game.getCardsIn(ZoneType.Battlefield), restrictions, player, source, ctb);
|
||||
return doXMath(num, m, source, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("ThisTurnEntered")) {
|
||||
@@ -3606,21 +3605,10 @@ public class AbilityUtils {
|
||||
*/
|
||||
public static int handlePaid(final Iterable<Card> paidList, final String string, final Card source, CardTraitBase ctb) {
|
||||
if (Iterables.isEmpty(paidList)) {
|
||||
if (string.contains(".")) {
|
||||
final String[] splitString = string.split("\\.", 2);
|
||||
return doXMath(0, splitString[1], source, ctb);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
return doXMath(0, CardFactoryUtil.extractOperators(string), source, ctb);
|
||||
}
|
||||
if (string.startsWith("Amount")) {
|
||||
int size = Iterables.size(paidList);
|
||||
if (string.contains(".")) {
|
||||
final String[] splitString = string.split("\\.", 2);
|
||||
return doXMath(size, splitString[1], source, ctb);
|
||||
} else {
|
||||
return size;
|
||||
}
|
||||
return doXMath(Iterables.size(paidList), CardFactoryUtil.extractOperators(string), source, ctb);
|
||||
}
|
||||
|
||||
if (string.startsWith("GreatestPower")) {
|
||||
@@ -3653,8 +3641,8 @@ public class AbilityUtils {
|
||||
if (string.startsWith("Valid")) {
|
||||
final String[] splitString = string.split("/", 2);
|
||||
String valid = splitString[0].substring(6);
|
||||
final List<Card> list = CardLists.getValidCardsAsList(paidList, valid, source.getController(), source, ctb);
|
||||
return doXMath(list.size(), splitString.length > 1 ? splitString[1] : null, source, ctb);
|
||||
final int num = CardLists.getValidCardCount(paidList, valid, source.getController(), source, ctb);
|
||||
return doXMath(num, splitString.length > 1 ? splitString[1] : null, source, ctb);
|
||||
}
|
||||
|
||||
String filteredString = string;
|
||||
|
||||
@@ -198,6 +198,7 @@ public class AnimateEffect extends AnimateEffectBase {
|
||||
|
||||
if (sa.hasParam("Crew")) {
|
||||
c.becomesCrewed(sa);
|
||||
c.updatePowerToughnessForView();
|
||||
}
|
||||
|
||||
game.fireEvent(new GameEventCardStatsChanged(c));
|
||||
|
||||
@@ -167,7 +167,7 @@ public class MakeCardEffect extends SpellAbilityEffect {
|
||||
game.getTriggerHandler().runTrigger(TriggerType.ConjureAll, runParams, false);
|
||||
}
|
||||
|
||||
if (zone.equals(ZoneType.Library)) {
|
||||
if (zone.equals(ZoneType.Library) && !sa.hasParam("LibraryPosition")) {
|
||||
player.shuffle(sa);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ public class RepeatEachEffect extends SpellAbilityEffect {
|
||||
if (sa.hasParam("ChooseOrder") && !sa.getParam("ChooseOrder").equals("True")) {
|
||||
chooser = AbilityUtils.getDefinedPlayers(source, sa.getParam("ChooseOrder"), sa).get(0);
|
||||
}
|
||||
while (validTypes.size() > 0) {
|
||||
while (!validTypes.isEmpty()) {
|
||||
String chosenT = chooser.getController().chooseSomeType("card", sa, validTypes, null);
|
||||
source.setChosenType(chosenT);
|
||||
AbilityUtils.resolve(repeat);
|
||||
|
||||
@@ -6361,7 +6361,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!tr.getParam("Destination").equals(ZoneType.Battlefield.toString())) {
|
||||
if (!ZoneType.Battlefield.toString().equals(tr.getParam("Destination"))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Instant Arcane
|
||||
A:SP$ ChangeZone | Cost$ 2 R | Origin$ Battlefield | Destination$ Hand | ChangeType$ Mountain.YouCtrl | ChangeNum$ X | Hidden$ True | RememberChanged$ True | SubAbility$ DBDamage | SpellDescription$ Sweep — Return any number of Mountains you control to their owner's hand. CARDNAME deals damage to target creature equal to twice the number of Mountains returned this way.
|
||||
SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ Y
|
||||
SVar:X:Count$Valid Mountain.YouCtrl
|
||||
SVar:Y:Remembered$Amount.Twice
|
||||
SVar:Y:Remembered$Amount/Twice
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Sweep — Return any number of Mountains you control to their owner's hand. Barrel Down Sokenzan deals damage to target creature equal to twice the number of Mountains returned this way.
|
||||
|
||||
@@ -5,7 +5,7 @@ PT:1/1
|
||||
T:Mode$ ChangesZoneAll | ValidCards$ Creature.basePowerEQ1+baseToughnessEQ1+Other+YouCtrl | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever one or more other creatures with base power and toughness 1/1 enter the battlefield under your control, put a +1/+1 counter on CARDNAME.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | CounterType$ P1P1
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Whenever NICKNAME attacks, each other creature you control with base power and toughness 1/1 gets +X/+X until end of turn, where X is the number of +1/+1 counters on NICKNAME.
|
||||
SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.basePowerEQ1+baseToughnessEQ1+Other | NumAtt$ +X | NumDef$ +X
|
||||
SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.basePowerEQ1+baseToughnessEQ1+Other+YouCtrl | NumAtt$ +X | NumDef$ +X
|
||||
SVar:X:Count$CardCounters.P1P1
|
||||
DeckHas:Ability$Counters
|
||||
DeckHints:Type$Citizen
|
||||
|
||||
@@ -5,7 +5,7 @@ Loyalty:4
|
||||
A:AB$ Token | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | TokenAmount$ 2 | TokenScript$ r_3_1_elemental_haste | AtEOT$ Exile | SpellDescription$ Create two 3/1 red Elemental creature tokens with haste. Exile them at the beginning of the next end step.
|
||||
A:AB$ Discard | Cost$ AddCounter<0/LOYALTY> | Planeswalker$ True | Defined$ You | Mode$ Hand | RememberDiscarded$ True | SubAbility$ DBDraw | SpellDescription$ Discard all the cards in your hand, then draw that many cards plus one.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ Y | Defined$ You | SubAbility$ DBCleanup
|
||||
SVar:Y:Remembered$Amount.Plus.1
|
||||
SVar:Y:Remembered$Amount/Plus.1
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
A:AB$ DamageAll | Cost$ SubCounter<X/LOYALTY> | NumDmg$ X | ValidCards$ Creature | Planeswalker$ True | Ultimate$ True | ValidDescription$ each creature. | SpellDescription$ CARDNAME deals X damage to each creature.
|
||||
SVar:X:Count$xPaid
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:2 B
|
||||
Types:Enchantment
|
||||
A:AB$ Token | XCantBe0$ True | Cost$ 1 B ExileFromGrave<X/Creature> | TokenAmount$ 1 | TokenScript$ b_x_x_zombie_horror | TokenOwner$ You | TokenPower$ Y | TokenToughness$ Y | TokenTapped$ True | SpellDescription$ Create a tapped X/X black Zombie Horror creature token, where X is twice the number of cards exiled this way.
|
||||
SVar:X:Count$xPaid
|
||||
SVar:Y:ExiledCards$Amount.Twice
|
||||
SVar:Y:ExiledCards$Amount/Twice
|
||||
AI:RemoveDeck:All
|
||||
Oracle:{1}{B}, Exile one or more creature cards from your graveyard: Create a tapped X/X black Zombie Horror creature token, where X is twice the number of cards exiled this way.
|
||||
|
||||
@@ -5,7 +5,7 @@ A:SP$ RepeatEach | Cost$ 2 B | RepeatPlayers$ Player | RepeatSubAbility$ DBDisca
|
||||
SVar:DBDiscard:DB$ Discard | Defined$ Player.IsRemembered | Mode$ Hand | RememberDiscarded$ True | SubAbility$ DBDraw
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | Defined$ Player.IsRemembered | SubAbility$ CleanDrawn
|
||||
SVar:CleanDrawn:DB$ Cleanup | ClearRemembered$ True
|
||||
# This calculation isn't considering the remembered player, only the remembered cards?
|
||||
# This calculation isn't considering the remembered player, only the remembered cards
|
||||
SVar:X:Remembered$Amount.Minus.1
|
||||
AI:RemoveDeck:All
|
||||
AI:RemoveDeck:Random
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:4 R
|
||||
Types:Instant Arcane
|
||||
A:SP$ Pump | Cost$ 4 R Sac<X/Spirit> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ Z | SpellDescription$ Target creature gets +3/+0 until end of turn. For each Spirit sacrificed this way, that creature gets an additional +3/+0 until end of turn.
|
||||
SVar:Z:SVar$Y/Thrice
|
||||
SVar:Y:Sacrificed$Amount.Plus.1
|
||||
SVar:Y:Sacrificed$Amount/Plus.1
|
||||
SVar:X:Count$xPaid
|
||||
AI:RemoveDeck:Random
|
||||
AI:RemoveDeck:All
|
||||
|
||||
@@ -6,7 +6,7 @@ SVar:DBFluxDiscard:DB$ Discard | Defined$ Player.IsRemembered | AnyNumber$ True
|
||||
SVar:DBFluxDraw:DB$ Draw | NumCards$ X | Defined$ Player.IsRemembered | SubAbility$ CleanTheFlux
|
||||
SVar:CleanTheFlux:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ 1
|
||||
SVar:X:Remembered$Amount/Minus.1
|
||||
SVar:X:Remembered$Amount
|
||||
AI:RemoveDeck:All
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:Each player discards any number of cards, then draws that many cards.\nDraw a card.
|
||||
|
||||
@@ -3,5 +3,5 @@ ManaCost:2 GW GW GW
|
||||
Types:Instant
|
||||
A:SP$ DestroyAll | Cost$ 2 GW GW GW | ValidCards$ Artifact,Enchantment | RememberDestroyed$ True | SubAbility$ DBGainLife | SpellDescription$ Destroy all artifacts and enchantments. You gain 2 life for each permanent destroyed this way.
|
||||
SVar:DBGainLife:DB$ GainLife | LifeAmount$ X
|
||||
SVar:X:Remembered$Amount.Twice
|
||||
SVar:X:Remembered$Amount/Twice
|
||||
Oracle:Destroy all artifacts and enchantments. You gain 2 life for each permanent destroyed this way.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:2 R W
|
||||
Types:Instant
|
||||
A:SP$ Discard | Cost$ 2 R W | Defined$ You | RememberDiscarded$ True | Mode$ Hand | SubAbility$ DBDraw | SpellDescription$ Discard all the cards in your hand, then draw that many cards plus one. You gain life equal to the number of cards in your hand.
|
||||
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ X | SubAbility$ DBGainLife
|
||||
SVar:X:Remembered$Amount.Plus.1
|
||||
SVar:X:Remembered$Amount/Plus.1
|
||||
SVar:DBGainLife:DB$ GainLife | LifeAmount$ Y | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:Y:Count$InYourHand
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:2 B B B
|
||||
Types:Sorcery
|
||||
A:SP$ DestroyAll | Cost$ 2 B B B | ValidCards$ Creature.nonBlack | RememberDestroyed$ True | SubAbility$ DBDealDamage | SpellDescription$ Destroy all nonblack creatures. CARDNAME deals X plus 3 damage to you, where X is the number of creatures that died this way.
|
||||
SVar:DBDealDamage:DB$ DealDamage | NumDmg$ X | Defined$ You
|
||||
SVar:X:Remembered$Amount.Plus.3
|
||||
SVar:X:Remembered$Amount/Plus.3
|
||||
# Remember Destroyed still isn't quite right since Hellfire cares about Replacement effects too
|
||||
SVar:NeedsToPlayVar:Y GE5
|
||||
SVar:Y:Count$YourLifeTotal
|
||||
|
||||
@@ -9,5 +9,5 @@ SVar:DBDiscard:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBInce
|
||||
SVar:DBIncendiaryDiscard:DB$ Discard | Defined$ Player.IsRemembered | Mode$ Hand | RememberDiscarded$ True | SubAbility$ DBIncendiaryDraw
|
||||
SVar:DBIncendiaryDraw:DB$ Draw | NumCards$ X | Defined$ Player.IsRemembered | SubAbility$ CleanIncendiary
|
||||
SVar:CleanIncendiary:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Remembered$Amount/Minus.1
|
||||
SVar:X:Remembered$Amount
|
||||
Oracle:Choose two —\n• Incendiary Command deals 4 damage to target player or planeswalker.\n• Incendiary Command deals 2 damage to each creature.\n• Destroy target nonbasic land.\n• Each player discards all the cards in their hand, then draws that many cards.
|
||||
|
||||
@@ -5,5 +5,5 @@ A:SP$ DayTime | Value$ Night | SubAbility$ DBDiscard | SpellDescription$ It beco
|
||||
SVar:DBDiscard:DB$ Discard | AnyNumber$ True | Optional$ True | Mode$ TgtChoose | RememberDiscarded$ True | SubAbility$ DBDraw | StackDescription$ {p:You} discards any number of cards, | SpellDescription$ Discard any number of cards,
|
||||
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ Y | SubAbility$ DBCleanup | StackDescription$ then draws that many cards plus one. | SpellDescription$ then draw that many cards plus one.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:Y:Remembered$Amount.Plus.1
|
||||
SVar:Y:Remembered$Amount/Plus.1
|
||||
Oracle:It becomes night. Discard any number of cards, then draw that many cards plus one.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Human Wizard
|
||||
PT:1/1
|
||||
A:AB$ Reveal | Cost$ 2 W T | Defined$ You | RevealValid$ Card.White | AnyNumber$ True | RememberRevealed$ True | SubAbility$ DBJasmineLife | SpellDescription$ Reveal any number of white cards in your hand. You gain 2 life for each card revealed this way.
|
||||
SVar:DBJasmineLife:DB$ GainLife | LifeAmount$ JasmineX | SubAbility$ DBJasmineCleanup
|
||||
SVar:JasmineX:Remembered$Amount.Twice
|
||||
SVar:JasmineX:Remembered$Amount/Twice
|
||||
SVar:DBJasmineCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
AI:RemoveDeck:All
|
||||
Oracle:{2}{W}, {T}: Reveal any number of white cards in your hand. You gain 2 life for each card revealed this way.
|
||||
|
||||
@@ -8,7 +8,7 @@ SVar:DBDraw:DB$ Draw | NumCards$ X | Defined$ Player.IsRemembered | SubAbility$
|
||||
SVar:FoeRepeat:DB$ RepeatEach | RepeatPlayers$ Remembered | ClearRememberedBeforeLoop$ True | RepeatSubAbility$ DBDmg | DamageMap$ True | StackDescription$ SpellDescription | SpellDescription$ CARDNAME deals damage to each foe equal to the number of cards in their hand.
|
||||
SVar:DBDmg:DB$ DealDamage | Defined$ Player.IsRemembered | NumDmg$ Y
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Remembered$Amount.Plus.1
|
||||
SVar:X:Remembered$Amount/Plus.1
|
||||
SVar:Y:Count$ValidHand Card.RememberedPlayerCtrl
|
||||
SVar:NeedsToPlayVar:Z GE4
|
||||
SVar:Z:Count$ValidHand Card.OppCtrl
|
||||
|
||||
@@ -5,7 +5,7 @@ PT:1/2
|
||||
A:AB$ Reveal | Cost$ T | RevealValid$ Card.Artifact+YouCtrl | AnyNumber$ True | RememberRevealed$ True | SubAbility$ DBMetalWorkerMana | SpellDescription$ Reveal any number of artifact cards in your hand. Add {C}{C} for each card revealed this way.
|
||||
SVar:DBMetalWorkerMana:DB$ Mana | Produced$ C | Amount$ MetalWorkerX | SubAbility$ DBMetalWorkerCleanup
|
||||
SVar:DBMetalWorkerCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:MetalWorkerX:Remembered$Amount.Twice
|
||||
SVar:MetalWorkerX:Remembered$Amount/Twice
|
||||
AI:RemoveDeck:All
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:{T}: Reveal any number of artifact cards in your hand. Add {C}{C} for each card revealed this way.
|
||||
|
||||
@@ -3,5 +3,5 @@ ManaCost:3 R R
|
||||
Types:Sorcery
|
||||
A:SP$ DestroyAll | Cost$ 3 R R | ValidTgts$ Player | TgtPrompt$ Select target player | ValidCards$ Creature | ValidDescription$ all creatures targeted player controls | RememberDestroyed$ True | SubAbility$ DBTokenInfestation | SpellDescription$ Destroy all creatures target player controls. For each creature that died this way, that player creates two 1/1 red Goblin creature tokens.
|
||||
SVar:DBTokenInfestation:DB$ Token | TokenAmount$ X | TokenScript$ r_1_1_goblin | TokenOwner$ Targeted
|
||||
SVar:X:Remembered$Amount.Twice
|
||||
SVar:X:Remembered$Amount/Twice
|
||||
Oracle:Destroy all creatures target player controls. For each creature that died this way, that player creates two 1/1 red Goblin creature tokens.
|
||||
|
||||
@@ -6,7 +6,7 @@ SVar:ShuffleHand:DB$ ChangeZoneAll | Defined$ Player.IsRemembered | Origin$ Hand
|
||||
SVar:PsychoDraw:DB$ Draw | NumCards$ X | Defined$ Player.IsRemembered | SubAbility$ MindFlame
|
||||
SVar:MindFlame:DB$ DealDamage | Defined$ Player.Opponent+IsRemembered | NumDmg$ Y | ConditionPresent$ Artifact.YouCtrl | ConditionCompare$ GE3 | StackDescription$ None | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Remembered$Amount/Minus.1
|
||||
SVar:X:Remembered$Amount
|
||||
SVar:Y:PlayerCountRemembered$CardsDrawn
|
||||
SVar:NeedsToPlayVar:Z LE2
|
||||
SVar:Z:Count$InYourHand
|
||||
|
||||
@@ -3,5 +3,5 @@ ManaCost:3 G
|
||||
Types:Sorcery
|
||||
A:SP$ DestroyAll | Cost$ 3 G | ValidCards$ Enchantment | RememberDestroyed$ True | SubAbility$ DBGainLife | SpellDescription$ Destroy all enchantments. You gain 2 life for each enchantment destroyed this way.
|
||||
SVar:DBGainLife:DB$ GainLife | LifeAmount$ X
|
||||
SVar:X:Remembered$Amount.Twice
|
||||
SVar:X:Remembered$Amount/Twice
|
||||
Oracle:Destroy all enchantments. You gain 2 life for each enchantment destroyed this way.
|
||||
|
||||
@@ -6,5 +6,5 @@ SVar:DBSac:DB$ Sacrifice | Defined$ Remembered | Amount$ SacX | SacValid$ Creatu
|
||||
SVar:DBMana:DB$ Mana | Produced$ B | Amount$ ManaX | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:SacX:Count$Valid Creature
|
||||
SVar:ManaX:Remembered$Amount.Twice
|
||||
SVar:ManaX:Remembered$Amount/Twice
|
||||
Oracle:Your team may sacrifice any number of creatures. For each creature sacrificed this way, you add {B}{B}.
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:4 B B
|
||||
Types:Sorcery
|
||||
A:SP$ DestroyAll | Cost$ 4 B B | ValidCards$ Creature | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RememberDestroyed$ True | SubAbility$ DBLoseLife | SpellDescription$ Destroy all creatures target opponent controls. You lose 2 life for each creature destroyed this way.
|
||||
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ X
|
||||
SVar:X:Remembered$Amount.Twice
|
||||
SVar:X:Remembered$Amount/Twice
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Destroy all creatures target opponent controls. You lose 2 life for each creature destroyed this way.
|
||||
|
||||
@@ -5,6 +5,6 @@ A:SP$ Sacrifice | Cost$ 1 W | Defined$ You | Amount$ SacX | SacValid$ Permanent
|
||||
SVar:DBGainLife:DB$ GainLife | LifeAmount$ LifeX | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:SacX:Count$Valid Permanent.YouCtrl
|
||||
SVar:LifeX:Remembered$Amount.Twice
|
||||
SVar:LifeX:Remembered$Amount/Twice
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Sacrifice any number of permanents. You gain 2 life for each permanent sacrificed this way.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Revival Experiment
|
||||
ManaCost:4 B G
|
||||
Types:Sorcery
|
||||
A:SP$ RepeatEach | RepeatTypesFrom$ Permanent.YouOwn | TypesFromZone$ Graveyard | RepeatSubAbility$ ChooseCard | SubAbility$ DBReturn | SpellDescription$ For each permanent type, return up to one card of that type from your graveyard to the battlefield.
|
||||
SVar:ChooseCard:DB$ ChooseCard | Choices$ Card.ChosenType+YouOwn | ChoiceTitle$ Choose up to one card of this type to return | ChoiceTitleAppend$ ChosenType | RememberChosen$ True
|
||||
SVar:ChooseCard:DB$ ChooseCard | Choices$ Card.ChosenType+YouOwn | ChoiceZone$ Graveyard | ChoiceTitle$ Choose up to one card of this type to return | ChoiceTitleAppend$ ChosenType | RememberChosen$ True
|
||||
SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ Remembered | RememberChanged$ True | ForgetOtherRemembered$ True | SubAbility$ DBLoseLife
|
||||
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ X | SubAbility$ DBChange | StackDescription$ SpellDescription | SubAbility$ DBExile | SpellDescription$ You lose 3 life for each card returned this way.
|
||||
SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | SubAbility$ DBCleanup | SpellDescription$ Exile CARDNAME.
|
||||
|
||||
@@ -3,5 +3,5 @@ ManaCost:4 W W
|
||||
Types:Sorcery
|
||||
A:SP$ DestroyAll | Cost$ 4 W W | ValidCards$ Creature.tapped | RememberDestroyed$ True | SubAbility$ DBGainLife | SpellDescription$ Destroy all tapped creatures. You gain 2 life for each creature destroyed this way.
|
||||
SVar:DBGainLife:DB$ GainLife | LifeAmount$ X
|
||||
SVar:X:Remembered$Amount.Twice
|
||||
SVar:X:Remembered$Amount/Twice
|
||||
Oracle:Destroy all tapped creatures. You gain 2 life for each creature destroyed this way.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:W
|
||||
Types:Instant
|
||||
A:SP$ Reveal | Cost$ W | Defined$ You | RevealValid$ Card.White | AnyNumber$ True | RememberRevealed$ True | SubAbility$ DBScentOfJasmineLife | SpellDescription$ Reveal any number of white cards in your hand. You gain 2 life for each card revealed this way.
|
||||
SVar:DBScentOfJasmineLife:DB$ GainLife | LifeAmount$ ScentOfJasmineX | SubAbility$ DBScentOfJasmineCleanup
|
||||
SVar:ScentOfJasmineX:Remembered$Amount.Twice
|
||||
SVar:ScentOfJasmineX:Remembered$Amount/Twice
|
||||
SVar:DBScentOfJasmineCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Reveal any number of white cards in your hand. You gain 2 life for each card revealed this way.
|
||||
|
||||
@@ -7,11 +7,9 @@ SVar:WhirlYou:DB$ ChangeZoneAll | Defined$ You | Origin$ Hand | Destination$ Lib
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | Defined$ You | SubAbility$ DBCleanup
|
||||
A:AB$ RepeatEach | Cost$ R Sac<1/CARDNAME> | RepeatPlayers$ Player | RepeatSubAbility$ ShuffleHand | SpellDescription$ Each player shuffles the cards from their hand into their library, then draws that many cards.
|
||||
SVar:ShuffleHand:DB$ ChangeZoneAll | Defined$ Player.IsRemembered | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | Shuffle$ True | SubAbility$ WindDraw
|
||||
SVar:WindDraw:DB$ Draw | NumCards$ Y | Defined$ Player.IsRemembered | SubAbility$ DBCleanup
|
||||
SVar:WindDraw:DB$ Draw | NumCards$ X | Defined$ Player.IsRemembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Remembered$Amount
|
||||
# Amount Minus 1 because the Player is also being remembered at this point
|
||||
SVar:Y:Remembered$Amount/Minus.1
|
||||
AI:RemoveDeck:Random
|
||||
AI:RemoveDeck:All
|
||||
Oracle:When Whirlpool Warrior enters the battlefield, shuffle the cards from your hand into your library, then draw that many cards.\n{R}, Sacrifice Whirlpool Warrior: Each player shuffles the cards from their hand into their library, then draws that many cards.
|
||||
|
||||
@@ -5,8 +5,7 @@ A:SP$ RepeatEach | Cost$ R | RepeatPlayers$ Player | RepeatSubAbility$ ShuffleHa
|
||||
SVar:ShuffleHand:DB$ ChangeZoneAll | Defined$ Player.IsRemembered | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | RememberChanged$ True | Shuffle$ True | SubAbility$ WindDraw
|
||||
SVar:WindDraw:DB$ Draw | NumCards$ X | Defined$ Player.IsRemembered | SubAbility$ CleanTheWind
|
||||
SVar:CleanTheWind:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Remembered$Amount/Minus.1
|
||||
# Amount Minus 1 because the Player is also being remembered at this point
|
||||
SVar:X:Remembered$Amount
|
||||
AI:RemoveDeck:Random
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Each player shuffles the cards from their hand into their library, then draws that many cards.
|
||||
|
||||
Reference in New Issue
Block a user