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 Hanmac » 02 Dec 2016, 06:45
i did to fix it too, i added IsCurse to the AnimateAi logic,Agetian wrote:r32613:1) The AI uses Tezzeret, Agent of Bolas's -1 ability to make my (!) artifacts 5/5 creatures permanently.- FIXED (r32614).
- Agetian
and updated some cards that should only be used on Opponent Creatures.
(you do not need to revert your changes, it can be useful too)
Re: Bug Reports (snapshot builds)
by Agetian » 02 Dec 2016, 06:53
Sounds good, Hanmac, thanks a lot! 
By the way, I found another card that is broken in much the same way as Temporal Aperture: Daxos of Meletis. It exiles the card from opponent's library but there is no way to play that card (clicking it does nothing). This used to work for sure relatively recently (probably a revision or two back?...), I recall playing a quest with this particular card and using it quite extensively. It looks like the problem may be with the fact that both Temporal Aperture and Daxos of Meletis use an intermediate effect (which goes into the command zone) for the relevant ability. Could it be that the remembered card is somehow not propagated properly through that effect token so the game fails to see that the card (e.g. on top of the library for the Aperture or in exile for Daxos) is the same card referenced elsewhere in the ability script? :/
- Agetian

By the way, I found another card that is broken in much the same way as Temporal Aperture: Daxos of Meletis. It exiles the card from opponent's library but there is no way to play that card (clicking it does nothing). This used to work for sure relatively recently (probably a revision or two back?...), I recall playing a quest with this particular card and using it quite extensively. It looks like the problem may be with the fact that both Temporal Aperture and Daxos of Meletis use an intermediate effect (which goes into the command zone) for the relevant ability. Could it be that the remembered card is somehow not propagated properly through that effect token so the game fails to see that the card (e.g. on top of the library for the Aperture or in exile for Daxos) is the same card referenced elsewhere in the ability script? :/
- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by stormcat » 02 Dec 2016, 07:41
I'm not good at English.
Please refer to attachments.
Please refer to attachments.
Re: Bug Reports (snapshot builds)
by Agetian » 02 Dec 2016, 10:20
I fixed it in r32621-32622.stormcat wrote:I'm not good at English.
Please refer to attachments.

- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by fmartel » 02 Dec 2016, 20:16
Description: [in Commander, AI played Skill Borrower and lost the flip toss.]
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32622
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_25 Oracle Corporation
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in Skill Borrower:
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:108)
at forge.game.ability.effects.FlipCoinEffect.resolve(FlipCoinEffect.java:122)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1266)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1247)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:517)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:980)
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)
- 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)
by vinnie » 03 Dec 2016, 12:22
Description: Since my new quest, when I win a game
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Linux 3.13.0-103-generic i386
Java Version: 1.8.0_91 Oracle Corporation
java.lang.NullPointerException
at forge.screens.home.quest.PnlEvent.<init>(PnlEvent.java:49)
at forge.screens.home.quest.CSubmenuChallenges.update(CSubmenuChallenges.java:166)
at forge.screens.match.QuestWinLose.actionOnQuit(QuestWinLose.java:74)
at forge.screens.match.ControlWinLose$3.actionPerformed(ControlWinLose.java:54)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Re: Bug Reports (snapshot builds)
by Hanmac » 03 Dec 2016, 17:43
the bug was deeper, when something get all Abilities, such Effects like CoinFlip and others which did use extra SubAbilities where not copied.fmartel wrote:Description: [in Commander, AI played Skill Borrower and lost the flip toss.]
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32622
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_25 Oracle Corporation
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in Skill Borrower:
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:108)
at forge.game.ability.effects.FlipCoinEffect.resolve(FlipCoinEffect.java:122)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1266)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1247)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:517)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:980)
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)
it's not fixed for everything but for most of them its better now.
Re: Bug Reports (snapshot builds)
by Marek14 » 04 Dec 2016, 09:10
Forge crashes when I try to give the opponent tokens with the cumulative upkeep of Varchild's War-Riders.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32632
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_45 Oracle Corporation
java.lang.NullPointerException
at forge.game.ability.SpellAbilityEffect.getStackDescriptionWithSubs(SpellAbilityEffect.java:71)
at forge.game.spellability.AbilitySub.getStackDescription(AbilitySub.java:114)
at forge.game.spellability.SpellAbilityStackInstance.<init>(SpellAbilityStackInstance.java:107)
at forge.game.spellability.SpellAbilityStackInstance.<init>(SpellAbilityStackInstance.java:122)
at forge.game.zone.MagicStack.add(MagicStack.java:261)
at forge.game.zone.MagicStack.addAndUnfreeze(MagicStack.java:150)
at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:172)
at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:110)
at forge.player.PlayerControllerHuman.orderAndPlaySimultaneousSa(PlayerControllerHuman.java:1250)
at forge.game.zone.MagicStack.chooseOrderOfSimultaneousStackEntry(MagicStack.java:822)
at forge.game.zone.MagicStack.addAllTriggeredAbilitiesToStack(MagicStack.java:788)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:911)
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 » 04 Dec 2016, 15:16
Just a heads-up: I fixed Temporal Aperture and it looks like Daxos of Meletis is working correctly (looks like I was trying to play a land via it when I thought it was bugged :/ ).
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by Agetian » 04 Dec 2016, 15:30
r32635: NPE fixed.Marek14 wrote:Forge crashes when I try to give the opponent tokens with the cumulative upkeep of Varchild's War-Riders.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32632
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_45 Oracle Corporation
java.lang.NullPointerException
at forge.game.ability.SpellAbilityEffect.getStackDescriptionWithSubs(SpellAbilityEffect.java:71)
at forge.game.spellability.AbilitySub.getStackDescription(AbilitySub.java:114)
at forge.game.spellability.SpellAbilityStackInstance.<init>(SpellAbilityStackInstance.java:107)
at forge.game.spellability.SpellAbilityStackInstance.<init>(SpellAbilityStackInstance.java:122)
at forge.game.zone.MagicStack.add(MagicStack.java:261)
at forge.game.zone.MagicStack.addAndUnfreeze(MagicStack.java:150)
at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:172)
at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:110)
at forge.player.PlayerControllerHuman.orderAndPlaySimultaneousSa(PlayerControllerHuman.java:1250)
at forge.game.zone.MagicStack.chooseOrderOfSimultaneousStackEntry(MagicStack.java:822)
at forge.game.zone.MagicStack.addAllTriggeredAbilitiesToStack(MagicStack.java:788)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:911)
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: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by vinnie » 04 Dec 2016, 20:30
Description: Ok, after some test I understood when the problem happens.
The save gets corrupt when I change the world through travel.
At the first travels doesn't seem that it happens but after more trips it seems inevitable.
To understand this I made a script that backup each new save and when the problem occurred I repeated some actions on old save to trigger the bug (It wasn't enough the previous save that forge creates in automatic, because in the meantime the game is saved several times and then even backup save is corrupted).
I'm attaching the save where i can still play duel in the same world without forge crash and the next one where forge crashed after changing world and win a duel.
For convenience the first have prefix [before] and the second [after], but this prefix must be removed so the game can load the quest (I also include the .bak always prefixed with [after], for convenience.)
The save gets corrupt when I change the world through travel.
At the first travels doesn't seem that it happens but after more trips it seems inevitable.
To understand this I made a script that backup each new save and when the problem occurred I repeated some actions on old save to trigger the bug (It wasn't enough the previous save that forge creates in automatic, because in the meantime the game is saved several times and then even backup save is corrupted).
I'm attaching the save where i can still play duel in the same world without forge crash and the next one where forge crashed after changing world and win a duel.
For convenience the first have prefix [before] and the second [after], but this prefix must be removed so the game can load the quest (I also include the .bak always prefixed with [after], for convenience.)
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Linux 3.13.0-103-generic i386
Java Version: 1.8.0_91 Oracle Corporation
java.lang.NullPointerException
at forge.screens.home.quest.PnlEvent.<init>(PnlEvent.java:49)
at forge.screens.home.quest.CSubmenuChallenges.update(CSubmenuChallenges.java:166)
at forge.screens.match.QuestWinLose.actionOnQuit(QuestWinLose.java:74)
at forge.screens.match.ControlWinLose$3.actionPerformed(ControlWinLose.java:54)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
- Attachments
-
saves.zip
- (7.71 KiB) Downloaded 227 times
Re: Bug Reports (snapshot builds)
by Agetian » 06 Dec 2016, 05:01
r32635: I can reproduce and confirm an issue with Soulflayer not getting keyworded abilities properly from e.g. exiling Chromanticore via Delve. The abilities do get visually listed on Soulflayer (e.g. Lifelink), but they apparently do nothing (there is no life gain as Lifelink would normally grant, it can be blocked by non-flying creatures despite being listed as Flying, etc.). This used to work quite recently (I definitely played a Chromantiflayer successfully a couple revisions back).
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by Marek14 » 06 Dec 2016, 09:39
Some problems:
Umezawa's Jitte started working like Demonic Pact for some reason -- each option can only be chosen once.
Necropotence's delayed trigger no longer works, cards stay in exile.
Cumulative upkeep of Illusions of Grandeur triggers for me, but not for the opponent.
Umezawa's Jitte started working like Demonic Pact for some reason -- each option can only be chosen once.
Necropotence's delayed trigger no longer works, cards stay in exile.
Cumulative upkeep of Illusions of Grandeur triggers for me, but not for the opponent.
Re: Bug Reports (snapshot builds)
by Marek14 » 06 Dec 2016, 21:37
This deck crashed the game twice in a row upon starting:
- Code: Select all
[metadata]
Name=WC 2015 - Brad Nelson's Jund
[general]
Constructed
[main]
3 Raging Ravine
4 Verdant Catacombs
4 Blackcleave Cliffs
4 Liliana of the Veil
2 Abrupt Decay
2 Overgrown Tomb
1 Blood Crypt
1 Stomping Ground
3 Terminate
2 Maelstrom Pulse
1 Scavenging Ooze
2 Thoughtseize
4 Inquisition of Kozilek
3 Bloodstained Mire
2 Wooded Foothills
1 Tasigur, the Golden Fang
2 Kolaghan's Command
4 Tarmogoyf
4 Lightning Bolt
4 Dark Confidant
3 Hangarback Walker
1 Forest
2 Swamp
1 Mountain
[sideboard]
2 Damnation
1 Grim Lavamancer
1 Ancient Grudge
1 Abrupt Decay
2 Huntmaster of the Fells
1 Golgari Charm
1 Slaughter Pact
3 Kitchen Finks
2 Nihil Spellbomb
1 Duress
- ClassCastException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32636
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_45 Oracle Corporation
java.lang.ClassCastException: forge.game.ability.AbilityApiBased cannot be cast to forge.game.spellability.AbilitySub
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:371)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:204)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:133)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:120)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:128)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:371)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:199)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:133)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:120)
at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:2017)
at forge.game.card.CardFactory.buildAbilities(CardFactory.java:316)
at forge.game.card.CardFactory.getCard(CardFactory.java:259)
at forge.game.card.CardFactory.getCard(CardFactory.java:251)
at forge.game.card.Card.fromPaperCard(Card.java:6885)
at forge.game.Match.preparePlayerLibrary(Match.java:193)
at forge.game.Match.prepareAllZones(Match.java:259)
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)
Re: Bug Reports (snapshot builds)
by stormcat » 07 Dec 2016, 10:26
:r32640
Occur error.Can't start 4 Player Commander game.
Description: [describe what you were doing when the crash occurred]
Occur error.Can't start 4 Player Commander game.
Description: [describe what you were doing when the crash occurred]
- ClassCastException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32640
Operating System: Windows 10 10.0 x86
Java Version: 1.8.0_111 Oracle Corporation
java.lang.ClassCastException: forge.game.ability.AbilityApiBased cannot be cast to forge.game.spellability.AbilitySub
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:371)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:204)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:133)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:120)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:128)
at forge.game.ability.AbilityFactory.getSubAbility(AbilityFactory.java:371)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:199)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:133)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:120)
at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:2017)
at forge.game.card.CardFactory.buildAbilities(CardFactory.java:316)
at forge.game.card.CardFactory.getCard(CardFactory.java:259)
at forge.game.card.CardFactory.getCard(CardFactory.java:251)
at forge.game.card.Card.fromPaperCard(Card.java:6886)
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)
Who is online
Users browsing this forum: No registered users and 17 guests