Removed T... syntax from GuiUtils chooseNNN functions (cause one might be called with cardlist parameter as a single choice option)
Rmeoved SpellAbilityList.java - noone used it, and no special code in that class seen.
- Stacked "CARDNAME can block an additional creature" keywords will only display 1 description with the number of additional creatures it can block (eg CARDNAME can block an additional 3 creatures.)
*Allowed multiple ETBReplacements
*Removed a bunch of debug output
*Added "ETB" parameter to AF_Tap, letting it tap stuff no matter where it is if it certifies that it's an etb replacement.
*Fixed Remote Farm
*Added ActiveZones parameter to replacement effects to let replacement effects function wherever.
*Converted clones to ETBReplacement
*Added Essence of the Wild
*CardCharacteristics now copy ReplacementEffects
*ReplacementEffects now copy alot more stuff.
*Divvied up Replacement Effect running into layers
*Moved stuff common between Trigger and ReplacementEffect to TriggerReplacementBase
*Let AF_Tap tap cards on the stack in order to work with ETBReplacement.
*Converted Remote Farm to ETBReplacement.
- Cleaned up Divine Reckoning
- Added an optional parameter "ChoiceTitle" to ChooseCard to allow more descriptive title prompts for the choice dialogue box.
Added SVar:Targeting:Dies to relevant creatures.
Added SVar to Clone and Phantasmal Image so AI will not cast these spells when there are no creatures to copy.
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)
(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com)
9951 cards in total.
11188 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:
Multiple keyboard shortcut support added for CTRL and SHIFT keys. Shortcuts using ALT will not work and won't be supported. Keyboard shortcut system should be complete.
"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."
The Forge sealed deck mode has undergone significant changes. You can find these in the 1.2.14 beta and later versions. Instead of a single sealed deck match, you can now choose a 1-5 round gauntlet-style tournament where you will face increasingly difficult (probably) opponent decks. You can also choose to use starter packs instead of boosters in the block mode, choose to use 3-12 boosters instead of the default 6 in the full cardpool and custom (cube) modes, and so on.
Perhaps the most notable changes to the sealed deck mode are related to "fantasy blocks" and the greatly increased flexibility you have when you are building your own blocks.
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.
After taking a well needed break our UI dev has fixed and tweaked a few UI issues that people noticed and reported in the past. The long-standing Map/Zeppelin bug should be OK now. Just one problem, when the Zeppelin is launched, the panel doesn't refresh automatically. This is probably related to the problem where the images don't draw "the first time around". Anyway, the back-end works as it should.
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.
All modern legal sets are now at least 85% complete.
We recieved several reports of a bug which caused a crash report with the following content "java.lang.NumberFormatException: For input string: "X"". This should now be fixed.
--
On several occasions people have noticed that the forge deck editor and/or quest mode card shop would not open or display. We have also received reports that some of the tabs/panels in the deck editor are missing. Try deleting the file named "editor_preferred.xml" which is found in the "res/layouts" folder. This should force forge to then use the "editor_default.xml" file instead.
Several people have noticed that the cards displayed on the battlefield will fail to be displayed when the number of cards on the battlefield increases. Maximizing the human panel can help to re-display the cards.
Some time was spent turning the static ETB triggers into the proper ETB replacement effects they should be, mainly to interact correctly with eachother. This work is not yet finished. As a result there is currently some inconsistencies with "Enters the battlefield with counters" (Not incredibly noticeable).
It seems like the front face of double faced cards aren't triggering properly, but the back face and single faced cards are.
A recent contribution to the code base should fix some of the bugs that people noticed with cloning type abilities. At this time there are two remaining issues that we hope will be addressed in the near future.
1. Leave play triggers don't work correct for clones.
2. Copies of cards that setup Zone Change triggers via addComesIntoPlayCommand and addLeavesPlayCommand will not function correctly.
The work on the new UI is now finished. 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.
We are now using a different system for our snapshot and beta releases. Unfortunately, this new system builds a jar file which does not accurately display the SVN revision number.
Forge may not be fully java 7 compatible at this time. 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.
The archive format used for the Forge distribution is ".tar.bz2". There are utilities for Windows, Mac OS and the various *nix's that can be used to extract/decompress these ".tar.bz2" archives. We recommend that you extract/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:
Fixes/Features:
- merged updates from trunk cardsfolder into DKA branch
- Expanded UntapYType cost for Benthic Explorers
- Added the player keyword "Play with your hand revealed."
- Upgraded Combat Blockers/Assignment to adhere to latest rules.
- Converted Volrath's Dungeon to script.
- Upgraded MultipleBlockers/AssignDamage UI Element to automate a lot of the monotonous process
- Fixed Kjeldoran Javelineer.
- Simplify some Combat Damage functions
- Added some NPE checks to activateManaAbility.
- Added Gate to land types
- Fixed Fork. It now correctly changes the color of the copied spell to red.
- fix cost of Talons of Falkenrath
- Full Cardpool sealed deck games now allow you to choose 3-12 booster packs instead of the default 6.
- Fixed the Epic keyword.
- Fixed AI not checking doTrigger before a static trigger resolves.
- Converted Buyback to a keyword that creates an optional additional cost.
- UnsortedListModel that was moved from DualListBox actually added.
- Ignore close action for DualListBox Dialog and Assign Damage Dialog
- Cleared out the changes.txt file, now ready for new material.
- Cleared out the changes.txt file, now ready for new material.
- Fixed errors related to the AI controlling cards like Essence Bottle.
- Removed compile error.
- CheckStyle.
- clean up some Java warnings
- 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.
- Fixed Buyback on spells with X costs.
- Modified keyboard shortcuts algorithms to be less complicated to implement.
- Converted the rest of the Buyback spells to the new keyword.
- 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).
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- 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.
- Added AI support to the new Buyback keyword.
- ControlAllUI renamed to FControl to match project organization.
- Fixed command lists of phases not being reset when the game ends.
- Updated a few quest decks.
- Converted the old Kicker keyword to a proper optional additional cost.
- Converted Cranial Extraction to script.
- Converted Phyrexian Scuta to the new Kicker keyword.
- Added AI support to Rebound.
- Center AssignDamage and DualListBox containers
- Fixed Grozoth.
- Refresh combat panel when unassigning attacker or blocker
- Added canPlayFromEffectAI entries to AF GainLife and LoseLife.
- Lots of Combat simplification. Including maps of Attackers Block By a Blocker, and Attackers attacking a Defender for simpler access.
- Converted Maelstrom Pulse to script.
- Adding support for Block Any Creatures and Block Additional Creatures
- Set all TapsForMana triggers that execute a mana ability to static to conform with rule 605.4a.
- The AI will now check for kicked conditions when checking ETB Triggers of permanents.
- Converted Erratic Explosion to script.
- More improvements of kicker AI.
- Little fix
- Commented out the color replacement fix for Fork. Caused NPE for CopySpell Abilities.
- hook the PhaseLabels up to the skin
- Re-added the color fix for Fork (without the NPEs this time)
- 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 the recent commit logs to changes.txt. Preparing for the snapshot build release.
- 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.
- Actually repaint after clicking the alpha strike button
- Fixed rarity for Helvault
- Fix potential combat panel display issue by not removing attackers properly
- Added canPlayFromEffectAI to AF Token.
- Removing static ability description of Saproling Burst, since it made its DisplayPanel read weird
- use FScrollPane instead of JScrollPane in ViewDraft so it uses the colors of the skin.
- Fixed X costs resetting colors paid
- CheckStyle.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.- Updated the quest deck Radioactive Man 3.
- Fixed Parallax Dementia. Used Reality Acid tech.
- Added duration "UntilYourNextTurn" to Effect AF
- Fixed Forethought Amulet.
- Fix cleanup crash with planeswalkers in play
- Fixed Reality Acid.
- RtR Branch - removed extraeneous ststic ability reference from Jace's first ability
- Fixed Parallax Dementia.
- Added duration "UntilYourNextTurn" to Pump AF
- Converted Explosive Revelation to script.
- SetInfo and Oracle for Nivix, Aerie of the Firemind
- Converted Mind Funeral to script. Thanks Sol.
- fix for sorceries and instants with pumped "May be Played" keyword not clearing these keywords when they're cast.
- Text fix
- Sealed Deck mini tournaments, stage 1 (no sideboarding yet).
- Fixed Helm of the Ghastlord.
- Fix for the ViewWinLose / Sealed Deck.
- Included Infect in evaluateCreature.
- Made Phyrexian Metamorph's clone etb effect optional
- Little fix in the script of Distortion Strike.
- Added support for multiple Kicker abilities to permanents.
- Added a very hard version of the Jabba the Hut deck.
- Added duration "UntilYourNextTurn" to Animate AF
- When using Defined$ TargetedController for SpellAbilities, we should use the Spell Activator, not the Spell's Source Card's Controller.
- Fixed cmc in hasProperty not treating X spells on the stack correctly.
- fix Crash when Animate Dead is put onto battlefield by things like Show and Tell.
- Converted etbCounter keyword to act like ETBReplacement. (Slight syntax change.)
- Added Burnout (Hydroblast and Pyroblast can be scripted this same way)
- Removed the unnecessary code from the matchesValid function.
- Fixed Rimescale Dragon
- Added "HIDDEN" to some unblockable pumps.
- Added Vraska to Planeswalker types
- 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 recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Reverted green/red theme on phase labels.
- Added support for separate 'fantasy blocks' in Sealed Deck games, plus a definition file containing some sample fantasy blocks.
- Added targeting support to tapAllTrigger AI.
- RtR: Updated to HEAD revision.
- Updated some SVars.
- Added some checks for the new keywords "CARDNAME can block any number of creatures." and "CARDNAME can block an additional creature." to AI attack code.
- Codebase organization:
- Added Return costs to payCostDuringAbilityResolve.
1) Moved MatchState from forge package into model package, renamed to FMatchState.
- Moved Vraska to RtR new cards in CHANGES.txt. Also added a few cards that were missing from newly added cards.
2) Documented the difference between FMatchState and FGameState.
- In gauntlet mode, Restart button now restarts the current round (not the whole tournament) + general improvements to GauntletWinLose.java
- Added Trepanation Blade (and supporting RememberRevealed code to AbilityFactoryReveal)
- Minor cleanup of GauntletMini.java
- Fixed possible NPE in AbilityFactory.getDefinedSpellAbilities()
- Improved AI blocking creatures with "CARDNAME can't be blocked except by two or more creatures.".
- Cleanup in CardFactorySorceries.java
- Added missing java file.
- Fixed Illumination.
- Fixed Hydras and friends. (X-costed spells in general?)
- Updated some SVars.
- Fixed exception handling in etbCounter and calculateAmounnt.
- Fixed Gravity Well.
- The AI will now make use of the keywords "CARDNAME can block any number of creatures." and "CARDNAME can block an additional creature." when blocking.
- CheckStyle.
- Added support for Kicker on Instant/Sorceries.
- Fixed Soul Seizer // Ghastly Haunting script.
- Added a fluff piece to the changes.txt file.
- Fixed Curse of Thirst and Curse of the Pierced Heart after EnchantedPlayer removed from Valid.
- Some small checkstyle fixes
- merged updates (r13217-r13308) from trunk cardsfolder into DKA branch.
- Fixed cmc calculation of cards with multiple X in their costs.
- Converted to script: Ceta Sanctuary and Dega Sanctuary
- Fixed Trepanation Blade
- Ran SetInfo and Oracle scripts
- Fixed Coalition Relic
- Small fix
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed summoning sickness not being cleared on the first turn of the player going second.
- Fixed Cellar Door's stack description
- Improved Coalition Relic so that you can choose a color for each counter removed
- Removed Rite of Consumption from new cards list again (made it into the previous beta afterall)
- Fixed AI bug with Kicker.
- Added the quest deck InuYasha 1 by Nordos.
- Fixed a possible NPE in hasProperty in the Player class.
- DeckSection iteration - making it right
- Expanded Target selection for 'up to' amounts on the stack
- Allowed for spells with TargetMin$0 to still be played if it has CanPlayNoTgt$True
- Fixed Lava Spike (missing Arcane type)
- Removed some unused imports from CSubmenuSealed.java
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed Homarid.
- Improved description of the new ETBCounter keyword.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fix for Ertai's Trickery.
- Fixed Death Wind
- Better fix for Ertai's Trickery.
- Fixed Blood Reckoning and Hissing Miasma.
- Converted Breath of Darigaaz and Burst Lightning to proper kicker spells
- Fixed Nihilith trigger
- Added a specific Suspend message to the GameLog
- Converted Conqueror's Pledge
- Add specific Game Log for unmorphing
- Cleanup references to eqPump
- Cleanup unused imports
- Fixed hasCandidates failing to look for SpellAbilities on the stack.
- Fixed AI of Spore Cloud.
- Improved description of Finest Hour.
- Added SVar:RemAIDeck:True to Darkheart Sliver and Soldevi Golem.
- The AI will now regenerate permanents threatened by AD DestroyAll.
- merged changes from Trunk up to r16875
- Fixed Modular description crashing.
- The AI will now check ETB Replacement effects when casting permanent spells.
- The AI will now use AF Tap very conservatively during its own turn.
- Fixed static triggers triggering twice.
- Fixed "Condition$ Kicked".
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Blood Tribute will now gain life equal to the life really lost by it.
- Fixed description of Boreal Centaur.
- The AI will no longer sacrifice the sourcecard of a GainLife ability unless it has 5 or less life.
- Changed Select All Param in DualListBox to an integer to allow for compatibility with Sideboarding
- Converted some non-permanent kicker spells.
- Added a new xCount that also has the SpellAbility as parameter.
- Added Kicked option.
- Converted Dwarven Landslide.
- Little AI tweak in sortSpellAbilityByCost.
- Experimental: Run checkStaticAbilities before ETB triggers are checked.
- Moved all code related to the discarded list to the CostDiscard class.
- Converted Explosive Growth to new Kicker
- Removed redundant References param from Birthing Pod
- Sealed deck game creation now checks for name uniqueness and asks whether you want to replace the previous game.
- Style fix for SCubmenuSealed.java.
- Removed some unused code from Deckgroup.rankAiDecks().
- Converted the Lair lands to script.
- Converted the Karoo lands to script.
- converted a few more kicker spells
- The player can now choose 3-12 booster packs instead of the default 6 in Custom (Cube) Sealed Deck games too.
- Converted some more kicker spells
- Added a fluff piece to the changes.txt file.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed "SharesColorWith TopCardOfLibrary".
- Fixed Breeding Pit's mana cost
- converted Orim's Touch and Overload to proper kicker (Overload also conditional destroy now instead of restricted targeting)
- converted some more kicker spells
- Converted Urza's Rage and fixed description of Combust
- Added a fluff piece to the changes.txt file.
- Last few kicker conversions that can be done at the moment
- Converted Vampire's Bite
- Sorry, committed wrong file. Reverted and here's the actual Vampire's Bite
- Reverted the accidental Venser's Diffusion commit
- Cleanup.
- Disable Auto Button for a set non-zero DLB size
- Improve the AssignDamage blockers dialog for Deathtouch
- Added SVar:PlayMain1:TRUE to Larceny.
- Cleanup.
- Fixed NPE of the "Add 4 cards" button.
- Made the trigger of Cryptoplasm optional.
- Fixed Time Vault.
- Added the quest deck The Shade 3 by Nordos.
- Added the quest deck Peregrin Took 2.
- Lurking aesthetic update #1: removed border from outer edges of lowest FPanel.
- Lurking aesthetic update #2: Fixed offset/overlap problem on home screen drag cells.
- Lurking aesthetic update #3: Fixed bazaar merchant font size.
- Lurking aesthetic update #5: Removed unnecessary borders from a few home screen top-level scroll panes.
- Stacked "CARDNAME can block an additional creature" keywords will only display 1 description with the number of additional creatures it can block (eg CARDNAME can block an additional 3 creatures.)
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Support (plus a sample) added for metasets in sealed deck blocks. They can be used to build boosters that are based on a selection of sets, a custom cube or the full cardpool.
- Added AI support for pump abilities with "CARDNAME can block an additional creature.".
- The AI will now predict P/T pumping abilities of blockers (but not multiple activations).
- Improved gainLifeCanPlayAI.
- Little tweak for pump prediction.
- Fixed "unlimited challenge" bug in quest mode.
- Bugfix: zeppelin button sometimes visible although zeppelin hadn't been purchased.
- Bugfix: Restored "challenges become available more frequently" functionality for MAP and ZEPPELIN bazaar items.
- Small commenting update.
- Fixed Mosswort Bridge
- fixed a possible NPE related to xCount with SAs
- Small tweak to sharesNameWith
- Bugfix: double listing of precon decks in new quest UI.
- Fixed variable name for AI ForgetChanged
- Small comment added, didn't want to forget.
- SetInfo and Oracle for Victimize
- Fixed AI not playing Voice of All.
- Improved canTgtCreature().
- Fixed Darigaaz's Charm.
- Fixed Fettergeist.
- Reduced the number of copies of The Tabernacle at Pendrell Vale in the Alice in Wonderland 3 deck to 1.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Removed Savage Surge from wrong direction.
- Added AI support to Ninjutsu.
- merged changes from Trunk up to r16974
- Added a fluff piece to the changes.txt file.
- Added Amplify keyword
- Added a hard version of the Sun Quan deck.
- Fixed some ChangeZone triggers triggering twice.
- Fixed Rukh Egg giving the wrong player the token when it dies under opposing control.
- Changed part of Reveal to use DualListBox (thanks Sol)
- Slotted Thunderscape Battlemage into recently added card (was missed in commit logs it seems)
- Documentation: some brief helpful comments FView.
- Bugfix: challenge opponents not repainting after zeppelin launched.
- Fixed Propaganda suppressing "Attacks" trigger of the AI.
- Bugfix: JLabels not showing icon if they were on the first screen.
- Added a checkbox for not automatically choosing the latest card version when importing decks (useful in some cases).
- Removed broken probabilities calculation from hand statistics in deck editor.
- Debug: Keyboard shortcuts now back in action (single keys only for now)
- Added keyboard shortcut for End Turn. (you still have to pass priority as though you pushed the button)
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added a copy of Kilnmouth Dragon to the Sabertooth 3 deck.
- Merging r16975 through r16999 from Trunk
- Added an easy version of the Colossus deck.
- Added a NeedsToPlayVar to Ghastly Remains.
- Added a fluff piece to the changes.txt file.
- Minor todo comment added.
- Added string-capable constructor to FTextArea.
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Fixed tapXType costs not canceling properly.
- Added the quest deck Owlman 3 by Nordos.
- Added the quest deck Master Splinter 3 by Nordos.
- Added "NonBasicSpell$ True" to the Entwine SpellsAbilities.
- Little fix for stack description of AF PreventDamage.
- Suspend can now use Cost objects
- X Can't be 0 added for human (although we need a better way to display it)
- Apparently missed picture for Aeon Chronicler
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Added the restrictions part of the code for "Can be played as though it has flash. If you do sac at next cleanup."
- Fixed static triggers not working on the stack.
- Added a copy of Ronom Serpent to the Snow White 1 deck.
- Added a few AI SVars.
- cleanup for CardUtil
- Removed T... syntax from GuiUtils chooseNNN functions (cause one might be called with cardlist parameter as a single choice option)
- Rmeoved SpellAbilityList.java - noone used it, and no special code in that class seen.
- cardReader moved to same package as all the cardfactory code
- handsizeop, undocommand - do not seem to be used any longer
- Removed background image from non-match UI states.
- fix bug with chooseOne recursion
- CardListFilter replaced with Predicate<Card>
- refactor CardList to use Predicates and have less methods (to replace it later with pure List<Card>) and perform any special actions (filtering, cmc calculation, max creture power, etc) with predicates
- cleanup
- Added the recent commit logs to changes.txt. Preparing for the snapshot build release.
- Updated a few AI SVars.
- Little AI tweak in AF Animate.
- Added a medium version of the Darkseid deck.
- Improvements of AF Pump AI.
- Fixed Szadek, Lord of Secrets.
- remove unused imports
- RtR: Fixed MustBeBlocked SVar of Vraska the Unseen.
- RtR: Merged revision(s) 17000-17040 from trunk/res/cardsfolder
- Fixed some FindBugs results.
- fix for missing image of double-faced cards
- Cleanup of EvaluateCreature.
- Lambdas: added applyToIterable (mass coversion), removed old copyright mentioning Braids (no reasons to copyright 3 trivial files)
- Fixed extra text on Twinblade Slasher
- Multiple keyboard shortcut support added for CTRL and SHIFT keys.
- Shortcuts using ALT will not work and won't be supported.
- Keyboard shortcut system should be complete.
- Minor updates to finalize keyboard shortcut class.
- Added the recent commit logs to changes.txt. Preparing for the beta build and release.
- 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.
- 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):
Many people helped with this version. A special thank you goes out to them. (Attempted to list names alphabetically):
ArsenalNut
ArsenalNut
Dave
DeadSpeak
Doublestrike
Doublestrike
Friar Sol
Hellfish
Hellfish
Iran
Jeff Wadsworth
Marc
Marc
Max
Nordos
RumbleBBU
Slapshot5
Slapshot5
Sloth
Sloth
SoulStorm
Sol
Torridus
ZzzzSleep
ZzzzSleep
Chris H
Chris H
Added many cards, including:
Added the following cards to the Return to Ravnica branch (These cards are not yet available in this shapshot/beta build):
@@ -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.
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:
Advanced Updating to a newer version Instructions:
@@ -40,6 +48,14 @@ You can move a copy of your pictures and decks over to the "Forge.app" applicati
Your decks can be placed in the decks folder, your pics can be placed in the pics folder, etc.
Your decks can be placed in the decks folder, your pics can be placed in the pics folder, etc.
If you update your OS to Apple OSX 10.8 Mountain Lion and try to launch a new version of forge that you will likely get a dialog which states "File is damaged and cannot be opened. Please move to trash."
Mountain Lion comes with a new Gatekeeper feature and this is probably blocking your ability to launch this newer version of forge. Visit the link below and follow the instructions. They are fairly long and detailed.
Please note that the issue is most likely caused by Mountain Lion's Gatekeeper feature and it is extremely unlikely that the forge dev team will attempt to get a unique Developer ID from Apple and use it to digitally sign our forge app.
Picture location info:
Picture location info:
@@ -51,6 +67,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.
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:
Launching Forge and Memory Issues:
@@ -67,6 +85,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.
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:
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.
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.
@@ -76,6 +122,8 @@ Java Issues:
Some people that are using an early version of Java 7 under the Windows OS have reported errors that state "Split must have > 2 children". Anyone having this sort of problem should de-install java 7 and install java 6 instead.
Some people that are using an early version of Java 7 under the Windows OS have reported errors that state "Split must have > 2 children". Anyone having this sort of problem should de-install java 7 and install java 6 instead.
Forge requires java 6 and will not run if you have an earlier version of java. You will need to update to java 6.
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.")
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.")
Index:11|Set0:MRD|Set1:CHK|Set2:DST|Set3:BOK|Set4:5DN|Set5:SOK|Name:(5-6) Chronicles 06 - Champions of Mirrodin|DraftPacks:3|LandSetCode:9ED|SealedPacks:6
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.")
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.")
@@ -214,8 +217,6 @@ while line:
# store Card object in hash table
# store Card object in hash table
mtgDataCards[cardName]=card
mtgDataCards[cardName]=card
print'WARNING: Card template contains bogus SetInfo for testing only!!!'
print' Please remove the SetInfo before committing to repository\n'
A:SP$ Discard | Cost$ X 1 B Discard<X/Card/card> | ValidTgts$ Opponent | Mode$ RevealYouChoose | NumCards$ X | SpellDescription$ Look at target opponent's hand and choose X cards from it. That player discards those cards.
A:SP$ Discard | Cost$ X 1 B Discard<X/Card/card> | ValidTgts$ Opponent | Mode$ RevealYouChoose | NumCards$ X | References$ X | SpellDescription$ Look at target opponent's hand and choose X cards from it. That player discards those cards.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.DamagedBy | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature dealt damage by CARDNAME this turn dies, you gain life equal to that creature's toughness.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.DamagedBy | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature dealt damage by CARDNAME this turn dies, you gain life equal to that creature's toughness.
SVar:TrigGainLife:AB$ GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:TrigGainLife:AB$ GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X | References$ X
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$ 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.
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:DelTrigBlocked:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | 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:DelTrigBlocker:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigDestroyBlocker | TriggerDescription$ Destroy blocking creature at end of combat.
Oracle:Cumulative upkeep-Put a -1/-1 counter on Aboroth. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)
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.
A:SP$ GainLife | Cost$ 3 W | LifeAmount$ 5 | SpellDescription$ Choose one - You gain 5 life;
A:SP$ GainLife | Cost$ 3 W | LifeAmount$ 5 | SpellDescription$ Choose one - You gain 5 life;
A:SP$ PreventDamage | Cost$ 3 W | ValidTgts$ Creature | TgtPrompt$ Select target creature | Amount$ 5 | SpellDescription$ or prevent the next 5 damage that would be dealt to target creature this turn.
A:SP$ PreventDamage | Cost$ 3 W | ValidTgts$ Creature | TgtPrompt$ Select target creature | Amount$ 5 | SpellDescription$ or prevent the next 5 damage that would be dealt to target creature this turn.
A:SP$ GainLife | Cost$ 5 W | PrecostDesc$ Entwine | CostDesc$ 2 | LifeAmount$ 5 | SpellDescription$ (Choose both if you pay the entwine cost.) | SubAbility$ DBPreventDamage
A:SP$ GainLife | Cost$ 5 W | PrecostDesc$ Entwine | CostDesc$ 2 | LifeAmount$ 5 | NonBasicSpell$ True | SpellDescription$ (Choose both if you pay the entwine cost.) | SubAbility$ DBPreventDamage
Oracle:Choose one - You gain 5 life; or prevent the next 5 damage that would be dealt to target creature this turn.\nEntwine {2} (Choose both if you pay the entwine cost.)
Oracle:Choose one - You gain 5 life; or prevent the next 5 damage that would be dealt to target creature this turn.\nEntwine {2} (Choose both if you pay the entwine cost.)
R:Event$ Draw | ActiveZones$ Battlefield | 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
SVar:TrigSac:AB$Sacrifice | Cost$ 0 | SacValid$ Creature | Defined$ Each
A:AB$ DealDamage | Cost$ B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBTap | SpellDescription$ Tap target creature. CARDNAME deals damage equal to CARDNAME's power to that creature.
A:AB$ DealDamage | Cost$ B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBTap | References$ X | SpellDescription$ Tap target creature. CARDNAME deals damage equal to CARDNAME's power to that creature.
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
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.
A:SP$ Pump | Cost$ 3 G G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ +X | SpellDescription$ Target creature gets +X/+X until end of turn, where X is the highest converted mana cost among permanents you control.
A:SP$ Pump | Cost$ 3 G G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ X | NumDef$ X | References$ X | SpellDescription$ Target creature gets +X/+X until end of turn, where X is the highest converted mana cost among permanents you control.
A:SP$ Draw | Cost$ 1 U | Defined$ You | NumCards$ 1 | SubAbility$ DBDraw | SpellDescription$ Draw a card, then draw cards equal to the number of cards named CARDNAME in all graveyards.
A:SP$ Draw | Cost$ 1 U | Defined$ You | NumCards$ 1 | SubAbility$ DBDraw | SpellDescription$ Draw a card, then draw cards equal to the number of cards named CARDNAME in all graveyards.
SVar:DBDraw:DB$Draw | Defined$ You | NumCards$ X
SVar:DBDraw:DB$Draw | Defined$ You | NumCards$ X | References$ X
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may destroy target Equipment.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may destroy target Equipment.
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.
Oracle:Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)\nWhen Acidic Slime enters the battlefield, destroy target artifact, enchantment, or land.
Oracle:Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)\nWhen Acidic Slime enters the battlefield, destroy target artifact, enchantment, or land.
A:SP$ DealDamage | Cost$ 2 R | Defined$ You | NumDmg$ X | SubAbility$ DBDamageOpp | SpellDescription$ CARDNAME deals damage to each player equal to the number of lands he or she controls.
A:SP$ DealDamage | Cost$ 2 R | Defined$ You | NumDmg$ X | SubAbility$ DBDamageOpp | References$ X | SpellDescription$ CARDNAME deals damage to each player equal to the number of lands he or she controls.
SVar:DBDamageOpp:DB$DealDamage | Defined$ Opponent | NumDmg$ Y
SVar:DBDamageOpp:DB$DealDamage | Defined$ Opponent | NumDmg$ Y | References$ Y
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 | References$ TrigChangesZone,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$ 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.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Landfall - Whenever a land enters the battlefield under your control, equipped creature gets +2/+2 until end of turn.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Landfall - Whenever a land enters the battlefield under your control, equipped creature gets +2/+2 until end of turn.
A:SP$ Dig | Cost$ 2/U 2/U 2/U | DigNum$ 4 | ChangeNum$ 1 | SubAbility$ Dig2 | ConditionCheckSVar$ X | ConditionSVarCompare$ LEY | References$ X,Y | 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.)
S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ Y | SetToughness$ Y | References$ Y | Description$ CARDNAME's power and toughness are each equal to the number of cards in your hand.
K:Suspend:X:XCantBe0 X 3 U
T:Mode$ CounterRemoved | ValidCard$ Card.Self | TriggerZones$ Exile | CounterType$ TIME | Execute$ TrigDraw | TriggerDescription$ Whenever a time counter is removed from CARDNAME while it's exiled, draw a card.
SVar:TrigDraw:DB$ Draw | NumCards$ 1 | Defined$ You
Oracle:Aeon Chronicler's power and toughness are each equal to the number of cards in your hand.\nSuspend X-{X}{3}{U}. X can't be 0. (Rather than cast this card from your hand, you may pay {X}{3}{U} and exile it with X 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. It has haste.)\nWhenever a time counter is removed from Aeon Chronicler while it's exiled, draw a card.
A:AB$ DealDamage | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying | NumDmg$ X | SpellDescription$ CARDNAME deals damage equal to its power to target creature with flying.
A:AB$ DealDamage | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals damage equal to its power to target creature with flying.
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$ 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.
A:SP$ ChangeZone | Cost$ 1 U | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ X | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return up to X target creatures to their owners' hands, where X is one plus the number of cards named CARDNAME in all graveyards as you cast CARDNAME.
A:SP$ ChangeZone | Cost$ 1 U | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ X | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | References$ X | SpellDescription$ Return up to X target creatures to their owners' hands, where X is one plus the number of cards named CARDNAME in all graveyards as you cast CARDNAME.
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.
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.
A:SP$ ChangeZone | Cost$ 3 G U | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | SubAbility$ TrigToken | SpellDescription$ Return target creature to its owner's hand. Put X 1/1 green Saproling creature tokens onto the battlefield, where X is that creature's converted mana cost.
A:SP$ ChangeZone | Cost$ 3 G U | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | SubAbility$ TrigToken | SpellDescription$ Return target creature to its owner's hand. Put X 1/1 green Saproling creature tokens onto the battlefield, where X is that creature's converted mana cost.
#X will be the Converted Mana Cost of the target of AEther Mutation
#X will be the Converted Mana Cost of the target of AEther Mutation
SVar:TrigToken:DB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Saproling | TokenTypes$ Creature,Saproling | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1
SVar:TrigToken:DB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Saproling | TokenTypes$ Creature,Saproling | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1 | References$ X
A:AB$ ChangeZone | Cost$ T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.cmcEQX+YouCtrl | ChangeNum$ 1 | OptionalDecider$ You | SpellDescription$ You may put a creature card with converted mana cost equal to the number of charge counters on CARDNAME from your hand onto the battlefield.
A:AB$ ChangeZone | Cost$ T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.cmcEQX+YouCtrl | ChangeNum$ 1 | OptionalDecider$ You | References$ X | SpellDescription$ You may put a creature card with converted mana cost equal to the number of charge counters on CARDNAME from your hand onto the battlefield.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, you may put a charge counter on CARDNAME.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, you may put a charge counter on CARDNAME.
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.)
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.
Oracle:At the beginning of each upkeep, if no spells were cast last turn, transform Afflicted Deserter.
ALTERNATE
Name:Werewolf Ransacker
ManaCost:no cost
Colors:red
Types:Creature Werewolf
Text:no text
PT:5/4
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 | References$ X,Y | 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$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put that many +1/+1 counters on CARDNAME.
T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put that many +1/+1 counters on CARDNAME.
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.
K:Kicker 1 R
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$ 3 B | ValidTgts$ Creature.nonBlack | TgtPrompt$ Select target nonblack creature | NoRegen$ True | SubAbility$ DBDamage | 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.
SVar:DBDamage:DB$DealDamage | Cost$ 0 | Defined$ TargetedController | NumDmg$ X
SVar:DBDamage:DB$DealDamage | Cost$ 0 | Defined$ TargetedController | NumDmg$ X | References$ X | Condition$ Kicked | ConditionDescription$ If it was kicked,
A:AB$ DealDamage | Cost$ 1 R Sac<1/Creature.Goblin/Goblin creature> | Tgt$ TgtCP | NumDmg$ X | SpellDescription$ CARDNAME deals damage equal to the sacrificed creature's power to target creature or player.
A:AB$ DealDamage | Cost$ 1 R Sac<1/Creature.Goblin/Goblin creature> | Tgt$ TgtCP | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals damage equal to the sacrificed creature's power to target creature or player.
A:AB$ PutCounter | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | CounterNum$ 1 | CounterType$ P1P1 | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Put a +1/+1 counter on up to one target creature.
A:AB$ Pump | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Flying & Double Strike | SpellDescription$ Target creature gains flying and double strike until end of turn.
A:AB$ Token | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | TokenAmount$ X | References$ X | TokenName$ Cat | TokenTypes$ Creature,Cat | TokenOwner$ You | TokenColors$ White | TokenPower$ 2 | TokenToughness$ 2 | Ultimate$ True | SpellDescription$ Put X 2/2 white Cat creature tokens onto the battlefield, where X is your life total.
Oracle:[+1] Put a +1/+1 counter on up to one target creature.\n[-3] Target creature gains flying and double strike until end of turn.\n[-8] Put X 2/2 white Cat creature tokens onto the battlefield, where X is your life total.
A:AB$ GainLife | Cost$ AddCounter<1/LOYALTY> | LifeAmount$ 2 | Planeswalker$ True | SpellDescription$ You gain 2 life.
A:AB$ GainLife | Cost$ AddCounter<1/LOYALTY> | LifeAmount$ 2 | Planeswalker$ True | SpellDescription$ You gain 2 life.
A:AB$ PutCounterAll | Cost$ SubCounter<1/LOYALTY> | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 | Planeswalker$ True | SubAbility$ DBPumpAll | SpellDescription$ Put a +1/+1 counter on each creature you control. Those creatures gain vigilance until end of turn.
A:AB$ PutCounterAll | Cost$ SubCounter<1/LOYALTY> | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 | Planeswalker$ True | SubAbility$ DBPumpAll | SpellDescription$ Put a +1/+1 counter on each creature you control. Those creatures gain vigilance until end of turn.
A:AB$ Token | Cost$ SubCounter<6/LOYALTY> | TokenAmount$ 1 | TokenName$ Avatar | TokenTypes$ Creature,Avatar | TokenOwner$ You | TokenColors$ White | TokenPower$ X | TokenToughness$ X | TokenStaticAbilities$ Static | TokenSVars$ X | Planeswalker$ True | Ultimate$ True | SpellDescription$ Put a white Avatar creature token onto the battlefield. It has "This creature's power and toughness are each equal to your life total."
A:AB$ Token | Cost$ SubCounter<6/LOYALTY> | TokenAmount$ 1 | TokenName$ Avatar | TokenTypes$ Creature,Avatar | TokenOwner$ You | TokenColors$ White | TokenPower$ X | TokenToughness$ X | TokenStaticAbilities$ Static | TokenSVars$ X | Planeswalker$ True | Ultimate$ True | References$ X | SpellDescription$ Put a white Avatar creature token onto the battlefield. It has "This creature's power and toughness are each equal to your life total."
SVar:Static:Mode$ Continuous | SetPower$ X | SetToughness$ X | CharacteristicDefining$ True | Description$ This creature's power and toughness are each equal to your life total.
SVar:Static:Mode$ Continuous | SetPower$ X | SetToughness$ X | CharacteristicDefining$ True | Description$ This creature's power and toughness are each equal to your life total.
A:AB$ Pump | Cost$ Sac<1/Land> | NumAtt$ +2 | ActivationLimit$ 1 | SpellDescription$ CARDNAME gets +2/+0 until end of turn. Activate this ability only once each turn.
A:AB$ Pump | Cost$ Sac<1/Land> | NumAtt$ 2 | ActivationLimit$ 1 | SpellDescription$ CARDNAME gets +2/+0 until end of turn. Activate this ability only once each turn.
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
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 | ActiveZones$ Battlefield | 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 | ActiveZones$ Battlefield | 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.
SVar:DmgPlus1:AB$DealDamage | Cost$ 0 | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ X | References$ X
SVar:DmgPlus1Combat:AB$DealDamage | Cost$ 0 | CombatDamage$ True | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ X | References$ X
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$ 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.
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:SP$ ChooseColor | Cost$ 2 W | Defined$ You | AILogic$ MostProminentAttackers | SubAbility$ DBProtection | SpellDescription$ Choose a color. Creatures you control gain protection from the chosen color until end of turn.
A:SP$ ChooseColor | Cost$ 2 W | Defined$ You | AILogic$ MostProminentAttackers | SubAbility$ DBProtection | SpellDescription$ Choose a color. Creatures you control gain protection from the chosen color until end of turn.
Oracle:Choose a color. Creatures you control gain protection from the chosen color until end of turn.\nCycling {W} ({W}, Discard this card: Draw a card.)
Oracle:Choose a color. Creatures you control gain protection from the chosen color until end of turn.\nCycling {W} ({W}, Discard this card: Draw a card.)
K:CostChange:Player:More:W:Spell:white:All:NoSpecial:Desc|White spells you cast cost W more to cast.
S:Mode$ RaiseCost | ValidCard$ Card.White | Activator$ You | Type$ Spell | Color$ W | Amount$ 1 | Description$ White spells you cast cost W more to cast.
A:SP$ GainLife | Cost$ X W W | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ X | PrecostDesc$ Choose one - | SpellDescription$ Target player gains X life;
A:SP$ GainLife | Cost$ X W W | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ X | PrecostDesc$ Choose one - | References$ X | SpellDescription$ Target player gains X life;
A:SP$ PreventDamage | Cost$ X W W | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | Amount$ X | PrecostDesc$ or | SpellDescription$ prevent the next X damage that would be dealt to target creature or player this turn.
A:SP$ PreventDamage | Cost$ X W W | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | Amount$ X | PrecostDesc$ or | References$ X | SpellDescription$ prevent the next X damage that would be dealt to target creature or player this turn.
A:AB$ Pump | Cost$ T | NumAtt$ +2 | NumDef$ +2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | PlayerTurn$ True | ActivationPhases$ Upkeep,Draw,Main1,BeginCombat | SpellDescription$ Target creature gets +2/+2 until end of turn. Activate this ability only during your turn, before attackers are declared.
A:AB$ Pump | Cost$ T | NumAtt$ 2 | NumDef$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | PlayerTurn$ True | ActivationPhases$ Upkeep,Draw,Main1,BeginCombat | SpellDescription$ Target creature gets +2/+2 until end of turn. Activate this ability only during your turn, before attackers are declared.
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.
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$ Draw | Cost$ 4 U | NumCards$ X | ValidTgts$ Player | TgtPrompt$ Select target player | SpellDescription$ Domain - Target player draws a card for each basic land type among lands he or she controls.
A:SP$ Draw | Cost$ 4 U | NumCards$ X | ValidTgts$ Player | TgtPrompt$ Select target player | References$ X | SpellDescription$ Domain - Target player draws a card for each basic land type among lands he or she controls.
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 | References$ Y | 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 | References$ X | 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$ Mill | Cost$ Sac<1/Creature> | NumCards$ X | ValidTgts$ Player | TgtPrompt$ Choose a player | SpellDescription$ Target player puts a number of cards equal to the sacrificed creature's power from the top of his or her library into his or her graveyard.
A:AB$ Mill | Cost$ Sac<1/Creature> | NumCards$ X | ValidTgts$ Player | TgtPrompt$ Choose a player | References$ X | SpellDescription$ Target player puts a number of cards equal to the sacrificed creature's power from the top of his or her library into his or her graveyard.
T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add B to your mana pool for each charge counter on CARDNAME.
T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add B to your mana pool for each charge counter on CARDNAME.
SVar:TrigGetMana:AB$ Mana | Cost$ 0 | Produced$ B | Amount$ X | SpellDescription$ Add X B to your mana pool
SVar:TrigGetMana:AB$ Mana | Cost$ 0 | Produced$ B | Amount$ X | References$ X | SpellDescription$ Add X B to your mana pool
A:AB$ Destroy | Cost$ 7 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBPutCounter | SpellDescription$ Destroy target creature. Then put a charge counter on CARDNAME.
A:AB$ Destroy | Cost$ 7 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBPutCounter | SpellDescription$ Destroy target creature. Then put a charge counter on CARDNAME.
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.
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.