It is currently 16 Apr 2024, 11:18
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Bug Reports (snapshot builds)

Postby l33t3rth4nur1111 » 24 Apr 2017, 07:16

Description:
Activated Soul Foundry to create a Quicksilver Gargantuan token copying an opponent's Karador, Ghost Chieftain commander.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.62-SNAPSHOT-r33832
Operating System: Mac OS X 10.10.5 x86_64
Java Version:     1.8.0_60 Oracle Corporation

java.lang.NullPointerException
   at forge.game.staticability.StaticAbility.checkConditions(StaticAbility.java:476)
   at forge.game.staticability.StaticAbility.shouldApplyContinuousAbility(StaticAbility.java:260)
   at forge.game.staticability.StaticAbility.applyContinuousAbility(StaticAbility.java:226)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:698)
   at forge.game.GameAction.checkStaticAbilities(GameAction.java:641)
   at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1281)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1297)
   at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1283)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1297)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1271)
   at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:181)
   at forge.player.HumanPlay.playSpellAbilityNoStack(HumanPlay.java:230)
   at forge.player.PlayerControllerHuman.playSpellAbilityNoStack(PlayerControllerHuman.java:246)
   at forge.game.replacement.ReplacementHandler.executeReplacement(ReplacementHandler.java:264)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:148)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:69)
   at forge.game.GameAction.changeZone(GameAction.java:239)
   at forge.game.GameAction.moveTo(GameAction.java:480)
   at forge.game.GameAction.moveTo(GameAction.java:461)
   at forge.game.GameAction.moveToPlay(GameAction.java:570)
   at forge.game.ability.effects.CopyPermanentEffect.resolve(CopyPermanentEffect.java:261)
   at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1290)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1271)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:514)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:996)
   at forge.game.GameAction.startGame(GameAction.java:1485)
   at forge.game.Match.startGame(Match.java:100)
   at forge.match.HostedMatch$2.run(HostedMatch.java:224)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)
l33t3rth4nur1111
 
Posts: 24
Joined: 20 Jun 2014, 01:15
Has thanked: 1 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Indigo Dragon » 24 Apr 2017, 16:06

Whirlpool Warrior doesn't have an activated ability.
Not that it can't activate its ability, or that its ability breaks the game. It does not have an activated ability. So now it's just a bigger Whirlpool Rider.
Ctrl+C, Ctrl+V
User avatar
Indigo Dragon
 
Posts: 130
Joined: 11 May 2016, 10:18
Location: Australia
Has thanked: 63 times
Been thanked: 56 times

Re: Bug Reports (snapshot builds)

Postby tjtillman » 25 Apr 2017, 20:53

r33841

Not a bug, but AI never activates Edifice of Authority. Is there any way to let AI use it like it would a tapper? If not, or if there isn't a good way to have AI use it, be better for AI not to play it at all rather than play it and not use it.
tjtillman
 
Posts: 202
Joined: 16 Sep 2013, 17:47
Has thanked: 0 time
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby fmartel » 26 Apr 2017, 21:35

Description: [AI blocks a Spawnwrithe (2/3, with Spidersilk Armor) into a Battle Sliver (5/3)]

StackOverflowError | Open
Code: Select all
Forge Version:    1.5.62-SNAPSHOT-r-1
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_101 Oracle Corporation

java.lang.StackOverflowError
   at java.util.regex.Pattern.closure(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:49)
   at forge.game.staticability.StaticAbility.checkConditions(StaticAbility.java:475)
   at forge.game.cost.CostAdjustment.checkRequirement(CostAdjustment.java:399)
   at forge.game.cost.CostAdjustment.applyRaise(CostAdjustment.java:88)
   at forge.game.cost.CostAdjustment.adjust(CostAdjustment.java:73)
   at forge.ai.ComputerUtilMana.calculateManaCost(ComputerUtilMana.java:1014)
   at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:99)
   at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:63)
   at forge.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:478)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:825)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.jav
... (truncated)
fmartel
 
