It is currently 18 May 2025, 20:35
   
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 » 17 Feb 2014, 14:51

Max mtg wrote:You must be using devmode cheats to get that buggy behavior.
Try casting Shock from hand.

UPD: Nevermind, now (r24874) the game should add triggers properly after you play Shock either way
Thanks. Yea it was using devmode. It's much easier to test new cards this way, so I'm glad it works as I expect when going through this route.
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 friarsol » 17 Feb 2014, 23:16

r24884

Quest Mode Matches seem to be broken currently. As soon as the game starts (after mulliganing) the game ends and I'm told I won (Actually looking at the log, we both win and lose simultaneously). Then when the next game starts, I'm told I lost the last game and asked if I want to play/draw. Then when that game starts I get this crash:

java.lang.NullPointerException
at forge.gui.match.QuestWinLose.awardEventCredits(QuestWinLose.java:328)
at forge.gui.match.QuestWinLose.populateCustomPanel(QuestWinLose.java:157)
at forge.gui.match.ViewWinLose.<init>(ViewWinLose.java:116)
at forge.control.FControlGameEventHandler$6.run(FControlGameEventHandler.java:145)

I guess because the loss states are all messed up.
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 VIESCA » 17 Feb 2014, 23:39

Description: I WAS USSING THE DECK EDITOR
UncheckedExecutionException | Open
Code: Select all
Forge Version:    1.5.12-r${forge.revision}${forge.specialStatus} (mixed revisions detected; please update from the root directory)
Operating System: Windows XP 5.1 x86
Java Version:     1.7.0_51 Oracle Corporation

com.google.common.util.concurrent.UncheckedExecutionException: java.lang.ArrayIndexOutOfBoundsException: -1
   at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
   at com.google.common.cache.LocalCache.get(LocalCache.java:3932)
   at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3936)
   at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4806)
   at forge.ImageCache.getImage(ImageCache.java:231)
   at forge.ImageCache.getOriginalImage(ImageCache.java:152)
   at forge.ImageCache.scaleImage(ImageCache.java:192)
   at forge.ImageCache.getImage(ImageCache.java:110)
   at forge.gui.toolbox.itemmanager.views.ImageView$CardViewDisplay.drawItemImage(ImageView.java:976)
   at forge.gui.toolbox.itemmanager.views.ImageView$CardViewDisplay.paintComponent(ImageView.java:946)
   at javax.swing.JComponent.paint(Unknown Source)
   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.gui.toolbox.FScrollPane.paint(FScrollPane.java:66)
   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.JViewport.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.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.paint(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.BufferStrategyPaintManager.paint(Unknown Source)
   at javax.swing.RepaintManager.paint(Unknown Source)
   at javax.swing.JComponent._paintImmediately(Unknown Source)
   at javax.swing.JComponent.paintImmediately(Unknown Source)
   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$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.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)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
   at java.util.ArrayList.elementData(Unknown Source)
   at java.util.ArrayList.get(Unknown Source)
   at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(Unknown Source)
   at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(Unknown Source)
   at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(Unknown Source)
   at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
   at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
   at javax.imageio.ImageIO.read(Unknown Source)
   at javax.imageio.ImageIO.read(Unknown Source)
   at forge.ImageLoader._findFile(ImageLoader.java:88)
   at forge.ImageLoader.load(ImageLoader.java:66)
   at forge.ImageLoader.load(ImageLoader.java:16)
   at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
   at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
   at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
   at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
   ... 69 more
Attachments
2014-02-17-00.txt
I WAS USSING THE GIFT OR INMORTALITY
(3.6 KiB) Downloaded 293 times
VIESCA
 
Posts: 1
Joined: 17 Feb 2014, 22:42
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby moomarc » 18 Feb 2014, 01:18

friarsol wrote:r24884

Quest Mode Matches seem to be broken currently. As soon as the game starts (after mulliganing) the game ends and I'm told I won (Actually looking at the log, we both win and lose simultaneously). Then when the next game starts, I'm told I lost the last game and asked if I want to play/draw. Then when that game starts I get this crash:

java.lang.NullPointerException
at forge.gui.match.QuestWinLose.awardEventCredits(QuestWinLose.java:328)
at forge.gui.match.QuestWinLose.populateCustomPanel(QuestWinLose.java:157)
at forge.gui.match.ViewWinLose.<init>(ViewWinLose.java:116)
at forge.control.FControlGameEventHandler$6.run(FControlGameEventHandler.java:145)

I guess because the loss states are all messed up.
Sorry, that must have been me trying to get team victories working. I won't be on again until Wednesday, but r24881 and r24882 need to be reverted. Alternatively, I think the issue is that I checked the team values against -1, which works great with constructed matches because they assign team numbers, but -1 was the default value for team before.

So either revert or try change GameOutcome.getWinningTeam to return 0 instead, and in ViewWinLose compare winningTeam != 0. Or if anyone can implement team victories better, that would be awesome.
-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

