Page 298 of 487

Re: Bug Reports (snapshot builds)

PostPosted: 05 Jun 2015, 12:25
by friarsol
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.
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.

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.

Re: Bug Reports (snapshot builds)

PostPosted: 05 Jun 2015, 13:32
by KrazyTheFox
friarsol wrote:
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.
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.

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.
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.

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.

Re: Bug Reports (snapshot builds)

PostPosted: 05 Jun 2015, 20:02
by SuperSalad
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.

Re: Bug Reports (snapshot builds)

PostPosted: 05 Jun 2015, 23:33
by fmartel
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)

Re: Bug Reports (snapshot builds)

PostPosted: 06 Jun 2015, 03:34
by KrazyTheFox
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)

Re: Bug Reports (snapshot builds)

PostPosted: 06 Jun 2015, 15:24
by Marek14
Ceaseless Searblades doesn't trigger when I pay mana for something with Smokebraider.

Re: Bug Reports (snapshot builds)

PostPosted: 06 Jun 2015, 16:07
by Agetian
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)
Fixed in r29578.

Marek14 wrote:Ceaseless Searblades doesn't trigger when I pay mana for something with Smokebraider.
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.

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 06 Jun 2015, 16:45
by drdev
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?

Re: Bug Reports (snapshot builds)

PostPosted: 07 Jun 2015, 21:40
by Gilgamesh73
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.

Re: Bug Reports (snapshot builds)

PostPosted: 08 Jun 2015, 01:50
by ilbax
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)

Re: Bug Reports (snapshot builds)

PostPosted: 08 Jun 2015, 05:05
by Agetian
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)
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.
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

Re: Bug Reports (snapshot builds)

PostPosted: 09 Jun 2015, 13:13
by Marek14
I was not allowed to cast a spell by discarding a card when AI had Dream Halls out.

Re: Bug Reports (snapshot builds)

PostPosted: 09 Jun 2015, 15:29
by Agetian
Marek14 wrote:I was not allowed to cast a spell by discarding a card when AI had Dream Halls out.
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.

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

Re: Bug Reports (snapshot builds)

PostPosted: 10 Jun 2015, 02:24
by Bog Wraith
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.

Re: Bug Reports (snapshot builds)

PostPosted: 10 Jun 2015, 05:42
by Agetian
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.
Fixed (r29624). The fix is a bit radical, let me know if there are any issues.

- Agetian