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 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
Re: Bug Reports (snapshot builds)
by friarsol » 11 Aug 2013, 21:47
I see it here, but how the hell did it get in his Quest deck?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?
- 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 belton180 » 12 Aug 2013, 11:27
Nope, I realize the problem now, I imported my custom deck that had a separate planes section and used it in my quest.friarsol wrote:I see it here, but how the hell did it get in his Quest deck?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?
- belton180
- Posts: 3
- Joined: 09 Jun 2013, 07:09
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by 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.
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.
Re: Bug Reports (snapshot builds)
by Marek14 » 21 Aug 2013, 13:45
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?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.
Re: Bug Reports (snapshot builds)
by 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 -
When I closed the error dialog and clicked "Start" again it worked.
EDIT: Added to TODO list (http://www.cardforge.org/bugz/view.php?id=730)
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.
Re: Bug Reports (snapshot builds)
by Sloth » 22 Aug 2013, 18:36
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.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)
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Bug Reports (snapshot builds)
by 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?)
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)
by spr » 24 Aug 2013, 04:14
Unable to replicate. Auto-switches OK.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.
Replicated. Added to to my TODO list (http://www.cardforge.org/bugz/view.php?id=725).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?)
Cheers,
Steve
Re: Bug Reports (snapshot builds)
by spr » 24 Aug 2013, 04:51
On my TODO list (http://www.cardforge.org/bugz/view.php?id=726).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.
Cheers,
Steve
Re: Bug Reports (snapshot builds)
by spr » 24 Aug 2013, 05:15
Added to my TODO list (http://www.cardforge.org/bugz/view.php?id=729).Marek14 wrote: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?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.
Is there any (technical) reason why conceeding might be prevented?
Cheers,
Steve
Re: Bug Reports (snapshot builds)
by Max mtg » 24 Aug 2013, 09:24
There was an input on top of the inputQueue requiring blockers to be declared.Marek14 wrote: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?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.
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)
by 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.
[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.
[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)
[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.
Re: Bug Reports (snapshot builds)
by 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.
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)
by friarsol » 24 Aug 2013, 21:14
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.spr wrote:Unable to replicate. Auto-switches OK.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.
- 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: No registered users and 16 guests