Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Agetian, friarsol, Blacksmith, KrazyTheFox, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by elcnesh » 19 Mar 2015, 11:47
Fixed!xbon wrote:r29088,
Starting Duel does not generate random deck if a deck was played previously while program was open., have to reselect random generated deck before pressing start to generate.
I can't reproduce either of these... They're definitely related, as they both mean that an AI is actually treated as a human player, but that doesn't happen for me. Can you try again/give steps to reproduce? ThanksSnowstorm wrote:1. In 3+ multiplayer with the bots, any bot past the first bot will not function at all and can be used as if they were another human player or under Mindslaver effect and they also go through priority during your turn as well as there own.
2. When conceding in 3+ multiplayer every other AI besides the first AI concedes as well as creating more than one conceding message per AI (except the one that" won"). This can be seen in the screenshot below (the third concede message happened off screen).
- elcnesh
- Posts: 290
- Joined: 16 May 2014, 15:11
- Location: Netherlands
- Has thanked: 34 times
- Been thanked: 92 times
Re: Bug Reports (snapshot builds)
by Hanmac » 19 Mar 2015, 17:39
Happens when i attack with allin
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.38-SNAPSHOT-r-1
Operating System: Linux 3.16.0-31-lowlatency amd64
Java Version: 1.7.0_75 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:922)
at java.util.HashMap$KeyIterator.next(HashMap.java:956)
at java.util.AbstractCollection.addAll(AbstractCollection.java:341)
at java.util.HashSet.<init>(HashSet.java:117)
at forge.game.combat.CombatView.getAttackers(CombatView.java:59)
at forge.screens.match.TargetingOverlay.addArcsForCard(TargetingOverlay.java:279)
at forge.screens.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:160)
at forge.screens.match.TargetingOverlay.access$700(TargetingOverlay.java:57)
at forge.screens.match.TargetingOverlay$OverlayPanel.paintComponent(TargetingOverlay.java:389)
at javax.swing.JComponent.paint(JComponent.java:1046)
at javax.swing.JComponent.paintChildren(JComponent.java:879)
at javax.swing.JComponent.paint(JComponent.java:1055)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:879)
at javax.swing.JComponent.paint(JComponent.java:1055)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:879)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5219)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1529)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1452)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:311)
at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
at javax.swing.JComponent.paint(JComponent.java:1032)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
at java.awt.Window.paint(Window.java:3877)
at forge.toolbox.FSkin$SkinnedFrame.paint(FSkin.java:1783)
at javax.swing.RepaintManager$3.run(RepaintManager.java:819)
at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718)
at javax.swing.RepaintManager.access$1100(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:699)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:708)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Re: Bug Reports (snapshot builds)
by friarsol » 20 Mar 2015, 04:04
r29095
Rag Dealer allows me to remove cards from more than one graveyard. TargetsFromSingleZone must not being adhered to for whatever new InputTargets that exist.
Rag Dealer allows me to remove cards from more than one graveyard. TargetsFromSingleZone must not being adhered to for whatever new InputTargets that exist.
- 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 bevryde » 20 Mar 2015, 05:12
As I reported a few versions before, and it happens in PC and Android version:
- Constructed match
Player 1: Human, Deck = "Random User Deck"
Player 2: AI, Deck = Random Color Deck (Random 1 + Random 2)
Also Player 1 gets a random color deck sometimes.
- Constructed match
Player 1: Human, Deck = "Random User Deck"
Player 2: AI, Deck = Random Color Deck (Random 1 + Random 2)
Also Player 1 gets a random color deck sometimes.
Re: Bug Reports (snapshot builds)
by bioboy66 » 20 Mar 2015, 06:56
This bug was received after winning a duel in a quest. It has been received in multiple versions, this one being the most recent snapshot (1.5.37). There has been nothing of note on the battlefield in each occurance of the bug.
Description: This bug was received after winning a duel in a quest. It has been received in multiple versions, this one being the most recent snapshot (1.5.37). There has been nothing of note on the battlefield in each occurrence of the bug.
In addition (no bug report came up for this) forge would let me flashback think twice, then sending the flashbacked card into the graveyard, instead of exile.
Description: This bug was received after winning a duel in a quest. It has been received in multiple versions, this one being the most recent snapshot (1.5.37). There has been nothing of note on the battlefield in each occurrence of the bug.
In addition (no bug report came up for this) forge would let me flashback think twice, then sending the flashbacked card into the graveyard, instead of exile.
- ArithmeticException | Open
- Code: Select all
Forge Version: 1.5.37-r-1
Operating System: Windows Vista 6.0 x86
Java Version: 1.8.0_25 Oracle Corporation
java.lang.ArithmeticException: / by zero
at forge.quest.data.QuestAchievements.addWin(QuestAchievements.java:92)
at forge.quest.QuestWinLoseController.actionOnQuit(QuestWinLoseController.java:174)
at forge.screens.match.QuestWinLose.actionOnQuit(QuestWinLose.java:73)
at forge.screens.match.ControlWinLose$3.actionPerformed(ControlWinLose.java:54)
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$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.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)
- bioboy66
- Posts: 2
- Joined: 01 Jun 2014, 08:26
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by elcnesh » 20 Mar 2015, 10:50
I'm not sure what you mean here... You mention some settings, but what's the unexpected behaviour, exactly?bevryde wrote:As I reported a few versions before, and it happens in PC and Android version:
- Constructed match
Player 1: Human, Deck = "Random User Deck"
Player 2: AI, Deck = Random Color Deck (Random 1 + Random 2)
Also Player 1 gets a random color deck sometimes.
You probably have the setting "Wins for New Draft" set to 0 (if not, please say so!). I've added a safeguard to prevent that from happening in the future.bioboy66 wrote:This bug was received after winning a duel in a quest. It has been received in multiple versions, this one being the most recent snapshot (1.5.37). There has been nothing of note on the battlefield in each occurrence of the bug.
Has been fixed in the latest snapshot!bioboy66 wrote:In addition (no bug report came up for this) forge would let me flashback think twice, then sending the flashbacked card into the graveyard, instead of exile.
- elcnesh
- Posts: 290
- Joined: 16 May 2014, 15:11
- Location: Netherlands
- Has thanked: 34 times
- Been thanked: 92 times
Re: Bug Reports (snapshot builds)
by Fizanko » 20 Mar 2015, 12:47
r29098
the deck selection in Constructed mode is currently very broken :
Constructed game , i select one of my user decks in the screenshot i select "Doomed Horns"

