Forge Beta: 09-12-2014 ver 1.5.26
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Forge Beta: 09-12-2014 ver 1.5.26
by lujo » 17 Sep 2014, 10:15
Eh, I'd hardly call Masques block and limited "my context" since anyone who includes the block in his quest pool is playing it vs the AI, and if someone enables the full pool it will crop up in his drafts. And the situation where an AI has removal, and the player has Lin Sivvi in it's deck, it's highly unlikely that anything else in that deck will be a higher priority removal target than her, especially in constructed, because if she's in your deck she can either tutor everything else (including changelings and all sorts of Time Spiral stuff) and recur whatever is prioritized over her. So you can get situations where the AI which relies on removal will spend it on stuff that Lin Sivvi just brings back or brings another copy off (or she just stands there and tutors removal or recurs Aven Riftwatchers for endless blocking/life).excessum wrote:There are cards like Biovisionary and Azor's Elocutors that literally win the game with no specific "prioritizing" targets since all this is dependent on the game-state. Cards like Phage the Untouchable and Master of Cruelties have specific "must be blocked" AI flags since they are very likely to win the game immediately if said action ie. blocking, is not done.
Lin Sivvi, Defiant Hero is only overpowered in your context, it can be safely ignored by pretty much every tournament-standard combo deck and quite a few AI decks so having a specific must-kill priority is not recommended.
It can depend on game state, ofc, and combo decks can ignore any creature, also true, but the AI consistently passing her over in favor of other stuff doesn't work either.
Still, no need to discuss this here, I opened a thread for these things:
viewtopic.php?f=52&t=15434
The game could use a block specific removal priority list for limited if it's possible to implement it anyway. There's probably a card or two in any format which is a RL bomb that would never live if it could be chosen for removal by the AI, Lin Sivvi is just the most famous one. Most bombs don't have this problem due to having the right stats to draw removal, format defining utility bombs slip by and mess things up. Not all (or even more than one or two) are building blocks for constructed decks, but it still probably should be done.
EDIT: Plus they're closed and sorta well documented environments, you really can pinpoint problem cards in them if there are any.
---
My Shandalar deck pack folder is avaliable here:Dropbox
Leave feedback on particular decks here: Google doc
Ask for instructions, give feedback and complaints here: Thread
My Shandalar deck pack folder is avaliable here:Dropbox
Leave feedback on particular decks here: Google doc
Ask for instructions, give feedback and complaints here: Thread
Re: Forge Beta: 09-12-2014 ver 1.5.26
by lujo » 17 Sep 2014, 14:27
Living End returns cards which were exiled in other ways instead of just the cards which were exiled from the graveyard by it. It's not supposed to.
---
My Shandalar deck pack folder is avaliable here:Dropbox
Leave feedback on particular decks here: Google doc
Ask for instructions, give feedback and complaints here: Thread
My Shandalar deck pack folder is avaliable here:Dropbox
Leave feedback on particular decks here: Google doc
Ask for instructions, give feedback and complaints here: Thread
Re: Forge Beta: 09-12-2014 ver 1.5.26
by bevryde » 17 Sep 2014, 15:01
Forge still chooses "AI-incompatible" cards when creating a random deck for the AI oppoenent. (Constructed:Random Decks:Random generated Deck). E.g. it complained about Magma Giant.
Re: Forge Beta: 09-12-2014 ver 1.5.26
by Agetian » 17 Sep 2014, 15:43
I tried to fix this issue in r27493, or at least circumvent it in a good enough way until someone can pinpoint the source of the issue somewhere deeper in the code. More details in the dev forum bug report thread.excessum wrote:I'm pretty sure this problem is still around... viewtopic.php?f=52&t=6333&start=3165#p161207. Here is another example with r27480drdev wrote:Pretty sure that issue was fixed by r27386.
- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Forge Beta: 09-12-2014 ver 1.5.26
by darkdolphin » 17 Sep 2014, 15:48
Just wanna say thanks for fixing the card drawing bug in "human vs human" mode 

