Forge 11/30/2010 (unofficial BETA) version
by mtgrares
Moderators: timmermac, friarsol, Blacksmith, KrazyTheFox, Agetian, CCGHQ Admins
Forge 11/30/2010 (unofficial BETA) version
by Chris H. » 29 Nov 2010, 19:55
Forge 11/30/2010 (unofficial BETA) version
(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com)
5441 cards in total.
This version is based upon the revision # 3973 which is found on our SVN.
Rob added code that can display different images for cards that are included in multiple sets. There's a Image Base folder, by default {ForgeFolder}/res/pics, but you can change that in the forge.properties file. Under that, the three-letter set code as a folder, then the card_name.jpg. I'm giving some thought to also try the alternate mostly 2-letter code that the HQ archives use, if the other doesn't exist. Now supports pictures using MWS filenames and folders.
In either case, if the set picture can't be found, it also tries in the image base folder, as if LQ. This is a work in progress and is not yet fully finished.
Right now, there's no support for promo sets or duel decks. The primary impetus is to enhance the booster pack generation, (for draft and quest) with pictures being a somewhat secondary benefit.
At the moment, it randomly assigns a set membership when launching a new game. I'll have to find a way to persist that sort of information in deck files, so that it would be worth it to be able to specify the set yourself.
Sol added code that gives us and the computer access to the other phases that were missing in earlier versions. There is a pull down menu named "Phase Stop" that lets you turn off and on the various phase steps. The phase stop menu is available when using the new and the old GUI battlegrounds.
At some point in the future it would be nice to have a row or column of buttons that we could click on to toggle these phase stops. The message window has improved border colors. Declare Attackers is Red, Declare Blockers is Green, Other Combat is Orange, Main is Blue, Other Phases are Purple.
We are currently in the process of creating a new AbilityFactory system which is designed to replace many of the scripted keywords. This is also a work in progress. Most of the cards have been converted to this new system. We found and fixed a number of bugs with the new AbilityFactory system. There may still be a few minor bugs.
I found a utility to remove the hidden Mac-related files. I removed the ".SVN" and the /res/lib/ folders from this archive as they are not needed. The archives are now compressed using the 7z format. There are utilities for Windows, Mac OS and the various *nix's that can be used to decompress these archives.
Many people helped with this version. A special thank you goes out to them:
Rob Cashwalker
Friar Sol
Slapshot5
Sloth
Snacko
Hellfish
Zerker2000
Jeff Wadsworth
Silly Freak
PhoenixAvenger
Bladescape
Chris H
Added many cards, including:
The links to the various archives:
(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com)
5441 cards in total.
This version is based upon the revision # 3973 which is found on our SVN.
Rob added code that can display different images for cards that are included in multiple sets. There's a Image Base folder, by default {ForgeFolder}/res/pics, but you can change that in the forge.properties file. Under that, the three-letter set code as a folder, then the card_name.jpg. I'm giving some thought to also try the alternate mostly 2-letter code that the HQ archives use, if the other doesn't exist. Now supports pictures using MWS filenames and folders.
In either case, if the set picture can't be found, it also tries in the image base folder, as if LQ. This is a work in progress and is not yet fully finished.
Right now, there's no support for promo sets or duel decks. The primary impetus is to enhance the booster pack generation, (for draft and quest) with pictures being a somewhat secondary benefit.
At the moment, it randomly assigns a set membership when launching a new game. I'll have to find a way to persist that sort of information in deck files, so that it would be worth it to be able to specify the set yourself.
Sol added code that gives us and the computer access to the other phases that were missing in earlier versions. There is a pull down menu named "Phase Stop" that lets you turn off and on the various phase steps. The phase stop menu is available when using the new and the old GUI battlegrounds.
At some point in the future it would be nice to have a row or column of buttons that we could click on to toggle these phase stops. The message window has improved border colors. Declare Attackers is Red, Declare Blockers is Green, Other Combat is Orange, Main is Blue, Other Phases are Purple.
We are currently in the process of creating a new AbilityFactory system which is designed to replace many of the scripted keywords. This is also a work in progress. Most of the cards have been converted to this new system. We found and fixed a number of bugs with the new AbilityFactory system. There may still be a few minor bugs.
I found a utility to remove the hidden Mac-related files. I removed the ".SVN" and the /res/lib/ folders from this archive as they are not needed. The archives are now compressed using the 7z format. There are utilities for Windows, Mac OS and the various *nix's that can be used to decompress these archives.
Many people helped with this version. A special thank you goes out to them:
Rob Cashwalker
Friar Sol
Slapshot5
Sloth
Snacko
Hellfish
Zerker2000
Jeff Wadsworth
Silly Freak
PhoenixAvenger
Bladescape
Chris H
Added many cards, including:
- Code: Select all
Abjure
Abolish
Active Volcano
Aegis of the Meek
Alaborn Veteran
Aladdin
All Hallow's Eve
Alluring Siren
Alpha Kavu
Altar of Dementia
Anaba Ancestor
Angelic Page
Angus Mackenzie
Apprentice Sorcerer
Arcbound Reclaimer
Arctic Foxes
Arcum's Sleigh
Argivian Archaeologist
Argothian Elder
Armageddon Clock
Armament Master
Asceticism
Ashen Powder
Assassin's Blade
Augur il-Vec
Augur of Skulls
Auriok Salvagers
Aurochs
Aven Augur
Aven Trooper
Azami, Lady of Scrolls
Balshan Griffin
Balthor the Stout
Banshee
Baron Sengir
Battle Screech
Bazaar of Wonders
Beckon Apparition
Berserk
Black Poplar Shaman
Blades of Velis Vel
Blatant Thievery
Blessed Wine
Blessing of the Nephilim
Blind With Anger
Blind-Spot Giant
Bola Warrior
Bone Harvest
Bone Splinters
Boneknitter
Braid of Fire
Bramblesnap
Bravado
Brightstone Ritual
Broken Dam
Broken Fall
Cabal Torturer
Candelabra of Tawnos
Capricious Sorcerer
Cat Burglar
Caverns of Despair
Celestial Crusader
Celestial Sword
Centaur Veteran
Chainflinger
Champion's Victory
Chaos Charm
Charging Rhino
Chub Toad
Cinder Elemental
Clockwork Gnomes
Clutch of Undeath
Coffin Puppets
Command of Unsummoning
Consult the Necrosages
Consuming Bonfire
Coralhelm Commander
Corrupted Harvester
Counterintelligence
Crackling Club
Crash
Crawlspace
Creakwood Ghoul
Cremate
Crippling Fatigue
Crosis's Charm
Crypt Creeper
Cunning Advisor
Darigaaz's Charm
Daring Apprentice
Dauthi Jackal
Death Cloud
Deathmark Prelate
Dedicated Martyr
Deep Reconnaissance
Defy Gravity
Deity of Scars
Dematerialize
Demonic Dread
Demonic Hordes
Desert
Despotic Scepter
Discombobulate
Douse
Draconian Cylix
Dragon Whelp
Drift of the Dead
Drowner of Secrets
Dwarven Armory
Dwarven Blastminer
Dwarven Weaponsmith
Early Frost
Earth Rift
Earthen Goo
Ebony Owl Netsuke
Eightfold Maze
Elixir of Immortality
Elixir of Vitality
Emberwilde Augur
Empress Galina
Empyrial Armor
Empyrial Plate
Enchanted Being
Energy Storm
Enervate
Enslaved Dwarf
Esper Charm
Essence Fracture
Evil Eye of Orms-by-Gore
Evil Eye of Urborg
Evolution Charm
Fade from Memory
Familiar Ground
Fanatical Devotion
Feast of Blood
Feast or Famine
Feral Instinct
Fevered Strength
Firemane Angel
Flame Jab
Flare
Flash Flood
Fluctuator
Foresight
Foul Familiar
Funeral Pyre
Galvanic Blast
Gate to Phyrexia
Gatherer of Graces
Ghost Town
Glacial Crevasses
Goblin Firestarter
Goblin Ski Patrol
Godtoucher
Golem Artisan
Grassland Crusader
Grave Robbers
Gravespawn Sovereign
Greel, Mind Raker
Grindclock
Guardian Seraph
Hair-Strung Koto
Hallowed Ground
Hammer Mage
Hana Kami
Hate Weaver
Haunted Crossroads
Headstones
Heap Doll
Heartstone
Heidar, Rimewind Master
Hell's Caretaker
Helm of Possession
Herbal Poultice
Hindering Light
Hivis of the Scale
Hua Tuo, Honored Physician
Hymn of Rebirth
Infernal Tribute
Infuse
Instill Infection
Ironhoof Ox
Isao, Enlightened Bushi
Jagged Lightning
Jhoira's Toolbox
Joraga Warcaller
Just Fate
Kami of False Hope
Karplusan Giant
Keldon Megaliths
Kelsinko Ranger
Kemba, Kha Regent
King's Assassin
Kithkin Zephyrnaut
Kor Haven
Krark-Clan Ogre
Krosan Constrictor
Krosan Restorer
Krosan War Chief
Krovikan Elementalist
Kuldotha Phoenix
Kuldotha Rebirth
Land Equilibrium
Lava Dart
Lay Bare
Lead Astray
Legacy's Allure
Leyline of Punishment
Light of Sanction
Lightning Blow
Lotus Vale
Loxodon Mender
Lu Su, Wu Advisor
Lunge
Lymph Sliver
Mageta the Lion
Magus of the Unseen
Mana Vortex
Manipulate Fate
Mark of Asylum
Maze of Ith
Medicine Bag
Meishin, the Mind Cage
Merieke Ri Berit
Mesmeric Trance
Metallurgeon
Might Weaver
Mind Ravel
Mind Warp
Mindwarper
Mire Shade
Misinformation
Molten Psyche
Molting Skin
Monstrify
Mortal Wound
Mortiphobia
Mudbutton Clanger
Myr Adapter
Mystic Melting
Necrosavant
Nezumi Bone-Reader
Nim Shambler
Norwood Riders
Nosy Goblin
Nova Cleric
Obelisk of Undoing
Overgrowth
Overtaker
Pang Tong, "Young Phoenix"
Panic
Panic Attack
Parch
Pardic Lancer
Peace and Quiet
Peace of Mind
Phyrexian Boon
Phyrexian Tribute
Pinpoint Avalanche
Piper's Melody
Piracy Charm
Pit Trap
Pithing Needle
Planar Collapse
Plated Pegasus
Platinum Emperion
Plow Under
Power Artifact
Pradesh Gypsies
Presence of the Master
Pride of the Clouds
Primal Whisperer
Proclamation of Rebirth
Protomatter Powder
Psychic Purge
Pteron Ghost
Purity
Putrid Imp
Pyroclast Consul
Pyromancy
Rack and Ruin
Rage Weaver
Rain of Salt
Ray of Command
Ray of Distortion
Ray of Erasure
Ray of Revelation
Raze
Reach Through Mists
Reassembling Skeleton
Reckless Charge
Reckless Spite
Refresh
Remove
Renewal
Renewing Touch
Repel the Darkness
Rhys the Exiled
Ritual of the Machine
Rootwater Diver
Rouse
Rushwood Herbalist
Sadistic Hypnotist
Salvage Scout
Salvage Slasher
Sapseep Forest
Scar
Scarecrone
Scavenging Ghoul
Scepter of Fugue
Scorched Ruins
Scorching Missile
Scourglass
Serra's Boon
Sewerdreg
Shadowfeed
Shinen of Fear's Chill
Shu Farmer
Sigil of the Nayan Gods
Silent Arbiter
Skull Fracture
Skull of Orm
Sky Weaver
Skywing Aven
Snake Basket
Solar Tide
Soldevi Digger
Soratami Mindsweeper
Sphere of Duty
Sphere of Grace
Sphere of Law
Sphere of Purity
Sphere of Reason
Sphere of Truth
Spike Hatcher
Spirit en-Dal
Spirit Weaver
Splitting Headache
Spore Frog
Sprouting Phytohydra
Squeaking Pie Grubfellows
Steamclaw
Stern Marshal
Stone Giant
Stormscale Anarch
Stun
Sudden Impact
Sunstone
Surge of Strength
Suture Spirit
Svyelunite Priest
Swarmyard
Swelter
Sylvan Library
Sylvan Might
Symbiosis
Tahngarth's Rage
Talas Researcher
Task Mage Assembly
Tel-Jilad Lifebreather
Telim'Tor's Edict
Temple Elder
Temporary Insanity
Tendrils of Despair
Terashi's Cry
Thrill of the Hunt
Throne of Geth
Thrull Champion
Tidal Surge
Tragic Poet
Tranquil Grove
Trash for Treasure
Tresserhorn Skyknight
Trolls of Tel-Jilad
Undead Slayer
Undo
Unearthly Blizzard
Unholy Grotto
Unlikely Alliance
Unstable Mutation
Updraft
Urborg Mindsucker
Urza's Armor
Vagrant Plowbeasts
Varchild's Crusader
Vedalken Certarch
Vedalken Shackles
Vex
Village Elder
Viscerid Armor
Vodalian Hypnotist
Volrath's Gardens
Vorrac Battlehorns
Wall of Distortion
Wall of Putrid Flesh
Waste Away
Waterspout Weavers
Wave Elemental
Wayfaring Giant
Welding Jar
Wheel of Torture
Wicked Pact
Willow Satyr
Wind Sail
Windborne Charge
Wintermoon Mesa
Withered Wretch
Wu Longbowman
Xun Yu, Wei Advisor
Yavimaya Hollow
Yuan Shao, the Indecisive
Zhuge Jin, Wu Strategist
Zo-Zu the Punisher
Zuran Enchanter
The links to the various archives:
-

Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge 11/30/2010 (unofficial BETA) version
by Chris H. » 29 Nov 2010, 19:55
Fixes/Features:
- Moved majority of discard code to Player classes.
- Updated calls to use move functions.
- Changed code calls from Player.subtractLife to Player.loseLife (and made
subtractLife private.)
- Fixed null-pointer error for non-Targeted Fetch cards played by the AI.
- Major Phase Overhauling: The engine will now stop many places to allow for Priority for both players. The AI now as an entry point, ComputerAI_General.stackResponse(), for responding to things the player does. Most changes outside of Input and Phase classes had to do with condensing code for simpler language.
- Convert Library of Alexandria, SearchMerc/Rebel to use abCost and Target.
- Mishra's Factory now uses AF_Pump.
- Goldmeadow Lookout, Oran-Rief, Magosi updated to use Ability_Activated.
- Fix for cards still using Input_NoCost_TapAbility.java. This same fix may be needed for other Inputs.
- Fix possible infinite loop in unfreeze stack.
- Fix regular games not updating UI.
- Creatures should still be in Combat until EndCombat is ending, not when it begins.
- Converted all LimitedAbility cards to SA_Restriction.ActivationLimit.
- Fixed Twinblade Slasher name.
- Modular Targeting now should happen as the Modular creature goes to the grave instead of on Resolution. This fixes the Input issue that was occurring due to the Phase changes.
- Added SA_Restriction for cards in Hand (for Hellbent or Library of Alexandria.)
- Added SA_Restriciton for Threshold.
- Fixing the cost for the two Bringers abilities.
- spReturn needs to call super.canPlay() so sorceries can't be cast as instants.
- If AI only attacks Planeswalker, skip Input_Block in favor of Input_Block_Planeswalker.
- Fix possible null pointer error where if just one creature attacks only a Planeswalker the Exalted bonus can't find the attacker.
- Converted Desert to AbilityFactory.
- Restricted Mirror Universe ability to controller's upkeep.
- Transitioned some discard calls to the Player object.
- Deleted keyworded code.
- Fixed a few bugs of Thopter Squadron.
- Removed Tower of Fortunes without .txt ending.
- Added SVar:RemAIDeck:True to some cards.
- Little fixes in card texts.
- Added SVar:RemAIDeck:True to Anowon, the Ruin Sage and Boggart Birth Rite.
- Cleared the forge.preferences file.
- Fixed the LQ pic url and the card text for Phantasmal Terrain.
- Converted command part of Arena of the Ancients to keyword.
- Fix for Combat being skipped when the Human attacks only a Planeswalker.
- Added isPresent for SA_Restriction. Can handle Metalcraft and other Restrictions based on cards in play.
- Fixed Threshold checking HandSize instead of GraveSize.
- Added Heidar, Rimewind Master as an example.
- Added a black reanimator theme.
- Fixed AI discarding multiple cards.
- Updated Funeral Charm to make use of discarding in the abstract player structure.
- Fixed some calls to discard functions.
- Don't make AI discard more cards than he/she has.
- Updated more discard calls to use new functions.
- Moved discardUnless functions to Player class. Updated calls. Removed from gameaction.Java.
- Moved AllZone.GameAction.mill to player class.
- Updated several discard function calls.
- Fixed Null Pointer Error in AF_Pump for AI activating non-targeted Pump Abilities.
- Fixed Burst of Energy card text.
- Fixed mill function calls.
- Deleted old code.
- Fixed thr AI not regaining priority after the stack empties during its turn.
- Fixed inputs that occur when spells are resolving. Hopefully this resolves any lingering issues that are similar.
- Fix for Auras that prevent creatures from untapping from always failing out of canPlay().
- Added End for Parsing to Undead Slayer
- Sun Titan now removes resurrected card from graveyard before adding to play. This fixes a bug that would cause ETB abilities to trigger twice.
- Added LQ pic url to Undead Slayer.
- Fixed another AI Error in AF_Pump.
- Added Regenerate as an AbilityFactory.
- Converted Death Ward and Revered Dead as examples.
- Moved sacrificePermanent function to Player class.
- Added TODO to AIPlayer.java.
- Fixed Kavu Scout.
- Fixed a bug with xcount used by stPump.
- Added Attached as restriction to getValidCard.
- Added a white Vigilance Meekstone theme.
- Added a RW multicolor theme.
- Updated some old themes.
- Fixed double period in WheneverKeyword CustomCounters Stack Description.
- Improved wording for PassPriority Input to be clearer.
- Added 2 Anti Black deck themes.
- Added a WR flying theme.
- Fix for Blight causing a ConcurrentModificationException.
- Fixed named section in hasProperty().
- Added PlayMain1 to the Moxen.
- Fixed abDrawCardsTgt (including Cephalid Broker, Cephalid Looter, Reckless Scholar).
- Fix how gaining priority as SAs are added to the Stack or SAs are resolved from the stack. Note: Triggered abilities will cause the owner of the top-most trigger to gain priority incorrectly. Triggered Abilities need to work differently for this to work per the rules.
- Mana Vault will now sit on the stack before resolving.
- Fix for Munga Wurm untapping, and cleanup of that section of code.
- Added a WG Oath of Druids theme.
- Update Phase Input borders for coloring. Declare Attackers is Red, Declare Blockers is Green, Other Combat is Orange, Main is Blue, Other Phases are Purple.
- Consolidated code from Player and GameAction classes related to sacrifice permanents.
- Converted Drowned, Drudge Skeletons, Walking Dead, Wall of Bone, Will o the Wisp, Niall Silvain, Elephant Graveyard, Horror of Horrors and Ragnar to AbilityFactory.
- Converted Cateran Overlord regen ability to AbilityFactory.
- Converted Regenerate to AbilityFactory.
- Added some SVars to existing cards.
- Added a green Elves theme.
- Updated cards to use regen AbilityFactory.
- Fixed Animate Dead.
- Groundwork for Targeting cards in non-Battlefield Zones.
- Fixed check for comparing PlayerZone to a String in canTarget.
- Added Corpse and P2P2("+2/+2") counters.
- Updated the VampiricEffects keyword to accept +2/+2.
- Converted Jungle Troll to AbilityFactory.
- Commented out code for RegenerateMe keyword. All of these cards have been converted to AbilityFactory.
- Updated spCounter code, based on Fork/Reverberate/Twincast code, so that any valid spell/ability on the stack can be targeted. Also added a "May-" prefix to the ExtraActions for Optional effects. (Usage: Insert "May-" without quotes after the targetplayer-prefix to specify an optional action) AI will still only target top spell on stack, though. Updated Vex as per above. It was *technically* incorrect but effectively correct. (The card draw is optional, where it wasn't before, but who would refuse?)
- Missed one line of code to make Counterspells fizzle if they target an otherwise valid spell that has "CARDNAME can't be countered."
- Fixes for Flashback so it properly removes the card from the game.
- Added Retrieve to AF_Fetch for Retrieving cards from your graveyard.
- Converted Hammer of Bogardan, Eternal Dragon, Undead Gladiator to AF_Retrieve.
- Fixed Undead Gladiator's Spell Description.
- Fixed Hell's Caretaker.
- Added some basic choosing to retrieveCanPlayAI (only for destination battlefield).
- Replaced GameActionUtil.showDialog() with showYesNoDialog(). Changed Prowess of the Fair and Fecundity to use showYesNoDialog().
- Minor code cleanup for Java warnings.
- Alter Spell.java to work properly with SA_Restriction.
- Convert Syphon Life to AF_LoseLife and added Retrace.
- Added a check so AI doesn't regenerate the same creature twice in a row.
- Parameterized Sets and Lists in QuestData and QuestData_BoosterPack. Parameterized some sets and lists to fix Java warnings. This is supported since Java 1.5. Parameterized Comparables.
- Updated ForgeProps.getFile(CARDS) -> ForgeProps.getFile(CARDSFOLDER) in a couple places (not main app code).
- Fixed text of Joraga Warcaller.
- Added PrecostDesc$ to some cards.
- Fixed Accumulated Knowledge not drawing the first card.
- Converted Ramosian Revivalist to AB$Retrieve.
- Made some corrections to GameActionUtil.showYesNoDialog() after further testing.
- Changed the code block for Chambered Nautilus, Saprazzan Heir and Drelnoch to call GameActionUtil.showYesNoDialog().
- Fixed error when opening deck editor.
- Fix some AF_Retrieve cards to limit to your graveyard.
- Added GainControl parameter for Retrieve.
- Freeze stack while Attackers and Blockers are being declared. These triggers should resolve during the Priority portion of that step.
- Shared Triumph and friends need to occur as a Static Ability to not cause an OutOfBounds Exception when the AI uses them.
- Finetuned spCounter with two new extra actions (RearrangeTopOfLibrary, a'la Aven Fateshaper, and RevealHand) and added new functionality to the Targets() restriction; it can now determine if the spell targets you as well as your cards.
- Changed the code block for Cinder Pyromancer to call GameActionUtil.showYesNoDialog().
- Added LQ pic urls to Discombobulate, Galvanic Blast, Hindering Light and Lay Bare.
- Commented out code that reads from cards.txt in TableSorter.java. It wasn't doing anything except using system resources.
- Fixed color of Dragon Broodmother tokens.
- Added Alternate Win/Lose into Player class
- Changed anything applicable to use the system instead of setting life to 0.
- Upkeep "you win" abilities now check condition on resolution as well.
- Bugfix for Milling not giving quest award.
- Test of Endurance was not considered an Alt Win Condition for Quest bonuses.
- Updated getValidCards call in Target_Selection to pass in Source Card.
- Converted Ezuri, Renegade Leader to AbilityFactory.
- Door to Nothingness AltLoseCondition was missed earlier.
- Improved how Colorless mana is paid.
- Added a first draft for counter checking support to isValidCard (now hasProperty).
- Converted Mad Auntie to AbilityFactory and keyword.
- Changed the code block for playCard_Enchantress_Draw() to call GameActionUtil.showYesNoDialog().
- Added AF_ZoneAffecting for things like Draw, Discard, Mill etc.
- Created Draw AbilityFactory.
- Converted Yawgmoth's Bargain to use Draw.
- Small fix for Fetch with Library as the destination.
- Fixed CanTarget(Card, Player) to call hasShroud.
- Changed the HQ pic url for Baron Sengir.
- Added a red Giant theme.
- Added a WR Giant theme.
- Missed a ! in canTarget() for the Player.
- Changed the code block for playCard_Kor_Firewalker() to call GameActionUtil.showYesNoDialog().
- Fixed LQ pic URL for Temple Elder.
- Added missing P/T to Hyperion Blacksmith.
- Corrected the miss-spelling of the type for Tectonic Instability.
- Fixed canPlay() for Siren's Call.
- Moved Sylvan Library code to GameActionUtil.java.
- Restricted Sylvan Library to cards drawn this turn.
- Fixed Fetch variable for Enlightened Tutor. TopOfLibrary doesn't exist. Destination$Library and LibraryPosition$0.
- This might be a problem for other cards that converted over?
- Fixed backwards AI targeting in sp/abTap/Untap keywords.
- Fixed counterspells when played by the AI.
- Converted the spTutor cards to SP$Fetch.
- Commented out the spTutor keyword entry.
- Cleanups and SetInfo equals bugfix.
- Improve Colorless Mana Payment when amount in ManaPool is <= to amount of Colorless Mana, or only one type of Mana in the pool.
- Cleaned up a couple unused imports.
- Suppressed a couple warnings.
- Added a UB Black Vise theme.
- Commented out the original CardFactoryUtil.upkeep_Wolf_Skull_Shaman() code block and pasted my own version right above the original version.
- Some changes for Kinship cards to have whole Ability sit on the stack.
- Converted Galvanic Blast to keyword.
- Added Metalcraft parameter to Count$.
- Changes to Thopter Foundry.
- Added initial AIPreference code.
- Changed MagicStack.push to .add outside of MagicStack.
- Added SetInfoUtil class for set lists and cross-reference with set codes. Bugfix in ReadCard - substring for SetInfo. Enabled random set-specific pictures.
- Minor fix to an ugly oversight in Count$Metalcraft.
- Fixed Albino Troll's types.
- Added the SVar SacMe to getCardPreference and some cards.
- Fixed a case where artifact creatures were able to block Argothian Pixies.
- Added missing LQ pic urls and rarity to Bramblesnap and Stone Giant.
- Added faceDown as a restriction to hasProperty.
- Fixed LQ pic URL for Sword of Body and Mind and Salvage.
- Added Random option to theme deck list.
- A small modification to fetchCanPlayAI.
- Added the keyword "Draw a card at the beginning of the next turn's upkeep."
- Minor changes to Wolf-Skull Shaman. Computer now reveals the top card of library only if it's type matches Wolf-Skull Shaman.
- Fixed the LQ pic url for Mind Ravel.
- Updated CardFactoryUtil.upkeep_Ink_Dissolver().
- Fixed AI choice with Modular.
- Fixed AI payment for upkeep costs.
- Updated CardFactoryUtil.upkeep_Leaf_Crowned_Elder().
- Added the optional parameter CostDesc to ability_Factory for irregular additional costs.
- Converted Natural Order to keyword.
- Fixed Mana Vortex. Sacrifice selection is now limited to lands player controls. If Mana Vortex counter trigger now checks that it is the Mana Vortex on the stack in resolve.
- If you write card codeblocks, please be aware that "TgtV" Target constructor is no longer used. Use Target(String message, String[] Valid) instead. Changed Target class to always use ValidCards, converted older keywords to follow the new format.
- Added AF_Tap, converted Burst of Energy and Mind Games.
- Milling check not negating return from cantLose().
- Fixed LQ pic URL for Stun.
- Removed explicit Lifelink check in Brion Stoutarm.
- Moved HandSize shenanigans into the Player class, tightened up the code overall.
- Fixed minor error in stack description for AF_Tap abilities.
- Changed "Draw a card at the beginning of the next turn's upkeep." to a delayed triggered ability.
- Updated CardFactoryUtil.upkeep_Wandering_Graybeard().
- Updated CardFactoryUtil.upkeep_Nightshade_Schemers().
- Cleaned up very old code related to losing life.
- Updated some payLife calls to be consistent.
- Let ForgePreferences create a new preferences file with the standard settings if one is missing.
- Deleted the .preferences file from the svn. (It will be created with standard values anyway.)
- Updated CardFactoryUtil.upkeep_Winnower_Patrol() and Winnower Patrol now uses counters.
- Added a check to the updated Kinship cards. Players will no longer automatically trigger the Kinship ability if their library is empty. Useful for games when the "Milling = Loss Condition" check box is unchecked.
- Fixed Merfolk Sovereign Error Exception.
- Converted Sejiri Merfolk to stPumpSelf.
- Made payLife conform more closely with the rules.
- Made sure player can pay 4 life in Sylvan Library code.
- Updated a couple places so you can pay all your life if you so desire.
- Updated CardFactoryUtil.upkeep_Sensation_Gorger().
- Added rarity for Bosh, Iron Golem.
- Fixed possible error in Fallen Empires storage lands if 0 counters are removed.
- Moved Targeting from SA to Target class. Added some backwards compatible code to pass along setTargets to Target if it exists.
- Added Multi-targeting capability. And updated current AFs (except Regenerate) to properly resolve for multiple targets.
- Added canPayLife(int lifePayment) to the payer class and made use of it in several places.
- Enabled spells with "up to" a number of targets.
- Updated two themes.
- Fixed Combat issues that were noticed through flanking. Blocking was changing mid-block because the Stack wasn't frozen.
- Added TradeUp Blocking situation for when the AI can kill a better creature and dying in the process.
- Fixed Wave Elemental.
- add first draft of Apache Ant build.xml file. This has been tested on FreeBSD 6.3 with Apache Ant 1.7.1 installed from ports.
to compile: ant
to clean: ant clean
to run: ant Forge
- Converted Wydwen, the Biting Gale to keyword.
- Added some missing LQ pic urls and rarities.
- Improved some of the CanPlayAI cost evaluations of the bounce, fetch and draw abilities.
- Added hostCard.setSVar("PlayMain1", "TRUE"); to Bounce abilities.
- Converted some more cards to AB$Bounce.
- Removing some debugging code in AI Blocking
- Fixed Bellowing Tanglewurm.
- Hidden keywords are now displayed separately as non-ability characteristics.
- Fixed a bug in getHiddenExtrinsicKeyword.
- adapted Muraganda Petroglyphs to only check for ability text.
- Lands enchanted by the opponent no longer stack.
- Fixed Intuition. Clicking on Cancel when this spell is cast by the AI would cause a null error. Changed getChoiceOptional() to getChoice().
- The AI will no longer enchant an island with Spreading Seas and similar cards.
- Added a blue Islandwalk theme.
- Fixed AF_Bounce handling of SubAbilities via the new Targeting.
- Player's EOT Phase will no longer autoskip.
- Fixed Exile by converting to AbilityFactory_Bounce.
- Changed these cards to AF_Bounce: Altar's Light, Aura Extraction, Boomerang, Caustic Rain, Celestial Purge, Cut the Earthly Bond, Deglamer, Deny Reality, Disempower, Disperse, Erase, Excommunicate, Eye of Nowhere, Fallow Earth, Forced Retreat, Hoodwink, Into Thin Air, Iona's Judgment, Regress, Repel, Repulse, Rescind, Revoke Existence, Second Thoughts, Surging AEther, Symbol of Unsummoning, Temporal Eddy, Temporal Fissure, Temporal Spring, Unmake, Time Ebb, Unsummon, Uproot and Wipe Clean.
- Fixed Exile as it had two spell descriptions.
- Added a Mill Ability Factory.
- Converted Vedalken Entrancer to AF_Mill. **We should convert anything we can since many Milling cards are causing Crashes when the AI uses them.
- Fix target of AF_Draw when AI is trying to Deck the Human.
- Fix for Genesis Upkeep ability not playing nice with the new Phase stuff.
- Fixing Wirewood_Hivemaster and Baru not attaching their abilities to the card that triggers them.
- Converting Search for Tomorrow to AF_Fetch (since it didn't seem to work before.)
- Moving Suspend down to postFactoryKeywords() so Spells with Ability_Factory don't clear out Suspend ability when trying to clear default "Spell" ability.
- Fixed the Elves theme.
- Converted Ambassador Laquatus, Millstone, Cathartic Adept, Glimpse the Unthinkable, Tome Scour and Tower of Murmurs to AB$Mill.
- Removed spells entries from cf sorceries.
- Minor edits to the stack desc for AF_Bounce.
- Changed these cards to AF_Bounce: AEther Mutation, Call to Heel, Clutch of the Undercity, Condemn, Last Breath, Recoil, Snap and Swords to Plowshares.
- Added AbilityFactory_Destroy.
- Added AbilityFactory_Token.
- Converted Acorn Harvest, Beast Attack, Call of the Herd, Carrion Call, Chatter of the Squirrel, Crush of Wurms, Dragon Fodder, Elephant Ambush, Empty the Warrens, Feral Lightning, Goblin Offensive, Goblin Scouts, Howl of the Night Pack, Hunting Pack, Icatian Town, Join the Ranks, Ordered Migration, Raise the Alarm, Reach of Branches, Roar of the Wurm, Skittering Invasion, Sosuke's Summons, Sound the Call, Spectral Procession, Spontaneous Generation, Spore Burst, Sprout, Storm Herd, Tidal Wave and Waylay.
- Updating AF_Destroy's Stack Description to handle multi-targeting.
- Fixed War-Torch Goblin.
- Code cleanup in CF_Sorceries.
- Converted all abMakeToken cards to AF_Token.
- Commented out the code blocks for spBounceTgt.
- Changed Capsize to use AF_Bounce.
- Added Sol's fix to the Pointer problem in sa.copy(). Cards with buyback that use AbilityFactory will now have the correct costs.
- Converted Flashback keyword to use Ability_Cost.
- Converted Dust to Dust and Hex to keyword.
- Added a UB Milling theme.
- Added IsCurse$True to some abilities.
- Fixed a bug in costchange not affecting costs like WW.
- Added first pass at AbilityFactory_GainControl.
- Fixed Crippling Fatigue and Thrill of the Hunt PT pumps.
- Added a TokenImage parameter to AF_Token.
- Took care of 1.5 incompatibilities.
- Added stack descriptions for DealDamage and Pump.
- Cleanup for Propaganda stuff.
- AI now actually pays for Genesis ability.
- Moved all parameter->xCount and optional parameter parsing inside AF_Token.
- Added trim() commands to AbilityFactory. We can now use " | " and " $ " in the list of params in order to make these more readable.
- Converted Academy Ruins and Volrath's Stronghold to keyword.
- Added spaces to the 48 cards that use AF_Bounce.
- Bugfix related to converting AF_Retrieve to Multi-targeting. Similar variable names were causing runtime errors.
- Edge case fixing for AIPlayer method and a couple input methods (i.e. where num == 0).
- Fixed Incendiary Command (last bit from Player class conversion.)
- Removed debug code from CardFactory.java.
- Added spaces to the cards that use AF_Token.
- Added Banshee (from The Dark). NOTE: There is a bit of a glitch before paying the X mana. You are prompted to pay a blank mana cost. Clicking on a mana-producer gets past this with no side-effects. Then, you can pay the X as expected, and the ability works as expected.
- Fixed Flashback cost to use abCost.toString() for better readability.
- Commented out the now un-used keyword-based code for abMakeToken() and spMakeToken().
- Fixed Drop of Honey not getting sacrificed right away when there are no creatures in play.
- Added spaces to the 5 cards that use AF_Retrieve.
- Fixed LQ pic for Wind Sail.
- Bugfix for skipping the first Input set during BeginPhase triggers. (Seen in Modular not triggering during combat and probably others.)
- Bugfix for madness not being able to activate during the Cleanup step. Cleanup step now repeats if Players somehow gain priority.
- Changed these cards to AF_Retrieve: Call to the Netherworld, Disentomb, Disturbed Burial, Raise Dead, Recover and Return to Battle.
- Added OpponentTurn as a restriction to AF's.
- Added spaces to the 25 cards that use AF_Token. This takes care of the missing AB$Retrieve cards.
- Combined Bounce Stack descriptions
- Added Stack Descriptions for AF_Retrieve.
- Fixed the 6 SP$Retrieve spells that I converted.
- Added X Mana Cost to Ability_Cost (AI will need work to improve how to use X, so for now RemAIDeck them.)
- Little fixes and updates.
- AI fix for Cumulative Upkeep payment.
- Changed these cards to AF_Retrieve: False Defeat, Resurrection, Unearth and Zombify.
- Fixed LQ pic URLs.
- Converted Icy Manipulator to AbilityFactory_PermState.
- Converted Time Elemental to AB$Bounce.
- Changed these cards to AF_Retrieve: Elven Cache, Recollect, Regrowth and Revive.
- Adding NextPhase() into Input_Cleanup. Sometimes the Cleanup phase was getting stuck after discarding.
- Fixed Modification Exception in Lure code.
- Arashi now has his first ability, using the new X in Ability_Cost.
- Converted Jandor's Saddlebags to AB_PermState.
- Converted Witch Hunter damage ability to AbilityFactory.
- Converted Seal of Removal to keyword.
- Converted Library of Alexandria to AbilityFactory.
- Added missing stack desc for SP$Draw AbilityFactory.
- Converted Ancestral Recall to AbilityFactory.
- Fixed NullPointerException when cancelling or leaving blank the Patriarch's Bidding prompt. Still not sure how it messed up the questData so bad.
- Removed now unused CardList and commented-out code from Patriarch's Bidding.
- Fixed PrecostDesc$ parameter for Shinen of Fear's Chill's Channel ability.
- Target addTarget bugfix.
- Banshee, Korlash, Heir to Blackblade bugfix.
- Method names to lowercase refactoring.
- Fixed a case for ManaCost where it would throw an exception if X was the only mana part in a cost.
- Fixed Banshee's X-payment glitch.
- Improved the AI of AF Bounce a little.
- Changed these cards to AF_Retrieve: Breath of Life, Nature's Spiral and Reborn Hope.
- Added DestroyAll to AF Destroy.
- Converted Magus of the Disk and Nevinyrral's Disk to keyword.
- Direct Damage spells that use TgtP can now only Target Planeswalkers you don't control.
- Little fixes and updates.
- Added Sol's fix to the SP$pump bug.
- Converted Armageddon and Revages of War to AF_DestroyAll.
- Added RemoveCounter to AbilityFactory_Counters.
- The Valid card restrictions YouCtrl, Other will now be passed down to hasProperty. This enables using the X SVar of the source card.
- Added spaces to the cards that use AF_Fetch.
- I mistakenly overwrote the correct fix to the AF $Pump bug and this places the overwritten material back into the code base. Sorry for my error.
- Fixes for some Upkeep Abilities that care about hand size. It should be determined on resolution, not "locked in" when the ability triggers.
- xCount was passing in source Card, but this.getSVar(). Fixed.
- Added SP/AB$Proliferate to AbilityFactory (copied all proliferate code from GameAction.getProliferateAbility).
- Re-check the number of creatures in play during resolve for Drop of Honey and Porphyry Nodes.
- Added check for valid targets in resolve for The Abyss.
- Converted Wrath of God and Zuran Orb to Ability Factory.
- Added spaces to the 76 cards that use AF_Pump.
- When AF_Bounce targets a face down card, it now says "Morph" instead of the actual cardname.
- Converted Strip Mine to AF_Destroy.
- Fixed Spell text for Disenchant.
- Added Counters.DOOM to isNegativeCounter().
- Exile is now a Destination for Fetch. (Jester's Cap could use Fetch, except we need a flag if the Target Player does the searching, or Target Player gets their library searched.)
- Small tweaks in GainControl for Spells.
- Bugfix for Sanity Grinding for if Library.size() < Mill amount.
- Deleted unused LifeLink function.
- Fixed a bug with the new hasProperty.
- Added the restriction ControllerControls, YouOwn and YouDontOwn to hasProperty.
- Hidden keywords are now called non-ability features.
- Added remaining ability cost reducers.
- Fixed Feldon's Cane description.
- "Draw a card at the beginning of the next turn's upkeep." now triggers on each upkeep not just your own.
- Added a WUBRG Leyline of Singularity theme.
- Fixed AI to be able to retrieve cards from human graveyard.
- Added Exile as destination to Retrieve.
- Converted False Mourning, Reclaim and Salvage to AF's SP$Retrieve.
- Converted Death Cultist to keyword.
- Added spaces to the 11 cards that use AF_Mill.
- Added spaces to the 12 cards that use AF_Tap.
- Added (re-added?) spaces to the 29 cards that use AB$Bounce.
- Added upkeep Demonic Hordes code.
- Added (re-added?) spaces to the 29 cards that use AB$Bounce.
- Fixed targeting in cards played for free.
- Bugfix AF_Bounce Null Pointer Error in Stack Description.
- Added clearFirstSpellAbility and addFirstSpellAbility into Card when we want the default SpellPermanent/Spell to be cleared but keep other things added on the card.
- Changed enPump to use the above firstSpellAbility functions.
- Changed Targeting to remove previously targeted cards from it's choice list for use with Graveyard targeting.
- Added spaces to 5 cards that use SP$Bounce.
- Sort Implemented/Missing Set Lists before printing them out.
- Added spaces to the 8 cards that use AF_Untap.
- Added spaces to the 2 cards that use AF_Fog and to the 3 cards that use AF_Control.
- Deleted migrated Python Script, which was for old cards.txt formatting.
- Added new setInfo Python Script for Rob's Set/Image work.
- Added spaces to the 19 cards that use AF_GainLife.
- Added spaces to the 4 cards that use AF_LoseLife.
- Added spaces to the 36 cards that use AF_Counter.
- Updated Pendelhaven.
- use the provided SpellDescription if it exists for the stack description in createSpellDestroyAll instead of the default generic text of "destroy permanents".
- Converted Seasinger and Old Man of the Sea to AB$GainControl.
- Fixes to card txt files.
- Added spaces to the 1 card that use AF_Counter and to the 1 card that use AF_Proliferate.
- Added spaces to 10 cards that use AB$Destroy and AB$DestroyAll.
- Added spaces to 25 cards that use SP$Destroy or SP$DestroyAll.
- Added spaces to 8 cards that use AF_Draw.
- Added spaces to the cards that use AF_Regenerate.
- Removed apostrophe from Arcum's Sleigh in a couple behind the scenes places. This follows the pattern of other text files.
- Added spaces to the 50 cards that use AF_DealDamage.
- Converted the tap ability of Thornscape Apprentice to AF.
- Several minor edits and this is the end of the add spaces to the cards using AF sa's project. I think that I found all of them.
- Changes to AbilityFactory_GainControl add TapOnLose - target is tapped when you lose control add AddKWs - KWs to add when you gain control and remove when you lose control add lose condition of "EOT" no longer specificall checks value of Untap param, just presence.
- Changed hasProperty ControllerControls[type] to check cards for this, instead of source. This fixes Seasinger targeting.
- This fix adds the trailing space character to the PrecostDesc and the CostDesc.
- Converted Act of Treason, Slave of Bolas and Threaten to AF_GainControl.
- Fixed warning in TableSorter.java.
- Replaced the emdash on three cards with a hyphon.
- Converted these cards to AF_Retrieve: Call to Mind, Deja Vu, Relearn and Sage's Knowledge.
- Changed these cards to AF_Retrieve: Argivian Find, Argivian Restoration, Boggart Birth Rite, Reconstruction and Ritual of Restoration.
- Take Morph into account in the stack description of AF_GainControl.
- Converted Memnarch's gain control ability to AF_GainControl.
- Initial SubAbility work: DealDamage, GainLife, Draw, Mill all can now be called as a SubAbility and can call SubAbilities.
- Target_Selection will now Target for Parent ability and each subAbility that requires it.
- Stack will fizzle if ALL Targets are illegal on resolution.
- Merged Orcish Cannonade, Psionic Entity to AF+SubAbility.
- Target Prompt now Optional in AFs.
- Fix for GainLife Drawback.
- Added LoseLife SubAbility handling.
- Converted Death Cultist to SubAbility.
- Fixed Slave of Bolas. It doesn't really have a LoseControl condition.
- Added support to AF_GainControl to destroy target on certain conditions.
- Added stack descriptions to AF_Regenerate.
- Small fixes to card txts.
- Converted both abilities of Sliver Overlord to AF (GainControl and Fetch.)
- Fixed for Meishin, the Mind Cage. It should be checking Hand, not Graveyard.
- Fixed typo in Vedalken Shackles.
- Improvements to the AI of dealDamage.
- AI Drawbacks for Draw and DealDamage should now functionally target.
- AI improvements to the Pump AF.
- AI improvements to the DealDamage AF.
- Some work on total damage prevention.
- Improved AI of dealDamage once again.
- Added AI targeting for Mill's SubAbility.
- Added some X handling for AF_Mill.
- Added the optional parameter NoPrevention to DealDamage.
- Updated Death's Duet to AF_Retrieve.
- Changed where Null check for DrawTarget occurs.
- The AI now takes NoPrevention into consideration when targeting.
- Added NoPrevention to Combust.
- Fixed Elven Fortress and Manabarbs.
- Fixed Fluctuator.
- Moved calculateAmount to AbilityFactory so all AF_ can use the same function.
- Fixed creature type of Hivis.
- Changing Parameter name for calculateAmount().
- Converting MinTarget and MaxTarget to strings so they can be variable amounts.
- Merged Footbottom Feast to AB_Retrieve.
- Bugfix in python Script where Set Abbreviations that end in 'en' like Zendikar[Zen] wouldn't parse correctly.
- Prepared everything to implement damage prevention by amount.
- Fixed default value for debug window deck list.
- Untap SubAbility code is not ready yet.
- Improved the AI for AF_ZoneAffecting.drawCanPlayAI(). The AI will no longer draw cards if it makes the computer's handsize > maxhandsize.
- Bugfix for Portal cards in Python Script. They were just grabbing any old Portal in the search.
- Added printing of card name to console as each card is processed.
- Fixed Ancestral Recall, you can no longer target a Planeswalker.
- Converted these cards to AF_Draw: Brilliant Plan, Concentrate, Counsel of the Soratami and Divination.
- Converted these cards to AF_Retrieve: Life from the Loam, Macabre Waltz, Reinforcements and Urborg Uprising.
- Removed the commented-out spReturnTgt keyword from a number of card text files.
- Commented-out the spReturnTgt keyword code in CardFactory.
- Converted these cards to AF_Draw: AEther Spellbomb, Ambition's Cost, Ancient Craving, Archivist, Armistice, Attunement, Benalish Heralds, Bonded Fetch, Book of Rass, Brainstorm, Brass Secretary, Careful Study, Carnage Altar, Catalog, Cephalid Broker, Cephalid Looter, Cephalid Scout, Compulsion, Compulsive Research, Control of the Court, Courier's Capsule, Crookclaw Elder, Cruel Bargain, Dream Cache, Emmessi Tome, Etherium Astrolabe, Goblin Lore, Greed, Grixis Battlemage, Hapless Researcher, Harmonize, Infernal Contract, Inspiration, Inspired Sprite, Jace's Ingenuity, Jalum Tome, Jandor's Ring, Jayemdae Tome, Lifespark Spellbomb, Magus of the Bazaar, Mind Stone, Mikokoro, Center of the Sea, Mindless Automaton, Moriok Replica, Necrogen Spellbomb, Night's Whisper, Niv-Mizzet, the Firemind, Opportunity, Phyrexian Vault, Pyrite Spellbomb, Reach Through Mists, Reckless Scholar, Riptide Director, Sage of Lat-Nam, Scarecrone, Scepter of Insight, Sea Gate Loremaster, Seaside Haven, Serum Tank, Serum Visions, Sift, Sign in Blood, Slinking Skirge, Soratami Cloudskater, Staff of Domination, Sunbeam Spellbomb, Temple Bell, Think Twice, Thirst for Knowledge, Thoughtcast, Thought Courier, Tidings, Touch of Brilliance, Tower of Fortunes, Treasure Trove, Trigon of Thought, Unfulfilled Desires, Urza's Blueprints, Vision Skeins, Wistful Thinking, Words of Wisdom, Xira Arien.
- Converted obsessive search, fixed null error in SA_Reqs.
- Updates and fixes to damage prevention.
- Added the keyword Absorb.
- More AI improvements to handle damage prevention.
- Added the keyword PreventAllDamageBy.
- Converted 5 cards to this keyword.
- Improvements to the Combat AI.
- Bugfix; Object.equals(null) is always false and if the reference is null then you get NullPointerException as there's no methods on null.
- Added Shrine to the list of non-creature types and renamed isCreatureType to isACreatureType.
- Converted Bazaar of Baghdad to AB$Draw.
- Added capability for most of the AFs to have a SubAbility (not yet being a subAbility).
- isABasicLandType change missed CF_Auras. Fix build break.
- Lowered Bonus Credits for Poison Counter win and Milling Win, added to Prefs file.
- For AF_Draw, the tgtP was incorrectly being sent in for old Drawback code.
- Fixed the card txt issues PhoenixAvenger mentioned.
- Fixed Guardian Seraph.
- Converted Vampiric Sliver to stPump.
- Added the keyword "CARDNAME can't be blocked by more than one creature."
- Converted Siege-Gang Commander to AB$DealDamage.
- Fixed Nocturnal Raid and Holy Light.
- Added a black The Rack theme.
- Bugfix for Azami, Lady of Scrolls not clearing tappedList before putting Ability on stack.
- Little updates and cleanup in ComputerUtil_Attack2.
- Cards discarded as a cost will now be recorded in the SA and cleared at resolution.
- Altered DealDamage to use AF.calculateAmount().
- Fixed AEther Flash when AI has it in play. It was damaging human, not the creature that entered play. Changed this to card-specific code.
- Added SetInfo to card data files.
- More fixes for the SetInfo Script.
- Added random set assignment for the computer in constructed New Game.
- Adding Game Phase File Menu for stopping at Phases in Display4. (This would be way more useful if it can be saved to a file, but I couldn't find where that would happen.)
- SetInfo Script will now skip .svn file it will also only overwrite data files that it has grabbed Set Info for.
- Pump and Draw can now handle variable Amounts for attack/defense boost or cards drawn.
- Removed Braingeyser from AI Decks until AF_Draw can learn how to play it better. (The Code block was forcing the Human to draw anyway.)
- Added Targeted to AF.calculateAmount().
- Improved targeting in AF_GainControl.
- Removed targeting stuff compy already controls (previously, was only checking isValid() or whatever it is now).
- Removed targeting cards with SVar:RemAIDeck set.
- Specifically check for best creature, artifact, land or enchantment depending on what it can get and what's available.
- AI now uses max hand size when deciding whether to draw or not to draw a card when using the Chambered Nautilus, Saprazzan Heir or Drelnoch ability.
- AI now uses max hand size when deciding whether to draw or not to draw a card when using the Verduran Enchantress, Mesa Enchantress or Kor Spiritdancer ability.
- Improvements to AF_GainControl and AI decisions.
- AI will choose not to untap (if possible) a card that is controlling another when given the opportunity (like Old Man of the Sea).
- If it is not controlling, then it will untap.
- "+Controlling: <target>" added in CardDetailPanel.
- Fixed possible StackOverflowException in AF_GainControl and friends.
- Displays set membership and rarity in color in CardDetailPanel.
- Only sets a random set code for cards that do not already have one. Enables the possibility that cards generated in set-specific boosters can maintain their set code.
- Added getCurSetRarity method.
- Converted these cards to AF_Draw: Airborne Aid, Biomantic Mastery, Borrowing 100,000 Arrows, Collective Unconscious, Flow of Ideas, Mind Spring, Ribbons of the Reikai, and Theft of Dreams. These 8 cards will no longer show up in randomly generated decks. They are situational and the AI can not use them effectively.
- Convert Spitting Hydra.
- Changed Chronatog's ability to Ability_Activated.
- Converted Steady Progress to AF_Draw.
- Fixed the LoseLife StackDescription.
- Converted Minions' Murmurs to AF_Draw.
- Bugfix for Suspend trying to move Spell to Stack that's already moved
- Convert Ancestral Vision to AF_Draw and remove from AI decks since Suspend currently returns false.
- Bug where Scars of Mirrodin cards getting labeled as both SOM and Mirrodin was around when Rob was migrating to SetInfo. The issue is already fixed, but was around long enough to do some damage. For the few cards that happened to be in both, the image is now fixed.
- Added a mechanism to trigger a sacrifice at EOT if an ability has been activated a given number of times. This is specified by ActivationNumberSacrifice. The only cards that could use this are Dragon Whelp, Farrelite Priest, Initiates of the Ebon Hand, and Nalathni Dragon.
- Improved the AI attack decisions.
- Commented-out the now unused abDrawCards and spDrawCards keyword code blocks.
- Converted these cards to AF_GainLife: Angel's Mercy, An-Havva Inn, Bargain, Blossoming Wreath, Bottle Gnomes, Bountiful Harvest, Braidwood Cup, Congregate, Dark Heart of the Wood, Dosan's Oldest Chant, Festival of Trokin, Folk Medicine, Fountain of Youth, Fruition, Gerrard's Wisdom, Guardian of Cloverdell, Gutless Ghoul, Heroes Remembered, Heroes' Reunion, Invigorating Falls, Joyous Respite, Kiss of the Amesha, Landbind Ritual, Mournful Zombie, Natural Spring, Nourish, Peach Garden Oath, Presence of the Wise, Ravenous Baloth, Rejuvenate, Rejuvenation Chamber, Renewed Faith, Renewing Dawn, Reviving Dose, Sacred Nectar, Silent Attendant, Soothing Balm, Spike Feeder, Spring of Eternal Peace, Staff of Domination, Starlight, Starlight Invoker, Sunbeam Spellbomb, Sylvan Bounty, Tanglebloom, Tower of Eons, Trigon of Mending, Umezawa's Jitte, Vital Surge, Wandering Stream, Wellwisher, Whitesun's Passage, Zuran Orb.
- Converted 3 cards to AF DealDamage.
- Added Discard to AbilityFactory_ZoneAffecting. Convert Deception, Fill with Fright, Hymn to Tourach, Mind Twist, and Wit's End.
- Fixed Pyromania and Zuran Spellcaster misspellings.
- Converted to AbilityFactory: Goblin Rimerunner, Golgari Rotwurm, Horseshoe Crab, Jamuraan Lion, Minister of Impediments, River Merfolk, Shield Mate, Spitting Earth, Trigon of Mending, Trigon of Rage, Tumble Magnet, Wall of Mulch.
- Commented-out the now unused code blocks for abGainLife and spGainLife.
- Fixed Isochron Scepter putting cards imprinted on it by AI into Humans Exile-zone.
- Added RevealYouChoose discard mode to AB/SP$Discard ane converted Nightmare Void as an example.
- Little combat AI improvements.
- Verified DiscardValid works as expected. Converted Duress as an example.
- Converted Brainbite, Coercion, Distress, Encroach, Hymn to Tourach, Mind Knives, Mind Peel, Mind Ravel, Mind Rot, Mind Shatter, Mind Sludge, Mindstab, Mind Twist, Mind Warp, Ostracize, Psychic Spear, Shattered Dreams, Specters Wail, Stupor, Surging Dementia, Thoughtseize, Three Tragedies, Unburden, Unhinge, Unnerve, Voices from the Void, Waking Nightmare, Wheel and Deal to SP$Discard.
- Minor updates to 14 SP$Pump cards.
- Provide warning message if an AI deck contains cards with RemAIDeck=True.
- Added DiscardUnless functionality to AB/SP$Discard.
- Converted Wrench Mind to AF.
- All spDiscard cards have been converted to AbilityFactory. Commented out code for spDiscard in CardFactory.java.
- Converted Disrupting Scepter from hardcoded to AB$Discard.
- Converted Gwendlyn Di Corci to AF Discard.
- Converted Necrogen Spellbomb to AB$Discard.
- Converted Cao Cao, Lord of Wei to AB$Discard.
- Converted Dimir Guildmage to AF for Draw and Discard.
- Fixed the LQ pic url for Splitting Headache.
- Fixed stack description for Tectonic Instability.
- Added RemAIDeck to Esper Charm.
- Converted Slate of Ancestry to AB$Draw.
- Now supports pictures using MWS filenames and folders.
- Fixed error with the sets array in SetInfoUtil.
- Added AbilityFactory for counterspells.
- Added DB$ and Subability$ functionality to AF_Token. Based on AF_DealDamage, hopefully correct. No card uses it yet.
- Converted these cards to AF_Pump: Accelerate, Accelerated Mutation, Afflict, Aggressive Urge, Angelic Blessing, Assault Strobe, Bewilder, Bloodcurdling Scream, Breach, Brute Force, Bull Rush and Cloak of Feathers, Burning Cloak, Colossal Might, Constricting Tendrils, Daring Leap, Darkblast, Disfigure, Disorient, Dizzy Spell, Double Cleave, Drag Down, Enrage, Fanatical Fever, Feeding Frenzy, Fend Off, Ferocious Charge, Fists of the Anvil, Fit of Rage, Fleeting Distraction, Flowstone Strike, Gaea's Might, Gerrard's Command, Ghoul's Feast, Giant Growth, Grasp of Darkness, Guided Strike, Howl from Beyond, Howling Fury, Hunger of the Nim, Infiltrate, Inner Calm, Outer Strength, Inspirit, Iron Will, Irradiate, Jump, Kindled Fury, Lace with Moonglove, Last Gasp, Leap, Lose Hope, Might of Alara, Might of Oaks, Might of the Masses, Mighty Leap, Monstrous Growth, Muscle Burst, Nameless Inversion, Nighthaze, Predator's Strike, Primal Bellow, Pull Under, Riding Red Hare, Sangrite Surge, Screaming Fury, Seize the Initiative, Shadow Rift, Shriek of Dread, Shrink, Silk Net, Slaughter Cry, Stabbing Pain, Stand Firm, Strength of Cedars, Sudden Strength, Tainted Strike, Tel-Jilad Defiance, Thunder Strike, Touch of Invisibility, Trailblazer, Unnatural Speed, Untamed Might, Vault Skyward, Veteran's Reflexes, Wielding the Green Dragon, Wildsize and Wirewood Pride, Withstand Death.
- Minor edits to several AB$Pump cards.
- Changed TgtP to ValidTgts$Player for a couple cards.
- AF_Counter - Destination was not being ignored if it could target SpellOrAbility. Now, Destination is ignored if it does in fact target an ability.
- Deprected method used by spCounter. Anything new should use AbilityFactory.
- Renamed AbilityFactory_Counter to AbilityFactory_CounterMagic.
- Converted these cards to AF_Pump: Coral Helm, Dauthi Embrace, Flying Carpet, Fyndhorn Bow, Ghitu War Cry, Heartwood Shard, Iron Lance, Jabari's Banner, Narcissism, Need for Speed, Noble Steeds, Power Matrix, Scale of Chiss-Goria, Seal of Strength, Skarrg, the Rage Pits, Sunhome, Fortress of the Legion, Sustenance, Tooth of Chiss-Goria, Tower of Champions, Tower of the Magistrate, War Chariot.
- Fixed exception when AI tried to cast Phantasmal Terrain or Convincing Mirage.
- Updated CONflux set codes to ConFluX.
- Converted these cards to AF_Pump: Adarkar Sentinel, Advanced Hoverguard, AEtherflame Wall, Akroma, Angel of Fury, Andradite Leech, Angelfire Crusader, Arcades Sabboth, Atog, Auratog, Avatar of Fury, Aven Flock, Balshan Collaborator, Basalt Gargoyle, Battlefield Percher, Blistering Dieflyn, Blockade Runner, Boreal Griffin, Breathstealer, Burning Shield Askari, Capashen Knight, Capashen Templar, Carrion Ants, Cavern Crawler, Cavern Thoctar, Chameleon Colossus, Char-Rumbler, Chartooth Cougar, Chilling Shade, Cinder Shade, Cloudheath Drake, Cobalt Golem, Crashing Centaur, Cromat, Crowd Favorites, Crypt Ripper, Cursed Ronin, Darkling Stalker, Darklit Gargoyle, Dauthi Mercenary, Deathknell Kami, Deeptread Merrow, Dirtwater Wraith, Dragon Engine, Dragon Tyrant, Dreadwing, Dross Hopper, Duergar Cave-Guard, Dungeon Shade, Ebony Treefolk, Emerald Dragonfly, Enslaved Scout, Femeref Knight, Feral Animist, Ferrovore, Fetid Horror, Fiery Hellhound, Firefly, Firescreamer, Flame Spirit, Flamekin Brawler, Flowstone Crusher, Flowstone Giant, Flowstone Hellion, Flowstone Mauler, Flowstone Shambler, Flowstone Thopter, Flowstone Wall, Flowstone Wyvern, Folk of the Pines, Foratog, Foxfire Oak, Frost Raptor, Frozen Shade, Furnace Spirit, Furnace Whelp, Ghostly Changeling, Giant Crab, Glimmering Angel, Glintwing Invoker, Goblin Balloon Brigade, Granite Gargoyle, Hellkite Overlord, Hematite Golem, Henchfiend of Ukor, Henge Guardian, Hoar Shade, Honor Guard, Hooded Kavu, Hopping Automaton, Hyalopterous Lemure, Igneous Golem, Inferno Titan, Ironclaw Buzzardiers, Jodah's Avenger, Kavu Glider, Keeper of Kookus, Killer Bees, Kitsune Loreweaver, Kjeldoran Outrider, Knight of Dawn, Knight of Stromgald, Kranioceros, Leaping Lizard, Lightning Dragon, Lionheart Maverick, Lithatog, Llanowar Cavalry, Loch Korrigan, Lodestone Myr, Looming Shade, Loxodon Stalwart, Malachite Golem, Manta Riders, Mantis Engine, Marsh Lurker, Megatog, Merrow Wavebreakers, Mesa Falcon, Minotaur Illusionist, Molten Ravager, Moonglove Changeling, Moonwing Moth, Morphling, Nantuko Shade, Nightwing Shade, Nirkana Revenant, Noble Panther, Order of Leitbur, Order of the Ebon Hand, Order of the White Shield.
- Converted all cards that use abDamage without a drawback to AF_DealDamage.
- Minor AI fix on Rite of Replication.
- Reverted ImageCache to fix slow down in game when no card images are present. DeckEditor and QuestDeckEditor now attempts to display the most recent printing of the card. Loading DeckEditor screens will take longer as it does the set sorting. If set image can't be found, attempt to load from pics folder. If that can't be found, attempt to load none.jpg. (get none.jpg from Set Image thread.)
- Fixed That Which Was Taken ability text.
- Added SVar:RemAIDeck:True to Mortal Wound.
- Cleaned up code for Kjeldoran Outpost.
- This fixes the broken if-else if chain in various class files.
- Fixed toughness for Veteran Armorer.
- Code cleanup in Static Effects code (cardToEffectsList and commands.put stuff.)
- Updating SetInfo Script to use CFX instead of CON.
- Adding SetInfo data for some recently added cards including the 6 cards that were unable to be parsed by the SetInfoScript.
- Fixed a bug in GameActionUtil, for execute damage effects - poisonous - it was checking startsWith to get a list of keywords, but contains for adding to stack. This caused Poisonous to happen twice for the stPumpAll keyword and Poisonous 1 keyword on Virulent Sliver itself.
- Code cleanup/consolidation in GameActionUtil.java.
- Converted Winged Sliver, Synchronous Sliver, Talon Sliver, Fury Sliver, Muscle Sliver, Kongming, "Sleeping Dragon", Might Sliver, Bonesplitter Sliver, Crystalline Silver, Plated Sliver, Virulent Sliver, and Watcher
Sliver, Essence Sliver, Horned Sliver, Sidewinder Sliver, Sinew Sliver, Blade Sliver, Heart Sliver, Reflex Sliver, Sliver Legion, Captain of the Watch, Wizened Cenn, Aven Brigadier, Privileged Position, Levitation, Concordant Crossroads, Mass Hysteria, Fervor, Madrush Cyclops, Zuberi, Golden Feather, Sun Quan, Lord of Wu, Lovisa Coldeyes, Kinsbaile Cavalier, Elvish Archdruid, Elvish Champion, Death Baron, Cemetary Reaper, Knight Exemplar, Lord of the Undead, Scion of Oona, Veteran Swordsmith to stPumpAll keyword.
- Converted Radiant, Archangel to stPumpSelf keyword.
- Fixed Stuffy Doll not dealing damage to opponent when it receives damage from blocking a creature.
- Fixed example and description in AF_CounterMagic since Graveyard is default Destination.
- Fixed some missing Stack Descriptions for older keywords that used Target.
- Fixed card text for Verdant Force.
- Minor performance improvement for static effects.
- Fixed Galvanic Blast typo that prevented it from dealing damage.
- It is a day that will live in irony. Glorious Anthem - the namesake for all static effects codeblocks - has been converted to stPumpAll keyword.
- Converted Gaea's Anthem, Absolute Grace and Absolute Law to stPumpAll keyword.
- Bugfix for -X situation that caused a crash. Now strips out the minus sign before searching for Variable amount in AFs.
- Added Stop at Phases to Display3.
- Added Phase Stops preferences to ForgePreferences.
- Readability improvement in StaticEffects.java.
- Converted Darksteel Forge, Goblin Warchief, Knighthood, Serra's Blessing, Rage Reflection, Roughshod Mentor, Shadow Sliver, Sunken City, Hidden Path, Spinneret Sliver, Spitting Sliver, Stronghold Taskmaster, Thistledown Liege, Urborg Shambler, Akroma's Devoted, Anaba Spirit Crafter, Ascendant Evincar, Blessed Orator, Bloodmark Mentor, Boartusk Liege, Corrosive Mentor, Creakwood Liege, Cumber Stone, Day of Destiny, Deepchannel Mentor, Dread of Night, Fires of Yavimaya, Flowstone Surge, Fountain Watch, Glen Elendra Liege, Intimidation, Kavu Monarch, Long Forgotten Gohei, Lumbering Satyr, Murkfiend Liege, Primal Rage, Hanna's Custody, Righteous War, Song of Serenity to stPumpAll keyword.
- Converted Helix Pinnacle's counter-adding to AF_PutCounter.
- Fixed March of Souls giving you Spirit tokens even if it can't destroy your creatures (by way of Elspeth's ultimate for instance).
- Fixed C/P error in Fires of Yavimaya.
- Converted Stalwart Shield-Bearers to stPumpAll keyword.
- Converted Akki Underling and Deathmask Nezumi to stPumpSelf keyword.
- Converted Steel of the Godhead to stPumpEnchanted.
- I was able to convert an additional 101 more abPump cards to AF_Pump, but the rest will have to wait until after the upcoming beta release.
- Converted Kaysa, Meng Huo, Barbarian King, Tolsimir Wolfblood, Squirrel Mob, Knight of the Reliquary, Master of Etherium, Undead Warchief, Yavimaya Enchantress, Eladamri, Lord of Leaves, Honor of the Pure, Jacques le Vert, Daru Warchief, Imperious Perfect, Castle, Chainer, Dementia Master to stPumpAll keyword.
- Converted Mystic Enforcer, Kor Duelist, Castle Raptors, Giant Tortoise to stPumpSelf keywords.
- Renamed newGUICheckbox to be accurate for what it does.
- Moved Display settings for Quest Assignments to use the GUI checkbox for Display settings since it was ignored previously. This also fixes Phase settings being ignored.
- Little fixes to 3 card txts.
- Moved majority of discard code to Player classes.
- Updated calls to use move functions.
- Changed code calls from Player.subtractLife to Player.loseLife (and made
subtractLife private.)
- Fixed null-pointer error for non-Targeted Fetch cards played by the AI.
- Major Phase Overhauling: The engine will now stop many places to allow for Priority for both players. The AI now as an entry point, ComputerAI_General.stackResponse(), for responding to things the player does. Most changes outside of Input and Phase classes had to do with condensing code for simpler language.
- Convert Library of Alexandria, SearchMerc/Rebel to use abCost and Target.
- Mishra's Factory now uses AF_Pump.
- Goldmeadow Lookout, Oran-Rief, Magosi updated to use Ability_Activated.
- Fix for cards still using Input_NoCost_TapAbility.java. This same fix may be needed for other Inputs.
- Fix possible infinite loop in unfreeze stack.
- Fix regular games not updating UI.
- Creatures should still be in Combat until EndCombat is ending, not when it begins.
- Converted all LimitedAbility cards to SA_Restriction.ActivationLimit.
- Fixed Twinblade Slasher name.
- Modular Targeting now should happen as the Modular creature goes to the grave instead of on Resolution. This fixes the Input issue that was occurring due to the Phase changes.
- Added SA_Restriction for cards in Hand (for Hellbent or Library of Alexandria.)
- Added SA_Restriciton for Threshold.
- Fixing the cost for the two Bringers abilities.
- spReturn needs to call super.canPlay() so sorceries can't be cast as instants.
- If AI only attacks Planeswalker, skip Input_Block in favor of Input_Block_Planeswalker.
- Fix possible null pointer error where if just one creature attacks only a Planeswalker the Exalted bonus can't find the attacker.
- Converted Desert to AbilityFactory.
- Restricted Mirror Universe ability to controller's upkeep.
- Transitioned some discard calls to the Player object.
- Deleted keyworded code.
- Fixed a few bugs of Thopter Squadron.
- Removed Tower of Fortunes without .txt ending.
- Added SVar:RemAIDeck:True to some cards.
- Little fixes in card texts.
- Added SVar:RemAIDeck:True to Anowon, the Ruin Sage and Boggart Birth Rite.
- Cleared the forge.preferences file.
- Fixed the LQ pic url and the card text for Phantasmal Terrain.
- Converted command part of Arena of the Ancients to keyword.
- Fix for Combat being skipped when the Human attacks only a Planeswalker.
- Added isPresent for SA_Restriction. Can handle Metalcraft and other Restrictions based on cards in play.
- Fixed Threshold checking HandSize instead of GraveSize.
- Added Heidar, Rimewind Master as an example.
- Added a black reanimator theme.
- Fixed AI discarding multiple cards.
- Updated Funeral Charm to make use of discarding in the abstract player structure.
- Fixed some calls to discard functions.
- Don't make AI discard more cards than he/she has.
- Updated more discard calls to use new functions.
- Moved discardUnless functions to Player class. Updated calls. Removed from gameaction.Java.
- Moved AllZone.GameAction.mill to player class.
- Updated several discard function calls.
- Fixed Null Pointer Error in AF_Pump for AI activating non-targeted Pump Abilities.
- Fixed Burst of Energy card text.
- Fixed mill function calls.
- Deleted old code.
- Fixed thr AI not regaining priority after the stack empties during its turn.
- Fixed inputs that occur when spells are resolving. Hopefully this resolves any lingering issues that are similar.
- Fix for Auras that prevent creatures from untapping from always failing out of canPlay().
- Added End for Parsing to Undead Slayer
- Sun Titan now removes resurrected card from graveyard before adding to play. This fixes a bug that would cause ETB abilities to trigger twice.
- Added LQ pic url to Undead Slayer.
- Fixed another AI Error in AF_Pump.
- Added Regenerate as an AbilityFactory.
- Converted Death Ward and Revered Dead as examples.
- Moved sacrificePermanent function to Player class.
- Added TODO to AIPlayer.java.
- Fixed Kavu Scout.
- Fixed a bug with xcount used by stPump.
- Added Attached as restriction to getValidCard.
- Added a white Vigilance Meekstone theme.
- Added a RW multicolor theme.
- Updated some old themes.
- Fixed double period in WheneverKeyword CustomCounters Stack Description.
- Improved wording for PassPriority Input to be clearer.
- Added 2 Anti Black deck themes.
- Added a WR flying theme.
- Fix for Blight causing a ConcurrentModificationException.
- Fixed named section in hasProperty().
- Added PlayMain1 to the Moxen.
- Fixed abDrawCardsTgt (including Cephalid Broker, Cephalid Looter, Reckless Scholar).
- Fix how gaining priority as SAs are added to the Stack or SAs are resolved from the stack. Note: Triggered abilities will cause the owner of the top-most trigger to gain priority incorrectly. Triggered Abilities need to work differently for this to work per the rules.
- Mana Vault will now sit on the stack before resolving.
- Fix for Munga Wurm untapping, and cleanup of that section of code.
- Added a WG Oath of Druids theme.
- Update Phase Input borders for coloring. Declare Attackers is Red, Declare Blockers is Green, Other Combat is Orange, Main is Blue, Other Phases are Purple.
- Consolidated code from Player and GameAction classes related to sacrifice permanents.
- Converted Drowned, Drudge Skeletons, Walking Dead, Wall of Bone, Will o the Wisp, Niall Silvain, Elephant Graveyard, Horror of Horrors and Ragnar to AbilityFactory.
- Converted Cateran Overlord regen ability to AbilityFactory.
- Converted Regenerate to AbilityFactory.
- Added some SVars to existing cards.
- Added a green Elves theme.
- Updated cards to use regen AbilityFactory.
- Fixed Animate Dead.
- Groundwork for Targeting cards in non-Battlefield Zones.
- Fixed check for comparing PlayerZone to a String in canTarget.
- Added Corpse and P2P2("+2/+2") counters.
- Updated the VampiricEffects keyword to accept +2/+2.
- Converted Jungle Troll to AbilityFactory.
- Commented out code for RegenerateMe keyword. All of these cards have been converted to AbilityFactory.
- Updated spCounter code, based on Fork/Reverberate/Twincast code, so that any valid spell/ability on the stack can be targeted. Also added a "May-" prefix to the ExtraActions for Optional effects. (Usage: Insert "May-" without quotes after the targetplayer-prefix to specify an optional action) AI will still only target top spell on stack, though. Updated Vex as per above. It was *technically* incorrect but effectively correct. (The card draw is optional, where it wasn't before, but who would refuse?)
- Missed one line of code to make Counterspells fizzle if they target an otherwise valid spell that has "CARDNAME can't be countered."
- Fixes for Flashback so it properly removes the card from the game.
- Added Retrieve to AF_Fetch for Retrieving cards from your graveyard.
- Converted Hammer of Bogardan, Eternal Dragon, Undead Gladiator to AF_Retrieve.
- Fixed Undead Gladiator's Spell Description.
- Fixed Hell's Caretaker.
- Added some basic choosing to retrieveCanPlayAI (only for destination battlefield).
- Replaced GameActionUtil.showDialog() with showYesNoDialog(). Changed Prowess of the Fair and Fecundity to use showYesNoDialog().
- Minor code cleanup for Java warnings.
- Alter Spell.java to work properly with SA_Restriction.
- Convert Syphon Life to AF_LoseLife and added Retrace.
- Added a check so AI doesn't regenerate the same creature twice in a row.
- Parameterized Sets and Lists in QuestData and QuestData_BoosterPack. Parameterized some sets and lists to fix Java warnings. This is supported since Java 1.5. Parameterized Comparables.
- Updated ForgeProps.getFile(CARDS) -> ForgeProps.getFile(CARDSFOLDER) in a couple places (not main app code).
- Fixed text of Joraga Warcaller.
- Added PrecostDesc$ to some cards.
- Fixed Accumulated Knowledge not drawing the first card.
- Converted Ramosian Revivalist to AB$Retrieve.
- Made some corrections to GameActionUtil.showYesNoDialog() after further testing.
- Changed the code block for Chambered Nautilus, Saprazzan Heir and Drelnoch to call GameActionUtil.showYesNoDialog().
- Fixed error when opening deck editor.
- Fix some AF_Retrieve cards to limit to your graveyard.
- Added GainControl parameter for Retrieve.
- Freeze stack while Attackers and Blockers are being declared. These triggers should resolve during the Priority portion of that step.
- Shared Triumph and friends need to occur as a Static Ability to not cause an OutOfBounds Exception when the AI uses them.
- Finetuned spCounter with two new extra actions (RearrangeTopOfLibrary, a'la Aven Fateshaper, and RevealHand) and added new functionality to the Targets() restriction; it can now determine if the spell targets you as well as your cards.
- Changed the code block for Cinder Pyromancer to call GameActionUtil.showYesNoDialog().
- Added LQ pic urls to Discombobulate, Galvanic Blast, Hindering Light and Lay Bare.
- Commented out code that reads from cards.txt in TableSorter.java. It wasn't doing anything except using system resources.
- Fixed color of Dragon Broodmother tokens.
- Added Alternate Win/Lose into Player class
- Changed anything applicable to use the system instead of setting life to 0.
- Upkeep "you win" abilities now check condition on resolution as well.
- Bugfix for Milling not giving quest award.
- Test of Endurance was not considered an Alt Win Condition for Quest bonuses.
- Updated getValidCards call in Target_Selection to pass in Source Card.
- Converted Ezuri, Renegade Leader to AbilityFactory.
- Door to Nothingness AltLoseCondition was missed earlier.
- Improved how Colorless mana is paid.
- Added a first draft for counter checking support to isValidCard (now hasProperty).
- Converted Mad Auntie to AbilityFactory and keyword.
- Changed the code block for playCard_Enchantress_Draw() to call GameActionUtil.showYesNoDialog().
- Added AF_ZoneAffecting for things like Draw, Discard, Mill etc.
- Created Draw AbilityFactory.
- Converted Yawgmoth's Bargain to use Draw.
- Small fix for Fetch with Library as the destination.
- Fixed CanTarget(Card, Player) to call hasShroud.
- Changed the HQ pic url for Baron Sengir.
- Added a red Giant theme.
- Added a WR Giant theme.
- Missed a ! in canTarget() for the Player.
- Changed the code block for playCard_Kor_Firewalker() to call GameActionUtil.showYesNoDialog().
- Fixed LQ pic URL for Temple Elder.
- Added missing P/T to Hyperion Blacksmith.
- Corrected the miss-spelling of the type for Tectonic Instability.
- Fixed canPlay() for Siren's Call.
- Moved Sylvan Library code to GameActionUtil.java.
- Restricted Sylvan Library to cards drawn this turn.
- Fixed Fetch variable for Enlightened Tutor. TopOfLibrary doesn't exist. Destination$Library and LibraryPosition$0.
- This might be a problem for other cards that converted over?
- Fixed backwards AI targeting in sp/abTap/Untap keywords.
- Fixed counterspells when played by the AI.
- Converted the spTutor cards to SP$Fetch.
- Commented out the spTutor keyword entry.
- Cleanups and SetInfo equals bugfix.
- Improve Colorless Mana Payment when amount in ManaPool is <= to amount of Colorless Mana, or only one type of Mana in the pool.
- Cleaned up a couple unused imports.
- Suppressed a couple warnings.
- Added a UB Black Vise theme.
- Commented out the original CardFactoryUtil.upkeep_Wolf_Skull_Shaman() code block and pasted my own version right above the original version.
- Some changes for Kinship cards to have whole Ability sit on the stack.
- Converted Galvanic Blast to keyword.
- Added Metalcraft parameter to Count$.
- Changes to Thopter Foundry.
- Added initial AIPreference code.
- Changed MagicStack.push to .add outside of MagicStack.
- Added SetInfoUtil class for set lists and cross-reference with set codes. Bugfix in ReadCard - substring for SetInfo. Enabled random set-specific pictures.
- Minor fix to an ugly oversight in Count$Metalcraft.
- Fixed Albino Troll's types.
- Added the SVar SacMe to getCardPreference and some cards.
- Fixed a case where artifact creatures were able to block Argothian Pixies.
- Added missing LQ pic urls and rarity to Bramblesnap and Stone Giant.
- Added faceDown as a restriction to hasProperty.
- Fixed LQ pic URL for Sword of Body and Mind and Salvage.
- Added Random option to theme deck list.
- A small modification to fetchCanPlayAI.
- Added the keyword "Draw a card at the beginning of the next turn's upkeep."
- Minor changes to Wolf-Skull Shaman. Computer now reveals the top card of library only if it's type matches Wolf-Skull Shaman.
- Fixed the LQ pic url for Mind Ravel.
- Updated CardFactoryUtil.upkeep_Ink_Dissolver().
- Fixed AI choice with Modular.
- Fixed AI payment for upkeep costs.
- Updated CardFactoryUtil.upkeep_Leaf_Crowned_Elder().
- Added the optional parameter CostDesc to ability_Factory for irregular additional costs.
- Converted Natural Order to keyword.
- Fixed Mana Vortex. Sacrifice selection is now limited to lands player controls. If Mana Vortex counter trigger now checks that it is the Mana Vortex on the stack in resolve.
- If you write card codeblocks, please be aware that "TgtV" Target constructor is no longer used. Use Target(String message, String[] Valid) instead. Changed Target class to always use ValidCards, converted older keywords to follow the new format.
- Added AF_Tap, converted Burst of Energy and Mind Games.
- Milling check not negating return from cantLose().
- Fixed LQ pic URL for Stun.
- Removed explicit Lifelink check in Brion Stoutarm.
- Moved HandSize shenanigans into the Player class, tightened up the code overall.
- Fixed minor error in stack description for AF_Tap abilities.
- Changed "Draw a card at the beginning of the next turn's upkeep." to a delayed triggered ability.
- Updated CardFactoryUtil.upkeep_Wandering_Graybeard().
- Updated CardFactoryUtil.upkeep_Nightshade_Schemers().
- Cleaned up very old code related to losing life.
- Updated some payLife calls to be consistent.
- Let ForgePreferences create a new preferences file with the standard settings if one is missing.
- Deleted the .preferences file from the svn. (It will be created with standard values anyway.)
- Updated CardFactoryUtil.upkeep_Winnower_Patrol() and Winnower Patrol now uses counters.
- Added a check to the updated Kinship cards. Players will no longer automatically trigger the Kinship ability if their library is empty. Useful for games when the "Milling = Loss Condition" check box is unchecked.
- Fixed Merfolk Sovereign Error Exception.
- Converted Sejiri Merfolk to stPumpSelf.
- Made payLife conform more closely with the rules.
- Made sure player can pay 4 life in Sylvan Library code.
- Updated a couple places so you can pay all your life if you so desire.
- Updated CardFactoryUtil.upkeep_Sensation_Gorger().
- Added rarity for Bosh, Iron Golem.
- Fixed possible error in Fallen Empires storage lands if 0 counters are removed.
- Moved Targeting from SA to Target class. Added some backwards compatible code to pass along setTargets to Target if it exists.
- Added Multi-targeting capability. And updated current AFs (except Regenerate) to properly resolve for multiple targets.
- Added canPayLife(int lifePayment) to the payer class and made use of it in several places.
- Enabled spells with "up to" a number of targets.
- Updated two themes.
- Fixed Combat issues that were noticed through flanking. Blocking was changing mid-block because the Stack wasn't frozen.
- Added TradeUp Blocking situation for when the AI can kill a better creature and dying in the process.
- Fixed Wave Elemental.
- add first draft of Apache Ant build.xml file. This has been tested on FreeBSD 6.3 with Apache Ant 1.7.1 installed from ports.
to compile: ant
to clean: ant clean
to run: ant Forge
- Converted Wydwen, the Biting Gale to keyword.
- Added some missing LQ pic urls and rarities.
- Improved some of the CanPlayAI cost evaluations of the bounce, fetch and draw abilities.
- Added hostCard.setSVar("PlayMain1", "TRUE"); to Bounce abilities.
- Converted some more cards to AB$Bounce.
- Removing some debugging code in AI Blocking
- Fixed Bellowing Tanglewurm.
- Hidden keywords are now displayed separately as non-ability characteristics.
- Fixed a bug in getHiddenExtrinsicKeyword.
- adapted Muraganda Petroglyphs to only check for ability text.
- Lands enchanted by the opponent no longer stack.
- Fixed Intuition. Clicking on Cancel when this spell is cast by the AI would cause a null error. Changed getChoiceOptional() to getChoice().
- The AI will no longer enchant an island with Spreading Seas and similar cards.
- Added a blue Islandwalk theme.
- Fixed AF_Bounce handling of SubAbilities via the new Targeting.
- Player's EOT Phase will no longer autoskip.
- Fixed Exile by converting to AbilityFactory_Bounce.
- Changed these cards to AF_Bounce: Altar's Light, Aura Extraction, Boomerang, Caustic Rain, Celestial Purge, Cut the Earthly Bond, Deglamer, Deny Reality, Disempower, Disperse, Erase, Excommunicate, Eye of Nowhere, Fallow Earth, Forced Retreat, Hoodwink, Into Thin Air, Iona's Judgment, Regress, Repel, Repulse, Rescind, Revoke Existence, Second Thoughts, Surging AEther, Symbol of Unsummoning, Temporal Eddy, Temporal Fissure, Temporal Spring, Unmake, Time Ebb, Unsummon, Uproot and Wipe Clean.
- Fixed Exile as it had two spell descriptions.
- Added a Mill Ability Factory.
- Converted Vedalken Entrancer to AF_Mill. **We should convert anything we can since many Milling cards are causing Crashes when the AI uses them.
- Fix target of AF_Draw when AI is trying to Deck the Human.
- Fix for Genesis Upkeep ability not playing nice with the new Phase stuff.
- Fixing Wirewood_Hivemaster and Baru not attaching their abilities to the card that triggers them.
- Converting Search for Tomorrow to AF_Fetch (since it didn't seem to work before.)
- Moving Suspend down to postFactoryKeywords() so Spells with Ability_Factory don't clear out Suspend ability when trying to clear default "Spell" ability.
- Fixed the Elves theme.
- Converted Ambassador Laquatus, Millstone, Cathartic Adept, Glimpse the Unthinkable, Tome Scour and Tower of Murmurs to AB$Mill.
- Removed spells entries from cf sorceries.
- Minor edits to the stack desc for AF_Bounce.
- Changed these cards to AF_Bounce: AEther Mutation, Call to Heel, Clutch of the Undercity, Condemn, Last Breath, Recoil, Snap and Swords to Plowshares.
- Added AbilityFactory_Destroy.
- Added AbilityFactory_Token.
- Converted Acorn Harvest, Beast Attack, Call of the Herd, Carrion Call, Chatter of the Squirrel, Crush of Wurms, Dragon Fodder, Elephant Ambush, Empty the Warrens, Feral Lightning, Goblin Offensive, Goblin Scouts, Howl of the Night Pack, Hunting Pack, Icatian Town, Join the Ranks, Ordered Migration, Raise the Alarm, Reach of Branches, Roar of the Wurm, Skittering Invasion, Sosuke's Summons, Sound the Call, Spectral Procession, Spontaneous Generation, Spore Burst, Sprout, Storm Herd, Tidal Wave and Waylay.
- Updating AF_Destroy's Stack Description to handle multi-targeting.
- Fixed War-Torch Goblin.
- Code cleanup in CF_Sorceries.
- Converted all abMakeToken cards to AF_Token.
- Commented out the code blocks for spBounceTgt.
- Changed Capsize to use AF_Bounce.
- Added Sol's fix to the Pointer problem in sa.copy(). Cards with buyback that use AbilityFactory will now have the correct costs.
- Converted Flashback keyword to use Ability_Cost.
- Converted Dust to Dust and Hex to keyword.
- Added a UB Milling theme.
- Added IsCurse$True to some abilities.
- Fixed a bug in costchange not affecting costs like WW.
- Added first pass at AbilityFactory_GainControl.
- Fixed Crippling Fatigue and Thrill of the Hunt PT pumps.
- Added a TokenImage parameter to AF_Token.
- Took care of 1.5 incompatibilities.
- Added stack descriptions for DealDamage and Pump.
- Cleanup for Propaganda stuff.
- AI now actually pays for Genesis ability.
- Moved all parameter->xCount and optional parameter parsing inside AF_Token.
- Added trim() commands to AbilityFactory. We can now use " | " and " $ " in the list of params in order to make these more readable.
- Converted Academy Ruins and Volrath's Stronghold to keyword.
- Added spaces to the 48 cards that use AF_Bounce.
- Bugfix related to converting AF_Retrieve to Multi-targeting. Similar variable names were causing runtime errors.
- Edge case fixing for AIPlayer method and a couple input methods (i.e. where num == 0).
- Fixed Incendiary Command (last bit from Player class conversion.)
- Removed debug code from CardFactory.java.
- Added spaces to the cards that use AF_Token.
- Added Banshee (from The Dark). NOTE: There is a bit of a glitch before paying the X mana. You are prompted to pay a blank mana cost. Clicking on a mana-producer gets past this with no side-effects. Then, you can pay the X as expected, and the ability works as expected.
- Fixed Flashback cost to use abCost.toString() for better readability.
- Commented out the now un-used keyword-based code for abMakeToken() and spMakeToken().
- Fixed Drop of Honey not getting sacrificed right away when there are no creatures in play.
- Added spaces to the 5 cards that use AF_Retrieve.
- Fixed LQ pic for Wind Sail.
- Bugfix for skipping the first Input set during BeginPhase triggers. (Seen in Modular not triggering during combat and probably others.)
- Bugfix for madness not being able to activate during the Cleanup step. Cleanup step now repeats if Players somehow gain priority.
- Changed these cards to AF_Retrieve: Call to the Netherworld, Disentomb, Disturbed Burial, Raise Dead, Recover and Return to Battle.
- Added OpponentTurn as a restriction to AF's.
- Added spaces to the 25 cards that use AF_Token. This takes care of the missing AB$Retrieve cards.
- Combined Bounce Stack descriptions
- Added Stack Descriptions for AF_Retrieve.
- Fixed the 6 SP$Retrieve spells that I converted.
- Added X Mana Cost to Ability_Cost (AI will need work to improve how to use X, so for now RemAIDeck them.)
- Little fixes and updates.
- AI fix for Cumulative Upkeep payment.
- Changed these cards to AF_Retrieve: False Defeat, Resurrection, Unearth and Zombify.
- Fixed LQ pic URLs.
- Converted Icy Manipulator to AbilityFactory_PermState.
- Converted Time Elemental to AB$Bounce.
- Changed these cards to AF_Retrieve: Elven Cache, Recollect, Regrowth and Revive.
- Adding NextPhase() into Input_Cleanup. Sometimes the Cleanup phase was getting stuck after discarding.
- Fixed Modification Exception in Lure code.
- Arashi now has his first ability, using the new X in Ability_Cost.
- Converted Jandor's Saddlebags to AB_PermState.
- Converted Witch Hunter damage ability to AbilityFactory.
- Converted Seal of Removal to keyword.
- Converted Library of Alexandria to AbilityFactory.
- Added missing stack desc for SP$Draw AbilityFactory.
- Converted Ancestral Recall to AbilityFactory.
- Fixed NullPointerException when cancelling or leaving blank the Patriarch's Bidding prompt. Still not sure how it messed up the questData so bad.
- Removed now unused CardList and commented-out code from Patriarch's Bidding.
- Fixed PrecostDesc$ parameter for Shinen of Fear's Chill's Channel ability.
- Target addTarget bugfix.
- Banshee, Korlash, Heir to Blackblade bugfix.
- Method names to lowercase refactoring.
- Fixed a case for ManaCost where it would throw an exception if X was the only mana part in a cost.
- Fixed Banshee's X-payment glitch.
- Improved the AI of AF Bounce a little.
- Changed these cards to AF_Retrieve: Breath of Life, Nature's Spiral and Reborn Hope.
- Added DestroyAll to AF Destroy.
- Converted Magus of the Disk and Nevinyrral's Disk to keyword.
- Direct Damage spells that use TgtP can now only Target Planeswalkers you don't control.
- Little fixes and updates.
- Added Sol's fix to the SP$pump bug.
- Converted Armageddon and Revages of War to AF_DestroyAll.
- Added RemoveCounter to AbilityFactory_Counters.
- The Valid card restrictions YouCtrl, Other will now be passed down to hasProperty. This enables using the X SVar of the source card.
- Added spaces to the cards that use AF_Fetch.
- I mistakenly overwrote the correct fix to the AF $Pump bug and this places the overwritten material back into the code base. Sorry for my error.
- Fixes for some Upkeep Abilities that care about hand size. It should be determined on resolution, not "locked in" when the ability triggers.
- xCount was passing in source Card, but this.getSVar(). Fixed.
- Added SP/AB$Proliferate to AbilityFactory (copied all proliferate code from GameAction.getProliferateAbility).
- Re-check the number of creatures in play during resolve for Drop of Honey and Porphyry Nodes.
- Added check for valid targets in resolve for The Abyss.
- Converted Wrath of God and Zuran Orb to Ability Factory.
- Added spaces to the 76 cards that use AF_Pump.
- When AF_Bounce targets a face down card, it now says "Morph" instead of the actual cardname.
- Converted Strip Mine to AF_Destroy.
- Fixed Spell text for Disenchant.
- Added Counters.DOOM to isNegativeCounter().
- Exile is now a Destination for Fetch. (Jester's Cap could use Fetch, except we need a flag if the Target Player does the searching, or Target Player gets their library searched.)
- Small tweaks in GainControl for Spells.
- Bugfix for Sanity Grinding for if Library.size() < Mill amount.
- Deleted unused LifeLink function.
- Fixed a bug with the new hasProperty.
- Added the restriction ControllerControls, YouOwn and YouDontOwn to hasProperty.
- Hidden keywords are now called non-ability features.
- Added remaining ability cost reducers.
- Fixed Feldon's Cane description.
- "Draw a card at the beginning of the next turn's upkeep." now triggers on each upkeep not just your own.
- Added a WUBRG Leyline of Singularity theme.
- Fixed AI to be able to retrieve cards from human graveyard.
- Added Exile as destination to Retrieve.
- Converted False Mourning, Reclaim and Salvage to AF's SP$Retrieve.
- Converted Death Cultist to keyword.
- Added spaces to the 11 cards that use AF_Mill.
- Added spaces to the 12 cards that use AF_Tap.
- Added (re-added?) spaces to the 29 cards that use AB$Bounce.
- Added upkeep Demonic Hordes code.
- Added (re-added?) spaces to the 29 cards that use AB$Bounce.
- Fixed targeting in cards played for free.
- Bugfix AF_Bounce Null Pointer Error in Stack Description.
- Added clearFirstSpellAbility and addFirstSpellAbility into Card when we want the default SpellPermanent/Spell to be cleared but keep other things added on the card.
- Changed enPump to use the above firstSpellAbility functions.
- Changed Targeting to remove previously targeted cards from it's choice list for use with Graveyard targeting.
- Added spaces to 5 cards that use SP$Bounce.
- Sort Implemented/Missing Set Lists before printing them out.
- Added spaces to the 8 cards that use AF_Untap.
- Added spaces to the 2 cards that use AF_Fog and to the 3 cards that use AF_Control.
- Deleted migrated Python Script, which was for old cards.txt formatting.
- Added new setInfo Python Script for Rob's Set/Image work.
- Added spaces to the 19 cards that use AF_GainLife.
- Added spaces to the 4 cards that use AF_LoseLife.
- Added spaces to the 36 cards that use AF_Counter.
- Updated Pendelhaven.
- use the provided SpellDescription if it exists for the stack description in createSpellDestroyAll instead of the default generic text of "destroy permanents".
- Converted Seasinger and Old Man of the Sea to AB$GainControl.
- Fixes to card txt files.
- Added spaces to the 1 card that use AF_Counter and to the 1 card that use AF_Proliferate.
- Added spaces to 10 cards that use AB$Destroy and AB$DestroyAll.
- Added spaces to 25 cards that use SP$Destroy or SP$DestroyAll.
- Added spaces to 8 cards that use AF_Draw.
- Added spaces to the cards that use AF_Regenerate.
- Removed apostrophe from Arcum's Sleigh in a couple behind the scenes places. This follows the pattern of other text files.
- Added spaces to the 50 cards that use AF_DealDamage.
- Converted the tap ability of Thornscape Apprentice to AF.
- Several minor edits and this is the end of the add spaces to the cards using AF sa's project. I think that I found all of them.
- Changes to AbilityFactory_GainControl add TapOnLose - target is tapped when you lose control add AddKWs - KWs to add when you gain control and remove when you lose control add lose condition of "EOT" no longer specificall checks value of Untap param, just presence.
- Changed hasProperty ControllerControls[type] to check cards for this, instead of source. This fixes Seasinger targeting.
- This fix adds the trailing space character to the PrecostDesc and the CostDesc.
- Converted Act of Treason, Slave of Bolas and Threaten to AF_GainControl.
- Fixed warning in TableSorter.java.
- Replaced the emdash on three cards with a hyphon.
- Converted these cards to AF_Retrieve: Call to Mind, Deja Vu, Relearn and Sage's Knowledge.
- Changed these cards to AF_Retrieve: Argivian Find, Argivian Restoration, Boggart Birth Rite, Reconstruction and Ritual of Restoration.
- Take Morph into account in the stack description of AF_GainControl.
- Converted Memnarch's gain control ability to AF_GainControl.
- Initial SubAbility work: DealDamage, GainLife, Draw, Mill all can now be called as a SubAbility and can call SubAbilities.
- Target_Selection will now Target for Parent ability and each subAbility that requires it.
- Stack will fizzle if ALL Targets are illegal on resolution.
- Merged Orcish Cannonade, Psionic Entity to AF+SubAbility.
- Target Prompt now Optional in AFs.
- Fix for GainLife Drawback.
- Added LoseLife SubAbility handling.
- Converted Death Cultist to SubAbility.
- Fixed Slave of Bolas. It doesn't really have a LoseControl condition.
- Added support to AF_GainControl to destroy target on certain conditions.
- Added stack descriptions to AF_Regenerate.
- Small fixes to card txts.
- Converted both abilities of Sliver Overlord to AF (GainControl and Fetch.)
- Fixed for Meishin, the Mind Cage. It should be checking Hand, not Graveyard.
- Fixed typo in Vedalken Shackles.
- Improvements to the AI of dealDamage.
- AI Drawbacks for Draw and DealDamage should now functionally target.
- AI improvements to the Pump AF.
- AI improvements to the DealDamage AF.
- Some work on total damage prevention.
- Improved AI of dealDamage once again.
- Added AI targeting for Mill's SubAbility.
- Added some X handling for AF_Mill.
- Added the optional parameter NoPrevention to DealDamage.
- Updated Death's Duet to AF_Retrieve.
- Changed where Null check for DrawTarget occurs.
- The AI now takes NoPrevention into consideration when targeting.
- Added NoPrevention to Combust.
- Fixed Elven Fortress and Manabarbs.
- Fixed Fluctuator.
- Moved calculateAmount to AbilityFactory so all AF_ can use the same function.
- Fixed creature type of Hivis.
- Changing Parameter name for calculateAmount().
- Converting MinTarget and MaxTarget to strings so they can be variable amounts.
- Merged Footbottom Feast to AB_Retrieve.
- Bugfix in python Script where Set Abbreviations that end in 'en' like Zendikar[Zen] wouldn't parse correctly.
- Prepared everything to implement damage prevention by amount.
- Fixed default value for debug window deck list.
- Untap SubAbility code is not ready yet.
- Improved the AI for AF_ZoneAffecting.drawCanPlayAI(). The AI will no longer draw cards if it makes the computer's handsize > maxhandsize.
- Bugfix for Portal cards in Python Script. They were just grabbing any old Portal in the search.
- Added printing of card name to console as each card is processed.
- Fixed Ancestral Recall, you can no longer target a Planeswalker.
- Converted these cards to AF_Draw: Brilliant Plan, Concentrate, Counsel of the Soratami and Divination.
- Converted these cards to AF_Retrieve: Life from the Loam, Macabre Waltz, Reinforcements and Urborg Uprising.
- Removed the commented-out spReturnTgt keyword from a number of card text files.
- Commented-out the spReturnTgt keyword code in CardFactory.
- Converted these cards to AF_Draw: AEther Spellbomb, Ambition's Cost, Ancient Craving, Archivist, Armistice, Attunement, Benalish Heralds, Bonded Fetch, Book of Rass, Brainstorm, Brass Secretary, Careful Study, Carnage Altar, Catalog, Cephalid Broker, Cephalid Looter, Cephalid Scout, Compulsion, Compulsive Research, Control of the Court, Courier's Capsule, Crookclaw Elder, Cruel Bargain, Dream Cache, Emmessi Tome, Etherium Astrolabe, Goblin Lore, Greed, Grixis Battlemage, Hapless Researcher, Harmonize, Infernal Contract, Inspiration, Inspired Sprite, Jace's Ingenuity, Jalum Tome, Jandor's Ring, Jayemdae Tome, Lifespark Spellbomb, Magus of the Bazaar, Mind Stone, Mikokoro, Center of the Sea, Mindless Automaton, Moriok Replica, Necrogen Spellbomb, Night's Whisper, Niv-Mizzet, the Firemind, Opportunity, Phyrexian Vault, Pyrite Spellbomb, Reach Through Mists, Reckless Scholar, Riptide Director, Sage of Lat-Nam, Scarecrone, Scepter of Insight, Sea Gate Loremaster, Seaside Haven, Serum Tank, Serum Visions, Sift, Sign in Blood, Slinking Skirge, Soratami Cloudskater, Staff of Domination, Sunbeam Spellbomb, Temple Bell, Think Twice, Thirst for Knowledge, Thoughtcast, Thought Courier, Tidings, Touch of Brilliance, Tower of Fortunes, Treasure Trove, Trigon of Thought, Unfulfilled Desires, Urza's Blueprints, Vision Skeins, Wistful Thinking, Words of Wisdom, Xira Arien.
- Converted obsessive search, fixed null error in SA_Reqs.
- Updates and fixes to damage prevention.
- Added the keyword Absorb.
- More AI improvements to handle damage prevention.
- Added the keyword PreventAllDamageBy.
- Converted 5 cards to this keyword.
- Improvements to the Combat AI.
- Bugfix; Object.equals(null) is always false and if the reference is null then you get NullPointerException as there's no methods on null.
- Added Shrine to the list of non-creature types and renamed isCreatureType to isACreatureType.
- Converted Bazaar of Baghdad to AB$Draw.
- Added capability for most of the AFs to have a SubAbility (not yet being a subAbility).
- isABasicLandType change missed CF_Auras. Fix build break.
- Lowered Bonus Credits for Poison Counter win and Milling Win, added to Prefs file.
- For AF_Draw, the tgtP was incorrectly being sent in for old Drawback code.
- Fixed the card txt issues PhoenixAvenger mentioned.
- Fixed Guardian Seraph.
- Converted Vampiric Sliver to stPump.
- Added the keyword "CARDNAME can't be blocked by more than one creature."
- Converted Siege-Gang Commander to AB$DealDamage.
- Fixed Nocturnal Raid and Holy Light.
- Added a black The Rack theme.
- Bugfix for Azami, Lady of Scrolls not clearing tappedList before putting Ability on stack.
- Little updates and cleanup in ComputerUtil_Attack2.
- Cards discarded as a cost will now be recorded in the SA and cleared at resolution.
- Altered DealDamage to use AF.calculateAmount().
- Fixed AEther Flash when AI has it in play. It was damaging human, not the creature that entered play. Changed this to card-specific code.
- Added SetInfo to card data files.
- More fixes for the SetInfo Script.
- Added random set assignment for the computer in constructed New Game.
- Adding Game Phase File Menu for stopping at Phases in Display4. (This would be way more useful if it can be saved to a file, but I couldn't find where that would happen.)
- SetInfo Script will now skip .svn file it will also only overwrite data files that it has grabbed Set Info for.
- Pump and Draw can now handle variable Amounts for attack/defense boost or cards drawn.
- Removed Braingeyser from AI Decks until AF_Draw can learn how to play it better. (The Code block was forcing the Human to draw anyway.)
- Added Targeted to AF.calculateAmount().
- Improved targeting in AF_GainControl.
- Removed targeting stuff compy already controls (previously, was only checking isValid() or whatever it is now).
- Removed targeting cards with SVar:RemAIDeck set.
- Specifically check for best creature, artifact, land or enchantment depending on what it can get and what's available.
- AI now uses max hand size when deciding whether to draw or not to draw a card when using the Chambered Nautilus, Saprazzan Heir or Drelnoch ability.
- AI now uses max hand size when deciding whether to draw or not to draw a card when using the Verduran Enchantress, Mesa Enchantress or Kor Spiritdancer ability.
- Improvements to AF_GainControl and AI decisions.
- AI will choose not to untap (if possible) a card that is controlling another when given the opportunity (like Old Man of the Sea).
- If it is not controlling, then it will untap.
- "+Controlling: <target>" added in CardDetailPanel.
- Fixed possible StackOverflowException in AF_GainControl and friends.
- Displays set membership and rarity in color in CardDetailPanel.
- Only sets a random set code for cards that do not already have one. Enables the possibility that cards generated in set-specific boosters can maintain their set code.
- Added getCurSetRarity method.
- Converted these cards to AF_Draw: Airborne Aid, Biomantic Mastery, Borrowing 100,000 Arrows, Collective Unconscious, Flow of Ideas, Mind Spring, Ribbons of the Reikai, and Theft of Dreams. These 8 cards will no longer show up in randomly generated decks. They are situational and the AI can not use them effectively.
- Convert Spitting Hydra.
- Changed Chronatog's ability to Ability_Activated.
- Converted Steady Progress to AF_Draw.
- Fixed the LoseLife StackDescription.
- Converted Minions' Murmurs to AF_Draw.
- Bugfix for Suspend trying to move Spell to Stack that's already moved
- Convert Ancestral Vision to AF_Draw and remove from AI decks since Suspend currently returns false.
- Bug where Scars of Mirrodin cards getting labeled as both SOM and Mirrodin was around when Rob was migrating to SetInfo. The issue is already fixed, but was around long enough to do some damage. For the few cards that happened to be in both, the image is now fixed.
- Added a mechanism to trigger a sacrifice at EOT if an ability has been activated a given number of times. This is specified by ActivationNumberSacrifice. The only cards that could use this are Dragon Whelp, Farrelite Priest, Initiates of the Ebon Hand, and Nalathni Dragon.
- Improved the AI attack decisions.
- Commented-out the now unused abDrawCards and spDrawCards keyword code blocks.
- Converted these cards to AF_GainLife: Angel's Mercy, An-Havva Inn, Bargain, Blossoming Wreath, Bottle Gnomes, Bountiful Harvest, Braidwood Cup, Congregate, Dark Heart of the Wood, Dosan's Oldest Chant, Festival of Trokin, Folk Medicine, Fountain of Youth, Fruition, Gerrard's Wisdom, Guardian of Cloverdell, Gutless Ghoul, Heroes Remembered, Heroes' Reunion, Invigorating Falls, Joyous Respite, Kiss of the Amesha, Landbind Ritual, Mournful Zombie, Natural Spring, Nourish, Peach Garden Oath, Presence of the Wise, Ravenous Baloth, Rejuvenate, Rejuvenation Chamber, Renewed Faith, Renewing Dawn, Reviving Dose, Sacred Nectar, Silent Attendant, Soothing Balm, Spike Feeder, Spring of Eternal Peace, Staff of Domination, Starlight, Starlight Invoker, Sunbeam Spellbomb, Sylvan Bounty, Tanglebloom, Tower of Eons, Trigon of Mending, Umezawa's Jitte, Vital Surge, Wandering Stream, Wellwisher, Whitesun's Passage, Zuran Orb.
- Converted 3 cards to AF DealDamage.
- Added Discard to AbilityFactory_ZoneAffecting. Convert Deception, Fill with Fright, Hymn to Tourach, Mind Twist, and Wit's End.
- Fixed Pyromania and Zuran Spellcaster misspellings.
- Converted to AbilityFactory: Goblin Rimerunner, Golgari Rotwurm, Horseshoe Crab, Jamuraan Lion, Minister of Impediments, River Merfolk, Shield Mate, Spitting Earth, Trigon of Mending, Trigon of Rage, Tumble Magnet, Wall of Mulch.
- Commented-out the now unused code blocks for abGainLife and spGainLife.
- Fixed Isochron Scepter putting cards imprinted on it by AI into Humans Exile-zone.
- Added RevealYouChoose discard mode to AB/SP$Discard ane converted Nightmare Void as an example.
- Little combat AI improvements.
- Verified DiscardValid works as expected. Converted Duress as an example.
- Converted Brainbite, Coercion, Distress, Encroach, Hymn to Tourach, Mind Knives, Mind Peel, Mind Ravel, Mind Rot, Mind Shatter, Mind Sludge, Mindstab, Mind Twist, Mind Warp, Ostracize, Psychic Spear, Shattered Dreams, Specters Wail, Stupor, Surging Dementia, Thoughtseize, Three Tragedies, Unburden, Unhinge, Unnerve, Voices from the Void, Waking Nightmare, Wheel and Deal to SP$Discard.
- Minor updates to 14 SP$Pump cards.
- Provide warning message if an AI deck contains cards with RemAIDeck=True.
- Added DiscardUnless functionality to AB/SP$Discard.
- Converted Wrench Mind to AF.
- All spDiscard cards have been converted to AbilityFactory. Commented out code for spDiscard in CardFactory.java.
- Converted Disrupting Scepter from hardcoded to AB$Discard.
- Converted Gwendlyn Di Corci to AF Discard.
- Converted Necrogen Spellbomb to AB$Discard.
- Converted Cao Cao, Lord of Wei to AB$Discard.
- Converted Dimir Guildmage to AF for Draw and Discard.
- Fixed the LQ pic url for Splitting Headache.
- Fixed stack description for Tectonic Instability.
- Added RemAIDeck to Esper Charm.
- Converted Slate of Ancestry to AB$Draw.
- Now supports pictures using MWS filenames and folders.
- Fixed error with the sets array in SetInfoUtil.
- Added AbilityFactory for counterspells.
- Added DB$ and Subability$ functionality to AF_Token. Based on AF_DealDamage, hopefully correct. No card uses it yet.
- Converted these cards to AF_Pump: Accelerate, Accelerated Mutation, Afflict, Aggressive Urge, Angelic Blessing, Assault Strobe, Bewilder, Bloodcurdling Scream, Breach, Brute Force, Bull Rush and Cloak of Feathers, Burning Cloak, Colossal Might, Constricting Tendrils, Daring Leap, Darkblast, Disfigure, Disorient, Dizzy Spell, Double Cleave, Drag Down, Enrage, Fanatical Fever, Feeding Frenzy, Fend Off, Ferocious Charge, Fists of the Anvil, Fit of Rage, Fleeting Distraction, Flowstone Strike, Gaea's Might, Gerrard's Command, Ghoul's Feast, Giant Growth, Grasp of Darkness, Guided Strike, Howl from Beyond, Howling Fury, Hunger of the Nim, Infiltrate, Inner Calm, Outer Strength, Inspirit, Iron Will, Irradiate, Jump, Kindled Fury, Lace with Moonglove, Last Gasp, Leap, Lose Hope, Might of Alara, Might of Oaks, Might of the Masses, Mighty Leap, Monstrous Growth, Muscle Burst, Nameless Inversion, Nighthaze, Predator's Strike, Primal Bellow, Pull Under, Riding Red Hare, Sangrite Surge, Screaming Fury, Seize the Initiative, Shadow Rift, Shriek of Dread, Shrink, Silk Net, Slaughter Cry, Stabbing Pain, Stand Firm, Strength of Cedars, Sudden Strength, Tainted Strike, Tel-Jilad Defiance, Thunder Strike, Touch of Invisibility, Trailblazer, Unnatural Speed, Untamed Might, Vault Skyward, Veteran's Reflexes, Wielding the Green Dragon, Wildsize and Wirewood Pride, Withstand Death.
- Minor edits to several AB$Pump cards.
- Changed TgtP to ValidTgts$Player for a couple cards.
- AF_Counter - Destination was not being ignored if it could target SpellOrAbility. Now, Destination is ignored if it does in fact target an ability.
- Deprected method used by spCounter. Anything new should use AbilityFactory.
- Renamed AbilityFactory_Counter to AbilityFactory_CounterMagic.
- Converted these cards to AF_Pump: Coral Helm, Dauthi Embrace, Flying Carpet, Fyndhorn Bow, Ghitu War Cry, Heartwood Shard, Iron Lance, Jabari's Banner, Narcissism, Need for Speed, Noble Steeds, Power Matrix, Scale of Chiss-Goria, Seal of Strength, Skarrg, the Rage Pits, Sunhome, Fortress of the Legion, Sustenance, Tooth of Chiss-Goria, Tower of Champions, Tower of the Magistrate, War Chariot.
- Fixed exception when AI tried to cast Phantasmal Terrain or Convincing Mirage.
- Updated CONflux set codes to ConFluX.
- Converted these cards to AF_Pump: Adarkar Sentinel, Advanced Hoverguard, AEtherflame Wall, Akroma, Angel of Fury, Andradite Leech, Angelfire Crusader, Arcades Sabboth, Atog, Auratog, Avatar of Fury, Aven Flock, Balshan Collaborator, Basalt Gargoyle, Battlefield Percher, Blistering Dieflyn, Blockade Runner, Boreal Griffin, Breathstealer, Burning Shield Askari, Capashen Knight, Capashen Templar, Carrion Ants, Cavern Crawler, Cavern Thoctar, Chameleon Colossus, Char-Rumbler, Chartooth Cougar, Chilling Shade, Cinder Shade, Cloudheath Drake, Cobalt Golem, Crashing Centaur, Cromat, Crowd Favorites, Crypt Ripper, Cursed Ronin, Darkling Stalker, Darklit Gargoyle, Dauthi Mercenary, Deathknell Kami, Deeptread Merrow, Dirtwater Wraith, Dragon Engine, Dragon Tyrant, Dreadwing, Dross Hopper, Duergar Cave-Guard, Dungeon Shade, Ebony Treefolk, Emerald Dragonfly, Enslaved Scout, Femeref Knight, Feral Animist, Ferrovore, Fetid Horror, Fiery Hellhound, Firefly, Firescreamer, Flame Spirit, Flamekin Brawler, Flowstone Crusher, Flowstone Giant, Flowstone Hellion, Flowstone Mauler, Flowstone Shambler, Flowstone Thopter, Flowstone Wall, Flowstone Wyvern, Folk of the Pines, Foratog, Foxfire Oak, Frost Raptor, Frozen Shade, Furnace Spirit, Furnace Whelp, Ghostly Changeling, Giant Crab, Glimmering Angel, Glintwing Invoker, Goblin Balloon Brigade, Granite Gargoyle, Hellkite Overlord, Hematite Golem, Henchfiend of Ukor, Henge Guardian, Hoar Shade, Honor Guard, Hooded Kavu, Hopping Automaton, Hyalopterous Lemure, Igneous Golem, Inferno Titan, Ironclaw Buzzardiers, Jodah's Avenger, Kavu Glider, Keeper of Kookus, Killer Bees, Kitsune Loreweaver, Kjeldoran Outrider, Knight of Dawn, Knight of Stromgald, Kranioceros, Leaping Lizard, Lightning Dragon, Lionheart Maverick, Lithatog, Llanowar Cavalry, Loch Korrigan, Lodestone Myr, Looming Shade, Loxodon Stalwart, Malachite Golem, Manta Riders, Mantis Engine, Marsh Lurker, Megatog, Merrow Wavebreakers, Mesa Falcon, Minotaur Illusionist, Molten Ravager, Moonglove Changeling, Moonwing Moth, Morphling, Nantuko Shade, Nightwing Shade, Nirkana Revenant, Noble Panther, Order of Leitbur, Order of the Ebon Hand, Order of the White Shield.
- Converted all cards that use abDamage without a drawback to AF_DealDamage.
- Minor AI fix on Rite of Replication.
- Reverted ImageCache to fix slow down in game when no card images are present. DeckEditor and QuestDeckEditor now attempts to display the most recent printing of the card. Loading DeckEditor screens will take longer as it does the set sorting. If set image can't be found, attempt to load from pics folder. If that can't be found, attempt to load none.jpg. (get none.jpg from Set Image thread.)
- Fixed That Which Was Taken ability text.
- Added SVar:RemAIDeck:True to Mortal Wound.
- Cleaned up code for Kjeldoran Outpost.
- This fixes the broken if-else if chain in various class files.
- Fixed toughness for Veteran Armorer.
- Code cleanup in Static Effects code (cardToEffectsList and commands.put stuff.)
- Updating SetInfo Script to use CFX instead of CON.
- Adding SetInfo data for some recently added cards including the 6 cards that were unable to be parsed by the SetInfoScript.
- Fixed a bug in GameActionUtil, for execute damage effects - poisonous - it was checking startsWith to get a list of keywords, but contains for adding to stack. This caused Poisonous to happen twice for the stPumpAll keyword and Poisonous 1 keyword on Virulent Sliver itself.
- Code cleanup/consolidation in GameActionUtil.java.
- Converted Winged Sliver, Synchronous Sliver, Talon Sliver, Fury Sliver, Muscle Sliver, Kongming, "Sleeping Dragon", Might Sliver, Bonesplitter Sliver, Crystalline Silver, Plated Sliver, Virulent Sliver, and Watcher
Sliver, Essence Sliver, Horned Sliver, Sidewinder Sliver, Sinew Sliver, Blade Sliver, Heart Sliver, Reflex Sliver, Sliver Legion, Captain of the Watch, Wizened Cenn, Aven Brigadier, Privileged Position, Levitation, Concordant Crossroads, Mass Hysteria, Fervor, Madrush Cyclops, Zuberi, Golden Feather, Sun Quan, Lord of Wu, Lovisa Coldeyes, Kinsbaile Cavalier, Elvish Archdruid, Elvish Champion, Death Baron, Cemetary Reaper, Knight Exemplar, Lord of the Undead, Scion of Oona, Veteran Swordsmith to stPumpAll keyword.
- Converted Radiant, Archangel to stPumpSelf keyword.
- Fixed Stuffy Doll not dealing damage to opponent when it receives damage from blocking a creature.
- Fixed example and description in AF_CounterMagic since Graveyard is default Destination.
- Fixed some missing Stack Descriptions for older keywords that used Target.
- Fixed card text for Verdant Force.
- Minor performance improvement for static effects.
- Fixed Galvanic Blast typo that prevented it from dealing damage.
- It is a day that will live in irony. Glorious Anthem - the namesake for all static effects codeblocks - has been converted to stPumpAll keyword.
- Converted Gaea's Anthem, Absolute Grace and Absolute Law to stPumpAll keyword.
- Bugfix for -X situation that caused a crash. Now strips out the minus sign before searching for Variable amount in AFs.
- Added Stop at Phases to Display3.
- Added Phase Stops preferences to ForgePreferences.
- Readability improvement in StaticEffects.java.
- Converted Darksteel Forge, Goblin Warchief, Knighthood, Serra's Blessing, Rage Reflection, Roughshod Mentor, Shadow Sliver, Sunken City, Hidden Path, Spinneret Sliver, Spitting Sliver, Stronghold Taskmaster, Thistledown Liege, Urborg Shambler, Akroma's Devoted, Anaba Spirit Crafter, Ascendant Evincar, Blessed Orator, Bloodmark Mentor, Boartusk Liege, Corrosive Mentor, Creakwood Liege, Cumber Stone, Day of Destiny, Deepchannel Mentor, Dread of Night, Fires of Yavimaya, Flowstone Surge, Fountain Watch, Glen Elendra Liege, Intimidation, Kavu Monarch, Long Forgotten Gohei, Lumbering Satyr, Murkfiend Liege, Primal Rage, Hanna's Custody, Righteous War, Song of Serenity to stPumpAll keyword.
- Converted Helix Pinnacle's counter-adding to AF_PutCounter.
- Fixed March of Souls giving you Spirit tokens even if it can't destroy your creatures (by way of Elspeth's ultimate for instance).
- Fixed C/P error in Fires of Yavimaya.
- Converted Stalwart Shield-Bearers to stPumpAll keyword.
- Converted Akki Underling and Deathmask Nezumi to stPumpSelf keyword.
- Converted Steel of the Godhead to stPumpEnchanted.
- I was able to convert an additional 101 more abPump cards to AF_Pump, but the rest will have to wait until after the upcoming beta release.
- Converted Kaysa, Meng Huo, Barbarian King, Tolsimir Wolfblood, Squirrel Mob, Knight of the Reliquary, Master of Etherium, Undead Warchief, Yavimaya Enchantress, Eladamri, Lord of Leaves, Honor of the Pure, Jacques le Vert, Daru Warchief, Imperious Perfect, Castle, Chainer, Dementia Master to stPumpAll keyword.
- Converted Mystic Enforcer, Kor Duelist, Castle Raptors, Giant Tortoise to stPumpSelf keywords.
- Renamed newGUICheckbox to be accurate for what it does.
- Moved Display settings for Quest Assignments to use the GUI checkbox for Display settings since it was ignored previously. This also fixes Phase settings being ignored.
- Little fixes to 3 card txts.
-

Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge 11/30/2010 (unofficial BETA) version
by Sloth » 30 Nov 2010, 12:42
And the last minute fix price goes to .... me!Chris H. wrote:This version is based upon the revision # 3973 which is found on our SVN.
Thanks for the release Chris!
-

Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Forge 11/30/2010 (unofficial BETA) version
by timmermac » 30 Nov 2010, 13:26
Link is missing?
"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
Re: Forge 11/30/2010 (unofficial BETA) version
by Chris H. » 30 Nov 2010, 13:35
`timmermac wrote:Link is missing?
You will notice that my two messages still have their placeholder statement in place. The archive is now being uploaded to MediaFire but it will take awhile as I only have modem dial up. It is slow and things like this take some time.
-

Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge 11/30/2010 (unofficial BETA) version
by timmermac » 30 Nov 2010, 13:39
Aha. Oops. 

"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
Re: Forge 11/30/2010 (unofficial BETA) version
by Chris H. » 30 Nov 2010, 14:52
Hmm, MediaFire is having problems. It now says that total progress is 100% and the uploading stopped almost 1/2 hour ago. I canceled the upload and went to "My File Listing" and it is there. Could some kind soul with high speed access download, uncompress and take it for a spin?
The archive may be OK itself. This may just be a problem with MediaFire tranferring me to my files and it got stuck. I would like a quick answer or I will have to try re-uploading at dial up speed. Ugh.
The archive may be OK itself. This may just be a problem with MediaFire tranferring me to my files and it got stuck. I would like a quick answer or I will have to try re-uploading at dial up speed. Ugh.
-

Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge 11/30/2010 (unofficial BETA) version
by Hellfish » 30 Nov 2010, 14:53
Downloading... EDIT: Done! Works great! 

Last edited by Hellfish on 30 Nov 2010, 15:01, edited 1 time in total.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-

Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Forge 11/30/2010 (unofficial BETA) version
by Sloth » 30 Nov 2010, 14:57
I just downloaded it and it works fine. I also checked the number of card txt files and they are complete.Chris H. wrote:The archive may be OK itself. This may just be a problem with MediaFire tranferring me to my files and it got stuck. I would like a quick answer or I will have to try re-uploading at dial up speed. Ugh.
-

Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Forge 11/30/2010 (unofficial BETA) version
by Chris H. » 30 Nov 2010, 15:06
Ah, what a relief. Thank you guys.
I will now edit the first two messages.
I will now edit the first two messages.
-

Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge 11/30/2010 (unofficial BETA) version
by slapshot5 » 30 Nov 2010, 15:39
I would like to call out a few of the bigger changes/more complicated things that could use a testing focus. There have been a few major changes behind the scenes, but the user should see no difference. Here is a hit-list of things to test for the twisted mind:
1) Please pay special attention to the following cards: Abjure, Daring Apprentice, Douse (and AI use thereof)
2) any regeneration abilities/spells (including AI use thereof)
3) Gain control effects - specifically Seasinger, Old Man of the Sea, Threaten, Slave of Bolas, Aladdin, Magus of the Unseen (including AI use thereof)
Also,
4) Some cards are just complicated to handle: Candelabra of Tawnos, Sylvan Library, Mana Vortex, All Hallow's Eve, Armageddon Clock, Bazaar of Wonders, Death Cloud
5) any spells/effects/costs that cause/require discarding a card(s)
6) Incendiary Command should be working again
Please post bugs in the bugs thread.
Thanks to Chris for putting this release together.
And a special thank you to our users and testers.
-slapshot5
1) Please pay special attention to the following cards: Abjure, Daring Apprentice, Douse (and AI use thereof)
2) any regeneration abilities/spells (including AI use thereof)
3) Gain control effects - specifically Seasinger, Old Man of the Sea, Threaten, Slave of Bolas, Aladdin, Magus of the Unseen (including AI use thereof)
Also,
4) Some cards are just complicated to handle: Candelabra of Tawnos, Sylvan Library, Mana Vortex, All Hallow's Eve, Armageddon Clock, Bazaar of Wonders, Death Cloud
5) any spells/effects/costs that cause/require discarding a card(s)
6) Incendiary Command should be working again
Please post bugs in the bugs thread.
Thanks to Chris for putting this release together.
And a special thank you to our users and testers.
-slapshot5
- slapshot5
- Programmer
- Posts: 1391
- Joined: 03 Jan 2010, 17:47
- Location: Mac OS X
- Has thanked: 25 times
- Been thanked: 68 times
Re: Forge 11/30/2010 (unofficial BETA) version
by weirdingway » 30 Nov 2010, 15:46
Holy crap that's a lot of bug fixes. HUGE THANKS
- weirdingway
- Posts: 57
- Joined: 19 Nov 2009, 12:39
- Has thanked: 0 time
- Been thanked: 4 times
Re: Forge 11/30/2010 (unofficial BETA) version
by DemoneNero » 30 Nov 2010, 16:31
wow
400 new cards
thanks a lot
thanks a lot
Hold The Heathen Hammer High
-

DemoneNero - Posts: 91
- Joined: 26 Jul 2010, 19:41
- Location: Italy
- Has thanked: 4 times
- Been thanked: 1 time
Re: Forge 11/30/2010 (unofficial BETA) version
by timmermac » 30 Nov 2010, 16:42
When is the image download for a card supposed to kick in?
Edit: I have the pictures that I need in the folder for the last SVN download that I ran, which is somewhere around 3755. I wanted to see how the game handles things with no pictures in the pics folder for the 11/30 beta. I'm a couple of turns in to the first game I've played with the new beta and all cards show as black. Is there something that I need to do to trigger a download of the card pics with the new system or should it be automatic?
Edit: I have the pictures that I need in the folder for the last SVN download that I ran, which is somewhere around 3755. I wanted to see how the game handles things with no pictures in the pics folder for the 11/30 beta. I'm a couple of turns in to the first game I've played with the new beta and all cards show as black. Is there something that I need to do to trigger a download of the card pics with the new system or should it be automatic?
"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
Re: Forge 11/30/2010 (unofficial BETA) version
by Rob Cashwalker » 30 Nov 2010, 18:52
Set-based images aren't downloadable in game yet.
If you have the MWS picture archives, then you can make Forge use those pictures.
If you have the regular Forge LQ pictures, they should still show up. I intended for a none.jpg to actually be present, that can display a generic card image as a better looking placeholder than a black box, however there was a bug with how the code got merged when I uploaded it. It's fixed in my local copy, but I'm still testing it.
If you have the MWS picture archives, then you can make Forge use those pictures.
If you have the regular Forge LQ pictures, they should still show up. I intended for a none.jpg to actually be present, that can display a generic card image as a better looking placeholder than a black box, however there was a bug with how the code got merged when I uploaded it. It's fixed in my local copy, but I'm still testing it.
The Force will be with you, Always.
-

Rob Cashwalker - Programmer
- Posts: 2167
- Joined: 09 Sep 2008, 15:09
- Location: New York
- Has thanked: 5 times
- Been thanked: 40 times
61 posts
• Page 1 of 5 • 1, 2, 3, 4, 5
Who is online
Users browsing this forum: No registered users and 10 guests