Then click on the AI that has currently "Alliance for Zendikar" selected , i select then "Dark Flash".

result :

As shown the AI still have "Alliance for Zendikar", while my deck has been changed to "Dark Flash" .
Trying dozen of time to assign a deck to that AI does only change my own deck, i had to go play in quest mode then come back a few time to be able to change the AI deck, and after managing to change it, i try to change it again and ... it's again my deck that is changed.
the deck selection in Constructed mode is currently very broken :
Constructed game , i select one of my user decks in the screenshot i select "Doomed Horns"

Then click on the AI that has currently "Alliance for Zendikar" selected , i select then "Dark Flash".

result :

As shown the AI still have "Alliance for Zendikar", while my deck has been changed to "Dark Flash" .
Trying dozen of time to assign a deck to that AI does only change my own deck, i had to go play in quest mode then come back a few time to be able to change the AI deck, and after managing to change it, i try to change it again and ... it's again my deck that is changed.
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 » 20 Mar 2015, 12:53
I found the actual problem.
The thing is that clicking on the AI deck selection button has 0 effect .
For some reason you now need (as it worked before without having to do that) to fist click here :

Then clicking on the deck selection button for the AI will work.
The thing is that clicking on the AI deck selection button has 0 effect .
For some reason you now need (as it worked before without having to do that) to fist click here :