Posts: 281
Joined: 31 Dec 2013, 19:27
Location: Québec City
Has thanked: 8 times
Been thanked: 4 times

Re: Bug Reports (snapshot builds)

Postby Marek14 » 28 Apr 2017, 09:19

Casting Frogmite via Nightveil Specter apparently counts opponent's artifacts instead of mine.

Also, I still have the problem with Forge hanging when the last mana ability used to pay for spell/ability requires a choice displayed in left bottom panel (removing a counter, paying energy, choosing between 2 types of mana -- not more, since that gets its own dialogue box)...
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Bug Reports (snapshot builds)

Postby fmartel » 30 Apr 2017, 21:31

Description: [attacking with Rampaging Baloths, Wurmcoil Engine, attached Sword of Body and Mind, 1x Eldrazi Spawn. I have Spidersilk Armor in play]

StackOverflowError | Open
Code: Select all
Forge Version:    1.5.62-SNAPSHOT-r-1
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_101 Oracle Corporation

java.lang.StackOverflowError
   at java.util.ArrayList.addAll(Unknown Source)
   at com.google.common.collect.Iterables.addAll(Iterables.java:348)
   at forge.game.card.Card.getUnhiddenKeywords(Card.java:3229)
   at forge.game.card.Card.getUnhiddenKeywords(Card.java:3225)
   at forge.game.card.Card.visitUnhiddenKeywords(Card.java:3257)
   at forge.game.card.Card.visitKeywords(Card.java:3137)
   at forge.game.card.Card.hasKeyword(Card.java:3152)
   at forge.game.card.Card.hasKeyword(Card.java:3143)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1817)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:388)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:290)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:368)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:836)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1829)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:609)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:588)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:291)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:455)
   at f
... (truncated)
fmartel
 
Posts: 281
Joined: 31 Dec 2013, 19:27
Location: Québec City
Has thanked: 8 times
Been thanked: 4 times

Re: Bug Reports (snapshot builds)

Postby Bog Wraith » 01 May 2017, 01:14

1.5.62-r33896

After tapping Naga Vitalist for mana, Forge came to a complete stop. There was no crash so no report was generated. The cancel button did not work and there was no way to continue the game. I dumped the game state and include the file below along with a screenshot of the board/game state.
Code: Select all
humanlife=18
ailife=19
activeplayer=human
activephase=MAIN1
humanhand=Initiate's Companion;Stinging Shot;Rhet-Crop Spearmaster;Forest
humanlibrary=Unwavering Initiate;Unwavering Initiate;Forest;Gust Walker;Gust Walker;Plains;Trial of Strength;Pouncing Cheetah;Plains;Forest;Prowling Serpopard;Ornery Kudu;Plains;Forest;Forest;Cast Out;Spidery Grasp;Sixth Sense;Forest;In Oketra's Name;Plains;Oashra Cultivator;Sacred Cat;Winged Shepherd;Forest;Plains;Plains;Prepare // Fight;Plains;Supply Caravan
humangraveyard=
humanbattlefield=Plains|Tapped;Sacred Cat;Forest|Tapped;Naga Vitalist|Tapped;Forest|Tapped
humanexile=
humancommand=
aihand=Sunscorched Desert;Plains;Cradle of the Accursed
ailibrary=Luxa River Shrine;Colossapede;Forest;Protection of the Hekma;Shed Weakness;Greater Sandwurm;Quarry Hauler;Bontu's Monument;Forest;Sparring Mummy;Plains;Shefet Monitor;Scattered Groves;Benefaction of Rhonas;Plains;Impeccable Timing;Synchronized Strike;Dusk // Dawn;Devoted Crop-Mate;Crocodile of the Crossing;Forest;Djeru's Resolve;Forest;Plains;Scaled Behemoth;Sunscorched Desert;Plains;Renewed Faith;Forest;Oketra the True;Djeru's Resolve
aigraveyard=Djeru's Resolve
aibattlefield=Plains|Tapped;Fan Bearer|Id:72;Sheltered Thicket;Honed Khopesh|Attaching:72;Plains|Tapped
aiexile=
aicommand=
Attachments
screenshot_3127.jpg
'Twas in the bogs of Cannelbrae
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
User avatar
Bog Wraith
Global Mod 1 (Ret)
 
