It is currently 14 May 2025, 11:54
   
Text Size

Forge 10/31/2010 (unofficial BETA) version

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Forge 10/31/2010 (unofficial BETA) version

Postby Chris H. » 01 Nov 2010, 00:00

Forge 10/31/2010 (unofficial BETA) version

(Quest icons used created by Teekatas, from his Legendora set

5027 cards in total.

This version is based upon the revision # 3152 which is found on our SVN.

This beta release is meant to keep the user base busy while the dev team makes substantial changes to the code base. We can not predict at this time when these future changes will be finished and stable enough for the following beta release.

This version includes many new cards and bug fixes. The new gui game window has some improvements.

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
Bladescape
Gofishus
Nerzahd
Jaedayr
Kurai
Chris H


Added many cards, including:

Code: Select all
Amulet of Unmaking
Ancestral Mask
Argothian Treefolk
Armor Thrull
Armored Ascension
Aura Flux
Bant Panorama
Battered Golem
Blanchwood Armor
Bloodpyre Elemental
Borderland Behemoth
Bottomless Vault
Brighthearth Banneret
Brindle Boar
Burrenton Bombardier
Champion Lancer
Champion Lancer
Claws of Valakut
Court Homunculus
Crusading Knight
Crypt Angel
Deathgrip
Defiler of Souls
Delraich
Demon of Death's Gate
Dirtcowl Wurm
Disrupting Scepter
Dread Slag
Drill-Skimmer
Dwarven Armorer
Dwarven Hold
Dwarven Lieutenant
Dwarven Warriors
Earnest Fellowship
Earth Servant
Elven Fortress
Esper Panorama
Exotic Curse
Ezuri, Renegade Leader
Facevaulter
Farseek
Fertilid
Fieldmist Borderpost
Fireblast
Firewild Borderpost
Folk Medicine
Folk of An-Havva
Fungusaur
Gamble
Ghost-Lit Raider
Goblin Warrens
Gorilla Pack
Granite Grip
Grixis Panorama
Hand of Emrakul
Hollow Trees
Homarid
Horror of Horrors
Howling Gale
Icatian Javelineers
Icatian Lieutenant
Icatian Store
Imi Statue
Into the North
Intruder Alarm
Izzet Chronarch
Jandor's Ring
Jund Panorama
Kavu Scout
Khabal Ghoul
Knight of New Alara
Leonin Squire
Leveler
Lifeforce
Locust Swarm
Lure
Mage's Guile
Magistrate's Scepter
Mana Short
Manabarbs
Manaforce Mace
Marauding Knight
Marshaling Cry
Mistvein Borderpost
Mogg Squad
Morbid Hunger
Moriok Scavenger
Mosquito Guard
Nantuko Blightcutter
Nature's Resurgence
Naya Panorama
Nim Grotesque
Nim Lasher
Nim Shrieker
Nucklavee
Pennon Blade
Perilous Forays
Plague Rats
Power Surge
Pulverize
Quag Sickness
Quirion Ranger
Ragnar
Rainbow Vale
Revenant
Righteousness
Ring of Renewal
Rootrunner
Sacrifice
Sand Silos
Scrivener
Seasinger
Selesnya Guildmage
Sorcerer's Strongbox
Spirit of Resistance
Standing Stones
Strength of Unity
Strongarm Thug
Sulfuric Vortex
Sunhome Enforcer
Sword of the Chosen
Thunderclap
Tilling Treefolk
Time Bomb
Treasure Hunter
Uncle Istvan
Upwelling
Urza's Mine
Urza's Power Plant
Urza's Tower
Veinfire Borderpost
Volcanic Spray
Well-Laid Plans
Wickerbough Elder
Wild Growth
Wildfield Borderpost
Wirewood Symbiote
Wrath of Marit Lage
`

The links to the various archives:


NOTE: I corrected the date for the archive below:

The Forge 10/31/2010 archive (requires java 5, possibly java 6):



This new run-forge.jar file fixes the null-pointer error for non-Targeted Fetch cards played by the AI.

.
User avatar
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 10/31/2010 (unofficial BETA) version

Postby Chris H. » 01 Nov 2010, 00:00

Fixes/Features:

- Converted player to a class: Player.java.
- Fixed a player string/object bug in the whenever keyword with the DealsDamage trigger.
- Converted Beast Attack to keyword.
- Added AltCost SVar to handle cards that have an Alternative Casting Cost.
- GameAction.GetSpellCostChange() now takes mana cost as a parameter (to prevent overwriting of AltCost)
- Added Fireblast
- Converted Bringer of the Blue/Green/White Dawn to use AltCost.
- Added LoseLife to AF_AlterLife.
- Converted Bile Urchin to AB$LoseLife.
- Player class needed to UpdateObservers in a few spots that change life.
- Converted Chatter of the Squirrel to keyword.
- Fixed and moved the Flashback keyword and it is now functional.
- Converted Chatter of the Squirrel to the Flashback keyword.
- Converted Beast Attack, Call of the Herd and Elephant Ambush to the Flashback keyword.
- Removed the now un-needed Flashback code from spMakeToken.
- Added early stages of SpellAbility_Restriction, which can activate Abilities from different zones.
- Ability_Activated.canPlay() now checks SA_Restriction.canPlay().
- Added Channel ability for Ghost-Lit Redeemer.
- Changed all Ability_Hand with Ability_Activated and SA_Restriction. Suspend now a Static Ability.
- Deleted Ability_Hand.
- Code Cleanup in CardFactories. More Common Keywords are checked in one location after coming back from separated Factories.
- Cloud of Faeries, Ichor Slick, and Street Wraith now have a keyworded cycling ability.
- Converted Acorn Harvest to keyword.
- Converted Crush of Wurms and Roar of the Wurm to keyword.
- Converted Think Twice to keyword.
- Added Legendary supertype to Skeleton Ship and Spirit of the Night.
- Fixed issues with colorless manlands not sending color in properly.
- Converted Tenza, Godo's Maul to stPump.
- Added two new SA_Restrictions (SorcerySpeed, PlayerTurn) and converted Ability.AnyPlayer to Restriction.
- Updated Volrath's Dungeon with abCost and Restrictions.
- Updated Feral Hydra with AnyPlayer.
- Setting ActivatingPlayer before canPlay is checked for Restrictions.
- Fixed bugs in Cost_Payment related to Pay Life and AnyPlayer.
- Converted Survival of the Fittests and Fauna Shaman to AF_Fetch Ability.
- Updated AllZone.GameAction.addDamage(player,src, num) to player.addDamage(num,src) in a few places.
- Updated AllZone.GameAction.addDamage(player,src, num) to player.addDamage(num,src) in a few places.
- Fixed Sanity Grinding when numCards > lib.size().
- Changed how GUI_NewGame.getRandomDeck calculates a random number.
- We have two functions that do the same thing. GameAction.exile(c) and GameAction.removeFromGame(c). Exile is the new language, so I left this function and updated all calls to use exile(c).
- Added Untap as an AbilityFactory.
- Added ActivationLimit to SA_Restriction (once AF_Pump is ready we can replace a lot of the hard-coded ActivationLimits with this).
- Added Tapped paramater for AF_Fetch for cards that ETB Tapped after being fetched.
- Fixed Evolving Wilds and Terramorphic Expanse.
- Restructered and outsourced most parts of isValidCards.
- Made Player class abstract. Creates 2 sub-classes AIPlayer and HumanPlayer. They are just bare-bones at this point. Now, we should be able to move things one by one to the Human/AI subclasses from GameAction.java.
- Updated GUI zone names to be better in line with current rules.
- Changed calls from AllZone.GameAction.addCombatDamage(player, src, num) to player.addCombatDamage(num, src).
- Code cleanup.
- Fixed Roc Egg.
- Updated code to call new damage functions in Card.java.
- Updated calls to makeToken to pass in the Player instead of a Card.
- Added the option Other to isValidCard with card as argument. Made restrictions like Artifact.YouCtrl,Enchantment possible.
- Fixed YouCtrl in isValidCard.
- Added getValidCards(final String Restrictions[], final Player Controller, final Card source) and getValidCards(final String Restrictions[], final Card source) to CardList.java.
- Updated stPump to use the card argument.
- More updates of stPump to use "Other" as restriction.
- Converted some cards to stPump.
- Fixed mana cost for Guard Gomazoa.
- Fixed AI targeting for Glimpse the Unthinkable and Tome Scour.
- Fixed up a couple Strings left over from Player to class conversion.
- Fixed Stack Overflow when creatures assign damage to each other.
- Fixed Insiide Out, it was missing "K:Draw a card."
- Fixed Gwafa Hazid, Profiteer ability description.
- Fixed Karma to deal damage equal to the number of swamps. (Was hardcoded to 1 for some reason.)
- Added optional descriptions for alternative costs.
- Added the PerSetTracking script to the res folder.
- Converted Rampant Growth, Natures Lore and Three Visits to SP$Fetch.
- Fixed Lodestone Myr.
- Converted Myr Galvanizer to stPump.
- Fixed mana cost for Executioner's Capsule.
- Fixed Fog Bank mana cost.
- Made face down creatures lose their colors.
- Consolidated Card damage code and fixed a few bugs. Notably: Creatures can now damage Planeswalkers.
- Fixed Infect not giving Poison counters.
- Completely rewrote stPump. This increased the performance and fixed some bugs (but maybe introduced some new ones). First steps towards allowing xCount are also made.
- Added xCount support to stPump.
- Added first draft of etbReturnTgt.
- Updated Count$Valid to use "Other".
- Updated to Player life methods to conform with rule 118.5.
- Fixed Wither and Infect giving -1/-1 counters to creatures.
- Updated calls that get cards from zones to more standard functions.
- Converted these cards to keyword: Anarchist, Cartographer, Eternal Witness, Sanctum Gargoyle, Sharuum the Hegemon, Auramancer, Monk Idealist, Cadaver Imp, Corpse Cur, Gravedigger and Mnemonic Wall.
- Fixed Holy Light.
- Converted Strongarm Thug.
- Consolidated Doubling Season code.
- Made etbReturnTgt a while loop.
- Updated getCards calls to more standard functions.
- If Morph isFaceDown, the combat message saying "Select a creature to block ____________" now says Morph instead of the real card name.
- Tweaked 'Prevent all damage' and 'Prevent all combat damage' keyword handling.
- Removed note from Heart of Light.
- Fixed typo in damage prevention keyword.
- Moved Argothian Pixies "prevent" keyword to Card.java.
- Added a white Flying theme.
- Added a BG Mimic theme.
- Fixed Trickster Mage.
- etbReturnTgt now handles "you may return" and added "MayReturn" as a parameter to a group of cards.
- Moved drawCard functions to new player class structure. Deprecated and redirected the methods in GameAction.java. I will work on changing all source to call the new functions.
- Conversion of spPump and abPump to AbilityFactory - SP$Pump and AB$Pump. Only supports normal targeted pumps and self-pumps. Equipment pumps are not supported. Sample cards - Captive Flame, Colos Yearling and Giant Growth.
- Updated addAssignedDamage calls.
- Translated GameAction.java.
- Added mayDrawCard functionality to Player structure.
- Updated GameActionUtil.java to call new draw functions.
- Moved shuffle to Player, deprecated GameAction.shuffle, and redirected to Player.
- Converted Righteousness to AbilityFactory_Pump.
- Updated calls to GameAction.shuffle.
- Removed Card specific code in favor of generalized functions and reusable code.
- Parameterized Comparator in CardFactroy_Sorceries.java.
- Moved scry code from GameAction to Player.
- Fixed mana cost for Twitch.
- Fixed Player.getPlaneswalker().
- Code cleanup.
- Corrected Macabre Waltz.
- Fixed Voja color.
- Converted Karmic Guide to keyword.
- Consolidated code in GameActionUtil.java.
- Fixed Spiteful Visions to damage both players, not just opponent.
- Fixed type in Sovereigns of Lost Alara.
- Converted Elven Lyre to AB$Pump.
- Fixed Merrow Levitator and Hornet Cannon.
- Added a WU Flying theme.
- Fixed the plural in etbCounter text when numCounters == 1.
- Small fix of stPump.
- Fixed Mana Battery cards not tapping when their mana ability was used.
- This may fix the bug that Bogwraith noticed in reference to spMakeToken(). Code borrowed from Beast Attack.
- Converted the two magemarks to stPump.
- Added a WRG Aura deck.
- This may fix the bug that Bogwraith noticed in reference to spMakeToken(). Code borrowed from Beast Attack.
- Renamed the Mimic theme to Multicolor (to have all 10 color combinations in the future).
- Added Multicolor RG and UG.
- Bugfixes & performance fixes.
- Added LQ pic url and "End" to denote end of file to the new cards Khabal Ghoul and Sunhome Enforcer.
- Fixed Deathtouch as it was not working.
- Fixed broken URL for Champion Lancer.
- Fixed Brindle Boar.
- Added a WG legends theme.
- Added a colorless artifact theme.
- Updated the WRG Aura theme.
- Fixed Facevaulter.
- Fixed Count&Valid in combination with YouCtrl.
- Updated the Mono Black theme.
- Fixed (Magus of) The Abyss to target the creature it destroys.
- Added LastDrawn as a valid discard target in Ability_Cost.
- Added a BR multicolor theme.
- Converted a few spells from spTutor to SP$Fetch.
- Added support of drawbacks for Fetch abilities.
- Fixed the pic url for Dirtcowl Wurm.
- Set RemAIDeck for Jandor's Ring.
- Added a white Kithkin theme.
- Added SVar:RemAIDeck:True to some cards.
- Code consolidation/cleanup of old, unused code in CombatUtil.java.
- Converted Marble Chalice to Ability Factory.
- Added a UBR Megrim theme.
- Fixed card text for Wrath of Marit Lage.
- Quest assignments use the same gui as set for quest matches.
- Opponent game area is mirrored.
- Tokens with the same name stack even if they have different P/T in new gui.
- Added a UBG arcane sprits theme.
- Minor capitalization changes in a couple of AllZoneUtil functions.
- Updated some of the class files to use StringBuilder.
- Updated Fallen Empires storage lands and Legends Mana Batteries to use StringBuilder in mana().
- Converted Reach of Branches, Soul's Attendant, Soul Warden and Essence Warden to whenever keyword.
- Converted Kobold Overlord and Battering Sliver to stPump.
- Added RemAIDeck to Standing Stones.
- Fixed Wildfire and Destructive Force bug.
- Converted Kird Ape, Sedge Troll and Hedge Troll to stPumpSelf keyword.
- Code cleanup/consolidation in GameActionUtil.java.
- Fixed Knight of New Alara.
- Fixed special case of WheneverKeyword:DrawCard:ControllingPlayer_Opponent.
- Fixed WheneverKeyword not dealing damage to player on multi-target select.
- Fixed suspend.
- Neatness tweaks for Time Bomb code.
- Temp fix for WheneverKeyword GainLife.
- Converted AEther Vial's upkeep ability to WheneverKeyword.
- Converted Ashenmoor Cohort, Ballynock Cohort, Briarberry Cohort, Crabapple Cohort and Mudbrawler Cohort to stPumpSelf keyword.
- Converted Lord of Atlantis, Goblin King, Bad Moon and Crusade to stPumpAll keyword.
- Initial development of SetInfo support. SetInfo object intended to be very simple, public member variables for the moment. Card object has a list of SetInfo, supplied by SetInfo: lines in text file. Example card - Giant Growth, reprinted in all core sets. No code that makes use of this information yet, local testing based on hijacking the Start Game button.
- Converted Night of Soul's Betrayal, Veteran Armorer, Veteran Armorsmith, Field Marshal, Goblin Chieftain, Merfolk Sovereign and Timber Protector to stPumpAll.
- Added the missing types for Eldrazi Conscription.
- Corrected the casting cost for Nightmare Void.
- Prevent compy targeting own creatures with Barl's Cage.
- Fixed .equals() for Counters in abPump and in AbilityFactory_Pump.
- Code consolidation/cleanup in GameActionUtil.java.
- Fixed pic URL for Righteousness.
- Updated ComputerUtil and Cost_Payment for Discard<1/LastDrawn> Ability_Cost.
- Made sure compy doesn't counter own spells with Deathgrip/Lifeforce.
- Fixed the ability costs for Narcissism.
- Removed Lifeforce and Deathgrip from AI decks.
- Fixed potential NullPointerException in canPlayAI for Lifeforce and Deathgrip.
- Fixed AbilityFactory_Fetch not respecting Tapped$True for AI.
- Added optional Tgt$TgtP to AbilityFactory_Fetch.
- Code cleanup/consolidation in GameActionUtil.java.
- Fixed minor description with Scourge of kher ridges.
- Fixed spReturnTgt and you should no longer be asked to pay mana when imprinted on an Isochron Scepter. This fix may also take care of the Cascade problem that was reported.
- Fixed Brain Freeze and it now appears to storm correctly.
- Minor fixes in Player.addDamage.
- Replaced the accented character in the spell text for Primalcrux, Sanity Grinding and Umbra Stalker.
User avatar
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 10/31/2010 (unofficial BETA) version

Postby slapshot5 » 01 Nov 2010, 02:16

What a fantastic Halloween treat! Thanks Chris.

Testers - Please pay special attention to the following areas:
1) lifelink effects
2) damage prevention effects (like: all damage dealt to or dealt by this creature is prevented)
3) draw card effects (spells and abilities; and effects like "may draw a card")
4) scry'ing (computer and human)
5) lose life/gain life effects
6) poison counters
7) dredging

Some of the major changes Chris mentions took place in these areas. Be on the lookout for edge cases and special combinations (like Lifelink and Wither).

-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 10/31/2010 (unofficial BETA) version

Postby Chris H. » 01 Nov 2010, 09:39

In addition, the code which creates the spell descriptions and the stack descriptions was changed. It is possible that several cards may have text that "Looks Strange" because of simple copy and paste type errors.
User avatar
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 10/31/2010 (unofficial BETA) version

Postby Hamletchickencrisis » 01 Nov 2010, 12:06

If this isn't the place for this let me know. Was playing against the computer who was playing the level one Painter deck.
There is an error in the card code for Enlightened Tutor:



Code: Select all
Version:
Forge -- official beta: $Date: 2010-09-14 08:34:27 -0400 (Tue, 14 Sep 2010) $, SVN revision: $Revision: 2039 $

OS: Windows Vista Version: 6.0 Architecture: x86

Java Version: 1.6.0_22 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.NullPointerException
   at forge.AbilityFactory_Fetch.fetchCanPlayAI(AbilityFactory_Fetch.java:196)
   at forge.AbilityFactory_Fetch.access$0(AbilityFactory_Fetch.java:170)
   at forge.AbilityFactory_Fetch$2.canPlayAI(AbilityFactory_Fetch.java:45)
   at forge.ComputerAI_General.getPlayable(ComputerAI_General.java:257)
   at forge.ComputerAI_General.getMain2(ComputerAI_General.java:244)
   at forge.ComputerAI_General.playCards(ComputerAI_General.java:35)
   at forge.ComputerAI_General.main2(ComputerAI_General.java:31)
   at forge.ComputerAI_Input.think(ComputerAI_Input.java:57)
   at forge.ComputerAI_Input.showMessage(ComputerAI_Input.java:29)
   at forge.GuiInput.setInput(GuiInput.java:27)
   at forge.GuiInput.update(GuiInput.java:21)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.MyObservable.updateObservers(MyObservable.java:10)
   at forge.Phase.nextPhase(Phase.java:310)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.GuiDisplay3$26.actionPerformed(GuiDisplay3.java:798)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(Unknown Source)
   at javax.swing.SwingUtilities.notifyAction(Unknown Source)
   at javax.swing.JComponent.processKeyBinding(Unknown Source)
   at javax.swing.JComponent.processKeyBindings(Unknown Source)
   at javax.swing.JComponent.processKeyEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
There is an error in the card code for Fabricate:



Code: Select all
Version:
Forge -- official beta: $Date: 2010-09-14 08:34:27 -0400 (Tue, 14 Sep 2010) $, SVN revision: $Revision: 2039 $

OS: Windows Vista Version: 6.0 Architecture: x86

Java Version: 1.6.0_22 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.NullPointerException
   at forge.AbilityFactory_Fetch.fetchCanPlayAI(AbilityFactory_Fetch.java:196)
   at forge.AbilityFactory_Fetch.access$0(AbilityFactory_Fetch.java:170)
   at forge.AbilityFactory_Fetch$2.canPlayAI(AbilityFactory_Fetch.java:45)
   at forge.ComputerAI_General.getPlayable(ComputerAI_General.java:257)
   at forge.ComputerAI_General.getMain2(ComputerAI_General.java:244)
   at forge.ComputerAI_General.playCards(ComputerAI_General.java:35)
   at forge.ComputerAI_General.main2(ComputerAI_General.java:31)
   at forge.ComputerAI_Input.think(ComputerAI_Input.java:57)
   at forge.ComputerAI_Input.showMessage(ComputerAI_Input.java:29)
   at forge.GuiInput.setInput(GuiInput.java:27)
   at forge.GuiInput.update(GuiInput.java:21)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.MyObservable.updateObservers(MyObservable.java:10)
   at forge.Phase.nextPhase(Phase.java:310)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.GuiDisplay3$26.actionPerformed(GuiDisplay3.java:798)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(Unknown Source)
   at javax.swing.SwingUtilities.notifyAction(Unknown Source)
   at javax.swing.JComponent.processKeyBinding(Unknown Source)
   at javax.swing.JComponent.processKeyBindings(Unknown Source)
   at javax.swing.JComponent.processKeyEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
   at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Ditto for Three Visits. I think you guys might have a NullPointerException on ALL cards that fetch other cards. Just seems like it is becoming a trend. Don't know if true but it would make this version pretty flawed. Any others getting the same thing?
Last edited by Hamletchickencrisis on 01 Nov 2010, 13:02, edited 2 times in total.
Hamletchickencrisis
 
Posts: 89
Joined: 04 Dec 2009, 11:01
Has thanked: 4 times
Been thanked: 0 time

Re: Forge 10/31/2010 (unofficial BETA) version

Postby DemoneNero » 01 Nov 2010, 12:30

that's great :D over 5000 cards
thanks a lot guys :D
Hold The Heathen Hammer High
User avatar
DemoneNero
 
Posts: 91
Joined: 26 Jul 2010, 19:41
Location: Italy
Has thanked: 4 times
Been thanked: 1 time

Re: Forge 10/31/2010 (unofficial BETA) version

Postby Hellfish » 01 Nov 2010, 13:09

Cool stuff, another great milestone in card numbers! :D

There is a problem with the fetch-abilityfactory,though, in the fetchCanPlayAI() function. It invariably results in a NullPointerException.
Code: Select all
An error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to:
   http://www.slightlymagic.net/forum/viewforum.php?f=26
If you don't want to register an account, you can mail it directly to
   mtgerror@yahoo.com


There is an error in the card code for Rampant Growth:



Version:
Forge -- official beta: $Date: 2010-09-14 08:34:27 -0400 (Tue, 14 Sep 2010) $, SVN revision: $Revision: 2039 $

OS: Windows XP Version: 5.1 Architecture: x86

Java Version: 1.6.0_03 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.NullPointerException
   at forge.AbilityFactory_Fetch.fetchCanPlayAI(AbilityFactory_Fetch.java:196)
   at forge.AbilityFactory_Fetch.access$0(AbilityFactory_Fetch.java:170)
   at forge.AbilityFactory_Fetch$2.canPlayAI(AbilityFactory_Fetch.java:45)
   at forge.ComputerAI_General.getPlayable(ComputerAI_General.java:257)
   at forge.ComputerAI_General.getMain2(ComputerAI_General.java:244)
   at forge.ComputerAI_General.playCards(ComputerAI_General.java:35)
   at forge.ComputerAI_General.main2(ComputerAI_General.java:31)
   at forge.ComputerAI_Input.think(ComputerAI_Input.java:57)
   at forge.ComputerAI_Input.showMessage(ComputerAI_Input.java:29)
   at forge.GuiInput.setInput(GuiInput.java:27)
   at forge.GuiInput.update(GuiInput.java:21)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.MyObservable.updateObservers(MyObservable.java:10)
   at forge.Phase.nextPhase(Phase.java:310)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.Phase.nextPhase(Phase.java:314)
   at forge.GuiDisplay4$25.actionPerformed(GuiDisplay4.java:776)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
EDIT: Not just Rampant Growth but also Enlightened Tutor and likely any other card that uses the Fetch factory.

EDIT2: (Couldn't stay away :mrgreen: ) The problem seems to be that it wants to getAbTgt() from a non-targeted spellability
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
User avatar
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 10/31/2010 (unofficial BETA) version

Postby timmermac » 01 Nov 2010, 13:48

Also, there seems to be an error with Wooded Foothills and Windswept Heath.
Code: Select all
An error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to: http://www.slightlymagic.net/forum/viewforum.php?f=26
If you don't want to register an account, you can mail it directly to mtgerror@yahoo.com
There is an error in the card code for Wooded Foothills:

Version:Forge -- official beta: $Date: 2010-09-14 08:34:27 -0400 (Tue, 14 Sep 2010) $, SVN revision: $Revision: 2039
$OS: Windows XP Version: 5.1 Architecture: x86
Java Version: 1.6.0_21 Vendor: Sun Microsystems Inc.
Detailed error trace:
java.lang.NullPointerException
   at forge.AbilityFactory_Fetch.fetchCanPlayAI(AbilityFactory_Fetch.java:196)
   at forge.AbilityFactory_Fetch.access$0(AbilityFactory_Fetch.java:170)
   at forge.AbilityFactory_Fetch$1.canPlayAI(AbilityFactory_Fetch.java:19)
   at forge.ComputerAI_General.getPlayable(ComputerAI_General.java:257)
   at forge.ComputerAI_General.getMain1(ComputerAI_General.java:212)
   at forge.ComputerAI_General.playCards(ComputerAI_General.java:35)
   at forge.ComputerAI_General.main1(ComputerAI_General.java:26)
   at forge.ComputerAI_Input.think(ComputerAI_Input.java:41)
   at forge.ComputerAI_Input.showMessage(ComputerAI_Input.java:29)
   at forge.GuiInput.setInput(GuiInput.java:27)
   at forge.GuiInput.update(GuiInput.java:21)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.MyObservable.updateObservers(MyObservable.java:10)
   at forge.InputControl.resetInput(InputControl.java:25)
   at forge.Input_StackNotEmpty.selectButtonOK(Input_StackNotEmpty.java:98)
   at forge.GuiInput.selectButtonOK(GuiInput.java:36)
   at forge.GuiDisplay4.okButtonActionPerformed(GuiDisplay4.java:985)
   at forge.GuiDisplay4.access$3(GuiDisplay4.java:984)
   at forge.GuiDisplay4$25.actionPerformed(GuiDisplay4.java:771)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
   at org.jvnet.substance.utils.RolloverButtonListener.mouseReleased(RolloverButtonListener.java:111)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
"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
User avatar
timmermac
Tester
 
Posts: 1512
Joined: 17 May 2010, 20:36
Has thanked: 18 times
Been thanked: 95 times

Re: Forge 10/31/2010 (unofficial BETA) version

Postby Hellfish » 01 Nov 2010, 13:56

Yep, same error.Likely to be the case with all non-targeted fetch cards. (The only targeted being Fertilid?)
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
User avatar
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 10/31/2010 (unofficial BETA) version

Postby friarsol » 01 Nov 2010, 13:57

Just fixed this in the SVN. Maybe we can convince Chris to patch this since that'll cause some major issues.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge 10/31/2010 (unofficial BETA) version

Postby Chris H. » 01 Nov 2010, 14:29

friarsol wrote:Just fixed this in the SVN. Maybe we can convince Chris to patch this since that'll cause some major issues.
`
I have updated my local copy to rev 3157 and I am in the process of uploading a new jar file. I should warn people that a majority of the discard code was moved to the Player classes and the rev 3157 bug fix may also be buggy as a result.

We also have some new major code improvements being added in the near future and it may take a while for the code base to become more stable. Sorry guys and gals. :wink:

As such, I hope that the "Forge Fix r3157.7z" file will be usable and that you all can continue to enjoy the game while waiting for the next beta release.
User avatar
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 10/31/2010 (unofficial BETA) version

Postby Chris H. » 01 Nov 2010, 15:08

This new run-forge.jar file fixes the null-pointer error for non-Targeted Fetch cards played by the AI.

User avatar
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 10/31/2010 (unofficial BETA) version

Postby weirdingway » 01 Nov 2010, 15:11

Thanks again! I have much respect and admiration for your dedication to this project.
weirdingway
 
Posts: 57
Joined: 19 Nov 2009, 12:39
Has thanked: 0 time
Been thanked: 4 times

Re: Forge 10/31/2010 (unofficial BETA) version

Postby slapshot5 » 01 Nov 2010, 15:55

Chris H. wrote:I have updated my local copy to rev 3157 and I am in the process of uploading a new jar file. I should warn people that a majority of the discard code was moved to the Player classes and the rev 3157 bug fix may also be buggy as a result.
If the discard code is causing problems, a better solution may be to sync to 3152, then apply the NullPointer fix locally and release that as the jar.
-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 10/31/2010 (unofficial BETA) version

Postby LokiUndergod » 01 Nov 2010, 18:11

Thanks, guys. Happy Halloween!
LokiUndergod
 
Posts: 33
Joined: 26 Mar 2010, 13:28
Has thanked: 2 times
Been thanked: 0 time

Next

Return to Forge

Who is online

Users browsing this forum: No registered users and 20 guests


Who is online

In total there are 20 users online :: 0 registered, 0 hidden and 20 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 20 guests

Login Form