Page 366 of 487

Re: Bug Reports (snapshot builds)

PostPosted: 20 Aug 2016, 05:54
by tojammot
Fist of Suns is busted, I get an error every time it hits the field.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r31898
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_101 Oracle Corporation

java.lang.NullPointerException
   at forge.game.card.CardFactoryUtil.addSpellAbility(CardFactoryUtil.java:3186)
   at forge.game.keyword.KeywordsChange.addKeywordsToCard(KeywordsChange.java:105)
   at forge.game.card.Card.addChangedCardKeywords(Card.java:3012)
   at forge.game.card.Card.addChangedCardKeywords(Card.java:3030)
   at forge.game.staticability.StaticAbilityContinuous.applyContinuousAbility(StaticAbilityContinuous.java:500)
   at forge.game.staticability.StaticAbilityContinuous.applyContinuousAbility(StaticAbilityContinuous.java:81)
   at forge.game.staticability.StaticAbility.applyContinuousAbility(StaticAbility.java:218)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:686)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:630)
   at forge.game.GameAction.changeZone(GameAction.java:284)
   at forge.game.GameAction.moveTo(GameAction.java:471)
   at forge.game.GameAction.moveTo(GameAction.java:452)
   at forge.game.GameAction.moveToPlay(GameAction.java:559)
   at forge.game.GameAction.moveTo(GameAction.java:609)
   at forge.game.GameAction.moveTo(GameAction.java:601)
   at forge.game.spellability.SpellPermanent.resolve(SpellPermanent.java:72)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:516)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:974)
   at forge.game.GameAction.startGame(GameAction.java:1460)
   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: 20 Aug 2016, 08:30
by Hanmac
@tojammot: the problem with Fist of Suns is fixed with r32015

(hm its more a hotfix than really fixed, Lands should never get this keyword, right?)
someone might check Fist of Suns and Etched Oracle Avatar if it couldn't be better.

Re: Bug Reports (snapshot builds)

PostPosted: 20 Aug 2016, 20:01
by tjtillman
r32016
Weirdness still happens with Kindly Stranger as seen before.



tjtillman wrote:r31911

Something weird is going on with Kindly Stranger, it wants to transform randomly at times, both when I control it or when the CPU controls it, without mana being paid, nor Delirium being met. It not only does it incorrectly and seemingly randomly, but it triggers several times. It happened a few times before, but I wasn't paying close enough attention to the conditions. The most recent time I couldn't find anything unusual that would've caused it to happen, but I did dump the game state, shown here:


Re: Bug Reports (snapshot builds)

PostPosted: 21 Aug 2016, 15:33
by stormcat
:r32019
Ring of Three Wishes has bug.
It enter the battlefield without 3 Wish counters.

Re: Bug Reports (snapshot builds)

PostPosted: 21 Aug 2016, 19:07
by friarsol
stormcat wrote::r32019
Ring of Three Wishes has bug.
It enter the battlefield without 3 Wish counters.
It works fine for me. Got any more details?

Re: Bug Reports (snapshot builds)

PostPosted: 21 Aug 2016, 20:59
by stormcat
@friarsol
I tried again, this time was successful.
There seems to be condition.
Situation is Commander game, and when I cast it.

Re: Bug Reports (snapshot builds)

PostPosted: 22 Aug 2016, 20:08
by fmartel
Description: [In a commander game, attacking AI, all in, 20 creatures total. AI Blocks w Ayli, Eternal Pilgrim (Crusader of Odric), Viscera Dragger (Spawnwrithe)]

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

java.lang.StackOverflowError
   at java.lang.String.split(Unknown Source)
   at forge.game.card.Card.isValid(Card.java:3627)
   at forge.game.GameObject.isValid(GameObject.java:27)
   at forge.game.card.CardPredicates$16.apply(CardPredicates.java:178)
   at forge.game.card.CardPredicates$16.apply(CardPredicates.java:175)
   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 forge.util.collect.FCollection.<init>(FCollection.java:90)
   at forge.game.card.CardCollection.<init>(CardCollection.java:115)
   at forge.game.card.CardLists.filter(CardLists.java:255)
   at forge.game.card.CardLists.getValidCards(CardLists.java:185)
   at forge.game.cost.CostSacrifice.canPay(CostSacrifice.java:93)
   at forge.game.cost.CostPayment.canPayAdditionalCosts(CostPayment.java:98)
   at forge.game.spellability.AbilityActivated.canPlay(AbilityActivated.java:117)
   at forge.game.spellability.SpellAbilityView.updateCanPlay(SpellAbilityView.java:57)
   at forge.game.spellability.SpellAbility.setActivatingPlayer(SpellAbility.java:304)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:678)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:454)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:345)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:264)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:317)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:690)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1806)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:608)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:587)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:290)
   at f
... (truncated)

Re: Bug Reports (snapshot builds)

PostPosted: 23 Aug 2016, 16:15
by solomonofisle
Description: Quest mode. Typically visiting Shandalar or the First Limited Beta option. Finished battle. Received cards. Clicking the Great blue button on the left causes a NullPointerException. Bug usually seen about 10-15 matches into quest mode (I tend to have it customized for 20 to go up in rank starting with easy and taking 100 to switch to medium ai, can provide exact info if deemed relevant.) Record is currently 14-2. This was game 16. Will also dump the error if I click Challenges. Quests are set up as Easy Rank Increase 10 , Wins for Medium 100 Hard 150 Expert 200.