Re: Bug Reports (snapshot builds)

Postby friarsol » 18 Feb 2014, 01:47

I'll take a look marc. It should be simpler to just make sure all Players end up on different teams even if they don't go through the Constructed match UI.
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 friarsol » 18 Feb 2014, 02:27

r24886

Rite of Passage doesn't seem to interact with Persist creatures dying due to damage, when they return to the battlefield the Rite trigger still affects them even though they are a different game object. This pretty apparent playing against the Apu Quest deck.
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 friarsol » 18 Feb 2014, 02:55

Hey Max, what's the deal with checkin 24886? That's kind of a cryptic description, and now I'm playing against Treebard Quest deck, and he has a Bosk Banneret in play and 3 lands and is tapping out during M2, but not casting any cards. I looked at the AIs hand and he has two 5 CMC cards in hand. Was this intentionally put in to test some code?

It looks like cards are being just.. removed from his hand and not going anywhere in these circumstances?
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 » 18 Feb 2014, 09:09

The objective of this change is to have AI tests use a separate list of mana. (not the one returned by sa.getPayingMana())

That what you've seen is a rare situation when AI though it would be able to pay the mana cost but apparently could not.
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 swordshine » 18 Feb 2014, 11:55

Prompt string "Multikicker for" didn't show up for multikicker cards.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 18 Feb 2014, 13:03

Max mtg wrote:That what you've seen is a rare situation when AI though it would be able to pay the mana cost but apparently could not.
Well, it seemed to be happening everytime the AI tried to cast something that match when he had a cost reducing permanent in play, where the cost reduction was being used to cast the spell (3 mana available from lands, cost reduced by 1, cmc 4), which isn't the most common scenario, but I also wouldn't necessarily call it rare.
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 swordshine » 18 Feb 2014, 13:21

Max mtg wrote:The objective of this change is to have AI tests use a separate list of mana. (not the one returned by sa.getPayingMana())

That what you've seen is a rare situation when AI though it would be able to pay the mana cost but apparently could not.
AI Commander doesn't suffer the cost raise effect. It's very unfair :(
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 18 Feb 2014, 23:35

Yes, AI had some incorrect cost calculation code. I believe I've fixed it (24901)

There's another bug, that is quite puzzling for me:
Give AI Goblin Electromancer, put an Island into play for AI, add Mana Leak to its hand. The cast some spell so that AI could counter.
The strange point here is that I am asked to pay {2} - not {3} as the card rules read. Was the cost of 'unless its contoller pays {3}' reduced by Goblin Electromancer?
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 friarsol » 19 Feb 2014, 00:02

Max mtg wrote:Yes, AI had some incorrect cost calculation code. I believe I've fixed it (24901)

There's another bug, that is quite puzzling for me:
Give AI Goblin Electromancer, put an Island into play for AI, add Mana Leak to its hand. The cast some spell so that AI could counter.
The strange point here is that I am asked to pay {2} - not {3} as the card rules read. Was the cost of 'unless its contoller pays {3}' reduced by Goblin Electromancer?
The Electromancer definitely shouldn't be reducing the unless cost. I just downloaded the last release (1.5.12), and when Mana Leak is played in this scenario I'm prompted to pay 3, so something since the release is causing that issue.
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 Agetian » 23 Feb 2014, 06:27

r24942: I noticed a UI issue with the deck viewer: the deck viewer changes its size when you look at different cards, so it becomes bigger and smaller all the time, which is quite irritating. I think this is caused by the card detail box shrinking and enlarging depending on the length of the card name (as far as I could tell). A good way to reproduce: load some Mono-Blue Devotion deck, such as the one by Pierre Dagen from Pro Tour Theros, for viewing in the deck viewer (e.g. double-click it in the Constructed deck list). Look at Master of Waves and then at Thassa, God of the Sea.

- Agetian
Agetian
Programmer
 
Posts: 3486
Joined: 14 Mar 2011, 05:58
Has thanked: 683 times
Been thanked: 569 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 23 Feb 2014, 14:13

friarsol wrote:
Max mtg wrote:Yes, AI had some incorrect cost calculation code. I believe I've fixed it (24901)

There's another bug, that is quite puzzling for me:
Give AI Goblin Electromancer, put an Island into play for AI, add Mana Leak to its hand. The cast some spell so that AI could counter.
The strange point here is that I am asked to pay {2} - not {3} as the card rules read. Was the cost of 'unless its contoller pays {3}' reduced by Goblin Electromancer?
The Electromancer definitely shouldn't be reducing the unless cost. I just downloaded the last release (1.5.12), and when Mana Leak is played in this scenario I'm prompted to pay 3, so something since the release is causing that issue.
I hope this is no longer an issue after r24950.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: Google [Bot] and 55 guests


Who is online

In total there are 56 users online :: 1 registered, 0 hidden and 55 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: Google [Bot] and 55 guests

Login Form