xCount now supports EquippedCardManaCost.
Added the code block to support "SetAsKicked" to mark nonPermanent kicked spells from the script line. Will start converting soon.
Added Crown of Awe
Added Crown of Fury
Added Crown of Suspicion
Added Crown of Vigor
isValid supports "sharesColorWith Enchanted" where Enchanted is same as the defined type so will find an aura sacrificed as a cost.
Added "CARDNAME can't be equipped." keyword and corrected some "CARDNAME can't be enchanted." implementation. They cards can now be targeted human, although attachment will fail with a relevant log message.
Small change to ChooseNumber to make Min/Max read SVars.
Small change to ChooseNumber to allow different titles for the list block to expand its uses slightly.
Changed title of choice list for Ashling's Prerogative
new prefix for sealed magic product images (to store them in a different folder)
removed CardList.allAll(Array) and matching ctor, added addAll(Iterable<Card>) - in most cases of usage list was converted to array and while added to cardlist it was added to underlying list again.
Predicates for edition's legality in formats moved to CardEdition, so that global references in FormatUtils were eliminated
FileSection now trims its tree keys too, editions are parsed by FileSection class
One can read values from KeyValue lines via FileSection class (it parses by itself and provides a default value for bad parses)
CustomLimited is more related to limited games and its moved to game.limited package
*Added AICheckSVar hints to Obstinate Familiar.
*Added the ability to get at Replaced-variables the same way as triggered-variables.
*Let ReplacementEffects be secondary (same as for triggers).
Easy accessors added FView and FControl to various components throughout UI.
Mishmash of methods in "Display" interface attached as appropriate to singletons.
AllZone updated to remove display and one or two others in favor of singletons, for future deprecation.
Some renaming for consistency.
Skins folder moved out of "images", which will be deprecated soon.
FControl refactored to reuse single instance of each UI state.
FPanels now support background textures and foreground images.
FPanels now have a stretch foreground image option.
FPanels now have optional hover and select behavior.
Slight performance improvement over previous FPanel versions (paintComponent trimmed down).
Made some small fixes to the rebel skin's sprite that might have caused mana symbol problems.
Replaced the low resolution card state icons in the default sprite_icons with higher res ones.
Skin enums sub-categorized to allow clearer access.
Default coordinates added to skin enums, so declaration and positioning happen simultaneously (in one place).
Removed old icons.
*Corrected cards that replace damage dealt with the same damage in a different amount. (Fixes Divine Presence + Sword of X and Y)
Akki Lavarunner // Tok-Tok Volcano Born
Curse of Bloodletting
Divine Presence
Furnace of Rath
Gratuitous Violence
Lashknife Barrier
1) preserve original card picture on battlefield
2) verified basic auras behave as expected when changeing creatures
3) little fix in stack description (was printing "null")
Thread safety issues addressed for all Start buttons.
Further optimizations made to listeners and architecture in constructed, sealed, draft, and quest.
*Added "Moved" as a replacable event. Will look further towards replacing the "exile instead of graveyard" type keywords.
*All this to add to the DKA branch:that horrible horrible card, Grafdigger's Cage.
- All symbols now included in sprite (but not accessible yet)
- Default symbols will load if preferred skin does not have that symbol
- Phase color swatch added (also not accessed yet)
- All skins updated to reflect this
Moved keyboard shortcut setting UI into home screen.
Implemented on-the-fly detach/reattach for modified shortcuts.
Put shortcuts into a top-level scope, not only for match UI.
header_text=/*\n * Forge\: Play Magic\: the Gathering.\n * Copyright (C) 2011 Nate\n *\n * This program is free software\: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http\://www.gnu.org/licenses/>.\n */
header_text=/*\n * Forge\: Play Magic\: the Gathering.\n * Copyright (C) 2011 Forge Team\n *\n * This program is free software\: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n * \n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n * \n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http\://www.gnu.org/licenses/>.\n */
(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com)
9919 cards in total.
10524 cards in total.
A new branch was created for supporting "Produced$ Any" in mana abilities (Issue 266). Some other bugs/problems with paying mana costs were uncovered and fixed. This work was recently merged into the main trunk.
We have a new skin by WompWomp named "Firebloom" included in this version.
A new Scriptable Replacement Effects system has been recently added to the SVN. The structure is very similar to Triggers (So there's currently a little code duplication), there is a Handler class, a base class for Replacement effects and subclasses for each event that can be replaced.
The avatar-switch bug at runtime should now be fixed.
Several people have noticed a crash report stating that "Buffers have not been created". We hope to have this fixed in the near future. It has been pointed out that:
"Parts of Swing use EventQueue by themselves, this means your Swing code executes in main thread part executes in EDT and as Swing isn't thread safe this leads to elusive errors like this. One of the reasons of this error is that the frame might not be fully constructed before buffers are created -> race condition between the threads."
Several people have noticed forge slowing down after playing a number of matches without quitting forge in between the matches that are played. The new UI may be involved somehow. We also hope to have this figured out and fixed in the near future. Please be patient in the meanwhile. A recent fix was implemented that should improve the slowdown problem somewhat.
A lot of time and effort have gone into fixing the memory leak problems that were recently noticed and reported to the dev team. Doublestrike and Slapshot deserve our applause and we are very thankful. People should be able to now play long multi match sessions without noticing slow downs and pauses.
The quest mode plant wall's Deathtouch ability was deemed to be too strong against the AI's attack code and this ability was changed to Wither in this version. There are plans to make further adjustments to the pets as part of the upcoming forge 1.2.7 release.
The Forge archive includes a readme.txt file and we ask that you spend a few minutes reading this file as it contains some information that may prove usefull. We do tend to update this file at times and you should quickly read this file and look for new information for each and every new release. Thank you.
We have changed the archival format used for the Forge distributions from ".zip" to ".tar.bz2". There are utilities for Windows, Mac OS and the various *nix's that can be used to decompress these ".tar.bz2" archives. We recommend that you decompress the Forge archive into a new and unused folder.
Some people use the Windows application 7zip. This utility can be found at http://www.7-zip.org/download.html. Mac users can double click on the archive and the application Archive Utility will launch and extract the archive. Mac users do not need to download a separate utility.
Fixes/Features:
- Cleared out the changes.txt file, is ready for new material.
- A few CheckStyle fixes.
- Issue 266: Creating branch for changes for supporting "Produced$ Any" in mana abilities
- Issue 266: added to manamorphose to produce any mana branch
- Issue 266: update isBasic method of AbilityMana to account for any mana
- Renamed the Ore Gorger card txt file as it had an unneeded space character.
- Issue 266: significantly reworked logic in payManaCost to account for mana sources that produce any color and several other bugs
- Issue 266: modified City of Brass, Glimmervoid, and Mox Opal to use "Produced$ Any"
- Issue 266: merged trunk:12895-12901 revisions into branch
- Issue 266: modified to account for lands that use "Produced$ Any"
- Issue 266: modified to allow reflected mana to interact with any color sources
- Issue 266: removed getManaProduced overrides from spells and drawbacks
- Warren Instigator was missing the Berseker type
- use constants to show Tabber tabs instead of just using raw numbers everywhere.
- Fixing Description of Skyrider Trainee
- if things on the stack have a sourceCard of some kind of land, make sure the stack has a color (brownish; also used for artifacts). This would be for things like the triggered ability of City of Brass.
- Added a fluff piece to the changes.txt file.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- fix ability cost of Flame Elemental (thanks squee1968)
- fix missing subability of Green Sun's Zenith (thanks squee1968)
- gave Soaratmi Savant Flying (thanks squee1968)
- restored the functionality to show Stack cards in Card Picture/Detail when moused over. This functionality was present in 1.1.8, but was removed in 1.2.0 due to a bug. I confirmed the bug was also present in 1.1.8, so we are no worse off than we were before and there have been complaints on the forum about this in the 1.2.0 UI.
- in DigUntil resolve, game cannot continue if revealed is empty. This is fixed.
- add 10E SetInfo to Counsel of the Soratami
- Issue 266: add color choice logic for future use by AI
- fix typo in Tourach's Gate
- Issue 266: changed sorting of mana sources to account of any color mana
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Issue 266: add logic to make ManaNeededToAvoidNegativeEffect mana a mandatory part of the cost for the AI
- Removing hardcoded references to Mana Pool as a card.
- Converted City of Brass, Glimmervoid, and Mox Opal to use "Any" mana keyword. Added Manamorphose
- Added scriptable Replacement Effects. The system and syntax is very similar to the trigger system.For examples see the cards below or the forge.card.replacement package.
- Converted to script:
Benevolent Unicorn
Boon Reflection
Divine Presence
Dralnu, Lich Lord
Fire Servant
Forethought Amulet
Furnace of Rath
Gratuitous Violence
Lashknife Barrier
Lichentrope
Phytohydra
Pyromancer's Swath
Sulfuric Vapors
Sulfuric Vortex
- Corrected name of Akki Lavarunner / Tok-Tok, Volcano Born
- Added a fluff piece to the changes.txt file.
- Checkstyle.
- Coldsteel Heart is now a Snow Artifact.
- convert cards to any mana keyword (A-B)
- convert cards to any mana keyword (C-F)
- convert cards to any mana keyword (G-K)
- convert cards to any mana keyword (L-M)
- convert cards to any mana keyword (N-R)
- Fixed Remember syntax for Wormfang Behemoth.
- Make sure to actually run replacement effect checks for creature damage.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Consolidated ReplacementEffect.matchesValid() and Trigger.matchesValid() (Exactly the same method) into AllZoneUtil.matchesValid().
- Fixed description for Vigor.
- Fixed "You may have CARDNAME assign its combat damage as though it weren't blocked." allowing the AI to deal damage twice.
- Cleared out the changes.txt file, now ready for new material.
- Removed Soltari Guerrillas. 2 different objects need to be remembered and differentiated.
- Added the keyword "Alternative Cost XXX".
- CheckStyle.
- CheckStyle.
- Updated Furnace Dragon and Iname as One to check for 'cast from hand' restriction.
- Ran Oracle and set info scripts.
- CheckStyle.
- checkstyle
- checkstyle
- Add package javadoc
- Meet George. George is a base class for Triggers and ReplacementEffects. George is content with his job.
- convert cards to any mana keyword (S-T)
- convert cards to any mana keyword (U-Z)
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- fix an observer leak on InputControl
- checkstyle and javadoc fixes
- PMD fixes
- Added CheckThirdSVar and CheckFourthSVar and accompanying parameters to StaticAbility.
- Removed some unnecessary variables of AF Charm.
- Fixed AF Charm.
- Fixed regression - draft from cube should have each card unique
- Updated SkieraCube
- Fixed Part Water spell type
- Fixed some possible NPE's in getDefinedPlayers.
- Added basic AI support for AF Charm.
- QuestController introduced, 1st stage of quest saves refactoring
- Ran scripts.
- Added some missing functions to AF DestroyAll (namely a proper stack description and doTriggerAI).
- The AI can now use Austere Command.
- Tweaked the AI of AF ChangeZone.
- The AI can now use Incendiary Command and Primal Command.
- Enabled Entomber Exarch for the AI.
- Fixed stack descriptions for Bazaar Trader and Zedruu, the Greathearted
- Added the recent commit logs to changes.txt.
- Checkstyle: Removed trailing spaces from new CheckSVars
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Minion Reflector.
- GUI - remove anything that was checking the unused Constant.Runtime.OLDGUI
- little javadoc fixes in DeckEditorDraft
- delte the GuiDisplay class. It is no longer used.
- fix the Observers leak on MagicStack
- Stack Instance not resetting Paid Hash before setting new one
- gut the OldGuiNewGame class. It now contains only static elements related to preferences and loading dynamic game data (which needs to be moved to a different class)
- fix Hurkyl's Recall (looks like the Java code inadvertently got deleted)
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- delete MenuItemHowToPlay (it is no longer used)
- consolidate deleteObservers in a deinitMatch method. Hooked this method up in the WinLoseFrame and QuestWinLoseHandler.
- update some Magic Numbers to constants
- delete file GuiHomeScreen.java (it is no longer used)
- update another Magic Number to constant
- move loadDynamicGameData to Main
- fix value setting when CardSize radio buttons are selected.
- remove references to OldGuiNewGame
- delete OldGuiNewGame
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- more magic number converted to constants in ControlAllUI
- remove unused function in GuiDisplayUtil
- Fixed the AI not playing card draw spells, even when the resulting number of cards in hand is lower than 8 cards (it was not considering losing the card used).
- Fixed Dream Fighter.
- Fixed Graven Dominator.
- Little tweak in gainLifeCanPlayAI.
- Updated evaluateCreature.
- Little tweaks for the Da Vinci decks.
- Fixed two scripts.
- Added some AI checks to make better use of Steel Overseer.
- Added RemAIDeck:True to Orzhov Pontiff.
- ran Oracle and Setinfo scripts
- fixed remove counter trigger on Witherscale Wurm
- Fixed Vodalian Illusionist.
- Fixed Predatory Urge.
- Added the prefix "SVar$" to xCount (formerly only available in AbilityFactory.calculateAmount).
- Fixed another issue with Conclave's Blessing.
- Fixed the discarded list of CostDiscard containing all cards twice if the mode is Self, LastDrawn or Random (the cards are added to the list in doDiscard).
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added the options "LifeYouLostThisTurn" and "LifeOppLostThisTurn" to xCount.
- Added four missing set infos.
- Converted the replacement ability of Lich to script.
- add a Storm counter to the Players panel
- Fix Furnace of Rath
- Added Undying keyword.
- Added Fateful Hour to Count$ (Count$FatefulHour.<Truevalue>.<Falsevalue>) and as a condition to Static Abilities (FatefulHour$ True).
- Added Count$<Your/Opp>StartingLife.
- Added FatefulHour trigger parameter.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- CheckStyle.
- Minor card text fix for Gibbering Descent.
- Continuous static abilities with "RemoveAllAbilities" will now also remove replacement abilities.
- Ran Oracle and setInfo scripts
- Added Damia, Sage of Stone to relevant section in PhaseUtil.java. (I initially thought the draw skip was Keyworded due to Psychic Possession script)
- Updated two SVars.
- creating branch for Dark Ascension pre-release scripts
- Bugfix: "ghost animation" for cards in hand after starting a new game
- Improved the AI of Echoing Decay.
- Updated some SVars.
- Preparing for the snapshot build release.
- Fixed the LQ pic URL for Fist of Suns.
- groupped quest controllers together into matching package, moved io classes to their own package
- Added an AILogic parameter to Kjeldoran Royal Guard.
- clean up some java warnings (InputBlock and InputAttack)
- Added a hard version of the Wonder Woman deck.
- Fixed Retraced Image.
- Fixed Etherwrought Page.
- Fixed Demoralize.
- bazaar settings moved outside of code (WIP)
- bazaar controller no longer static, hardcoded stall titles eliminated
- Ran set info script.
- Ran oracle script.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Chancellor of the Dross.
- Fixed Chancellor of the Forge.
- Fixed Chancellor of the Tangle.
- delete unused class ConstantStringHashMap
- javadoc and comment fixes in Upkeep.java
- flesh out javadoc in Untap.java
- flesh out javadoc in EndCombat.java
- Little card script updates.
- Fixed Convoke throwing an error when no creature has been tapped.
- Fixed icon display in player fields for quest and regular match play.
- added EYEBALL to counters enumeration list
- fixing Quest and regular match player avatars. Please be careful to not hard-code Windows-specific things.
- fix some code that was OS-specific in DeckLister.java
- move some code to EndOfTurn and flesh out javadoc in EndOfTurn.java
- adding EnchantedBy check to Player.hasProperty method
- added STRIFE to counters enum list
- updated Daybreak Coronet to use the more general AttachedTo. Removed "AllAurasEnchanting" from CardFactoryUtil.xCount method.
- DKA branch: Updated Falkenrath Aristocrat to use ConditionCheckSVar, and added rarity info to some of the scripts.
- Improved scripts for Ebon Praetor and for Lyzolda, the Blood Witch
- Added wasCastFrom<Zone> card property. It is set when the card is moved to the stack and cleared whenever it is moved anywhere else except from the stack to the battlefield(for Myojins,Phage,Iname, Epochrasite etc...)
- Fixed visual artifacts bug on semi-transparent buttons and panels in home screen.
- Fixed name (Nomad's Assembly -> Nomads' Assembly)
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Updated two SVars.
- Updated two SVars (main branch).
- Removed Sudden Spoiling because it was not 100% functional.
- CheckStyle.
- Added the Dr Fate 3 deck.
- Made Keldon Marauders more AI friendly.
- Fixed Mishra, Artificer Prodigy.
- Fixed casting cost on Faithless Looting.
- Added a spell description field to the CostChange keyword. Converted a few CostChange cards.
- Refactored ForgePreferences:
1) Output file entries sorted
2) Easier to add/remove prefs
3) Checkstyled and commented
4) LOC halved
- Streamlined old, overly explicit phase toggles in ForgePreferences.
- Small update to ForgePreferences.
- Minor update to ViewField.
- Removed internal padding on card picture in match UI.
- Fixed "no human first turn phase indicator" bug.
- Minor update to keyboard shortcut saving in dock.
- Fixed "must restart for dev mode setting" and similar bugs.
- modifications to allow cards that transform to Auras to attach to a target.
- Moved ability description into keyword for Glowrider and Thorn of Amethyst
- If using Alternate-state scripting to create a non-doublefaced, non-flip card (i.e. Licids), use "AlternateMode:<name of other state>" then use AF_SetState's NewState parameter with that name. This is to avoid things confusing them with actual doublefaced cards.
- Added start button and logo to image sprites in each skin, and updated FSkin and home screen code to match.
- reduce JTextArea instances in ViewTabber
- Run static abilities-check after running static triggers but before regular triggers. Fixes Adaptive Automaton+Champion of the Parish type situations. With thanks to Sloth!
- Let the Deck Editor cope with cards with non-flip, non-doubleface alternate states. (i.e. those damn Licids)
- further reduce JTextArea instances in ViewTabber (for Combat descriptions)
- Minor bugfix in ForgePreferences.
- Bugfix to the bugfix in ForgePreferences.
- CheckStyle.
- Magic 2012 fat packs should now use M12 lands. Thank you Agetian.
- CheckStyle.
- CheckStyle.
- Little fix for Wonder Woman 3.
- moved items data to file
- code to support items in external files
- update deps. Add package info
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Removed duplicate added card from CHANGES.txt
- CardReader.readCard is a public static function now. This will allow to store pets' characteristics as card description txt files.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed a case in AF Reveal where the player can get stuck.
- Start refactor of deck geneartor
- Update checkstyle plugin
- Fixed Radjan Spirit, it no longer has flying.
- Converting Prismatic Lens over to Produced$ Any
- Fixed Insist and Overmaster.
- Ran oracle and set info scripts
- Small change to ProtectAll AF to allow for scripts that only have ValidPlayers and no ValidCards.
- Added RememberedPlayerCtrl to isValid
- Fixed affected cards for Quicken
- Ran set info script.
- Ran oracle script.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed AI of Copy Artifact and Sculpting Steel.
- Added a check in checkStateEffects for creatures enchanting something, making them fall off properly. (Licids! *shakes fist*)
- CheckStyle.
- Fixed Wormfang Behemoth.
- Added the player keyword "Skip your draw step." and converted some cards to use it.
- Memory management debugging in ViewTabber: cleared list of JTextAreas in stack panel to prevent pileups.
- udpate guava to 11.0.1 (it has some cache fixes that may affect ImageCache)
- Uploaded quest opponent avatar: Beast. Added to quest-opponent-icons.txt
- Uncommented download link for Tatsumasa, the Dragon's Fang token.
- Updated the deck editor color filter icons.
- try to clean up IMAGE_CACHE at the end of each match. This may help with large memory usage after many matches.
- Fixed bug preventing full texture paint on keyboard shortcuts screen.
- Added Attach Drawback. Removed previous changes for Auras in SetState AF.
- updated Soul Seizer script to Attach drawback
- Updated quest opponent avatar links.
- Added a fluff piece to the changes.txt file.
- Added the Darkseid 3 deck.
- Added the recent commit logs to changes.txt.
- Fixed creatures with Deathtouch destroying creatures and dealing damage afterwards.
- Still a problem with Quicken. Removing it for now.
- Removed Quicken from changes.txt new cards
- Added Quicken (again!) this time with support for the 2006 ruling: "After Quicken resolves, you can Suspend a Sorcery in your hand any time you can cast an Instant. As soon as you actually cast a Sorcery, you lose this capability."
- Fixed the LQ pic URL for Divine Reckoning and Shape Stealer.
- Fixed Ertai's Trickery. (It now correctly checks the target validity on resolution instead of announcement)
- Fixed some missing set info (thanks Xitax)
- Added missing ETB tapped keyword to Runed Arch
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- clean up a Java warning in AFSetState
- remove some debug code related to Observers
- Improved the AI of AF DestroyAll to take permanents with SacMe SVar into account.
- Changed the default value of "ui.card.overlay" to true.
- Added trigger mode "Transformed".
- Hardcoded Sky Swallower will now give away other cards, not self.
- Fixed Undead Alchemist
- Update SubAbility for a few of my favorite cards (SVar= is not needed and has not been needed for a long time.)
- Started adding doTrigger functions to Spell AF's, because canPlayAI is not suited for cases like a spell revealed by a Cascade ability. First AF to test this is AF DealDamage.
- Added the ability to get LKI copies of a certain state. Fixes Unholy Fiend triggering Village Cannibals and maybe more.
- Cards should never be tapped outside the battlefield.
- Added trap type to Arrow Volley Trap
- Added canPlayFromEffectAI function.
- Added the recent commit logs to changes.txt.
- Added canPlayFromEffectAI to AF Pump.
- Little fix for Cascade.
- moved product images to separate folder
- created a main.properties option to point to product images location
- moved gui downloader to a separate package
- introducted 'protocols' for imagecache item urls.
- products and tokens use their unique prefixes to point to the picture location correctly.
- Fixed the LQ pic URL for Burning Oil and Scorch the Fields.
- Added LQ pic URLs to Huntmaster of the Fells / Ravager of the Fells.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added canPlayFromEffectAI to AF Draw and Discard.
- Removed the hardcoded cascade ability of Bituminous Blast.
- Changed Ripple to use canPlayFromEffectAI.
- Changed Fungus Sliver to grant a trigger instead of a keyword.
- Removed the now unused keyword it used to grant.
- Temporarily fixing infinite loop in AF Pump, not sure if this is what it should do though.
- Fixed Equilibrium.
- CheckStyle.
- Added the function playSpellAbilityWithoutPayingManaCost to ComputerUtil.
- Fixed the AI part of Cascade and Ripple skipping payment of non mana costs.
- fixed problem with Any color mana abilities added through continuous effects e.g. Gemhide Sliver
- Internalized win/lose frame into match UI using overlay.
- Fixed icons display for mana overlay setting. Now, icons and counters will show all the time, but title, p/t, and casting cost is toggle-able.
- Performance enhancement: fonts used in UI are now pre-derived once in skin.
- Updated the AffectedZone of some continuous static abilities.
- Added canPlayFromEffectAI to AF Destroy.
- Cleanup.
- Changed "removed" to "exiled" for consistency
- Minor fix to comments in ControlDetail.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added counter to input area to indicate match #x out of y.
- Null pointer fix.
- remove SVar= from SubAbility (Z cards)
- remove SVar= from SubAbility (Y cards)
- remove SVar= from SubAbility (U-V cards)
- remove SVar= from SubAbility (W cards)
- Added a GameLoss replacement effect.
- Added YouDrewThisTurn and OppDrewThisTurn to xCount.
- Forgot to add Lich's Mirror script.
- Enabled multiple copies of Cascade on a spell.
- Updated some SVars.
- little cleanup in GenerateThemeDeck.java
- Little fix
- Fixed cancel button layout bug.
- Small fix to winlose layout.
- Small update to FSkin font derivations.
- fixed ManaCost.isColor() to return true when comparing any size colorless mana cost to a type of "1"
- fix Crash with Qasali Ambusher
- Refactored anyChoice to expressChoice. Added logic to make automatic color choices for "Any" keyword mana sources.
- remove SVar= from SubAbility (T cards)
- remove SVar= from SubAbility (S cards)
- remove SVar= from SubAbility (Q-R cards)
- remove SVar= from SubAbility (P cards)
- remove SVar= from SubAbility (O cards)
- remove SVar= from SubAbility (A cards)
- remove SVar= from SubAbility (B cards)
- remove SVar= from SubAbility (C cards)
- remove SVar= from SubAbility (D cards)
- remove SVar= from SubAbility (E cards)
- remove SVar= from SubAbility (F cards)
- remove SVar= from SubAbility (G cards)
- remove SVar= from SubAbility (H-I cards)
- remove SVar= from SubAbility (J-L cards)
- remove SVar= from SubAbility (M cards)
- remove SVar= from SubAbility (N cards)
- Small Checkstyle fix
- remove support for SVar= string in SubAbility. It has not been required for a long time, and now, is no longer supported. All card files have been updated.
- Fixed font on storm label.
- Changed QuestMatchState to MatchState (since it has no quest-specific information).
- Renamed ManaSymbols to more accurate CardFaceSymbols.
- Added the recent commit logs to changes.txt. Preparing for the beta build and release.
- Preparing the changes.txt file for the next beta build and release.
Added pre-release cards to DKA cardfolder branch:
Beguiler of Wills
Chalice of Life // Chalice of Death
Curse of Thirst
Drogskol Reaver
Faithless Looting
Falkenrath Aristocrat
Gather the Townsfolk
Ghoultree
Gravecrawler
Hunger of the Howlpack
Huntmaster of the Fells // Ravager of the Fells
- Small fix for RememberedPlayerCtrl restriction.
- Updated some setinfos
- Fixed Arachnus Web bug
- Added some more missing SetInfo - thanks Xitax
- Added LQ pic URLs to:
Chalice of Life / Chalice of Death
Lambholt Elder / Silverpelt Werewolf
Scorned Villager / Moonscarred Werewolf
Wolfbitten Captive / Krallenhorde Killer
- Fixed Groundskeeper.
- Added the missing LQ pic URLs to:
Grafdigger's Cage
Increasing Confusion
Increasing Devotion
Jar of Eyeballs
Lambholt Elder // Silverpelt Werewolf
Loyal Cathar // Unhallowed Cathar
Mikaeus, the Unhallowed
Mondronen Shaman // Tovolar's Magehunter
Moonveil Dragon
Nearheath Stalker
Ravenous Demon // Archdemon of Greed
Scorned Villager // Moonscarred Werewolf
Ovinomancer
Pursuit of Knowledge
Secrets of the Dead
Sorin, Lord of Innistrad
Soul Seizer // Ghastly Haunting
Strangleroot Geist
Thalia, Guardian of Thraben
Thraben Doomsayer
Vorapede
Zombie Apocalypse
Undead Alchemist
- Fixing Marsh Flitter double cost description
- Update dependency, checkstyle
- Fix Surgespanner apostrophe in detail
- Several minor edits for readability.
- Fixed repeatability for quest mode challenges, updated quest panels to reflect this.
- Added QuestEventType enum to replace string equality checking for quest event types.
- removed useless key
- Minor updates involving QuestEventType enum.
- removed some unused code
- Fixed runtime avatar switching bug.
- Checkstyle.
- Commented out two lines causing compiler warnings.
- Updated default avatar sprite (thanks WompWomp)
- Added support for default avatars + skin-unique avatars.
- Added the script versions of the quest pets
- Ran set info script.
- Ran oracle script.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added product image download list (excludes boosters because there's already a list for that)
- Added a fluff piece to the changes.txt file.
- fix Hail Storm not damaging You
- Fixed Oblivion Stone.
- Fixed Aven Windreader.
- Fixed Evil Eye of Urborg.
- Fixed canPlay() function of Intuition.
- Added SVar:RemAIDeck:True to Curse of the Cabal.
- clean up javadoc comments in AFDealDamage
- bazaar items data model
- Added missing word in How to play description
- Fixed ClassCastException at the end of quest games
- Fixed bug where first quest game was always starting with 20 life.
- Restored Zeppelin life behavior.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- data model update
- Pets and plant are loaded from text files.
- Card creation is an issue now.
- might be better working now (
- works somehow - only the second game starts properly
- Fixed All Hallow's Eve.
- Removed excess text from All Hallow's Eve.
- Coverted deck editors and cardshop to JDialog.
- This allows them to be modal and gets rid of the setAlwaysOnTop() call. (Which causes all manner of headaches on Linux)
- add an AF UnattachAll. Removes all UnattachValid$ cards from target creature(s) and or player(s).
- fix several creature types
- fix several more creature types
- fix several more creature types
- Fixed Custody Battle.
- Fixed Mortis Dogs
- fix more creature types (thanks to catatafish)
- fixing saves compatibility
- quest loader will take attributes into account
- Fixed Glade Gnarr's pump
- Ran SetInfo script
- Ran Oracle script
- Added "CARDNAME can't be equipped." keyword and corrected some "CARDNAME can't be enchanted." implementation. They cards can now be targeted human, although attachment will fail with a relevant log message.
- Ran scripts
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Small correction to the effect trigger in Blinding Beam
- Fix license headers
- checkstyle
- Added RemIADeck to Qasali Ambusher (was generating an infinite loop when AI played it)
- Ran Oracle and SetInfo scripts
- token icons
- CostChange can take MultiColored as a color now.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Infernal Medusa.
- better support for old quest saves
- quest pets fixed
- Fixed Pillory of the Sleepless and Ghostway
- Finally figured out how to add TargetedPlayerCtrl to isValid in Cards.java
- Ran Oracle and SetInfo scripts
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed cards cast without paying their mana cost ignoring additional costs (example Lodestone Golem).
- *Rolls out Zeppelin, kicks tires* "Yep, she's ready to go. Take care now."
- Fix Heavy Mattock equip cost (Issue 598)
- Standardize Deck Editors (added image filters, all resizable)
- removed warnings
- improved support for quest mode items model
- Converted Brass Squire to script
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed cost description for Lurking Evil's ability
- Fixed Tel-Jilad Wolf's pump value and description
- Fixed link to 2/R mana icon
- Fixed trigger restriction for Sword of the Meek
- CheckStyle.
- CheckStyle.
- CheckStyle.
- Fixed damage source for Delirium
- does keep colors explicitly assigned to card copies
- Separate QuestEventManager instances for Duels and challenges.
- Duels and challenges lay in separate folders
- deck can have comments
- MBS event decks, Infect and Defile plus Into the Breach.
- Changed Plant Wall in quest to have Wither instead of Deathtouch at levels 5 and 6
- Added a fluff piece to the changes.txt file.
- Added the recent commit logs to changes.txt.
- Ran scripts.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Removed extraeneous SubAbility from Soul's Fire
- Added 'wasDealtDamageByEquipeeThisTurn' to isValid
- Fixed Qasali Ambusher.
- Fixed some cards with "May be played without paying its mana cost" to work correctly in all zones.
- Added debug script from Melira, Sylvok Outcast.
- Updated download links and index.xml for bazaar to reflect the plant wall switching over to wither.
- Forgot Rushwood Legate, while fixing cards with "May be played without paying its mana cost".
- Set the WinsToUnlock for the new Event decks to 20 and raised the price of Into the Breach to 3000. (They are on a different level than the intro decks).
- Added the event deck Vampire Onslaught.
- Dizzying Gaze missing Enchant creature keyword
- NPH event decks
- restore original config
- Fixed the p/t for Stabwhisker the Odious.
- Fixed the mana cost for Drake Familiar.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added a fluff piece to the changes.txt file.
- CheckStyle.
- Fixed two errors in the script of Szadek, Lord of Secrets.
- devmode now allows tutoring for any card, even if it is not in your deck
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Committing progress on draggable panel match UI (it's completely independent of the original, not implemented yet.)
- Renamed the Blood and Fire precon deck jpg pic to "blood_and_fire.jpg" and this should now match the Image file name found in the "Blood And Fire.dck" deck file.
- Fixed Wolfhunter's Quiver, should now do 3 damage to werewolf creatures.
- Added icon for Quest for Ula's Temple
- Updated list of booster image download links
- Always show packs and decks in quest card shop (until they can be filtered properly)
- Improved AI's attack decisions by better predictions of counterattacks.
- Fixed Bear Umbra.
- The AI will no longer put cards with RemRandomDeck into sealed decks.
- Updated three SVars.
- Renamed 2 classes, tried to fix the empty screen at game start
- removeAll instead of iteration and personal deletion of each element
- Fixed the quest duel deck Starfire 3 and it should no longer appear as a mystery opponent.
- Replaced (+-) sign that caused Unmappable UTF errors.
- moved fields related to combat in current and last turn from Card to a dedicated class
- propper setter
- removed PrevIntrinsticKeywords, since they were read by no branch of code
- Removed card characteristic name constants in favor of an Enumeration
- When Brass Squire was converted to script, I forgot to commit the revised CardFactoryCreatures.java with the squire removed.
- TriggerTypes replaced from strings to enum, new trigger parser based on reflection.
- Fixed some magiccards.info links (not sure if these are even used anymore, but fixed anyway)
- Ran set info script.
- Ran oracle script.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Changed implementation of Silvergill Douser to only have only one ability.
- fix LQ pic URL for Genju of the Spires
- removing unused code
- carving away some code we won't ever need.
- clean up imports in CFCreatures
- add Slime counters
- Typo/simplification in Vengeful Pharaoh
- Ran set info script.
- Ran oracle script.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- isValid supports "sharesColorWith Enchanted" where Enchanted is same as the defined type so will find an aura sacrificed as a cost.
- Removed an bit of the Rakdos Riteknife script left over from my first attempts.
- Fix to help prevent ETB-bounce loop for Whitemane Lion.
- Corrected name of added card in changes.txt
- Added flying to Notorious Throng's tokens
- Trigger "mode" key is now stored in a field of trigger
- This should fix triggers
- AbilityFactory getMapParams is static.
- Fix channel activation cost of Shinen of Furys Fire
- CheckStyle.
- Fixing Carnage Altar CC
- Converted Hedron Matrix to script.
- xCount now supports EquippedCardManaCost.
- Added the code block to support "SetAsKicked" to mark nonPermanent kicked spells from the script line. Will start converting soon.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- CardFactoryUtil can now count life total and cards in hand of targeted players
- Added some real code to proliferateShouldPlayAI.
- Fixed proliferateResolve for the AI.
- shortened effect name for Flames of the Blood Hand
- Removed RemAIDeck from Thicket Elemental
- CheckStyle.
- Added the parameter "TargetsWithDefinedController" which filters possible targets controller's with getDefinedPlayers.
- The moveToLibrary function will now update the player label observer.
- static keyword may be accessed as method of Trigger
- triggers are stored as list (unlike array)
- Converted three cards with ETB triggers from AB to DB.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Rupture (the sacrifice was a cost instead of an ability)
- Attempt at improving the description of the "Download LQ Set Pictures" button.
- CheckStyle.
- Added the recent commit logs to changes.txt. Preparing for the beta build and release.
- Preparing the changes.txt file for the next beta build and release.
- Fixed Silent Assassin.
- Added the recent commit logs to changes.txt. Preparing for the beta build and release.
Many people helped with this version. A special thank you goes out to them. (Attempted to list names alphabetically):
@@ -10,7 +10,9 @@ After downloading and installing a newer version of Forge you may want to move c
The /res/images/icons/ folder contains the quest opponent icons, small quest pet/plant icons (non-tokens) and some icons that are used by forge's quest mode. While several of these pictures ship with the forge archive most of them have to be downloaded using the Home screen -> Utilities -> Download Quest Images command.
2) The /res/decks/ folder contains your deck files. You should copy over the files with the extension ".dck".
2) The /res/decks/ folder contains your deck files. You should copy over the files with the extension ".dck". In version 1.2.4 and later the /decks/ folder contains 4 subdirectories named constructed, cube, draft and sealed.
You can place your deck files from an earlier version of Forge into the /res/decks/ folder. When you next launch Forge these decks will be converted to a newer format and will be moved into the proper subdirectory.
3) The /res/draft/ and the /res/sealed/ folders contains files for the sealed and draft mode. You should copy over your files inside of these folders that end in the extension ".draft" or ".zsealed".
@@ -51,6 +53,8 @@ The quest pets archive contains two subdirectories named "icons" and "tokens". P
Your forge game may not come with one or more of these three folders as part of the forge archive. In this case you should use your computer's OS file system to create the proper folders with the correct names and they must be located inside of the /res/pics/ folder.
The in-game downloaders will grab an image for face-down (Morph) cards on the battlefield. To use a custom image, place a "morph.jpg" file in your res/pics/tokens directory.
print("This script requires the text version of Arch's mtg-data to be present.You can download it from slightlymagic.net's forum and either place the text version next to this script or edit this script and provide the path to the file at the top.")
T:Mode$ Blocks | ValidCard$ Card.Self | ValidBlocked$ Creature.Green,Creature.White | DelayedTrigger$ DelTrigBlocked | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a green or white creature, destroy that creature at end of combat.
T:Mode$ Blocks | ValidCard$ Creature.Green,Creature.White | ValidBlocked$ Card.Self | DelayedTrigger$ DelTrigBlocker | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a green or white creature, destroy that creature at end of combat.
SVar:DelTrigBlocked:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Each | Execute$ TrigDestroyBlocked | TriggerDescription$ Destroy blocked creature at end of combat.
SVar:DelTrigBlocker:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Each | Execute$ TrigDestroyBlocker | TriggerDescription$ Destroy blocking creature at end of combat.
SVar:DelTrigBlocked:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigDestroyBlocked | TriggerDescription$ Destroy blocked creature at end of combat.
SVar:DelTrigBlocker:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigDestroyBlocker | TriggerDescription$ Destroy blocking creature at end of combat.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, you may put an Aura card from your hand onto the battlefield attached to Academy Researchers.
S:Mode$ Continuous | Affected$ Sliver | AddAbility$ Damage | Description$ All Slivers have "2, Sacrifice this permanent: This permanent deals 2 damage to target creature or player."
SVar:Damage:AB$DealDamage | Cost$ 2 Sac<1/CARDNAME> | ValidTgts$ Creature,Player | NumDmg$ 2 | TgtPrompt$ Select a target creature or player. | SpellDescription$ CARDNAME deals 2 damage to target creature or player.
SVar:Damage:AB$DealDamage | Cost$ 2 Sac<1/CARDNAME> | Tgt$ TgtCP | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to target creature or player.
A:AB$ Effect | Cost$ T | Name$ Adarkar Valkyrie Effect | ValidTgts$ Creature.Other | TgtPrompt$ Select target creature other than Adarkar Valkyrie | Triggers$ TrigChangesZone | SVars$ TrigChangeZone | RememberObjects$ Targeted | SpellDescription$ When target creature other than CARDNAME dies this turn, return that card to the battlefield under your control.
SVar:TrigChangesZone:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.IsRemembered | Execute$ TrigChangeZone | TriggerDescription$ If the targeted creature of Adarkar Valkyrie dies this turn, return it to the battlefield and you gain control of it.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, another target permanent is indestructible for as long as you control CARDNAME. (Effects that say "destroy" don't destroy that permanent. An indestructible creature can't be destroyed by damage.)
Oracle:Flying\nWhen Aegis Angel enters the battlefield, another target permanent is indestructible for as long as you control Aegis Angel. (Effects that say "destroy" don't destroy that permanent. An indestructible creature can't be destroyed by damage.)
T:Mode$ Blocks | ValidCard$ Card.Self | ValidBlocked$ Creature | DelayedTrigger$ DelayedTrig | TriggerDescription$ Whenever CARDNAME blocks a creature, return that creature to its owner's hand at end of combat.
SVar:DelayedTrig:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Each | Execute$ TrigBounce | TriggerDescription$ Return blocked creature to its owner's hand at end of combat.
SVar:DelayedTrig:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigBounce | TriggerDescription$ Return blocked creature to its owner's hand at end of combat.
Oracle:When AEthersnipe enters the battlefield, return target nonland permanent to its owner's hand.\nEvoke {1}{U}{U} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.)
T:Mode$Phase | Phase$ Upkeep | WerewolfTransformCondition$ True | TriggerZones$ Battlefield | Execute$ TrigTransform | TriggerDescription$ At the beginning of each upkeep, if no spells were cast last turn, transform CARDNAME.
T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigDestroy | OptionalDecider$ You | TriggerDescription$ Whenever this creature transforms into CARDNAME, you may destroy target artifact. If that artifact is put into a graveyard this way, CARDNAME deals 3 damage to that artifact's controller
T:Mode$Phase | Phase$ Upkeep | WerewolfUntransformCondition$ True | TriggerZones$ Battlefield | Execute$ TrigTransform | TriggerDescription$ At the beginning of each upkeep, if a player cast two or more spells last turn, transform CARDNAME.
Oracle:Whenever this creature transforms into Werewolf Ransacker, you may destroy target artifact. If that artifact is put into a graveyard this way, Werewolf Ransacker deals 3 damage to that artifact's controller.\nAt the beginning of each upkeep, if a player cast two or more spells last turn, transform Werewolf Ransacker.
T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigDebuff | TriggerDescription$ When CARDNAME blocks, it becomes a Bird Giant, and it loses defender.
Oracle:Defender (This creature can't attack.)\nFlying\nWhen Ageless Sentinels blocks, it becomes a Bird Giant, and it loses defender. (It's no longer a Wall. This effect lasts indefinitely.)
R:Event$ DamageDone | ValidSource$ Card.Red | ValidTarget$ Player | ReplaceWith$ DmgPlus1 | Description$ If a red source would deal damage to a player, it deals that much damage plus 1 to that player instead.
R:Event$ DamageDone | ValidSource$ Card.Red | ValidTarget$ Player | ReplaceWith$ DmgPlus1 | IsCombat$ False | Description$ If a red source would deal damage to a player, it deals that much damage plus 1 to that player instead.
R:Event$ DamageDone | ValidSource$ Card.Red | ValidTarget$ Player | ReplaceWith$ DmgPlus1Combat | IsCombat$ True | Secondary$ True | Description$ If a red source would deal damage to a player, it deals that much damage plus 1 to that player instead.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigPumpAll | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control get +1/+0 until end of turn.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control get +1/+0 until end of turn.
Text:Cast CARDNAME only during combat after blockers are declared.
A:SP$ FlipACoin | Cost$ 1 R | ValidTgts$ Creature | TgtPrompt$ Select target creature to gain +1/+1 | WinSubAbility$ AleatoryPump | LoseSubAbility$ AleatoryDraw | ActivationPhases$ Declare Blockers - Play Instants and Abilities->EndCombat | SpellDescription$ Flip a coin. If you win the flip, target creature gets +1/+1 until end of turn. Draw a card at the beginning of the next turn's upkeep.
Oracle:Cast Aleatory only during combat after blockers are declared.\nFlip a coin. If you win the flip, target creature gets +1/+1 until end of turn.\nDraw a card at the beginning of the next turn's upkeep.
A:SP$ ChangeZone | Cost$ 2 B B | Origin$ Stack | Destination$ Exile | SubAbility$ DBPutCounter | SpellDescription$ Exile CARDNAME with two scream counters on it. At the beginning of your upkeep, if CARDNAME is exiled with a scream counter on it, remove a scream counter from it. If there are no more scream counters on it, put it into your graveyard and each player returns all creature cards from his or her graveyard to the battlefield.
A:SP$ ChangeZone | Cost$ 2 B B | Origin$ Stack | Destination$ Exile | RememberChanged$ True | SubAbility$ DBPutCounter | SpellDescription$ Exile CARDNAME with two scream counters on it. At the beginning of your upkeep, if CARDNAME is exiled with a scream counter on it, remove a scream counter from it. If there are no more scream counters on it, put it into your graveyard and each player returns all creature cards from his or her graveyard to the battlefield.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | IsPresent$ Card.Self+counters_EQ0_SCREAM | PresentZone$ Exile | Execute$ TrigMoveToGraveyard | TriggerZones$ Exile | Secondary$ True | TriggerDescription$ Put CARDNAME into your graveyard and return all creatures to the battlefield.
S:Mode$ Continuous | Affected$ Creature.cmcLE3 | AddHiddenKeyword$ HIDDEN Flash & HIDDEN May be played without paying its mana cost | AffectedZone$ Hand,Graveyard,Exile | Description$ Any player may play creature cards with converted mana cost 3 or less without paying their mana cost and as though they had flash.
S:Mode$ Continuous | Affected$ Creature.cmcLE3 | AddHiddenKeyword$ HIDDEN May be played without paying its mana cost and as though it has flash | AffectedZone$ Hand,Graveyard,Exile | Description$ Any player may play creature cards with converted mana cost 3 or less without paying their mana cost and as though they had flash.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigPump | TriggerDescription$ At the beginning of your upkeep, if you control a blue or black permanent, target creature gets +1/+1 until end of turn. If you control a blue permanent and a black permanent, that creature gets +5/+5 until end of turn instead.
Oracle:At the beginning of your upkeep, if you control a blue or black permanent, target creature gets +1/+1 until end of turn. If you control a blue permanent and a black permanent, that creature gets +5/+5 until end of turn instead.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDamage | TriggerDescription$ When CARDNAME enters the battlefield, it deals damage to target player equal to the number of nonbasic lands that player controls.
SVar:TrigDamage:DB$DealDamage | ValidTgts$ Player | TgtPrompt$ Select target player | NumDmg$ X | RememberTargets$ True | SubAbility$ DBCleanup
Oracle:When Anathemancer enters the battlefield, it deals damage to target player equal to the number of nonbasic lands that player controls.\nUnearth {5}{B}{R} ({5}{B}{R}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)
A:SP$ Draw | Cost$ 0 | NumCards$ 3 | ValidTgts$ Player | TgtPrompt$ Choose a player | SpellDescription$ Target player draws three cards. | ActivationLimit$ 0
Oracle:Ancestral Vision is blue.\nSuspend 4-{U} (Rather than cast this card from your hand, pay {U} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)\nTarget player draws three cards.
S:Mode$ Continuous | Affected$ Creature.YouDontCtrl | AddHiddenKeyword$ HIDDEN CARDNAME can't attack. | CheckSVar$ X | SVarCompare$ GE1 | Description$ Each opponent who cast a spell this turn can't attack with creatures.
S:Mode$ CantBeCast | ValidCard$ Card | Caster$ Opponent | OpponentAttackedWithCreatureThisTurn$ True | Description$ Each opponent who attacked with a creature this turn can't cast spells.
Oracle:Flying\nEach opponent who cast a spell this turn can't attack with creatures.\nEach opponent who attacked with a creature this turn can't cast spells.
S:Mode$ Continuous | Affected$ Creature | AddHiddenKeyword$ Vigilance | Description$ All creatures have vigilance.
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigTapAllYou | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each player's end step, tap all untapped creatures that player controls that didn't attack this turn. CARDNAME deals damage to the player equal to the number of creatures tapped this way.
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Opponent | Execute$ TrigTapAllOpp | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ At the beginning of each player's end step, tap all untapped creatures that player controls that didn't attack this turn. CARDNAME deals damage to the player equal to the number of creatures tapped this way.
Oracle:All creatures have vigilance.\nAt the beginning of each player's end step, tap all untapped creatures that player controls that didn't attack this turn. Angel's Trumpet deals damage to the player equal to the number of creatures tapped this way.
A:SP$ Attach | Cost$ 2 W | ValidTgts$ Land | AILogic$ Pump
S:Mode$ Continuous | Affected$ Land.AttachedBy | AddAbility$ GainLife | AddSVar$ X | Description$ Enchanted land has "Tap, Sacrifice a creature: You gain life equal to that creature's toughness."
SVar:GainLife:AB$GainLife | Cost$ T Sac<1/Creature> | LifeAmount$ X | SpellDescription$ You gain life equal to the sacrificed creature's toughness.
SVar:X:Sacrificed$CardToughness
S:Mode$ Continuous | Affected$ Land.AttachedBy | AddAbility$ GainLife | AddSVar$ AnimalBoneyardX | Description$ Enchanted land has "Tap, Sacrifice a creature: You gain life equal to that creature's toughness."
SVar:GainLife:AB$GainLife | Cost$ T Sac<1/Creature> | LifeAmount$ AnimalBoneyardX | SpellDescription$ You gain life equal to the sacrificed creature's toughness.
A:SP$ Dig | Cost$ 4 G | DigNum$ 5 | Reveal$ True | ChangeNum$ 1 | ChangeValid$ Creature | DestinationZone$ Battlefield | DestinationZone2$ Graveyard | Choser$ Opponent | SpellDescription$ Reveal the top five cards of your library. An opponent chooses a creature card from among them. Put that card onto the battlefield and the rest into your graveyard.
Oracle:Reveal the top five cards of your library. An opponent chooses a creature card from among them. Put that card onto the battlefield and the rest into your graveyard.
T:Mode$ SpellCast | ValidCard$ Card.Creature+YouCtrl | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a creature spell, put a +1/+1 counter on CARDNAME.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, sacrifice CARDNAME unless you put a card from your graveyard on the bottom of your library.
Oracle:Protection from black\nAt the beginning of your upkeep, sacrifice Anurid Scavenger unless you put a card from your graveyard on the bottom of your library.
A:AB$ ChangeZone | Cost$ tapXType<1/Spider> | Hidden$ True | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Battlefield | ChangeType$ Card.namedArachnus Web | SpellDescription$ Search your graveyard and/or library for a card named Arachnus Web and put it onto the battlefield attached to target creature. If you search your library this way, shuffle it.
Oracle:Reach (This creature can block creatures with flying.)\nTap an untapped Spider you control: Search your graveyard and/or library for a card named Arachnus Web and put it onto the battlefield attached to target creature. If you search your library this way, shuffle it.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ HIDDEN CARDNAME can't attack or block. & HIDDEN CARDNAME's activated abilities can't be activated. | Description$ Enchanted creature can't attack or block and its activated abilities can't be activated.
T:Mode$ Phase | Phase$ End of Turn | IsPresent$ Creature.EnchantedBy+powerGE4 | Execute$ TrigDestroy | TriggerDescription$ At the beginning of the end step, if enchanted creature's power is 4 or greater, destroy CARDNAME.
T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | IsPresent$ Creature.EnchantedBy+powerGE4 | Execute$ TrigDestroy | TriggerDescription$ At the beginning of the end step, if enchanted creature's power is 4 or greater, destroy CARDNAME.
A:AB$ DealDamage | Cost$ 2 R T Discard<1/Card> | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player (1) | NumDmg$ 1 | SubAbility$ DBDamage | SpellDescription$ CARDNAME deals 2 damage divided as you choose among any number of target creatures and/or players.
SVar:DBDamage:DB$DealDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player (2) | NumDmg$ 1
A:AB$ DealDamage | Cost$ 2 R T Discard<1/Card> | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select target creature or player (1) | NumDmg$ 1 | SubAbility$ DBDamage | SpellDescription$ CARDNAME deals 2 damage divided as you choose among any number of target creatures and/or players.
SVar:DBDamage:DB$DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select target creature or player (2) | NumDmg$ 1
A:SP$ Counter | Cost$ 1 U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | SubAbility$ DBDraw | SpellDescription$ Counter target spell. Its controller may draw up to two cards at the beginning of the next turn's upkeep. You draw a card at the beginning of the next turn's upkeep.
Oracle:Counter target spell. Its controller may draw up to two cards at the beginning of the next turn's upkeep.\nYou draw a card at the beginning of the next turn's upkeep.
A:SP$ GainLife | Cost$ 7 W | LifeAmount$ X | SubAbility$ DBShuffle | SpellDescription$ You gain 2 life for each card in your graveyard, then shuffle your graveyard into your library.
T:Mode$ Phase | Phase$ End of Turn | CheckSVar$ X | SVarCompare$ GE2 | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of each end step, if you drew two or more cards this turn, you may put a quest counter on CARDNAME.
T:Mode$ Phase | Phase$ End of Turn | CheckSVar$ X | SVarCompare$ GE2 | TriggerZones$ Battlefield | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ At the beginning of each end step, if you drew two or more cards this turn, you may put a quest counter on CARDNAME.
R:Event$ Draw | ValidPlayer$ You | ReplaceWith$ Tutor | CheckSVar$ Y | SVarCompare$ GE6 | Optional$ True | Description$ As long as CARDNAME has six or more quest counters on it, if you would draw a card, you may instead search your library for a card, put that card into your hand, then shuffle your library.
A:AB$ ChangeZone | Cost$ U | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig | Activation$ Metalcraft | PrecostDesc$ Metalcraft - | SpellDescription$ Exile CARDNAME. Return it to the battlefield under your control at the beginning of the next end step. Activate this ability only if you control three or more artifacts.
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | TriggerDescription$ Return CARDNAME to the battlefield.
Oracle:Flying\nMetalcraft - {U}: Exile Argent Sphinx. Return it to the battlefield under your control at the beginning of the next end step. Activate this ability only if you control three or more artifacts.
A:AB$ Protection | Cost$ 1 W W | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select targe creature you control | Gains$ Choice | Choices$ AnyColor | SpellDescription$ Target creature you control gains protection from the color of your choice until end of turn.
A:AB$ Protection | Cost$ 1 W W | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Gains$ Choice | Choices$ AnyColor | SpellDescription$ Target creature you control gains protection from the color of your choice until end of turn.
A:AB$ Pump | Cost$ 1 U U | KW$ Shroud | SpellDescription$ CARDNAME gains shroud until end of turn.
T:Mode$ Blocks | ValidCard$ Creature.powerLE1 | ValidBlocked$ Card.Self | DelayedTrigger$ DelTrig | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature with power 1 or less, destroy CARDNAME at end of combat.
T:Mode$ Blocks | ValidCard$ Card.Self | ValidBlocked$ Creature.powerLE1 | DelayedTrigger$ DelTrig | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature with power 1 or less, destroy CARDNAME at end of combat.
SVar:DelTrig:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Each | Execute$ TrigDestroy | TriggerDescription$ Destroy CARDNAME at end of combat.
SVar:DelTrig:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigDestroy | TriggerDescription$ Destroy CARDNAME at end of combat.
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | Execute$ TrigDestroy | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, choose target creature that player controls. He or she sacrifices that creature.
Oracle:Whenever Ashling, the Extinguisher deals combat damage to a player, choose target creature that player controls. He or she sacrifices that creature.
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ ChooseMode | Static$ True | TriggerDescription$ As CARDNAME enters the battlefield, choose odd or even. (Zero is even.)
SVar:ChooseMode:AB$ ChooseNumber | Cost$ 0 | Defined$ You | Min$ 0 | Max$ 1 | SpellDescription$ Choose odd or even (Zero is even.)
SVar:ChooseMode:AB$ ChooseNumber | Cost$ 0 | Defined$ You | Min$ 0 | Max$ 1 | ListTitle$ Choose ODD or EVEN (0=Even; 1=Odd) | SpellDescription$ Choose odd or even (Zero is even.)
S:Mode$ Continuous | Affected$ Creature.cmcM2X | AddKeyword$ Haste | Description$ Each creature with converted mana cost of the chosen value has haste.
S:Mode$ ETBTapped | ValidCard$ Creature.cmcM2Y | Description$ Each creature without converted mana cost of the chosen value enters the battlefield tapped.
# The next 2 static abilities add text to the card panel for convenience indicating choice.
Text:Affinity for artifacts (This spell costs 1 less to cast for each artifact you control.)\r\n\r\n
Text:no text
A:SP$ Counter | Cost$ 5 U U | TargetType$ Spell | ValidTgts$ Card | Destination$ Exile | SpellDescription$ Counter target spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigGainControl | TriggerDescription$ When CARDNAME dies, you gain control of all enchantments. (You don't get to move Auras.)
SVar:TrigGainControl:DB$ GainControl | AllValid$ Enchantment | NewController$ You
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, search your library for an Aura card that could enchant it. If CARDNAME is still on the battlefield, put that Aura card onto the battlefield attached to it. Otherwise, reveal the Aura card and put it into your hand. Then shuffle your library.
Oracle:When Auratouched Mage enters the battlefield, search your library for an Aura card that could enchant it. If Auratouched Mage is still on the battlefield, put that Aura card onto the battlefield attached to it. Otherwise, reveal the Aura card and put it into your hand. Then shuffle your library.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may return target Equipment card from your graveyard to the battlefield. If you do, you may attach it to CARDNAME.
Oracle:When Auriok Survivors enters the battlefield, you may return target Equipment card from your graveyard to the battlefield. If you do, you may attach it to Auriok Survivors.
A:AB$ Pump | Cost$ T | ValidTgts$ Equipment.YouCtrl | TgtPrompt$ Select target equipment you control | SubAbility$ WindwalkerAttach | StackDescription$ None | SpellDescription$ Attach target Equipment you control to target creature you control.
Text:Equipped creature gets +1/+0 and has vigilance.
K:eqPump 2:+1/+0/Vigilance
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy+Human | Execute$ TrigToken | TriggerDescription$ Whenever equipped creature dies, if it was a Human, put a 1/1 white Spirit creature token with flying onto the battlefield.
Oracle:Equipped creature gets +1/+0 and has vigilance.\nWhenever equipped creature dies, if it was a Human, put a 1/1 white Spirit creature token with flying onto the battlefield.\nEquip {2}
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDiscard | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you discard two cards.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may put a feather counter on target creature. If you do, that creature is 3/1 and has flying for as long as it has a feather counter on it.
SVar:MimeomancerStatic:Mode$ Continuous | Affected$ Card.Self+counters_GE1_FEATHER | SetPower$ 3 | SetToughness$ 1 | AddKeyword$ Flying | Description$ CARDNAME is 3/1 and has flying for as long as it has a feather counter on it.
Oracle:Flying\nAt the beginning of your upkeep, you may put a feather counter on target creature. If you do, that creature is 3/1 and has flying for as long as it has a feather counter on it.
A:AB$ Dig | Cost$ 1 U | DigNum$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | DestinationZone$ Battlefield | DestinationZone2$ Graveyard | SpellDescription$ Target player reveals the top card of his or her library.
A:AB$ Dig | Cost$ 1 U | DigNum$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | Reveal$ True | NoMove$ True | SpellDescription$ Target player reveals the top card of his or her library.
A:SP$ Effect | Cost$ W | ValidTgts$ Creature | TgtPrompt$ Select target creature to entrance | Name$ Awe Struck | ReplacementEffects$ StrikeWithAwe | Triggers$ OutOfSight | SVars$ ExileEffect,GainLifeInstead,X | RememberObjects$ Targeted | AILogic$ Fog | SpellDescription$ The next time target creature would deal damage this turn, prevent that damage. You gain life equal to the damage prevented this way.
SVar:StrikeWithAwe:Event$ DamageDone | ValidSource$ Card.IsRemembered | ReplaceWith$ GainLifeInstead | PreventionEffect$ True | Description$ The next time the targeted creature would deal damage this turn, prevent that damage. You gain life equal to the damage prevented this way.
SVar:GainLifeInstead:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X | SubAbility$ ExileEffect
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBDiscard | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, target player reveals a number of cards from his or her hand equal to the number of Allies you control. You choose one of them. That player discards that card.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ DBDiscard | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, target player reveals a number of cards from his or her hand equal to the number of Allies you control. You choose one of them. That player discards that card.
SVar:DBDiscard:DB$ Discard | ValidTgts$ Player | NumCards$ 1 | RevealNumber$ X | Mode$ RevealYouChoose | DiscardValid$ Card
Oracle:Whenever Bala Ged Thief or another Ally enters the battlefield under your control, target player reveals a number of cards from his or her hand equal to the number of Allies you control. You choose one of them. That player discards that card.
A:SP$ Draw | Cost$ 3 U U | NumCards$ Y | Defined$ You | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | ConditionPresent$ Card.YouDontCtrl | ConditionSVarCompare$ GTX | ConditionZone$ Hand | SpellDescription$ If target opponent has more cards in hand than you, draw cards equal to the difference.
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, it deals that much damage to each creature that player controls.
A:SP$ DealDamage | Cost$ X R | Tgt$ TgtCP | NumDmg$ X | ConditionCheckSVar$ X | ConditionSVarCompare$ LT5 | SubAbility$ BanefulDmg | SpellDescription$ CARDNAME deals X damage to target creature or player.
SVar:BanefulDmg:DB$ DealDamage | Defined$ Targeted | NumDmg$ X | NoPrevention$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE5
S:Mode$ Continuous | Affected$ Self | AffectedZone$ Stack | EffectZone$ All | CharacteristicDefining$ True | AddHiddenKeyword$ HIDDEN CARDNAME can't be countered. | CheckSVar$ X | SVarCompare$ GE5 | Description$ If X is 5 or more, CARDNAME can't be countered by spells or abilities and the damage can't be prevented.
Oracle:Banefire deals X damage to target creature or player.\nIf X is 5 or more, Banefire can't be countered by spells or abilities and the damage can't be prevented.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, sacrifice CARDNAME unless you exile the top creature card of your graveyard.
A:SP$ Fog | Cost$ 1 WB | ConditionManaSpent$ W | SubAbility$ DBLoseLifeYou | SpellDescription$ Prevent all combat damage that would be dealt this turn if W was spent to cast CARDNAME. Each player loses 1 life for each attacking creature he or she controls if B was spent to cast CARDNAME. (Do both if WB was spent.)
SVar:DBLoseLifeYou:DB$ LoseLife | LifeAmount$ X | Defined$ You | ConditionManaSpent$ B | SubAbility$ DBLoseLifeOpp
SVar:DBLoseLifeOpp:DB$ LoseLife | LifeAmount$ Y | Defined$ Opponent | ConditionManaSpent$ B
Oracle:Prevent all combat damage that would be dealt this turn if {W} was spent to cast Batwing Brume. Each player loses 1 life for each attacking creature he or she controls if {B} was spent to cast Batwing Brume. (Do both if {W}{B} was spent.)
A:AB$ Pump | Cost$ T | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBPumpRemember | SpellDescription$ Target player gains control of target artifact, creature, or land you control. | StackDescription$ None
A:AB$ GainControl | Cost$ T | ValidTgts$ Creature.powerLEX | TgtPrompt$ Select target creature with power less than or equal to the number of creatures you control | SpellDescription$ Gain control of target creature with power less than or equal to the number of creatures you control.
A:AB$ ChangeZone | Cost$ 3 T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.ChosenType | ChangeNum$ 1 | SpellDescription$ You may put a creature card from your hand onto the battlefield.
A:AB$ ChangeZone | Cost$ 3 T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.ChosenType | ChangeNum$ 1 | SpellDescription$ You may put a creature card of the chosen type from your hand onto the battlefield.
A:AB$ Protection | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select targe creature you control | Gains$ Choice | Choices$ AnyColor | SpellDescription$ Target creature you control gains protection from the color of your choice until end of turn.
A:AB$ Protection | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Gains$ Choice | Choices$ AnyColor | SpellDescription$ Target creature you control gains protection from the color of your choice until end of turn.
A:SP$ ChangeZone | Cost$ 5 B | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ or return target creature card from your graveyard to the battlefield.
A:SP$ Destroy | Cost$ 5 B Sac<3/Land> | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBChange | PrecostDesc$ Entwine Sacrifice three lands | SpellDescription$ (Choose both if you pay the entwine cost.)
A:SP$ Destroy | Cost$ 5 B Sac<3/Land> | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBChange | PrecostDesc$ Entwine - | CostDesc$ Sacrifice three lands. | SpellDescription$ (Choose both if you pay the entwine cost.)
A:AB$ Pump | Cost$ Sac<1/Creature.untapped/untapped creature> | Defined$ Enchanted | NumAtt$ +2 | SpellDescription$ Enchanted creature get +2/+0 until end of turn.
A:AB$ PumpAll | Cost$ Sac<1/Card.AttachedBy/enchanted creature> | ValidCards$ Creature.YouCtrl | NumAtt$ +2 | SpellDescription$ Creatures you control get +2/+0 until end of turn.
A:AB$ PumpAll | Cost$ Sac<1/Card.AttachedBy/enchanted creature> | ValidCards$ Creature.YouCtrl | NumAtt$ +2 | CostDesc$ Sacrifice enchanted creature: | SpellDescription$ Creatures you control get +2/+0 until end of turn.
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigMill | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile the top card of your library. If it's a creature card, CARDNAME gets +X/+Y until end of turn, where X is the exiled creature card's power and Y is its toughness.
Oracle:Whenever Bioplasm attacks, exile the top card of your library. If it's a creature card, Bioplasm gets +X/+Y until end of turn, where X is the exiled creature card's power and Y is its toughness.
A:SP$ Discard | Cost$ B | ValidTgts$ Player | Mode$ RevealYouChoose | RevealNumber$ 3 | NumCards$ 1 | SpellDescription$ Target player reveals three cards from his or her hand and you choose one of them. That player discards that card.
Oracle:Equipped creature can't be blocked by Vampires or Zombies.\nEquipped creature has "{T}, Sacrifice Blazing Torch: Blazing Torch deals 2 damage to target creature or player."\nEquip {1}
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, that player skips his or her next combat phase.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredTarget | KW$ Skip your next combat phase. | Permanent$ True
Oracle:Flying (This creature can't be blocked except by creatures with flying or reach.)\nWhenever Blinding Angel deals combat damage to a player, that player skips his or her next combat phase.
A:SP$ Tap | Cost$ 2 W | ValidTgts$ Creature | TargetMin$ 2 | TargetMax$ 2 | TgtPrompt$ Select two target creatures | SpellDescription$ Choose one - Tap two target creatures;
A:SP$ Effect | Cost$ 2 W | ValidTgts$ Player | TgtPrompt$ Select target player | IsCurse$ True | StaticAbilities$ DontUntap | Triggers$ RestoreSight | SVars$ ExileEffect | RememberObjects$ Targeted | Duration$ Permanent | SpellDescription$ or creatures don't untap during target player's next untap step.
A:SP$ Effect | Cost$ 3 W | ValidTgts$ Player | TgtPrompt$ Select target player | IsCurse$ True | StaticAbilities$ DontUntap | Triggers$ RestoreSight | SVars$ ExileEffect | RememberObjects$ Targeted | AILogic$ BeginningOfOppTurn | Duration$ Permanent | SubAbility$ BlindTheFoe | PrecostDesc$ Entwine | CostDesc$ 1 | SpellDescription$ (Choose both if you pay the entwine cost.)
SVar:BlindTheFoe:DB$ Tap | ValidTgts$ Creature | TargetMin$ 2 | TargetMax$ 2 | TgtPrompt$ Select two target creatures
SVar:DontUntap:Mode$ Continuous | Affected$ Creature.RememberedPlayerCtrl | AddHiddenKeyword$ HIDDEN This card doesn't untap during your next untap step.
Oracle:Choose one - Tap two target creatures; or creatures don't untap during target player's next untap step.\nEntwine {1} (Choose both if you pay the entwine cost.)
Text:Creatures with flying don't untap during their controllers' untap steps.
K:Cumulative upkeep:2
S:Mode$ CantBeCast | ValidCard$ Card.Self | EffectZone$ Hand | CheckSVar$ X | SVarCompare$ EQ0 | Description$ Cast CARDNAME only if you control a snow land.
S:Mode$ CantBeCast | ValidCard$ Card.Self | EffectZone$ All | CheckSVar$ X | SVarCompare$ EQ0 | Description$ Cast CARDNAME only if you control a snow land.
K:Permanents don't untap during their controllers' untap steps:Creature.withFlying
A:SP$ Fight | Cost$ 4 R R | ValidTgts$ Creature | TgtPrompt$ Select target creature | TargetMin$ 2 | TargetMax$ 2 | SpellDescription$ Target creature fights another target creature. (Each deals damage equal to its power to the other.)
A:AB$Token | Cost$ T | TokenAmount$ 1 | TokenOwner$ You | TokenName$ Vampire | TokenColors$ Black | TokenTypes$ Creature,Vampire | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Flying | SpellDescription$ Put a 2/2 black Vampire creature token with flying onto the battlefield.
A:AB$Token | Cost$ T | TokenAmount$ 1 | TokenOwner$ You | TokenName$ Vampire | TokenColors$ Black | TokenImage$ B 2 2 Vampire | TokenTypes$ Creature,Vampire | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Flying | SpellDescription$ Put a 2/2 black Vampire creature token with flying onto the battlefield.
A:AB$SetState | Cost$ B | Defined$ Self | CheckSVar$ X | SVarCompare$ GE5 | Mode$ Transform | SpellDescription$ Transform CARDNAME.Activate this ability only if you control five or more Vampires.
S:Mode$ Continuous | Affected$ Creature.Vampire+Other+YouCtrl | AddPower$ 2 | AddToughness$ 2 | Description$ Other Vampire creatures you control get +2/+2.
A:AB$Token | Cost$ T | TokenAmount$ 1 | TokenOwner$ You | TokenName$ Vampire | TokenColors$ Black | TokenTypes$ Creature,Vampire | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Flying | SpellDescription$ Put a 2/2 black Vampire creature token with flying onto the battlefield.
A:AB$Token | Cost$ T | TokenAmount$ 1 | TokenOwner$ You | TokenName$ Vampire | TokenColors$ Black | TokenImage$ B 2 2 Vampire | TokenTypes$ Creature,Vampire | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Flying | SpellDescription$ Put a 2/2 black Vampire creature token with flying onto the battlefield.
Oracle:Other Vampire creatures you control get +2/+2.\n{T}: Put a 2/2 black Vampire creature token with flying onto the battlefield.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.