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 Fizanko » 18 Sep 2014, 23:27
Not really a bug, but something i think that could make some people thinking the game is stuck, when playing Tablet of the Guilds

Presented like that, an user could expect to just click on 2 colors and click the OK, but it does not work.
To make it work, the user must hold SHIFT then select the 2 colors.
Maybe this should be mentionned somewhere in the dialogue window to avoid misunderstanding ?

Presented like that, an user could expect to just click on 2 colors and click the OK, but it does not work.
To make it work, the user must hold SHIFT then select the 2 colors.
Maybe this should be mentionned somewhere in the dialogue window to avoid misunderstanding ?
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Fizanko » 18 Sep 2014, 23:32
another stack overflow error in r27533


- StackOverflowError | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
java.lang.StackOverflowError
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.split(Unknown Source)
at java.lang.String.split(Unknown Source)
at forge.game.zone.ZoneType.listValueOf(ZoneType.java:48)
at forge.game.spellability.AbilityActivated.canPlay(AbilityActivated.java:96)
at forge.ai.ComputerUtilMana$3.apply(ComputerUtilMana.java:948)
at forge.ai.ComputerUtilMana$3.apply(ComputerUtilMana.java:943)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ComputerUtilMana.getAvailableMana(ComputerUtilMana.java:943)
at forge.ai.ComputerUtilMana.groupSourcesByManaColor(ComputerUtilMana.java:1056)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:346)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:80)
at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:55)
at forge.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:378)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java
... (truncated)
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by friarsol » 19 Sep 2014, 01:45
r27538
The combat Panel lists my attacking creatures as "Blocked" even though they clearly aren't blocked. They should only be listed as blocked if a creature had been assigned to block but have since been removed. They do correctly assign damage to the defending object, so this must just be a UI display issue.
The combat Panel lists my attacking creatures as "Blocked" even though they clearly aren't blocked. They should only be listed as blocked if a creature had been assigned to block but have since been removed. They do correctly assign damage to the defending object, so this must just be a UI display issue.
- 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 Fizanko » 19 Sep 2014, 02:05
I got another stack overflow error and different message in it, this time it was just the AI turn to start, it not even picked a card yet :


- StackOverflowError | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
java.lang.StackOverflowError
at java.util.ArrayList.<init>(Unknown Source)
at forge.game.card.Card.getUnhiddenKeyword(Card.java:4519)
at forge.game.card.Card.getKeyword(Card.java:4416)
at forge.game.card.Card.hasKeyword(Card.java:5304)
at forge.game.zone.PlayerZone$OwnCardsActivationFilter.apply(PlayerZone.java:56)
at forge.game.zone.PlayerZone$OwnCardsActivationFilter.apply(PlayerZone.java:53)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.zone.PlayerZone.getCardsPlayerCanActivate(PlayerZone.java:132)
at forge.game.player.Player.getCardsActivableInExternalZones(Player.java:1552)
at forge.ai.ComputerUtil.hasACardGivingHaste(ComputerUtil.java:1206)
at forge.ai.ComputerUtil.castPermanentInMain1(ComputerUtil.java:871)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:694)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:654)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.n
... (truncated)
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by excessum » 19 Sep 2014, 02:26
For the stack overflow errors, I think it is due to predictSpellToCastInMain2() failing to catch PumpAllAi so it ends up in an infinite loop with canPlayAi calling itself indefinitely.
- Code: Select all
public SpellAbility predictSpellToCastInMain2(ApiType exceptSA, boolean handOnly) {
final List<Card> cards = handOnly ? player.getCardsIn(ZoneType.Hand) : getAvailableCards();
ArrayList<SpellAbility> all = getSpellAbilities(cards);
Collections.sort(all, saComparator); // put best spells first
for (final SpellAbility sa : getOriginalAndAltCostAbilities(all)) {
if (sa.getApi() == ApiType.Counter || sa.getApi() == exceptSA) {
continue;
}
Re: Bug Reports (snapshot builds)
by Fizanko » 19 Sep 2014, 02:52
I got a concurrent error on another duel ( r27537 ) :
It was during the phase in which the game deal the actual damage ( CD phase )

It was during the phase in which the game deal the actual damage ( CD phase )

- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:141)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:413)
at forge.view.LocalGameView.getCombat(LocalGameView.java:183)
at forge.view.LocalGameView.getCombat(LocalGameView.java:167)
at forge.control.FControlGameEventHandler$2.run(FControlGameEventHandler.java:105)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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)
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Agetian » 19 Sep 2014, 03:56
Thanks for help, yes, I also think that should do it! Unfortunately, I was unable to come up with a reliable test case (even based on the screenshots above) which would allow me to confirm or deny that this is fixed, but please let me know if this happens again past r27540 - if so, I'll have to dig some more to find another solution.excessum wrote:Adding "sa.getApi() == ApiType.PumpAll" or something like that to the if-block should fix this.
EDIT: While trying to find out if this solution works or not I used an AEtherling test case (attached below). While I could not yet reproduce the stack overflow error, I was able to provoke another situation which I haven't seen for a while - that is, the AI repeatedly pumping the said AEtherling with "unblockable" until it had no mana left on its hands. Not sure if it's something I've done or not (hope not, anyway), but I can't pinpoint why that happens yet. It doesn't *always* happen, but I was able to reproduce it two times with the test case below.

