It is currently 21 May 2025, 15:51
   
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 timmermac » 11 Aug 2013, 21:40

I wonder if this a plane that hasn't been added yet? Did you create a decklist outside the game and add it?
"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
User avatar
timmermac
Tester
 
Posts: 1512
Joined: 17 May 2010, 20:36
Has thanked: 18 times
Been thanked: 95 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 11 Aug 2013, 21:47

timmermac wrote:I wonder if this a plane that hasn't been added yet? Did you create a decklist outside the game and add it?
I see it here, but how the hell did it get in his 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 belton180 » 12 Aug 2013, 11:27

friarsol wrote:
timmermac wrote:I wonder if this a plane that hasn't been added yet? Did you create a decklist outside the game and add it?
I see it here, but how the hell did it get in his Quest deck?
Nope, I realize the problem now, I imported my custom deck that had a separate planes section and used it in my quest.
belton180
 
Posts: 3
Joined: 09 Jun 2013, 07:09
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Diogenes » 21 Aug 2013, 13:35

Sorry if these have been mentioned, I've been lurking intermittently through summer.

The "Scale Images Larger" button in Preferences has stopped working. Images scale even with the option unchecked, making it very difficult to resize the picture panel to display images at their proper resolution.

Attempting to concede during the declare blockers step of an opponent's turn (while under attack) does not end the game until you pass priority. This can be disorienting, causing you to unintentionally quit the match.
Diogenes
 
Posts: 201
Joined: 12 Jul 2012, 00:54
Has thanked: 39 times
Been thanked: 23 times

Re: Bug Reports (snapshot builds)

Postby Marek14 » 21 Aug 2013, 13:45

Diogenes wrote:Attempting to concede during the declare blockers step of an opponent's turn (while under attack) does not end the game until you pass priority. This can be disorienting, causing you to unintentionally quit the match.
Basically, if you have to declare blockers, nothing else seems to work. An idea: what if the background of the action window changed color on declaration of attackers or blockers to make that fact more apparent?
Marek14
Tester
 
Posts: 2771
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 302 times

Re: Bug Reports (snapshot builds)

Postby spr » 22 Aug 2013, 18:28

r23000 : Had this pop up a few times now but seems very intermittent. Occurs when I click "Start" with the screen in the following state -

bug.png

When I closed the error dialog and clicked "Start" again it worked.

RuntimeException | Open
Code: Select all
Forge Version:    r23000
Operating System: Windows 7 6.1 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.RuntimeException: Generate2ColorDeck : get2ColorDeck -- looped too much -- Cr12
   at forge.deck.generate.GenerateColoredDeckBase.addSome(GenerateColoredDeckBase.java:112)
   at forge.deck.generate.GenerateColoredDeckBase.addCmcAdjusted(GenerateColoredDeckBase.java:228)
   at forge.deck.generate.GenerateColoredDeckBase.addCreaturesAndSpells(GenerateColoredDeckBase.java:92)
   at forge.deck.generate.Generate2ColorDeck.getDeck(Generate2ColorDeck.java:91)
   at forge.deck.DeckgenUtil.buildColorDeck(DeckgenUtil.java:77)
   at forge.gui.toolbox.special.FDeckChooser.getDeck(FDeckChooser.java:294)
   at forge.gui.home.sanctioned.CSubmenuConstructed.startGame(CSubmenuConstructed.java:101)
   at forge.gui.home.sanctioned.CSubmenuConstructed.access$3(CSubmenuConstructed.java:100)
   at forge.gui.home.sanctioned.CSubmenuConstructed$2.actionPerformed(CSubmenuConstructed.java:59)
   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)

EDIT: Added to TODO list (http://www.cardforge.org/bugz/view.php?id=730)
Last edited by spr on 24 Aug 2013, 05:27, edited 2 times in total.
User avatar
spr
 
Posts: 213
Joined: 06 Jul 2013, 19:31
Has thanked: 28 times
Been thanked: 60 times

Re: Bug Reports (snapshot builds)

Postby Sloth » 22 Aug 2013, 18:36

spr wrote:r23000 : Had this pop up a few times now but seems very intermittent. Occurs when I click "Start" with the screen in the following state -

bug.png

When I closed the error dialog and clicked "Start" again it worked.

RuntimeException | Open
Code: Select all
Forge Version:    r23000
Operating System: Windows 7 6.1 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.RuntimeException: Generate2ColorDeck : get2ColorDeck -- looped too much -- Cr12
   at forge.deck.generate.GenerateColoredDeckBase.addSome(GenerateColoredDeckBase.java:112)
   at forge.deck.generate.GenerateColoredDeckBase.addCmcAdjusted(GenerateColoredDeckBase.java:228)
   at forge.deck.generate.GenerateColoredDeckBase.addCreaturesAndSpells(GenerateColoredDeckBase.java:92)
   at forge.deck.generate.Generate2ColorDeck.getDeck(Generate2ColorDeck.java:91)
   at forge.deck.DeckgenUtil.buildColorDeck(DeckgenUtil.java:77)
   at forge.gui.toolbox.special.FDeckChooser.getDeck(FDeckChooser.java:294)
   at forge.gui.home.sanctioned.CSubmenuConstructed.startGame(CSubmenuConstructed.java:101)
   at forge.gui.home.sanctioned.CSubmenuConstructed.access$3(CSubmenuConstructed.java:100)
   at forge.gui.home.sanctioned.CSubmenuConstructed$2.actionPerformed(CSubmenuConstructed.java:59)
   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)
