It is currently 12 Jun 2025, 10:03
   
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 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
User avatar
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)

Postby 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.
Marek14
Tester
 
Posts: 2772
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 302 times

Re: Bug Reports (snapshot builds)

Postby 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)

Postby 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]

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)
Thrint
 
Posts: 27
Joined: 06 May 2015, 18:43
Has thanked: 8 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 14 Nov 2016, 21:02

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.
Rage Extractor should deal 6 damage each,
and the Tainted Sigil should make you gain 4+6+6=16 life.

fixed in r32557.

===
@Thrint yours got fixed in r32558.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby 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.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby 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)
Nekoatl
 
Posts: 196
Joined: 22 Aug 2013, 20:13
Has thanked: 21 times
Been thanked: 8 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 16 Nov 2016, 09:34

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.
fixed the bug in r32561.

===
finished my changes about Delayed Trigger, now the old features should be removed.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby 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)

Postby 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.
excessum
 
Posts: 177
Joined: 21 Oct 2013, 02:30
Has thanked: 0 time
Been thanked: 19 times

Re: Bug Reports (snapshot builds)

Postby 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.
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)
excessum
 
Posts: 177
Joined: 21 Oct 2013, 02:30
Has thanked: 0 time
Been thanked: 19 times

Re: Bug Reports (snapshot builds)

Postby 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)
Foud out that every time I hit the "Save Deck As" the lands goes to "Assorted Art" mode, no matter which land you put in.
fmartel
 
Posts: 281
Joined: 31 Dec 2013, 19:27
Location: Québec City
Has thanked: 8 times
Been thanked: 4 times

Re: Bug Reports (snapshot builds)

Postby 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)

Postby 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
Programmer
 
Posts: 3487
Joined: 14 Mar 2011, 05:58
Has thanked: 683 times
Been thanked: 569 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 20 Nov 2016, 04:52

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
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)
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.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 26 guests


Who is online

In total there are 26 users online :: 0 registered, 0 hidden and 26 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 26 guests

Login Form