Page 1 of 2

Gauntlet Mode

PostPosted: 07 Oct 2012, 11:25
by Doublestrike
I was poking around in my Forge cave, turned over a rock, and...Gauntlet Mode!




:mrgreen:




Please report issues here.

Re: Surprise

PostPosted: 07 Oct 2012, 11:27
by Doublestrike
Just one "documentation" type note that's not self-explanatory:

There's the "Contests" section, which is for gauntlets like "World Championships 1997" or something.

The deck packs that Gos creates are perfect for these. I've added "DotP Preconstructed" from one of his recent posts, and "Swimming with Sharks".

If a dev wants to add more of these, just add the prefix "LOCKED_" to the beginning of the .dat file in /res/gauntlets and it will show up on the contests screen.

Re: Surprise

PostPosted: 07 Oct 2012, 11:58
by Hellfish
Got an exception after the splash disappears.
Code: Select all
java.lang.ExceptionInInitializerError
   at forge.gui.framework.EDocID.<clinit>(EDocID.java:79)
   at forge.gui.match.VMatchUI.<init>(VMatchUI.java:36)
   at forge.gui.match.VMatchUI.<clinit>(VMatchUI.java:32)
   at forge.view.FView.cacheUIStates(FView.java:215)
   at forge.view.FView.initialize(FView.java:102)
   at forge.control.FControl$6.run(FControl.java:178)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
   at java.awt.EventQueue.access$000(EventQueue.java:101)
   at java.awt.EventQueue$3.run(EventQueue.java:666)
   at java.awt.EventQueue$3.run(EventQueue.java:664)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: No enum constant forge.properties.ForgePreferences.FPref.SUBMENU_GAUNTLET
   at java.lang.Enum.valueOf(Enum.java:236)
   at forge.properties.ForgePreferences$FPref.valueOf(ForgePreferences.java:1)
   at forge.gui.home.VMainMenu.<init>(VMainMenu.java:154)
   at forge.gui.home.VMainMenu.<clinit>(VMainMenu.java:75)
   ... 20 more
Adding the constant to FPref let's it go on to another exception
Code: Select all
Error loading Gauntlet Data
java.io.FileNotFoundException: res\gauntlet\.svn (Access is denied)
   at java.io.FileInputStream.open(Native Method)
   at java.io.FileInputStream.<init>(FileInputStream.java:138)
   at forge.gauntlet.GauntletIO.loadGauntlet(GauntletIO.java:105)
   at forge.gui.home.gauntlet.CSubmenuGauntletLoad.updateData(CSubmenuGauntletLoad.java:72)
   at forge.gui.home.gauntlet.CSubmenuGauntletLoad.initialize(CSubmenuGauntletLoad.java:57)
   at forge.view.FView.initialize(FView.java:107)
   at forge.control.FControl$6.run(FControl.java:178)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
   at java.awt.EventQueue.access$000(EventQueue.java:101)
   at java.awt.EventQueue$3.run(EventQueue.java:666)
   at java.awt.EventQueue$3.run(EventQueue.java:664)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Re: Surprise

PostPosted: 07 Oct 2012, 14:54
by ArsenalNut
Hellfish wrote:Got an exception after the splash disappears.
Code: Select all
java.lang.ExceptionInInitializerError
   at forge.gui.framework.EDocID.<clinit>(EDocID.java:79)
   at forge.gui.match.VMatchUI.<init>(VMatchUI.java:36)
   at forge.gui.match.VMatchUI.<clinit>(VMatchUI.java:32)
   at forge.view.FView.cacheUIStates(FView.java:215)
   at forge.view.FView.initialize(FView.java:102)
   at forge.control.FControl$6.run(FControl.java:178)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
   at java.awt.EventQueue.access$000(EventQueue.java:101)
   at java.awt.EventQueue$3.run(EventQueue.java:666)
   at java.awt.EventQueue$3.run(EventQueue.java:664)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: No enum constant forge.properties.ForgePreferences.FPref.SUBMENU_GAUNTLET
   at java.lang.Enum.valueOf(Enum.java:236)
   at forge.properties.ForgePreferences$FPref.valueOf(ForgePreferences.java:1)
   at forge.gui.home.VMainMenu.<init>(VMainMenu.java:154)
   at forge.gui.home.VMainMenu.<clinit>(VMainMenu.java:75)
   ... 20 more
