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 Agetian » 19 Aug 2017, 04:08
Hmm, yeah, interestingly, I don't think that any deck size limits are specified anywhere for the formats themselves (so they don't get into filters like Standard and Modern and whatnot), and this check is only made later when the deck is tested for conformance :/ I'll see if I can find a way to improve this. However, it's a bit more complicated than just "testing for 60 or more", since this filter may be used in Quest Mode as well, which allows 40-card decks, so I'm a bit confused... Even more confusingly, it can be used to filter Booster Draft and Sealed Deck decks, which makes little sense from the MTG standpoint (since Sealed and Draft are separate limited formats), but which effectively functions as a "filter for decks which only have Standard-/Modern-/whatever-legal cards in them". Maybe it should be called something else other than "Format" then, in order not to confuse people?..Xyx wrote:The "Format -> Standard" filter allows decks that are less than 60 cards.
(Btw, can't reproduce the Scry-related bug you posted above just yet :/ )
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by Xyx » 20 Aug 2017, 13:26
Hunter's Prowess has a weird text prompt. See image.
Peregrination also has a rather ugly prompt, and it suggests that the library is shuffled twice instead of just once (but it is only once.)
Steam Augury also has a slightly unhelpful prompt that does not explain which pile does which. And while the pile selection dialog is open, you can't see the Steam Augury card.
Peregrination also has a rather ugly prompt, and it suggests that the library is shuffled twice instead of just once (but it is only once.)
Steam Augury also has a slightly unhelpful prompt that does not explain which pile does which. And while the pile selection dialog is open, you can't see the Steam Augury card.
Re: Bug Reports (snapshot builds)
by Indigo Dragon » 24 Aug 2017, 10:17
Scalelord Reckoner triggers on when a dragon is targeted in another zone. (eg. Scrabbling Claws second ability targeting an Ojutai, Soul of Winter).
e: Also, Orator of Ojutai only draws a card if you revealed a Dragon card from your hand, and does not draw if you controlled a Dragon.
e: Also, Orator of Ojutai only draws a card if you revealed a Dragon card from your hand, and does not draw if you controlled a Dragon.
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 kevlahnota » 25 Aug 2017, 08:40
Description: [describe what you were doing when the crash occurred]
I was playing planar conquest, the AI cast Ajani Vangeant, then NPE popup. Im using Android svn R35213, It froze on waiting opponent...
I was playing planar conquest, the AI cast Ajani Vangeant, then NPE popup. Im using Android svn R35213, It froze on waiting opponent...
- NullPointerException | Open
- Code: Select all
Forge Version: 1.6.2.001
Operating System: Linux 3.10.84-perf-g44616d6 armv8l
Java Version: 0 The Android Project
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String forge.game.spellability.SpellAbility.getSVar(java.lang.String)' on a null object reference
at forge.ai.ComputerUtilCost.checkRemoveCounterCost(ComputerUtilCost.java:95)
at forge.ai.ComputerUtilCost.checkRemoveCounterCost(ComputerUtilCost.java:61)
at forge.ai.ability.DamageDealAi.canPlayAI(DamageDealAi.java:164)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
at forge.ai.AiController.canPlaySa(AiController.java:634)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:618)
at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1142)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1114)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1094)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:951)
at forge.game.GameAction.startGame(GameAction.java:1565)
at forge.game.Match.startGame(Match.java:87)
at forge.match.HostedMatch$2.run(HostedMatch.java:224)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
-
kevlahnota - Programmer
- Posts: 825
- Joined: 19 Jul 2010, 17:45
- Location: Philippines
- Has thanked: 14 times
- Been thanked: 264 times
Re: Bug Reports (snapshot builds)
by Agetian » 25 Aug 2017, 11:03
@kevlahnota: Thanks! Fixed in r35217.
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by MaxMtg » 25 Aug 2017, 13:07
Description: [ Opponent played Sunset Pyramid and the game crashed]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.6.3-SNAPSHOT-r-1
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_144 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ComputerUtilCost.checkRemoveCounterCost(ComputerUtilCost.java:95)
at forge.ai.ComputerUtilCost.checkRemoveCounterCost(ComputerUtilCost.java:61)
at forge.ai.ability.DrawAi.willPayCosts(DrawAi.java:113)
at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:80)
at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
at forge.ai.AiController.canPlaySa(AiController.java:634)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:618)
at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1142)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1114)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1094)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:951)
at forge.game.GameAction.startGame(GameAction.java:1565)
at forge.game.Match.startGame(Match.java:87)
at forge.match.HostedMatch$2.run(HostedMatch.java:224)
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 » 25 Aug 2017, 13:34
If it's prior to 35217, then it's hopefully fixed in that revision, but if it's past 35217, then I'll take a look and patch it up tonight when I'm homeMaxMtg wrote:Description: [ Opponent played Sunset Pyramid and the game crashed]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.6.3-SNAPSHOT-r-1
Operating System: Windows 8.1 6.3 amd64
Java Version: 1.8.0_144 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ComputerUtilCost.checkRemoveCounterCost(ComputerUtilCost.java:95)
at forge.ai.ComputerUtilCost.checkRemoveCounterCost(ComputerUtilCost.java:61)
at forge.ai.ability.DrawAi.willPayCosts(DrawAi.java:113)
at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:80)
at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
at forge.ai.AiController.canPlaySa(AiController.java:634)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:618)
at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1142)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1114)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1094)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:951)
at forge.game.GameAction.startGame(GameAction.java:1565)
at forge.game.Match.startGame(Match.java:87)
at forge.match.HostedMatch$2.run(HostedMatch.java:224)
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: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by kevlahnota » 26 Aug 2017, 17:15
Description: [describe what you were doing when the crash occurred]
Activate Tectonic Edge to destroy opponent non basic land, NPE occurs. Using R35231
Activate Tectonic Edge to destroy opponent non basic land, NPE occurs. Using R35231
- NullPointerException | Open
- Code: Select all
Forge Version: 1.6.2.001
Operating System: Linux 3.10.84-perf-g44616d6 armv8l
Java Version: 0 The Android Project
java.lang.NullPointerException: Attempt to invoke virtual method 'forge.game.ability.ApiType forge.game.spellability.SpellAbility.getApi()' on a null object reference
at forge.ai.ComputerUtil.predictThreatenedObjects(ComputerUtil.java:1618)
at forge.ai.ComputerUtil.predictThreatenedObjects(ComputerUtil.java:1381)
at forge.ai.ComputerUtil.predictThreatenedObjects(ComputerUtil.java:1351)
at forge.ai.ability.ChangeZoneAi.canBouncePermanent(ChangeZoneAi.java:1156)
at forge.ai.ability.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:874)
at forge.ai.ability.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1310)
at forge.ai.ability.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:135)
at forge.ai.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:167)
at forge.ai.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:162)
at forge.ai.AiController.doTrigger(AiController.java:1188)
at forge.ai.ability.CharmAi.chooseMultipleOptionsAi(CharmAi.java:218)
at forge.ai.ability.CharmAi.checkApiLogic(CharmAi.java:58)
at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:83)
at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
at forge.ai.AiController.canPlaySa(AiController.java:634)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:618)
at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1142)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1114)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1094)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:951)
at forge.game.GameAction.startGame(GameAction.java:1565)
at forge.game.Match.startGame(Match.java:87)
at forge.match.HostedMatch$2.run(HostedMatch.java:224)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
-
kevlahnota - Programmer
- Posts: 825
- Joined: 19 Jul 2010, 17:45
- Location: Philippines
- Has thanked: 14 times
- Been thanked: 264 times
Re: Bug Reports (snapshot builds)
by Agetian » 26 Aug 2017, 18:18
@kevlahnota: Thanks! Fixed in r35238. Please retest using that revision, if possible (shouldn't NPE anymore).
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by Bog Wraith » 29 Aug 2017, 21:13
In XLN DB, Admiral Beckett Brass is missing the second "T" in Beckett.
'Twas in the bogs of Cannelbrae
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
-
Bog Wraith - Global Mod 1 (Ret)
- Posts: 1108
- Joined: 28 May 2008, 22:40
- Location: Shandalar
- Has thanked: 425 times
- Been thanked: 153 times
Re: Bug Reports (snapshot builds)
by Seravy » 31 Aug 2017, 18:36
Description: Tried adding an Afterlife to my hand.
- Error | Open
- Code: Select all
Forge Version: 1.6.3-SNAPSHOT-r35316Mu
Operating System: Windows XP 5.1 x86
Java Version: 1.8.0_131 Oracle Corporation
java.lang.Error: Unresolved compilation problems:
Cannot refer to the non-final local variable targetZone defined in an enclosing scope
Cannot refer to the non-final local variable targetZone defined in an enclosing scope
Cannot refer to the non-final local variable forgeCard defined in an enclosing scope
Cannot refer to the non-final local variable forgeCard defined in an enclosing scope
Cannot refer to the non-final local variable forgeCard defined in an enclosing scope
Cannot refer to the non-final local variable forgeCard defined in an enclosing scope
Cannot refer to the non-final local variable repeatLast defined in an enclosing scope
Cannot refer to the non-final local variable forgeCard defined in an enclosing scope
Cannot refer to the non-final local variable targetZone defined in an enclosing scope
at forge.player.PlayerControllerHuman$DevModeCheats$6.run(PlayerControllerHuman.java:2157)
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 » 31 Aug 2017, 19:15
Tried to fix this upstream.
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by Seravy » 03 Sep 2017, 20:30
Description: AI played Spike Warrior
- Error | Open
- Code: Select all
Forge Version: 1.6.3-SNAPSHOT-r35383Mu
Operating System: Windows XP 5.1 x86
Java Version: 1.8.0_131 Oracle Corporation
java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from List<capture#1-of ? extends Object> to List<String>
at forge.ai.ComputerUtilCard.shouldPumpCard(ComputerUtilCard.java:1245)
at forge.ai.ability.PumpAi.checkApiLogic(PumpAi.java:355)
at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:83)
at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
at forge.ai.AiController.canPlaySa(AiController.java:656)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:640)
at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1164)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1136)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1116)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:952)
at forge.game.GameAction.startGame(GameAction.java:1574)
at forge.game.Match.startGame(Match.java:87)
at forge.match.HostedMatch$2.run(HostedMatch.java:224)
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 Sep 2017, 04:11
Should be fixed, if I correctly understand what's going on. Please retest using the latest revisionSeravy wrote:Description: AI played Spike Warrior
- Error | Open
- Code: Select all
Forge Version: 1.6.3-SNAPSHOT-r35383Mu
Operating System: Windows XP 5.1 x86
Java Version: 1.8.0_131 Oracle Corporation
java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from List<capture#1-of ? extends Object> to List<String>
at forge.ai.ComputerUtilCard.shouldPumpCard(ComputerUtilCard.java:1245)
at forge.ai.ability.PumpAi.checkApiLogic(PumpAi.java:355)
at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:83)
at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
at forge.ai.AiController.canPlaySa(AiController.java:656)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:640)
at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1164)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1136)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1116)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:952)
at forge.game.GameAction.startGame(GameAction.java:1574)
at forge.game.Match.startGame(Match.java:87)
at forge.match.HostedMatch$2.run(HostedMatch.java:224)
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: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Who is online
Users browsing this forum: No registered users and 35 guests