mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Merge branch 'master' into newmaster
This commit is contained in:
@@ -297,6 +297,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
if (sa.hasParam("DefinedKW")) {
|
if (sa.hasParam("DefinedKW")) {
|
||||||
String defined = sa.getParam("DefinedKW");
|
String defined = sa.getParam("DefinedKW");
|
||||||
String replaced = "";
|
String replaced = "";
|
||||||
|
String name = "";
|
||||||
if (defined.equals("ChosenType")) {
|
if (defined.equals("ChosenType")) {
|
||||||
replaced = host.getChosenType();
|
replaced = host.getChosenType();
|
||||||
} else if (defined.equals("ActivatorName")) {
|
} else if (defined.equals("ActivatorName")) {
|
||||||
@@ -307,12 +308,28 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
PlayerCollection players = AbilityUtils.getDefinedPlayers(host, defined, sa);
|
PlayerCollection players = AbilityUtils.getDefinedPlayers(host, defined, sa);
|
||||||
if (players.isEmpty()) return;
|
if (players.isEmpty()) return;
|
||||||
replaced = "PlayerUID_" + players.get(0).getId();
|
replaced = "PlayerUID_" + players.get(0).getId();
|
||||||
|
name = players.get(0).getName();
|
||||||
} else if (defined.equals("ChosenColor")) {
|
} else if (defined.equals("ChosenColor")) {
|
||||||
String color = host.getChosenColor();
|
String color = host.getChosenColor();
|
||||||
replaced = color.substring(0, 1).toUpperCase() + color.substring(1);
|
replaced = color.substring(0, 1).toUpperCase() + color.substring(1);
|
||||||
}
|
}
|
||||||
for (int i = 0; i < keywords.size(); i++) {
|
for (int i = 0; i < keywords.size(); i++) {
|
||||||
keywords.set(i, TextUtil.fastReplace(keywords.get(i), defined, replaced));
|
keywords.set(i, TextUtil.fastReplace(keywords.get(i), defined, replaced));
|
||||||
|
if (keywords.get(i).startsWith("Protection:") && !name.equals("")) {
|
||||||
|
List<String> parts = Arrays.asList(keywords.get(i).split(":"));
|
||||||
|
String desc = parts.get(2);
|
||||||
|
if (desc.contains("PlayerUID")) {
|
||||||
|
parts.set(2, TextUtil.fastReplace(desc, replaced, name));
|
||||||
|
StringBuilder mod = new StringBuilder();
|
||||||
|
for (int n = 0; n < parts.size(); n++) {
|
||||||
|
mod.append(parts.get(n));
|
||||||
|
if (n + 1 < parts.size()) {
|
||||||
|
mod.append(":");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
keywords.set(i, mod.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sa.hasParam("DefinedLandwalk")) {
|
if (sa.hasParam("DefinedLandwalk")) {
|
||||||
|
|||||||
@@ -3630,6 +3630,9 @@ public class CardFactoryUtil {
|
|||||||
if (kws.length > 3) {
|
if (kws.length > 3) {
|
||||||
effect += "| Exceptions$ " + kws[3];
|
effect += "| Exceptions$ " + kws[3];
|
||||||
}
|
}
|
||||||
|
if (kws.length > 4) {
|
||||||
|
effect += " | ExceptionSBA$ True";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
effect += " | Description$ " + desc;
|
effect += " | Description$ " + desc;
|
||||||
inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic));
|
inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic));
|
||||||
|
|||||||
@@ -3232,6 +3232,17 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
this.updateZoneForView(com);
|
this.updateZoneForView(com);
|
||||||
}
|
}
|
||||||
public String trimKeywords(String keywordTexts) {
|
public String trimKeywords(String keywordTexts) {
|
||||||
|
if (keywordTexts.contains("Protection:")) {
|
||||||
|
List <String> lines = Arrays.asList(keywordTexts.split("\n"));
|
||||||
|
for (int i = 0; i < lines.size(); i++) {
|
||||||
|
if (lines.get(i).startsWith("Protection:")) {
|
||||||
|
List<String> parts = Arrays.asList(lines.get(i).split(":"));
|
||||||
|
if (parts.size() > 2) {
|
||||||
|
keywordTexts = TextUtil.fastReplace(keywordTexts, lines.get(i), parts.get(2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
keywordTexts = TextUtil.fastReplace(keywordTexts,":Card.named", " from ");
|
keywordTexts = TextUtil.fastReplace(keywordTexts,":Card.named", " from ");
|
||||||
keywordTexts = TextUtil.fastReplace(keywordTexts, ":Card.Black:", " from ");
|
keywordTexts = TextUtil.fastReplace(keywordTexts, ":Card.Black:", " from ");
|
||||||
keywordTexts = TextUtil.fastReplace(keywordTexts, ":Card.Blue:", " from ");
|
keywordTexts = TextUtil.fastReplace(keywordTexts, ":Card.Blue:", " from ");
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class StaticAbilityCantAttach {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (checkSBA && stAb.hasParam("Exceptions") && stAb.matchesValidParam("Exceptions", card)) {
|
if ((checkSBA || !stAb.hasParam("ExceptionSBA")) && stAb.hasParam("Exceptions") && stAb.matchesValidParam("Exceptions", card)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -229,7 +229,10 @@ public class ImageCache {
|
|||||||
if (card != null)
|
if (card != null)
|
||||||
imageKey = altState ? card.getCardAltImageKey() : card.getCardImageKey();
|
imageKey = altState ? card.getCardAltImageKey() : card.getCardImageKey();
|
||||||
if (StringUtils.isBlank(imageKey)) {
|
if (StringUtils.isBlank(imageKey)) {
|
||||||
|
if (useDefaultIfNotFound)
|
||||||
return defaultImage;
|
return defaultImage;
|
||||||
|
else
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ User data files, like decks, saved gauntlets, and card pictures, are now stored
|
|||||||
userDir=$HOME/.forge/
|
userDir=$HOME/.forge/
|
||||||
cacheDir=$HOME/.cache/forge/
|
cacheDir=$HOME/.cache/forge/
|
||||||
|
|
||||||
The appdata directory is hidden by default in Win7. Open a Windows Explorer window (or double-click on My Computer] and in the address field type "%appdata%/forge/" (without the quotes). If that doesn't work, type "%appdata"/roaming/forge".
|
The appdata directory is hidden by default in Windows 7 and above versions. Open a Windows Explorer window (or double-click on My Computer] and in the address field type "%appdata%/forge/" (without the quotes). If that doesn't work, type "%appdata"/roaming/forge".
|
||||||
|
|
||||||
cardPicsDir is defined as <cacheDir>/pics/cards/ by default. If you wish to use a non-default directory, please see the forge.profile.preferences.example file located in the Forge installation directory root. You can use this file to, for example, share the card pics directory with another program, such as Magic Workstation.
|
cardPicsDir is defined as <cacheDir>/pics/cards/ by default. If you wish to use a non-default directory, please see the forge.profile.preferences.example file located in the Forge installation directory root. You can use this file to, for example, share the card pics directory with another program, such as Magic Workstation.
|
||||||
|
|
||||||
@@ -108,8 +108,9 @@ If you're trying to run Forge for the first time, but it doesn't open up, you ca
|
|||||||
- Current versions of Forge no longer include a launcher script for Mac OS, proceed to step three.
|
- Current versions of Forge no longer include a launcher script for Mac OS, proceed to step three.
|
||||||
|
|
||||||
3) Run Forge
|
3) Run Forge
|
||||||
- On Windows, just type "forge.exe", Enter
|
- On Windows, just type "forge.exe", Enter (If you have Java 8 installed, use forge-java8.exe)
|
||||||
- On Linux, just type "forge.sh", Enter
|
if you want to run mobile/adventure instead of the desktop interface, type "forge-adventure.exe", Enter (If you have Java 8 installed, use forge-adventure-java8.exe)
|
||||||
|
- On Linux, just type "forge.sh", Enter (if you want to run mobile/adventure interface use forge-adventure.sh)
|
||||||
- Launch the Forge application bundle by double clicking on the program named "Forge.app".
|
- Launch the Forge application bundle by double clicking on the program named "Forge.app".
|
||||||
|
|
||||||
Now you will probably see some sort of Error in the console. the first few lines contain a message that might help you. If you can't fix the problem yourself, please take the complete output and report your problem on the Forum.
|
Now you will probably see some sort of Error in the console. the first few lines contain a message that might help you. If you can't fix the problem yourself, please take the complete output and report your problem on the Forum.
|
||||||
@@ -124,9 +125,7 @@ if you're running Windows 7, make sure you're running the program as an admin, o
|
|||||||
Java Issues:
|
Java Issues:
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Forge is likely to be compatible with Java 7 at this time. Some people have used forge with Java 7 and have not reported any problems that are related to Java 7. If you would like to upgrade to Java 7 and have held off because of Forge then you may upgrade as we do not think that it will cause an incompatibility type of problem. We will continue to try to maintain compatibility with Java 6 for the foreseeable future.
|
Forge requires Java 8 as minimum installed and will not run if you have an earlier version of Java. You will need to update to Java 8. (Java 11 is recommended)
|
||||||
|
|
||||||
Forge requires Java 6 and will not run if you have an earlier version of Java. You will need to update to Java 6.
|
|
||||||
|
|
||||||
|
|
||||||
Card Picture Issues:
|
Card Picture Issues:
|
||||||
@@ -148,11 +147,7 @@ This should save enough bandwidth that everyone will be able to download the new
|
|||||||
Reporting Bugs:
|
Reporting Bugs:
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
To report a bug with an official beta release, please follow the instructions at http://www.slightlymagic.net/wiki/Forge#I_think_I_found_a_bug_in_Forge._What_do_I_do.3F .
|
If you haven't join Forge discord server, you can join at https://discord.gg/3v9JCVr, to report bugs in the help channel.
|
||||||
|
|
||||||
To report a bug (1) with an alpha test, (2) with a nightly build, (3) with something compiled from the official Forge software repository, or (4) with the leading edge (formerly "SVN Bug Reports"), please do not submit your bugs to the forum. Instead, please follow the instructions at http://www.slightlymagic.net/wiki/How_to_File_a_Bug_Report_with_Mantis.
|
|
||||||
|
|
||||||
Forge will now allow you to upload a crash report to the Forge forum at CCGH.
|
|
||||||
|
|
||||||
|
|
||||||
A new very hard tier category in Quest mode:
|
A new very hard tier category in Quest mode:
|
||||||
@@ -511,6 +506,10 @@ We have a forge forum topic at the Collectible Card Games Headquarters web site
|
|||||||
|
|
||||||
http://www.slightlymagic.net/forum/viewtopic.php?f=26&t=8570
|
http://www.slightlymagic.net/forum/viewtopic.php?f=26&t=8570
|
||||||
|
|
||||||
|
Much better to join Forge discord server as most Devs are active here:
|
||||||
|
|
||||||
|
https://discord.gg/3v9JCVr
|
||||||
|
|
||||||
|
|
||||||
Notes about the second Quest World, Jamuraa:
|
Notes about the second Quest World, Jamuraa:
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
@@ -1551,7 +1550,7 @@ Desktop Forge UI has been updated a little bit. In the deck editor, the +/- butt
|
|||||||
|
|
||||||
- Android Updates -
|
- Android Updates -
|
||||||
Some work went into porting the remaining features from desktop version of the game to mobile Forge. In particular, it is now possible to start a match against a particular opponent in Sealed Deck and Booster Draft modes in addition to the gauntlet mode which is still default. The work to enable quest draft tournaments in mobile Forge is ongoing and should not be considered complete at the moment, draft tournaments in quest mode are still not fully functional in mobile Forge and you will not be able to complete a draft tournament yet.
|
Some work went into porting the remaining features from desktop version of the game to mobile Forge. In particular, it is now possible to start a match against a particular opponent in Sealed Deck and Booster Draft modes in addition to the gauntlet mode which is still default. The work to enable quest draft tournaments in mobile Forge is ongoing and should not be considered complete at the moment, draft tournaments in quest mode are still not fully functional in mobile Forge and you will not be able to complete a draft tournament yet.
|
||||||
The mobile port of Forge now features an option "Battlefield Texture Filtering" which smoothes out card art on the battlefield. This can help make the graphics smoother on larger tablet screens (e.g. 12") or when connected to an external monitor. This option, however, comes with a performance penalty and may blur the card art too much on smaller screens. It is disabled by default.
|
The mobile port of Forge now features an option "Battlefield Texture Filtering" which smoothes out card art on the battlefield. This can help make the graphics smoother on larger tablet screens (e.g. 12") or when connected to an external monitor. This option, however, comes with a performance penalty and may blur the card art too much on smaller screens. If you have 3GB RAM or less, disabling this option is recommended (as of Forge 1.6.53 and above versions).
|
||||||
|
|
||||||
v1.5.59 Changes
|
v1.5.59 Changes
|
||||||
===============
|
===============
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ K:Enchant creature
|
|||||||
K:ETBReplacement:Other:ChooseColor
|
K:ETBReplacement:Other:ChooseColor
|
||||||
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color.
|
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color.
|
||||||
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:Card.ChosenColor:Protection from chosenColor:Aura.YouCtrl,Equipment.YouCtrl | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove Auras and Equipment you control that are already attached to it.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor:Aura.YouCtrl,Equipment.YouCtrl:SBA | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove Auras and Equipment you control that are already attached to it.
|
||||||
Oracle:Flash\nEnchant creature\nAs Benevolent Blessing enters the battlefield, choose a color.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Auras and Equipment you control that are already attached to it.
|
Oracle:Flash\nEnchant creature\nAs Benevolent Blessing enters the battlefield, choose a color.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Auras and Equipment you control that are already attached to it.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Name:Confound
|
Name:Confound
|
||||||
ManaCost:1 U
|
ManaCost:1 U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Counter | Cost$ 1 U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Creature | SubAbility$ DBDraw | SpellDescription$ Counter target spell that targets a creature. Draw a card.
|
A:SP$ Counter | Cost$ 1 U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Creature.inZoneBattlefield | SubAbility$ DBDraw | SpellDescription$ Counter target spell that targets a creature. Draw a card.
|
||||||
SVar:DBDraw:DB$ Draw | NumCards$ 1
|
SVar:DBDraw:DB$ Draw | NumCards$ 1
|
||||||
Oracle:Counter target spell that targets a creature.\nDraw a card.
|
Oracle:Counter target spell that targets a creature.\nDraw a card.
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ K:Flying
|
|||||||
K:Haste
|
K:Haste
|
||||||
K:ETBReplacement:Other:ChooseP
|
K:ETBReplacement:Other:ChooseP
|
||||||
SVar:ChooseP:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent | Secretly$ True | SpellDescription$ As CARDNAME enters the battlefield, secretly choose an opponent.
|
SVar:ChooseP:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent | Secretly$ True | SpellDescription$ As CARDNAME enters the battlefield, secretly choose an opponent.
|
||||||
A:AB$ ChangeTargets | Cost$ RevealChosenPlayer | TargetType$ Spell,Activated,Triggered | ValidTgts$ Card | ConditionTargetValidTargeting$ Permanent.YouCtrl,You | ConditionPlayerDefined$ TargetedController | ConditionPlayerContains$ Player.Chosen | GameActivationLimit$ 1 | SpellDescription$ Choose new targets for target spell or ability if it's controlled by the chosen player and if it targets you or a permanent you control. Activate only once.
|
A:AB$ ChangeTargets | Cost$ RevealChosenPlayer | TargetType$ Spell,Activated,Triggered | ValidTgts$ Card | ConditionTargetValidTargeting$ Permanent.YouCtrl+inZoneBattlefield,You | ConditionPlayerDefined$ TargetedController | ConditionPlayerContains$ Player.Chosen | GameActivationLimit$ 1 | SpellDescription$ Choose new targets for target spell or ability if it's controlled by the chosen player and if it targets you or a permanent you control. Activate only once.
|
||||||
Oracle:Flying, haste\nAs Emissary of Grudges enters the battlefield, secretly choose an opponent.\nReveal the player you chose: Choose new targets for target spell or ability if it's controlled by the chosen player and if it targets you or a permanent you control. Activate only once.
|
Oracle:Flying, haste\nAs Emissary of Grudges enters the battlefield, secretly choose an opponent.\nReveal the player you chose: Choose new targets for target spell or ability if it's controlled by the chosen player and if it targets you or a permanent you control. Activate only once.
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ PT:5/5
|
|||||||
K:Flying
|
K:Flying
|
||||||
T:Mode$ ChangesZone | ValidCard$ Card.wasCast+Self | Destination$ Battlefield | Execute$ DBAddTurn | TriggerDescription$ When CARDNAME enters the battlefield, if you cast it, target opponent takes an extra turn after this one. Until your next turn, you and planeswalkers you control gain protection from that player. (You and planeswalkers you control can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
|
T:Mode$ ChangesZone | ValidCard$ Card.wasCast+Self | Destination$ Battlefield | Execute$ DBAddTurn | TriggerDescription$ When CARDNAME enters the battlefield, if you cast it, target opponent takes an extra turn after this one. Until your next turn, you and planeswalkers you control gain protection from that player. (You and planeswalkers you control can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
|
||||||
SVar:DBAddTurn:DB$ AddTurn | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | NumTurns$ 1 | SubAbility$ DBPump
|
SVar:DBAddTurn:DB$ AddTurn | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | NumTurns$ 1 | SubAbility$ DBPump
|
||||||
SVar:DBPump:DB$ Pump | Defined$ You | KW$ Protection:Player.TargetedPlayer:Protection from the target opponent | DefinedKW$ TargetedPlayer | Duration$ UntilYourNextTurn | SubAbility$ DBPumpWalkers
|
SVar:DBPump:DB$ Pump | Defined$ You | KW$ Protection:Player.TargetedPlayer:Protection from TargetedPlayer | DefinedKW$ TargetedPlayer | Duration$ UntilYourNextTurn | SubAbility$ DBPumpWalkers
|
||||||
SVar:DBPumpWalkers:DB$ Pump | Defined$ Valid Planeswalker.YouCtrl | KW$ Protection:Player.TargetedPlayer:Protection from the target opponent | DefinedKW$ TargetedPlayer | Duration$ UntilYourNextTurn
|
SVar:DBPumpWalkers:DB$ Pump | Defined$ Valid Planeswalker.YouCtrl | KW$ Protection:Player.TargetedPlayer:Protection from TargetedPlayer | DefinedKW$ TargetedPlayer | Duration$ UntilYourNextTurn
|
||||||
Oracle:Flying\nWhen Eon Frolicker enters the battlefield, if you cast it, target opponent takes an extra turn after this one. Until your next turn, you and planeswalkers you control gain protection from that player. (You and planeswalkers you control can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
|
Oracle:Flying\nWhen Eon Frolicker enters the battlefield, if you cast it, target opponent takes an extra turn after this one. Until your next turn, you and planeswalkers you control gain protection from that player. (You and planeswalkers you control can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Name:Hindering Light
|
Name:Hindering Light
|
||||||
ManaCost:W U
|
ManaCost:W U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Counter | Cost$ W U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Permanent.YouCtrl,You | SpellDescription$ Counter target spell that targets you or a permanent you control. Draw a card. | SubAbility$ DB
|
A:SP$ Counter | Cost$ W U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Permanent.YouCtrl+inZoneBattlefield,You | SpellDescription$ Counter target spell that targets you or a permanent you control. Draw a card. | SubAbility$ DB
|
||||||
SVar:DB:DB$ Draw | NumCards$ 1
|
SVar:DB:DB$ Draw | NumCards$ 1
|
||||||
Oracle:Counter target spell that targets you or a permanent you control.\nDraw a card.
|
Oracle:Counter target spell that targets you or a permanent you control.\nDraw a card.
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ Name:Hydromorph Guardian
|
|||||||
ManaCost:2 U
|
ManaCost:2 U
|
||||||
Types:Creature Elemental
|
Types:Creature Elemental
|
||||||
PT:2/2
|
PT:2/2
|
||||||
A:AB$ Counter | Cost$ U Sac<1/CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Creature.YouCtrl | SpellDescription$ Counter target spell that targets a creature you control.
|
A:AB$ Counter | Cost$ U Sac<1/CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Creature.YouCtrl+inZoneBattlefield | SpellDescription$ Counter target spell that targets a creature you control.
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
Oracle:{U}, Sacrifice Hydromorph Guardian: Counter target spell that targets a creature you control.
|
Oracle:{U}, Sacrifice Hydromorph Guardian: Counter target spell that targets a creature you control.
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ ManaCost:3 U U
|
|||||||
Types:Creature Elemental Bird
|
Types:Creature Elemental Bird
|
||||||
PT:3/3
|
PT:3/3
|
||||||
K:Flying
|
K:Flying
|
||||||
A:AB$ Counter | Cost$ U Sac<1/CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Creature.YouCtrl | SpellDescription$ Counter target spell that targets a creature you control.
|
A:AB$ Counter | Cost$ U Sac<1/CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | TargetValidTargeting$ Creature.YouCtrl+inZoneBattlefield | SpellDescription$ Counter target spell that targets a creature you control.
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
Oracle:Flying\n{U}, Sacrifice Hydromorph Gull: Counter target spell that targets a creature you control.
|
Oracle:Flying\n{U}, Sacrifice Hydromorph Gull: Counter target spell that targets a creature you control.
|
||||||
|
|||||||
10
forge-gui/res/cardsfolder/upcoming/from_the_catacombs.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/from_the_catacombs.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:From the Catacombs
|
||||||
|
ManaCost:3 B B
|
||||||
|
Types:Sorcery
|
||||||
|
A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | RememberChanged$ True | GainControl$ True | TgtPrompt$ Select target creature card in a graveyard | ValidTgts$ Creature | WithCountersType$ CORPSE | LeaveBattlefield$ Exile | SubAbility$ DBInitiative | SpellDescription$ Put target creature card from a graveyard onto the battlefield under your control with a corpse counter on it. If that creature would leave the battlefield, exile it instead of putting it anywhere else.
|
||||||
|
SVar:DBInitiative:DB$ TakeInitiative | SpellDescription$ You take the initiative.
|
||||||
|
K:Escape:3 B B ExileFromGrave<5/Card.Other/other>
|
||||||
|
SVar:AIPreference:ExileFromGraveCost$Card.YouOwn+Other+inZoneGraveyard
|
||||||
|
DeckHas:Ability$Graveyard
|
||||||
|
DeckHints:Ability$Discard
|
||||||
|
Oracle:Put target creature card from a graveyard onto the battlefield under your control with a corpse counter on it. If that creature would leave the battlefield, exile it instead of putting it anywhere else.\nYou take the initiative.\nEscape—{3}{B}{B}, Exile five other cards from your graveyard. (You may cast this card from your graveyard for its escape cost.)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Guildsworn Prowler
|
||||||
|
ManaCost:1 B
|
||||||
|
Types:Creature Tiefling Rogue Assassin
|
||||||
|
PT:2/1
|
||||||
|
K:Deathtouch
|
||||||
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self+notblocking | Execute$ TrigDraw | TriggerDescription$ When CARDNAME dies, if it wasn't blocking, draw a card.
|
||||||
|
SVar:TrigDraw:DB$ Draw
|
||||||
|
Oracle:Deathtouch\nWhen Guildsworn Prowler dies, if it wasn't blocking, draw a card.
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
Name:Horn of Valhalla
|
||||||
|
ManaCost:1 W
|
||||||
|
Types:Artifact Equipment
|
||||||
|
S:Mode$ Continuous | Affected$ Card.EquippedBy | AddPower$ X | AddToughness$ X | Description$ Equipped creature gets +1/+1 for each creature you control.
|
||||||
|
SVar:X:Count$Valid Creature.YouCtrl
|
||||||
|
SVar:BuffedBy:Creature
|
||||||
|
K:Equip:3
|
||||||
|
AlternateMode:Adventure
|
||||||
|
Oracle:Equipped creature gets +1/+1 for each creature you control.\nEquip {3}
|
||||||
|
|
||||||
|
ALTERNATE
|
||||||
|
|
||||||
|
Name:Ysgard's Call
|
||||||
|
ManaCost:X W W
|
||||||
|
Types:Sorcery Adventure
|
||||||
|
A:SP$ Token | TokenAmount$ X | TokenScript$ w_1_1_soldier | SpellDescription$ Create X 1/1 white Soldier creature tokens. (Then exile this card. You may cast the artifact later from exile.)
|
||||||
|
SVar:X:Count$xPaid
|
||||||
|
DeckHas:Ability$Token & Type$Soldier
|
||||||
|
Oracle:Create X 1/1 white Soldier creature tokens. (Then exile this card. You may cast the artifact later from exile.)
|
||||||
8
forge-gui/res/cardsfolder/upcoming/inspiring_leader.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/inspiring_leader.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Inspiring Leader
|
||||||
|
ManaCost:2 W
|
||||||
|
Types:Legendary Enchantment Background
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.IsCommander+YouOwn | AddStaticAbility$ BuffTokens | Description$ Commander creatures you own have "Creature tokens you control get +2/+2."
|
||||||
|
SVar:BuffTokens:Mode$ Continuous | Affected$ Creature.token+YouCtrl | AddPower$ 2 | AddToughness$ 2 | Description$ Creature tokens you control get +2/+2.
|
||||||
|
DeckNeeds:Ability$Token
|
||||||
|
AI:RemoveDeck:NonCommander
|
||||||
|
Oracle:Commander creatures you own have "Creature tokens you control get +2/+2."
|
||||||
12
forge-gui/res/cardsfolder/upcoming/intellect_devourer.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/intellect_devourer.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Name:Intellect Devourer
|
||||||
|
ManaCost:3 B
|
||||||
|
Types:Creature Horror
|
||||||
|
PT:2/4
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ Devour Intellect — When CARDNAME enters the battlefield, each opponent exiles a card from their hand until CARDNAME leaves the battlefield.
|
||||||
|
SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | DefinedPlayer$ Opponent | Mandatory$ True | ChangeType$ Card | Hidden$ True | Duration$ UntilHostLeavesPlay | IsCurse$ True | RememberChanged$ True
|
||||||
|
S:Mode$ Continuous | MayPlay$ True | MayPlayIgnoreColor$ True | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Body Thief — You may play lands and cast spells from among cards exiled with CARDNAME. If you cast a spell this way, you may spend mana as though it were mana of any color to cast it.
|
||||||
|
T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBForget
|
||||||
|
SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard
|
||||||
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
Oracle:Devour Intellect — When Intellect Devourer enters the battlefield, each opponent exiles a card from their hand until Intellect Devourer leaves the battlefield.\nBody Thief — You may play lands and cast spells from among cards exiled with Intellect Devourer. If you cast a spell this way, you may spend mana as though it were mana of any color to cast it.
|
||||||
@@ -10,5 +10,6 @@ SVar:EOTSac:Mode$ Phase | Phase$ End of Turn | Execute$ TrigSac | TriggerDescrip
|
|||||||
SVar:TrigSac:DB$ Sacrifice
|
SVar:TrigSac:DB$ Sacrifice
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
DeckHas:Ability$Token|Sacrifice
|
DeckHas:Ability$Token|Sacrifice
|
||||||
|
DeckHints:Type$Adventure & Keyword$Foretell
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
Oracle:Flying/nWhenever you cast a spell from exile, copy it. You may choose new targets for the copy. If it's a permanent spell, the copy gains haste and "At the beginning of the end step, sacrifice this permanent." (A copy of a permanent spell becomes a token.)
|
Oracle:Flying/nWhenever you cast a spell from exile, copy it. You may choose new targets for the copy. If it's a permanent spell, the copy gains haste and "At the beginning of the end step, sacrifice this permanent." (A copy of a permanent spell becomes a token.)
|
||||||
|
|||||||
14
forge-gui/res/cardsfolder/upcoming/noble_heritage.txt
Normal file
14
forge-gui/res/cardsfolder/upcoming/noble_heritage.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Name:Noble Heritage
|
||||||
|
ManaCost:1 W
|
||||||
|
Types:Legendary Enchantment Background
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.IsCommander+YouOwn | AddTrigger$ ETB & Upkeep | Description$ Commander creatures you own have "When this creature enters the battlefield and at the beginning of your upkeep, each player may put two +1/+1 counters on a creature they control. For each opponent who does, you gain protection from that player until your next turn." (You can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
|
||||||
|
SVar:ETB:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ When this creature enters the battlefield and at the beginning of your upkeep, each player may put two +1/+1 counters on a creature they control. For each opponent who does, you gain protection from that player until your next turn.
|
||||||
|
SVar:Upkeep:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChoose | Secondary$ True | TriggerDescription$ When this creature enters the battlefield and at the beginning of your upkeep, each player may put two +1/+1 counters on a creature they control. For each opponent who does, you gain protection from that player until your next turn.
|
||||||
|
SVar:TrigChoose:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChoice | SubAbility$ DBPutCounter
|
||||||
|
SVar:DBChoice:DB$ ChooseCard | Defined$ Player.IsRemembered | Amount$ 1 | MinAmount$ 0 | Choices$ Creature.RememberedPlayerCtrl | RememberChosen$ True
|
||||||
|
SVar:DBPutCounter:DB$ PutCounterAll | ValidCards$ Creature.IsRemembered | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBRememberPlayer
|
||||||
|
SVar:DBRememberPlayer:DB$ Pump | RememberObjects$ RememberedController | SubAbility$ DBRepeatEach
|
||||||
|
SVar:DBRepeatEach:DB$ RepeatEach | RepeatPlayers$ Opponent.IsRemembered | RepeatSubAbility$ DBPump | SubAbility$ DBCleanup
|
||||||
|
SVar:DBPump:DB$ Pump | Defined$ You | KW$ Protection:Player.RememberedPlayer:Protection from RememberedPlayer | DefinedKW$ RememberedPlayer | Duration$ UntilYourNextTurn
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True | ClearRemembered$ True
|
||||||
|
Oracle:Commander creatures you own have "When this creature enters the battlefield and at the beginning of your upkeep, each player may put two +1/+1 counters on a creature they control. For each opponent who does, you gain protection from that player until your next turn." (You can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
|
||||||
Reference in New Issue
Block a user