It is currently 25 Aug 2025, 18:00
   
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 Hanmac » 18 May 2016, 04:37

@jje4th: you are right it seems it doesn't have to do with cost but with the changes in ChangeZone.

the problem odes appear when Wayward Disciple and another creature does die the same time, like when they are sacrificed by Westvale Abbey or if they die the same time by Blasphemous Act.

so its not the Self Trigger that i thought, but the one for other creatures.
(still no idea how to fix that)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby tjtillman » 18 May 2016, 20:01

r31226

Burn from Within should be a Sorcery, not an Instant
tjtillman
 
Posts: 202
Joined: 16 Sep 2013, 17:47
Has thanked: 0 time
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby jje4th » 19 May 2016, 05:17

Hanmac wrote:@jje4th: you are right it seems it doesn't have to do with cost but with the changes in ChangeZone.

the problem odes appear when Wayward Disciple and another creature does die the same time, like when they are sacrificed by Westvale Abbey or if they die the same time by Blasphemous Act.

so its not the Self Trigger that i thought, but the one for other creatures.
(still no idea how to fix that)
Thanks for providing the info, but I still can't repro. Seems to work fine on the lastest SVN. Here's a screenshot of sac'ing Wayward Disciple, a Pious Evangel, and 3 Faerie Rogues to Westvale Abby:
image.png
Screenshot of Sac Wayward Disciple to Westvale Abby
jje4th
 
Posts: 18
Joined: 26 Dec 2014, 20:29
Has thanked: 0 time
Been thanked: 1 time

Re: Bug Reports (snapshot builds)

Postby Hanmac » 19 May 2016, 05:37

i tested it again with newest build SVN:
Bildschirmfoto vom 2016-05-19 07-28-55.png

i had that field + 1/1 Human Cleric Token

then i did sac if for Westvale Abbey and i got this:
RuntimeException | Open
Code: Select all
Forge Version:    1.5.53-SNAPSHOT-r-1
Operating System: Linux 4.4.0-22-lowlatency amd64
Java Version:     1.8.0_91 Oracle Corporation

java.lang.RuntimeException: AbilityFactory : getAbility -- no API in Pious Evangel:
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:106)
   at forge.game.trigger.TriggerHandler.runSingleTrigger(TriggerHandler.java:495)
   at forge.game.trigger.TriggerHandler.runNonStaticTriggersForPlayer(TriggerHandler.java:366)
   at forge.game.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:326)
   at forge.game.trigger.TriggerHandler.runWaitingTriggers(TriggerHandler.java:290)
   at forge.game.zone.MagicStack.unfreezeStack(MagicStack.java:166)
   at forge.game.zone.MagicStack.addAndUnfreeze(MagicStack.java:154)
   at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:145)
   at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:132)
   at forge.player.PlayerControllerHuman.playChosenSpellAbility(PlayerControllerHuman.java:939)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:958)
   at forge.game.GameAction.startGame(GameAction.java:1480)
   at forge.game.Match.startGame(Match.java:95)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   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)
i don't know what is different that i get an exception and you not.

EDIT:
after some investigation, i found the problem is in TriggerHandler.runSingleTrigger, where it does call game.getCardState. i don't know if that is needed, but its bad for transformed cards which does leave the Battlefield. i fixed it in r31230.


i did a check and it doesn't fix yet my problem with Eldrazi Displacer and a transformed Archangel Avacyn // Avacyn, the Purifier or Huntmaster of the Fells // Ravager of the Fells equipped with Basilisk Collar.
(even if the creature gots blinked by the Displacer, the Damage on the Stack should still be having deathtouch and lifelink.)
This problem has something todo with:
game.addChangeZoneLKIInfo(c)
and it get called twice from Displacer.

I also fixed that thing with r31231.
LKI is only needed when something is removed from the battlefield, otherwise Blink Effects like from Eldrazi Displacer does mess with it. Because they are set twice.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby fmartel » 19 May 2016, 20:09

