It is currently 06 Sep 2025, 19:59
   
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 Marek14 » 14 Dec 2016, 14:47

Sapphire Charm crashes the game when cast in its first mode.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32690
Operating System: Windows 8.1 6.3 amd64
Java Version:     1.8.0_45 Oracle Corporation

java.lang.NullPointerException
   at forge.game.ability.effects.DelayedTriggerEffect.resolve(DelayedTriggerEffect.java:77)
   at forge.game.spellability.AbilitySub.resolve(AbilitySub.java:119)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1269)
   at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1262)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1276)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1250)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:514)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:980)
   at forge.game.GameAction.startGame(GameAction.java:1451)
   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)
Also, AI crashed the game when using Jhoira of the Ghitu Avatar.
Marek14
Tester
 
Posts: 2773
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 303 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 14 Dec 2016, 15:32

Marek14 wrote:Sapphire Charm crashes the game when cast in its first mode.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32690
Operating System: Windows 8.1 6.3 amd64
Java Version:     1.8.0_45 Oracle Corporation

java.lang.NullPointerException
   at forge.game.ability.effects.DelayedTriggerEffect.resolve(DelayedTriggerEffect.java:77)
   at forge.game.spellability.AbilitySub.resolve(AbilitySub.java:119)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1269)
   at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1262)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1276)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1250)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:514)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:980)
   at forge.game.GameAction.startGame(GameAction.java:1451)
   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)
Hmm, I remember there was a recent issue with another card that crashed in exactly the same way (AdditionalAbility in "Execute" not being filled), Hanmac fixed it recently, but apparently there are other similar cases (e.g. Sapphire Charm) that are not fixed yet :/ Tried looking at it but couldn't figure out how to solve it, maybe Hanmac will be able to resolve this one when possible.

EDIT: Ok, as a mockup for a solution, I committed r32695 - it fixes the crash but it does so by filling AdditionalAbility parameters for SAs parented to Charm API. Most likely something bigger is up here: should the relevant if statement be extended somehow differently to properly account for all cases where this Execute parameter may not be filled?

P.S. Jhoira of the Ghitu Avatar crash is also fixed (r32694).

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby Shadowzeny » 15 Dec 2016, 09:58

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32701
Operating System: Windows 10 10.0 amd64
Java Version:     1.8.0_111 Oracle Corporation

java.lang.NullPointerException
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:236)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
   at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:415)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:237)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:110)
   at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:1932)
   at forge.game.card.CardFactory.readCardFace(CardFactory.java:479)
   at forge.game.card.CardFactory.readCard(CardFactory.java:407)
   at forge.game.card.CardFactory.getCard(CardFactory.java:260)
   at forge.game.card.CardFactory.getCard(CardFactory.java:255)
   at forge.game.card.Card.fromPaperCard(Card.java:6930)
   at forge.game.card.Card.getCardForUi(Card.java:6938)
   at forge.game.card.CardView.getCardForUi(CardView.java:40)
   at forge.screens.match.controllers.CDetailPicture.showItem(CDetailPicture.java:58)
   at forge.itemmanager.views.ImageView.showHoveredItem(ImageView.java:757)
   at forge.itemmanager.views.ImageView.updateHoveredItem(ImageView.java:749)
   at forge.itemmanager.views.ImageView.access$2300(ImageView.java:59)
   at forge.itemmanager.views.ImageView$5.mouseMoved(ImageView.java:334)
   at java.awt.Component.processMouseMotionEvent(Unknown Source)
   at javax.swing.JComponent.processMouseMotionEvent(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)
Batwing Brume crashes if viewed in deck editor and deck viewer.
Shadowzeny
 
Posts: 52
Joined: 04 Aug 2014, 06:36
Has thanked: 9 times
Been thanked: 7 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 15 Dec 2016, 10:07

Shadowzeny wrote:
NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32701
Operating System: Windows 10 10.0 amd64
Java Version:     1.8.0_111 Oracle Corporation

java.lang.NullPointerException
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:236)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
   at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:415)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:237)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:110)
   at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:1932)
   at forge.game.card.CardFactory.readCardFace(CardFactory.java:479)
   at forge.game.card.CardFactory.readCard(CardFactory.java:407)
   at forge.game.card.CardFactory.getCard(CardFactory.java:260)
   at forge.game.card.CardFactory.getCard(CardFactory.java:255)
   at forge.game.card.Card.fromPaperCard(Card.java:6930)
   at forge.game.card.Card.getCardForUi(Card.java:6938)
   at forge.game.card.CardView.getCardForUi(CardView.java:40)
   at forge.screens.match.controllers.CDetailPicture.showItem(CDetailPicture.java:58)
   at forge.itemmanager.views.ImageView.showHoveredItem(ImageView.java:757)
   at forge.itemmanager.views.ImageView.updateHoveredItem(ImageView.java:749)
   at forge.itemmanager.views.ImageView.access$2300(ImageView.java:59)
   at forge.itemmanager.views.ImageView$5.mouseMoved(ImageView.java:334)
   at java.awt.Component.processMouseMotionEvent(Unknown Source)
   at javax.swing.JComponent.processMouseMotionEvent(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)
