4 DSK + 7 DSC cards (#6099)

* Support The Tale of Tamiyo

* Support Kianne, Corrupted Memory
This commit is contained in:
Fulgur14
2024-09-11 12:24:44 +02:00
committed by GitHub
parent bd1f48d530
commit d76b798526
18 changed files with 130 additions and 25 deletions

View File

@@ -3999,7 +3999,7 @@ public class CardFactoryUtil {
" | Description$ Horsemanship (" + inst.getReminderText() + ")";
inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic));
} else if (keyword.equals("Intimidate")) {
String effect = "Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonArtifact+notSharesColorWith | Secondary$ True " +
String effect = "Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonArtifact+!SharesColorWith | Secondary$ True " +
" | Description$ Intimidate (" + inst.getReminderText() + ")";
inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic));
} else if (keyword.startsWith("Landwalk")) {

View File

@@ -726,7 +726,6 @@ public class CardProperty {
}
final String restriction = property.split("SharesColorWith ")[1];
switch (restriction) {
case "MostProminentColor":
byte mask = CardFactoryUtil.getMostProminentColors(game.getCardsIn(ZoneType.Battlefield));
@@ -778,19 +777,6 @@ public class CardProperty {
byte mostProm = CardFactoryUtil.getMostProminentColors(game.getCardsIn(ZoneType.Battlefield));
return ColorSet.fromMask(mostProm).hasAnyColor(MagicColor.fromName(color));
} else if (property.startsWith("notSharesColorWith")) {
if (property.equals("notSharesColorWith")) {
if (card.sharesColorWith(source)) {
return false;
}
} else {
final String restriction = property.split("notSharesColorWith ")[1];
for (final Card c : sourceController.getCardsIn(ZoneType.Battlefield)) {
if (c.isValid(restriction, sourceController, source, spellAbility) && card.sharesColorWith(c)) {
return false;
}
}
}
} else if (property.startsWith("MostProminentCreatureTypeInLibrary")) {
final CardCollectionView list = sourceController.getCardsIn(ZoneType.Library);
for (String s : CardFactoryUtil.getMostProminentCreatureType(list)) {
@@ -849,6 +835,14 @@ public class CardProperty {
return false;
}
} else {
// Special case to prevent list from comparing with itself
if (property.startsWith("sharesCardTypeWithOther")) {
final String restriction = property.split("sharesCardTypeWithOther ")[1];
CardCollection list = AbilityUtils.getDefinedCards(source, restriction, spellAbility);
list.remove(card);
return Iterables.any(list, CardPredicates.sharesCardTypeWith(card));
}
final String restriction = property.split("sharesCardTypeWith ")[1];
switch (restriction) {
case "Imprinted":
@@ -1507,6 +1501,14 @@ public class CardProperty {
if (card.getCMC() % 2 != 1) {
return false;
}
} else if (property.equals("powerEven")) {
if (card.getNetPower() % 2 != 0) {
return false;
}
} else if (property.equals("powerOdd")) {
if (card.getNetPower() % 2 != 1) {
return false;
}
} else if (property.equals("cmcChosenEvenOdd")) {
if (!source.hasChosenEvenOdd()) {
return false;

View File

@@ -3,6 +3,6 @@ ManaCost:2 B B
Types:Legendary Creature Elemental Shaman
PT:4/4
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigDestroy | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, choose target creature that player controls. The player sacrifices that creature.
SVar:TrigDestroy:DB$ SacrificeAll | Defined ThisTargeted | ValidTgts$ Creature.ControlledBy TriggeredTarget | TgtPrompt$ Select target creature that player controls
SVar:TrigDestroy:DB$ SacrificeAll | Defined$ Targeted | ValidTgts$ Creature.ControlledBy TriggeredTarget | TgtPrompt$ Select target creature that player controls
SVar:MustBeBlocked:True
Oracle:Whenever Ashling, the Extinguisher deals combat damage to a player, choose target creature that player controls. The player sacrifices that creature.

View File

@@ -1,7 +1,6 @@
Name:Extinction Event
ManaCost:3 B
Types:Sorcery
A:SP$ GenericChoice | Choices$ Odd,Even | Defined$ You | StackDescription$ SpellDescription | SpellDescription$ Choose odd or even. Exile each creature with mana value of the chosen quality. (Zero is even.)
SVar:Odd:DB$ ChangeZoneAll | ChangeType$ Creature.cmcOdd | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Odd
SVar:Even:DB$ ChangeZoneAll | ChangeType$ Creature.cmcEven | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Even
A:SP$ ChooseEvenOdd | StackDescription$ SpellDescription | SubAbility$ DBExile | SpellDescription$ Choose odd or even. Exile each creature with mana value of the chosen quality. (Zero is even.)
SVar:DBExile:DB$ ChangeZoneAll | ChangeType$ Creature.cmcChosenEvenOdd | Origin$ Battlefield | Destination$ Exile
Oracle:Choose odd or even. Exile each creature with mana value of the chosen quality. (Zero is even.)

View File

@@ -1,7 +1,7 @@
Name:Invoke Prejudice
ManaCost:U U U U
Types:Enchantment
T:Mode$ SpellCast | ValidCard$ Creature.OppCtrl+notSharesColorWith Creature.YouCtrl | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever an opponent casts a creature spell that doesn't share a color with a creature you control, counter that spell unless that player pays {X}, where X is its mana value.
T:Mode$ SpellCast | ValidCard$ Creature.OppCtrl+!SharesColorWith Valid Creature.YouCtrl | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever an opponent casts a creature spell that doesn't share a color with a creature you control, counter that spell unless that player pays {X}, where X is its mana value.
SVar:TrigCounter:DB$ Counter | Defined$ TriggeredSpellAbility | UnlessCost$ X | UnlessPayer$ TriggeredActivator
SVar:X:TriggeredCard$CardManaCost
Oracle:Whenever an opponent casts a creature spell that doesn't share a color with a creature you control, counter that spell unless that player pays {X}, where X is its mana value.

View File

@@ -1,5 +1,5 @@
Name:Jaded Response
ManaCost:1 U
Types:Instant
A:SP$ Counter | TargetType$ Spell | ValidTgts$ Card | AITgts$ Card.SharesColorWith Valid Creature.YouCtrl | ConditionDefined$ Targeted | ConditionPresent$ Spell.SharesColorWith Creature.YouCtrl | SpellDescription$ Counter target spell if it shares a color with a creature you control.
A:SP$ Counter | TargetType$ Spell | ValidTgts$ Card | AITgts$ Card.SharesColorWith Valid Creature.YouCtrl | ConditionDefined$ Targeted | ConditionPresent$ Spell.SharesColorWith Valid Creature.YouCtrl | SpellDescription$ Counter target spell if it shares a color with a creature you control.
Oracle:Counter target spell if it shares a color with a creature you control.

View File

@@ -0,0 +1,10 @@
Name:Baseball Bat
ManaCost:G W
Types:Artifact Equipment
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters, attach it to target creature you control.
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Equipped creature gets +1/+1.
T:Mode$ Attacks | ValidCard$ Card.AttachedBy | Execute$ TrigTap | TriggerDescription$ Whenever equipped creature attacks, tap up to one target creature.
SVar:TrigTap:DB$ Tap | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature | TgtPrompt$ Select target creature
K:Equip:3
Oracle:When Baseball Bat enters, attach it to target creature you control.\nEquipped creature gets +1/+1.\nWhenever equipped creature attacks, tap up to one target creature.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)

View File

@@ -0,0 +1,12 @@
Name:Curator Beastie
ManaCost:4 G G
Types:Creature Beast
PT:6/6
K:Reach
K:ETBReplacement:Other:AddExtraCounter:Mandatory:Battlefield:Creature.Colorless+YouCtrl
SVar:AddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ 2 | SpellDescription$ Colorless creatures you control enter with two additional +1/+1 counters on them.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDread | TriggerDescription$ Whenever CARDNAME enters or attacks, manifest dread. (Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.)
T:Mode$ Attacks | ValidCard$ Card.Self | Secondary$ True | Execute$ TrigDread | TriggerDescription$ Whenever CARDNAME enters or attacks, manifest dread. (Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.)
SVar:TrigDread:DB$ Manifest | Dread$ True
DeckHas:Ability$Counters
Oracle:Reach\nColorless creatures you control enter with two additional +1/+1 counters on them.\nWhenever Curator Beastie enters or attacks, manifest dread. (Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.)

View File

@@ -0,0 +1,14 @@
Name:Giggling Skitterspike
ManaCost:4
Types:Artifact Creature Toy
PT:1/1
K:Indestructible
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDealDamage | TriggerDescription$ Whenever CARDNAME attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent.
T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigDealDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent.
T:Mode$ BecomesTarget | ValidTarget$ Card.Self | ValidSource$ Spell | TriggerZones$ Battlefield | Execute$ TrigDealDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent.
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Opponent | NumDmg$ X
K:Monstrosity:5:5
SVar:X:Count$CardPower
SVar:HasAttackEffect:TRUE
SVar:HasBlockEffect:TRUE
Oracle:Indestructible\nWhenever Giggling Skitterspike attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent.\n{5}: Monstrosity 5. (If this creature isn't monstrous, put five +1/+1 counters on it and it becomes monstrous.)

View File

@@ -0,0 +1,11 @@
Name:Glitch Interpreter
ManaCost:2 U
Types:Creature Human Wizard
PT:2/3
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | IsPresent$ Permanent.faceDown+YouCtrl | PresentCompare$ EQ0 | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters, if you control no face-down permanents, return CARDNAME to its owner's hand and manifest dread.
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBDread
SVar:DBDread:DB$ Manifest | Dread$ True
T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.Colorless+YouCtrl | TriggerZones$ Battlefield | ValidTarget$ Player | Execute$ TrigDraw | TriggerDescription$ Whenever one or more colorless creatures you control deal combat damage to a player, draw a card.
SVar:TrigDraw:DB$ Draw
SVar:PlayMain1:TRUE
Oracle:When Glitch Interpreter enters, if you control no face-down permanents, return Glitch Interpreter to its owner's hand and manifest dread.\nWhenever one or more colorless creatures you control deal combat damage to a player, draw a card.

View File

@@ -0,0 +1,9 @@
Name:Kianne, Corrupted Memory
ManaCost:2 G U
Types:Legendary Creature Illusion
PT:2/2
S:Mode$ CastWithFlash | ValidCard$ Card.nonCreature | ValidSA$ Spell | Caster$ You | IsPresent$ Card.Self+powerEven | Description$ As long as NICKNAME's power is even, you may cast noncreature spells as though they had flash.
S:Mode$ CastWithFlash | ValidCard$ Creature | ValidSA$ Spell | Caster$ You | IsPresent$ Card.Self+powerOdd | Description$ As long as NICKNAME's power is odd, you may cast creature spells as though they had flash.
T:Mode$ Drawn | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you draw a card, put a +1/+1 counter on NICKNAME.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
Oracle:As long as Kianne's power is even, you may cast noncreature spells as though they had flash.\nAs long as Kianne's power is odd, you may cast creature spells as though they had flash.\nWhenever you draw a card, put a +1/+1 counter on Kianne.

View File

@@ -0,0 +1,7 @@
Name:Rite of the Moth
ManaCost:1 W B B
Types:Sorcery
K:Flashback:3 W W B
A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | WithCountersType$ FINALITY | SpellDescription$ Return target creature card from your graveyard to the battlefield with a finality counter on it. (If a creature with a finality counter on it would die, exile it instead.)
SVar:DiscardMe:1
Oracle:Return target creature card from your graveyard to the battlefield with a finality counter on it. (If a creature with a finality counter on it would die, exile it instead.)\nFlashback {3}{W}{W}{B} (You may cast this card from your graveyard for its flashback cost. Then exile it.)

View File

@@ -0,0 +1,9 @@
Name:Shriekwood Devourer
ManaCost:5 G G
Types:Creature Treefolk
PT:7/5
K:Trample
T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ Whenever you attack with one or more creatures, untap up to X lands, where X is the greatest power among those creatures.
SVar:TrigUntap:DB$ Untap | UntapUpTo$ True | UntapType$ Land | Amount$ X
SVar:X:TriggerObjectsAttackers$GreatestPower
Oracle:Trample\nWhenever you attack with one or more creatures, untap up to X lands, where X is the greatest power among those creatures.

View File

@@ -0,0 +1,15 @@
Name:The Tale of Tamiyo
ManaCost:2 U
Types:Legendary Enchantment Saga
K:Chapter:4:DBRepeat,DBRepeat,DBRepeat,DBChangeZone
SVar:DBRepeat:DB$ Repeat | RepeatSubAbility$ DBCleanAndGrind | MaxRepeat$ MaxRepeats | RepeatCheckSVar$ MilledSharesType | RepeatSVarCompare$ GE2 | SubAbility$ DBCleanup | SpellDescription$ Mill two cards. If two cards that share a card type were milled this way, draw a card and repeat this process.
SVar:DBCleanAndGrind:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBGrind
SVar:DBGrind:DB$ Mill | NumCards$ 2 | NoReveal$ True | RememberMilled$ True | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | ConditionCheckSVar$ MilledSharesType | ConditionSVarCompare$ GE2
SVar:MaxRepeats:Count$InYourLibrary
SVar:MilledSharesType:Remembered$Valid Card.sharesCardTypeWithOther Remembered
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | TargetMin$ 0 | TargetMax$ Yard | TgtPrompt$ Select any number of target instant, sorcery, and/or Tamiyo planeswalker cards in your graveyard | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn,Planeswalker.Tamiyo+YouOwn | RememberChanged$ True | SubAbility$ DBPlay | StackDescription$ SpellDescription | SpellDescription$ Exile any number of target instant, sorcery, and/or Tamiyo planeswalker cards from your graveyard. Copy them. You may cast any number of the copies.
SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Exile | Controller$ You | CopyCard$ True | ValidSA$ Spell | Optional$ True | Amount$ All | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Yard:Count$InYourYard
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after IV.)\nI, II, III — Mill two cards. If two cards that share a card type were milled this way, draw a card and repeat this process.\nIV — Exile any number of target instant, sorcery, and/or Tamiyo planeswalker cards from your graveyard. Copy them. You may cast any number of the copies.

View File

@@ -5,4 +5,4 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
SVar:TrigDread:DB$ Manifest | Dread$ True | Times$ 2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.faceDown+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a face-down creature you control enters, draw a card.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1
Oracle:When They Came from the Pipes enters, manifest dread twice. (To manifest dread, look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.)\nWhenever a face-down creature you control enters, draw a card.
Oracle:When They Came from the Pipes enters, manifest dread twice. (To manifest dread, look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.)\nWhenever a face-down creature you control enters, draw a card.

View File

@@ -8,9 +8,9 @@ T:Mode$ FullyUnlock | ValidCard$ Card.Room | ValidPlayer$ You | Secondary$ True
SVar:TrigSurveil:DB$ Surveil | Amount$ 2 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | SubAbility$ DBDiscard
SVar:DBDiscard:DB$ Discard | Defined$ Player.Opponent | Mode$ TgtChoose | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ2 | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature | ChangeNum$ 1 | Mandatory$ True | GainControl$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ3 | SelectPrompt$ Select a creature card to return to the battlefield | Hidden$ True | SubAbility$ DBLog
SVar:DBLog:DB$ StoreSVar | SVar$ X | Type$ Number | Expression$ X/Plus.1
SVar:X:Number$0
SVar:DBLog:DB$ StoreSVar | SVar$ X | Type$ CountSVar | Expression$ X/Plus.1
SVar:X:Number$1
T:Mode$ Phase | Phase$ Cleanup | TriggerZones$ Battlefield | Execute$ DBCleanup | Static$ True
SVar:DBCleanup:DB$ StoreSVar | SVar$ X | Type$ Number | Expression$ 0
SVar:DBCleanup:DB$ StoreSVar | SVar$ X | Type$ Number | Expression$ 1
DeckNeeds:Type$Enchantment
Oracle:Eerie — Whenever an enchantment you control enters and whenever you fully unlock a Room, surveil 2 if this is the first time this ability has resolved this turn. If it's the second time, each opponent discards a card. If it's the third time, put a creature card from a graveyard onto the battlefield under your control.

View File

@@ -0,0 +1,9 @@
Name:Wildfire Wickerfolk
ManaCost:R G
Types:Artifact Creature Scarecrow
PT:3/2
K:Haste
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Trample | Condition$ Delirium | Description$ Delirium — CARDNAME gets +1/+1 and has trample as long as there are four or more card types among cards in your graveyard.
DeckHints:Ability$Graveyard|Discard
DeckHas:Ability$Delirium
Oracle:Haste\nDelirium — Wildfire Wickerfolk gets +1/+1 and has trample as long as there are four or more card types among cards in your graveyard.

View File

@@ -0,0 +1,8 @@
Name:Zimone's Hypothesis
ManaCost:3 U U
Types:Instant
A:SP$ PutCounter | Choices$ Creature | ChoiceTitle$ Choose a creature | CounterType$ P1P1 | CounterNum$ 1 | Optional$ True | SubAbility$ DBGenericChoice | SpellDescription$ You may put a +1/+1 counter on a creature. Then choose odd or even. Return each creature with power of the chosen quality to its owner's hand. (Zero is even.)
SVar:DBGenericChoice:DB$ GenericChoice | Choices$ Odd,Even
SVar:Odd:DB$ ChangeZoneAll | ChangeType$ Creature.powerOdd | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Odd
SVar:Even:DB$ ChangeZoneAll | ChangeType$ Creature.powerEven | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Even
Oracle:You may put a +1/+1 counter on a creature. Then choose odd or even. Return each creature with power of the chosen quality to its owner's hand. (Zero is even.)