Page 323 of 487

Re: Bug Reports (snapshot builds)

PostPosted: 19 Jan 2016, 18:18
by friarsol
Agetian wrote:Tbh I'm not very well-versed in the trigger-related code, so I'm probably not the best guy to take a look at this... It looks like the conditional code is not implemented for the triggers at all (or something like that) 'cause it doesn't look like it gets checked at all. Do you know how to get this implemented properly?..
I took a quick lock the other day. I think Triggers use something different than the conditions that are built for Abilities and Statics for some reason. We can probably just use a generic CheckSVar on the conditional.

Re: Bug Reports (snapshot builds)

PostPosted: 19 Jan 2016, 18:31
by Agetian
friarsol wrote:
Agetian wrote:Tbh I'm not very well-versed in the trigger-related code, so I'm probably not the best guy to take a look at this... It looks like the conditional code is not implemented for the triggers at all (or something like that) 'cause it doesn't look like it gets checked at all. Do you know how to get this implemented properly?..
I took a quick lock the other day. I think Triggers use something different than the conditions that are built for Abilities and Statics for some reason. We can probably just use a generic CheckSVar on the conditional.
Oh, interesting! Thanks for the tip! I tried implementing that in r30706. The question is, though: should we also keep the conditional check on the ability itself or should it only be on the trigger like now?

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 19 Jan 2016, 18:52
by friarsol
Agetian wrote:Oh, interesting! Thanks for the tip! I tried implementing that in r30706. The question is, though: should we also keep the conditional check on the ability itself or should it only be on the trigger like now?
Nope, it's not necessarily "wrong", but it's unnecessary. Forge handles conditionals that are on the trigger and checks them on both sides like it should. Feel free to mess with life totals with the trigger on the stack to verify.

Re: Bug Reports (snapshot builds)

PostPosted: 19 Jan 2016, 19:05
by Agetian
Ok, gotcha, thanks for the info! I tried different things and it seems like everything works. :)

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 20 Jan 2016, 02:48
by Phisteen
Description: r30706 crashed when trying to enter a draft in quest mode.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.48-SNAPSHOT-r30706
Operating System: Windows 8.1 6.3 amd64
Java Version:     1.7.0_79 Oracle Corporation

java.lang.NullPointerException
   at forge.limited.BoosterDraft.createDraft(BoosterDraft.java:159)
   at forge.quest.QuestEventDraft.enter(QuestEventDraft.java:649)
   at forge.screens.home.quest.CSubmenuQuestDraft.startDraft(CSubmenuQuestDraft.java:542)
   at forge.screens.home.quest.CSubmenuQuestDraft.access$400(CSubmenuQuestDraft.java:52)
   at forge.screens.home.quest.CSubmenuQuestDraft$5.actionPerformed(CSubmenuQuestDraft.java:259)
   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$300(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)
also, but unrelated; Tears of Valakut doesn't cast because it never thinks it has a valid target.

Re: Bug Reports (snapshot builds)

PostPosted: 20 Jan 2016, 05:29
by Agetian
Phisteen wrote:Description: r30706 crashed when trying to enter a draft in quest mode.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.48-SNAPSHOT-r30706
Operating System: Windows 8.1 6.3 amd64
Java Version:     1.7.0_79 Oracle Corporation

java.lang.NullPointerException
   at forge.limited.BoosterDraft.createDraft(BoosterDraft.java:159)
   at forge.quest.QuestEventDraft.enter(QuestEventDraft.java:649)
   at forge.screens.home.quest.CSubmenuQuestDraft.startDraft(CSubmenuQuestDraft.java:542)
   at forge.screens.home.quest.CSubmenuQuestDraft.access$400(CSubmenuQuestDraft.java:52)
   at forge.screens.home.quest.CSubmenuQuestDraft$5.actionPerformed(CSubmenuQuestDraft.java:259)
   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$300(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)
What kind of draft were you trying to enter? (which sets?)

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 20 Jan 2016, 07:17
by Phisteen
Triple Champions of Kamigawa. other sets seem to be working normally.

Re: Bug Reports (snapshot builds)