Batwing Brume crashes if viewed in deck editor and deck viewer.
My fault, I will fix it when I am at home.
Or Agetian is faster.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 15 Dec 2016, 10:26

Hanmac wrote:
Shadowzeny wrote:
NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32701
Operating System: Windows 10 10.0 amd64
Java Version:     1.8.0_111 Oracle Corporation

java.lang.NullPointerException
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:236)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:139)
   at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:415)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:237)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:110)
   at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:1932)
   at forge.game.card.CardFactory.readCardFace(CardFactory.java:479)
   at forge.game.card.CardFactory.readCard(CardFactory.java:407)
   at forge.game.card.CardFactory.getCard(CardFactory.java:260)
   at forge.game.card.CardFactory.getCard(CardFactory.java:255)
   at forge.game.card.Card.fromPaperCard(Card.java:6930)
   at forge.game.card.Card.getCardForUi(Card.java:6938)
   at forge.game.card.CardView.getCardForUi(CardView.java:40)
   at forge.screens.match.controllers.CDetailPicture.showItem(CDetailPicture.java:58)
   at forge.itemmanager.views.ImageView.showHoveredItem(ImageView.java:757)
   at forge.itemmanager.views.ImageView.updateHoveredItem(ImageView.java:749)
   at forge.itemmanager.views.ImageView.access$2300(ImageView.java:59)
   at forge.itemmanager.views.ImageView$5.mouseMoved(ImageView.java:334)
   at java.awt.Component.processMouseMotionEvent(Unknown Source)
   at javax.swing.JComponent.processMouseMotionEvent(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)
Batwing Brume crashes if viewed in deck editor and deck viewer.
My fault, I will fix it when I am at home.
Or Agetian is faster.
I fixed the crash. :) However, the spell description on the stack is wrong (no matter if you pay {W} or {B} or both types of mana, the game says "<such-and-such-player> prevents all combat damage this turn". Couldn't figure out why, there is a correct SpellDescription on the ability. :/ The card functions correctly though.

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 15 Dec 2016, 11:02

Agetian wrote:I fixed the crash. :) However, the spell description on the stack is wrong (no matter if you pay {W} or {B} or both types of mana, the game says "<such-and-such-player> prevents all combat damage this turn". Couldn't figure out why, there is a correct SpellDescription on the ability. :/ The card functions correctly though.

- Agetian
You need to set StackDescription with SpellDescription
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 16 Dec 2016, 07:09

Agetian wrote:
Hanmac wrote:Hm I remember doing something similar before and reverting it because it did break something. But I can't remember what or if it does still happen.
Hmm, OK, I might set it up on my experimental installation and play a bit with it, see how it behaves. :/
I have tested this in the last three days, tried almost every card with a Moved replacement event, and played a couple dozen random matches with various cards and things look fine so far. I decided to commit (r32705) to see if maybe someone else will pinpoint something that might go wrong with this. I limited my change only to "ReplaceMoved" replacement effects, which are the only ones where this matters.

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby Marek14 » 16 Dec 2016, 13:57

OK, this is a weird bug and I have no idea what causes it because it arises in a complicated combo deck.

First, let's start with this deck:
Code: Select all
[metadata]
Name=Lizardcycling
[general]
Constructed
[main]
4 Altar of Dementia
4 Earthcraft
4 Fluctuator
4 Artificial Evolution
4 Wheel of Sun and Moon
4 Scalding Tarn
4 Misty Rainforest
4 Basking Rootwalla
4 Fabricate
4 Homing Sliver
4 Ponder
3 Steam Vents
3 Breeding Pool
4 Impulse
2 Forest
3 Island
1 Mountain
[sideboard]
Now, I found the original article (http://magic.wizards.com/en/articles/ar ... 2014-02-26) that describe how it's supposed to work. It took some tries, but I finally assembled the combo (Homing Sliver with Sliver changed to Lizard, Earthcraft, Fluctuator, Altar of Dementia, Basking Rootwalla in hand). The combo works by discarding Basking Rootwalla with Lizardcycling granted by Evolved Homing Sliver, paying only 1 mana because of Fluctuator, playing Basking Rootwalla through madness and untapping the land you used using Earthcraft and the Rootwalla. Then you sacrifice the tapped Rootwalla to Altar of Dementia, milling 1 card from opponent's library, but because of Wheel of Sun and Moon, the Rootwalla ends in your library, ready to be searched with another Lizardcycling.

The issue is this: when I click on Basking Rootwalla on the battlefield, I get the option to use its normal pump ability, but when I cancel, the Rootwalla dies for some reason.
Marek14
Tester
 
Posts: 2773
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 303 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 16 Dec 2016, 15:34

@Marek14: I suspect something, can you please check if it works before r32705?
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby stormcat » 16 Dec 2016, 16:23

:r32708
Occur error when I cast Everflowing Chalice suspended by Delay in my upkeep without paying its mana cost.

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

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32708
Operating System: Windows 10 10.0 x86
Java Version:     1.8.0_111 Oracle Corporation

java.lang.NullPointerException
   at java.util.TreeMap.getEntry(Unknown Source)
   at java.util.TreeMap.containsKey(Unknown Source)
   at forge.game.card.CardState.hasSVar(CardState.java:328)
   at forge.game.card.Card.hasSVar(Card.java:1114)
   at forge.game.CardTraitBase.changeText(CardTraitBase.java:424)
   at forge.game.spellability.SpellAbility.changeText(SpellAbility.java:1517)
   at forge.game.card.CardFactory.copySpellAbility(CardFactory.java:690)
   at forge.game.spellability.SpellAbility.copy(SpellAbility.java:774)
   at forge.game.ability.AbilityUtils.getBasicSpellsFromPlayEffect(AbilityUtils.java:1588)
   at forge.game.ability.effects.PlayEffect.resolve(PlayEffect.java:201)
   at forge.game.spellability.AbilitySub.resolve(AbilitySub.java:119)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1269)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1250)
   at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:169)
   at forge.player.HumanPlay.playSpellAbilityNoStack(HumanPlay.java:220)
   at forge.player.PlayerControllerHuman.playSpellAbilityNoStack(PlayerControllerHuman.java:243)
   at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:444)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1269)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1250)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:514)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:980)
   at forge.game.GameAction.startGame(GameAction.java:1451)
   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)