Posts: 1108
Joined: 28 May 2008, 22:40
Location: Shandalar
Has thanked: 425 times
Been thanked: 153 times

Re: Bug Reports (snapshot builds)

Postby Marek14 » 01 May 2017, 07:09

Bog Wraith wrote:1.5.62-r33896

After tapping Naga Vitalist for mana, Forge came to a complete stop. There was no crash so no report was generated. The cancel button did not work and there was no way to continue the game. I dumped the game state and include the file below along with a screenshot of the board/game state.
Code: Select all
humanlife=18
ailife=19
activeplayer=human
activephase=MAIN1
humanhand=Initiate's Companion;Stinging Shot;Rhet-Crop Spearmaster;Forest
humanlibrary=Unwavering Initiate;Unwavering Initiate;Forest;Gust Walker;Gust Walker;Plains;Trial of Strength;Pouncing Cheetah;Plains;Forest;Prowling Serpopard;Ornery Kudu;Plains;Forest;Forest;Cast Out;Spidery Grasp;Sixth Sense;Forest;In Oketra's Name;Plains;Oashra Cultivator;Sacred Cat;Winged Shepherd;Forest;Plains;Plains;Prepare // Fight;Plains;Supply Caravan
humangraveyard=
humanbattlefield=Plains|Tapped;Sacred Cat;Forest|Tapped;Naga Vitalist|Tapped;Forest|Tapped
humanexile=
humancommand=
aihand=Sunscorched Desert;Plains;Cradle of the Accursed
ailibrary=Luxa River Shrine;Colossapede;Forest;Protection of the Hekma;Shed Weakness;Greater Sandwurm;Quarry Hauler;Bontu's Monument;Forest;Sparring Mummy;Plains;Shefet Monitor;Scattered Groves;Benefaction of Rhonas;Plains;Impeccable Timing;Synchronized Strike;Dusk // Dawn;Devoted Crop-Mate;Crocodile of the Crossing;Forest;Djeru's Resolve;Forest;Plains;Scaled Behemoth;Sunscorched Desert;Plains;Renewed Faith;Forest;Oketra the True;Djeru's Resolve
aigraveyard=Djeru's Resolve
aibattlefield=Plains|Tapped;Fan Bearer|Id:72;Sheltered Thicket;Honed Khopesh|Attaching:72;Plains|Tapped
aiexile=
aicommand=
Sounds like a bug I get recently. Basically, the game stops like this when you pay mana to cast spells/activate abilities and the last ability you use has a binary choice (selection between two colors of mana, removing a counter yes/no, etc.)
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Bug Reports (snapshot builds)

Postby Marek14 » 01 May 2017, 08:14

Kill Switch seems to not stop things from untapping.
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Bug Reports (snapshot builds)

Postby AuranReign » 02 May 2017, 03:26

Whirlpool Warrior is missing the second half of its text.

Wrangle is missing the power 4 or less clause.
Attachments
Screenshot_2017-04-24-23-34-48.png
Screenshot_2017-04-24-23-34-41.png
Screenshot_2017-05-01-20-23-00.png
Screenshot_2017-05-01-20-22-56.png
AuranReign
 
Posts: 16
Joined: 08 Apr 2017, 23:39
Has thanked: 1 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby MIC132 » 02 May 2017, 10:17

I think I pinpointed quite important bug.
If you are paying a cost (In this case I was simply casting a spell), and you use something that itself has a cost (this case it was Spire of Industry), when you click "Ok" on the second cost, the game breaks.
The prompt still has the "Pay 1 life?" text, but the OK button is inactive, and cancel does nothing. And even conceding doesn't actually end the duel (your carts disappear, but the duel doesn't end), it has to be closed manually.
I encountered this multiple times, in different decks, so it's not an issue with the spire, but with paying costs with something that also has a cost.
This is on latest snapshot (downloaded half an hour ago).

