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 Indigo Dragon » 14 Nov 2016, 10:02
Description: Enable LazyLoading then restarting Forge. Something to do with Abrupt Decay, or maybe just a symptom because it starts with AB.
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32556
Operating System: Windows 10 10.0 x86
Java Version: 1.8.0_111 Oracle Corporation
java.lang.RuntimeException: com.thoughtworks.xstream.converters.ConversionException: Unsupported card found in quest save: Abrupt Decay from edition RTR : Unsupported card found in quest save: Abrupt Decay from edition RTR
---- Debugging information ----
message : Unsupported card found in quest save: Abrupt Decay from edition RTR
cause-exception : java.lang.RuntimeException
cause-message : Unsupported card found in quest save: Abrupt Decay from edition RTR
class : forge.util.ItemPool
required-type : forge.util.ItemPool
converter-type : forge.quest.io.QuestDataIO$ItemPoolToXml
path : /forge.quest.data.QuestData/assets/cardPool/card
line number : 19
class[1] : forge.quest.data.QuestAssets
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : forge.quest.data.QuestData
version : 1.5.58-SNAPSHOT-r32556
-------------------------------
at forge.quest.io.QuestDataIO.loadData(QuestDataIO.java:138)
at forge.control.FControl.initialize(FControl.java:233)
at forge.view.Main.main(Main.java:51)
Caused by: com.thoughtworks.xstream.converters.ConversionException: Unsupported card found in quest save: Abrupt Decay from edition RTR : Unsupported card found in quest save: Abrupt Decay from edition RTR
---- Debugging information ----
message : Unsupported card found in quest save: Abrupt Decay from edition RTR
cause-exception : java.lang.RuntimeException
cause-message : Unsupported card found in quest save: Abrupt Decay from edition RTR
class : forge.util.ItemPool
required-type : forge.util.ItemPool
converter-type : forge.quest.io.QuestDataIO$ItemPoolToXml
path : /forge.quest.data.QuestData/assets/cardPool/card
line number : 19
class[1] : forge.quest.data.QuestAssets
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : forge.quest.data.QuestData
version : 1.5.58-SNAPSHOT-r32556
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:474)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:406)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:474)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:406)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1185)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1169)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1040)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1031)
at forge.quest.io.QuestDataIO.loadData(QuestDataIO.java:122)
... 2 more
Caused by: java.lang.RuntimeException: Unsupported card found in quest save: Abrupt Decay from edition RTR
at forge.quest.io.QuestDataIO$ItemPoolToXml.readCardPrinted(QuestDataIO.java:902)
at forge.quest.io.QuestDataIO$ItemPoolToXml.unmarshal(QuestDataIO.java:841)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
... 24 more
Ctrl+C, Ctrl+V
-
Indigo Dragon - Posts: 130
- Joined: 11 May 2016, 10:18
- Location: Australia
- Has thanked: 63 times
- Been thanked: 56 times
Re: Bug Reports (snapshot builds)
by Marek14 » 14 Nov 2016, 12:13
I cast Moltensteel Dragon, paying 4 life to Phyrexian mana, and deal 4 damage to opponent with two Rage Extractor triggers. Then I use Tainted Sigil, but I only get 4 life instead of 8.
Re: Bug Reports (snapshot builds)
by fmartel » 14 Nov 2016, 19:20
Description: [in Commander, Attacking with multiple creatures. Ai blocks a Minion (30/31) with Wall of Bone. Then crash occurs.]
- OutOfMemoryError | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32556
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_25 Oracle Corporation
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.HashMap.newNode(Unknown Source)
at java.util.HashMap.putVal(Unknown Source)
at java.util.HashMap.put(Unknown Source)
at java.util.HashSet.add(Unknown Source)
at forge.util.collect.FCollection.add(FCollection.java:249)
at forge.util.collect.FCollection.addAll(FCollection.java:300)
at forge.game.Game.getCardsIn(Game.java:473)
at forge.game.player.Player.staticDamagePrevention(Player.java:619)
at forge.game.player.Player.preventDamage(Player.java:813)
at forge.game.player.Player.addCombatDamage(Player.java:874)
at forge.game.combat.Combat.dealAssignedDamage(Combat.java:695)
at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:309)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:977)
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 Thrint » 14 Nov 2016, 20:54
Playing in a tourney; opponent's turn just began.
Description: [describe what you were doing when the crash occurred]
Description: [describe what you were doing when the crash occurred]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32555
Operating System: Windows 8 6.2 x86
Java Version: 1.8.0_40 Oracle Corporation
java.lang.NullPointerException
at java.util.TreeMap.getEntry(Unknown Source)
at java.util.TreeMap.containsKey(Unknown Source)
at forge.game.card.CardState.getSVar(CardState.java:324)
at forge.game.card.Card.getSVar(Card.java:1111)
at forge.ai.ComputerUtil.getDamageFromETB(ComputerUtil.java:2123)
at forge.ai.AiController.canPlayFromEffectAI(AiController.java:1040)
at forge.ai.AiController.canPlaySa(AiController.java:683)
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 Hanmac » 14 Nov 2016, 21:02
Rage Extractor should deal 6 damage each,Marek14 wrote:I cast Moltensteel Dragon, paying 4 life to Phyrexian mana, and deal 4 damage to opponent with two Rage Extractor triggers. Then I use Tainted Sigil, but I only get 4 life instead of 8.
and the Tainted Sigil should make you gain 4+6+6=16 life.
fixed in r32557.
===
@Thrint yours got fixed in r32558.
Re: Bug Reports (snapshot builds)
by Hanmac » 15 Nov 2016, 06:32
I found the Bug with the Delayed Trigger and AI.
With some of my recent changes, AI does need to return True for the SpellAbility to go on the Stack. (That is for non optimal with not enough targets)
(There are some without API, they might need to be checked too)
Now there are some Trigger with DelayedTrigger, which do not go over a SpellAbility (Execute Parameter) but over a DelayedTrigger Parameter and an EmptySa.
For such EmptySa, AI doesn't know what to do with it.
The best way would be to convert all the cards and to remove the DelayedTrigger Parameter. And probably the EmptySa in Trigger too. (It should be an error.)
Someone might already do that while i am at work.
With some of my recent changes, AI does need to return True for the SpellAbility to go on the Stack. (That is for non optimal with not enough targets)
(There are some without API, they might need to be checked too)
Now there are some Trigger with DelayedTrigger, which do not go over a SpellAbility (Execute Parameter) but over a DelayedTrigger Parameter and an EmptySa.
For such EmptySa, AI doesn't know what to do with it.
The best way would be to convert all the cards and to remove the DelayedTrigger Parameter. And probably the EmptySa in Trigger too. (It should be an error.)
Someone might already do that while i am at work.
Re: Bug Reports (snapshot builds)
by Nekoatl » 16 Nov 2016, 03:56
Description: I started a constructed game. The AI went first, played a Mountain in its precombat Main phase, and then generated this exception in its postcombat Main phase.
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Windows 10 10.0 amd64
Java Version: 1.8.0_101 Oracle Corporation
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in Pharagax Giant:
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:107)
at forge.ai.AiController.checkETBEffects(AiController.java:265)
at forge.ai.AiController.canPlayFromEffectAI(AiController.java:1037)
at forge.ai.AiController.canPlaySa(AiController.java:683)
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 Hanmac » 16 Nov 2016, 09:34
fixed the bug in r32561.Nekoatl wrote:Description: I started a constructed game. The AI went first, played a Mountain in its precombat Main phase, and then generated this exception in its postcombat Main phase.
===
finished my changes about Delayed Trigger, now the old features should be removed.
Re: Bug Reports (snapshot builds)
by Frostlock » 16 Nov 2016, 21:21
Description: In my M1 phase I cast Kodama's Reach and splice Kodama's Might on top of it which throws a nullpointerexception. It has happened a number of times on other splice attempts as well.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Linux 4.4.0-47-generic amd64
Java Version: 1.8.0_111 Oracle Corporation
java.lang.NullPointerException
at forge.game.card.CardUtil.getValidCardsToTarget(CardUtil.java:494)
at forge.player.TargetSelection.chooseTargets(TargetSelection.java:117)
at forge.player.PlayerControllerHuman.chooseTargetsFor(PlayerControllerHuman.java:1290)
at forge.player.HumanPlaySpellAbility.setupTargets(HumanPlaySpellAbility.java:206)
at forge.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:140)
at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:110)
at forge.player.PlayerControllerHuman.playChosenSpellAbility(PlayerControllerHuman.java:941)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:934)
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(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
- Frostlock
- Posts: 1
- Joined: 16 Nov 2016, 21:17
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by excessum » 17 Nov 2016, 07:59
AI is refusing to cast spells released by Spell Queller. Not sure which update broke this but it was still working in r32467.
Re: Bug Reports (snapshot builds)
by excessum » 17 Nov 2016, 09:09
r32570
Another bug with Captured by the Consulate: AI assigned 2 damage from Chandra's Pyrohelix to my creature, triggering the re-direction.
Another bug with Captured by the Consulate: AI assigned 2 damage from Chandra's Pyrohelix to my creature, triggering the re-direction.
- NullPointerException | Open
- Code: Select all
Forge Version: SVN
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_25 Oracle Corporation
java.lang.NullPointerException
at forge.game.spellability.TargetRestrictions.getDividedValue(TargetRestrictions.java:765)
at forge.game.ability.effects.DamageDealEffect.resolve(DamageDealEffect.java:148)
at forge.game.ability.SpellApiBased.resolve(SpellApiBased.java:55)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1295)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1276)
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)
Re: Bug Reports (snapshot builds)
by fmartel » 17 Nov 2016, 19:39
Description: [After modifying lands for FullArt Lands, Started a game]
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32571
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_25 Oracle Corporation
java.lang.RuntimeException: TriggerFactory : registerTrigger -- trigParse too short
at forge.game.trigger.TriggerHandler.parseParams(TriggerHandler.java:172)
at forge.game.trigger.TriggerHandler.parseTrigger(TriggerHandler.java:145)
at forge.game.card.CardFactoryUtil.addTriggerAbility(CardFactoryUtil.java:2884)
at forge.game.card.CardFactoryUtil.setupKeywordedAbilities(CardFactoryUtil.java:2228)
at forge.game.card.CardFactory.buildAbilities(CardFactory.java:350)
at forge.game.card.CardFactory.getCard(CardFactory.java:257)
at forge.game.card.CardFactory.getCard(CardFactory.java:249)
at forge.game.card.Card.fromPaperCard(Card.java:6883)
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)
- 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 fmartel » 18 Nov 2016, 19:10
Description: [After modifying lands for FullArt Lands, Started a game]
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32572
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_25 Oracle Corporation
java.lang.RuntimeException: TriggerFactory Parsing Error in registerTrigger() : Split length of TriggerDescription$ is not 2.
at forge.game.trigger.TriggerHandler.parseParams(TriggerHandler.java:191)
at forge.game.trigger.TriggerHandler.parseTrigger(TriggerHandler.java:145)
at forge.game.card.CardFactory.readCardFace(CardFactory.java:446)
at forge.game.card.CardFactory.readCard(CardFactory.java:406)
at forge.game.card.CardFactory.getCard(CardFactory.java:254)
at forge.game.card.CardFactory.getCard(CardFactory.java:249)
at forge.game.card.Card.fromPaperCard(Card.java:6883)
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)
- 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 Agetian » 20 Nov 2016, 04:37
r32578: Cumulative Upkeep still does not fire for the AI (or it's able to ignore its effect as if it were not mandatory), this is most likely a separate issue from other issues related to AI ignoring the mandatory triggers (most of which were fixed before).
- 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 Hanmac » 20 Nov 2016, 04:52
The reason: because recent changes from me, AI can't do Abilities anymore which are not API based. (That is also the reason about the mandatory trigger)Agetian wrote:r32578: Cumulative Upkeep still does not fire for the AI (or it's able to ignore its effect as if it were not mandatory), this is most likely a separate issue from other issues related to AI ignoring the mandatory triggers (most of which were fixed before).
- Agetian
Another reason why i changed mostly of Morph, Suspend and Miracle.
To fix that i need a total rewrite of this with only API Abilities (with gives the AI better control)
I thought about it using a Sacrifice Effect with Unless cost for this. But I need to improve it to allow a multipler for that. (And the logic how to multiply cost need to be done better)
Also adding a new Unless Ability for something which can't be done as Cost.
Who is online
Users browsing this forum: No registered users and 26 guests