Versions: from krazyweb forge, forge-gui-desktop-1.5.56-SNAPSHOT-32024. Reproduced in the last 8 snapshots i've tried and last beta listed on the official drop post. To get rid of it I typically download the new snapshot and have to start a new quest. Then I'm good for another 10-15 matches and then every time I hit great the following error. Java version is the latest from Oracle.


NullPointerException | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r32024
Operating System: Windows 10 10.0 x86
Java Version:     1.8.0_101 Oracle Corporation

java.lang.NullPointerException
   at forge.screens.home.quest.PnlEvent.<init>(PnlEvent.java:49)
   at forge.screens.home.quest.CSubmenuChallenges.update(CSubmenuChallenges.java:166)
   at forge.screens.match.QuestWinLose.actionOnQuit(QuestWinLose.java:74)
   at forge.screens.match.ControlWinLose$3.actionPerformed(ControlWinLose.java:54)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
   at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(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.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.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)
My apologies if this was posted incorrectly. First report.

Re: Bug Reports (snapshot builds)

PostPosted: 25 Aug 2016, 15:17
by stormcat
:r32030
Many spells fizzle in draft match.

Re: Bug Reports (snapshot builds)

PostPosted: 25 Aug 2016, 15:21
by Hanmac
stormcat wrote::r32030
Many spells fizzle in draft match.
Can you try to Investigate that more?

What was on the field? What did you cast and what did you target?

Did that happen for normal play too?

(Was the target a morph? Because I thought I fixed that)

Re: Bug Reports (snapshot builds)

PostPosted: 25 Aug 2016, 15:27
by stormcat
@Hanmac
Sample picture.
Please refer to "Log" in Attachment.

Re: Bug Reports (snapshot builds)

PostPosted: 25 Aug 2016, 15:34
by stormcat
I tried Standard game, result is same.
Targeting spells fizzle all.

Re: Bug Reports (snapshot builds)

PostPosted: 25 Aug 2016, 16:13
by Hanmac
@stormcat okay i see the issue.

i can narrow it for only AI played cards/creatures.
they have the wrong state, i get "current-state" for them is Ai's hand while they are on the battlefield.

can someone help me to look over when this went wrong?

@stormcat, if you are using svn or different revisions, can you check also when this error did happen?

===
Edit:
@stormcat i found the rev which does break it.
getPumpedCreature needed a new id, while i did try it with the same one.
(probably an LKI copy might be better)

it should be fixed now.
i was wrong it is still broken, but i found the revision where it did work, and then not anymore.

Edit: now it should be fixed.
stupid bug!

Re: Bug Reports (snapshot builds)

PostPosted: 27 Aug 2016, 09:27
by Agetian
COMPATIBILITY WARNING: As of r32033, a new version of Xyx's quest worlds has been merged to trunk. Because the quest world names and the names of some decks and deck files have changed, this may break compatibility with old World-based quest saves. If you experience a crash with an old quest save, you will have to delete it and start a new quest (or, alternatively, continue playing the old quest using the old version of the game [r32032 or lower]).

- Agetian

Re: Bug Reports (snapshot builds)

PostPosted: 29 Aug 2016, 20:07
by Thrint
Working on an a quest world that's Innistrad (regular and shadows). Ran into this bug report while testing the following challenge.

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

NullPointerException | Open
Code: Select all
Forge Version:    1.5.56-SNAPSHOT-r32032
Operating System: Windows 8 6.2 x86
Java Version:     1.8.0_40 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:1555)
   at forge.game.ability.AbilityUtils.calculateAmount(AbilityUtils.java:396)
   at forge.ai.ability.CountersPutAi.doTriggerAINoCost(CountersPutAi.java:438)
   at forge.ai.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:118)
   at forge.ai.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:113)
   at forge.ai.AiController.doTrigger(AiController.java:1378)
   at forge.ai.AiController.checkETBEffects(AiController.java:346)
   at forge.ai.AiController.canPlayFromEffectAI(AiController.java:1218)
   at forge.ai.AiController.canPlaySa(AiController.java:780)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:636)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1331)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1308)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1247)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:392)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:923)
   at forge.game.GameAction.startGame(GameAction.java:1463)
   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)
The challenge:

[quest]
id=10001
OpponentName=Liliana
AILife=30
Repeat=true
Wins=10
Card Reward=1 white rare, 1 black rare
Credit Reward=500
HumanExtras=Sigardian Priest|Avacynian Priest
AIExtras=TOKEN;B;2;2;Zombie;Creature|TOKEN;B;2;2;Zombie;Creature
[metadata]
Name=quest10001
Title=Liliana's Endless Zombies
Difficulty=hard
Description=Liliana has brought her hordes of zombies to play with the Priests of Avacyn and Sigarda. Can you keep them from multiplying?
Icon=Dungeon Crawling Black.jpg
Deck Type=constructed
[main]
4 Cryptbreaker|EMN
3 Diregraf Colossus|SOI
4 Gavony Unhallowed|EMN
3 Liliana's Elite|EMN
2 Noosegraf Mob|EMN
4 Unbreathing Horde|DDQ
4 Geralf's Messenger|DKA
4 Cemetery Recruitment|EMN
4 Endless Ranks of the Dead|ISD
4 Liliana, the Last Hope|EMN
24 Swamp|SOI
[sideboard]
[planes]
[schemes]