Page 365 of 487

Re: Bug Reports (snapshot builds)

PostPosted: 15 Aug 2016, 02:11
by tjtillman
r31989

Game crashed when using Collective Effort to destroy Infectious Curse (I was also using both of the other modes of Collective Effort)

Code: Select all
Description: [describe what you were doing when the crash occurred]

[spoiler=RuntimeException][code]
Forge Version:    1.5.56-SNAPSHOT-r31989
Operating System: Windows 10 10.0 amd64
Java Version:     1.8.0_66 Oracle Corporation

java.lang.RuntimeException: AbilityFactory : getAbility -- Infectious Curse has no SVar: TrigChoose
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:115)
   at forge.game.trigger.TriggerHandler.runSingleTrigger(TriggerHandler.java:514)
   at forge.game.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:371)
   at forge.game.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:335)
   at forge.game.trigger.TriggerHandler.runWaitingTriggers(TriggerHandler.java:290)
   at forge.game.zone.MagicStack.unfreezeStack(MagicStack.java:167)
   at forge.game.zone.MagicStack.finishResolving(MagicStack.java:580)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:528)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:976)
   at forge.game.GameAction.startGame(GameAction.java:1464)
   at forge.game.Match.startGame(Match.java:95)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
[/code][/spoiler]

Re: Bug Reports (snapshot builds)

PostPosted: 15 Aug 2016, 04:00
by Hanmac
@tjtiklman: the problem is not the destroy spell, but the Curse one.

There is a Trigger which should not trigger, that's why it does look for a Svar which does not exist (on that side of creature)

I have a clue where the problem is (and it seems to be my fault again :/)

===

Edit: the bug is more complicated than i thought.

@others:

the problem are spells with Sub abilities, and Triggers (specially from Cards with Alternate States)
because the active triggers are cleared between the abilities.
the new triggers does want to trigger for events which should not touch them.

in this example with Collective Effort:
DestroyCreature > DestroyEnchantment > PutCounter
DestroyEnchantment on the Curse causes ChangesZone to Trigger (add to TriggerWaiting)
then the active Triggers are cleared, and now the Witch is back.

when later the TriggerWaiting are checked, it looks in activeTriggers and find the Witch. (but it should find none)

my current ideas to fix that are most likely some kind of messy patch.
i think the whole stuff with waitingTriggers and activeTriggers need to be reworked.

Like instead of just have the TriggerWaiting, we might need to have it collect the Trigger objects for which of them could be run.
with that we might not have the whole Subability Chain to cause trigger which might not happen anymore. ... or what do you guys think?

===

Edit: that and others should be fixed by r31993
now the waiting Trigger does look for the Trigger it should cause to run.

PLEASE look for if i break something with that again.

Re: Bug Reports (snapshot builds)

PostPosted: 15 Aug 2016, 17:20
by fmartel
Description: [In a commander Game, on M2 of AI1, Game Crashed. Was strolling through the actions]

NullPointerException | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r31995
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.util.collect.FCollection.<init>(FCollection.java:90)
   at forge.game.card.CardCollection.<init>(CardCollection.java:115)
   at forge.game.ability.AbilityUtils.xCount(AbilityUtils.java:1544)
   at forge.game.ability.AbilityUtils.calculateAmount(AbilityUtils.java:396)
   at forge.game.CardTraitBase.meetsCommonRequirements(CardTraitBase.java:218)
   at forge.game.trigger.Trigger.requirementsCheck(Trigger.java:258)
   at forge.game.trigger.TriggerHandler.canRunTrigger(TriggerHandler.java:445)
   at forge.game.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:379)
   at forge.game.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:347)
   at forge.game.trigger.TriggerHandler.runWaitingTriggers(TriggerHandler.java:306)
   at forge.game.zone.MagicStack.unfreezeStack(MagicStack.java:167)
   at forge.game.zone.MagicStack.addAndUnfreeze(MagicStack.java:155)
   at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:397)
   at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:55)
   at forge.ai.PlayerControllerAi.payManaCost(PlayerControllerAi.java:795)
   at forge.game.player.PlayerController.payManaCost(PlayerController.java:219)
   at forge.game.cost.CostPartMana.payAsDecided(CostPartMana.java:138)
   at forge.game.cost.CostPayment.payComputerCosts(CostPayment.java:198)
   at forge.ai.ComputerUtil.handlePlayingSpellAbility(ComputerUtil.java:113)
   at forge.ai.PlayerControllerAi.playChosenSpellAbility(PlayerControllerAi.java:400)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:930)
   at forge.game.GameAction.startGame(GameAction.java:1464)
   at forge.game.Match.startGame(Match.java:95)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   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: 15 Aug 2016, 18:14
