mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge branch 'master' into master2
This commit is contained in:
@@ -779,7 +779,6 @@ public final class CardType implements Comparable<CardType>, CardTypeView {
|
||||
if (ctOther == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (final CoreType type : getCoreTypes()) {
|
||||
if (ctOther.hasType(type)) {
|
||||
return true;
|
||||
@@ -788,6 +787,23 @@ public final class CardType implements Comparable<CardType>, CardTypeView {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean sharesAllCardTypesWith(final CardTypeView ctOther) {
|
||||
if (ctOther == null) {
|
||||
return false;
|
||||
}
|
||||
for (final CoreType type : getCoreTypes()) {
|
||||
if (!ctOther.hasType(type)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (final CoreType type : ctOther.getCoreTypes()) {
|
||||
if (!this.hasType(type)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean sharesSubtypeWith(final CardTypeView ctOther) {
|
||||
if (ctOther == null) {
|
||||
return false;
|
||||
|
||||
@@ -30,6 +30,7 @@ public interface CardTypeView extends Iterable<String>, Serializable {
|
||||
public boolean sharesLandTypeWith(final CardTypeView ctOther);
|
||||
public boolean sharesPermanentTypeWith(final CardTypeView ctOther);
|
||||
public boolean sharesCardTypeWith(final CardTypeView ctOther);
|
||||
public boolean sharesAllCardTypesWith(final CardTypeView ctOther);
|
||||
|
||||
boolean isPermanent();
|
||||
boolean isCreature();
|
||||
|
||||
@@ -1870,6 +1870,8 @@ public class GameAction {
|
||||
|
||||
public final CardCollection sacrifice(final Iterable<Card> list, final SpellAbility source, final boolean effect, Map<AbilityKey, Object> params) {
|
||||
Multimap<Player, Card> lki = MultimapBuilder.hashKeys().arrayListValues().build();
|
||||
final boolean showRevealDialog = source != null && source.hasParam("ShowSacrificedCards");
|
||||
|
||||
CardCollection result = new CardCollection();
|
||||
for (Card c : list) {
|
||||
if (c == null) {
|
||||
@@ -1890,6 +1892,10 @@ public class GameAction {
|
||||
if (changed != null) {
|
||||
result.add(changed);
|
||||
}
|
||||
if (showRevealDialog) {
|
||||
final String message = Localizer.getInstance().getMessage("lblSacrifice");
|
||||
game.getAction().reveal(result, ZoneType.Graveyard, c.getOwner(), false, message, false);
|
||||
}
|
||||
}
|
||||
for (Map.Entry<Player, Collection<Card>> e : lki.asMap().entrySet()) {
|
||||
// Run triggers
|
||||
|
||||
@@ -1296,7 +1296,7 @@ public class AbilityUtils {
|
||||
}
|
||||
}
|
||||
} else if (defined.startsWith("ValidStack")) {
|
||||
String valid = changedDef.split(" ", 2)[1];
|
||||
String[] valid = changedDef.split(" ", 2)[1].split(",");
|
||||
for (SpellAbilityStackInstance stackInstance : game.getStack()) {
|
||||
SpellAbility instanceSA = stackInstance.getSpellAbility();
|
||||
if (instanceSA != null && instanceSA.isValid(valid, player, card, sa)) {
|
||||
@@ -2304,6 +2304,10 @@ public class AbilityUtils {
|
||||
return doXMath(player.getNumDrawnThisTurn(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (sq[0].equals("YouDrewLastTurn")) {
|
||||
return doXMath(player.getNumDrawnLastTurn(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (sq[0].equals("YouRollThisTurn")) {
|
||||
return doXMath(player.getNumRollsThisTurn(), expr, c, ctb);
|
||||
}
|
||||
|
||||
@@ -6088,6 +6088,13 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
|
||||
return getType().sharesCardTypeWith(c1.getType());
|
||||
}
|
||||
|
||||
public final boolean sharesAllCardTypesWith(final Card c1) {
|
||||
if (c1 == null) {
|
||||
return false;
|
||||
}
|
||||
return getType().sharesAllCardTypesWith(c1.getType());
|
||||
}
|
||||
|
||||
public final boolean sharesControllerWith(final Card c1) {
|
||||
return c1 != null && getController().equals(c1.getController());
|
||||
}
|
||||
|
||||
@@ -114,6 +114,10 @@ public final class CardPredicates {
|
||||
return c -> c.sharesCardTypeWith(card);
|
||||
}
|
||||
|
||||
public static Predicate<Card> sharesAllCardTypesWith(final Card card) {
|
||||
return c -> c.sharesAllCardTypesWith(card);
|
||||
}
|
||||
|
||||
public static Predicate<Card> sharesCreatureTypeWith(final Card card) {
|
||||
return c -> c.sharesCreatureTypeWith(card);
|
||||
}
|
||||
|
||||
@@ -35,10 +35,7 @@ import forge.util.collect.FCollectionView;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
public class CardProperty {
|
||||
|
||||
@@ -847,6 +844,11 @@ public class CardProperty {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (property.startsWith("sharesAllCardTypesWithOther")) {
|
||||
final String restriction = property.split("sharesAllCardTypesWithOther ")[1];
|
||||
CardCollection list = AbilityUtils.getDefinedCards(source, restriction, spellAbility);
|
||||
list.remove(card);
|
||||
return Iterables.any(list, CardPredicates.sharesAllCardTypesWith(card));
|
||||
} else if (property.startsWith("sharesLandTypeWith")) {
|
||||
final String restriction = property.split("sharesLandTypeWith ")[1];
|
||||
if (!Iterables.any(AbilityUtils.getDefinedCards(source, restriction, spellAbility), CardPredicates.sharesLandTypeWith(card))) {
|
||||
@@ -1503,7 +1505,7 @@ public class CardProperty {
|
||||
}
|
||||
} else if (property.startsWith("power") || property.startsWith("toughness") || property.startsWith("cmc")
|
||||
|| property.startsWith("totalPT") || property.startsWith("numColors")
|
||||
|| property.startsWith("basePower") || property.startsWith("baseToughness")) {
|
||||
|| property.startsWith("basePower") || property.startsWith("baseToughness") || property.startsWith("numTypes")) {
|
||||
int x;
|
||||
int y = 0;
|
||||
String rhs = "";
|
||||
@@ -1529,6 +1531,9 @@ public class CardProperty {
|
||||
} else if (property.startsWith("numColors")) {
|
||||
rhs = property.substring(11);
|
||||
y = card.getColor().countColors();
|
||||
} else if (property.startsWith("numTypes")) {
|
||||
rhs = property.substring(10);
|
||||
y = Iterables.size(card.getType().getCoreTypes());
|
||||
}
|
||||
x = AbilityUtils.calculateAmount(source, rhs, spellAbility);
|
||||
|
||||
|
||||
@@ -105,6 +105,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
private int numPowerSurgeLands;
|
||||
private int numLibrarySearchedOwn; //The number of times this player has searched his library
|
||||
private int numDrawnThisTurn;
|
||||
private int numDrawnLastTurn;
|
||||
private int numDrawnThisDrawStep;
|
||||
private int numRollsThisTurn;
|
||||
private int numExploredThisTurn;
|
||||
@@ -1444,6 +1445,10 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
return numDrawnThisTurn;
|
||||
}
|
||||
|
||||
public final int getNumDrawnLastTurn() {
|
||||
return numDrawnLastTurn;
|
||||
}
|
||||
|
||||
public final int numDrawnThisDrawStep() {
|
||||
return numDrawnThisDrawStep;
|
||||
}
|
||||
@@ -2256,6 +2261,9 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
public final void setLandsPlayedLastTurn(int num) {
|
||||
landsPlayedLastTurn = num;
|
||||
}
|
||||
public final void setNumDrawnLastTurn(int num) {
|
||||
numDrawnLastTurn= num;
|
||||
}
|
||||
|
||||
public final int getInvestigateNumThisTurn() {
|
||||
return investigatedThisTurn;
|
||||
@@ -2475,6 +2483,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
for (final PlayerZone pz : zones.values()) {
|
||||
pz.resetCardsAddedThisTurn();
|
||||
}
|
||||
setNumDrawnLastTurn(getNumDrawnThisTurn());
|
||||
resetNumDrawnThisTurn();
|
||||
resetNumRollsThisTurn();
|
||||
resetNumExploredThisTurn();
|
||||
|
||||
@@ -21,10 +21,11 @@ Types:Legendary Planeswalker Ajani
|
||||
Loyalty:3
|
||||
A:AB$ PutCounterAll | Cost$ AddCounter<2/LOYALTY> | ValidCards$ Cat.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 | Planeswalker$ True | SpellDescription$ Put a +1/+1 counter on each Cat you control.
|
||||
A:AB$ Token | Cost$ AddCounter<0/LOYALTY> | TokenAmount$ 1 | TokenScript$ w_2_1_cat_warrior | TokenOwner$ You | RememberOriginalTokens$ True | SubAbility$ DBImmediateTrig1 | Planeswalker$ True | SpellDescription$ Create a 2/1 white Cat Warrior creature token. When you do, if you control a red permanent other than CARDNAME, he deals damage equal to the number of creatures you control to any target.
|
||||
SVar:DBImmediateTrig1:DB$ ImmediateTrigger | TriggerAmount$ Remembered$Amount | ConditionPresent$ Permanent.Red+YouCtrl+Other | Execute$ TrigDamage | TriggerDescription$ When you do, if you control a red permanent other than CARDNAME, he deals damage equal to the number of creatures you control to any target.
|
||||
SVar:TrigDamage:DB$ DealDamage | NumDmg$ X | ValidTgts$ Any | ConditionPresent$ Permanent.Red+YouCtrl+Other | SubAbility$ DBCleanup | TgtPrompt$ Select any valid target | SpellDescription$ CARDNAME deals damage equal to the number of creatures you control to any target.
|
||||
SVar:DBImmediateTrig1:DB$ ImmediateTrigger | TriggerAmount$ Remembered$Amount | ConditionPresent$ Permanent.Red+YouCtrl+Other | Execute$ TrigDamage | SubAbility$ DBCleanup2 | TriggerDescription$ When you do, if you control a red permanent other than CARDNAME, he deals damage equal to the number of creatures you control to any target.
|
||||
SVar:TrigDamage:DB$ DealDamage | NumDmg$ X | ValidTgts$ Any | ConditionPresent$ Permanent.Red+YouCtrl+Other | TgtPrompt$ Select any valid target | SpellDescription$ CARDNAME deals damage equal to the number of creatures you control to any target.
|
||||
SVar:X:Count$Valid Creature.YouCtrl
|
||||
A:AB$ ChooseCard | Cost$ SubCounter<4/LOYALTY> | Planeswalker$ True | Ultimate$ True | Defined$ Opponent | Choices$ Permanent.nonLand | ChooseEach$ Artifact & Creature & Enchantment & Planeswalker | ControlledByPlayer$ Chooser | Mandatory$ True | Reveal$ True | SubAbility$ SacAllOthers | StackDescription$ SpellDescription | SpellDescription$ Each opponent chooses an artifact, a creature, an enchantment, and a planeswalker from among the nonland permanents they control, then sacrifices the rest.
|
||||
SVar:SacAllOthers:DB$ SacrificeAll | ValidCards$ Permanent.nonLand+OppCtrl+nonChosenCard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||
SVar:DBCleanup2:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:[+2]: Put a +1/+1 counter on each Cat you control.\n[0]: Create a 2/1 white Cat Warrior creature token. When you do, if you control a red permanent other than Ajani, Nacatl Avenger, he deals damage equal to the number of creatures you control to any target.\n[-4]: Each opponent chooses an artifact, a creature, an enchantment and a planeswalker from among the nonland permanents they control, then sacrifices the rest.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Artifact
|
||||
A:AB$ Mana | Cost$ T CollectEvidence<3> | Produced$ Any | SubAbility$ DBPutCounter | SpellDescription$ Add one mana of any color. Put an unlock counter on CARDNAME. (To collect evidence 3, exile cards with total mana value 3 or greater from your graveyard.)
|
||||
SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ UNLOCK
|
||||
A:AB$ Surveil | Cost$ Sac<1/CARDNAME> | Amount$ 3 | SubAbility$ DBDraw | IsPresent$ Card.Self+counters_GE5_UNLOCK | SpellDescription$ Surveil 3, then draw three cards. Activate only if CARDNAME has five or more unlock counters on it.
|
||||
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 3 | SubAbility$ DBGainLife
|
||||
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 3
|
||||
DeckHints:Ability$Graveyard|Mill|Discard|Dredge
|
||||
DeckHas:Ability$Counters|Sacrifice|Surveil
|
||||
Oracle:{T}, Collect evidence 3: Add one mana of any color. Put an unlock counter on Cryptex. (To collect evidence 3, exile cards with total mana value 3 or greater from your graveyard.)\nSacrifice Cryptex: Surveil 3, then draw three cards. Activate only if Cryptex has five or more unlock counters on it.
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:2 U U
|
||||
Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
A:SP$ Attach | Cost$ 2 U U | ValidTgts$ Creature | AILogic$ Curse
|
||||
A:AB$ ChangeZone | Cost$ U | Defined$ EnchantedAndSelf | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBBounce | SpellDescription$ Return enchanted creature and CARDNAME to their owners' hands.
|
||||
A:AB$ ChangeZone | Cost$ U | Defined$ EnchantedAndSelf | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return enchanted creature and CARDNAME to their owners' hands.
|
||||
SVar:NonStackingAttachEffect:True
|
||||
Oracle:Enchant creature\n{U}: Return enchanted creature and Disappear to their owners' hands.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Human Soldier
|
||||
PT:3/3
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChooseThree | TriggerDescription$ When CARDNAME enters, each player sacrifices all lands they control except for three.
|
||||
SVar:TrigChooseThree:DB$ ChooseCard | Defined$ Player | Choices$ Land | ControlledByPlayer$ Chooser | Amount$ 3 | ChoiceTitle$ Choose three lands to keep | Mandatory$ True | Reveal$ True | SubAbility$ SacAllOthers
|
||||
SVar:DBSacrificeAll:DB$ SacrificeAll | ValidCards$ Land.nonChosenCard | SubAbility$ DBCleanup
|
||||
SVar:DBAllOthers:DB$ SacrificeAll | ValidCards$ Land.nonChosenCard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||
DeckHas:Ability$Sacrifice
|
||||
Oracle:When Keldon Firebombers enters, each player sacrifices all lands they control except for three.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:1 U R W
|
||||
Types:Legendary Creature Giant Warrior
|
||||
PT:7/7
|
||||
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigChoose | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, choose an opponent at random. CARDNAME attacks that player this combat if able.
|
||||
SVar:TrigChoose:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | Random$ True | SubAbility$ DBPEffect
|
||||
SVar:TrigChoose:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | Random$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Self | ExileOnMoved$ Battlefield | StaticAbilities$ AttackChosen | Duration$ UntilEndOfCombat
|
||||
SVar:AttackChosen:Mode$ MustAttack | ValidCreature$ Card.IsRemembered | MustAttack$ ChosenPlayer | Description$ EFFECTSOURCE attacks that player this combat if able.
|
||||
Oracle:At the beginning of combat on your turn, choose an opponent at random. Ruhan of the Fomori attacks that player this combat if able.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:The Five Doctors
|
||||
ManaCost:5 G
|
||||
Types:Sorcery
|
||||
K:Kicker:5
|
||||
A:SP$ ChangeZone | Origin$ Library | OriginAlternative$ Graveyard | Destination$ Hand | DestinationAlternative$ Battlefield | DestAltSVar$ MANDATORY Count$TimesKicked | ChangeType$ Doctor | ChangeNum$ 5 | SubAbility$ DBChangeZone | SpellDescription$ Search your library and/or graveyard for up to five Doctor cards, reveal them, and put them into your hand. If you search your library this way, shuffle. If this spell was kicked, put those cards onto the battlefield instead of putting them into your hand.
|
||||
A:SP$ ChangeZone | Origin$ Library | OriginAlternative$ Graveyard | Destination$ Hand | DestinationAlternative$ Battlefield | DestAltSVar$ MANDATORY Count$TimesKicked | ChangeType$ Doctor | ChangeNum$ 5 | SpellDescription$ Search your library and/or graveyard for up to five Doctor cards, reveal them, and put them into your hand. If you search your library this way, shuffle. If this spell was kicked, put those cards onto the battlefield instead of putting them into your hand.
|
||||
DeckNeeds:Type$Doctor
|
||||
DeckHas:Ability$Graveyard
|
||||
Oracle:Kicker {5} (You may pay an additional {5} as you cast this spell.)\nSearch your library and/or graveyard for up to five Doctor cards, reveal them, and put them into your hand. If you search your library this way, shuffle. If this spell was kicked, put those cards onto the battlefield instead of putting them into your hand.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:6 R
|
||||
Types:Sorcery
|
||||
A:SP$ GainControl | ValidTgts$ Opponent | AllValid$ Creature.TargetedPlayerCtrl | NewController$ You | LoseControl$ EOT | RememberControlled$ True | StackDescription$ REP You_{p:You} & target opponent_{p:Targeted} | SubAbility$ DBGainCtrlOpp | SpellDescription$ You and target opponent each gain control of all creatures the other controls until end of turn. Untap those creatures. Those creatures gain haste until end of turn.
|
||||
SVar:DBGainCtrlOpp:DB$ GainControl | AllValid$ Creature.IsNotRemembered+YouCtrl | NewController$ Targeted | LoseControl$ EOT | RememberControlled$ True | StackDescription$ None | SubAbility$ DBUntapAll
|
||||
SVar:DBDUntapAll:DB$ UntapAll | ValidCards$ Creature.IsRemembered | SubAbility$ DBPumpAll
|
||||
SVar:DBUntapAll:DB$ UntapAll | ValidCards$ Creature.IsRemembered | SubAbility$ DBPumpAll
|
||||
SVar:PumpAll:DB$ PumpAll | ValidCards$ Creature.IsRemembered | KW$ Haste | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
AI:RemoveDeck:All
|
||||
|
||||
11
forge-gui/res/cardsfolder/upcoming/anthropede.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/anthropede.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Anthropede
|
||||
ManaCost:3 G
|
||||
Types:Creature Insect
|
||||
PT:3/4
|
||||
K:Reach
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoice | TriggerDescription$ When CARDNAME enters, you may discard a card or pay {2}. When you do, destroy target Room.
|
||||
SVar:TrigChoice:DB$ GenericChoice | Choices$ PayDiscard,Pay2
|
||||
SVar:Pay2:DB$ ImmediateTrigger | UnlessCost$ 2 | UnlessPayer$ You | UnlessSwitched$ True | Execute$ TrigDestroy | SpellDescription$ pay {2}: When you do, destroy target Room.
|
||||
SVar:PayDiscard:DB$ ImmediateTrigger | UnlessCost$ Discard<1/Card> | UnlessPayer$ You | UnlessSwitched$ True | Execute$ TrigDestroy | SpellDescription$ discard a card: When you do, destroy target Room.
|
||||
SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Room | TgtPrompt$ Select target Room
|
||||
Oracle:Reach\nWhen Anthropede enters, you may discard a card or pay {2}. When you do, destroy target Room.
|
||||
@@ -0,0 +1,16 @@
|
||||
Name:Bottomless Pool
|
||||
ManaCost:U
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigReturn | TriggerDescription$ When you unlock this door, return up to one target creature to its owner's hand.
|
||||
SVar:TrigReturn:DB$ ChangeZone | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target creature | Origin$ Battlefield | Destination$ Hand
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, return up to one target creature to its owner's hand.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Locker Room
|
||||
ManaCost:4 U
|
||||
Types:Enchantment Room
|
||||
T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.YouCtrl | TriggerZones$ Battlefield | ValidTarget$ Player | Execute$ TrigDraw | TriggerDescription$ Whenever one or more creatures you control deal combat damage to a player, draw a card.
|
||||
SVar:TrigDraw:DB$ Draw
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhenever one or more creatures you control deal combat damage to a player, draw a card.
|
||||
@@ -0,0 +1,18 @@
|
||||
Name:Charred Foyer
|
||||
ManaCost:3 R
|
||||
Types:Enchantment Room
|
||||
T:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ TrigDig | TriggerDescription$ At the beginning of your upkeep, exile the top card of your library. You may play that card this turn.
|
||||
SVar:TrigDig:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ MayPlay | SubAbility$ DBCleanup | ExileOnMoved$ Exile
|
||||
SVar:MayPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play the exiled card this turn.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nAt the beginning of your upkeep, exile the top card of your library. You may play that card this turn.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Warped Space
|
||||
ManaCost:4 R R
|
||||
Types:Enchantment Room
|
||||
S:Mode$ Continuous | MayPlay$ True | MayPlayAltManaCost$ 0 | MayPlayLimit$ 1 | MayPlayDontGrantZonePermissions$ True | Affected$ Card.YouCtrl+nonLand | AffectedZone$ Exile| Description$ Once each turn, you may pay {0} rather than pay the mana cost for a spell you cast from exile.
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nOnce each turn, you may pay {0} rather than pay the mana cost for a spell you cast from exile.
|
||||
@@ -0,0 +1,16 @@
|
||||
Name:Cramped Vents
|
||||
ManaCost:3 B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigDealDamage | TriggerDescription$ When you unlock this door, this Room deals 6 damage to target creature an opponent controls. You gain life equal to the excess damage dealt this way.
|
||||
SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | NumDmg$ 6 | ExcessSVar$ Excess | SubAbility$ DBGainLife
|
||||
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ Excess
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, this Room deals 6 damage to target creature an opponent controls. You gain life equal to the excess damage dealt this way.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Access Maze
|
||||
ManaCost:5 B B
|
||||
Types:Enchantment Room
|
||||
S:Mode$ Continuous | Condition$ PlayerTurn | Affected$ Card.YouCtrl+nonLand | MayPlayLimit$ 1 | MayPlay$ True | MayPlayAltManaCost$ PayLife<ConvertedManaCost> | MayPlayDontGrantZonePermissions$ True | AffectedZone$ Hand | Description$ Once during each of your turns, you may cast a spell from your hand by paying life equal to its mana value rather than paying its mana cost.
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nOnce during each of your turns, you may cast a spell from your hand by paying life equal to its mana value rather than paying its mana cost.
|
||||
6
forge-gui/res/cardsfolder/upcoming/creeping_peeper.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/creeping_peeper.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Creeping Peeper
|
||||
ManaCost:1 U
|
||||
Types:Creature Eye
|
||||
PT:2/1
|
||||
A:AB$ Mana | Cost$ T | Produced$ U | Amount$ 1 | RestrictValid$ Spell.Enchantment,Static.Unlock,Static.isTurnFaceUp | SpellDescription$ Add {U}. Spend this mana only to cast an enchantment spell, unlock a door, or turn a permanent face up.
|
||||
Oracle:{T}: Add {U}. Spend this mana only to cast an enchantment spell, unlock a door, or turn a permanent face up.
|
||||
@@ -0,0 +1,14 @@
|
||||
Name:Dazzling Theater
|
||||
ManaCost:3 W
|
||||
Types:Enchantment Room
|
||||
S:Mode$ Continuous | Affected$ Card.Creature+YouCtrl+wasCast | AffectedZone$ Stack | AddKeyword$ Convoke | Description$ Creature spells you cast have convoke. (Your creatures can help cast those spells. Each creature you tap while casting a creature spell pays for {1} or one mana of that creature's color.)
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nCreature spells you cast have convoke. (Your creatures can help cast those spells. Each creature you tap while casting a creature spell pays for {1} or one mana of that creature's color.)
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Prop Room
|
||||
ManaCost:2 W
|
||||
Types:Enchantment Room
|
||||
S:Mode$ Continuous | Affected$ Creature.YouCtrl | AddHiddenKeyword$ CARDNAME untaps during each other player's untap step. | Description$ Untap each creature you control during each other player's untap step.
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nUntap each creature you control during each other player's untap step.
|
||||
@@ -0,0 +1,17 @@
|
||||
Name:Defiled Crypt
|
||||
ManaCost:3 B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ ChangesZoneAll | ValidCards$ Card.YouOwn | Origin$ Graveyard | Destination$ Any | TriggerZones$ Battlefield | Execute$ TrigToken | ActivationLimit$ 1 | TriggerDescription$ Whenever one or more cards leave your graveyard, create a 2/2 black Horror enchantment creature token. This ability triggers only once each turn.
|
||||
SVar:TrigToken:DB$ Token | TokenScript$ b_2_2_e_horror
|
||||
AlternateMode:Split
|
||||
DeckHas:Ability$Token
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhenever one or more cards leave your graveyard, create a 2/2 black Horror enchantment creature token. This ability triggers only once each turn.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Cadaver Lab
|
||||
ManaCost:B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigChangeZone | TriggerDescription$ When you unlock this door, return target creature card from your graveyard to your hand.
|
||||
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select up to one target creature | Origin$ Battlefield | Destination$ Hand
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, return target creature card from your graveyard to your hand.
|
||||
14
forge-gui/res/cardsfolder/upcoming/demonic_covenant.txt
Normal file
14
forge-gui/res/cardsfolder/upcoming/demonic_covenant.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Name:Demonic Covenant
|
||||
ManaCost:4 B B
|
||||
Types:Kindred Enchantment Demon
|
||||
T:Mode$ AttackersDeclaredOneTarget | AttackedTarget$ Player | ValidAttackers$ Creature.Demon+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDrawAndDamage | TriggerDescription$ Whenever one or more Demons you control attack a player, you draw a card and lose 1 life.
|
||||
SVar:TrigDrawAndDamage:DB$ Draw | SubAbility$ DBLoseLife
|
||||
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1
|
||||
T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigCreateAndMill | TriggerDescription$ At the beginning of your end step, create a 5/5 black Demon creature token with flying, then mill two cards. If two cards that share all their card types were milled this way, sacrifice CARDNAME.
|
||||
SVar:TrigCreateAndMill:DB$ Token | TokenAmount$ 1 | TokenScript$ b_5_5_demon_flying | TokenOwner$ You | SubAbility$ DBMill
|
||||
SVar:DBMill:DB$ Mill | NumCards$ 2 | RememberMilled$ True | ShowMilledCards$ True | SubAbility$ DBSacrifice
|
||||
SVar:DBSacrifice:DB$ Sacrifice | SacValid$ Self | ShowSacrificedCards$ True | ConditionCheckSVar$ MilledSharesAllTypes | ConditionSVarCompare$ GE2 | SubAbility$ Cleanup
|
||||
SVar:MilledSharesAllTypes:Remembered$Valid Card.sharesAllCardTypesWithOther Remembered
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
DeckHas:Ability$Token|Mill|Sacrifice
|
||||
Oracle:Whenever one or more Demons you control attack a player, you draw a card and lose 1 life.\nAt the beginning of your end step, create a 5/5 black Demon creature token with flying, then mill two cards. If two cards that share all their card types were milled this way, sacrifice Demonic Covenant.
|
||||
@@ -0,0 +1,17 @@
|
||||
Name:Derelict Attic
|
||||
ManaCost:2 B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigDraw | TriggerDescription$ When you unlock this door, you draw two cards and you lose 2 life.
|
||||
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 2 | SubAbility$ DBLoseLife
|
||||
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 2
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, you draw two cards and you lose 2 life.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Widow's Walk
|
||||
ManaCost:3 B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks alone, it gets +1/+0 and gains deathtouch until end of turn.
|
||||
SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +1 | KW$ Deathtouch
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhenever a creature you control attacks alone, it gets +1/+0 and gains deathtouch until end of turn.
|
||||
@@ -0,0 +1,17 @@
|
||||
Name:Funeral Room
|
||||
ManaCost:2 B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature you control dies, each opponent loses 1 life and you gain 1 life.
|
||||
SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife
|
||||
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhenever a creature you control dies, each opponent loses 1 life and you gain 1 life.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Awakening Hall
|
||||
ManaCost:6 B B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigChangeZone | TriggerDescription$ When you unlock this door, return all creature cards from your graveyard to the battlefield.
|
||||
SVar:TrigChangeZone:DB$ ChangeZoneAll | ChangeType$ Creature.YouOwn | Origin$ Graveyard | Destination$ Battlefield
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, return all creature cards from your graveyard to the battlefield.
|
||||
@@ -0,0 +1,16 @@
|
||||
Name:Grand Entryway
|
||||
ManaCost:1 W
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigToken | TriggerDescription$ When you unlock this door, create a 1/1 white Glimmer enchantment creature token.
|
||||
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_e_glimmer | TokenOwner$ You
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, create a 1/1 white Glimmer enchantment creature token.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Elegant Rotunda
|
||||
ManaCost:2 W
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigPutCounter | TriggerDescription$ When you unlock this door, put a +1/+1 counter on each of up to two target creatures.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | CounterNum$ 1 | CounterType$ P1P1 | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature | TgtPrompt$ Select up to 2 target creatures
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, put a +1/+1 counter on each of up to two target creatures.
|
||||
@@ -0,0 +1,18 @@
|
||||
Name:Greenhouse
|
||||
ManaCost:2 G
|
||||
Types:Enchantment Room
|
||||
S:Mode$ Continuous | Affected$ Land.YouCtrl | AddAbility$ AnyMana | Description$ Lands you control have "{T}: Add one mana of any color."
|
||||
SVar:AnyMana:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 1 | SpellDescription$ Add one mana of any color.
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nLands you control have "{T}: Add one mana of any color."
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Rickety Gazebo
|
||||
ManaCost:3 G
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigMill | TriggerDescription$ When you unlock this door, mill four cards, then return up to two permanent cards from among them to your hand.
|
||||
SVar:TrigMill:DB$ Mill | NumCards$ 4 | Defined$ You | RememberMilled$ True | SubAbility$ DBChangeZone
|
||||
SVar:DBChangeZone:DB$ ChangeZone | Hidden$ True | Origin$ Graveyard,Exile | Destination$ Hand | ChangeType$ Permanent.IsRemembered | ChangeNum$ 2 | SelectPrompt$ You may select a permanent card milled this way | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, mill four cards, then return up to two permanent cards from among them to your hand.
|
||||
@@ -3,4 +3,4 @@ ManaCost:no cost
|
||||
Types:Scheme
|
||||
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBCopyCommander | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, create a token that's a copy of your commander, except it's not legendary.
|
||||
SVar:DBCopyCommander:DB$ CopyPermanent | Choices$ Card.IsCommander+YouOwn | Defined$ ValidAll Card.IsCommander+YouOwn | ChoiceTitle$ Choose a commander you own | NonLegendary$ True
|
||||
Oracle:When you set this scheme in motion, create a token that's a copy of your commander, except it's not legendary.\n"This is but a pale shadow of my true form. Cower before it, and despair."
|
||||
Oracle:When you set this scheme in motion, create a token that's a copy of your commander, except it's not legendary.
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Name:Intruding Soulrager
|
||||
ManaCost:U R
|
||||
Types:Creature Spirit
|
||||
PT:2/2
|
||||
K:Vigilance
|
||||
A:AB$ DealDamage | Cost$ T Sac<1/Room> | NumDmg$ 2 | Defined$ Opponent | SubAbility$ DBDraw | SpellDescription$ CARDNAME deals 2 damage to each opponent. Draw a card.
|
||||
SVar:DBDraw:DB$ Draw
|
||||
DeckNeeds:Type$Room
|
||||
Oracle:Vigilance\n{T}, Sacrifice a Room: Intruding Soulrager deals 2 damage to each opponent. Draw a card.
|
||||
6
forge-gui/res/cardsfolder/upcoming/keys_to_the_house.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/keys_to_the_house.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Keys to the House
|
||||
ManaCost:1
|
||||
Types:Artifact
|
||||
A:AB$ ChangeZone | Cost$ 1 T Sac<1/CARDNAME> | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | SpellDescription$ Search your library for a basic land card, reveal it, put it into your hand, then shuffle.
|
||||
A:AB$ UnlockDoor | Cost$ 3 T Sac<1/CARDNAME> | Mode$ LockOrUnlock | ValidTgts$ Room.YouCtrl | TgtPrompt$ Choose target Room you control | SorcerySpeed$ True | SpellDescription$ Lock or unlock a door of target Room you control. Activate only as a sorcery.
|
||||
Oracle:{1}, {T}, Sacrifice Keys to the House: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.\n{3}, {T}, Sacrifice Keys to the House: Lock or unlock a door of target Room you control. Activate only as a sorcery.
|
||||
9
forge-gui/res/cardsfolder/upcoming/marina_vendrell.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/marina_vendrell.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Marina Vendrell
|
||||
ManaCost:W U B R G
|
||||
Types:Legendary Creature Human Warlock
|
||||
PT:3/5
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters, reveal the top seven cards of your library. Put all enchantment cards from among them into your hand and the rest on the bottom of your library in a random order.
|
||||
SVar:TrigDig:DB$ Dig | DigNum$ 7 | Reveal$ True | ChangeNum$ All | ChangeValid$ Enchantment | RestRandomOrder$ True
|
||||
A:AB$ UnlockDoor | Cost$ T | Mode$ LockOrUnlock | ValidTgts$ Room.YouCtrl | TgtPrompt$ Choose target Room you control | SorcerySpeed$ True | SpellDescription$ Lock or unlock a door of target Room you control. Activate only as a sorcery.
|
||||
Oracle:When Marina Vendrell enters, reveal the top seven cards of your library. Put all enchantment cards from among them into your hand and the rest on the bottom of your library in a random order.\n{T}: Lock or unlock a door of target Room you control. Activate only as a sorcery.
|
||||
@@ -0,0 +1,9 @@
|
||||
Name:Mine Is the Only Truth
|
||||
ManaCost:no cost
|
||||
Types:Ongoing Scheme
|
||||
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Command | Execute$ TrigDrawCard | TriggerDescription$ Whenever a player casts a spell, you draw a card.
|
||||
SVar:TrigDrawCard:DB$ Draw | Defined$ You | NumCards$ 1
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | CheckSVar$ DrewLastTurn | Execute$ DBAbandon | TriggerDescription$ At the beginning of your upkeep, if you drew a card last turn, abandon this scheme.
|
||||
SVar:DBAbandon:DB$ Abandon
|
||||
SVar:DrewLastTurn:Count$YouDrewLastTurn
|
||||
Oracle:(An ongoing scheme remains face up until it’s abandoned.)\nWhenever a player casts a spell, you draw a card.\nAt the beginning of your upkeep, if you drew a card last turn, abandon this scheme.
|
||||
13
forge-gui/res/cardsfolder/upcoming/rendmaw_creaking_nest.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/rendmaw_creaking_nest.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Name:Rendmaw, Creaking Nest
|
||||
ManaCost:3 B G
|
||||
Types:Legendary Artifact Creature Scarecrow
|
||||
PT:5/5
|
||||
K:Menace
|
||||
K:Reach
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBTokens | TriggerDescription$ When CARDNAME enters and whenever you play a card with two or more card types, each player creates a tapped 2/2 black Bird creature token with flying. The tokens are goaded for the rest of the game.
|
||||
T:Mode$ SpellCast | ValidCard$ Card.numTypesGE2 | Execute$ DBTokens | Secondary$ True | TriggerDescription$ When CARDNAME enters and whenever you play a card with two or more card types, each player creates a tapped 2/2 black Bird creature token with flying. The tokens are goaded for the rest of the game.
|
||||
T:Mode$ LandPlayed | ValidCard$ Land.numTypesGE2 | Execute$ DBTokens | Secondary$ True | TriggerDescription$ When CARDNAME enters and whenever you play a card with two or more card types, each player creates a tapped 2/2 black Bird creature token with flying. The tokens are goaded for the rest of the game.
|
||||
SVar:DBTokens:DB$ Token | TokenAmount$ 1 | TokenScript$ b_2_2_bird_flying | TokenTapped$ True | TokenOwner$ Player | RememberTokens$ True | SubAbility$ DBGoad
|
||||
SVar:DBGoad:DB$ Goad | Defined$ Remembered | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Menace, reach\nWhen Rendmaw, Creaking Nest enters and whenever you play a card with two or more card types, each player creates a tapped 2/2 black Bird creature token with flying. The tokens are goaded for the rest of the game. (They attack each combat if able and attack a player other than you if able.)
|
||||
@@ -0,0 +1,7 @@
|
||||
Name:Running Is Useless
|
||||
ManaCost:no cost
|
||||
Types:Scheme
|
||||
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBDestroy | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, choose any number of creatures with different mana values. Destroy those creatures.
|
||||
SVar:DBDestroy:DB$ Destroy | ValidTgts$ Creature | TargetsWithDifferentCMC$ True | TargetMax$ AmountToChoose | TargetMin$ 0 | TgtPrompt$ Choose any number of creatures with different mana values.
|
||||
SVar:AmountToChoose:Count$Valid Creature
|
||||
Oracle:When you set this scheme in motion, choose any number of creatures with different mana values. Destroy those creatures.
|
||||
@@ -0,0 +1,16 @@
|
||||
Name:Secret Arcade
|
||||
ManaCost:4 W
|
||||
Types:Enchantment Room
|
||||
S:Mode$ Continuous | Affected$ Permanent.nonLand+YouCtrl | AffectedZone$ Battlefield,Stack | AddType$ Enchantment | Description$ Nonland permanents you control and permanent spells you control are enchantments in addition to their other types.
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nNonland permanents you control and permanent spells you control are enchantments in addition to their other types.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Dusty Parlor
|
||||
ManaCost:2 W
|
||||
Types:Enchantment Room
|
||||
T:Mode$ SpellCast | ValidCard$ Enchantment | ValidActivatingPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast an enchantment spell, put a number of +1/+1 counters equal to that spell's mana value on up to one target creature.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select up to one target creature | TargetMin$ 0 | TargetMax$ 1 | CounterType$ P1P1 | CounterNum$ X
|
||||
SVar:X:TriggeredStackInstance$CardManaCostLKI
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhenever you cast an enchantment spell, put a number of +1/+1 counters equal to that spell's mana value on up to one target creature.
|
||||
@@ -0,0 +1,16 @@
|
||||
Name:Spiked Corridor
|
||||
ManaCost:3 R
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigToken | TriggerDescription$ When you unlock this door, create three 1/1 red Devil creature tokens with "When this creature dies, it deals 1 damage to any target."
|
||||
SVar:TrigToken:DB$ Token | TokenAmount$ 3 | TokenScript$ r_1_1_devil_burn | TokenOwner$ You
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, create three 1/1 red Devil creature tokens with "When this creature dies, it deals 1 damage to any target."
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Torture Pit
|
||||
ManaCost:3 R
|
||||
Types:Enchantment Room
|
||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.YouCtrl,Emblem.YouCtrl | ValidTarget$ Opponent | IsCombat$ False | ReplaceWith$ DamageReplace | Description$ If a source you control would deal noncombat damage to an opponent, it deals that much damage plus 2 instead.
|
||||
SVar:DamageReplace:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ ReplaceCount$DamageAmount/Plus.2
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nIf a source you control would deal noncombat damage to an opponent, it deals that much damage plus 2 instead.
|
||||
@@ -0,0 +1,22 @@
|
||||
Name:Unholy Annex
|
||||
ManaCost:2 B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ At the beginning of your end step, draw a card. If you control a Demon, each opponent loses 2 life and you gain 2 life. Otherwise, you lose 2 life.
|
||||
SVar:TrigDraw:DB$ Draw | SubAbility$ DBBranch
|
||||
SVar:TrigBranch:DB$ Branch | BranchConditionSVar$ X | BranchConditionSVarCompare$ GT0 | TrueSubAbility$ DBLoseLife1 | FalseSubAbility$ DBLoseLife2
|
||||
SVar:DBLoseLife1:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 2 | SubAbility$ DBGainLife
|
||||
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2
|
||||
SVar:DBLoseLife2:DB$ LoseLife | Defined$ You | LifeAmount$ 2
|
||||
SVar:X:Count$Valid Demon.YouCtrl
|
||||
DeckHas:Ability$LifeGain
|
||||
AlternateMode:Split
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nAt the beginning of your end step, draw a card. If you control a Demon, each opponent loses 2 life and you gain 2 life. Otherwise, you lose 2 life.
|
||||
|
||||
ALTERNATE
|
||||
|
||||
Name:Ritual Chamber
|
||||
ManaCost:3 B B
|
||||
Types:Enchantment Room
|
||||
T:Mode$ UnlockDoor | ValidPlayer$ You | ValidCard$ Card.Self | ThisDoor$ True | Execute$ TrigToken | TriggerDescription$ When you unlock this door, create a 6/6 black Demon creature token with flying.
|
||||
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_6_6_demon_flying | TokenOwner$ You
|
||||
Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhen you unlock this door, create a 6/6 black Demon creature token with flying.
|
||||
@@ -0,0 +1,13 @@
|
||||
Name:Your Plans Mean Nothing
|
||||
ManaCost:no cost
|
||||
Types:Scheme
|
||||
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBChoosePlayer | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, any number of target players each discard their hands. Each opponent draws cards equal to the number of cards that player discarded minus one. Then if you discarded a card this way, draw seven cards.
|
||||
SVar:DBChoosePlayer:DB$ Pump | ValidTgts$ Player | TargetMin$ 0 | TargetMax$ PlayerCount | TgtPrompt$ Choose any number of players | SubAbility$ DBRepeat
|
||||
SVar:DBRepeat:DB$ RepeatEach | RepeatPlayers$ Targeted | RepeatSubAbility$ DBDiscard | SubAbility$ DBYouDraw | SpellDescription$ Each opponent draws cards equal to the number of cards that player discarded minus one. Then if you discarded a card this way, draw seven cards.
|
||||
SVar:DBDiscard:DB$ Discard | Defined$ Remembered | Mode$ Hand | RememberDiscarded$ True | SubAbility$ DBDraw
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | Defined$ Player.Opponent+IsRemembered
|
||||
SVar:DBYouDraw:DB$ Draw | Defined$ You | NumCards$ 7 | ConditionDefined$ Remembered | ConditionPresent$ Card.YouOwn | SubAbility$ DBClearRemembered
|
||||
SVar:DBClearRemembered:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:PlayerCount:PlayerCountPlayers$Amount
|
||||
SVar:X:Remembered$Valid Card.RememberedPlayerOwn/Minus.1
|
||||
Oracle:When you set this scheme in motion, any number of target players each discard their hands. Each opponent draws cards equal to the number of cards that player discarded minus one. Then if you discarded a card this way, draw seven cards.
|
||||
16
forge-gui/res/puzzle/PS_DSK1.pzl
Normal file
16
forge-gui/res/puzzle/PS_DSK1.pzl
Normal file
@@ -0,0 +1,16 @@
|
||||
[metadata]
|
||||
Name:Possibility Storm - Duskmourn: House of Horror #01
|
||||
URL:https://i2.wp.com/www.possibilitystorm.com/wp-content/uploads/2024/09/latest-1-scaled.jpg?ssl=1
|
||||
Goal:Win
|
||||
Turns:1
|
||||
Difficulty:Uncommon
|
||||
Description:Win this turn. Ensure your solution satisfies all possible blocking conditions. Good luck!
|
||||
[state]
|
||||
turn=1
|
||||
activeplayer=p0
|
||||
activephase=MAIN1
|
||||
p0life=20
|
||||
p0hand=Pyroclasm;Screaming Nemesis;Nahiri's Sacrifice
|
||||
p0battlefield=Fear of Being Hunted;Diversion Specialist;Chainsaw|Counters:REV=1;Mountain;Mountain;Mountain;Mountain;Mountain
|
||||
p1life=8
|
||||
p1battlefield=Shadow-Rite Priest;Resurrected Cultist;Grasping Longneck
|
||||
7
forge-gui/res/tokenscripts/b_2_2_bird_flying.txt
Normal file
7
forge-gui/res/tokenscripts/b_2_2_bird_flying.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Bird Token
|
||||
ManaCost:no cost
|
||||
Types:Creature Bird
|
||||
Colors:black
|
||||
PT:2/2
|
||||
K:Flying
|
||||
Oracle:Flying
|
||||
7
forge-gui/res/tokenscripts/b_6_6_demon_flying.txt
Normal file
7
forge-gui/res/tokenscripts/b_6_6_demon_flying.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Demon Token
|
||||
ManaCost:no cost
|
||||
Types:Creature Demon
|
||||
Colors:black
|
||||
PT:6/6
|
||||
K:Flying
|
||||
Oracle:Flying
|
||||
Reference in New Issue
Block a user