mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge branch 'Card-Forge:master' into master
This commit is contained in:
@@ -1398,7 +1398,7 @@ public abstract class GameState {
|
||||
c.setTurnInZone(turn);
|
||||
} else if (info.equals("IsToken")) {
|
||||
c.setGamePieceType(GamePieceType.TOKEN);
|
||||
} else if (info.equals("ClassLevel:")) {
|
||||
} else if (info.startsWith("ClassLevel:")) {
|
||||
c.setClassLevel(Integer.parseInt(info.substring(info.indexOf(':') + 1)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,6 +258,10 @@ public class CopyPermanentEffect extends TokenEffectBase {
|
||||
|
||||
if (sa.hasParam("ForEach")) {
|
||||
for (Player p : AbilityUtils.getDefinedPlayers(host, sa.getParam("ForEach"), sa)) {
|
||||
if (sa.hasParam("OptionalForEach") && !activator.getController().confirmAction(sa, null,
|
||||
Localizer.getInstance().getMessage("lblCopyPermanentConfirm") + " (" + p + ")", null)) {
|
||||
continue;
|
||||
}
|
||||
Card proto = getProtoType(sa, c, controller);
|
||||
proto.addRemembered(p);
|
||||
tokenTable.put(controller, proto, numCopies);
|
||||
|
||||
@@ -123,7 +123,6 @@ public class DigEffect extends SpellAbilityEffect {
|
||||
int destZone1ChangeNum = 1;
|
||||
String changeValid = sa.getParamOrDefault("ChangeValid", "");
|
||||
final boolean anyNumber = sa.hasParam("AnyNumber");
|
||||
|
||||
final boolean optional = sa.hasParam("Optional");
|
||||
final boolean skipReorder = sa.hasParam("SkipReorder");
|
||||
|
||||
@@ -300,6 +299,17 @@ public class DigEffect extends SpellAbilityEffect {
|
||||
if (!movedCards.isEmpty()) {
|
||||
game.getAction().reveal(movedCards, chooser, true, Localizer.getInstance().getMessage("lblPlayerPickedChosen", chooser.getName(), ""));
|
||||
}
|
||||
} else if (sa.hasParam("WithDifferentPowers")) {
|
||||
movedCards = new CardCollection();
|
||||
while (!valid.isEmpty() && (anyNumber || movedCards.size() < destZone1ChangeNum)) {
|
||||
String title = Localizer.getInstance().getMessage(movedCards.isEmpty()?"lblChooseCreature":"lblChooseCreatureWithDiffPower");
|
||||
Card choice = p.getController().chooseSingleEntityForEffect(valid, sa, title, true, null);
|
||||
if (choice == null) {
|
||||
break;
|
||||
}
|
||||
movedCards.add(choice);
|
||||
valid = CardLists.getValidCards(valid, "Card.powerNE" + choice.getNetPower(), activator, host, sa);
|
||||
}
|
||||
} else {
|
||||
String prompt;
|
||||
|
||||
|
||||
@@ -7206,6 +7206,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
|
||||
setRegeneratedThisTurn(0);
|
||||
resetShieldCount();
|
||||
setBecameTargetThisTurn(false);
|
||||
setValiant(false);
|
||||
setFoughtThisTurn(false);
|
||||
turnedFaceUpThisTurn = false;
|
||||
clearMustBlockCards();
|
||||
|
||||
@@ -1553,7 +1553,7 @@ public class CardFactoryUtil {
|
||||
final String actualTrigger = "Mode$ Attacks | ValidCard$ Card.Self | Secondary$ True"
|
||||
+ " | TriggerDescription$ Myriad (" + inst.getReminderText() + ")";
|
||||
|
||||
final String copyStr = "DB$ CopyPermanent | Defined$ Self | TokenTapped$ True | Optional$ True | TokenAttacking$ RememberedPlayer & Valid Planeswalker.ControlledBy Remembered"
|
||||
final String copyStr = "DB$ CopyPermanent | Defined$ Self | TokenTapped$ True | OptionalForEach$ True | TokenAttacking$ RememberedPlayer & Valid Planeswalker.ControlledBy Remembered"
|
||||
+ "| ForEach$ OppNonDefendingPlayer | AtEOT$ ExileCombat | CleanupForEach$ True";
|
||||
|
||||
final SpellAbility copySA = AbilityFactory.getAbility(copyStr, card);
|
||||
|
||||
@@ -292,17 +292,6 @@ public class CardProperty {
|
||||
if (!source.isRemembered(p)) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.startsWith("nonRememberedPlayerCtrl")) {
|
||||
if (!source.hasRemembered()) {
|
||||
final Card newCard = game.getCardState(source);
|
||||
if (newCard.isRemembered(controller)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (source.isRemembered(controller)) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("targetedBy")) {
|
||||
if (!(spellAbility instanceof SpellAbility)) {
|
||||
return false;
|
||||
|
||||
@@ -307,7 +307,7 @@ public class ManaCostBeingPaid {
|
||||
sc.xCount = sc.totalCount;
|
||||
}
|
||||
// nothing more left in otherSubtract
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -327,7 +327,7 @@ public class ManaCostBeingPaid {
|
||||
sc.xCount = sc.totalCount;
|
||||
}
|
||||
// nothing more left in otherSubtract
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -347,7 +347,7 @@ public class ManaCostBeingPaid {
|
||||
sc.xCount = sc.totalCount;
|
||||
}
|
||||
// nothing more left in otherSubtract
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -367,7 +367,7 @@ public class ManaCostBeingPaid {
|
||||
sc.xCount = sc.totalCount;
|
||||
}
|
||||
// nothing more left in otherSubtract
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -389,7 +389,7 @@ public class ManaCostBeingPaid {
|
||||
sc.xCount = sc.totalCount;
|
||||
}
|
||||
// nothing more left in otherSubtract
|
||||
return;
|
||||
break;
|
||||
}
|
||||
} else if (sc.xCount > 0) { // X part that can only be paid by specific color
|
||||
if (otherSubtract >= sc.xCount) {
|
||||
@@ -403,7 +403,7 @@ public class ManaCostBeingPaid {
|
||||
sc.totalCount -= otherSubtract;
|
||||
sc.xCount -= otherSubtract;
|
||||
// nothing more left in otherSubtract
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Scheme
|
||||
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ ChooseChampion | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, target opponent chooses a player. Until your next turn, only you and the chosen player can cast spells and attack with creatures.
|
||||
SVar:ChooseChampion:DB$ ChoosePlayer | ValidTgts$ Opponent | Choices$ Player | AILogic$ BestAllyBoardPosition | SubAbility$ PrepChamps
|
||||
SVar:PrepChamps:DB$ Effect | RememberObjects$ ChosenPlayer,You | Name$ Choose Your Champion Scheme | Duration$ UntilYourNextTurn | StaticAbilities$ RestrictAttackers,RestrictCasting
|
||||
SVar:RestrictAttackers:Mode$ CantAttack | EffectZone$ Command | ValidCard$ Creature.nonRememberedPlayerCtrl | Description$ Until your next turn, only you and the chosen player can attack with creatures.
|
||||
SVar:RestrictAttackers:Mode$ CantAttack | EffectZone$ Command | ValidCard$ Creature.!RememberedPlayerCtrl | Description$ Until your next turn, only you and the chosen player can attack with creatures.
|
||||
SVar:RestrictCasting:Mode$ CantBeCast | ValidCard$ Card | Caster$ Player.IsNotRemembered | EffectZone$ Command | Description$ Until your next turn, only you and the chosen player can cast spells.
|
||||
Oracle:When you set this scheme in motion, target opponent chooses a player. Until your next turn, only you and the chosen player can cast spells and attack with creatures.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Doomsday
|
||||
ManaCost:B B B
|
||||
Types:Sorcery
|
||||
A:SP$ ChangeZone | Origin$ Graveyard,Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 5 | SubAbility$ DBChangeZone | RememberChanged$ True | Mandatory$ True | SpellDescription$ Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
|
||||
A:SP$ ChangeZone | Origin$ Graveyard,Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 5 | Shuffle$ False | SubAbility$ DBChangeZone | RememberChanged$ True | Mandatory$ True | SpellDescription$ Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
|
||||
SVar:DBChangeZone:DB$ ChangeZoneAll | Defined$ You | Origin$ Graveyard,Library | Destination$ Exile | ChangeType$ Card.IsNotRemembered | SubAbility$ DBDig
|
||||
SVar:DBDig:DB$ RearrangeTopOfLibrary | Defined$ You | NumCards$ X | SubAbility$ DBLoseLife
|
||||
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ Y | SubAbility$ DBCleanup
|
||||
|
||||
@@ -11,5 +11,5 @@ K:Visit:TrigPump
|
||||
SVar:TrigPump:DB$ Effect | StaticAbilities$ Pump | ValidTgts$ Creature | Triggers$ ExileSelf | RememberObjects$ Targeted | SpellDescription$ Target creature gains flying until end of turn, or until any player rolls a 1, whichever comes first.
|
||||
SVar:Pump:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Flying | Description$ This creature gains flying until end of turn, or until any player rolls a 1.
|
||||
SVar:ExileSelf:Mode$ RolledDie | Execute$ TrigRemove | ValidResult$ EQ1 | Static$ True
|
||||
SVar:TrigRemove:DB$ ChangeZone | Origin$ Command | Defined$ Self | Destination$ Exiled
|
||||
SVar:TrigRemove:DB$ ChangeZone | Origin$ Command | Defined$ Self | Destination$ Exile
|
||||
Oracle:Visit — Target creature gains flying until end of turn, or until any player rolls a 1, whichever comes first.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Fortunate Few
|
||||
ManaCost:3 W W
|
||||
Types:Sorcery
|
||||
A:SP$ RepeatEach | StartingWithActivator$ True | RepeatPlayers$ Player | RepeatSubAbility$ DBChoose | SubAbility$ DBDestroyAll | SpellDescription$ Choose a nonland permanent you don't control, then each other player chooses a nonland permanent they don't control that hasn't been chosen this way. Destroy all other nonland permanents.
|
||||
SVar:DBChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Permanent.nonLand+nonRememberedPlayerCtrl+IsNotRemembered | RememberChosen$ True | ChoiceZone$ Battlefield | AILogic$ WorstCard
|
||||
SVar:DBChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Permanent.nonLand+!RememberedPlayerCtrl+IsNotRemembered | RememberChosen$ True | ChoiceZone$ Battlefield | AILogic$ WorstCard
|
||||
SVar:DBDestroyAll:DB$ DestroyAll | ValidCards$ Permanent.nonLand+IsNotRemembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Choose a nonland permanent you don't control, then each other player chooses a nonland permanent they don't control that hasn't been chosen this way. Destroy all other nonland permanents.
|
||||
|
||||
@@ -2,14 +2,11 @@ Name:Keen Duelist
|
||||
ManaCost:1 B
|
||||
Types:Creature Human Wizard
|
||||
PT:2/2
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigRepeatEach | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, you and target opponent each reveal the top card of your library. You each lose life equal to the mana value of the card revealed by the other player. You each put the card you revealed into your hand.
|
||||
SVar:TrigRepeatEach:DB$ RepeatEach | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RepeatPlayers$ TargetedAndYou | RepeatSubAbility$ DBReveal | SubAbility$ DBRepeatEach
|
||||
SVar:DBReveal:DB$ Dig | Defined$ Player.IsRemembered | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Library | RememberChanged$ True
|
||||
SVar:DBRepeatEach:DB$ RepeatEach | RepeatPlayers$ TargetedAndYou | RepeatSubAbility$ DBImprint | SubAbility$ DBChangeZoneAll
|
||||
SVar:DBImprint:DB$ Pump | ImprintCards$ ValidAll Card.IsRemembered+nonRememberedPlayerCtrl | SubAbility$ DBLoseLife
|
||||
SVar:DBLoseLife:DB$ LoseLife | Defined$ Player.IsRemembered | LifeAmount$ X | SubAbility$ DBClearImprint
|
||||
SVar:DBClearImprint:DB$ Cleanup | ClearImprinted$ True
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigReveal | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, you and target opponent each reveal the top card of your library. You each lose life equal to the mana value of the card revealed by the other player. You each put the card you revealed into your hand.
|
||||
SVar:TrigReveal:DB$ PeekAndReveal | NoPeek$ True | ValidTgts$ Opponent | Defined$ TargetedAndYou | RememberRevealed$ True | SubAbility$ DBRepeatEach
|
||||
SVar:DBRepeatEach:DB$ RepeatEach | RepeatPlayers$ TargetedAndYou | RepeatSubAbility$ DBLoseLife | SubAbility$ DBChangeZoneAll
|
||||
SVar:DBLoseLife:DB$ LoseLife | Defined$ Player.IsRemembered | LifeAmount$ X
|
||||
SVar:DBChangeZoneAll:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Imprinted$CardManaCost
|
||||
SVar:X:Count$ValidLibrary Card.IsRemembered+!RememberedPlayerCtrl$CardManaCost
|
||||
Oracle:At the beginning of your upkeep, you and target opponent each reveal the top card of your library. You each lose life equal to the mana value of the card revealed by the other player. You each put the card you revealed into your hand.
|
||||
|
||||
@@ -6,8 +6,9 @@ T:Mode$ SpellCast | ValidCard$ Instant.wasCastFromYourHandByYou,Sorcery.wasCastF
|
||||
SVar:TrigOpenAttraction:DB$ OpenAttraction
|
||||
A:AB$ ChangeZone | Cost$ X T | ValidTgts$ Instant.cmcEQX+YouCtrl,Sorcery.cmcEQX+YouCtrl | Origin$ Graveyard | Imprint$ True | Destination$ Exile | SubAbility$ DBPutCounter | SpellDescription$ Exile target instant or sorcery card with mana value X from your graveyard and choose an Attraction you control that doesn't have a midway counter on it. Put a midway counter on it. For as long as that Attraction is on the battlefield, whenever you visit it, copy the exiled card. You may cast the copy without paying its mana cost.
|
||||
SVar:DBPutCounter:DB$ PutCounter | Choices$ Attraction.YouCtrl+counters_EQ0_MIDWAY | RememberPut$ True | ChoicePrompt$ Select target attraction you control that doesn't have a midway counter on it | CounterType$ MIDWAY | CounterNum$ 1 | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | Triggers$ TrigVisit,RemoveEffect | RememberObjects$ Remembered | ImprintCards$ Imprinted | Duration$ Permanent
|
||||
SVar:TrigVisit:Mode$ VisitAttraction | ValidCard$ Attraction.IsRemembered | Execute$ TrigCopy | TriggerDescription$ For as long as that Attraction is on the battlefield, whenever you visit it, copy the exiled card. You may cast the copy without paying its mana cost.
|
||||
SVar:DBEffect:DB$ Effect | Triggers$ TrigVisit,RemoveEffect | RememberObjects$ Remembered | ImprintCards$ Imprinted | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
|
||||
SVar:TrigVisit:Mode$ VisitAttraction | ValidPlayer$ You | ValidCard$ Attraction.IsRemembered | Execute$ TrigCopy | TriggerDescription$ For as long as that Attraction is on the battlefield, whenever you visit it, copy the exiled card. You may cast the copy without paying its mana cost.
|
||||
SVar:TrigCopy:DB$ Play | Valid$ Card.IsImprinted | ValidSA$ Spell | ValidZone$ Exile | WithoutManaCost$ True | Amount$ All | Optional$ True | CopyCard$ True
|
||||
SVar:RemoveEffect:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsRemembered | Static$ True | Execute$ ExileEffect
|
||||
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Saw in Half
|
||||
ManaCost:2 B
|
||||
Types:Instant
|
||||
A:SP$ Destroy | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBCopy | RememberLKI$ True | SpellDescription$ Destroy target creature.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Remembered | NumCopies$ 2 | Controller$ TargetedController | SetPower$ dX | SetToughness$ dY | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ If that creature dies this way, its controller creates two tokens that are copies of that creature, except their base power is half that creature's power and their base toughness is half that creature's toughness. Round up each time.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ RememberedLKI | NumCopies$ 2 | Controller$ TargetedController | SetPower$ dX | SetToughness$ dY | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ If that creature dies this way, its controller creates two tokens that are copies of that creature, except their base power is half that creature's power and their base toughness is half that creature's toughness. Round up each time.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Remembered$Amount
|
||||
SVar:dX:RememberedLKI$CardPower/HalfUp
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:A Premonition of Your Demise
|
||||
ManaCost:no cost
|
||||
Types:Scheme
|
||||
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ TrigRepeatEach | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, reveal the top two cards of your library and put them into your hand. When you reveal one or more nonland cards this way, this scheme deals damage equal to their total mana value to any target.
|
||||
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBDig | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, reveal the top two cards of your library and put them into your hand. When you reveal one or more nonland cards this way, this scheme deals damage equal to their total mana value to any target.
|
||||
SVar:DBDig:DB$ Dig | DigNum$ 2 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Hand | RememberChanged$ True | SubAbility$ DBImmediateTrigger
|
||||
SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDamage | SubAbility$ DBCleanup | SpellDescription$ When you reveal one or more nonland cards this way, this scheme deals damage equal to their total mana value to any target.
|
||||
SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Any | NumDmg$ X
|
||||
|
||||
7
forge-gui/res/cardsfolder/upcoming/beastie_beatdown.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/beastie_beatdown.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Beastie Beatdown
|
||||
ManaCost:R G
|
||||
Types:Sorcery
|
||||
A:SP$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | Condition$ Delirium | AILogic$ Fight | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBDealDamage | SpellDescription$ Choose target creature you control and target creature an opponent controls. Delirium — If there are four or more card types among cards in your graveyard, put two +1/+1 counters on the creature you control. The creature you control deals damage equal to its power to the creature an opponent controls.
|
||||
SVar:DBDealDamage:DB$ DealDamage | ValidTgts$ Creature.OppCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature an opponent controls | NumDmg$ X | DamageSource$ ParentTarget
|
||||
SVar:X:ParentTargeted$CardPower
|
||||
Oracle:Choose target creature you control and target creature an opponent controls.\nDelirium — If there are four or more card types among cards in your graveyard, put two +1/+1 counters on the creature you control.\nThe creature you control deals damage equal to its power to the creature an opponent controls.
|
||||
8
forge-gui/res/cardsfolder/upcoming/cackling_slasher.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/cackling_slasher.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Cackling Slasher
|
||||
ManaCost:3 B
|
||||
Types:Creature Human Assassin
|
||||
PT:3/3
|
||||
K:Deathtouch
|
||||
K:etbCounter:P1P1:1:CheckSVar$ Count$Morbid.1.0:CARDNAME enters with a +1/+1 counter on it if a creature died this turn.
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Deathtouch\nCackling Slasher enters with a +1/+1 counter on it if a creature died this turn.
|
||||
10
forge-gui/res/cardsfolder/upcoming/dissection_tools.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/dissection_tools.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Dissection Tools
|
||||
ManaCost:5
|
||||
Types:Artifact Equipment
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDread | TriggerDescription$ When CARDNAME enters, manifest dread, then attach CARDNAME to that creature.
|
||||
SVar:TrigDread:DB$ ManifestDread | RememberManifested$ True | SubAbility$ DBAttach
|
||||
SVar:DBAttach:DB$ Attach | Defined$ Remembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Deathtouch & Lifelink | Description$ Equipped creature has +2/+2 and has deathtouch and lifelink.
|
||||
K:Equip:Sac<1/Creature>
|
||||
Oracle:When Dissection Tools enters, manifest dread, then attach Dissection Tools to that creature.\nEquipped creature has +2/+2 and has deathtouch and lifelink.\nEquip—Sacrifice a creature.
|
||||
@@ -3,5 +3,5 @@ ManaCost:U
|
||||
Types:Instant
|
||||
A:SP$ Effect | ValidTgts$ Creature | RememberObjects$ Targeted | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable | AILogic$ Pump | StackDescription$ {c:Targeted} can't be blocked this turn. | SubAbility$ DBDraw | SpellDescription$ Target creature can't be blocked this turn. Draw a card.
|
||||
SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ This creature can't be blocked this turn.
|
||||
SVar:TrigDraw:DB$ Draw
|
||||
SVar:DBDraw:DB$ Draw
|
||||
Oracle:Target creature can't be blocked this turn.\nDraw a card.
|
||||
10
forge-gui/res/cardsfolder/upcoming/entity_tracker.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/entity_tracker.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Entity Tracker
|
||||
ManaCost:2 U
|
||||
Types:Creature Human Scout
|
||||
PT:2/3
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Enchantment.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Eerie — Whenever an enchantment you control enters and whenever you fully unlock a Room, draw a card.
|
||||
T:Mode$ FullyUnlock | ValidCard$ Card.Room | ValidPlayer$ You | Secondary$ True | Execute$ TrigDraw | TriggerDescription$ Eerie — Whenever an enchantment you control enters and whenever you fully unlock a Room, draw a card.
|
||||
SVar:TrigDraw:DB$ Draw
|
||||
DeckNeeds:Type$Enchantment
|
||||
Oracle:Flash\nEerie — Whenever an enchantment you control enters and whenever you fully unlock a Room, draw a card.
|
||||
@@ -2,6 +2,6 @@ Name:Friendly Teddy
|
||||
ManaCost:2
|
||||
Types:Artifact Creature Bear Toy
|
||||
PT:2/2
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters, each player draws a card.
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME dies, each player draws a card.
|
||||
SVar:TrigDraw:DB$ Draw | Defined$ Player
|
||||
Oracle:When Friendly Teddy enters, each player draws a card.
|
||||
Oracle:When Friendly Teddy dies, each player draws a card.
|
||||
7
forge-gui/res/cardsfolder/upcoming/get_out.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/get_out.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Get Out
|
||||
ManaCost:U U
|
||||
Types:Instant
|
||||
A:SP$ Charm | Choices$ DBCounter,DBChangeZone
|
||||
SVar:DBCounter:DB$ Counter | TargetType$ Spell | ValidTgts$ Creature,Enchantment | TgtPrompt$ Counter target creature or enchantment spell | SpellDescription$ Counter target creature or enchantment spell.
|
||||
SVar:DBChangeZone:DB$ ChangeZone | ValidTgts$ Creature.YouOwn,Enchantment.YouOwn | TgtPrompt$ Select target creature or enchantment you own | TargetMin$ 1 | TargetMax$ 2 | TgtZone$ Battlefield | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return one or two target creatures and/or enchantments you own to your hand.
|
||||
Oracle:Choose one —\n• Counter target creature or enchantment spell.\n• Return one or two target creatures and/or enchantments you own to your hand.
|
||||
7
forge-gui/res/cardsfolder/upcoming/living_phone.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/living_phone.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Living Phone
|
||||
ManaCost:2 W
|
||||
Types:Artifact Creature Toy
|
||||
PT:2/1
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME dies, look at the top five cards of your library. You may reveal a creature card with power 2 or less from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
|
||||
SVar:TrigDig:DB$ Dig | DigNum$ 5 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature.powerLE2 | RestRandomOrder$ True | ForceRevealToController$ True
|
||||
Oracle:When Living Phone dies, look at the top five cards of your library. You may reveal a creature card with power 2 or less from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
|
||||
@@ -0,0 +1,7 @@
|
||||
Name:Monstrous Emergence
|
||||
ManaCost:1 G
|
||||
Types:Sorcery
|
||||
A:SP$ DealDamage | Cost$ 1 G RevealOrChoose<1/Creature> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SpellDescription$ CARDNAME deals damage equal to the power of the creature you chose or the card you revealed to target creature.
|
||||
SVar:X:Revealed$CardPower
|
||||
AI:RemoveDeck:All
|
||||
Oracle:As an additional cost to cast this spell, choose a creature you control or reveal a creature card from your hand.\nMonstrous Emergence deals damage equal to the power of the creature you chose or the card you revealed to target creature.
|
||||
8
forge-gui/res/cardsfolder/upcoming/rip_spawn_hunter.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/rip_spawn_hunter.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Rip, Spawn Hunter
|
||||
Types:Legendary Creature Human Survivor
|
||||
ManaCost:2 G W
|
||||
PT:4/4
|
||||
T:Mode$ Phase | Phase$ Main2 | ValidPlayer$ You | PresentDefined$ Self | IsPresent$ Card.tapped | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ Survival — At the beginning of your second main phase, if CARDNAME is tapped, reveal the top X cards of your library, where X is its power. Put any number of creature and/or Vehicle cards with different powers from among them into your hand. Put the rest on the bottom of your library in a random order.
|
||||
SVar:TrigDig:DB$ Dig | DigNum$ X | AnyNumber$ True | WithDifferentPowers$ True | ChangeValid$ Creature,Vehicle | RestRandomOrder$ True | ForceRevealToController$ True
|
||||
SVar:X:Count$CardPower
|
||||
Oracle:Survival — At the beginning of your second main phase, if Rip, Spawn Hunter is tapped, reveal the top X cards of your library, where X is its power. Put any number of creature and/or Vehicle cards with different powers from among them into your hand. Put the rest on the bottom of your library in a random order.
|
||||
7
forge-gui/res/cardsfolder/upcoming/ripchain_razorkin.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/ripchain_razorkin.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Ripchain Razorkin
|
||||
ManaCost:3 R
|
||||
Types:Creature Human Berserker
|
||||
PT:5/3
|
||||
K:Reach
|
||||
A:AB$ Draw | Cost$ 2 R Sac<1/Land> | SpellDescription$ Draw a card.
|
||||
Oracle:Reach\n{2}{R}, Sacrifice a land: Draw a card.
|
||||
@@ -0,0 +1,12 @@
|
||||
Name:Unidentified Hovership
|
||||
ManaCost:1 W W
|
||||
Types:Artifact Vehicle
|
||||
PT:2/2
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters, exile up to one target creature with toughness 5 or less.
|
||||
SVar:TrigChangeZone:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.toughnessLE5 | TgtPrompt$ Select target creature with toughness 5 or less. | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigDread | TriggerDescription$ When CARDNAME leaves the battlefield, the exiled card's owner manifests dread.
|
||||
SVar:TrigDread:DB$ ManifestDread | DefinedPlayer$ RememberedOwner | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
K:Crew:1
|
||||
Oracle:Flying\nWhen Unidentified Hovership enters, exile up to one target creature with toughness 5 or less.\nWhen Unidentified Hovership leaves the battlefield, the exiled card's owner manifests dread.\nCrew 1
|
||||
6
forge-gui/res/cardsfolder/upcoming/unnerving_grasp.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/unnerving_grasp.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:Unnerving Grasp
|
||||
ManaCost:2 U
|
||||
Types:Sorcery
|
||||
A:SP$ ChangeZone | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Hand | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBDread | SpellDescription$ Return up to one target nonland permanent to its owner's hand. 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:DBDread:DB$ ManifestDread
|
||||
Oracle:Return up to one target nonland permanent to its owner's hand. 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.)
|
||||
@@ -5,7 +5,7 @@ PT:9/9
|
||||
K:Flying
|
||||
K:Lifelink
|
||||
K:Ward:Sac<3/Permanent.nonLand/nonland permanent>
|
||||
R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidCard$ Card.nonToken+YouDontCtrl+OppOwn | ReplaceWith$ Exile | Description$ If a card you didn't control would be put into an opponent's graveyard from anywhere, exile it instead.
|
||||
R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Graveyard | ValidLKI$ Card.nonToken+YouDontCtrl+OppOwn | ReplaceWith$ Exile | Description$ If a card you didn't control would be put into an opponent's graveyard from anywhere, exile it instead.
|
||||
SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
|
||||
S:Mode$ Continuous | Condition$ PlayerTurn | MayPlay$ True | Affected$ Card.ExiledWithSource | AffectedZone$ Exile | MayPlayAltManaCost$ PayLife<ConvertedManaCost> | Description$ During your turn, you may play cards exiled with NICKNAME. If you cast a spell this way, pay life equal to its mana value rather than pay its mana cost.
|
||||
Oracle:Flying, lifelink\nWard—Sacrifice three nonland permanents.\nIf a card you didn't control would be put into an opponent's graveyard from anywhere, exile it instead.\nDuring your turn, you may play cards exiled with Valgavoth. If you cast a spell this way, pay life equal to its mana value rather than pay its mana cost.
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Valgavoth's Onslaught
|
||||
ManaCost:X X G
|
||||
Types:Instant
|
||||
Types:Sorcery
|
||||
A:SP$ ManifestDread | Amount$ X | RememberManifested$ True | SubAbility$ DBPutCounter
|
||||
SVar:DBPutCounter:DB$ PutCounter | Defined$ RememberedCard | CounterType$ P1P1 | CounterNum$ X | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
Name:Winter's Intervention
|
||||
ManaCost:1 B
|
||||
Types:Instant
|
||||
A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 2 | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 2 damage to target creature. You gain 2 life.
|
||||
SVar:DBGainLife:DB$ GainLife | LifeAmount$ 2
|
||||
Oracle:Winter's Intervention deals 2 damage to target creature. You gain 2 life.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,4 +3,4 @@ Name:Commander
|
||||
Type:Casual
|
||||
Subtype:Commander
|
||||
Order:137
|
||||
Banned:Adriana's Valor; Advantageous Proclamation; Ashnod's Coupon; Assemble the Rank and Vile; Backup Plan; Brago's Favor; Double Cross; Double Deal; Double Dip; Double Play; Double Stroke; Double Take; Echoing Boon; Emissary's Ploy; Enter the Dungeon; Flash; Hired Heist; Hold the Perimeter; Hullbreacher; Hymn of the Wilds; Immediate Action; Incendiary Dissent; Iterative Analysis; Lutri, the Spellchaser; Magical Hacker; Mox Lotus; Muzzio's Preparations; Natural Unity; Once More with Feeling; Power Play; R&D's Secret Lair; Richard Garfield, Ph.D.; Secret Summoning; Secrets of Paradise; Sentinel Dispatch; Sovereign's Realm; Staying Power; Summoner's Bond; Time Machine; Unexpected Potential; Weight Advantage; Worldknit; Amulet of Quoz; Bronze Tablet; Contract from Below; Darkpact; Demonic Attorney; Jeweled Bird; Rebirth; Tempest Efreet; Timmerian Fiends; Ancestral Recall; Balance; Biorhythm; Black Lotus; Braids, Cabal Minion; Chaos Orb; Coalition Victory; Channel; Emrakul, the Aeons Torn; Erayo, Soratami Ascendant; Falling Star; Fastbond; Gifts Ungiven; Griselbrand; Iona, Shield of Emeria; Karakas; Leovold, Emissary of Trest; Library of Alexandria; Limited Resources; Mox Emerald; Mox Jet; Mox Pearl; Mox Ruby; Mox Sapphire; Panoptic Mirror; Paradox Engine; Primeval Titan; Prophet of Kruphix; Recurring Nightmare; Rofellos, Llanowar Emissary; Shahrazad; Sundering Titan; Sway of the Stars; Sylvan Primordial; Time Vault; Time Walk; Tinker; Tolarian Academy; Trade Secrets; Upheaval; Yawgmoth's Bargain; Cleanse; Crusade; Imprison; Invoke Prejudice; Jihad; Pradesh Gypsies; Stone-Throwing Devils; Golos, Tireless Pilgrim
|
||||
Banned:Adriana's Valor; Advantageous Proclamation; Ashnod's Coupon; Assemble the Rank and Vile; Backup Plan; Brago's Favor; Dockside Extortionist; Double Cross; Double Deal; Double Dip; Double Play; Double Stroke; Double Take; Echoing Boon; Emissary's Ploy; Enter the Dungeon; Flash; Hired Heist; Hold the Perimeter; Hullbreacher; Hymn of the Wilds; Immediate Action; Incendiary Dissent; Iterative Analysis; Jeweled Lotus; Lutri, the Spellchaser; Magical Hacker; Mana Crypt; Mox Lotus; Muzzio's Preparations; Nadu, Winged Wisdom; Natural Unity; Once More with Feeling; Power Play; R&D's Secret Lair; Richard Garfield, Ph.D.; Secret Summoning; Secrets of Paradise; Sentinel Dispatch; Sovereign's Realm; Staying Power; Summoner's Bond; Time Machine; Unexpected Potential; Weight Advantage; Worldknit; Amulet of Quoz; Bronze Tablet; Contract from Below; Darkpact; Demonic Attorney; Jeweled Bird; Rebirth; Tempest Efreet; Timmerian Fiends; Ancestral Recall; Balance; Biorhythm; Black Lotus; Braids, Cabal Minion; Chaos Orb; Coalition Victory; Channel; Emrakul, the Aeons Torn; Erayo, Soratami Ascendant; Falling Star; Fastbond; Gifts Ungiven; Griselbrand; Iona, Shield of Emeria; Karakas; Leovold, Emissary of Trest; Library of Alexandria; Limited Resources; Mox Emerald; Mox Jet; Mox Pearl; Mox Ruby; Mox Sapphire; Panoptic Mirror; Paradox Engine; Primeval Titan; Prophet of Kruphix; Recurring Nightmare; Rofellos, Llanowar Emissary; Shahrazad; Sundering Titan; Sway of the Stars; Sylvan Primordial; Time Vault; Time Walk; Tinker; Tolarian Academy; Trade Secrets; Upheaval; Yawgmoth's Bargain; Cleanse; Crusade; Imprison; Invoke Prejudice; Jihad; Pradesh Gypsies; Stone-Throwing Devils; Golos, Tireless Pilgrim
|
||||
|
||||
16
forge-gui/res/puzzle/PS_BLB4.pzl
Normal file
16
forge-gui/res/puzzle/PS_BLB4.pzl
Normal file
@@ -0,0 +1,16 @@
|
||||
[metadata]
|
||||
Name:Possibility Storm - Bloomburrow #04
|
||||
URL:https://i2.wp.com/www.possibilitystorm.com/wp-content/uploads/2024/09/latest-scaled.jpg?ssl=1
|
||||
Goal:Win
|
||||
Turns:1
|
||||
Difficulty:Mythic
|
||||
Description:Win this turn. Ensure your solution satisfies all possible blocking decisions. Good luck!
|
||||
[state]
|
||||
turn=1
|
||||
activeplayer=p0
|
||||
activephase=MAIN1
|
||||
p0life=20
|
||||
p0hand=Ornery Tumblewagg;Oko, the Ringleader;Season of Gathering;Shivan Devastator;Ferocification
|
||||
p0battlefield=Innkeeper's Talent|ClassLevel:2;Rampaging Geoderm;Kami of Whispered Hopes|Counters:P1P1=2;Island;Island;Mountain;Mountain;Forest;Forest
|
||||
p1life=17
|
||||
p1battlefield=Fear of Immobility;Shield-Wall Sentinel
|
||||
@@ -445,8 +445,7 @@ public final class CardScriptParser {
|
||||
"YouDontCtrl", "OppCtrl", "ChosenCtrl", "DefenderCtrl",
|
||||
"DefenderCtrlForRemembered", "DefendingPlayerCtrl",
|
||||
"EnchantedPlayerCtrl", "EnchantedControllerCtrl",
|
||||
"RememberedPlayer", "RememberedPlayerCtrl",
|
||||
"nonRememberedPlayerCtrl", "TargetedPlayerCtrl",
|
||||
"RememberedPlayer", "RememberedPlayerCtrl", "TargetedPlayerCtrl",
|
||||
"TargetedControllerCtrl", "ActivePlayerCtrl",
|
||||
"YouOwn", "YouDontOwn", "OppOwn",
|
||||
"TargetedPlayerOwn", "OwnerDoesntControl", "Other", "Self",
|
||||
|
||||
Reference in New Issue
Block a user