- darkdolphin
- Posts: 3
- Joined: 31 Oct 2013, 19:47
- Has thanked: 0 time
- Been thanked: 0 time
Re: Forge Beta: 09-12-2014 ver 1.5.26
by lujo » 17 Sep 2014, 22:32
r27493 doesn't have crash reports or cards stuck as visual artifacts after AI vs AI matches, but the cards are still flying in strange directions during them.
Also:
Spur Grappler somehow miraculously becomes a 4/3 creature instead of 4/2, when you have no untapped lands. Same thing for the AI, there wasn't anything in play that could cause it. (Oddly enough that guy is pretty relevant in Masques limited XD)
Also:
Spur Grappler somehow miraculously becomes a 4/3 creature instead of 4/2, when you have no untapped lands. Same thing for the AI, there wasn't anything in play that could cause it. (Oddly enough that guy is pretty relevant in Masques limited XD)
---
My Shandalar deck pack folder is avaliable here:Dropbox
Leave feedback on particular decks here: Google doc
Ask for instructions, give feedback and complaints here: Thread
My Shandalar deck pack folder is avaliable here:Dropbox
Leave feedback on particular decks here: Google doc
Ask for instructions, give feedback and complaints here: Thread
Re: Forge Beta: 09-12-2014 ver 1.5.26
by friarsol » 18 Sep 2014, 00:49
Thanks. Looks like the script was wrong. Granting +2/+2 instead of +2/+1. Fixed in the latest.lujo wrote:Spur Grappler somehow miraculously becomes a 4/3 creature instead of 4/2, when you have no untapped lands. Same thing for the AI, there wasn't anything in play that could cause it. (Oddly enough that guy is pretty relevant in Masques limited XD)
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Beta: 09-12-2014 ver 1.5.26
by Goose » 18 Sep 2014, 01:04
Description: Occurs while loading the program. Tried deleting RES folder and reinstalling and still happening.
- EOFException | Open
- Code: Select all
Forge Version: 1.5.26-r27298Mu (mixed revisions detected; please update from the root directory)
Operating System: Mac OS X 10.9.4 x86_64
Java Version: 1.7.0_67 Oracle Corporation
main > Error loading Quest Data
java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:116)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.Reader.read(Reader.java:140)
at forge.quest.io.QuestDataIO.loadData(QuestDataIO.java:116)
at forge.control.FControl.initialize(FControl.java:216)
at forge.view.Main.main(Main.java:51)
Re: Forge Beta: 09-12-2014 ver 1.5.26
by PalladiaMors » 18 Sep 2014, 01:15
I'm unable to play Jilt without the kicker cost. No matter which of the two options I choose when I try to cast it and the kicker popup shows up, Forge asks for a second target. All other cards with kicker I've used work perfectly, so I guess there may be some specific issue with Jilt's script?
- General bug report | Open
- Code: Select all
Forge Version: 1.5.26-r27298Mu (mixed revisions detected; please update from the root directory)
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_67 Oracle Corporation
- PalladiaMors
- Posts: 343
- Joined: 12 Jul 2014, 17:40
- Has thanked: 36 times
- Been thanked: 22 times
Re: Forge Beta: 09-12-2014 ver 1.5.26
by friarsol » 18 Sep 2014, 01:33
There's nothing wrong with the script, but the way multi-targeting Kicker is handled. If you choose the non-kicker mode, you can actually cast it without paying 2UR, but right now it incorrectly forces you to choose a second target (which sometimes is impossible, or unfavorable). I actually just reported this in the the snapshot builds thread. The damage won't actually be dealt, until we can resolve the issue.PalladiaMors wrote:I'm unable to play Jilt without the kicker cost. No matter which of the two options I choose when I try to cast it and the kicker popup shows up, Forge asks for a second target. All other cards with kicker I've used work perfectly, so I guess there may be some specific issue with Jilt's script?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Beta: 09-12-2014 ver 1.5.26
by Marek14 » 18 Sep 2014, 04:53
Similar targeting thing is when you can cancel out of optional targeted triggered ability without choosing targets -- in some cases, for example with Horobi, Death's Wail, this has incorrect consequences.
EDIT: AI tapped Wall of Omens for my Tangle Wire, even though it had no fade counters.
EDIT: AI tapped Wall of Omens for my Tangle Wire, even though it had no fade counters.
Re: Forge Beta: 09-12-2014 ver 1.5.26
by ZappaZ » 18 Sep 2014, 14:12
I have been trying out some decks in EDH with the latest release I could find from here: krazyweb net/forge/
(forge-gui-desktop-1.5.28-SNAPSHOT-r27503.tar.bz2)
EDIT: Reposted this in the Snapshot thread, thanks Fizanko
Playing with 1 AI with a random deck and myself using this deck:
tappedout net/mtg-decks/hear-me-roar-brimaz-commanderedh/
Description: I played Blind Obedience in my main phase and pressed ok.
ADDITION: I seem to be able to get this exact error again with 2 other decks involved.
I was pressing OK going from M1 to M2 and all that was on the table was 3 lands for AI and 2 lands + Sol Ring for me.
tappedout net/mtg-decks/toolkit-sliver-commander/
Sidenote: Why does the order of the cards in my hand reset in EDH when i get to Mainphase 1 and 2? (most of the time)
In normal constructed i usually put all my lands to the left while I'm thinking,
but in EDH it resets.
EDIT: Got the same behavior in normal too, did not have this in 1.5.26.
PS: new user, had to slaughter the links, sorry.
(forge-gui-desktop-1.5.28-SNAPSHOT-r27503.tar.bz2)
EDIT: Reposted this in the Snapshot thread, thanks Fizanko
Playing with 1 AI with a random deck and myself using this deck:
tappedout net/mtg-decks/hear-me-roar-brimaz-commanderedh/
Description: I played Blind Obedience in my main phase and pressed ok.
ADDITION: I seem to be able to get this exact error again with 2 other decks involved.
I was pressing OK going from M1 to M2 and all that was on the table was 3 lands for AI and 2 lands + Sol Ring for me.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.lang.NullPointerException
at forge.view.LocalGameView.writeCardToView(LocalGameView.java:486)
at forge.view.LocalGameView.getCardView(LocalGameView.java:406)
at forge.view.LocalGameView$3.apply(LocalGameView.java:421)
at forge.view.LocalGameView$3.apply(LocalGameView.java:418)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:134)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:426)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:364)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:336)
at forge.view.LocalGameView.getPlayerTurn(LocalGameView.java:226)
at forge.GuiDesktop.updatePhase(GuiDesktop.java:233)
at forge.control.FControlGameEventHandler$1.run(FControlGameEventHandler.java:88)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(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$1.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)
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.lang.NullPointerException
at forge.screens.match.TargetingOverlay.addArcsForCard(TargetingOverlay.java:163)
at forge.screens.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:146)
at forge.screens.match.TargetingOverlay.access$100(TargetingOverlay.java:55)
at forge.screens.match.TargetingOverlay$OverlayPanel.paintComponent(TargetingOverlay.java:366)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1300(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(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$1.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)
tappedout net/mtg-decks/toolkit-sliver-commander/
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at forge.game.card.Card.getAbilityText(Card.java:2335)
at forge.game.card.Card.getText(Card.java:1873)
at forge.view.ViewUtil.writeNonDependentCardViewProperties(ViewUtil.java:79)
at forge.view.LocalGameView.writeCardToView(LocalGameView.java:482)
at forge.view.LocalGameView.getCardView(LocalGameView.java:406)
at forge.view.LocalGameView$3.apply(LocalGameView.java:421)
at forge.view.LocalGameView$3.apply(LocalGameView.java:418)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:134)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:426)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:364)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:336)
at forge.view.LocalGameView.getGameEntityView(LocalGameView.java:292)
at forge.view.LocalGameView.getCombat(LocalGameView.java:183)
at forge.view.LocalGameView.getCombat(LocalGameView.java:167)
at forge.control.FControlGameEventHandler$2.run(FControlGameEventHandler.java:105)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(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$1.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)
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_20 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:133)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:426)
at forge.view.LocalGameView.getCombat(LocalGameView.java:183)
at forge.view.LocalGameView.getCombat(LocalGameView.java:167)
at forge.screens.match.TargetingOverlay$OverlayPanel.paintComponent(TargetingOverlay.java:366)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1300(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(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$1.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)
Sidenote: Why does the order of the cards in my hand reset in EDH when i get to Mainphase 1 and 2? (most of the time)
In normal constructed i usually put all my lands to the left while I'm thinking,
but in EDH it resets.
EDIT: Got the same behavior in normal too, did not have this in 1.5.26.
PS: new user, had to slaughter the links, sorry.
Last edited by ZappaZ on 18 Sep 2014, 14:39, edited 2 times in total.
Re: Forge Beta: 09-12-2014 ver 1.5.26
by Fizanko » 18 Sep 2014, 14:25
This the bug report thread dedicaced to bugs encountered when using snapshot builds of Forge :ZappaZ wrote:I'm not sure if theres another place I should post these reports
or if theres something about the Commander mode I'm missing..
www.slightlymagic.net/forum/viewtopic.php?f=52&t=6333
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Forge Beta: 09-12-2014 ver 1.5.26
by awebgsu » 18 Sep 2014, 23:59
Found a bug in the newest snapshot (27537). Hovering over Courser of Kruphix does not reveal the top card.
Re: Forge Beta: 09-12-2014 ver 1.5.26
by elcnesh » 19 Sep 2014, 07:49
It's not a bug, it's a feature!awebgsu wrote:Found a bug in the newest snapshot (27537). Hovering over Courser of Kruphix does not reveal the top card.
...
Seriously though, you now can see the top card by clicking on the library icon

- elcnesh
- Posts: 290
- Joined: 16 May 2014, 15:11
- Location: Netherlands
- Has thanked: 34 times
- Been thanked: 92 times
Who is online
Users browsing this forum: No registered users and 21 guests