PostPosted: 20 Jan 2016, 08:11
by Agetian
Phisteen wrote:Triple Champions of Kamigawa. other sets seem to be working normally.
Fixed (r30708), currently via a hardcoded block name assignment (Kamigawa is sort of an exception in that its block name and its first edition name differ, that's why the game crashed trying to identify the block by name "Champions of Kamigawa").

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 20 Jan 2016, 20:24
by Phisteen
Fixed (r30708), currently via a hardcoded block name assignment (Kamigawa is sort of an exception in that its block name and its first edition name differ, that's why the game crashed trying to identify the block by name "Champions of Kamigawa").
It doesn't appear to be fixed. i tried it in r30708 and r30709 and it gives the same error.
NullPointerException | Open
Code: Select all
Forge Version:    1.5.48-SNAPSHOT-r30709
Operating System: Windows 8.1 6.3 amd64
Java Version:     1.7.0_79 Oracle Corporation

java.lang.NullPointerException
   at forge.limited.BoosterDraft.createDraft(BoosterDraft.java:159)
   at forge.quest.QuestEventDraft.enter(QuestEventDraft.java:649)
   at forge.screens.home.quest.CSubmenuQuestDraft.startDraft(CSubmenuQuestDraft.java:542)
   at forge.screens.home.quest.CSubmenuQuestDraft.access$400(CSubmenuQuestDraft.java:52)
   at forge.screens.home.quest.CSubmenuQuestDraft$5.actionPerformed(CSubmenuQuestDraft.java:259)
   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$300(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)

Re: Bug Reports (snapshot builds)

PostPosted: 21 Jan 2016, 00:27
by Twainer
r30709, a few OGW bugs

Visions of Brutality - Trigger goes on the stack but does not deal damage to creature's controller.

Elemental Uprising - Must be blocked effect doesn't work or AI ignores it.

Support in General - AI will only target 1 creature, even if it could target more.

Re: Bug Reports (snapshot builds)

PostPosted: 21 Jan 2016, 04:07
by tjtillman
r30710

Unity of Purpose doesn't untap creatures with P1P1 counters. May be a capitalization issue in the SubAbility.

Re: Bug Reports (snapshot builds)

PostPosted: 21 Jan 2016, 04:07
by Bog Wraith
Bug occurred after combat when A.I. attacked. A.I. was playing with a G/W Hardened Scales deck that I have played against with other decks that had no similar crashes with . My deck was a first timer I was testing based on Reid Duke's Mage-Ring Esper deck which I include below:

ConcurrentModificationException | Open
Code: Select all
Forge Version:    1.5.48-SNAPSHOT-r30710
Operating System: Mac OS X 10.10.5 x86_64
Java Version:     1.8.0_71 Oracle Corporation

java.util.ConcurrentModificationException
   at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)
   at java.util.HashMap$KeyIterator.next(HashMap.java:1453)
   at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
   at java.util.HashSet.<init>(HashSet.java:119)
   at forge.game.combat.CombatView.getAttackers(CombatView.java:61)
   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:1056)
   at javax.swing.JComponent.paintChildren(JComponent.java:889)
   at javax.swing.JComponent.paint(JComponent.java:1065)
   at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
   at javax.swing.JComponent.paintChildren(JComponent.java:889)
   at javax.swing.JComponent.paint(JComponent.java:1065)
   at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
   at javax.swing.JComponent.paintChildren(JComponent.java:889)
   at javax.swing.JComponent.paint(JComponent.java:1065)
   at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
   at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
   at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
   at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
   at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
   at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
   at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
   at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
   at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
   at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
   at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
   at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
   at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
   at java.awt.EventQueue.access$500(EventQueue.java:97)
   at java.awt.EventQueue$3.run(EventQueue.java:709)
   at java.awt.EventQueue$3.run(EventQueue.java:703)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Re: Bug Reports (snapshot builds)

PostPosted: 21 Jan 2016, 05:14
by Agetian
Phisteen wrote:
Fixed (r30708), currently via a hardcoded block name assignment (Kamigawa is sort of an exception in that its block name and its first edition name differ, that's why the game crashed trying to identify the block by name "Champions of Kamigawa").
It doesn't appear to be fixed. i tried it in r30708 and r30709 and it gives the same error.
NullPointerException | Open
Code: Select all
Forge Version:    1.5.48-SNAPSHOT-r30709
Operating System: Windows 8.1 6.3 amd64
Java Version:     1.7.0_79 Oracle Corporation

java.lang.NullPointerException
   at forge.limited.BoosterDraft.createDraft(BoosterDraft.java:159)
   at forge.quest.QuestEventDraft.enter(QuestEventDraft.java:649)
   at forge.screens.home.quest.CSubmenuQuestDraft.startDraft(CSubmenuQuestDraft.java:542)
   at forge.screens.home.quest.CSubmenuQuestDraft.access$400(CSubmenuQuestDraft.java:52)
   at forge.screens.home.quest.CSubmenuQuestDraft$5.actionPerformed(CSubmenuQuestDraft.java:259)
   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$300(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)
It will appear to be "not fixed" until you actually generate a new draft like that. I mean, as long as you're trying to continue with the same draft in your old saved game, it will not work, unfortunately - and the saved game will remain broken. However, if you start a new quest and get a triple CHK draft, it should now work correctly.

If you provide me with your saved game I may be able to repair it for you though. ;)

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 21 Jan 2016, 05:26
by Agetian
tjtillman wrote:r30710
Unity of Purpose doesn't untap creatures with P1P1 counters. May be a capitalization issue in the SubAbility.
Fixed (r30711).

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 22 Jan 2016, 07:02
by tjtillman
r30712

Tyrant of Valakut should be a 5/4