It is currently 18 May 2025, 12:06
   
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 » 30 May 2014, 17:55

Krazy, I've seen a message that may be similar. Can you post a screenshot of the one you got?
"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 » 30 May 2014, 18:49

KrazyTheFox wrote:Some guy decided he needed to do the equivalent of lightning bolt me. I had two planeswalkers out (Jace Beleren and Venser, the Sojourner) and the AI did not target them.
This is a common misconception. Planeswalkers are not allowed to be targeted in this scenario.
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 KrazyTheFox » 30 May 2014, 18:56

friarsol wrote:
KrazyTheFox wrote:Some guy decided he needed to do the equivalent of lightning bolt me. I had two planeswalkers out (Jace Beleren and Venser, the Sojourner) and the AI did not target them.
This is a common misconception. Planeswalkers are not allowed to be targeted in this scenario.
Huh. Good to know. Goes to show just how often I play decks with direct damage spells. :P
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 30 May 2014, 19:04

KrazyTheFox wrote:Huh. Good to know. Goes to show just how often I play decks with direct damage spells. :P
Yea, a lot of people shortcut it by saying they target the Planeswalker, but what they mean is: "I target you, on resolution I'll redirect the damage to your Plesnwalker" that'd be the same thing as activating a Sneak Attack and immediately showing the creature you are going to play instead of waiting for your opponent to give you the go ahead. Much better to wait till the spell resolves before providing the important information.

The issue here is that the wrong player is being given the option to redirect the damage.
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 timmermac » 30 May 2014, 19:19

using first 1.5.19 snapshot. Opponent has a tapped Spirit token. I am not allowed to Death Stroke it. Screenshot attached of battlefield
Attachments
Unable to cast Death Stroke.png
"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 » 30 May 2014, 19:44

timmermac wrote:using first 1.5.19 snapshot. Opponent has a tapped Spirit token. I am not allowed to Death Stroke it. Screenshot attached of battlefield
It has hexproof from the Drogskol Captain the AI just cast.
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 timmermac » 30 May 2014, 20:28

#-o
"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 KrazyTheFox » 31 May 2014, 20:36

Watching a game between two AIs, one of them played Drekavac.

NullPointerException | Open
Code: Select all
Game-0 > java.lang.NullPointerException
   at forge.ai.ability.TokenAi.canPlayAI(TokenAi.java:194)
   at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
   at forge.ai.AiController.canPlaySa(AiController.java:648)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:635)
   at forge.ai.AiController.chooseSpellAbilyToPlay(AiController.java:1164)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1145)
   at forge.ai.AiController.choooseSpellAbilityToPlay(AiController.java:1096)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:410)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:973)
   at forge.game.GameAction.startGame(GameAction.java:1536)
   at forge.game.Match.startGame(Match.java:81)
   at forge.control.FControl$4.run(FControl.java:441)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)

Entered Dev Mode and opened that AI's hand:
ForgeError.jpg


And here's the other AI's hand, since it may be relevant:
ForgeError2.jpg
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby excessum » 01 Jun 2014, 04:51

I have been getting the following error after the AI declares attackers in r26104. I can verify that reverting back to r26082 resolves this. The attached game-state is an example scenario and I have seen the same error in normal Constructed games.

IllegalStateException | Open
Code: Select all
Forge Version:    SVN
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.IllegalStateException: forge.screens.match.CMatchUI.setUsedToPay must be accessed from the event dispatch thread.
   at forge.FThreads.assertExecutedByEdt(FThreads.java:23)
   at forge.screens.match.CMatchUI.setUsedToPay(CMatchUI.java:322)
   at forge.GuiDesktop.setUsedToPay(GuiDesktop.java:343)
   at forge.match.input.InputBlock.setCurrentAttacker(InputBlock.java:142)
   at forge.match.input.InputBlock.<init>(InputBlock.java:57)
   at forge.player.PlayerControllerHuman.declareBlockers(PlayerControllerHuman.java:605)
   at forge.game.phase.PhaseHandler.declareBlockersTurnBasedAction(PhaseHandler.java:546)
   at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:294)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1017)
   at forge.game.GameAction.startGame(GameAction.java:1536)
   at forge.game.Match.startGame(Match.java:81)
   at forge.control.FControl$4.run(FControl.java:441)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Attachments
gamestate.txt
(451 Bytes) Downloaded 200 times
excessum
 
Posts: 177
Joined: 21 Oct 2013, 02:30
Has thanked: 0 time
Been thanked: 19 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 01 Jun 2014, 05:04

r26106: I'm getting this crash when Forge is loading (it was fine in r26103):

