Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by 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)
Re: Bug Reports (snapshot builds)
by Agetian » 14 Dec 2016, 15:32
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.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)
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)
by 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)
- Shadowzeny
- Posts: 52
- Joined: 04 Aug 2014, 06:36
- Has thanked: 9 times
- Been thanked: 7 times
Re: Bug Reports (snapshot builds)
by Hanmac » 15 Dec 2016, 10:07
My fault, I will fix it when I am at home.Shadowzeny wrote:Batwing Brume crashes if viewed in deck editor and deck viewer.
- 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)
Or Agetian is faster.
Re: Bug Reports (snapshot builds)
by Agetian » 15 Dec 2016, 10:26
I fixed the crash.Hanmac wrote:My fault, I will fix it when I am at home.Shadowzeny wrote:Batwing Brume crashes if viewed in deck editor and deck viewer.
- 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)
Or Agetian is faster.



- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Hanmac » 15 Dec 2016, 11:02
You need to set StackDescription with SpellDescriptionAgetian wrote:I fixed the crash.However, the spell description on the stack is wrong (no matter if you pay
or
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
Re: Bug Reports (snapshot builds)
by Agetian » 16 Dec 2016, 07:09
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 wrote:Hmm, OK, I might set it up on my experimental installation and play a bit with it, see how it behaves. :/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.
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by 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:
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.
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]
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.
Re: Bug Reports (snapshot builds)
by Hanmac » 16 Dec 2016, 15:34
@Marek14: I suspect something, can you please check if it works before r32705?
Re: Bug Reports (snapshot builds)
by 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]
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)
Re: Bug Reports (snapshot builds)
by Agetian » 16 Dec 2016, 18:53
Goodness gracious, that's one hell of a combo.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: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.
- 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]
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.
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)
by Agetian » 16 Dec 2016, 18:53
Fixed (r32709).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)
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by 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)
Re: Bug Reports (snapshot builds)
by Agetian » 16 Dec 2016, 19:03
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.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)
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by 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.
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.
Who is online
Users browsing this forum: No registered users and 41 guests