stormcat
 
Posts: 361
Joined: 17 Jun 2015, 05:32
Has thanked: 0 time
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 16 Dec 2016, 18:53

Marek14 wrote:OK, this is a weird bug and I have no idea what causes it because it arises in a complicated combo deck.

First, let's start with this deck:
Code: Select all
[metadata]
Name=Lizardcycling
[general]
Constructed
[main]
4 Altar of Dementia
4 Earthcraft
4 Fluctuator
4 Artificial Evolution
4 Wheel of Sun and Moon
4 Scalding Tarn
4 Misty Rainforest
4 Basking Rootwalla
4 Fabricate
4 Homing Sliver
4 Ponder
3 Steam Vents
3 Breeding Pool
4 Impulse
2 Forest
3 Island
1 Mountain
[sideboard]
Now, I found the original article (http://magic.wizards.com/en/articles/ar ... 2014-02-26) that describe how it's supposed to work. It took some tries, but I finally assembled the combo (Homing Sliver with Sliver changed to Lizard, Earthcraft, Fluctuator, Altar of Dementia, Basking Rootwalla in hand). The combo works by discarding Basking Rootwalla with Lizardcycling granted by Evolved Homing Sliver, paying only 1 mana because of Fluctuator, playing Basking Rootwalla through madness and untapping the land you used using Earthcraft and the Rootwalla. Then you sacrifice the tapped Rootwalla to Altar of Dementia, milling 1 card from opponent's library, but because of Wheel of Sun and Moon, the Rootwalla ends in your library, ready to be searched with another Lizardcycling.

The issue is this: when I click on Basking Rootwalla on the battlefield, I get the option to use its normal pump ability, but when I cancel, the Rootwalla dies for some reason.
Goodness gracious, that's one hell of a combo.
I tried recreating this but I think I failed miserably. At any rate, the returned Basking Rootwalla (after Wheel of Sun and Moon and sacrifice to Altar of Dementia and stuff, as well as the preliminary text-changing shenanigans via Artificial Evolution for Lizardcycling) allowed me to correctly use *and* cancel the pump ability of the Rootwalla while it was on the battlefield, it did not die or otherwise disappear unexpectedly from the battlefield. I'm not sure how to recreate the conditions for this... but indeed, since it deals with replacement effects, can you please check if it worked before r32705 as Hanmac suggested? If it worked there but it doesn't work now, I think I *may* have an idea how to improve my fix in r32705 to account for this case (maybe... we'll see :/ )

- Agetian
Last edited by Agetian on 16 Dec 2016, 19:04, edited 2 times in total.
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 16 Dec 2016, 18:53

stormcat wrote::r32708
Occur error when I cast Everflowing Chalice suspended by Delay in my upkeep without paying its mana cost.

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

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32708
Operating System: Windows 10 10.0 x86
Java Version:     1.8.0_111 Oracle Corporation

java.lang.NullPointerException
   at java.util.TreeMap.getEntry(Unknown Source)
   at java.util.TreeMap.containsKey(Unknown Source)
   at forge.game.card.CardState.hasSVar(CardState.java:328)
   at forge.game.card.Card.hasSVar(Card.java:1114)
   at forge.game.CardTraitBase.changeText(CardTraitBase.java:424)
   at forge.game.spellability.SpellAbility.changeText(SpellAbility.java:1517)
   at forge.game.card.CardFactory.copySpellAbility(CardFactory.java:690)
   at forge.game.spellability.SpellAbility.copy(SpellAbility.java:774)
   at forge.game.ability.AbilityUtils.getBasicSpellsFromPlayEffect(AbilityUtils.java:1588)
   at forge.game.ability.effects.PlayEffect.resolve(PlayEffect.java:201)
   at forge.game.spellability.AbilitySub.resolve(AbilitySub.java:119)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1269)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1250)
   at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:169)
   at forge.player.HumanPlay.playSpellAbilityNoStack(HumanPlay.java:220)
   at forge.player.PlayerControllerHuman.playSpellAbilityNoStack(PlayerControllerHuman.java:243)
   at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:444)
   at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1269)
   at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1250)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:514)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:980)
   at forge.game.GameAction.startGame(GameAction.java:1451)
   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)