Adding the constant to FPref let's it go on to another exception
Code: Select all
Error loading Gauntlet Data
java.io.FileNotFoundException: res\gauntlet\.svn (Access is denied)
   at java.io.FileInputStream.open(Native Method)
   at java.io.FileInputStream.<init>(FileInputStream.java:138)
   at forge.gauntlet.GauntletIO.loadGauntlet(GauntletIO.java:105)
   at forge.gui.home.gauntlet.CSubmenuGauntletLoad.updateData(CSubmenuGauntletLoad.java:72)
   at forge.gui.home.gauntlet.CSubmenuGauntletLoad.initialize(CSubmenuGauntletLoad.java:57)
   at forge.view.FView.initialize(FView.java:107)
   at forge.control.FControl$6.run(FControl.java:178)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
   at java.awt.EventQueue.access$000(EventQueue.java:101)
   at java.awt.EventQueue$3.run(EventQueue.java:666)
   at java.awt.EventQueue$3.run(EventQueue.java:664)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I am getting the same exception when I try to start Forge.

Re: Surprise

PostPosted: 07 Oct 2012, 21:02
by Max mtg
ArsenalNut wrote:
Code: Select all
java.lang.ExceptionInInitializerError
   at forge.gui.framework.EDocID.<clinit>(EDocID.java:79)
   at forge.gui.match.VMatchUI.<init>(VMatchUI.java:36)
   at forge.gui.match.VMatchUI.<clinit>(VMatchUI.java:32)
   at forge.view.FView.cacheUIStates(FView.java:215)
   at forge.view.FView.initialize(FView.java:102)
   at forge.control.FControl$6.run(FControl.java:178)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
   at java.awt.EventQueue.access$000(EventQueue.java:101)
   at java.awt.EventQueue$3.run(EventQueue.java:666)
   at java.awt.EventQueue$3.run(EventQueue.java:664)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: No enum constant
I saw this one as well

Tried to fix it myself. see r17396

Re: Surprise

PostPosted: 07 Oct 2012, 21:35
by friarsol
I just played a Gauntlet Match. It looks like Gauntlet mode is only half ignoring the ante checkbox. No cards are ante-d in the beginning of the game, but at the end of the game it tries to add the blank cards to your deck. Providing this error:

Detailed error trace:
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(Unknown Source)
at forge.gui.match.ControlWinLose.executeAnte(ControlWinLose.java:115)
at forge.gui.match.ControlWinLose.startNextRound(ControlWinLose.java:99)
at forge.gui.match.ControlWinLose.actionOnContinue(ControlWinLose.java:71)
at forge.gui.match.ControlWinLose$1.actionPerformed(ControlWinLose.java:48)

Re: Surprise

PostPosted: 07 Oct 2012, 23:22
by Max mtg
friarsol wrote:I just played a Gauntlet Match. It looks like Gauntlet mode is only half ignoring the ante checkbox. No cards are ante-d in the beginning of the game, but at the end of the game it tries to add the blank cards to your deck. Providing this error:

Detailed error trace:
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(Unknown Source)
at forge.gui.match.ControlWinLose.executeAnte(ControlWinLose.java:115)
at forge.gui.match.ControlWinLose.startNextRound(ControlWinLose.java:99)
at forge.gui.match.ControlWinLose.actionOnContinue(ControlWinLose.java:71)
at forge.gui.match.ControlWinLose$1.actionPerformed(ControlWinLose.java:48)
Gauntlet mode is not adding games played to FMatchState (method addGamePlayed). If he did, the list from Singletons.getModel().getMatchState().getGamesPlayed() would have contained a game and there would be no OoB

Re: Surprise

PostPosted: 08 Oct 2012, 00:05
by Chris H.
I updated to rev 17403 and attempted to run forge from within Eclipse and I get the following crash report:

Crash Report | Open
This is a Crash Report. An error has occurred. Please save this message to a file.
Please follow the instructions at this address to submit this Crash Report, plus what you were doing at the time:
http://tinyurl.com/3zzrnyb
Reporting bugs in Forge is very important. We thank you for your time.

Error loading Gauntlet Data


Version:
Forge version SVN

OS: Mac OS X Version: 10.7.5 Architecture: x86_64

Java Version: 1.6.0_35 Vendor: Apple Inc.

Detailed error trace:
java.io.FileNotFoundException: res/gauntlet/.svn (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at forge.gauntlet.GauntletIO.loadGauntlet(GauntletIO.java:105)
at forge.gui.home.gauntlet.CSubmenuGauntletLoad.updateData(CSubmenuGauntletLoad.java:73)
at forge.gui.home.gauntlet.CSubmenuGauntletLoad.initialize(CSubmenuGauntletLoad.java:58)
at forge.view.FView.initialize(FView.java:107)
at forge.control.FControl$6.run(FControl.java:178)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

 
I used a utility to display all hidden files/folders starting with a "." and I can see the ".svn" folder located within the /res/gauntlet/ folder.
 

Re: Surprise

PostPosted: 08 Oct 2012, 00:13
by Doublestrike
Wow, tough crowd :(

I've tested on my two development environments and I'm not getting the SVN error...should be easy to fix if I can find it.

I'll fix the ante problem. I never use ante so it slipped through testing...on the list.

Re: Surprise

PostPosted: 08 Oct 2012, 00:18
by friarsol
Doublestrike wrote:Wow, tough crowd :(
Now now. Gauntlet mode has easily been the top of the list of reasonable feature requests, I just want to make sure everything runs smoothly. Looked awesome before it died on me ;)

Re: Surprise

PostPosted: 08 Oct 2012, 00:20
by Chris H.
Doublestrike wrote:Wow, tough crowd :(
 
We really appreciate your efforts and we all were anxious to try the new gauntlet mode out and a few of us had some problems and we are just trying to provide enough data to help the process along. :)

We will get it sorted out and we want to thank you for this new mode. =D>

Re: Surprise

PostPosted: 08 Oct 2012, 00:25
by Doublestrike
Glad it's working out then!

Re: Surprise

PostPosted: 08 Oct 2012, 01:11
by Doublestrike
Had a look at the ante problem and it's happening in Constructed mode too, which suggests a global bug, so I'm going to take this off my list for now.

(Screenshot is from constructed mode win; no cards are eligible to be added.)

Re: Surprise

PostPosted: 08 Oct 2012, 13:13
by ArsenalNut
Chris H. wrote:I updated to rev 17403 and attempted to run forge from within Eclipse and I get the following crash report:

Crash Report | Open
This is a Crash Report. An error has occurred. Please save this message to a file.
Please follow the instructions at this address to submit this Crash Report, plus what you were doing at the time:
http://tinyurl.com/3zzrnyb
Reporting bugs in Forge is very important. We thank you for your time.

Error loading Gauntlet Data


Version:
Forge version SVN

OS: Mac OS X Version: 10.7.5 Architecture: x86_64

Java Version: 1.6.0_35 Vendor: Apple Inc.

Detailed error trace:
java.io.FileNotFoundException: res/gauntlet/.svn (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at forge.gauntlet.GauntletIO.loadGauntlet(GauntletIO.java:105)
at forge.gui.home.gauntlet.CSubmenuGauntletLoad.updateData(CSubmenuGauntletLoad.java:73)
at forge.gui.home.gauntlet.CSubmenuGauntletLoad.initialize(CSubmenuGauntletLoad.java:58)
at forge.view.FView.initialize(FView.java:107)
at forge.control.FControl$6.run(FControl.java:178)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

 
I used a utility to display all hidden files/folders starting with a "." and I can see the ".svn" folder located within the /res/gauntlet/ folder.
 
I added a check in the GauntletIO methods that will ignore .svn directories. I was able to start forge without any errors after that.

Re: Surprise

PostPosted: 08 Oct 2012, 13:25
by Max mtg
Wish you used my StorageReaderFolder class for readin all files in a folder.