This happens when the random deck generator somehow fails to build a deck with the card pool it has randomly chosen. Throwing an error message in this (fairly common) case is a suboptimal solution, but nobody cared about it enough to fix it.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 24 Aug 2013, 02:47

Combat and Stack are in the same pane.

The Combat tab doesn't auto-switch when the Stack empties in the middle of combat. This is much more noticeable when tabs are hidden, since I go from a resolving stack to just emptiness.

Then if I show the tabs, I can switch over to Combat, but if I hide them after I switch to combat manually, the Stack pushes itself to the front (it's first in the pane so I think maybe something weird is in the show/hide tab logic?)
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 spr » 24 Aug 2013, 04:14

friarsol wrote:The Combat tab doesn't auto-switch when the Stack empties in the middle of combat. This is much more noticeable when tabs are hidden, since I go from a resolving stack to just emptiness.
Unable to replicate. Auto-switches OK.

friarsol wrote:Then if I show the tabs, I can switch over to Combat, but if I hide them after I switch to combat manually, the Stack pushes itself to the front (it's first in the pane so I think maybe something weird is in the show/hide tab logic?)
Replicated. Added to to my TODO list (http://www.cardforge.org/bugz/view.php?id=725).

Cheers,
Steve
User avatar
spr
 
Posts: 213
Joined: 06 Jul 2013, 19:31
Has thanked: 28 times
Been thanked: 60 times

Re: Bug Reports (snapshot builds)

Postby spr » 24 Aug 2013, 04:51

Diogenes wrote:The "Scale Images Larger" button in Preferences has stopped working. Images scale even with the option unchecked, making it very difficult to resize the picture panel to display images at their proper resolution.
On my TODO list (http://www.cardforge.org/bugz/view.php?id=726).

Cheers,
Steve
User avatar
spr
 
Posts: 213
Joined: 06 Jul 2013, 19:31
Has thanked: 28 times
Been thanked: 60 times

Re: Bug Reports (snapshot builds)

Postby spr » 24 Aug 2013, 05:15

Marek14 wrote:
Diogenes wrote:Attempting to concede during the declare blockers step of an opponent's turn (while under attack) does not end the game until you pass priority. This can be disorienting, causing you to unintentionally quit the match.
Basically, if you have to declare blockers, nothing else seems to work. An idea: what if the background of the action window changed color on declaration of attackers or blockers to make that fact more apparent?
Added to my TODO list (http://www.cardforge.org/bugz/view.php?id=729).

Is there any (technical) reason why conceeding might be prevented?

Cheers,
Steve
User avatar
spr
 
Posts: 213
Joined: 06 Jul 2013, 19:31
Has thanked: 28 times
Been thanked: 60 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 24 Aug 2013, 09:24

Marek14 wrote:
Diogenes wrote:Attempting to concede during the declare blockers step of an opponent's turn (while under attack) does not end the game until you pass priority. This can be disorienting, causing you to unintentionally quit the match.
Basically, if you have to declare blockers, nothing else seems to work. An idea: what if the background of the action window changed color on declaration of attackers or blockers to make that fact more apparent?
There was an input on top of the inputQueue requiring blockers to be declared.
Now the concede action also removes the top input waiting in the queue - so that you'll be able to end game this time.
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 » 24 Aug 2013, 11:19

Tabs are not properly cleaned up between games. For instance, if the user plays a hotseat game, and then continues to play games versus AI opponents, the "2nd Human Hand" panel will not be removed until Forge is restarted. It retains whatever cards were present at the end of the hotseat game. If the user starts a multiplayer game with four opponents, and then plays a multiplayer mode but selects only one opponent, the fields and command zones of the second, third, and fourth AI opponents will carry over.

[Update: this also allows the player to see an opponent's hand for the rest of the game after having had access to it via Mindslaver.]

Conceding in multiplayer games currently behaves oddly.

In Archenemy, conceding brings up a crash dump after passing priority. It is impossible to recover control, Forge must be restarted. Here are the three I received in three consecutive games.

IllegalStateException | Open
Code: Select all
Forge Version:    1.4.7-SNAPSHOT-r23007
Operating System: Windows Vista 6.0 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.IllegalStateException: No opponents left ingame for Sebastian
   at forge.game.player.Player.getOpponent(Player.java:290)
   at forge.card.TriggerReplacementBase.meetsCommonRequirements(TriggerReplacementBase.java:226)
   at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:265)
   at forge.card.trigger.TriggerHandler.canRunTrigger(TriggerHandler.java:289)
   at forge.card.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:262)
   at forge.card.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:233)
   at forge.card.trigger.TriggerHandler.runWaitingTriggers(TriggerHandler.java:183)
   at forge.game.GameAction.checkStateEffects(GameAction.java:870)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:951)
   at forge.game.GameAction.startGame(GameAction.java:1491)
   at forge.game.Match$1.run(Match.java:103)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
IllegalStateException | Open
Code: Select all
Forge Version:    1.4.7-SNAPSHOT-r23007
Operating System: Windows Vista 6.0 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.IllegalStateException: No opponents left ingame for Byron
   at forge.game.player.Player.getOpponent(Player.java:290)
   at forge.card.cardfactory.CardFactoryUtil.xCount(CardFactoryUtil.java:973)
   at forge.card.ability.AbilityUtils.xCount(AbilityUtils.java:1244)
   at forge.card.ability.AbilityUtils.calculateAmount(AbilityUtils.java:355)
   at forge.card.staticability.StaticAbilityContinuous.applyContinuousAbility(StaticAbilityContinuous.java:114)
   at forge.card.staticability.StaticAbility.applyAbility(StaticAbility.java:244)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:745)
   at forge.game.GameAction.changeZone(GameAction.java:246)
   at forge.game.GameAction.moveTo(GameAction.java:417)
   at forge.game.GameAction.moveTo(GameAction.java:396)
   at forge.game.GameAction.moveToHand(GameAction.java:533)
   at forge.game.player.Player.doDraw(Player.java:1346)
   at forge.game.player.Player.drawCards(Player.java:1280)
   at forge.game.player.Player.drawCard(Player.java:1238)
   at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:291)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:985)
   at forge.game.GameAction.startGame(GameAction.java:1491)
   at forge.game.Match$1.run(Match.java:103)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
