Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Agetian, friarsol, Blacksmith, KrazyTheFox, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by friarsol » 04 Oct 2015, 00:25
r30210
Triggers with Charm choices (Such as Ojutai Exemplars) don't list which option is chosen when on the stack.
Triggers with Charm choices (Such as Ojutai Exemplars) don't list which option is chosen when on the stack.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Hanmac » 04 Oct 2015, 06:46
Description: Enchanted manifested Leechridden Swamp while controlling Necromancer's Magemark is returned to the hand.
Now want to play that land again from the hand
Testing resolves that it only happen with lands that does enter the battlefield tapped.
Now want to play that land again from the hand
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.46-r-1
Operating System: Linux 3.19.0-30-lowlatency amd64
Java Version: 1.7.0_79 Oracle Corporation
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in :
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:106)
at forge.game.replacement.ReplacementHandler.executeReplacement(ReplacementHandler.java:169)
at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:134)
at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:71)
at forge.game.GameAction.changeZone(GameAction.java:209)
at forge.game.GameAction.moveTo(GameAction.java:431)
at forge.game.GameAction.moveTo(GameAction.java:412)
at forge.game.player.Player.playLand(Player.java:1462)
at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:87)
at forge.player.PlayerControllerHuman.playChosenSpellAbility(PlayerControllerHuman.java:938)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:933)
at forge.game.GameAction.startGame(GameAction.java:1438)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Testing resolves that it only happen with lands that does enter the battlefield tapped.
Re: Bug Reports (snapshot builds)
by Agetian » 04 Oct 2015, 07:01
r30210: Cloned cards apparently do not get their abilities copied over or processed correctly. For example, a Phantasmal Image copying a Delver of Secrets creates a copy that does not turn into Insectile Aberration when an instant or a sorcery card is revealed. Not sure how to fix this one, but it's quite big (most likely affects a ton of things, basically anything that's copied and that has, for instance, triggered abilities?...).
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3490
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Marek14 » 04 Oct 2015, 07:05
No, this is actually correct. Basically, copies of a double-faced card cannot transform. Transformation ignores copy effects and looks at the base physical card, and since Phantasmal Image is not a double-faced card, it's not allowed to transform.Agetian wrote:r30210: Cloned cards apparently do not get their abilities copied over or processed correctly. For example, a Phantasmal Image copying a Delver of Secrets creates a copy that does not turn into Insectile Aberration when an instant or a sorcery card is revealed. Not sure how to fix this one, but it's quite big (most likely affects a ton of things, basically anything that's copied and that has, for instance, triggered abilities?...).
- Agetian
However, even if you managed to copy a double-faced card with another double-faced card (for example using Infinite Reflection), it could PHYSICALLY transform, but the copy effect would still apply after that and rewrite its stats with the original copied face.
As for Eldrazi Scions -- for now it's probably best to use all the pictures, but I hope for an Arcana that would clearly tell us which token is supposed to go with which card, like they did for Rise of the Eldrazi
Re: Bug Reports (snapshot builds)
by Agetian » 04 Oct 2015, 07:09
Oh, interesting, I forgot that it's actually asking the thing to "flip over" which it can't do
Thanks a lot for the clarification, Marek! 
And yes, I currently set up the scripts to show a random picture (from the three) for Eldrazi Scions, but let me know if there's information about which one goes with which card, I'll update accordingly
- Agetian
And yes, I currently set up the scripts to show a random picture (from the three) for Eldrazi Scions, but let me know if there's information about which one goes with which card, I'll update accordingly
- Agetian
- Agetian
- Programmer
- Posts: 3490
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Hanmac » 04 Oct 2015, 07:43
i tested with newest release, the stuff with morbid does no work,Agetian wrote:Looks like Sunburst is also broken in a similar fashion - commands added via addComesIntoPlayCommand (most notably Echo and Sunburst) never ever trigger. :/
EDIT: Looks like I found what's breaking it (it's my change related to processing Morbid+Awaken), I'll temporarily revert that and see what I can do to fix one thing without breaking two others.
EDIT: Ok, for now reverted the entire attempt at fixing Morbid+Awaken, didn't work out too well. Will try to think of something better (that hopefully won't break a lot of stuff). Echo and Sunburst are back to working now, Morbid+Awaken, sadly, back to broken.
EDIT: I have a working prototype for a fix that works without breaking Echo and Sunburst, but I really want to wait with the submission until after the release (I don't know how many things it can potentially break, so...).
- Agetian
but still does not work with my problems there,
tested Savra, Queen of the Golgari + Painter's Servant
----Hanmac wrote:
still problems with status checking when sacrificing creatures,
it should check the last known status while it was on the battlefield.
===
Creature equipped with Mortarpod and soulbond to Nightshade Peddler got sacrificed by the effect of Mortarpod.
The damage should be deadly because of Deathtouch but its not.
---
might be related to my problem with Savra, Queen of the Golgari
and sacrificing a non-green/non-black creature while controlling Painter's Servant (and changing the color to green or black)
the effect should happen because the creature was green or black while controlling it on the battlefield
---
happens for Ashmouth Hound with Basilisk Collar too.
I attack, enemy blocks but before the damage effect resolves Ashmouth Hound is send to hand, but it had deathtouch while it was on the field
for Crackleburr + Smokebraider: thats the test setting:
have only Crackleburr + Smokebraider and another or two red creature on the field.
now have not enough
mana to pay with the lands.Now activate the effect of Crackleburr, it wants to pay the mana use Smokebraider to pay it, now it does want to tap one red untapped creature but it should ask for two one ... it might have counted Smokebraider for the effect but it should not.
Edit:
while doing that i got the following message in the console:
Trying to choose at least 2 cards from a list with only 1 cards!
Last edited by Hanmac on 04 Oct 2015, 08:39, edited 1 time in total.
Re: Bug Reports (snapshot builds)
by Agetian » 04 Oct 2015, 07:59
I tried to fix this in r30212, but the fix may break something else, I'm afraid, please test for possible issues...Hanmac wrote:Description: Enchanted manifested Leechridden Swamp while controlling Necromancer's Magemark is returned to the hand.
Now want to play that land again from the handthe same thing does happen then a manifested land got blinked by the Mistmeadow Witch.
- RuntimeException | Open
- Code: Select all
Forge Version: 1.5.46-r-1
Operating System: Linux 3.19.0-30-lowlatency amd64
Java Version: 1.7.0_79 Oracle Corporation
java.lang.RuntimeException: AbilityFactory : getAbility -- no API in :
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:106)
at forge.game.replacement.ReplacementHandler.executeReplacement(ReplacementHandler.java:169)
at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:134)
at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:71)
at forge.game.GameAction.changeZone(GameAction.java:209)
at forge.game.GameAction.moveTo(GameAction.java:431)
at forge.game.GameAction.moveTo(GameAction.java:412)
at forge.game.player.Player.playLand(Player.java:1462)
at forge.player.HumanPlay.playSpellAbility(HumanPlay.java:87)
at forge.player.PlayerControllerHuman.playChosenSpellAbility(PlayerControllerHuman.java:938)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:933)
at forge.game.GameAction.startGame(GameAction.java:1438)
at forge.game.Match.startGame(Match.java:96)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Testing resolves that it only happen with lands that does enter the battlefield tapped.
- Agetian
- Agetian
- Programmer
- Posts: 3490
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Hanmac » 04 Oct 2015, 08:42
hm ok i see there are builds on
http://www.cardforge.org/snapshots or http://www.cardforge.link/snapshots again
but your fix in r30212 seems to be not there yet.
is there a tutorial to build forge from svn? (i know to use cvs)
http://www.cardforge.org/snapshots or http://www.cardforge.link/snapshots again
but your fix in r30212 seems to be not there yet.
is there a tutorial to build forge from svn? (i know to use cvs)
Re: Bug Reports (snapshot builds)
by Agetian » 04 Oct 2015, 13:56
r30217: I tried fixing the "Savra, Queen of the Golgari + Painter's Servant + sacrifice a card with green on black color added by Painter's Servant" interaction but the only solution I was able to come up with is somewhat experimental, I hope it doesn't break anything else about the Sacrifice mechanic/triggers. Testing is welcome.
About SVN builds: the easiest way I know of is to install NetBeans or another environment (I've heard IDEA IntelliJ is also very good), check out the Forge SVN repository from there and compile/run the game from NetBeans/IntelliJ. Information about checking out the SVN repository is located here: http://www.slightlymagic.net/wiki/Forge ... ping_Forge
- Agetian
About SVN builds: the easiest way I know of is to install NetBeans or another environment (I've heard IDEA IntelliJ is also very good), check out the Forge SVN repository from there and compile/run the game from NetBeans/IntelliJ. Information about checking out the SVN repository is located here: http://www.slightlymagic.net/wiki/Forge ... ping_Forge
- Agetian
- Agetian
- Programmer
- Posts: 3490
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Agetian » 04 Oct 2015, 14:11
r30218-30219: Fixed the Crackleburr + Smokebraider interaction mentioned above.
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3490
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by lk5316 » 04 Oct 2015, 17:37
Hi, i`ve using forge version 1.5.45 , started a tournament in quest mode , play the first round withouth problem but when I click play in the second round I cannot begin to play.This is the report:
Description: [describe what you were doing when the crash occurred]
Description: [describe what you were doing when the crash occurred]
- NumberFormatException | Open
- Code: Select all
Forge Version: 1.5.45-r-1
Operating System: Windows XP 5.1 x86
Java Version: 1.8.0_60 Oracle Corporation
java.lang.NumberFormatException: For input string: "quest_draft_undetermined_place"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at forge.quest.QuestDraftUtils.addMatchup(QuestDraftUtils.java:146)
at forge.quest.QuestDraftUtils.startNextMatch(QuestDraftUtils.java:107)
at forge.screens.home.quest.CSubmenuQuestDraft.startNextMatch(CSubmenuQuestDraft.java:579)
at forge.screens.home.quest.CSubmenuQuestDraft.access$000(CSubmenuQuestDraft.java:60)
at forge.screens.home.quest.CSubmenuQuestDraft$7.actionPerformed(CSubmenuQuestDraft.java:281)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(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)
- lk5316
- Posts: 3
- Joined: 04 Oct 2015, 17:25
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Marek14 » 05 Oct 2015, 06:24
I have a thread (viewtopic.php?f=52&t=17677) where I tried to suggest some token improvements, you might like itAgetian wrote:Oh, interesting, I forgot that it's actually asking the thing to "flip over" which it can't doThanks a lot for the clarification, Marek!
And yes, I currently set up the scripts to show a random picture (from the three) for Eldrazi Scions, but let me know if there's information about which one goes with which card, I'll update accordingly
- Agetian
Re: Bug Reports (snapshot builds)
by Agetian » 05 Oct 2015, 06:54
@ Marek: Ah, I'll check it out today, thanks! 
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3490
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by friarsol » 06 Oct 2015, 01:23
r30234
Trying to add a card to my quest deck and save it:
Yea I even tried a new quest. Quest mode is basically completely broken right now. I'm guessing this is related to your changes to decks drdev?
Trying to add a card to my quest deck and save it:
- NPE | Open
- EDT > java.lang.StringIndexOutOfBoundsException: String index out of range: -32
at java.lang.String.substring(String.java:1875)
at forge.screens.deckeditor.controllers.DeckController.save(DeckController.java:196)
at forge.screens.deckeditor.controllers.DeckController.saveAs(DeckController.java:212)
at forge.screens.deckeditor.SEditorIO.saveDeck(SEditorIO.java:58)
at forge.screens.deckeditor.controllers.CCurrentDeck$2.run(CCurrentDeck.java:73)
at forge.toolbox.FLabel._doMouseAction(FLabel.java:314)
at forge.toolbox.FLabel.access$1300(FLabel.java:55)
at forge.toolbox.FLabel$6.onLeftClick(FLabel.java:352)
at forge.toolbox.FMouseAdapter.mouseReleased(FMouseAdapter.java:246)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Yea I even tried a new quest. Quest mode is basically completely broken right now. I'm guessing this is related to your changes to decks drdev?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Agetian » 06 Oct 2015, 04:33
r30234: For some reason, cloning abilities do not interact correctly with Devoid - e.g. playing Clone as a copy of a creature with Devoid makes the cloned version colored (although it does show the "Devoid" keyword in the card detail panel :/ ). Try, e.g. Clone as a copy of Vestige of Emrakul. This is not purely visual, too, because All is Dust would then kill the cloned version (but not the original).
EDIT: Fixed this is r30235, but please take a look at what I did. Basically, Devoid used to use the "addColor" method to change the color of the card to Colorless. However, what that essentially did was added it as a temporary color-changing (color text-changing?) ability, which means it was not processed by Clone and friends (per 706.2). I changed it so that it uses "setColor" instead, which sets the "default" permanent color of the card. I ran some basic tests to see that the identity was still preserved (it was), cards were still considered colorless and could also receive new colors via e.g. Painter's Servant, and things seem to work fine. However, I'm not sure if maybe something will be wrong now - was there a reason that addColor was preferred over setColor or was it just a serendipity?
- Agetian
EDIT: Fixed this is r30235, but please take a look at what I did. Basically, Devoid used to use the "addColor" method to change the color of the card to Colorless. However, what that essentially did was added it as a temporary color-changing (color text-changing?) ability, which means it was not processed by Clone and friends (per 706.2). I changed it so that it uses "setColor" instead, which sets the "default" permanent color of the card. I ran some basic tests to see that the identity was still preserved (it was), cards were still considered colorless and could also receive new colors via e.g. Painter's Servant, and things seem to work fine. However, I'm not sure if maybe something will be wrong now - was there a reason that addColor was preferred over setColor or was it just a serendipity?
- Agetian
- Agetian
- Programmer
- Posts: 3490
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Who is online
Users browsing this forum: No registered users and 10 guests