Description: [In a commander game, AI declaring blockers to my attack. AI Decides to block Elemental (8/8) w Goblin Turncoat (2/1)]

StackOverflowError | Open
Code: Select all
Forge Version:    1.5.53-SNAPSHOT-r31231
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_40 Oracle Corporation

java.lang.StackOverflowError
   at java.util.HashMap.hash(Unknown Source)
   at java.util.HashMap.containsKey(Unknown Source)
   at java.util.HashSet.contains(Unknown Source)
   at forge.card.CardType.hasSubtype(CardType.java:257)
   at forge.card.CardType.hasStringType(CardType.java:230)
   at forge.game.card.Card.isValid(Card.java:3594)
   at forge.game.GameObject.isValid(GameObject.java:27)
   at forge.game.card.CardPredicates$13.apply(CardPredicates.java:151)
   at forge.game.card.CardPredicates$13.apply(CardPredicates.java:148)
   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:90)
   at forge.game.cost.CostPayment.canPayAdditionalCosts(CostPayment.java:92)
   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:280)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:648)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilCombat.shieldDamage(ComputerUtilCombat.java:613)
   at forge.ai.ComputerUtilCombat.totalShieldDamage(ComputerUtilCombat.java:592)
   at forge.ai.ComputerUtilCombat.lifeThatWouldRemain(ComputerUtilCombat.java:289)
   at forge.ai.ComputerUtilCombat.lifeInSeriousDanger(ComputerUtilCombat.java:453)
   at forge.ai.ComputerUtil.getCardPreference(ComputerUtil.java:326)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:261)
   at forge.ai.ComputerUtilCost.checkSacrificeCost(ComputerUtilCost.java:314)
   at forge.ai.ComputerUtil.canRegenerate(ComputerUtil.java:660)
   at forge.ai.ComputerUtilCombat.canDestroyBlockerBeforeFirstStrike(ComputerUtilCombat.java:1775)
   at forge.ai.ComputerUtilComba