by Hanmac
@fmartel: thanks, that should be fixed in r31996.

if not, please come back and tell which card the AI seems to want to play if able.

Re: Bug Reports (snapshot builds)

PostPosted: 16 Aug 2016, 05:57
by tjtillman
r31996

CPU played Rise From the Grave, taking my Wild-Field Scarecrow from the graveyard. CPU on a later turn sacrificed the scarecrow to get two lands, but on sacrifice, it triggered my Bloodbriar to get a +1/+1 counter.

Re: Bug Reports (snapshot builds)

PostPosted: 16 Aug 2016, 10:32
by Hanmac
@tjtillman:
fixed it in r31997 i added another parameter for the Player, because the Card copy doesn't seems to copy the current controller.

tested it with each a Bloodbriar on both sides on the field, now only the right one should get a +1/+1 counter.

Re: Bug Reports (snapshot builds)

PostPosted: 17 Aug 2016, 00:08
by friarsol
I cast Supplant Form on my opponent's Ghalma's Warden. I don't have metalcraft but the AI does. The Warden is a 4/6 when it should be a 2/4. Even after the AI loses metalcraft, it's still a 4/6

Re: Bug Reports (snapshot builds)

PostPosted: 17 Aug 2016, 00:49
by timmermac
Did you have anything else in play that could have given the Warden +2/+2?

Re: Bug Reports (snapshot builds)

PostPosted: 17 Aug 2016, 01:01
by fmartel
Description: [2 instances of Forge open on same PC, trying the Multi-player. Starting the game, hands are drawn.]
It's my fault ! I have 2 time the same human player in each window !

RuntimeException | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r32003
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_101 Oracle Corporation

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
   at forge.net.GameProtocolHandler$1.run(GameProtocolHandler.java:59)
   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$JavaSecurityAccessImpl.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)
Caused by: java.lang.reflect.InvocationTargetException
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at forge.net.GameProtocolHandler$1.run(GameProtocolHandler.java:55)
   ... 14 more
Caused by: java.lang.NullPointerException
   at forge.game.player.PlayerView.getMana(PlayerView.java:370)
   at forge.toolbox.special.PlayerDetailsPanel.updateManaPool(PlayerDetailsPanel.java:143)
   at forge.screens.match.views.VField.updateManaPool(VField.java:207)
   at forge.screens.match.CMatchUI$1.run(CMatchUI.java:193)
   at forge.GuiDesktop.invokeInEdtNow(GuiDesktop.java:74)
   at forge.FThreads.invokeInEdtNowOrLater(FThreads.java:30)
   at forge.screens.match.CMatchUI.setGameView(CMatchUI.java:188)
   ... 19 more

Re: Bug Reports (snapshot builds)

PostPosted: 17 Aug 2016, 01:39
by stormcat
Arc by block from Assembled Alphas to Ingenious Skaab is not displayed.
Please refer to attachment.

Re: Bug Reports (snapshot builds)

PostPosted: 17 Aug 2016, 06:40
by tjtillman
r32003
Game state as posted below (after the incident occurred). During its upkeep, CPU cast Aim High targeting its Deranged Whelp which was already in its graveyard. Aim High fizzled, but shouldn't have been able to target the Deranged Whelp on cast.

Code: Select all
humanlife=20
ailife=18
activeplayer=ai
activephase=COMBAT_DECLARE_ATTACKERS
humancardsinhand=Tamiyo's Journal;Drownyard Behemoth
humancardsinlibrary=Plains;Forest;Clear Shot;Explosive Apparatus;Moldgraf Scavenger;Plains;Island;Geist of the Archives;Watcher in the Web;Quilled Wolf;Island;Bloodbriar;Choking Restraints;Grapple with the Past;Spontaneous Mutation;Forest;Forest;Island;Forest;Stitched Mangler;Lambholt Pacifist;Forest;Woodland Stream;Backwoods Survivalists;Altered Ego;Terrarion;Island
humancardsingraveyard=Blessed Alliance;Ingenious Skaab
humancardsinplay=Forest;Terrarion;Plains|Tapped:True;Island;Exultant Cultist;Island|Tapped:True;Drownyard Explorers;t:Clue,P:0,T:0,Cost:no cost,Types:Artifact-Clue,Keywords:,Image:c_clue6;Forest|Tapped:True;Bloodbriar|SummonSick:True
humancardsinexile=
humancardsincommand=
aicardsinhand=Woodland Patrol;Shrill Howler;Swift Spinner;Hermit of the Natterknolls
aicardsinlibrary=Highland Lake;Woodland Patrol;Cultist's Staff;Thermo-Alchemist;Mountain;Forest;Bedlam Reveler;Forest;Forest;Senseless Rage;Shrill Howler;Shrill Howler;Stensia Masquerade;Hinterland Logger;Warped Landscape;Gibbering Fiend;Forest;Uncaged Fury;Mountain;Mountain;Forest;Mountain;Cryptolith Fragment;Falkenrath Reaver;Brazen Wolves;Thermo-Alchemist;Mountain
aicardsingraveyard=Deranged Whelp;Alchemist's Greeting;Aim High
aicardsinplay=Mountain|Tapped:True;Mountain;Geier Reach Sanitarium;Forest|Tapped:True;Insatiable Gorgers|Tapped:True;Mountain
aicardsinexile=
aicardsincommand=