IllegalStateException | Open
Code: Select all
Forge Version:    1.4.7-SNAPSHOT-r23007
Operating System: Windows Vista 6.0 x86
Java Version:     1.7.0_25 Oracle Corporation

java.lang.IllegalStateException: No opponents left ingame for Sylvia
   at forge.game.player.Player.getOpponent(Player.java:290)
   at forge.game.ai.AiAttackController.<init>(AiAttackController.java:78)
   at forge.game.ai.AiController.declareAttackers(AiController.java:761)
   at forge.game.player.PlayerControllerAi.declareAttackers(PlayerControllerAi.java:342)
   at forge.game.phase.PhaseHandler.declareAttackersTurnBasedAction(PhaseHandler.java:482)
   at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:307)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:985)
   at forge.game.GameAction.startGame(GameAction.java:1491)
   at forge.game.Match$1.run(Match.java:103)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
In Vanguard and Planechase, it is impossible to concede on the player's turn until the user presses any two of the three available concession buttons (X button, Dock concession button, menu bar Game>Concede,) and passes priority. Pressing only one of these buttons gives no indication that the user has attempted to concede, and the user can play spells and pay costs normally, however nothing on the stack will resolve. Hitting a second concession button and passing priority will cause the game to end.

[Edit, lost this in formatting somehow: The game will end in a draw, as all opponents will be recorded as simultaneously having conceded along with the player.]

Conceding during an opponent's turn causes the remaining AI players to finish the match, without the spectator controls or speed regulation of Constructed AI vs AI matches. The player cannot quit or interact with the game, although Vanguard matches do end quickly. This is much more annoying in Planechase matches with a larger number of opponents, where each roll of the planar die generates a prompt which must be dismissed with a mouse click.
Last edited by Diogenes on 25 Aug 2013, 04:40, 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 friarsol » 24 Aug 2013, 21:04

r23014

Rite of Passage doesn't interact correctly with Persist. AI attacks with Kitchen Finks and I block with a 3/3. Finks returns w/ a -1/-1 counter, but the Rite of Passage still grants a +1/+1 counter even though the Finks that returned isn't the same one that received damage.

Additionally, there's a painting issue with Persist, where it doesn't redraw, so it still shows the Attack symbol on the card, which is very confusing.
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 » 24 Aug 2013, 21:14

spr wrote:
friarsol wrote:The Combat tab doesn't auto-switch when the Stack empties in the middle of combat. This is much more noticeable when tabs are hidden, since I go from a resolving stack to just emptiness.
Unable to replicate. Auto-switches OK.
This only seems to happen occasionally for me. I only ever notice it when more than one thing is on the stack before it starts resolving. I'll see if I can track down a repro.
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 27 guests


Who is online

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

Login Form