It is currently 24 May 2025, 17:58
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

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

Re: Bug Reports (snapshot builds)

Postby Xitax » 15 Apr 2013, 01:32

To help with bug reports, is there a way to quickly output a gamestate file? Or even better, put it into the crash report?
Xitax
 
Posts: 918
Joined: 16 May 2010, 17:19
Has thanked: 183 times
Been thanked: 133 times

Re: Bug Reports (snapshot builds)

Postby natem75 » 15 Apr 2013, 14:11

Description: Whenever I try to go to any game variants such as planechase and archenemy I get this message

NullPointerException | Open
Code: Select all
Forge Version:    1.3.13-SNAPSHOT-r20997
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_17 Oracle Corporation

java.lang.NullPointerException
   at forge.gui.match.VMatchUI.populate(VMatchUI.java:115)
   at forge.control.FControl.changeState(FControl.java:217)
   at forge.game.MatchController.startRound(MatchController.java:169)
   at forge.gui.home.variant.CSubmenuArchenemy$8.doInBackground(CSubmenuArchenemy.java:243)
   at javax.swing.SwingWorker$1.call(Unknown Source)
   at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
   at java.util.concurrent.FutureTask.run(Unknown Source)
   at javax.swing.SwingWorker.run(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
natem75
 
Posts: 1
Joined: 15 Apr 2013, 14:06
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Max mtg » 15 Apr 2013, 15:02

@natem75, probably match.xml was corrupted.
Delete the file in your forge profile.


@all, looks like we should add there some buttons to reset match.xml and editor.xml - it will be easier than explain each time which file user should delete.
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: Bug Reports (snapshot builds)

Postby Diogenes » 16 Apr 2013, 15:22

Momentary Blink has some very strange behavior. I'm not versed in scripting, but I can't find anything in there that would explain the following (is there perhaps some vestigial hardcoding from before it was scriptable?) [Edit: Nvm - it's entirely explainable by poor scripting.]

First, the characteristics of any creature it returns to the battlefields cannot be altered. The creature cannot take damage, be enchanted or equipped, and will not receive static bonuses. Also, the returned card is not a new object and retains some information (if the target of Momentary Blink had damage marked on it, that damage will never clear from its returned version - nor will summoning sickness.)

I first noticed this when the AI blinked its Platinum Angel in a Plane Chase match. I tested for a bit in the same match, and something else odd happened that I haven't been able to reproduce. I blinked an enchanted creature, and when the Momentary Blink went on the stack, an actual Disenchant appeared above it targeting the aura (mousing over the event on the stack showed a Disenchant with an actual card ID.)

Edit: This is why I shouldn't test/post right before going to bed. A human opponent would never cast a Disenchant in response to a Momentary Blink, but it's entirely possible the AI did. Its random deck was in white, and I wasn't paying any attention to it.

On a semi-related note, it would be great for testing if the scroll-down lists for "add a card to hand" and "add a card to play" were easier to navigate, and if it were easier to add multiples of the card you're looking for. Using a larger window or creating alphabetical sub-folders would be an instant and huge improvement. Often when I need a lot of cards to repeat a test several times, half my time or more is spent scrolling in those menues.
Last edited by Diogenes on 16 Apr 2013, 15:48, edited 3 times in total.
Diogenes
 
Posts: 201
Joined: 12 Jul 2012, 00:54
Has thanked: 39 times
Been thanked: 23 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 16 Apr 2013, 15:23

Is Cloudshift working properly?

These lists are not intended to be scrolled =) Start typying the card named to quickly get into the needed area. Recent cards history and add multiple cards at once would be great, I agree. Wish someone could do that.
Last edited by Max mtg on 16 Apr 2013, 15:26, edited 1 time in total.
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: Bug Reports (snapshot builds)

Postby Diogenes » 16 Apr 2013, 15:26

Max mtg wrote:Is Cloudshift working properly?

These lists are not intended to be scrolled =) Start typying the card named to quickly get into the needed area.
Cloudshift, Restoration Angel, and Liberate work correctly but they will not exile or 'reset' a creature brought back by Momentary Blink. Ghostway works correctly and will exile and reset a creature affected by Momentary Blink.

Also, typing makes the whole process... usable. I'm displeased with myself right now.
Last edited by Diogenes on 16 Apr 2013, 15:35, edited 1 time in total.
Diogenes
 
Posts: 201
Joined: 12 Jul 2012, 00:54
Has thanked: 39 times
Been thanked: 23 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 16 Apr 2013, 15:28

Need only one different spell to check - it could be either Momentary Blink wrongly scripted or the whole system that does not work.
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: Bug Reports (snapshot builds)

Postby Diogenes » 16 Apr 2013, 15:40

Bumping since I edited in my answer rather than replying.

Cloudshift, Restoration Angel, and Liberate work correctly but they will not exile or 'reset' a creature brought back by Momentary Blink. Ghostway works correctly and will exile and reset a creature affected by Momentary Blink.

Edit: Ignore the bit about the Disenchant. It threw me for a loop, but it's possible the AI cast it in response to the Momentary Blink and I failed to wrap my head around the AI's sometimes mysterious ways.
Diogenes
 