Re: Bug Reports (snapshot builds)

PostPosted: 17 Aug 2016, 19:44
by MIC132
r32003
Could someone look into picking decks in network multiplayer EDH?

Only the host gets the correct deck, the rest gets a generated one no matter what they pick.

Re: Bug Reports (snapshot builds)

PostPosted: 18 Aug 2016, 00:24
by tjtillman
r32003

Not sure if this is already a known issue, but CPU had Cult of the Waxing Moon and Ulvenwald Captive, paid to transform the Ulvenwald Captive and then, before the transform ability resolved but was still on the stack, Cult of the Waxing Moon triggered several times.

Re: Bug Reports (snapshot builds)

PostPosted: 18 Aug 2016, 14:07
by fmartel
Description: [In commander, AI cast Kiki-Jiki, Mirror Breaker and tries to copy Reckless Brute]

NullPointerException | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r32009
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.game.ability.effects.ChangeZoneEffect.changeZonePlayerInvariant(ChangeZoneEffect.java:1073)
   at forge.game.ability.effects.ChangeZoneEffect.changeHiddenOriginResolve(ChangeZoneEffect.java:670)
   at forge.game.ability.effects.ChangeZoneEffect.resolve(ChangeZoneEffect.java:349)
   at forge.game.spellability.AbilitySub.resolve(AbilitySub.java:119)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1290)
   at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1283)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1297)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1271)
   at forge.ai.ComputerUtil.playNoStack(ComputerUtil.java:279)
   at forge.ai.PlayerControllerAi.playSpellAbilityNoStack(PlayerControllerAi.java:314)
   at forge.game.replacement.ReplacementHandler.executeReplacement(ReplacementHandler.java:246)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:134)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:75)
   at forge.game.GameAction.changeZone(GameAction.java:222)
   at forge.game.GameAction.moveTo(GameAction.java:472)
   at forge.game.GameAction.moveTo(GameAction.java:453)
   at forge.game.GameAction.moveToPlay(GameAction.java:562)
   at forge.game.ability.effects.CopyPermanentEffect.resolve(CopyPermanentEffect.java:233)
   at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1290)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1271)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:521)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:976)
   at forge.game.GameAction.startGame(GameAction.java:1464)
   at forge.game.Match.startGame(Match.java:95)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   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: 19 Aug 2016, 17:33
by fmartel
Description: [after having lost to AI, game continued. AI3 attacked AI2. Game Crashed at AI3 M2 turn]

OutOfMemoryError | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r32009
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_25 Oracle Corporation

java.lang.OutOfMemoryError: GC overhead limit exceeded
   at java.util.Arrays.copyOfRange(Unknown Source)
   at java.lang.String.<init>(Unknown Source)
   at java.lang.StringBuilder.toString(Unknown Source)
   at forge.game.card.Card.getAbilityText(Card.java:1719)
   at forge.game.card.CardView$CardStateView.updateAbilityText(CardView.java:1005)
   at forge.game.card.CardView$CardStateView.updateKeywords(CardView.java:1016)
   at forge.game.card.CardView.updateState(CardView.java:704)
   at forge.game.card.Card.updateStateForView(Card.java:432)
   at forge.game.staticability.StaticAbilityContinuous.applyContinuousAbility(StaticAbilityContinuous.java:632)
   at forge.game.staticability.StaticAbilityContinuous.applyContinuousAbility(StaticAbilityContinuous.java:81)
   at forge.game.staticability.StaticAbility.applyContinuousAbility(StaticAbility.java:222)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:690)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:633)
   at forge.game.GameAction.checkStateEffects(GameAction.java:872)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:903)
   at forge.game.GameAction.startGame(GameAction.java:1464)
   at forge.game.Match.startGame(Match.java:95)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)