mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
CardProperty: make sharesCreatureTypeWith use DefinedCard
This commit is contained in:
@@ -140,6 +140,7 @@ public class CardFactory {
|
|||||||
c.clearControllers();
|
c.clearControllers();
|
||||||
c.setOwner(controller);
|
c.setOwner(controller);
|
||||||
c.setCopiedSpell(true);
|
c.setCopiedSpell(true);
|
||||||
|
c.setCopiedPermanent(original);
|
||||||
|
|
||||||
c.setXManaCostPaidByColor(original.getXManaCostPaidByColor());
|
c.setXManaCostPaidByColor(original.getXManaCostPaidByColor());
|
||||||
c.setKickerMagnitude(original.getKickerMagnitude());
|
c.setKickerMagnitude(original.getKickerMagnitude());
|
||||||
|
|||||||
@@ -162,6 +162,15 @@ public final class CardPredicates {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Predicate<Card> sharesCardTypeWith(final Card card) {
|
||||||
|
return new Predicate<Card>() {
|
||||||
|
@Override
|
||||||
|
public boolean apply(final Card c) {
|
||||||
|
return c.sharesCardTypeWith(card);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
public static Predicate<Card> sharesCreatureTypeWith(final Card card) {
|
public static Predicate<Card> sharesCreatureTypeWith(final Card card) {
|
||||||
return new Predicate<Card>() {
|
return new Predicate<Card>() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -789,12 +789,6 @@ public class CardProperty {
|
|||||||
} else {
|
} else {
|
||||||
final String restriction = property.split("sharesCreatureTypeWith ")[1];
|
final String restriction = property.split("sharesCreatureTypeWith ")[1];
|
||||||
switch (restriction) {
|
switch (restriction) {
|
||||||
case "TopCardOfLibrary":
|
|
||||||
final CardCollectionView cards = sourceController.getCardsIn(ZoneType.Library);
|
|
||||||
if (cards.isEmpty() || !card.sharesCreatureTypeWith(cards.get(0))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "Commander":
|
case "Commander":
|
||||||
final List<Card> cmdrs = sourceController.getCommanders();
|
final List<Card> cmdrs = sourceController.getCommanders();
|
||||||
for (Card cmdr : cmdrs) {
|
for (Card cmdr : cmdrs) {
|
||||||
@@ -803,35 +797,6 @@ public class CardProperty {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case "Enchanted":
|
|
||||||
for (final SpellAbility sa : source.getCurrentState().getNonManaAbilities()) {
|
|
||||||
final SpellAbility root = sa.getRootAbility();
|
|
||||||
Card c = source.getEnchantingCard();
|
|
||||||
if ((c == null) && (root != null)
|
|
||||||
&& (root.getPaidList("Sacrificed") != null)
|
|
||||||
&& !root.getPaidList("Sacrificed").isEmpty()) {
|
|
||||||
c = root.getPaidList("Sacrificed").get(0).getEnchantingCard();
|
|
||||||
if (!card.sharesCreatureTypeWith(c)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "Equipped":
|
|
||||||
if (source.isEquipping() && card.sharesCreatureTypeWith(source.getEquipping())) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
case "Remembered":
|
|
||||||
for (final Object rem : source.getRemembered()) {
|
|
||||||
if (rem instanceof Card) {
|
|
||||||
final Card c = (Card) rem;
|
|
||||||
if (card.sharesCreatureTypeWith(c)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
case "AllRemembered":
|
case "AllRemembered":
|
||||||
for (final Object rem : source.getRemembered()) {
|
for (final Object rem : source.getRemembered()) {
|
||||||
if (rem instanceof Card) {
|
if (rem instanceof Card) {
|
||||||
@@ -843,13 +808,7 @@ public class CardProperty {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
boolean shares = false;
|
if (!Iterables.any(AbilityUtils.getDefinedCards(source, restriction, spellAbility), CardPredicates.sharesCreatureTypeWith(card))) {
|
||||||
for (final Card c : sourceController.getCardsIn(ZoneType.Battlefield)) {
|
|
||||||
if (c.isValid(restriction, sourceController, source, spellAbility) && card.sharesCreatureTypeWith(c)) {
|
|
||||||
shares = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!shares) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -891,15 +850,9 @@ public class CardProperty {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
default:
|
default:
|
||||||
final CardCollection cards1 = AbilityUtils.getDefinedCards(card, restriction, spellAbility);
|
if (!Iterables.any(AbilityUtils.getDefinedCards(source, restriction, spellAbility), CardPredicates.sharesCardTypeWith(card))) {
|
||||||
if (cards1.isEmpty()) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for (Card c : cards1) {
|
|
||||||
if (!card.sharesCardTypeWith(c)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (property.equals("sharesPermanentTypeWith")) {
|
} else if (property.equals("sharesPermanentTypeWith")) {
|
||||||
@@ -935,9 +888,6 @@ public class CardProperty {
|
|||||||
return !CardLists.filter(game.getCardsIn(ZoneType.Battlefield), CardPredicates.sharesNameWith(card)).isEmpty();
|
return !CardLists.filter(game.getCardsIn(ZoneType.Battlefield), CardPredicates.sharesNameWith(card)).isEmpty();
|
||||||
} else if (restriction.equals("ThisTurnCast")) {
|
} else if (restriction.equals("ThisTurnCast")) {
|
||||||
return !CardLists.filter(CardUtil.getThisTurnCast("Card", source), CardPredicates.sharesNameWith(card)).isEmpty();
|
return !CardLists.filter(CardUtil.getThisTurnCast("Card", source), CardPredicates.sharesNameWith(card)).isEmpty();
|
||||||
} else if (restriction.startsWith("Remembered") || restriction.startsWith("Imprinted")) {
|
|
||||||
CardCollection list = AbilityUtils.getDefinedCards(source, restriction, spellAbility);
|
|
||||||
return !CardLists.filter(list, CardPredicates.sharesNameWith(card)).isEmpty();
|
|
||||||
} else if (restriction.equals("MovedToGrave")) {
|
} else if (restriction.equals("MovedToGrave")) {
|
||||||
for (final SpellAbility sa : source.getCurrentState().getNonManaAbilities()) {
|
for (final SpellAbility sa : source.getCurrentState().getNonManaAbilities()) {
|
||||||
final SpellAbility root = sa.getRootAbility();
|
final SpellAbility root = sa.getRootAbility();
|
||||||
@@ -969,6 +919,10 @@ public class CardProperty {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
} else {
|
||||||
|
if (!Iterables.any(AbilityUtils.getDefinedCards(source, restriction, spellAbility), CardPredicates.sharesNameWith(card))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (property.startsWith("doesNotShareNameWith")) {
|
} else if (property.startsWith("doesNotShareNameWith")) {
|
||||||
@@ -1859,6 +1813,11 @@ public class CardProperty {
|
|||||||
if (card.equals(obj)) {
|
if (card.equals(obj)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
} else if (property.startsWith("NotDefined")) {
|
||||||
|
final String key = property.substring("NotDefined".length());
|
||||||
|
if (Iterables.contains(AbilityUtils.getDefinedCards(source, key, spellAbility), card)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else if (property.equals("CanPayManaCost")) {
|
} else if (property.equals("CanPayManaCost")) {
|
||||||
final class CheckCanPayManaCost {
|
final class CheckCanPayManaCost {
|
||||||
private List<Mana> manaPaid;
|
private List<Mana> manaPaid;
|
||||||
|
|||||||
@@ -4,6 +4,5 @@ Types:Enchantment Aura
|
|||||||
K:Enchant creature
|
K:Enchant creature
|
||||||
A:SP$ Attach | Cost$ 3 U | ValidTgts$ Creature | AILogic$ Pump
|
A:SP$ Attach | Cost$ 3 U | ValidTgts$ Creature | AILogic$ Pump
|
||||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You| Execute$ TrigDig | TriggerDescription$ At the beginning of your upkeep, you may look at the top five cards of your library. If you do, you may put a creature card that shares a creature type with enchanted creature from among them onto the battlefield, then you put the rest of those cards on the bottom of your library in any order.
|
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You| Execute$ TrigDig | TriggerDescription$ At the beginning of your upkeep, you may look at the top five cards of your library. If you do, you may put a creature card that shares a creature type with enchanted creature from among them onto the battlefield, then you put the rest of those cards on the bottom of your library in any order.
|
||||||
SVar:TrigDig:DB$ Dig | DigNum$ 5 | ChangeNum$ 1 | ChangeValid$ Creature.sharesCreatureTypeWith Card.EnchantedBy | Optional$ True | DestinationZone$ Battlefield
|
SVar:TrigDig:DB$ Dig | DigNum$ 5 | ChangeNum$ 1 | ChangeValid$ Creature.sharesCreatureTypeWith Enchanted | Optional$ True | DestinationZone$ Battlefield
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/call_to_the_kindred.jpg
|
|
||||||
Oracle:Enchant creature\nAt the beginning of your upkeep, you may look at the top five cards of your library. If you do, you may put a creature card that shares a creature type with enchanted creature from among them onto the battlefield, then you put the rest of those cards on the bottom of your library in any order.
|
Oracle:Enchant creature\nAt the beginning of your upkeep, you may look at the top five cards of your library. If you do, you may put a creature card that shares a creature type with enchanted creature from among them onto the battlefield, then you put the rest of those cards on the bottom of your library in any order.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Types:Enchantment Aura
|
|||||||
K:Enchant creature
|
K:Enchant creature
|
||||||
A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ Pump
|
A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ Pump
|
||||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Flying | Description$ Enchanted creature has flying.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Flying | Description$ Enchanted creature has flying.
|
||||||
A:AB$ PumpAll | Cost$ Sac<1/CARDNAME> | ValidCards$ Creature.sharesCreatureTypeWith Enchanted | KW$ Flying | SpellDescription$ Enchanted creature and other creatures that share a creature type with it gain flying until end of turn.
|
A:AB$ Pump | Cost$ Sac<1/CARDNAME> | Defined$ AttachedBy Sacrificed | KW$ Flying | SubAbility$ DBPumpAll | SpellDescription$ Enchanted creature and other creatures that share a creature type with it gain flying until end of turn.
|
||||||
|
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.NotDefinedAttachedBy Sacrificed+sharesCreatureTypeWith AttachedBy Sacrificed | KW$ Flying
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crown_of_ascension.jpg
|
|
||||||
Oracle:Enchant creature\nEnchanted creature has flying.\nSacrifice Crown of Ascension: Enchanted creature and other creatures that share a creature type with it gain flying until end of turn.
|
Oracle:Enchant creature\nEnchanted creature has flying.\nSacrifice Crown of Ascension: Enchanted creature and other creatures that share a creature type with it gain flying until end of turn.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Types:Enchantment Aura
|
|||||||
K:Enchant creature
|
K:Enchant creature
|
||||||
A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Pump
|
A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Pump
|
||||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection from black & Protection from red | Description$ Enchanted creature has protection from black and from red.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection from black & Protection from red | Description$ Enchanted creature has protection from black and from red.
|
||||||
A:AB$ PumpAll | Cost$ Sac<1/CARDNAME> | ValidCards$ Creature.sharesCreatureTypeWith Enchanted | KW$ Protection from black & Protection from red | SpellDescription$ Enchanted creature and other creatures that share a creature type with it gain protection from black and from red until end of turn.
|
A:AB$ Pump | Cost$ Sac<1/CARDNAME> | Defined$ AttachedBy Sacrificed | KW$ Protection from black & Protection from red | SubAbility$ DBPumpAll | SpellDescription$ Enchanted creature and other creatures that share a creature type with it gain protection from black and from red until end of turn.
|
||||||
|
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.NotDefinedAttachedBy Sacrificed+sharesCreatureTypeWith AttachedBy Sacrificed | KW$ Protection from black & Protection from red
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crown_of_awe.jpg
|
|
||||||
Oracle:Enchant creature\nEnchanted creature has protection from black and from red.\nSacrifice Crown of Awe: Enchanted creature and other creatures that share a creature type with it gain protection from black and from red until end of turn.
|
Oracle:Enchant creature\nEnchanted creature has protection from black and from red.\nSacrifice Crown of Awe: Enchanted creature and other creatures that share a creature type with it gain protection from black and from red until end of turn.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Types:Enchantment Aura
|
|||||||
K:Enchant creature
|
K:Enchant creature
|
||||||
A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Pump
|
A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Pump
|
||||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddKeyword$ First Strike | Description$ Enchanted creature gets +1/+0 and has first strike.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddKeyword$ First Strike | Description$ Enchanted creature gets +1/+0 and has first strike.
|
||||||
A:AB$ PumpAll | Cost$ Sac<1/CARDNAME> | ValidCards$ Creature.sharesCreatureTypeWith Enchanted | NumAtt$ 1 | KW$ First Strike | SpellDescription$ Enchanted creature and other creatures that share a creature type with it get +1/+0 and gain first strike until end of turn.
|
A:AB$ Pump | Cost$ Sac<1/CARDNAME> | Defined$ AttachedBy Sacrificed | NumAtt$ 1 | KW$ First Strike | SubAbility$ DBPumpAll | SpellDescription$ Enchanted creature and other creatures that share a creature type with it get +1/+0 and gain first strike until end of turn.
|
||||||
|
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.NotDefinedAttachedBy Sacrificed+sharesCreatureTypeWith AttachedBy Sacrificed | NumAtt$ 1 | KW$ First Strike
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crown_of_fury.jpg
|
|
||||||
Oracle:Enchant creature\nEnchanted creature gets +1/+0 and has first strike.\nSacrifice Crown of Fury: Enchanted creature and other creatures that share a creature type with it get +1/+0 and gain first strike until end of turn.
|
Oracle:Enchant creature\nEnchanted creature gets +1/+0 and has first strike.\nSacrifice Crown of Fury: Enchanted creature and other creatures that share a creature type with it get +1/+0 and gain first strike until end of turn.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Types:Enchantment Aura
|
|||||||
K:Enchant creature
|
K:Enchant creature
|
||||||
A:SP$ Attach | Cost$ 1 B | ValidTgts$ Creature | AILogic$ Pump
|
A:SP$ Attach | Cost$ 1 B | ValidTgts$ Creature | AILogic$ Pump
|
||||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ -1 | Description$ Enchanted creature gets +2/-1.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ -1 | Description$ Enchanted creature gets +2/-1.
|
||||||
A:AB$ PumpAll | Cost$ Sac<1/CARDNAME> | ValidCards$ Creature.sharesCreatureTypeWith Enchanted | NumAtt$ 2 | NumDef$ -1 | SpellDescription$ Enchanted creature and other creatures that share a creature type with it get +2/-1 until end of turn.
|
A:AB$ Pump | Cost$ Sac<1/CARDNAME> | Defined$ AttachedBy Sacrificed | NumAtt$ 2 | NumDef$ -1 | SubAbility$ DBPumpAll | SpellDescription$ Enchanted creature and other creatures that share a creature type with it get +2/-1 until end of turn.
|
||||||
|
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.NotDefinedAttachedBy Sacrificed+sharesCreatureTypeWith AttachedBy Sacrificed | NumAtt$ 2 | NumDef$ -1
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crown_of_suspicion.jpg
|
|
||||||
Oracle:Enchant creature\nEnchanted creature gets +2/-1.\nSacrifice Crown of Suspicion: Enchanted creature and other creatures that share a creature type with it get +2/-1 until end of turn.
|
Oracle:Enchant creature\nEnchanted creature gets +2/-1.\nSacrifice Crown of Suspicion: Enchanted creature and other creatures that share a creature type with it get +2/-1 until end of turn.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Types:Enchantment Aura
|
|||||||
K:Enchant creature
|
K:Enchant creature
|
||||||
A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump
|
A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump
|
||||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1.
|
||||||
A:AB$ PumpAll | Cost$ Sac<1/CARDNAME> | ValidCards$ Creature.sharesCreatureTypeWith Enchanted | NumAtt$ 1 | NumDef$ 1 | SpellDescription$ Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn.
|
A:AB$ Pump | Cost$ Sac<1/CARDNAME> | Defined$ AttachedBy Sacrificed | NumAtt$ 1 | NumDef$ 1 | SubAbility$ DBPumpAll | SpellDescription$ Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn.
|
||||||
|
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.Other+sharesCreatureTypeWith AttachedBy Sacrificed | NumAtt$ 1 | NumDef$ 1
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crown_of_vigor.jpg
|
|
||||||
Oracle:Enchant creature\nEnchanted creature gets +1/+1.\nSacrifice Crown of Vigor: Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn.
|
Oracle:Enchant creature\nEnchanted creature gets +1/+1.\nSacrifice Crown of Vigor: Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn.
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
Name:Descendants' Path
|
Name:Descendants' Path
|
||||||
ManaCost:2 G
|
ManaCost:2 G
|
||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ At the beginning of your upkeep, reveal the top card of your library. If it's a creature card that shares a creature type with a creature you control, you may cast that card without paying its mana cost. Otherwise, put that card on the bottom of your library.
|
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBReveal | TriggerDescription$ At the beginning of your upkeep, reveal the top card of your library. If it's a creature card that shares a creature type with a creature you control, you may cast that card without paying its mana cost. Otherwise, put that card on the bottom of your library.
|
||||||
SVar:TrigDig:DB$ Dig | DigNum$ 1 | Reveal$ True | RememberRevealed$ True | ChangeNum$ All | ChangeValid$ Creature.sharesCreatureTypeWith Creature.YouCtrl | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ -1 | SubAbility$ DBPlayIT
|
SVar:DBReveal:DB$ PeekAndReveal | PeekAmount$ 1 | RevealValid$ Card | RememberRevealed$ True | SubAbility$ DBMayCast
|
||||||
SVar:DBPlayIT:DB$ Play | Defined$ Remembered | Controller$ You | WithoutManaCost$ True | Optional$ True | RememberPlayed$ True | ConditionCheckSVar$ MatchType | ConditionSVarCompare$ EQ1 | SubAbility$ DBCleanup
|
SVar:DBMayCast:DB$ Play | Defined$ Remembered | ForgetRemembered$ True | WithoutManaCost$ True | Optional$ True | ConditionDefined$ Remembered | ConditionPresent$ Creature.sharesCreatureTypeWith Valid Creature.YouCtrl | SubAbility$ DBChangeZone
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBChangeZone:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | DestinationZone$ Library | LibraryPosition$ -1 | NoShuffle$ True | ForgetChanged$ True
|
||||||
SVar:MatchType:Remembered$Valid Creature.sharesCreatureTypeWith Card
|
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/descendants_path.jpg
|
|
||||||
Oracle:At the beginning of your upkeep, reveal the top card of your library. If it's a creature card that shares a creature type with a creature you control, you may cast that card without paying its mana cost. Otherwise, put that card on the bottom of your library.
|
Oracle:At the beginning of your upkeep, reveal the top card of your library. If it's a creature card that shares a creature type with a creature you control, you may cast that card without paying its mana cost. Otherwise, put that card on the bottom of your library.
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
Name:Endemic Plague
|
Name:Endemic Plague
|
||||||
ManaCost:3 B
|
ManaCost:3 B
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ DestroyAll | Cost$ 3 B Sac<1/Creature> | RememberCostCards$ True | ValidCards$ Creature.sharesCreatureTypeWith Remembered | SubAbility$ DBCleanup | SpellDescription$ Destroy all creatures that share a creature type with the sacrificed creature. They can't be regenerated.
|
A:SP$ DestroyAll | Cost$ 3 B Sac<1/Creature> | ValidCards$ Creature.sharesCreatureTypeWith Sacrificed | SpellDescription$ Destroy all creatures that share a creature type with the sacrificed creature. They can't be regenerated.
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/endemic_plague.jpg
|
|
||||||
Oracle:As an additional cost to cast Endemic Plague, sacrifice a creature.\nDestroy all creatures that share a creature type with the sacrificed creature. They can't be regenerated.
|
Oracle:As an additional cost to cast Endemic Plague, sacrifice a creature.\nDestroy all creatures that share a creature type with the sacrificed creature. They can't be regenerated.
|
||||||
|
|||||||
@@ -1,14 +1,8 @@
|
|||||||
Name:Heirloom Blade
|
Name:Heirloom Blade
|
||||||
ManaCost:3
|
ManaCost:3
|
||||||
Types:Artifact Equipment
|
Types:Artifact Equipment
|
||||||
T:Mode$ Attached | ValidSource$ Card.Self | ValidTarget$ Creature | TriggerZones$ Battlefield | Execute$ TrigRemember | Static$ True
|
|
||||||
SVar:TrigRemember:DB$ Cleanup | ClearRemembered$ True | SubAbility$ RememberNew
|
|
||||||
SVar:RememberNew:DB$ Pump | RememberObjects$ Equipped
|
|
||||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 1 | Description$ Equipped creature gets +3/+1.
|
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 1 | Description$ Equipped creature gets +3/+1.
|
||||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigDigUntil | OptionalDecider$ You | TriggerDescription$ Whenever equipped creature dies, you may reveal cards from the top of your library until you reveal a creature card that shares a creature type with it. Put that card into your hand and the rest on the bottom of your library in a random order.
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigDigUntil | OptionalDecider$ You | TriggerDescription$ Whenever equipped creature dies, you may reveal cards from the top of your library until you reveal a creature card that shares a creature type with it. Put that card into your hand and the rest on the bottom of your library in a random order.
|
||||||
SVar:TrigDigUntil:DB$DigUntil | Valid$ Creature.sharesCreatureTypeWith Remembered | ValidDescription$ creature that shares a creature type | FoundDestination$ Hand | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SubAbility$ DBCleanup
|
SVar:TrigDigUntil:DB$ DigUntil | Valid$ Creature.sharesCreatureTypeWith TriggeredCardLKICopy | ValidDescription$ creature that shares a creature type | FoundDestination$ Hand | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True
|
||||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBCleanup | Static$ True
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
|
||||||
K:Equip:1
|
K:Equip:1
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/heirloom_blade.jpg
|
Oracle:Equipped creature gets +3/+1.\nWhenever equipped creature dies, you may reveal cards from the top of your library until you reveal a creature card that shares a creature type with it. Put that card into your hand and the rest on the bottom of your library in a random order.\nEquip {1}
|
||||||
Oracle:Equipped creature gets +3/+1.\nWhenever equipped creature dies, you may reveal cards from the top of your library until you reveal a creature card that shares a creature type with it. Put that card into your hand and the rest on the bottom of your library in a random order.\nEquip {1}
|
|
||||||
|
|||||||
@@ -7,5 +7,4 @@ S:Mode$ Continuous | Affected$ Creature.SharesColorWith Equipped | AddPower$ 1 |
|
|||||||
S:Mode$ Continuous | Affected$ Creature.sharesCreatureTypeWith Equipped | AddPower$ 1 | AddToughness$ 1 | Description$ Creatures that share a creature type with equipped creature get +1/+1.
|
S:Mode$ Continuous | Affected$ Creature.sharesCreatureTypeWith Equipped | AddPower$ 1 | AddToughness$ 1 | Description$ Creatures that share a creature type with equipped creature get +1/+1.
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
DeckHints:Type$Legendary
|
DeckHints:Type$Legendary
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/kondas_banner.jpg
|
|
||||||
Oracle:Konda's Banner can be attached only to a legendary creature.\nCreatures that share a color with equipped creature get +1/+1.\nCreatures that share a creature type with equipped creature get +1/+1.\nEquip {2}
|
Oracle:Konda's Banner can be attached only to a legendary creature.\nCreatures that share a color with equipped creature get +1/+1.\nCreatures that share a creature type with equipped creature get +1/+1.\nEquip {2}
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
Name:Mana Echoes
|
Name:Mana Echoes
|
||||||
ManaCost:2 R R
|
ManaCost:2 R R
|
||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature | TriggerZones$ Battlefield | TriggerController$ You | OptionalDecider$ You | Execute$ TrigPump | TriggerDescription$ Whenever a creature enters the battlefield, you may add an amount of {C} equal to the number of creatures you control that share a creature type with it.
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature | TriggerZones$ Battlefield | TriggerController$ You | OptionalDecider$ You | Execute$ DBMana | TriggerDescription$ Whenever a creature enters the battlefield, you may add an amount of {C} equal to the number of creatures you control that share a creature type with it.
|
||||||
SVar:TrigPump:DB$ Pump | Defined$ TriggeredCard | RememberObjects$ TriggeredCard | AILogic$ MimicVat | SubAbility$ DBMana
|
SVar:DBMana:DB$ Mana | Produced$ C | Defined$ You | Amount$ X | References$ X
|
||||||
SVar:DBMana:DB$ Mana | Produced$ C | Defined$ You | Amount$ X | References$ X | SubAbility$ DBCleanup
|
SVar:X:Count$Valid Creature.YouCtrl+sharesCreatureTypeWith TriggeredCard
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
|
||||||
SVar:X:Count$Valid Creature.sharesCreatureTypeWith Remembered+YouCtrl
|
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/mana_echoes.jpg
|
Oracle:Whenever a creature enters the battlefield, you may add an amount of {C} equal to the number of creatures you control that share a creature type with it.
|
||||||
Oracle:Whenever a creature enters the battlefield, you may add an amount of {C} equal to the number of creatures you control that share a creature type with it.
|
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
Name:Pyre of Heroes
|
Name:Pyre of Heroes
|
||||||
ManaCost:2
|
ManaCost:2
|
||||||
Types:Artifact
|
Types:Artifact
|
||||||
A:AB$ ChangeZone | Cost$ 2 T Sac<1/Creature> | RememberCostCards$ True | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcEQX+sharesCreatureTypeWith Remembered | References$ X | ChangeNum$ 1 | SorcerySpeed$ True | AILogic$ SacAndUpgrade | StackDescription$ Search your library for a creature card that shares a creature type with the sacrificed creature and has converted mana cost equal to 1 plus that creature's converted mana cost. Put that card onto the battlefield, then shuffle your library. | SubAbility$ DBCleanup | SpellDescription$ Search your library for a creature card that shares a creature type with the sacrificed creature and has converted mana cost equal to 1 plus that creature's converted mana cost. Put that card onto the battlefield, then shuffle your library. Activate this ability only any time you could cast a sorcery.
|
A:AB$ ChangeZone | Cost$ 2 T Sac<1/Creature> | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcEQX+sharesCreatureTypeWith Sacrificed | References$ X | ChangeNum$ 1 | SorcerySpeed$ True | AILogic$ SacAndUpgrade | StackDescription$ SpellDescription | SpellDescription$ Search your library for a creature card that shares a creature type with the sacrificed creature and has converted mana cost equal to 1 plus that creature's converted mana cost. Put that card onto the battlefield, then shuffle your library. Activate this ability only any time you could cast a sorcery.
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:X:Sacrificed$CardManaCost/Plus.1
|
||||||
SVar:X:Remembered$CardManaCost/Plus.1
|
|
||||||
SVar:AIPreference:SacCost$Creature
|
SVar:AIPreference:SacCost$Creature
|
||||||
DeckHas:Ability$Sacrifice
|
DeckHas:Ability$Sacrifice
|
||||||
DeckNeeds:Type$Creature
|
DeckNeeds:Type$Creature
|
||||||
|
|||||||
@@ -4,12 +4,10 @@ Types:Enchantment Aura
|
|||||||
K:Enchant creature
|
K:Enchant creature
|
||||||
A:SP$ Attach | Cost$ 3 G | ValidTgts$ Creature | AILogic$ Pump
|
A:SP$ Attach | Cost$ 3 G | ValidTgts$ Creature | AILogic$ Pump
|
||||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | Description$ Enchanted creature gets +2/+2.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | Description$ Enchanted creature gets +2/+2.
|
||||||
T:Mode$ ChangesZone | ValidCard$ Creature.EnchantedBy | Origin$ Battlefield | Destination$ Graveyard | OptionalDecider$ You | Execute$ TrigReturnOwner | TriggerDescription$ When enchanted creature dies, you may return CARDNAME from your graveyard to the battlefield attached to a creature that shares a creature type with that creature.
|
T:Mode$ ChangesZone | ValidCard$ Creature.EnchantedBy | Origin$ Battlefield | Destination$ Graveyard | OptionalDecider$ You | Execute$ DBReturnChoose | TriggerDescription$ When enchanted creature dies, you may return CARDNAME from your graveyard to the battlefield attached to a creature that shares a creature type with that creature.
|
||||||
SVar:TrigReturnOwner:DB$ Pump | RememberObjects$ TriggeredCard | SubAbility$ DBReturnChoose
|
SVar:DBReturnChoose:DB$ ChooseCard | Choices$ Creature.CanBeEnchantedBy+sharesCreatureTypeWith TriggeredCardLKICopy | ChoiceTitle$ Choose a creature shares a creature type with the former enchanted creature | SubAbility$ DBReturn
|
||||||
SVar:DBReturnChoose:DB$ ChooseCard | Choices$ Creature.sharesCreatureTypeWith Remembered+CanBeEnchantedBy | ChoiceTitle$ Choose a creature shares a creature type with the former enchanted creature | SubAbility$ DBReturn
|
|
||||||
SVar:DBReturn:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | AttachedTo$ ChosenCard | SubAbility$ DBCleanup
|
SVar:DBReturn:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | AttachedTo$ ChosenCard | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/reins_of_the_vinesteed.jpg
|
|
||||||
Oracle:Enchant creature\nEnchanted creature gets +2/+2.\nWhen enchanted creature dies, you may return Reins of the Vinesteed from your graveyard to the battlefield attached to a creature that shares a creature type with that creature.
|
Oracle:Enchant creature\nEnchanted creature gets +2/+2.\nWhen enchanted creature dies, you may return Reins of the Vinesteed from your graveyard to the battlefield attached to a creature that shares a creature type with that creature.
|
||||||
|
|||||||
@@ -2,10 +2,7 @@ Name:Shared Animosity
|
|||||||
ManaCost:2 R
|
ManaCost:2 R
|
||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ AnimosityPump | TriggerDescription$ Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it.
|
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ AnimosityPump | TriggerDescription$ Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it.
|
||||||
SVar:AnimosityPump:DB$ Pump | RememberObjects$ TriggeredAttacker | SubAbility$ AnimosityPump2
|
SVar:AnimosityPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ X | References$ X
|
||||||
SVar:AnimosityPump2:DB$ Pump | Defined$ Remembered | NumAtt$ X | References$ X | SubAbility$ DBCleanup
|
SVar:X:Count$Valid Creature.attacking+NotTriggeredAttacker+sharesCreatureTypeWith TriggeredAttacker
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
|
||||||
SVar:X:Count$Valid Creature.attacking+IsNotRemembered+sharesCreatureTypeWith Remembered
|
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/shared_animosity.jpg
|
|
||||||
Oracle:Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it.
|
Oracle:Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it.
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ PT:3/2
|
|||||||
S:Mode$ Continuous | EffectZone$ All | Affected$ Card.Self | CharacteristicDefining$ True | AddType$ Cleric & Rogue & Warrior & Wizard | Description$ CARDNAME is also a Cleric, Rogue, Warrior, and Wizard.
|
S:Mode$ Continuous | EffectZone$ All | Affected$ Card.Self | CharacteristicDefining$ True | AddType$ Cleric & Rogue & Warrior & Wizard | Description$ CARDNAME is also a Cleric, Rogue, Warrior, and Wizard.
|
||||||
K:Kicker:3
|
K:Kicker:3
|
||||||
T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, reveal the top six cards of your library. You may put a card that shares a creature type with it from among them into your hand. Put the rest on the bottom of your library in a random order.
|
T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, reveal the top six cards of your library. You may put a card that shares a creature type with it from among them into your hand. Put the rest on the bottom of your library in a random order.
|
||||||
SVar:TrigDig:DB$ Dig | DigNum$ 6 | Reveal$ True | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature.sharesCreatureTypeWith Card.Self | DestinationZone$ Hand | DestinationZone2$ Library | LibraryPosition$ -1 | RestRandomOrder$ True
|
SVar:TrigDig:DB$ Dig | DigNum$ 6 | Reveal$ True | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature.sharesCreatureTypeWith Self | DestinationZone$ Hand | DestinationZone2$ Library | LibraryPosition$ -1 | RestRandomOrder$ True
|
||||||
DeckHints:Ability$Party
|
DeckHints:Ability$Party
|
||||||
Oracle:Tajuru Paragon is also a Cleric, Rogue, Warrior, and Wizard.\nKicker {3}\nWhen Tajuru Paragon enters the battlefield, if it was kicked, reveal the top six cards of your library. You may put a card that shares a creature type with it from among them into your hand. Put the rest on the bottom of your library in a random order.
|
Oracle:Tajuru Paragon is also a Cleric, Rogue, Warrior, and Wizard.\nKicker {3}\nWhen Tajuru Paragon enters the battlefield, if it was kicked, reveal the top six cards of your library. You may put a card that shares a creature type with it from among them into your hand. Put the rest on the bottom of your library in a random order.
|
||||||
|
|||||||
Reference in New Issue
Block a user