EDIT: It seems to only happen if you pay whole cost with the second thing (like casting Fatal Push with the Spire of Industry).
MIC132
 
Posts: 49
Joined: 17 Sep 2013, 15:18
Has thanked: 0 time
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 02 May 2017, 14:14

Hmm, I tried reproducing the situations from reports (both from Marek and from MIC132) regarding the payment prompt hanging if something is used to pay the cost that in itself has a cost, but so far I'm unable to repro it, no matter what I try :( Can you please let me know if there's a consistent series of steps that always leads to this situation for you? And does it happen consistently to you (all the time) or does it only happen from time to time?..

We might need the original developer for the "binary choice in prompt" code (I don't remember his handle but I do remember that it's a rather recent addition). Is he still around? Does anyone remember who coded this part, maybe we can try PMing him, maybe he'll know what could be up?

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Bug Reports (snapshot builds)

Postby MIC132 » 02 May 2017, 15:49

Agetian wrote:Hmm, I tried reproducing the situations from reports (both from Marek and from MIC132) regarding the payment prompt hanging if something is used to pay the cost that in itself has a cost, but so far I'm unable to repro it, no matter what I try :( Can you please let me know if there's a consistent series of steps that always leads to this situation for you? And does it happen consistently to you (all the time) or does it only happen from time to time?..

We might need the original developer for the "binary choice in prompt" code (I don't remember his handle but I do remember that it's a rather recent addition). Is he still around? Does anyone remember who coded this part, maybe we can try PMing him, maybe he'll know what could be up?

- Agetian
I have a 100% repro method for this. Grab any Mardu Vehicles deck (or cheat the needed cards in with dev mode, but that's assuming dev mode doesn't somehow unbreak this). Then cast Fatal Push off of Spire of Industry, though obviously not producing mana beforehand (that's a workaround that I'm using for now to not hang the game) but by starting the casting process, and then clicking on Spire. That should take you directly to the payment prompt (since producing colorless wouldn't make sense here), then you click yes to pay life, and it hangs.

Notably, it doesn't happen with Aether Hub, so it might be a thing with life payments, but it did happen to me with some other cards (unfortunately I don't remember what cards, since it was when I was playing randomly generated decks) so it's not just issue with the Spire.
MIC132
 
Posts: 49
Joined: 17 Sep 2013, 15:18
Has thanked: 0 time
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby leshrac » 02 May 2017, 20:07

I had this happen with Horizon Canopy in a very similar way - from my testing, it only happened when i specifically tapped the land to cast a spell or activate an ability. If it got tapped when i used the "auto" payment for a spell, i had no problems.

But it doesn't just happen with life payments, this bug also comes up with hybrid mana and some mana producers, for example when i wanted to cast Deathrite Shaman of a Mox Diamond. I never had an issue when i for example wanted to cast Deathrite Shaman with a Bayou, in that case there is a popup to chose the color, while with Mox Diamond i was just asked to chose in a dialogue on the bottom left of the screen. Same situation happens with Sylvan Caryatid instead of Mox Diamond - bot mana producers only break with hybrid mana as far as i can tell. "Auto" payment again works fine.
leshrac
 
Posts: 33
Joined: 31 Dec 2014, 00:05
Has thanked: 2 times
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Agetian » 03 May 2017, 04:55

Ok, I was able to reproduce it using the Fatal Push off of Spire of Industry scenario. Will try to see what's going on, but I'm not sure if I'll be able to work this out, I'm not an expert in UI :/ Still would love to know if the original developer of the binary prompt is still around...

EDIT: The original developer is Pfps. I'll try PMing him.

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 41 guests


Who is online

In total there are 41 users online :: 0 registered, 0 hidden and 41 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 41 guests

Login Form