Then clicking on the deck selection button for the AI will work.
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 elcnesh » 20 Mar 2015, 13:08
Wow, this is really strange, and I can't reproduce this (I wouldn't commit if a bug like this was present
). Does it also do this on a fresh start of Forge, or do you have more specific steps to reproduce it? I know the problem on your end (when selecting the AI the Human deck selection panel remains open), but I can't seem to reproduce it at all 
- elcnesh
- Posts: 290
- Joined: 16 May 2014, 15:11
- Location: Netherlands
- Has thanked: 34 times
- Been thanked: 92 times
Re: Bug Reports (snapshot builds)
by elcnesh » 20 Mar 2015, 13:09
Our posts crossed, but same question, since that also works for me...
- elcnesh
- Posts: 290
- Joined: 16 May 2014, 15:11
- Location: Netherlands
- Has thanked: 34 times
- Been thanked: 92 times
Re: Bug Reports (snapshot builds)
by Fizanko » 20 Mar 2015, 13:16
When i reported the bug, when i only clicked on the AI deck selection button , as shown in the screenshot there was the button getting selected, but still as seen in the screenshot the AI tab wasn't actually selected.
http://i.imgur.com/X80CGWq.jpg
That's probably indeed why it wasn't working.
But as in my other post, as soon as i selected the AI tab manually
http://i.imgur.com/9n0kTqC.jpg
before clicking on the button, it then worked.
And i noticed that after having done that, when i selected my user deck button or the AI use deck button, the AI (or me) tab are automatically selected automatically (as they should).
I decided to quit Forge, then relaunch it, and now everytime i select the AI user deck button, the AI is selected too automatically, making it work.
I can't seem reproduce the bug i had originally.
Very strange.
edit : while i think about it, i skipped the whole 1.5.36 release as i was away, so i was playing on an old 1.5.35 snapshot for a long time before moving to 1.5.37
Maybe some 1.5.35 old GUI settings were still active while not being compatible fully with your GUI refactor ?
And then after selecting the tab manually, for some reason whatever old GUI setting is now not active anymore and does not break stuffs ?
http://i.imgur.com/X80CGWq.jpg
That's probably indeed why it wasn't working.
But as in my other post, as soon as i selected the AI tab manually
http://i.imgur.com/9n0kTqC.jpg
before clicking on the button, it then worked.
And i noticed that after having done that, when i selected my user deck button or the AI use deck button, the AI (or me) tab are automatically selected automatically (as they should).
I decided to quit Forge, then relaunch it, and now everytime i select the AI user deck button, the AI is selected too automatically, making it work.
I can't seem reproduce the bug i had originally.
Very strange.
edit : while i think about it, i skipped the whole 1.5.36 release as i was away, so i was playing on an old 1.5.35 snapshot for a long time before moving to 1.5.37
Maybe some 1.5.35 old GUI settings were still active while not being compatible fully with your GUI refactor ?
And then after selecting the tab manually, for some reason whatever old GUI setting is now not active anymore and does not break stuffs ?
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 elcnesh » 20 Mar 2015, 13:24
I have no idea what happened here xD but I'm glad it's fixed 
- elcnesh
- Posts: 290
- Joined: 16 May 2014, 15:11
- Location: Netherlands
- Has thanked: 34 times
- Been thanked: 92 times
Re: Bug Reports (snapshot builds)
by allas » 21 Mar 2015, 00:07
r29106: Anafenza, Kin-Tree Spirit trigger even when not in play, so every creature you play trigger bolster on them
- allas
- Posts: 13
- Joined: 15 Feb 2015, 21:59
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Snowstorm » 21 Mar 2015, 07:28
Oh crap I realized what happened after you posted this. It was because when I made the two new players they were auto-set to be human instead of AI which they never done that before the snapshot so I didn't notice the change.elcnesh wrote:Fixed!xbon wrote:r29088,
Starting Duel does not generate random deck if a deck was played previously while program was open., have to reselect random generated deck before pressing start to generate.I can't reproduce either of these... They're definitely related, as they both mean that an AI is actually treated as a human player, but that doesn't happen for me. Can you try again/give steps to reproduce? ThanksSnowstorm wrote:1. In 3+ multiplayer with the bots, any bot past the first bot will not function at all and can be used as if they were another human player or under Mindslaver effect and they also go through priority during your turn as well as there own.
2. When conceding in 3+ multiplayer every other AI besides the first AI concedes as well as creating more than one conceding message per AI (except the one that" won"). This can be seen in the screenshot below (the third concede message happened off screen).

Well now I am able to retest the bugs and the results are the same it seems.
"New" Bug(s): as of r29115
None Noticed Yet...
Older Unfixed Previously Reported Bugs: retested as of r29115
1. Jace, Architect of Thought does not let me search all player libraries only my own and the first opponent in a 3+ multiplayer.
2. Whenever the AI uses cards like Blatant Thievery and any Primordial creature such as Molten Primordial they have a choice to choose more than one card from any player/bot instead of one per player.
3. Hive Mind suffers the same problem in 3+ multiplayer as some of the bugs I previously posted by only giving the first bot and myself a copy.
4. Hive Mind suffers another bug when copying Timetwister which causes the game to crash.
- IllegalArgumentException | Open
- Code: Select all
Forge Version: 1.5.38-SNAPSHOT-r-1u
Operating System: Windows 8.1 6.3 x86
Java Version: 1.8.0_31 Oracle Corporation
java.lang.IllegalArgumentException: No element named Hand,Graveyard in enum Zone
at forge.game.zone.ZoneType.smartValueOf(ZoneType.java:44)
at forge.ai.ability.ChangeZoneAllAi.doTriggerAINoCost(ChangeZoneAllAi.java:201)
at forge.ai.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:42)
at forge.ai.AiController.canPlayFromEffectAI(AiController.java:1014)
at forge.ai.PlayerControllerAi.playSpellAbilityForFree(PlayerControllerAi.java:298)
at forge.game.ability.effects.CopySpellAbilityEffect.resolve(CopySpellAbilityEffect.java:139)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1234)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1216)
at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:138)
at forge.player.HumanPlay.playSpellAbilityNoStack(HumanPlay.java:196)
at forge.player.PlayerControllerHuman.playSpellAbilityNoStack(PlayerControllerHuman.java:233)
at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:412)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1234)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1216)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:482)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:972)
at forge.game.GameAction.startGame(GameAction.java:1390)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Re: Bug Reports (snapshot builds)
by matrix4767 » 21 Mar 2015, 15:45
-r29115
A creature exploiting itself doesn't seem to trigger when according to rulings, it should. Tested with Qarsi Sadist and Minister of Pain.
A creature exploiting itself doesn't seem to trigger when according to rulings, it should. Tested with Qarsi Sadist and Minister of Pain.
- matrix4767
- Posts: 125
- Joined: 09 Sep 2014, 08:10
- Has thanked: 5 times
- Been thanked: 3 times
Who is online
Users browsing this forum: Bing [Bot] and 25 guests