Posts: 201
Joined: 12 Jul 2012, 00:54
Has thanked: 39 times
Been thanked: 23 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 16 Apr 2013, 16:32

Diogenes wrote:On a semi-related note, it would be great for testing if the scroll-down lists for "add a card to hand" and "add a card to play" were easier to navigate, and if it were easier to add multiples of the card you're looking for. Using a larger window or creating alphabetical sub-folders would be an instant and huge improvement. Often when I need a lot of cards to repeat a test several times, half my time or more is spent scrolling in those menues.
Why not just use game state files? It's much simpler that way.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Symphonic » 16 Apr 2013, 19:37

Had a crash when trying to attack with my Servant of Nefarox after having played Moltensteel Dragon. The opponent had Tel-Jilad Archers and Jagged-Scar Archers at their side.
| Open
Description: [describe what you were doing when the crash occurred]

[spoiler=NullPointerException]
Code: Select all
Forge Version:    1.3.13-SNAPSHOT-r20997
Operating System: Windows 7 6.1 amd64
Java Version:     1.6.0_24 Sun Microsystems Inc.

java.lang.NullPointerException
   at forge.gui.match.views.VLog.updateConsole(VLog.java:116)
   at forge.gui.match.controllers.CLog.update(CLog.java:41)
   at forge.gui.match.controllers.CLog.update(CLog.java:49)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.util.MyObservable.updateObservers(MyObservable.java:38)
   at forge.GameLog.add(GameLog.java:61)
   at forge.game.zone.MagicStack.add(MagicStack.java:351)
   at forge.game.zone.MagicStack.chooseOrderOfSimultaneousStackEntry(MagicStack.java:1057)
   at forge.game.zone.MagicStack.chooseOrderOfSimultaneousStackEntryAll(MagicStack.java:997)
   at forge.game.phase.PhaseHandler.setPriority(PhaseHandler.java:159)
   at forge.game.phase.PhaseHandler.resetPriority(PhaseHandler.java:172)
   at forge.game.phase.PhaseHandler.handleBeginPhase(PhaseHandler.java:407)
   at forge.gui.InputProxy$1.run(InputProxy.java:66)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
[/spoiler]
Symphonic
 
Posts: 146
Joined: 10 Dec 2011, 19:09
Has thanked: 3 times
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 16 Apr 2013, 19:57

Hi, Symphonic!
That exception has been dealt with in r21013. But thanks for reporting anyway!

If you'd like to get a newer build, find updates in that folder:
http://cardforge.org/releases/snapshots ... -SNAPSHOT/
(aim for files ending with tar.bz2)
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: Bug Reports (snapshot builds)

Postby xdaft » 16 Apr 2013, 22:31

Code: Select all
Description: [describe what you were doing when the crash occurred]

[spoiler=NullPointerException][code]
Forge Version:    1.3.13-SNAPSHOT-r21030
Operating System: Windows 7 6.1 x86
Java Version:     1.7.0_17 Oracle Corporation

java.lang.NullPointerException
   at forge.deck.DeckFormat.getDeckConformanceProblem(DeckFormat.java:122)
   at forge.gui.home.sanctioned.CSubmenuConstructed.startGame(CSubmenuConstructed.java:100)
   at forge.gui.home.sanctioned.CSubmenuConstructed.access$3(CSubmenuConstructed.java:97)
   at forge.gui.home.sanctioned.CSubmenuConstructed$2.actionPerformed(CSubmenuConstructed.java:57)
   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.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$200(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(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)
[/code][/spoiler]
Clicked on Constructed mode then chose the AI to have random colored deck and for me custom user deck
xdaft
 
Posts: 9
Joined: 13 Jul 2012, 11:24
Has thanked: 7 times
Been thanked: 4 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 17 Apr 2013, 03:01

I just noticed two issues.

When only one creature is declared a blocker the Blocking symbol isn't drawn (when 2 creatures were blocking they were).

I lost a Thawing Glaciers during the second game of an ante match, but it was still in my deck in the third game (and I used it several times in that game).
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 17 Apr 2013, 04:54

@Xitax, I could not reproduce that. How did you 'chose the AI to have random colored deck'? If I leave alone Random 1 and Random 2 highlighted on AI's panel, everything works. As I switch to 'Custom user deck' a deck is already pre-selected and no exception could happen.

@Sol, These bugs seem non-urgent and unrelated to my latest changes, so I'd focus on other areas.
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: Bug Reports (snapshot builds)

Postby moomarc » 17 Apr 2013, 08:20

Diogenes wrote:On a semi-related note, it would be great for testing if the scroll-down lists for "add a card to hand" and "add a card to play" were easier to navigate, and if it were easier to add multiples of the card you're looking for. Using a larger window or creating alphabetical sub-folders would be an instant and huge improvement. Often when I need a lot of cards to repeat a test several times, half my time or more is spent scrolling in those menues.
Why scroll through the lists when you can just start typing the name of the card you want? Being able to add multiples would be handy though. Otherwise game state files are the way to go (as Sol pointed out)
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 23 guests


Who is online

In total there are 23 users online :: 0 registered, 0 hidden and 23 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 23 guests

Login Form