... (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 friarsol » 19 May 2016, 20:24

r31231

It looks like cards entering the battlefield from Suspend aren't in a proper state. Casting any spell can target them, but then fizzles on resolution. I'm guessing this has to do with one of Hanmac's most recent checkins (31230-31)
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 20 May 2016, 03:32

@friarsol thanks for telling me, I will check that out once I woke up.

Edit:
@friarsol what cards do you test?
because i did try Benalish Commander it did works,

then i did test Epochrasite and it was broken when it does return the second time. (but i remember it did happen before)
I tested it again with my changes reverted, and it does show that the problems did exist long ago, (i think i also reported it myself ... seems something is broken with Epochrasite)

Logging changeZone shows:
Code: Select all
first cast:
Epochrasite (126) Stack => Human's Battlefield
destroy:
Exquisite Firecraft (127) Stack => Human's Graveyard

Trigger with Exile and adding Suspend:
Epochrasite (126) Human's Battlefield => Human's Graveyard
Epochrasite (126) Human's Graveyard => Human's Exile

First return: (i don't know why twice)
Epochrasite (126) Stack => Human's Battlefield
Epochrasite (126) Stack => Human's Battlefield

now Epochrasite has Suspend while its on the Battlefield ... problematic?

Destroy second time:
Exquisite Firecraft (158) Stack => Human's Graveyard

Trigger with Exile second time, now with TWO Suspend:
Epochrasite (126) Human's Battlefield => Human's Graveyard
Epochrasite (126) Human's Graveyard => Human's Exile

Second Return, now with different from the first time:
Epochrasite (126) Stack => Human's Battlefield
Epochrasite (126) Human's Exile => Human's Battlefield

Destroy third time now frizzles:
Exquisite Firecraft (158) Stack => Human's Graveyard
Edit:
Jhoira of the Ghitu also has the problem that when something enters the battlefield exiled with Jhiora, it does have still suspend on the battlefield.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 20 May 2016, 13:01

AI was using Riftwing Cloudskate.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby stormcat » 20 May 2016, 13:55

r31231:
Please look at the attached file.
Magus of the Moon is enchanted Song of the Dryads.
In this case, Magus of the Moon depends on Song of the Dryads.
Because Magus of the Moon is losing all ability, Non Basic lands are not to become Mountain.

Image
stormcat
 
Posts: 361
Joined: 17 Jun 2015, 05:32
Has thanked: 0 time
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 20 May 2016, 14:15

@friarsol: i need to test it more, but i did give my Opponent that card to cast, he suspended it, and when it enters the battlefield from exile, i could destroy it with Lightning Bolt.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 20 May 2016, 14:28

Hanmac wrote:@friarsol: i need to test it more, but i did give my Opponent that card to cast, he suspended it, and when it enters the battlefield from exile, i could destroy it with Lightning Bolt.
I definitely tried to cast two things and they both fizled, probably a little more complex than a simple Suspend into play, like Suspend -> BF -> Graveyard -> Hand -> Suspend or something. Don't have the game log anymore to verify.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 20 May 2016, 14:34

r31231

This is an issue I've noticed occassionally, but it's very noticeable in Momir Basic. Any copied permanent with a trigger, doesn't actually show the trigger in the CardDetailPanel. Not sure if this is an issue with the CardView or the CDP or what.

I'm guessing it's an issue with CardView, because it seems later in the same match cards that weren't showing their trigger, now are.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 20 May 2016, 15:36

@friarsol: hm i tried it with Not Forgotten to send it from the Graveyard to the Library and then did force the Opponent to suspend it again, i could destroy it again.

So i couldn't reproduce it yet. but i have some little change:
Code: Select all
-        // LKI is only needed when something is moved from the battlefield.
-        // also it does messup with Blink Effects like Eldrazi Displacer
-        if (fromBattlefield && zoneTo != null && !zoneTo.is(ZoneType.Stack) && !zoneTo.is(ZoneType.Flashback)) {
-            game.addChangeZoneLKIInfo(c);
+        if (zoneFrom != null && zoneTo != null && !zoneTo.is(ZoneType.Stack) && !zoneTo.is(ZoneType.Flashback)) {
+            // LKI is only needed when something is moved from the battlefield.
+            // also it does messup with Blink Effects like Eldrazi Displacer
+            if (fromBattlefield) {
+                game.addChangeZoneLKIInfo(c);
+            }
but that shouldn't make any big difference.
(i had this to make some changes easier to implement)
but also without this i could not reproduce it.

===
also for the thing with CardDetailPanel & CardView, when you do it, can you lookout my problem there:
viewtopic.php?p=196785#p196785

when i have cards like Pious Evangel and Westvale Abbey in the game, and then does press the Transform Swirl in the Card View it shows that they have the wrong color, but the color in game is still the right one (so its only a view problem) it can be seen better then activate: "Show Detailed Card Color: Always"

also i thought i fixed it a bit, but it seems now its also broken in the Deck Editor too by r31207 *cry*
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby cybernator5000 » 21 May 2016, 12:01

Version 1.5.52, everytime I win a game in quest mode with Ante enabled it crashes. When I turn Ante off, it works just fine.
Attachments
2016-05-21-00.txt
(1.78 KiB) Downloaded 275 times
cybernator5000
 
Posts: 2
Joined: 23 Aug 2015, 23:30
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby friarsol » 21 May 2016, 12:24

cybernator5000 wrote:Version 1.5.52, everytime I win a game in quest mode with Ante enabled it crashes. When I turn Ante off, it works just fine.
Yep, this was fixed already.

Also, please read the link in my signature about bug reports, this thread is for snapshot builds, not beta releases.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 13 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 13 users online :: 0 registered, 0 hidden and 13 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 13 guests

Login Form