Fixed (r32709).

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby Kclone » 16 Dec 2016, 18:54

Description: AI's turn and the game crashed. Was playing against a friends deck. Forge has crashed multiple times against this deck. My best guess is something to do with crosis charm in the deck since I've heard issues with charms. It crashed when they were on 3 mana too.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r-1
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_31 Oracle Corporation

java.lang.NullPointerException
   at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:139)
   at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:128)
   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.ai.ability.ControlGainAi.canPlayAI(ControlGainAi.java:128)
   at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:29)
   at forge.ai.AiController.canPlaySa(AiController.java:654)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:641)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1158)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1133)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1072)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:392)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:925)
   at forge.game.GameAction.startGame(GameAction.java:1462)
   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)
Kclone
 
Posts: 4
Joined: 16 Dec 2016, 18:49
Has thanked: 2 times
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Agetian » 16 Dec 2016, 19:03

Kclone wrote:Description: AI's turn and the game crashed. Was playing against a friends deck. Forge has crashed multiple times against this deck. My best guess is something to do with crosis charm in the deck since I've heard issues with charms. It crashed when they were on 3 mana too.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r-1
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_31 Oracle Corporation

java.lang.NullPointerException
   at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:139)
   at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:128)
   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.ai.ability.ControlGainAi.canPlayAI(ControlGainAi.java:128)
   at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:29)
   at forge.ai.AiController.canPlaySa(AiController.java:654)
   at forge.ai.AiController.canPlayAndPayFor(AiController.java:641)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1158)
   at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1133)
   at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1072)
   at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:392)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:925)
   at forge.game.GameAction.startGame(GameAction.java:1462)
   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)
Most likely this has to do with some other card (since Crosis's Charm does not have a control-gaining ability), but there was a separate potential NPE for the Charm which I addressed (r32710) + I tried to address a potential NPE in ControlGainAi at the point where you're experiencing it (r32712), so hopefully things should be better now.

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby Kclone » 16 Dec 2016, 19:15

Well he does have a lot of control-gaining abilities in the deck. Slave of bolas, control magic, nicol bolas, dragonlord silumgar. But it has crashed before the AI had mana to cast the abilities. I don't know if that matters? My best guess is actually Slave of Bolas now since I haven't seen AI ever cast it.

EDIT: I think I found where to download the new revisions (so I was a big dummy not looking hard enough)
EDIT 2: Game crashes now when match starts.

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32712
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_31 Oracle Corporation

java.lang.NullPointerException
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:236)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
   at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:110)
   at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:1932)
   at forge.game.card.CardFactory.readCardFace(CardFactory.java:479)
   at forge.game.card.CardFactory.readCard(CardFactory.java:407)
   at forge.game.card.CardFactory.getCard(CardFactory.java:260)
   at forge.game.card.CardFactory.getCard(CardFactory.java:255)
   at forge.game.card.Card.fromPaperCard(Card.java:6930)
   at forge.game.Match.preparePlayerLibrary(Match.java:193)
   at forge.game.Match.prepareAllZones(Match.java:257)
   at forge.game.Match.startGame(Match.java:83)
   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)
Last edited by Kclone on 16 Dec 2016, 19:43, edited 1 time in total.
Kclone
 
Posts: 4
Joined: 16 Dec 2016, 18:49
Has thanked: 2 times
Been thanked: 0 time

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 41 guests

Main Menu

User Menu

Our Partners


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 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 41 guests

Login Form