It is currently 09 Sep 2025, 00:19
   
Text Size

Gauntlet Mode

Post MTG Forge Related Programming Questions Here

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

Gauntlet Mode

Postby Doublestrike » 07 Oct 2012, 11:25

I was poking around in my Forge cave, turned over a rock, and...Gauntlet Mode!




:mrgreen:




Please report issues here.
Attachments
contest.jpg
quick.jpg
quick.jpg
builder.jpg
Last edited by Doublestrike on 09 Oct 2012, 03:37, edited 1 time in total.
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Surprise

Postby Doublestrike » 07 Oct 2012, 11:27

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.
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Surprise

Postby Hellfish » 07 Oct 2012, 11:58

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)
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: Surprise

Postby ArsenalNut » 07 Oct 2012, 14:54

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.
So many cards, so little time
User avatar
ArsenalNut
 
Posts: 512
Joined: 08 Jul 2011, 03:49
Has thanked: 27 times
Been thanked: 121 times

Re: Surprise

Postby Max mtg » 07 Oct 2012, 21:02

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
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Surprise

Postby friarsol » 07 Oct 2012, 21:35

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)
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Surprise

Postby Max mtg » 07 Oct 2012, 23:22

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
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Surprise

Postby Chris H. » 08 Oct 2012, 00:05

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.
 
Attachments
Screen Shot.jpg
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: Surprise

Postby Doublestrike » 08 Oct 2012, 00:13

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.
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Surprise

Postby friarsol » 08 Oct 2012, 00:18

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 ;)
Last edited by friarsol on 08 Oct 2012, 00:23, edited 1 time in total.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Surprise

Postby Chris H. » 08 Oct 2012, 00:20

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>
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: Surprise

Postby Doublestrike » 08 Oct 2012, 00:25

Glad it's working out then!
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Surprise

Postby Doublestrike » 08 Oct 2012, 01:11

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.)
Attachments
nocards.jpg
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Surprise

Postby ArsenalNut » 08 Oct 2012, 13:13

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.
So many cards, so little time
User avatar
ArsenalNut
 
Posts: 512
Joined: 08 Jul 2011, 03:49
Has thanked: 27 times
Been thanked: 121 times

Re: Surprise

Postby Max mtg » 08 Oct 2012, 13:25

Wish you used my StorageReaderFolder class for readin all files in a folder.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Next

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 53 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 53 users online :: 0 registered, 0 hidden and 53 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 53 guests

Login Form