Page 6 of 11

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 17 Sep 2014, 10:15
by lujo
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.
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).

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.

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 17 Sep 2014, 14:27
by lujo
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.

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 17 Sep 2014, 15:01
by bevryde
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

PostPosted: 17 Sep 2014, 15:43
by Agetian
excessum wrote:
drdev wrote:Pretty sure that issue was fixed by r27386.
I'm pretty sure this problem is still around... viewtopic.php?f=52&t=6333&start=3165#p161207. Here is another example with r27480
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.

- Agetian

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 17 Sep 2014, 15:48
by darkdolphin
Just wanna say thanks for fixing the card drawing bug in "human vs human" mode :D

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 17 Sep 2014, 22:32
by lujo
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)

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 18 Sep 2014, 00:49
by friarsol
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)
Thanks. Looks like the script was wrong. Granting +2/+2 instead of +2/+1. Fixed in the latest.

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 18 Sep 2014, 01:04
by Goose
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

PostPosted: 18 Sep 2014, 01:15
by PalladiaMors
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

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 18 Sep 2014, 01:33
by friarsol
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?
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.

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 18 Sep 2014, 04:53
by Marek14
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.

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 18 Sep 2014, 14:12
by ZappaZ
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.

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)
Description: AI played Denizen of the Deep and removed all creatures, then this error.

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)
Description: Playing the following deck against generated deck AI and AI is declaring attackers.
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)
Description: Same deck as above, new AI deck. I was pressing cancel because I didn't have white mana to pay for attackin creatures that the AIs Norn's Annex demanded.

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)
imgur /HBs7Ymg <- Screenshot of last error.

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.

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 18 Sep 2014, 14:25
by Fizanko
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..
This the bug report thread dedicaced to bugs encountered when using snapshot builds of Forge :
www.slightlymagic.net/forum/viewtopic.php?f=52&t=6333

Re: Forge Beta: 09-12-2014 ver 1.5.26

PostPosted: 18 Sep 2014, 23:59
by awebgsu
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

PostPosted: 19 Sep 2014, 07:49
by elcnesh
awebgsu wrote:Found a bug in the newest snapshot (27537). Hovering over Courser of Kruphix does not reveal the top card.
It's not a bug, it's a feature!

...

Seriously though, you now can see the top card by clicking on the library icon ;)