It is currently 17 May 2025, 19:01
   
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 friarsol » 08 Aug 2014, 22:32

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
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.

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)

Postby 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)

Postby 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 :
Image

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)
User avatar
Fizanko
Tester
 
Posts: 780
Joined: 07 Feb 2014, 11:24
Has thanked: 155 times
Been thanked: 94 times

Re: Bug Reports (snapshot builds)

Postby 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 ?
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)
User avatar
Fizanko
Tester
 
Posts: 780
Joined: 07 Feb 2014, 11:24
Has thanked: 155 times
Been thanked: 94 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 10 Aug 2014, 17:20

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 ?
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.
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 Fizanko » 10 Aug 2014, 18:47

Sorry , didn't noticed it was already asked.
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)
User avatar
Fizanko
Tester
 
Posts: 780
Joined: 07 Feb 2014, 11:24
Has thanked: 155 times
Been thanked: 94 times

Re: Bug Reports (snapshot builds)

Postby 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

Image

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)

Image

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

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

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
Image

And if i play a Plains (not the black card one, but another), suddenly the black card recieve its correct illustration :
Image
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)
User avatar
Fizanko
Tester
 
Posts: 780
Joined: 07 Feb 2014, 11:24
Has thanked: 155 times
Been thanked: 94 times

Re: Bug Reports (snapshot builds)

Postby 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)
User avatar
bevryde
 
Posts: 109
Joined: 06 Aug 2014, 04:01
Has thanked: 3 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby 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.
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 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 :wink:

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.
mastroego
 
Posts: 236
Joined: 22 Sep 2013, 14:04
Has thanked: 28 times
Been thanked: 16 times

Re: Bug Reports (snapshot builds)

Postby 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)
[/spoiler]
philipschall
 
Posts: 4
Joined: 13 Aug 2014, 20:32
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 14 Aug 2014, 01:30

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.

| 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)
[/spoiler]
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.
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby 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
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 KrazyTheFox » 14 Aug 2014, 02:43

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
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.

Edit: Pulling the latest commit will allow the program to compile again.
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby 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

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 39 guests


Who is online

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

Login Form