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 friarsol » 05 Jun 2015, 12:25
Arc Runner is a bad example, since the card has just a plain End Step trigger that says "sacrifice me", a better example are flicker effects that return the creature at EOT like Astral Slide.KrazyTheFox wrote:To expand in a different way to what was here before, if you used Sundial of the Infinite before your end step, the trigger to sacrifice an Arc Runner would happen at the beginning of the next end step that would occur (even your opponent's). If you use it in response to the trigger that causes you to sacrifice the Arc Runner, you would keep the Arc Runner indefinitely.
But yes, the above info is right, if you don't actually have one of those steps, you haven't had a "next one" of those steps yet.
- 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 KrazyTheFox » 05 Jun 2015, 13:32
Ah, yes, you're correct. I was writing from memory on my phone and could've sworn it had "at the beginning of the next end step" in its text. I've changed my previous example to use a card with the correct trigger.friarsol wrote:Arc Runner is a bad example, since the card has just a plain End Step trigger that says "sacrifice me", a better example are flicker effects that return the creature at EOT like Astral Slide.KrazyTheFox wrote:To expand in a different way to what was here before, if you used Sundial of the Infinite before your end step, the trigger to sacrifice an Arc Runner would happen at the beginning of the next end step that would occur (even your opponent's). If you use it in response to the trigger that causes you to sacrifice the Arc Runner, you would keep the Arc Runner indefinitely.
But yes, the above info is right, if you don't actually have one of those steps, you haven't had a "next one" of those steps yet.
Relevant rule, now that I'm back at a computer:
- Code: Select all
614.10a Anything scheduled for a skipped step, phase, or turn won’t happen. Anything scheduled for the “next” occurrence of something waits for the first occurrence that isn’t skipped. If two effects each cause a player to skip his or her next occurrence, that player must skip the next two; one effect will be satisfied in skipping the first occurrence, while the other will remain until another occurrence can be skipped.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by SuperSalad » 05 Jun 2015, 20:02
I haven't been able to get any targeting arrows to show up at all in builds 1.5.38, 1.5.39, and I most recently tried snapshot r29751. Is there something I'm doing wrong here?
I'm running Windows 8.1
I complete delete the forge AppData/Local/Forge and AppData/Roaming/Forge folders before opening each build to make sure no settings from other builds are interfering, I'll open forge.exe keeping all the default launch settings, and every time I never get a single targeting arrow. It's quite frustrating and I'm not sure how many versions I need to go back before finding one that the targeting arrows will work again.
Screenshot from r29751:
[Nevermind it won't let me post images as a new user, attached the file instead]
EDIT:
I was able to resolve this issue by downloading and launching version 1.5.33 of this game. Then after launching that version, and going back to the newest snap shot (r29751) the targeting arrows remained and worked without issue. It appears the arrow art assets aren't being generated by the latest versions of the program (1.5.38+ at least), and has gone unnoticed because most people already have the assets from previous versions.
I'm running Windows 8.1
I complete delete the forge AppData/Local/Forge and AppData/Roaming/Forge folders before opening each build to make sure no settings from other builds are interfering, I'll open forge.exe keeping all the default launch settings, and every time I never get a single targeting arrow. It's quite frustrating and I'm not sure how many versions I need to go back before finding one that the targeting arrows will work again.
Screenshot from r29751:
[Nevermind it won't let me post images as a new user, attached the file instead]
EDIT:
I was able to resolve this issue by downloading and launching version 1.5.33 of this game. Then after launching that version, and going back to the newest snap shot (r29751) the targeting arrows remained and worked without issue. It appears the arrow art assets aren't being generated by the latest versions of the program (1.5.38+ at least), and has gone unnoticed because most people already have the assets from previous versions.
- SuperSalad
- Posts: 1
- Joined: 05 Jun 2015, 19:51
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by fmartel » 05 Jun 2015, 23:33
Description: [played a "path to exile" on "ghalma's warden" before AI DB]
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.41-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 x86
Java Version: 1.8.0_45 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at java.util.AbstractCollection.addAll(Unknown Source)
at java.util.HashSet.<init>(Unknown Source)
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(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1300(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(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.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)
- fmartel
- Posts: 281
- Joined: 31 Dec 2013, 19:27
- Location: Québec City
- Has thanked: 8 times
- Been thanked: 4 times
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 06 Jun 2015, 03:34
Equipped a creature with Trepanation Blade, opponent cast Condemn on it when I attacked. The following occurred when Trepanation Blade's ability tried to resolve.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.40-r-1
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_40-ea Oracle Corporation
java.lang.NullPointerException
at forge.game.ability.effects.DigUntilEffect.resolve(DigUntilEffect.java:117)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1236)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1218)
at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:140)
at forge.player.HumanPlay.playSpellAbilityNoStack(HumanPlay.java:224)
at forge.player.PlayerControllerHuman.playSpellAbilityNoStack(PlayerControllerHuman.java:237)
at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:412)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1236)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1218)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:484)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:972)
at forge.game.GameAction.startGame(GameAction.java:1402)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:219)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by Marek14 » 06 Jun 2015, 15:24
Ceaseless Searblades doesn't trigger when I pay mana for something with Smokebraider.
Re: Bug Reports (snapshot builds)
by Agetian » 06 Jun 2015, 16:07
Fixed in r29578.KrazyTheFox wrote:Equipped a creature with Trepanation Blade, opponent cast Condemn on it when I attacked. The following occurred when Trepanation Blade's ability tried to resolve.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.40-r-1
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_40-ea Oracle Corporation
java.lang.NullPointerException
at forge.game.ability.effects.DigUntilEffect.resolve(DigUntilEffect.java:117)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1236)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1218)
at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:140)
at forge.player.HumanPlay.playSpellAbilityNoStack(HumanPlay.java:224)
at forge.player.PlayerControllerHuman.playSpellAbilityNoStack(PlayerControllerHuman.java:237)
at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:412)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1236)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1218)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:484)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:972)
at forge.game.GameAction.startGame(GameAction.java:1402)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:219)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I figured out where exactly the problem manifests itself but I'm not sure how to properly fix it - the issue here is that Smokebraider's ability is a mana ability that doesn't use the stack and mana abilities pass through at MagicStack.java:226 in the "add" method, without adding the AbilityCast trigger. Provided that this ability should (according to the rules) cause Ceaseless Searblades to trigger, then something has to be done to make mana abilities generate ability triggers. So far I was unsuccessful in getting it to work, advice and help is welcome.Marek14 wrote:Ceaseless Searblades doesn't trigger when I pay mana for something with Smokebraider.
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by drdev » 06 Jun 2015, 16:45
So I'm noticing that when a player joins or leaves the room, the hosting player doesn't receive either the login or logout message. Any ideas why?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Bug Reports (snapshot builds)
by Gilgamesh73 » 07 Jun 2015, 21:40
Forge Version: 1.5.40-r-1
Beta
"out of memory error"
This occurs every time i continuously play matches without closing the application. I have played at least 10 games before it happens, and have all picture contents downloaded. After reopening it doesn't subside completely and still slows down after 3-5 matches.
please see attached screen shots for log while bug occurs and the java trace stack.
Beta
"out of memory error"
This occurs every time i continuously play matches without closing the application. I have played at least 10 games before it happens, and have all picture contents downloaded. After reopening it doesn't subside completely and still slows down after 3-5 matches.
please see attached screen shots for log while bug occurs and the java trace stack.
- Gilgamesh73
- Posts: 1
- Joined: 07 Jun 2015, 21:17
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by ilbax » 08 Jun 2015, 01:50
Description: crash after tapping Clockwork Avian (with 4 +1/+0 counters) using Relic Barrier
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.37-SNAPSHOT-r-1
Operating System: Windows 7 6.1 amd64
Java Version: 1.7.0_75 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ability.CountersPutAi.canPlayAI(CountersPutAi.java:210)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:612)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:599)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1188)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1165)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1107)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:388)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:917)
at forge.game.GameAction.startGame(GameAction.java:1390)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:223)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- ilbax
- Posts: 1
- Joined: 08 Jun 2015, 01:40
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Agetian » 08 Jun 2015, 05:05
I tried to reproduce this but couldn't, you're using an old version of the game (1.5.37), please consider upgrading to the latest one (1.5.40) or even to the latest SVN snapshot if you'd like to be on the bleeding edge of the game development.ilbax wrote:Description: crash after tapping Clockwork Avian (with 4 +1/+0 counters) using Relic Barrier
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.37-SNAPSHOT-r-1
Operating System: Windows 7 6.1 amd64
Java Version: 1.7.0_75 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ability.CountersPutAi.canPlayAI(CountersPutAi.java:210)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:612)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:599)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1188)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1165)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1107)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:388)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:917)
at forge.game.GameAction.startGame(GameAction.java:1390)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:223)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
From what I can tell, however, it looks like Clockwork Avian is controlled by the AI here, which may be the problem because this card is listed as a card that the AI can't play (and cards like that can manifest all sorts of weird behavior when given into the AI's virtual hands - from using the card stupidly to crashing the game...). I wanted to at least put a NPE guard if necessary to prevent the crash but couldn't find the relevant line - like I said, the source code has changed since the version you're using.
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Marek14 » 09 Jun 2015, 13:13
I was not allowed to cast a spell by discarding a card when AI had Dream Halls out.
Re: Bug Reports (snapshot builds)
by Agetian » 09 Jun 2015, 15:29
Fixed in r29619, I hope I'm correct (I removed the "YouCtrl" restriction because "You" there refers to the controller of Dream Halls, not allowing other plays to cast spells that way; I'm assuming that "...its controller may..." clause in the card rules does not require a specific limitation clause in the script because only the card's controller can cast a spell that way from the hand, graveyard, exile or library anyway. Please correct me if I'm wrong.Marek14 wrote:I was not allowed to cast a spell by discarding a card when AI had Dream Halls out.
EDIT: I ran it by the judges at #mtgrules to check that this works correctly e.g. with Nightveil Specter (they said that if Nightveil Specter exiles the opp's card, by the time you have to choose to pay its alternative cost you'll control the card, so you should be able to use the Dream Halls ability). Not sure if any other corner cases may not work correctly with my implementation above, though.
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Bog Wraith » 10 Jun 2015, 02:24
r29619
Cast a Banefire for 3x at a Precursor Golem destroying it. Both tokens should have gone with it but as you can see, the Precursor Golem is in the graveyard while the two tokens survive on the battlefield. I should have been able to attack with a clean board on my opponents side.
It looks like the 3 damage was applied to the Precursor Golem which is id'd as #271, all 3 times instead of having the other 2 times being targeted at the tokens.
Not sure if this is a new bug because I've played against this card a number of times in earlier builds and have cast a Lightning Bolt or other removal spell and all 3 Golem's were destroyed.
Cast a Banefire for 3x at a Precursor Golem destroying it. Both tokens should have gone with it but as you can see, the Precursor Golem is in the graveyard while the two tokens survive on the battlefield. I should have been able to attack with a clean board on my opponents side.
It looks like the 3 damage was applied to the Precursor Golem which is id'd as #271, all 3 times instead of having the other 2 times being targeted at the tokens.
Not sure if this is a new bug because I've played against this card a number of times in earlier builds and have cast a Lightning Bolt or other removal spell and all 3 Golem's were destroyed.
'Twas in the bogs of Cannelbrae
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
-
Bog Wraith - Global Mod 1 (Ret)
- Posts: 1108
- Joined: 28 May 2008, 22:40
- Location: Shandalar
- Has thanked: 425 times
- Been thanked: 153 times
Re: Bug Reports (snapshot builds)
by Agetian » 10 Jun 2015, 05:42
Fixed (r29624). The fix is a bit radical, let me know if there are any issues.Bog Wraith wrote:r29619
Cast a Banefire for 3x at a Precursor Golem destroying it. Both tokens should have gone with it but as you can see, the Precursor Golem is in the graveyard while the two tokens survive on the battlefield. I should have been able to attack with a clean board on my opponents side. It looks like the 3 damage was applied to the Precursor Golem which is id'd as #271, all 3 times instead of having the other 2 times being targeted at the tokens.
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Who is online
Users browsing this forum: No registered users and 36 guests