NullPointerException | Open
Code: Select all
Forge Version:    1.5.19-SNAPSHOT-r26105
Operating System: Linux 3.8.0-26-generic amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.NullPointerException
   at forge.screens.home.quest.CSubmenuQuestDraft.initialize(CSubmenuQuestDraft.java:85)
   at forge.view.FView.initialize(FView.java:121)
   at forge.control.FControl$3.run(FControl.java:243)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
   at java.awt.EventQueue.access$200(EventQueue.java:103)
   at java.awt.EventQueue$3.run(EventQueue.java:694)
   at java.awt.EventQueue$3.run(EventQueue.java:692)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
   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)
- 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 drdev » 01 Jun 2014, 05:05

excessum wrote:I have been getting the following error after the AI declares attackers in r26104. I can verify that reverting back to r26082 resolves this. The attached game-state is an example scenario and I have seen the same error in normal Constructed games.

IllegalStateException | Open
Code: Select all
Forge Version:    SVN
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.IllegalStateException: forge.screens.match.CMatchUI.setUsedToPay must be accessed from the event dispatch thread.
   at forge.FThreads.assertExecutedByEdt(FThreads.java:23)
   at forge.screens.match.CMatchUI.setUsedToPay(CMatchUI.java:322)
   at forge.GuiDesktop.setUsedToPay(GuiDesktop.java:343)
   at forge.match.input.InputBlock.setCurrentAttacker(InputBlock.java:142)
   at forge.match.input.InputBlock.<init>(InputBlock.java:57)
   at forge.player.PlayerControllerHuman.declareBlockers(PlayerControllerHuman.java:605)
   at forge.game.phase.PhaseHandler.declareBlockersTurnBasedAction(PhaseHandler.java:546)
   at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:294)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1017)
   at forge.game.GameAction.startGame(GameAction.java:1536)
   at forge.game.Match.startGame(Match.java:81)
   at forge.control.FControl$4.run(FControl.java:441)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Fixed in r26107
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Bug Reports (snapshot builds)

Postby KrazyTheFox » 01 Jun 2014, 05:10

Agetian wrote:r26106: I'm getting this crash when Forge is loading (it was fine in r26103):

NullPointerException | Open
Code: Select all
Forge Version:    1.5.19-SNAPSHOT-r26105
Operating System: Linux 3.8.0-26-generic amd64
Java Version:     1.7.0_51 Oracle Corporation

java.lang.NullPointerException
   at forge.screens.home.quest.CSubmenuQuestDraft.initialize(CSubmenuQuestDraft.java:85)
   at forge.view.FView.initialize(FView.java:121)
   at forge.control.FControl$3.run(FControl.java:243)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
   at java.awt.EventQueue.access$200(EventQueue.java:103)
   at java.awt.EventQueue$3.run(EventQueue.java:694)
   at java.awt.EventQueue$3.run(EventQueue.java:692)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
   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)
- Agetian
Looking into it.

Edit: Should now be fixed in r26110. If not, can you give me your quest save folder?
User avatar
KrazyTheFox
Programmer
 
Posts: 725
Joined: 18 Mar 2014, 23:51
Has thanked: 66 times
Been thanked: 226 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 01 Jun 2014, 05:46

Yep, that fixed it. Thanks! :) By the way, the new Draft Tournaments are an awesome idea, thanks for implementing it! ;)

- 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 Marek14 » 01 Jun 2014, 12:31

friarsol wrote:
KrazyTheFox wrote:Huh. Good to know. Goes to show just how often I play decks with direct damage spells. :P
Yea, a lot of people shortcut it by saying they target the Planeswalker, but what they mean is: "I target you, on resolution I'll redirect the damage to your Plesnwalker" that'd be the same thing as activating a Sneak Attack and immediately showing the creature you are going to play instead of waiting for your opponent to give you the go ahead. Much better to wait till the spell resolves before providing the important information.

The issue here is that the wrong player is being given the option to redirect the damage.
I don't think that's true. You, as the planeswalkers' controller, are being given a choice which replacement effect you want to apply first. Once you apply it, it's AI's turn to decide whether it wants to redirect damage to that particular planeswalker or not. If not, the second replacement effect is evaluated and the damage can be redirected to the second planeswalker.
Marek14
Tester
 
Posts: 2771
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 302 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 01 Jun 2014, 17:06

Marek14 wrote:I don't think that's true. You, as the planeswalkers' controller, are being given a choice which replacement effect you want to apply first. Once you apply it, it's AI's turn to decide whether it wants to redirect damage to that particular planeswalker or not. If not, the second replacement effect is evaluated and the damage can be redirected to the second planeswalker.
Ah, I guess the way it was written was unclear. But that certainly could be the case, the controller isn't choosing which Planeswalker will be damaged, just which redirection gets handled first.

After running the scenario the dialog that pops up does say "Choose which replacement effect to apply" although it should be more specific about which Planeswalker each replacement is referring to. So it looks like Marek read the scenario more closely than I did.
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 21 guests


Who is online

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

Login Form