Test case:
- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by timmermac » 19 Sep 2014, 12:36
r27533: Did the way Fireball works get changed? I wasn't asked to pick targets for it at all.
Edit: This has come up twice during opponent's upkeep phase against Aragorn 1
Edit: This has come up twice during opponent's upkeep phase against Aragorn 1
- NoSuchElementException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_51 Oracle Corporation
java.util.NoSuchElementException
at com.google.common.collect.Iterators$4.next(Iterators.java:403)
at forge.view.CardView.nextRandomInt(CardView.java:46)
at forge.view.CardView.reset(CardView.java:91)
at forge.view.LocalGameView.getCardView(LocalGameView.java:396)
at forge.view.LocalGameView$3.apply(LocalGameView.java:408)
at forge.view.LocalGameView$3.apply(LocalGameView.java:405)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:142)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:413)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:359)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:323)
at forge.view.LocalGameView.getPlayerTurn(LocalGameView.java:213)
at forge.GuiDesktop.updatePhase(GuiDesktop.java:252)
at forge.control.FControlGameEventHandler$1.run(FControlGameEventHandler.java:88)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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)
"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
Re: Bug Reports (snapshot builds)
by psilo » 19 Sep 2014, 13:52
Not sure if these crash reports should be posted here or somewhere else, sorry if this is wrong section.
Description: game crashed in 1v1 commander made, when opponent played land, Nykthos I think.
Description: game crashed in 1v1 commander made, when opponent played land, Nykthos I think.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.26-r27298Mu (mixed revisions detected; please update from the root directory)
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_65 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ComputerUtilMana$ManaProducingCard.addAbility(ComputerUtilMana.java:110)
at forge.ai.ComputerUtilMana$ManaProducingCard.<init>(ComputerUtilMana.java:92)
at forge.ai.ComputerUtilMana.sortManaAbilities(ComputerUtilMana.java:130)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:387)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:79)
at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:54)
at forge.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:378)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:678)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1225)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1206)
at forge.ai.AiController.choooseSpellAbilityToPlay(AiController.java:1162)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:415)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1012)
at forge.game.GameAction.startGame(GameAction.java:1559)
at forge.game.Match.startGame(Match.java:81)
at forge.control.FControl$4.run(FControl.java:447)
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)
by KrazyTheFox » 19 Sep 2014, 16:12
This was fixed a while ago. You can grab a much newer version here: http://www.krazyweb.net/forge/psilo wrote:Not sure if these crash reports should be posted here or somewhere else, sorry if this is wrong section.
Description: game crashed in 1v1 commander made, when opponent played land, Nykthos I think.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.26-r27298Mu (mixed revisions detected; please update from the root directory)
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_65 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ComputerUtilMana$ManaProducingCard.addAbility(ComputerUtilMana.java:110)
at forge.ai.ComputerUtilMana$ManaProducingCard.<init>(ComputerUtilMana.java:92)
at forge.ai.ComputerUtilMana.sortManaAbilities(ComputerUtilMana.java:130)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:387)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:79)
at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:54)
at forge.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:378)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:678)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1225)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1206)
at forge.ai.AiController.choooseSpellAbilityToPlay(AiController.java:1162)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:415)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1012)
at forge.game.GameAction.startGame(GameAction.java:1559)
at forge.game.Match.startGame(Match.java:81)
at forge.control.FControl$4.run(FControl.java:447)
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 timmermac » 19 Sep 2014, 17:10
I'm not sure if this is a bug or not. I am attempting to change the number of cards sold in the shop, but the settings aren't taking. I'm starting a new quest every time I change the preferences. First I tried 250 C/U/R. Nope. Just basic lands in the shop. Then I tried 100 C/U/R. uh-uh. Still just basic lands in the shop. This is with r27533.
"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
Re: Bug Reports (snapshot builds)
by Fizanko » 19 Sep 2014, 19:39
Played 2 duels with Speed vs Cunning with the r27546 snapshot from Chris H. , with me as Speed and the AI as Cunning and didn't obtained the Stack Overflow error.
Will try a bit more duels in this duel deck to see if it's just me lucky or if fortunately Agetian and excessum fix is working nicely.
Will try a bit more duels in this duel deck to see if it's just me lucky or if fortunately Agetian and excessum fix is working nicely.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by ZappaZ » 19 Sep 2014, 22:33
r27555
If i start a game from the constructed screen after setting
the first player as AI and the second as Human I get stuck on the first
step, be it Play/Draw or Keep/Mulligan.
Stuck meaning that nothing happens when I press the Play/Draw etc buttons in the bottom left corner.
I can still change to Home and Deck editor tabs.
Play/Draw
If I press the X on the Game tab up top and choose concede it will be
the same as pressing Play, the next time I do it is the same as Keep
and after that the AI will mulligan every time I Concede.
If I mulligan the AI down to 0 this way the log will say that we both
Conceded and it will be a draw.
This behavior is not present the 1.5.26 Beta so I'm guessing it's unintentional?
If i start a game from the constructed screen after setting
the first player as AI and the second as Human I get stuck on the first
step, be it Play/Draw or Keep/Mulligan.
Stuck meaning that nothing happens when I press the Play/Draw etc buttons in the bottom left corner.
I can still change to Home and Deck editor tabs.
Play/Draw
If I press the X on the Game tab up top and choose concede it will be
the same as pressing Play, the next time I do it is the same as Keep
and after that the AI will mulligan every time I Concede.
If I mulligan the AI down to 0 this way the log will say that we both
Conceded and it will be a draw.
This behavior is not present the 1.5.26 Beta so I'm guessing it's unintentional?
Last edited by ZappaZ on 20 Sep 2014, 01:06, edited 1 time in total.
Re: Bug Reports (snapshot builds)
by ZappaZ » 19 Sep 2014, 22:48
r27555
Description: AI attacking with Lavaclaw Reaches, got this on the declare blockers step.
http://imgur.com/XGxAcWU
And sometimes the AI likes to play lands like Hallowed Fountain and paying the
Life cost and then not actually tap the land for mana, I have noticed this a couple
of times when it plays a land like that as the first land of the game.
Description: Got this during AI upkeep.
http://imgur.com/ADNqTMh
Description: Just won the game as seen in the following screenshot.
http://imgur.com/iQDbszn
Description: AI is attacking using a Platinum Angel equipped with 2 Skullclamp:s.
http://imgur.com/5saoTc8
Description: AI Going from Upkeep to Draw.
http://imgur.com/AHOfZ3a
Description: Started a Constructed game with 2 AI players, won the coin toss but the OK/Cancel buttons was faded out, pressed the X on the Game tab up top and conceded 2 times (now the log shows that both AI players have kept their hands) and got this while conceding a third time.
Tried some more and this only happens when I win the cointoss.
Description: AI attacking with Lavaclaw Reaches, got this on the declare blockers step.
http://imgur.com/XGxAcWU
- ArithmeticException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.lang.ArithmeticException: / by zero
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:591)
at forge.ai.ability.PumpAi.canPlayAI(PumpAi.java:180)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:680)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1248)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1229)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1185)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:415)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1019)
at forge.game.GameAction.startGame(GameAction.java:1569)
at forge.game.Match.startGame(Match.java:81)
at forge.control.FControl$4.run(FControl.java:495)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
And sometimes the AI likes to play lands like Hallowed Fountain and paying the
Life cost and then not actually tap the land for mana, I have noticed this a couple
of times when it plays a land like that as the first land of the game.
Description: Got this during AI upkeep.
http://imgur.com/ADNqTMh
- StackOverflowError | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.lang.StackOverflowError
at forge.game.player.Player.getCardsIn(Player.java:1457)
at forge.ai.ComputerUtilMana.getAvailableMana(ComputerUtilMana.java:941)
at forge.ai.ComputerUtilMana.groupSourcesByManaColor(ComputerUtilMana.java:1056)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:346)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:80)
at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:55)
at forge.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:378)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640
... (truncated)
Description: Just won the game as seen in the following screenshot.
http://imgur.com/iQDbszn
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at java.util.Collections$UnmodifiableCollection$1.next(Unknown Source)
at forge.game.Game.getCardsIn(Game.java:449)
at forge.game.card.Card.canBeShownTo(Card.java:8919)
at forge.player.PlayerControllerHuman$GameView.mayShowCard(PlayerControllerHuman.java:1455)
at forge.view.LocalGameView.getCardView(LocalGameView.java:382)
at forge.view.LocalGameView$3.apply(LocalGameView.java:408)
at forge.view.LocalGameView$3.apply(LocalGameView.java:405)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:142)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:413)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:359)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:323)
at forge.view.LocalGameView$2.apply(LocalGameView.java:307)
at forge.view.LocalGameView$2.apply(LocalGameView.java:304)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:142)
at forge.view.LocalGameView.getPlayerViews(LocalGameView.java:312)
at forge.control.FControlGameEventHandler$11.run(FControlGameEventHandler.java:425)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(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)
Description: AI is attacking using a Platinum Angel equipped with 2 Skullclamp:s.
http://imgur.com/5saoTc8
- IllegalArgumentException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.lang.IllegalArgumentException: Can't add attribute to 0-length text
at java.text.AttributedString.addAttribute(Unknown Source)
at forge.view.arcane.util.OutlinedLabel.paint(OutlinedLabel.java:125)
at javax.swing.JComponent.paintChildren(Unknown Source)
at forge.view.arcane.CardPanel.paintChildren(CardPanel.java:356)
at javax.swing.JComponent.paint(Unknown Source)
at forge.view.arcane.CardPanel.paint(CardPanel.java:300)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at forge.toolbox.FScrollPane.paint(FScrollPane.java:83)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
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.BufferStrategyPaintManager.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$400(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)
Description: AI Going from Upkeep to Draw.
http://imgur.com/AHOfZ3a
- StackOverflowError | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.lang.StackOverflowError
at forge.game.cost.Cost.isReusuableResource(Cost.java:482)
at forge.ai.ComputerUtilMana.getAIPlayableMana(ComputerUtilMana.java:1180)
at forge.ai.ComputerUtilMana$3.apply(ComputerUtilMana.java:946)
at forge.ai.ComputerUtilMana$3.apply(ComputerUtilMana.java:943)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ComputerUtilMana.getAvailableMana(ComputerUtilMana.java:943)
at forge.ai.ComputerUtilMana.groupSourcesByManaColor(ComputerUtilMana.java:1056)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:346)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:80)
at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:55)
at forge.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:378)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:634)
at forge.ai.ability.PumpAllAi.canPlayAI(PumpAllAi.java:123)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.canPlaySa(AiController.java:688)
at forge.ai.ability.CharmAi.chooseOptionsAi(CharmAi.java:61)
at forge.ai.ability.CharmAi.canPlayAI(CharmAi.java:30)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:23)
at forge.ai.AiController.canPlaySa(AiController.java:698)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:658)
at forge.ai.AiController.predictSpellToCastInMain2(AiController.java:640)
at forge.ai.ability.PumpAiBase.shouldPumpCard(PumpAiBase.java:450)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:637)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:634)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:356)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:129)
at forge.game.card.CardLists.filter(CardLists.java:225)
at f
... (truncated)
Description: Started a Constructed game with 2 AI players, won the coin toss but the OK/Cancel buttons was faded out, pressed the X on the Game tab up top and conceded 2 times (now the log shows that both AI players have kept their hands) and got this while conceding a third time.
Tried some more and this only happens when I win the cointoss.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.lang.NullPointerException
at forge.game.GameAction.runOpeningHandActions(GameAction.java:1690)
at forge.game.GameAction.startGame(GameAction.java:1561)
at forge.game.Match.startGame(Match.java:81)
at forge.control.FControl$4.run(FControl.java:495)
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)
by friarsol » 20 Sep 2014, 02:20
I thought I saw a commit where someone was trying to fix this, but it's definitely not fixed. I'm not sure what the logic is doing, but it definitely isn't doing what I expect here.friarsol wrote:r27538
The combat Panel lists my attacking creatures as "Blocked" even though they clearly aren't blocked. They should only be listed as blocked if a creature had been assigned to block but have since been removed. They do correctly assign damage to the defending object, so this must just be a UI display issue.
As you can see, somehow this attacker is marked as "blocked" in the Combat panel, even though I haven't even been able to declare blockers yet.
http://i.imgur.com/9TCH1ui.jpg
As far as I can tell this "CombatView" is pretty flawed in it's implementation of what "blocked" is.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Who is online
Users browsing this forum: No registered users and 44 guests