Removed Add/Remove 4-of.
Relabeled As Buy/Sell.
Added credits counter.
Added Max Selling Percentage and Price.
Fixed labels and buttons to return to normal for regular deck editor.
- Added to AbilityFactoryEffect: EffectOwner, Duration$UntilHostLeavesPlay, and RememberEffect.
- Added exception to Card.java so that Effect cards can be counted when remembered
- Simplified Tree of Redemption's script logistics
Note: We should probably remove the references to RememberToughness, I didn't get a chance to track those down.
Note: Need a mechanism to choose the card to copy in GameAction.changeZone (actual problem is - the function won't await user's input - it wants to return right then). That would make Clones ETB correctly from any location.
- Added the ability to remember and recall integer values. This is needed for cards like Tree of Redemption where the referenced value might change. It currently only supports RememberToughness, but it can be referenced easily for other values. To recall the value, use SVar:X:Number$RememberedValue.
- DamageAll can now set the damage source with DamageSource param
- EachDamage now handles Remembered defined cards
- DamageAll and EachDamage support StackDescription param now
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
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)
9951 cards in total.
10882 cards in total.
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:
The work on the new UI is now finished and this version adds the new UI to the deck editors. We should not expect major changes or major additions to the UI. Future betas may include a few minor bug fixes to the UI. And we may also include a few minor tweaks.
"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."
We all would like to thank Doublestrike for his contributions to the new UI.
The new deck editors include:
* a better text search (can search for multiple terms, and "not" terms
With the update to the new deck editors several people noticed an error when they run they visit the quest mode card shop. We hope to have this fixed in the near future. This error states:
Detailed error trace:
java.lang.NullPointerException
at forge.gui.deckeditor.controllers.CEditorPreferences.initialize(CEditorPreferences.java:45)
at forge.view.FView.initialize(FView.java:97)
A recent submission to the code base on the SVN prevents the Card Shop crash report when you select a package of cards, but the packages still aren't displayed in the card picture and card detail panels.
Draft mode will cause a crash report when you start a new draft. We are aware of this problem and we hope to be able to fix it at some point in the future. You can use version 1.2.7 to play draft mode games in the mean time.
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.
The res/images/icons/ folder has been moved to res/pics/icons/. This folder holds the quest opponent icons, bazaar pets, and bazaar plants. If you have downloaded this content, it will still work, but the folder must be moved on your computer.
Some people have noticed special quests do not have the start in play cards appearing. And some people have noticed that a match can start without any cards appearing in the players hands or in their libraries.
A possible fix was submitted to the SVN for forge version 1.2.7. We have received several reports that the above bugs are still occurring. We hope to have this problem fixed at some point in the future.
The dock now has a new button labeled "Open Layout" along with old button with original function "Revert Layout". Modifying the battlefield layout will result in your changes being saved to a file named "match_preferred.xml". You can copy and rename that file to share your layouts with other people.
The hard drive which was used for the Maven based build and release system has become unstable and can no longer be used for this purpose.
We are now using a different system for our snapshot and beta releases and this system uses an up to date OS. Unfortunately, this new system builds a jar file which does not accurately display the SVN revision number.
We apologize for this inconvenience.
Forge is not fully java 7 compatible at this time. Several people have reported that they have noticed a crash report while running forge while using java 7. We recommend that people downgrade to java 6.
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 useful. 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:
- merged updates from trunk cardsfolder into DKA branch
- Added the player keyword "Play with your hand revealed."
- Converted Volrath's Dungeon to script.
- Fixed Kjeldoran Javelineer.
- Added some NPE checks to activateManaAbility.
- Cleared out the changes.txt file, now ready for new material.
- Fixed errors related to the AI controlling cards like Essence Bottle.
- CheckStyle.
- rename Phase.java to PhaseHandler.java (matches other TriggerHandler, etc.) and updated all calling classes. Remade the Phase class as a superclass for Untap, Upkeep, EndOfTurn, EndOfCombat to consolidate some code.
- Modified keyboard shortcuts algorithms to be less complicated to implement.
- 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.
- Fixed "scale larger" setting to work on-the-fly (no reset required).
- hook the Dev Mode buttons up to the Skin
- Fixed "inaccurate life total at before mulligan" bug.
- Added game type to counter information in Input area.
- checkstyle
- Optimization: lightweight splash sprite loads before rest of skin (which soon will occur in preload bar).
- Moved the "forge.view.swing" package into "forge.view".
- Removed FSkin access from AllZone, all FSkin access now through Singletons.getView().
- Removed "Random" from the list of themes (it didn't work and there is the button below anyway).
- Minor edit to Seachrome Coast to remove the extra copy of the etb text.
- Update site and buildnumber plugin
- Prophetic Prism now using Any
- Fixed tokenDoTriggerAINoCost not setting targets and XCosts.
- Added SVar:BuffedBy:Creature to Cathars' Crusade.
- Added Shadow to isUsefulPumpKeyword.
- Removed the second "SVar:BuffedBy:Creature" from Kruin Striker.
- Added targeting to AF Effect with Fog AILogic.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- A few aesthetic and organizational updates around the Forge initialization process.
- ControlAllUI renamed to FControl to match project organization.
- Updated a few quest decks.
- Converted Cranial Extraction to script.
- Added AI support to Rebound.
- Fixed Grozoth.
- Added canPlayFromEffectAI entries to AF GainLife and LoseLife.
- Converted Maelstrom Pulse to script.
- Set all TapsForMana triggers that execute a mana ability to static to conform with rule 605.4a.
- Converted Erratic Explosion to script.
- Little fix
- hook the PhaseLabels up to the skin
- fix crash when changing skins from Settings
- fix so that after picking a new skin, you are still on the Settings View instead of on the Constructed View. (Fixes the TODO Doublestrike had in there.)
- changes to fix issues with zcTriggers for transformed cards
- Fixed Smoldering Spires.
- Fixed Cosmic Horror.
- General fix: DealDamage abilities that targeted "target creature or player" can now target planeswalkers as well, either using TgtCP or implicitly added Planeswalker type.
- Solved splash swatch switch snafu.
- Added a fluff piece to the changes.txt file.
- Fixed a possible IndexOutOfBoundsException in dealDamageResolve.
- Fixed SuspendCast never being set to false;
- Fixed a little bug in decideAIPayment of CostSacrifice.
- Fixed a little bug in chooseSacrificeType.
- Added a little more safety code to prevent AI freezing.
- A little AI tweak to support Awe Strike.
- Removed Words of War (it was not completely right).
- Improved changeZoneAllTriggerAINoCost.
- Improved the AILogic "MostProminentHumanControls".
- Fixed AF Fight not checking for fighters on battlefield.
- Fixed AI payment of non-mana costs of static abilities (for example morph).
- Fixed isCardInPlay.
- Converted Academy Rector and Lost Auramancers to script.
- Cleanup.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added AI targeting to AF ChangeZoneAll if origin is library to support the ultimate of Jace, the Mind Sculptor.
- Fixed rarity for Helvault
- Added canPlayFromEffectAI to AF Token.
- use FScrollPane instead of JScrollPane in ViewDraft so it uses the colors of the skin.
- CheckStyle.
- Fixed Parallax Dementia. Used Reality Acid tech.
- Fixed Forethought Amulet.
- Fixed Reality Acid.
- Fixed Parallax Dementia.
- Converted Explosive Revelation to script.
- Converted Mind Funeral to script. Thanks Sol.
- Text fix
- Fixed Helm of the Ghastlord.
- Included Infect in evaluateCreature.
- Little fix in the script of Distortion Strike.
- Added a very hard version of the Jabba the Hut deck.
- When using Defined$ TargetedController for SpellAbilities, we should use the Spell Activator, not the Spell's Source Card's Controller.
- fix Crash when Animate Dead is put onto battlefield by things like Show and Tell.
- Added Burnout (Hydroblast and Pyroblast can be scripted this same way)
- Ran Oracle and SetInfo scripts
- Removed the unnecessary code from the matchesValid function.
- Added "HIDDEN" to some unblockable pumps.
- Fixed an IndexOutOfBoundsException in getPumpCreatures.
- Moved draft instructions and licensing information into overlay format.
- Also, a few performance fixes for classes involved.
- Redundant scaleLargerThanOriginal method removed from ImageCache, preferences setting used directly instead.
- First small attempt at "non-sticky" combat panel (needs playtesting).
- Added the precon Angelic Might.
- Added the precon Solitary Fiends.
- Added 7ED setinfo to Infernal Contract.
- added support for random sacrifice choice
- added support for ForgetOtherRemembered and Optional to changeKnownOriginResolve
- Adding Repeat AF.
- added default value for RepeatSVarCompare
- Fixed Drake Familiar.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Reverted green/red theme on phase labels.
- Added targeting support to tapAllTrigger AI.
- Updated some SVars.
- Codebase organization:
1) Moved MatchState from forge package into model package, renamed to FMatchState.
2) Documented the difference between FMatchState and FGameState.
- Added Trepanation Blade (and supporting RememberRevealed code to AbilityFactoryReveal)
- Fixed possible NPE in AbilityFactory.getDefinedSpellAbilities()
- Cleanup in CardFactorySorceries.java
- Fixed Illumination.
- Updated some SVars.
- Fixed Gravity Well.
- Fixed Curse of Thirst.
- Converted Spectral Bears and Spectral Force to script.
- The AI can now use Tyrant of Discord.
- Fixed changeKnownOriginResolve.
- Removed SVar:RemAIDeck:True from Primal Surge.
- Fixed Slithermuse.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Dawnfluke.
- Fixed an issue with the phase labels not updating completely, especially in custom layouts.
- Fixed a bug with the stack not repainting after changes are made.
- Tweaked AF DealDamage AI.
- Added the AILogic "Always" to AF Effect.
- Changed "Revert Layout" to "Open Layout" To revert to factory layout, open "match_default.xml"
- Improved AI of Glint Hawk Idol.
- Added AILogic parameter to AF Protection.
- adding *.jpg to ignore list for res/pics/tokens
- adding branch for mana restrictions
- Refactored some of the new code for a general open dialog. Dock now has new button "Open Layout" along with old button with original function "Revert Layout"
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Aggravate.
- Fixed initiatePossibleDefenders being called in the wrong phases (which made it possible to attack planeswalkers which weren't on the battlefield anymore).
- Removed a superfluous function.
- Improved functionality of "Load Layout" dock button.
- Fixed AI of Graveyard Shovel and an ability description of Relic of Progenitus.
- Added the player keyword "You can't gain life.".
- Reduce the likelihood of upgrading Rares to Mythics for new quests.
- Added "Save Layout" feature. Save dialog function in forge.gui.toolbox improved. Save layout functions in SIOUtil slightly modified to accept these changes.
- Convert Living Weapon to script
- Converted parts of Forsaken Wastes and Leyline of Punishment to script.
- Converted Platinum Emperion to script.
- Added the player keyword "You can't draw cards.".
- Converted Maralen of the Mornsong and Omen Machine to script.
- Created Ability Borrowing branch
- Fixed Painbringer.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- copying activated abilities will now also copy conditions and restrictions (AbilityWork branch).
- fixed type of Phyrexian Devourer.
- Made Gomazoa playable by the AI.
- strip out spaces in filenames
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed a problem with TargetUnique.
- Cleanup of CardFactoryUtil.
- A Morphed card on the stack will no longer reveal its colors.
- Added a fluff piece to the changes.txt file.
- Clear Simultaneous triggers at the end of the game
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed AI of Increasing Confusion.
- Replaced some instances of af.getHostCard() with sa.getSourceCard().
- merge updates from Trunk 15508-15541
- costmanaparser
- made it buildable (there were missing refs to VDock and FSkin)
- removed some obvious warnings
- Switched mana to ManaCostShards, removed special classes for each mana kind
- Fixed the ability costs for Ghave, Guru of Spores.
- Fixed Iceberg.
- Improved AI for Soulbond.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Reorganized some parts of digResolve (some more parameters now work together or without certain others).
- add check for empty cost string
- Fixed Endless Wurm.
- Fixed Inquisitor's Flail.
- ManaPaid back to Mana
- Merged ManaCost upgrade from branch into trunk (r15546-15556)
- remove warnings, removed manaparser
- adding RestrictValid parameter support to AbilityMana and InputPayMAnaCostUtil
- Fixed Trusted Advisor and similar cards.
- adding RestrictValid parameter support to ComputerUtil to check restriction for AI
- MyObservable - moved frequent calls to a variable, moved the very class to utils package
- Added the AI SVar "HasAttackEffect".
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added "SVar:HasAttackEffect:TRUE" to some cards.
- Added "SVar:HasAttackEffect:TRUE" to two more cards.
- Updated some decks with new cards.
- Fixed a bug with initiatePossibleDefenders.
- More Cleanup in Combat class.
- Added a medium version of the Radiant deck.
- Updated three decks with new cards.
- Improved AI of AF Dig.
- Cleanup in AF Dig.
- Checkstyle fixes to CDock.
- CardCharacteristics stores manacost as CardManaCost instead of String
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Sludge Strider's 'leaves the battlefield' trigger.
- Quick fix for unless costs of zero mana.
- A triggered ability that fails targeting will no longer clear the whole frozen stack (only its own stack instance).
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Uploaded the Avacyn Restored set and token images. Updated scripts for token generators in the set to use set specific tokens. Updated token links.
- Added the optional parameter "ForgetRemembered" to AF Play.
- ActivationLimit can calculate values from svars now.
- Fixed typo in recently added cards (my commit comment was misspelled)
- Updated card prices.
- Updated two AI SVars.
- Replaced some instances of af.getHostCard() with sa.getSourceCard().
- Fixed a lot of sloppily scripted SpellCast triggers (A-E).
- Fixed a lot of sloppily scripted SpellCast triggers (F-H).
- Fixed a lot of sloppily scripted SpellCast triggers (I-M).
- Fixed a lot of sloppily scripted SpellCast triggers (N-Z).
- Reordered trigger condition checks for better performance.
- Updated two AI SVars.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- The AI will now cast Equipments in Main1 if a possible attacker is present.
- Deck editor UI integration.
- Default layout file for editor added.
- Removed font scaling from FLabel.
- Updated Firebloom skin with improved icons and compressed background images (thanks WompWomp).
- Updated load/save layout icons.
- Removed some legacy accessors from VMatchUI.
- Updated document ID enum with more descriptive names.
- Rolling back last commit; unforeseen problems.
- Renamed "ForgeIcons" enum in FSkin to more accurate "InterfaceIcons".
- Fixed "Tapped" parameter in AF ChangeZone.
- Fixed and simplified Deadeye Navigator.
- Fixed a tooltip typo.
- Added the recent commit logs to changes.txt.
- Replaced two tooltips.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Some preparations for better planeswalker attacking AI.
- Replaced finalizer method in main(), attempting to fix race condition at startup.
- Fixed dev mode toggle in preferences submenu/match UI.
- Updated card detail text area to always scroll to top.
- Fixed unlimited lands bug.
- Fixed a two more copies of the tooltip typo.
- reworked Mana object paradigm and ManaPool
- Fixed Tamiyo's (and Venser's) emblem image download link
- Check for null spellAbility source card in mana restrictions. Makes multikicker not payable with restricted mana.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Bugfix: Race condition at startup, resulting in "Cannot instantiate SplashFrame" error.
- Removed images/ directory reference in main.properties. Card pics, tokens, and icons (that is, downloadable content) all reside in the pics/ directory.
- Fixed overlay resizing to correspond with window resize.
- Removed legacy "layout params" from preferences.
- Consolidated preference files and main.properties under res/preferences/.
- Updated methods to make change smoothly without losing old preferences.
- Added a fluff piece to the changes.txt file.
- Edited the readme.txt file.
- Added a fluff piece to the changes.txt file.
- added support for mana adding counter magic protection
- Updated plant pet images to use same template as the other new pets. Updated token image download links etc.
- Updated two AI SVars.
- KO'd a few insignificant compiler warnings.
- Returned dev mode toggle functionality.
- updated for new Mana constructor
- merged r15541-r15645 from the Trunk into mana_restrictions branch
- Fixed an AI error concerning Indestructible in combination with Double Strike.
- Adding proxy printing back (work in progress)
- Darn dev mode toggle still causing problems. Rolling back.
- Start of conversion of home menu to drag layout. No effect on working project files.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed (non-) AI of AF SetState.
- Converted Primal Clay and Primal Plasma to script.
- Edited the readme.txt file.
- Fixed Auntie's Hovel and friends causing "becomes tapped" triggers to fire.
- fixed a logic bug in mana restrictions
- merged r15648-r15660 from the Trunk into mana_restrictions branch
- add support for Primal Beyond
- refactored meetsManaRestrictions. added most of the remaining restricted mana sources.
- added RemRandomDeck and RemAIDeck to restricted mana cards
- merged r15665 from the Trunk into mana_restrictions branch
- edited merge properties
- edited merge properties some more
- Added the static ability "CostChange".
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Deny Reality, it now is a Sorcery.
- merged mana_restrictions branch into Trunk
- Added basic AI to AF GenericChoice.
- Removed some unused functions.
- Little tweak in charmCanPlayAI.
- Add print proxy functionality back into GUI
- fixed static effect on Grand Architect
- Home screen converted to drag cell layout (minor visual change; mainly structural).
- Bugfix: panels not clearing properly
- Fixed odd "unknown" skin icon in quest mode.
- Updated print icon in sprite.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Further bug fixes, to home and bazaar screens.
- Fixed pet combo box not reappearing in quest mode.
- Possible fix for strange behaviors in closing win/lose screen.
- Merged changes from trunk to AbilityWork: r15523-r15685
- removed main.properties from res/ directory
- Tweaked Assault code in ComputerUtilAttack.
- Cleanup and performance update in ComputerUtilAttack.
- update plugin
- Improved notNeededAsBlockers in ComputerUtilAttack.
- AbilityWork branch: Let code outside of abilities use calculateAmount without crashing.
- AbilityWork: Added References$ parameter to scripted abilities of 'A' cards where necessary.
- AbilityWork: Added References$ parameter to scripted abilities of 'B' cards where necessary.
- Attempt #3 on dev mode toggle fix.
- AbilityWork: Added References$ parameter to scripted abilities of 'X-Z' cards where necessary.
- Fixed Brood Sliver
- update testng
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- AbilityWork: Added References$ parameter to scripted abilities of 'W' cards where necessary.
- Added to AbilityFactoryEffect: EffectOwner, Duration$UntilHostLeavesPlay, and RememberEffect.
- Added exception to Card.java so that Effect cards can be counted when remembered
- Fixed Magebane Armor.
- CheckStyle.
- Fixed Soul Seizer // Ghastly Haunting script.
- Fixed Curse of Thirst and Curse of the Pierced Heart after EnchantedPlayer removed from Valid.
- merged updates (r13217-r13308) from trunk cardsfolder into DKA branch.
- Converted to script: Ceta Sanctuary and Dega Sanctuary
- Ran SetInfo and Oracle scripts
- Small fix
- Fixed summoning sickness not being cleared on the first turn of the player going second.
- AbilityWork: Added References$ parameter to scripted abilities of 'V' cards where necessary.
- Split CostChange static ability into RaiseCost and ReduceCost.
- AbilityWork: Added References$ parameter to scripted abilities of 'C' cards where necessary.
- Updated 3 decks.
- AbilityWork: Added References$ parameter to scripted abilities of 'D' cards where necessary.
- AbilityWork: Added References$ parameter to scripted abilities of 'E' cards where necessary.
- Fixed "Exit Forge" button in main menu.
- Added name, type, text filters to text-based search in editor.
- Fixed card shop close crash.
- Stack tab is now shown each time the stack updates.
- Converted card price download dialog into standard GuiDownloader type, which at the same time prevents the UI freeze after prices are downloaded.
- Added turn counter to message info.
- Game log should now be easier to read.
- Updated tab text in quest card shop.
- Small typo fix (Solar Tide)
- Fixed "Decks" column in Card Shop. Added "Decks" column to Quest deck editor.
- AbilityWork: Added References$ parameter to scripted abilities of 'F' cards where necessary.
- Indexing fixes in editor. Issues related to indexing should be solved now.
- Fixed drafting mode bug.
- AbilityWork:Corrected References$ for Avalanche.
- Added the recent commit logs to changes.txt.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- AbilityWork: Made sure SpellPermanent's with X-cost get their X-SVar set. (*Fixes Balduvian Hydra among others.)
- Increased the width of the checkbox with label for chbType. The test "Type" is no longer truncated under Mac OS.
- Fixed filter problems in Card Shop.
- Standardization: Implemented ILocalRepaint#repaintSelf() on FLabel and FPanel.
- Increased the width of the Selectors in the deck editor filter section.
- AbilityWork:Fixed a problem with subabilities operating on the wrong host card. (Enables Necrotic Ooze+Bloodline Keeper+Grimgrin, Corpse-Born infinite combo ^^ )
- AbilityWork:Added a "Trigger Breakpoint" dev mode button. Set a breakpoint at the indicated row in GuiDisplayUtil.devModeBreakpoint(), click this button while running in debug mode and enjoy a nice overview of the internals of the game.
- AbilityWork:Made calculateAmount fall back on card SVars if the wanted one isn't found on the spellability. Better fix for Balduvian Hydra and similar.
- AbilityWork: Added References$ parameter to scripted abilities of 'G' cards where necessary.
- AbilityWork: Console printout warning when calculateAmount falls back to using Card Svars. Helps when debugging if an ability is not stolen properly, for instance.
- Bugfix: Quest challenges now persist across restarts. Also some checkstyle.
- Checkstyle.
- Checkstyle.
- Minor correction.
- creating branch for fixing clone cards
- added Clone AF and first steps in moving SVars to CardCharacteristics class
- updated LQ picture downloader to handle flip/DFC states
- Added "transform on click" capability to card picture and detail.
- A few tweaks to card flip code.
- Changed tab text to match skin color swatch.
- Cleanup: Tightened up interface contracts in home submenus.
- Merged changes from trunk to AbilityWork: 15691-15747
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- This will center the Type checkbox between the Name and Text checkboxes.
- Reverted the changes made to the main.properties file, these were probably pushed unintentionally to the SVN.
- CheckStyle.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Edited the README.txt file and included more info about the layout files.
- fixed bug in Effect AB that was causing a NPE
- AbilityWork: Added References$ parameter to scripted abilities of 'M' cards where necessary.
- AbilityWork: Added some missing References$ params
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- AbilityWork: Added References$ parameter to scripted abilities of 'N' cards where necessary.
- AbilityWork: Added References$ parameter to scripted abilities of 'O' cards where necessary.
- AbilityWork: Added References$ parameter to Archangel of Strife.
- Hopefully fixed replacement effects getting stuck as "currently running" and thus never being run again.
- added SpellDescription to added ability so it shows up in the menus clearly
- CLoneFIx: updated SVars on flip/DFC/licid cards
- merged r15740-r15764 from the Trunk into CloneFix branch
- Fixed Kabira Evangel, should not trigger for Allies that etb under opponent's control.
- Added a missing xPaid svar to Squall Line.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed the inactive tabs in deckeditor being unreadable in the default
- Added Effect duration HostLeavesOrEOT (won't cause NPE's for other durations this time)
- update plugins
- AbilityWork: Added References$ parameter to scripted abilities of 'H' cards where necessary.
- Terrarion should now enter the battlefield tapped.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Small fix (renamed Blind Fury effect)
- Small addition in ReplacementHandler's OptionalDecider block so that DefinedPlayers needing an ActivatingPlayer have a reference point.
- Updated Animate AF to handle cards with multiple states.
- merged r15764-r15782 from the Trunk into CloneFix branch
- Tidied up the stack descriptions for Nissa Rivane.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Updated Animate AF to cleanup added SVars and static abilities.
- AbilityWork: Added References$ parameter to scripted abilities of 'I' cards where necessary.
- Removed some unnecessary bits from Homing Sliver script
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- AbilityWork: Added References$ parameter to scripted abilities of 'J' cards where necessary.
- Fixing Card Shop crash for Packs, but the Packs still aren't displayed.
- Change to download all-prices.txt from cardforge.org. PHP Script running on cardforge.org uses tcgplayer, providing live pricing data. (MOTL still is missing Dark Ascension and Avacyn Restored)
- Spell Shop uses Name|SET to lookup price data. Alpha Bird of Paradise will be worth more than Ravnica, etc...
- Fixed PerSetTracking python script to handle new mtgdata format.
- Added a fluff piece to the changes.txt file.
- Updated setdata.txt, mtg-data.txt and setInfoScript.py with Planechase 2012 info.
- Fixed a bug in AF Reveal.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added a fluff piece to the changes.txt file.
- Updated AF Pump AI.
- Fixed Dream Thief.
- Fixed Rats' Feast (was referencing the incorrect svar)
- AbilityWork: Added References$ parameter to scripted abilities of 'P-R' cards where necessary.
- Added a fluff piece to the changes.txt file.
- update plugins
- Fixed Lotus Bloom.
- merged r15782-r15810 from the Trunk into CloneFix branch
- Improved AI handling some HIDDEN keywords with AF Pump.
- Performance update in staticDamagePrevention.
- Little Performance update in hasSickness().
- Graft will no longer trigger if the card has no more +1/+1 counters.
- The AI will now be more careful when fetching legendary permanents.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Sever the Bloodline.
- Updated text of Hunting Grounds.
- Added unpairing to moveToLibrary.
- Fixed targeting in gainLifeDoTriggerAINoCost.
- CheckStyle.
- Improved AI of some cards using AF Charm.
- Creating branch for M13 Cards
- Changed delayed triggers of Pacts to abilities rather than spells; Summoner's Pact no longer shuffles into library
- Fixed Riders of Gavony.
- Added the recent commit logs to changes.txt.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Merged changes from trunk to AbilityWork: r15686-r15836
- Somehow missed some scripts in the merge...
- Cardshop UI tweaks:
* Removed Add/Remove 4-of.
* Relabeled As Buy/Sell.
* Added credits counter.
* Added Max Selling Percentage and Price.
* Fixed labels and buttons to return to normal for regular deck editor.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Removed AI column from card shop.
- Removed New Column from Cards for Sale.
- Fixed moveToLibrary bug.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Improved AI handling the keyword "You may have CARDNAME assign its combat damage as though it weren't blocked.".
- Fixed AF GainControl not setting the right controller for spells.
- Added Protection keywords to isNonStackingKeyword.
- Fixed LoseControlCommand in AF GainControl.
- merged r15810-r15847 from the Trunk into CloneFix branch
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- AbilityWork: Added References$ parameter to scripted abilities of 'K' cards where necessary.
- AbilityWork: Added References$ parameter to scripted abilities of 'T-U' cards where necessary.
- AbilityWork: Added References$ parameter to scripted abilities of 'L' cards where necessary.
- AbilityWork: Added References$ parameter to scripted abilities of 'Sa' cards where necessary. (Separating by second letter because damn, 'S' cards make up almost 15% of the card pool.1545 flippin' cards!)
- AbilityWork: Added References$ parameter to scripted abilities of 'Sc' cards where necessary. (Separating by second letter because damn, 'S' cards make up almost 15% of the card pool.1545 flippin' cards!)
- AbilityWork: Added References$ parameter to scripted abilities of 'Se' cards where necessary. (Separating by second letter because damn, 'S' cards make up almost 15% of the card pool.1545 flippin' cards!)
- AbilityWork: Added References$ parameter to scripted abilities of 'Sh' cards where necessary. (Separating by second letter because damn, 'S' cards make up almost 15% of the card pool.1545 flippin' cards!)
- AbilityWork: Added References$ parameter to scripted abilities of 'Si' cards where necessary. (Separating by second letter because damn, 'S' cards make up almost 15% of the card pool.1545 flippin' cards!)
- AbilityWork: Added References$ parameter to scripted abilities of 'Sp-Sz' cards where necessary.
- AbilityWork: Added References$ parameter to scripted abilities of 'Sk' cards where necessary. (Separating by second letter because damn, 'S' cards make up almost 15% of the card pool.1545 flippin' cards!)
- AbilityWork: Added References$ parameter to scripted abilities of 'Sl-So' cards where necessary.
- AbilityWork: Added References$ parameter to en-Kor cards.
- AbilityWork: Added References$ parameter to some Effect and Token generator cards.
- Minor edits.
- Fixing AF_Tokens interaction with ManaShards
- Added a fluff piece to the changes.txt file.
- CheckStyle.
- fixed misalignment of mana icons
- Fixed Level 4 Hound pet's ability.
- Fixed a RuntimeException error message typo
- Verdant Force tokens weren't displaying their image. Fixed.
- Commented out the hooks for the cost change static ability in getSpellCostChange (until the ability is used).
- Adding braces.
- 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:
Afflicted Deserter // Werewolf Ransacker
Beguiler of Wills
Chalice of Life // Chalice of Death
Chant of the Skifsang
Curse of Bloodletting
Curse of Thirst
Drogskol Reaver
Faithless Looting
Falkenrath Aristocrat
Falkenrath Torturer
Flayer of the Hatebound
Gather the Townsfolk
Ghoultree
Gravecrawler
Havengul Runebinder
Headless Skaab
Helvault
Hunger of the Howlpack
Huntmaster of the Fells // Ravager of the Fells
Increasing Confusion
Increasing Devotion
Jar of Eyeballs
Lambholt Elder // Silverpelt Werewolf
Lingering Souls
Loyal Cathar // Unhallowed Cathar
Markov Blademaster
Mikaeus, the Unhallowed
Mondronen Shaman // Tovolar's Magehunter
Moonveil Dragon
Nearheath Stalker
Predator Ooze
Ravenous Demon // Archdemon of Greed
Scorned Villager // Moonscarred Werewolf
Secrets of the Dead
Sorin, Lord of Innistrad
Soul Seizer // Ghastly Haunting
Strangleroot Geist
Stromkirk Captain
Thalia, Guardian of Thraben
Thought Scour
Thraben Doomsayer
Tragic Slip
Vault of the Archangel
Vorapede
Warden of the Wall
Zombie Apocalypse
Many people helped with this version. A special thank you goes out to them. (Attempted to list names alphabetically):
@@ -6,17 +6,25 @@ Once the Forge archive has been decompressed you should then be able to launch F
After downloading and installing a newer version of Forge you may want to move certain files from the older version over to the newer version of Forge. You should maintain your older version of Forge as a back up in case you make a mistake while installing the newer version.
1) The /res/pics/ folder contains the card pictures, token pictures (mtg card tokens an quest pet/plant tokens) and the booster package images. Please note that the /res/pics/icons/ folder was moved out of this folder and placed in the /res/images/ folder.
1) The /res/pics/ folder contains the card pictures, icons and token pictures (mtg card tokens and quest pet/plant tokens). Please note that the /res/images/icons/ folder was moved back to the /res/pics/ folder. The forge /res/images/ folder no longer is used as of version 1.2.8.
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.
The /res/pics/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/pics_product/ folder contains four folders which in turn contain pictures for the booster, fatpacks, precons and tournamentpacks products.
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".
3) 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.
4) The /res/quest/ folder contains your questData file. This file includes all of the information for your current quest. You will not be able to continue your quest in a newer version of Forge unless you copy over the file named "questData.dat".
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.
5) The Forge root folder contains a preference file named "forge.preferences" and you should also move a copy of this file over to the newer version.
4) 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".
5) The /res/quest/data folder contains your questData files. These files include all of the information for your current quests. You will not be able to continue your quests in a newer version of Forge unless you copy over the your quest data files. These files have a ".dat" extension. You can now have multiple ongoing quests at the same time.
6) The Forge /res/preferences/ folder contains the preference files named "forge.preferences" and "editor.preferences". You should also move a copy of these files over to the newer version. The /res/preferences/ folder was added to version 1.2.8. The main.properties file was also moved to the /res/preferences/ folder.
7) The /res/layouts/ folder contains a file named "match_preferred.xml". This file contains information that forge uses when setting the layout for the battlefield display. The match_default.xml file contains the default layout for the battlefield.
The editor_preferred.xml file contains information that forge uses when setting the layout for the deck editor display. The editor_default.xml file contains the default layout for the deck editor display.
Advanced Updating to a newer version Instructions:
@@ -51,6 +59,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.
Launching Forge and Memory Issues:
@@ -67,6 +77,34 @@ If you have a low end machine you may find that the scripts above will prevent j
In this case you can try the following. Remove the background jpg picture from /res/images/ui/ folder. You can try using low quality pictures rather than the high quality pictures. Or you can try removing all of the jpg pictures from the pics folder.
Forge failed to launch:
If you're trying to run Forge for the first time, but it doesn't open up, you can try the following to get some output and help yourself/us solve the problem.
1) Open up a terminal
- Under Windows, press Windows+R, type "cmd", hit enter
- Under Linux, you probably know that yourself. Use your distribution's application menu, and search for "terminal" in a group like "utilities".
- Launch the program named "Console.app" which can be found in your /Applications/Utilities/ folder. Highlight the "All Messages" option and click on the "Clear Display" button before launching Forge.
2) Go to the folder where you unpacked Forge
- Windows: Let's say your forge is in D:\Programs\Forge.
- Type "D:", Enter to change to the D: drive.
- Type "cd \Programs\Forge", Enter to change to the directory.
- NOTE: On nonenglish systems, you might have problems due to the poor localization of Windows. Go to the innermost directory you find (worst case is "\"), then "dir", Enter to show all folders in that folder. Search for the one you're probably wanting. For Example the German "Programme" could really be "Program Files" or something like that.
- NOTE: You might have to "quote" directory names with Spaces in them
- Linux: Let's say your forge is in /home/user/Forge
- Type "cd /home/user/Forge", Enter
- NOTE: You might have to "quote" or 'quote' directory names with Spaces in them
- Current versions of Forge no longer include a launcher script for Mac OS, proceed to step three.
3) Run Forge
- On Windows, just type "forge.exe", Enter
- On Linux, just type "forge.sh", Enter
- 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.
The Card Pictures disappear when you restart Forge:
if you're running Windows 7, make sure you're running the program as an admin, otherwise no changes will be made to your system (nothing is saved). In Windows 7, Forge may be happier when run from somewhere in the My Documents structure, (they call them Libraries now???) or from another partition other than C:. The user has little permission to do much on the system drive.
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$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME dies, destroy all creatures blocking or blocked by it. They can't be regenerated.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, destroy all creatures blocking or blocked by it. They can't be regenerated.
R:Event$ Draw | ValidPlayer$ You | ReplaceWith$ AbundantChoice | Optional$ True | Description$ If you would draw a card, you may instead choose land or nonland and reveal cards from the top of your library until you reveal a card of the chosen kind. Put that card into your hand and put all other cards revealed this way on the bottom of your library in any order.
Oracle:If you would draw a card, you may instead choose land or nonland and reveal cards from the top of your library until you reveal a card of the chosen kind. Put that card into your hand and put all other cards revealed this way on the bottom of your library in any order.
A:SP$ Attach | Cost$ G | ValidTgts$ Land | AILogic$ Pump
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ FreeCard | TriggerDescription$ When CARDNAME enters the battlefield, draw a card.
SVar:FreeCard:DB$Draw | Cost$ 0 | Defined$ You | NumCards$ 1
S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddAbility$ AbundantGrowthTap | Description$ Enchanted land has "T: Add one mana of any color to your mana pool."
SVar:AbundantGrowthTap:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color to your mana pool.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, each player sacrifices a creature.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSac | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, each player sacrifices a creature.
SVar:TrigSac:AB$Sacrifice | Cost$ 0 | SacValid$ Creature | Defined$ Each
Text:When Academy Rector is put into a graveyard from the battlefield, you may exile it. If you do, search your library for an enchantment card and put that card onto the battlefield. Then shuffle your library.
Text:no text
PT:1/2
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigExile | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may exile it. If you do, search your library for an enchantment card and put that card onto the battlefield. Then shuffle your library.
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.
Oracle:{4}, {T}: Whenever target creature deals combat damage to a non-Wall creature this turn, destroy that non-Wall creature. When the targeted creature leaves the battlefield this turn, sacrifice Acidic Dagger. Activate this ability only before blockers are declared.
A:AB$ DealDamage | Cost$ 1 T | NumDmg$ 1 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | SubAbility$ SquirrelTokenCtrl | SpellDescription$ CARDNAME deals 1 damage to target creature or player. That creature's controller or that player puts a 1/1 green Squirrel creature token onto the battlefield.
Oracle:{1}, {T}: Acorn Catapult deals 1 damage to target creature or player. That creature's controller or that player puts a 1/1 green Squirrel creature token onto the battlefield.
A:SP$ Repeat | Cost$ 3 B B | RepeatSubAbility$ DBDig | RepeatOptional$ True | StackDescription$ Reveal the top card of your library and put that card into your hand. You lose life equal to its converted mana cost. You may repeat this process any number of times. | SpellDescription$ Reveal the top card of your library and put that card into your hand. You lose life equal to its converted mana cost. You may repeat this process any number of times.
Oracle:Reveal the top card of your library and put that card into your hand. You lose life equal to its converted mana cost. You may repeat this process any number of times.
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$ Land.YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ Landfall - Whenever a land enters the battlefield under your control, you may exile target nonland permanent other than CARDNAME.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerDescription$ When CARDNAME leaves the battlefield, return all cards exiled with it to the battlefield under their owners' control.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return all cards exiled with it to the battlefield under their owners' control.
A:SP$ Dig | Cost$ 2/U 2/U 2/U | DigNum$ 4 | ChangeNum$ 1 | SubAbility$ Dig2 | ConditionCheckSVar$ X | ConditionSVarCompare$ LEY | SpellDescription$ Look at the top five cards of your library. If you control more creatures than each other player, put two of those cards into your hand. Otherwise, put one of them into your hand. Then put the rest on the bottom of your library in any order.
Oracle:({2/U} can be paid with any two mana or with {U}. This card's converted mana cost is 6.)\nLook at the top five cards of your library. If you control more creatures than each other player, put two of those cards into your hand. Otherwise, put one of them into your hand. Then put the rest on the bottom of your library in any order.
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$ SpellCast | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ Whenever a player casts a creature spell, that player sacrifices a permanent unless he or she pays 1.
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.
A:AB$ ChangeZone | Cost$ T | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | TgtPrompt$ Choose target creature card in your opponent's graveyard | ValidTgts$ Creature.YouDontCtrl+cmcLEX | ChangeNum$ 1 | SpellDescription$ Put target creature card from an opponent's graveyard onto the battlefield under your control if its converted mana cost is less than or equal to the number of Allies you control.
A:AB$ ChangeZone | Cost$ T | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | TgtPrompt$ Choose target creature card in your opponent's graveyard | ValidTgts$ Creature.YouDontCtrl | ConditionCheckSVar$ Y | ConditionSVarCompare$ LEX | ChangeNum$ 1 | SpellDescription$ Put target creature card from an opponent's graveyard onto the battlefield under your control if its converted mana cost is less than or equal to the number of Allies you control.
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.)
A:SP$ DamageAll | Cost$ 3 R R | ValidTgts$ Player | TgtPrompt$ Select target player | NumDmg$ 1 | RememberDamaged$ True | ValidCards$ Creature | ValidDescription$ each creature target player controls. | SubAbility$ DBAttack | SpellDescription$ CARDNAME deals 1 damage to each creature target player controls.
SVar:DBAttack:DB$ Pump | Defined$ Remembered | KW$ HIDDEN CARDNAME attacks each turn if able. | SubAbility$ DBCleanup | SpellDescription$ Each creature dealt damage this way attacks this turn if able.
A:SP$ Destroy | Cost$ 3 B | ValidTgts$ Creature.nonBlack | TgtPrompt$ Select target nonblack creature | NoRegen$ True | SpellDescription$ Destroy target nonblack creature. It can't be regenerated. If CARDNAME was kicked, it deals damage equal to that creature's power to the creature's controller.
A:SP$ Destroy | Cost$ 4 B R | ValidTgts$ Creature.nonBlack | TgtPrompt$ Select target nonblack creature | NoRegen$ True | SubAbility$ DBDamage | SpellDescription$ Kicker 1 R (You may pay an additional 1 R as you cast this spell.)
A:SP$ Destroy | Cost$ 4 B R | SetAsKicked$ True | ValidTgts$ Creature.nonBlack | TgtPrompt$ Select target nonblack creature | NoRegen$ True | SubAbility$ DBDamage | SpellDescription$ Kicker 1 R (You may pay an additional 1 R as you cast this spell.)
SVar:DBDamage:DB$DealDamage | Cost$ 0 | Defined$ TargetedController | NumDmg$ X
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, each player sacrifices a land.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSac | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, each player sacrifices a land.
SVar:TrigSac:AB$Sacrifice | Cost$ 0 | SacValid$ Land | Defined$ Each
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.
A:AB$ Mana | Cost$ T | Produced$ 1 | SpellDescription$ Add 1 to your mana pool.
A:AB$ Effect | Cost$ U G T | Name$ Refuge Effect | StaticAbilities$ QuickSpell | SpellDescription$ Until end of turn, you may cast nonland cards as though they had flash.
SVar:QuickSpell:Mode$ Continuous | Affected$ You | AddKeyword$ You may cast nonland cards as though they had flash. | Description$ You may cast nonland cards as though they had flash.
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.
A:SP$ Pump | Cost$ 6 R R | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature an opponent controls | RememberTargets$ True | StackDescription$ None | SubAbility$ AlphaAttack | SpellDescription$ Target creature an opponent controls deals damage equal to its power to each other creature that player controls, then each of those creatures deals damage equal to its power to that creature.
SVar:AlphaAttack:DB$DamageAll | ValidCards$ Creature.YouDontCtrl+IsNotRemembered | DamageSource$ Targeted | NumDmg$ Y | SubAbility$ SucksToBeAlpha | StackDescription$ Targeted creature deals damage equal to its power to each other creature that player controls,
SVar:SucksToBeAlpha:DB$ EachDamage | ValidCards$ Creature.YouDontCtrl+IsNotRemembered | ValidDescription$ of those creatures | NumDmg$ X | DamageDesc$ damage equal to its power | DefinedCards$ Remembered | SubAbility$ DBCleanup | StackDescription$ then each of those creatures deals damage equal to its power to that creature
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
Oracle:Target creature an opponent controls deals damage equal to its power to each other creature that player controls, then each of those creatures deals damage equal to its power to that creature.
A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 1 | RestrictValid$ Card.wasCastFromGraveyard+withFlashback | SubAbility$ DBMana | SpellDescription$ Add two mana in any combination of colors to your mana pool. Spend this mana only to cast spells with flashback from a graveyard.
SVar:DBMana:DB$ Mana | Cost$ 0 | Produced$ Any | Amount$ 1 | RestrictValid$ Card.wasCastFromGraveyard+withFlashback | AILogic$ MostProminentInComputerHand
Oracle:Altar of the Lost enters the battlefield tapped.\n{T}: Add two mana in any combination of colors to your mana pool. Spend this mana only to cast spells with flashback from a graveyard.
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.
A:SP$ Draw | Cost$ 3 U | NumCards$ 3 | SubAbility$ ChangeZoneDB | SpellDescription$ Draw three cards, then put a card from your hand on the bottom of your library.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ EQ1 | Execute$ TrigPumpA | 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.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE2 | Execute$ TrigPumpB | Secondary$ True | 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.
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.
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.)
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top ten cards of your library, then exile any number of them and put the rest back on top of your library in any order.
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.
A:AB$ Mana | Cost$ T | Produced$ Any | RestrictValid$ Creature | SpellDescription$ Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ ExileAll | TriggerDescription$ When CARDNAME enters the battlefield, exile all Zombies, then return all Human creature cards from your graveyard to the battlefield.
Oracle:Flying\nWhen Angel of Glory's Rise enters the battlefield, exile all Zombies, then return all Human creature cards from your graveyard to the battlefield.
S:Mode$ Continuous | Affected$ Creature.nonBlack+Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other nonblack creatures you control get +1/+1.
S:Mode$ Continuous | Affected$ Player | AddKeyword$ You can't pay life to cast spells or activate abilities. & You can't sacrifice creatures to cast spells or activate abilities. | Description$ Players can't pay life or sacrifice creatures to cast spells or activate abilities.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ HolyHeal | TriggerDescription$ When CARDNAME enters the battlefield, prevent the next 5 damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose.
SVar:HolyHeal:DB$ PreventDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player (1) | Amount$ 1 | SubAbility$ Heal2
SVar:Heal2:DB$ PreventDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player (2) | Amount$ 1 | SubAbility$ Heal3
SVar:Heal3:DB$ PreventDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player (3) | Amount$ 1 | SubAbility$ Heal4
SVar:Heal4:DB$ PreventDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player (4) | Amount$ 1 | SubAbility$ Heal5
SVar:Heal5:DB$ PreventDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player (5) | Amount$ 1
Oracle:Flash, convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.)\nFlying\nWhen Angel of Salvation enters the battlefield, prevent the next 5 damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose.
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.AttachedBy | AddType$ Angel | AddColor$ White | Description$ Equipped creature gets +2+2, has flying and is a white Angel in addition to its other colors and types.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigAnimateTomb | OptionalDecider$ You | TriggerDescription$ Whenever a creature enters the battlefield under your control, you may have CARDNAME become a 3/3 white Angel artifact creature with flying until end of turn.
Oracle:Whenever a creature enters the battlefield under your control, you may have Angel's Tomb become a 3/3 white Angel artifact creature with flying until end of turn.
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:AB$ Fog | Cost$ W U G T | PlayerTurn$ True | ActivationPhases$ Upkeep,Draw,Main1,BeginCombat,Declare Attackers - Play Instants and Abilities,Combat_Declare_Blockers_InstantAbility | SpellDescription$ Prevent all combat damage that would be dealt this turn. Activate this ability only before the combat damage step.
A:AB$ Fog | Cost$ W U G T | PlayerTurn$ True | ActivationPhases$ Upkeep->Declare Blockers - Play Instants and Abilities | SpellDescription$ Prevent all combat damage that would be dealt this turn. Activate this ability only before the combat damage step.
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$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a creature spell, put a +1/+1 counter on CARDNAME.
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TeaseYou | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each player's end step, CARDNAME deals 2 damage to that player unless one of his or her opponents was dealt damage this turn.
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Opponent | Execute$ TeaseOpp | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ At the beginning of each player's end step, CARDNAME deals 2 damage to that player unless one of his or her opponents was dealt damage this turn.
Oracle:At the beginning of each player's end step, Antagonism deals 2 damage to that player unless one of his or her opponents was dealt damage this turn.
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ AnthemPump | TriggerDescription$ Whenever a creature you control attacks, it gets +2/+0 until end of turn and CARDNAME deals 1 damage to you.
SVar:RakdosBurn:DB$ DealDamage | Defined$ You | NumDmg$ 1
R:Event$ DamageDone | ValidSource$ Card.YouCtrl | ValidTarget$ Creature,Player | Hellbent$ True | ReplaceWith$ DmgTwice | IsCombat$ False | Description$ Hellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead.
R:Event$ DamageDone | ValidSource$ Card.YouCtrl | ValidTarget$ Creature,Player | Hellbent$ True | ReplaceWith$ DmgTwiceCombat | IsCombat$ True | Secondary$ True | Description$ Hellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead.
Oracle:Whenever a creature you control attacks, it gets +2/+0 until end of turn and Anthem of Rakdos deals 1 damage to you.\nHellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead.
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.
S:Mode$ Continuous | Affected$ Player | SetMaxHandSize$ -1 | Description$ Players have no maximum hand size.
T:Mode$ Phase | Phase$ Draw | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ At the beginning of each player's draw step, that player draws an additional card, then discards a card.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | OptionalDecider$ You | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, you may put target Zombie card from your graveyard on top of your library.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | OptionalDecider$ You | ValidCard$ Card.Self | Execute$ TrigChange | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, you may put target Zombie card from your graveyard on top of your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | TgtPrompt$ Choose target Zombie card in your graveyard | ValidTgts$ Zombie.YouCtrl | Origin$ Graveyard | Destination$ Library | SpellDescription$ Put target Zombie card from your graveyard on top of your library.
A:AB$DestroyAll | Cost$ 2 T Sac<1/CARDNAME> | ValidCards$ Permanent.nonToken+setHML | NoRegen$ True | SpellDescription$ Destroy all nontoken permanents from the Homelands expansion. They can't be regenerated.
A:SP$ ChangeZone | Cost$ B | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | ChangeType$ Card.cmcGE4 | ChangeNum$ 1 | IsCurse$ True | Mandatory$ True | SpellDescription$ Target opponent reveals his or her hand. You choose a card from it with converted mana cost 4 or greater and exile that card.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ MorphChoice | Static$ True | TriggerDescription$ As CARDNAME enters the battlefield or is turned face up, it becomes your choice of 5/1 or 1/5.
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ MorphChoice | Secondary$ True | Static$ True | TriggerDescription$ When CARDNAME enters the battlefield or is turned face up, it becomes your choice of 5/1 or 1/5.
Oracle:As Aquamorph Entity enters the battlefield or is turned face up, it becomes your choice of 5/1 or 1/5.\nMorph {2}{U} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)
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.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ Tolstoy | Static$ True | TriggerDescription$ As CARDNAME enters the battlefield, each player chooses war or peace. Creatures controlled by players who chose war get +3/+0. Creatures controlled by players who chose peace get +0/+3.
Oracle:Flying\nAs Archangel of Strife enters the battlefield, each player chooses war or peace.\nCreatures controlled by players who chose war get +3/+0.\nCreatures controlled by players who chose peace get +0/+3.
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.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, exile target permanent.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, exile target permanent.
T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ At the beginning of the end step, return CARDNAME to its owner's hand.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | ValidCard$ Card.Self | Execute$ TrigGain | TriggerDescription$ When CARDNAME dies, you gain 2 life for each age counter on it.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | ValidCard$ Card.Self | Execute$ TrigGain | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you gain 2 life for each age counter on it.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ TriggeredCardController | LifeAmount$ X
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.
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.