Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by friarsol » 08 Aug 2014, 22:32
Alright I see what the issue is, it's related to how triggers are put on the stack which doesn't quite handle the multiplayer dying during your own turn scenario properly.Hanmac wrote:tested Multiplayer Archenemy again,
if one of the cpu players die in his turn the game does not switch to the next one, it does hang and i can only close it
I'll try to figure out an appropriate fix this weekend.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Protean Scrivener » 09 Aug 2014, 21:38
Not sure if this is the right place to put it, but Ib Halfheart, Goblin Tactician doesn't work. Whenever I attack with goblins and they're blocked, his trigger/s will go onto the stack but when they resolve, nothing happens.
- Protean Scrivener
- Posts: 2
- Joined: 27 Feb 2014, 00:49
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Fizanko » 10 Aug 2014, 16:38
On r26925 , i wanted to give a go at a sealed deck mode using the Innistrad block.
After clicking on "Build New Sealed Deck" , i select
- Block/Set
- in the list i select Innistrad (block)
I'm then presented with this screen :

The Avacyn Restored set of the Innistrad block is missing in that choice
According to what i see for choosing the other blocks, there should be at least a line
2 ISD, 2 DKA , 2 AVR
in that list if more combination between the 3 sets of that blocks aren't possible.
After clicking on "Build New Sealed Deck" , i select
- Block/Set
- in the list i select Innistrad (block)
I'm then presented with this screen :

The Avacyn Restored set of the Innistrad block is missing in that choice
According to what i see for choosing the other blocks, there should be at least a line
2 ISD, 2 DKA , 2 AVR
in that list if more combination between the 3 sets of that blocks aren't possible.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Fizanko » 10 Aug 2014, 16:46
it looks like changing
Innistrad, 3/6/ISD, ISD DKA
into
Innistrad, 3/6/ISD, ISD DKA AVR
in the blocks.txt of .\res\blockdata\
solves the problem, but i'm wondering if it wasn't actually done on purpose, as it looks like you singled out the AVR set in that .txt file, any reason ?
Innistrad, 3/6/ISD, ISD DKA
into
Innistrad, 3/6/ISD, ISD DKA AVR
in the blocks.txt of .\res\blockdata\
solves the problem, but i'm wondering if it wasn't actually done on purpose, as it looks like you singled out the AVR set in that .txt file, any reason ?
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by friarsol » 10 Aug 2014, 17:20
This is intentional. AVR is a large set and is meant to be drafted, and created sealed decks, on it's own. Someone else asked about this very thing pretty recently.Fizanko wrote:but i'm wondering if it wasn't actually done on purpose, as it looks like you singled out the AVR set in that .txt file, any reason ?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Fizanko » 10 Aug 2014, 18:47
Sorry , didn't noticed it was already asked.
Thanks for confirmation that it was intentional
Thanks for confirmation that it was intentional
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Fizanko » 11 Aug 2014, 01:06
I had never tried to play both side, i mean setting the AI in Constructed to Human.
But trying so made me see some problems on r26925 :
By example, it's "2nd human" turn to see if he wants to keep his cards or mulligan.
Problem : "2nd human" cards in hand have "turned face down" illustration instead of their correct ones and no descriptions for his card, and so no way to know if he wants to keep his hand or mulligan

Now the game really start, 2nd Human is playing, his cards have a bit updated, but still the correct illustration isn't displayed in the hand (while this time you can at least still have descriptions of the cards and the correct illustration appear to the right)

And if i play by example on this display an Island , suddenly all the card get suddenly their correct illustrations in the hand

Meanwhile , 1st human hand card illustrations can be seen but you can't read the descriptions :

I guess that's some kind of peeking cheat prevention, but that fail a bit because the hand illustration are displayed so even without the description you can still see which cards are there.
I let the whole phases go for both 2nd and 1st human and reach 1st human turn, after he pick a card, the card is now displayed in his hand as black, while in the right of the screen the illustration and description of it is correct

And if i play a Plains (not the black card one, but another), suddenly the black card recieve its correct illustration :

But trying so made me see some problems on r26925 :
By example, it's "2nd human" turn to see if he wants to keep his cards or mulligan.
Problem : "2nd human" cards in hand have "turned face down" illustration instead of their correct ones and no descriptions for his card, and so no way to know if he wants to keep his hand or mulligan

Now the game really start, 2nd Human is playing, his cards have a bit updated, but still the correct illustration isn't displayed in the hand (while this time you can at least still have descriptions of the cards and the correct illustration appear to the right)

And if i play by example on this display an Island , suddenly all the card get suddenly their correct illustrations in the hand

Meanwhile , 1st human hand card illustrations can be seen but you can't read the descriptions :

I guess that's some kind of peeking cheat prevention, but that fail a bit because the hand illustration are displayed so even without the description you can still see which cards are there.
I let the whole phases go for both 2nd and 1st human and reach 1st human turn, after he pick a card, the card is now displayed in his hand as black, while in the right of the screen the illustration and description of it is correct

And if i play a Plains (not the black card one, but another), suddenly the black card recieve its correct illustration :

probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by bevryde » 11 Aug 2014, 03:38
Description: Game->Concede in a preconstructed game with 1 human and 3 AI seems to crash Forge. Seen that again. Sometimes click on "concede" shows no reaction, sometimes it works, sometimes it crashes.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.24-SNAPSHOT-r26925 (mixed revisions detected; please update from the root directory)
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_11 Oracle Corporation
java.lang.NullPointerException
at forge.game.card.Card.canBeShownTo(Card.java:8822)
at forge.control.FControl.mayShowCard(FControl.java:372)
at forge.view.arcane.CardPanel.paintComponent(CardPanel.java:323)
at javax.swing.JComponent.paint(Unknown Source)
at forge.view.arcane.CardPanel.paint(CardPanel.java:291)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at forge.view.arcane.CardArea.paint(CardArea.java:277)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at forge.toolbox.FScrollPane.paint(FScrollPane.java:83)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at java.awt.Window.paint(Unknown Source)
at forge.toolbox.FSkin$SkinnedFrame.paint(FSkin.java:1733)
at javax.swing.RepaintManager$3.run(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1100(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(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.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)
Re: Bug Reports (snapshot builds)
by friarsol » 13 Aug 2014, 03:34
r27047
AI casts Into the Roil at my Flickering Spirit. In response I flicker my Spirit. But when Into the Roil resolves my Spirit still gets bounced. It shouldn't.
AI casts Into the Roil at my Flickering Spirit. In response I flicker my Spirit. But when Into the Roil resolves my Spirit still gets bounced. It shouldn't.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by mastroego » 13 Aug 2014, 10:00
11 August Snapshot
AI issue + bug
(unless I'm missing something once again).
I use Ghost Quarter, giving the AI the chance to search for a basic land - which it doesn't.
Happened several times, so it's not an instance of the AI not having any more basic lands or something.
I believe this to be a general issue, I don't think the AI is smart enough to suspect I have Archive Trap ready to hit it
Now, here's the thing: the AI doesn't search its library, but I can still cast Archive Trap for its trap cost.
So I suspect the AI does search its library after all but then the land isn't played for some reason.
EDIT: on the stack panel, after I use Ghost Quarter, it says "Human searches Doran's library" instead of "Doran searches Doran's library". And I actually don't get to search anything, by the way. Might be an useful hint to the nature of the bug.
EDIT 2: against the opponent Radiant Field the behavior seems normal. Still I witnessed the above problem against 2 or 3 different AI players.
AI issue + bug
(unless I'm missing something once again).
I use Ghost Quarter, giving the AI the chance to search for a basic land - which it doesn't.
Happened several times, so it's not an instance of the AI not having any more basic lands or something.
I believe this to be a general issue, I don't think the AI is smart enough to suspect I have Archive Trap ready to hit it

Now, here's the thing: the AI doesn't search its library, but I can still cast Archive Trap for its trap cost.
So I suspect the AI does search its library after all but then the land isn't played for some reason.
EDIT: on the stack panel, after I use Ghost Quarter, it says "Human searches Doran's library" instead of "Doran searches Doran's library". And I actually don't get to search anything, by the way. Might be an useful hint to the nature of the bug.
EDIT 2: against the opponent Radiant Field the behavior seems normal. Still I witnessed the above problem against 2 or 3 different AI players.
Re: Bug Reports (snapshot builds)
by philipschall » 13 Aug 2014, 21:11
This happens when I win a match and open a booster. I try to go back to the menu and I can't. I have to quit forge. When I get back on, the cards I won don't show up. This only happens with an old quest of mine, where I pretty much have 4 of every card. It'd suck to have to throw this quest away.
- | Open
- [spoiler=IndexOutOfBoundsException]
- Code: Select all
Forge Version: 1.5.23-r26900
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_67 Oracle Corporation
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at forge.quest.data.QuestAchievements.addWin(QuestAchievements.java:78)
at forge.screens.match.QuestWinLose.actionOnQuit(QuestWinLose.java:246)
at forge.screens.match.ControlWinLose$3.actionPerformed(ControlWinLose.java:50)
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.AWTEventMulticaster.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)
- philipschall
- Posts: 4
- Joined: 13 Aug 2014, 20:32
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 14 Aug 2014, 01:30
Could you send your quest file to me so I can test it out? The code's changed so I'm not 100% sure where this error is pointing at and having the quest will help me narrow it down again.philipschall wrote:This happens when I win a match and open a booster. I try to go back to the menu and I can't. I have to quit forge. When I get back on, the cards I won don't show up. This only happens with an old quest of mine, where I pretty much have 4 of every card. It'd suck to have to throw this quest away.[/spoiler]
- | Open
- [spoiler=IndexOutOfBoundsException]
- Code: Select all
Forge Version: 1.5.23-r26900
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_67 Oracle Corporation
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at forge.quest.data.QuestAchievements.addWin(QuestAchievements.java:78)
at forge.screens.match.QuestWinLose.actionOnQuit(QuestWinLose.java:246)
at forge.screens.match.ControlWinLose$3.actionPerformed(ControlWinLose.java:50)
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.AWTEventMulticaster.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)
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by friarsol » 14 Aug 2014, 02:26
I'm getting a compiler error, looks like it's related to the stuff you just committed last night Krazy:
Error:(65, 24) java: forge.itemmanager.SFilterUtil.Tokenizer is not abstract and does not override abstract method remove() in java.util.Iterator
Error:(65, 24) java: forge.itemmanager.SFilterUtil.Tokenizer is not abstract and does not override abstract method remove() in java.util.Iterator
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 14 Aug 2014, 02:43
Ah, sorry! Fixing that now. I'm developing on JDK8 (with code compliance for 7) and remove() is a default method in Java 8. IntelliJ should be yelling at me about that, but it's good to know that it doesn't. Will commit in just a sec.friarsol wrote:I'm getting a compiler error, looks like it's related to the stuff you just committed last night Krazy:
Error:(65, 24) java: forge.itemmanager.SFilterUtil.Tokenizer is not abstract and does not override abstract method remove() in java.util.Iterator
Edit: Pulling the latest commit will allow the program to compile again.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by friarsol » 14 Aug 2014, 02:52
Thanks. I was too lazy to downgrade just to get some Quest mode fix and also too lazy to go pull my phone off the charger.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Who is online
Users browsing this forum: Bing [Bot] and 44 guests