Forge Beta: 03-28-2014 ver 1.5.15
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Forge Beta: 03-28-2014 ver 1.5.15
by gos » 10 Apr 2014, 10:30
Description: After Infectious Rage killed the last creature on the battlefield, it couldn't find a target.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.15-r25277
Operating System: Windows 7 6.1 amd64
Java Version: 1.7.0_07 Oracle Corporation
java.lang.NullPointerException
at forge.game.Game.getCardState(Game.java:387)
at forge.game.ability.AbilityUtils.getDefinedCards(AbilityUtils.java:215)
at forge.game.ability.effects.ChangeZoneEffect.changeKnownOriginResolve(ChangeZoneEffect.java:453)
at forge.game.ability.effects.ChangeZoneEffect.resolve(ChangeZoneEffect.java:349)
at forge.game.spellability.AbilitySub.resolve(AbilitySub.java:116)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1195)
at forge.game.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1188)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1202)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1177)
at forge.gui.player.HumanPlaySpellAbility.playAbility(HumanPlaySpellAbility.java:116)
at forge.gui.player.HumanPlay.playSpellAbilityNoStack(HumanPlay.java:198)
at forge.gui.player.PlayerControllerHuman.playSpellAbilityNoStack(PlayerControllerHuman.java:166)
at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:376)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1195)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1177)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:536)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1001)
at forge.game.GameAction.startGame(GameAction.java:1524)
at forge.game.Match.startGame(Match.java:80)
at forge.control.FControl$4.run(FControl.java:437)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- gos
- Posts: 4369
- Joined: 03 Mar 2011, 15:21
- Location: Reykjavík, Iceland
- Has thanked: 231 times
- Been thanked: 232 times
Re: Forge Beta: 03-28-2014 ver 1.5.15
by Xyx » 10 Apr 2014, 13:54
I made changes to a deck's contents, renamed it to a deck that already existed, then saved it. Forge asked "There is already a deck named 'blah'. Overwrite? [Yes][No]" I clicked Yes. However, when I reopened the deck, turns out it didn't get saved. Tried it again a few times; it's reproducible.
Re: Forge Beta: 03-28-2014 ver 1.5.15
by Marek14 » 10 Apr 2014, 15:59
AI still casts spells from hand through Lion's Eye Diamond.
Re: Forge Beta: 03-28-2014 ver 1.5.15
by friarsol » 10 Apr 2014, 16:06
Lion's Eye Diamond is already marked with RemAIDeck isn't it?Marek14 wrote:AI still casts spells from hand through Lion's Eye Diamond.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Beta: 03-28-2014 ver 1.5.15
by RichardHawk » 10 Apr 2014, 23:28
Opponent has Sphere of Resistance and Thorn of Amethyst on the board. I cast Gather Courage, now costing 2G. However the original cost is the only part I can compensate for with tapping creatures unless I'm missing something.
- RichardHawk
- Posts: 31
- Joined: 24 Mar 2014, 04:12
- Has thanked: 2 times
- Been thanked: 0 time
Re: Forge Beta: 03-28-2014 ver 1.5.15
by Marek14 » 11 Apr 2014, 05:05
I don't think that's an issue. The issue is that this is wrong according to rules: Lion's Eye Diamond's ability is playable only as instant, so it should be impossible to announce a spell from hand, moving it to stack, and then use Lion's Eye Diamond to get mana for it.friarsol wrote:Lion's Eye Diamond is already marked with RemAIDeck isn't it?Marek14 wrote:AI still casts spells from hand through Lion's Eye Diamond.
Re: Forge Beta: 03-28-2014 ver 1.5.15
by Marek14 » 11 Apr 2014, 05:06
You are missing something. This was always possible, when convoke was a cost reduction ability, and even now. Convoke means you can tap creatures instead of paying mana for the spell, and "for the spell" means for any part of the cost.RichardHawk wrote:Opponent has Sphere of Resistance and Thorn of Amethyst on the board. I cast Gather Courage, now costing 2G. However the original cost is the only part I can compensate for with tapping creatures unless I'm missing something.
Re: Forge Beta: 03-28-2014 ver 1.5.15
by Snowstorm » 11 Apr 2014, 07:11
Description: I targeted Cranial Plating with the card Beast Within and the game crashed. It does not happen every time I do it but it happens. Also, this bug was in the previous version of forge as well.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.15-r25277
Operating System: Windows 8 6.2 amd64
Java Version: 1.7.0_07 Oracle Corporation
java.lang.NullPointerException
at forge.view.arcane.PlayArea$CardStack.add(PlayArea.java:719)
at forge.view.arcane.PlayArea$CardStack.add(PlayArea.java:720)
at forge.view.arcane.PlayArea$CardStackRow.addAll(PlayArea.java:674)
at forge.view.arcane.PlayArea$CardStackRow.<init>(PlayArea.java:665)
at forge.view.arcane.PlayArea.doLayout(PlayArea.java:203)
at forge.view.arcane.PlayArea.recalculateCardPanels(PlayArea.java:566)
at forge.view.arcane.PlayArea.setupPlayZone(PlayArea.java:523)
at forge.gui.match.CMatchUI.updateZones(CMatchUI.java:343)
at forge.control.FControlGameEventHandler$8.run(FControlGameEventHandler.java:189)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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)
Re: Forge Beta: 03-28-2014 ver 1.5.15
by RichardHawk » 11 Apr 2014, 08:35
Okay, so how do I do it? When it asks me for convoke costs I can only pay G after which the program stops me from tapping more creatures, and then it asks me for 2 more mana and I can't tap creatures to pay for it.Marek14 wrote:You are missing something. This was always possible, when convoke was a cost reduction ability, and even now. Convoke means you can tap creatures instead of paying mana for the spell, and "for the spell" means for any part of the cost.RichardHawk wrote:Opponent has Sphere of Resistance and Thorn of Amethyst on the board. I cast Gather Courage, now costing 2G. However the original cost is the only part I can compensate for with tapping creatures unless I'm missing something.
- RichardHawk
- Posts: 31
- Joined: 24 Mar 2014, 04:12
- Has thanked: 2 times
- Been thanked: 0 time
Re: Forge Beta: 03-28-2014 ver 1.5.15
by Fizanko » 11 Apr 2014, 09:59
Attack phase of the King Kong (hard) AI, just after he tapped all his attackers, error message :


- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.15-r25277
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at com.google.common.collect.AbstractMapBasedMultimap$Itr.next(AbstractMapBasedMultimap.java:1150)
at forge.game.combat.Combat.getBandOfAttacker(Combat.java:170)
at forge.game.combat.Combat.getBlockers(Combat.java:204)
at forge.gui.match.TargetingOverlay.addArcsForCard(TargetingOverlay.java:234)
at forge.gui.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:138)
at forge.gui.match.TargetingOverlay.access$100(TargetingOverlay.java:47)
at forge.gui.match.TargetingOverlay$OverlayPanel.paintComponent(TargetingOverlay.java:353)
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.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$700(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$200(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)
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: 03-28-2014 ver 1.5.15
by Xyx » 11 Apr 2014, 11:11
AI animated Raging Ravine to block my only attacker: Invisible Stalker.
Re: Forge Beta: 03-28-2014 ver 1.5.15
by bduddy » 13 Apr 2014, 04:58
AI casted Fall of the Hammer and did 2 damage to 2 of my creatures, no damage to its creature.
- bduddy
- Posts: 9
- Joined: 01 Mar 2014, 19:51
- Has thanked: 0 time
- Been thanked: 0 time
Re: Forge Beta: 03-28-2014 ver 1.5.15
by Fizanko » 13 Apr 2014, 09:38
Just played my 2 attackers
Gore-House Chainwalker (that had been kicked when deployed so lost its ability to block in exchange of +1/+1 )
Kragma Butcher ( with Fencer's Magemark on it )
And got that error

Description: [describe what you were doing when the crash occurred]
Gore-House Chainwalker (that had been kicked when deployed so lost its ability to block in exchange of +1/+1 )
Kragma Butcher ( with Fencer's Magemark on it )
And got that error

Description: [describe what you were doing when the crash occurred]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.15-r25277
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
java.lang.NullPointerException
at forge.game.card.Card.getHiddenExtrinsicKeyword(Card.java:4562)
at forge.game.card.Card.getKeyword(Card.java:4267)
at forge.game.card.Card.getAmountOfKeyword(Card.java:5129)
at forge.game.card.Card.getNetDefense(Card.java:4018)
at forge.gui.match.controllers.CCombat.combatantToString(CCombat.java:139)
at forge.gui.match.controllers.CCombat.getCombatDescription(CCombat.java:106)
at forge.gui.match.controllers.CCombat.update(CCombat.java:49)
at forge.gui.match.CMatchUI.showCombat(CMatchUI.java:300)
at forge.control.FControlGameEventHandler$2.run(FControlGameEventHandler.java:80)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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)
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: 03-28-2014 ver 1.5.15
by Fizanko » 13 Apr 2014, 14:18
Fizanko wrote:Just got the same bug i experienced here happening to me again :
viewtopic.php?f=26&t=14155&start=30#p149511
But with a different AI enemy (sorry i didn't checked its name), same conditions, i win the 1st round and at the panel where it shows i lead 1 : 0 and my reward from winning the ante is shown , when i click to go to 2nd round, i'm thrown back to the main menu with the error :And i have to quit Forge as by then the duel panel is empty, no enemy and clicking will rethrow that error again
- UncheckedExecutionException | Open
- Code: Select all
Forge Version: 1.5.15-r25277
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
com.google.common.util.concurrent.UncheckedExecutionException: java.awt.color.CMMException: Invalid image format
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
at forge.ImageCache.getImage(ImageCache.java:221)
at forge.ImageCache.getOriginalImage(ImageCache.java:142)
at forge.ImageCache.scaleImage(ImageCache.java:182)
at forge.ImageCache.getIcon(ImageCache.java:110)
at forge.gui.home.quest.PnlEvent.<init>(PnlEvent.java:47)
at forge.gui.home.quest.CSubmenuDuels.update(CSubmenuDuels.java:120)
at forge.gui.home.CHomeUI.itemClick(CHomeUI.java:53)
at forge.gui.home.CHomeUI.selectPrevious(CHomeUI.java:135)
at forge.gui.home.CHomeUI.initialize(CHomeUI.java:81)
at forge.control.FControl.setCurrentScreen(FControl.java:300)
at forge.view.FNavigationBar.closeTab(FNavigationBar.java:157)
at forge.view.FNavigationBar.closeTab(FNavigationBar.java:145)
at forge.control.FControl.endCurrentGame(FControl.java:445)
at forge.gui.match.ControlWinLose.actionOnContinue(ControlWinLose.java:61)
at forge.gui.match.ControlWinLose$1.actionPerformed(ControlWinLose.java:36)
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.AWTEventMulticaster.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$200(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.security.ProtectionDomain$1.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$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)
Caused by: java.awt.color.CMMException: Invalid image format
at sun.java2d.cmm.kcms.CMM.checkStatus(Unknown Source)
at sun.java2d.cmm.kcms.CMM.createTransform(Unknown Source)
at java.awt.image.ColorConvertOp.filter(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.acceptPixels(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage(Native Method)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at forge.ImageLoader._findFile(ImageLoader.java:85)
at forge.ImageLoader.load(ImageLoader.java:49)
at forge.ImageLoader.load(ImageLoader.java:13)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
... 55 more
I got the error again, this time against Demon 3 (Hard).friarsol wrote:Fizanko, it sounds like that error is you having a corrupted image on your computer. Hard to really say much more than that.
After relaunching, in the Preconstructed duel i loaded the Demon 3 deck , went to view that deck in the editor and all the cards images were appearing, nothing is corrupted and no error message "Invalid image format" appears.
And of course in my own deck all the cards image are appearing correctly, and after playing for so long with my deck without the error, it can't come from my deck.
So i don't know why Forge tells " Invalid image format " in the error message, but my images are all coming from Forge content downloader + the LQ card pack you can download.
I only added card images for BnB and C13 from the Picture board here on slightlymagic, but i checked them all and all of them are correctly named (some weren't by default from what i downloaded but were not leading into error message, the image was just replaced by the generic blank yellow-ish picture) and are in correct JPG format
So i don't know what to say there, out of that it is happening
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: 03-28-2014 ver 1.5.15
by gos » 13 Apr 2014, 14:18
Transform vs Cipher:
When I encode a cipher spell (e.g. Hands of Binding) onto a double-faced creature that is currently face-up (e.g. Afflicted Deserter), the creature loses the encoded spell when it turns face down. I think this is incorrect.
When I encode a cipher spell (e.g. Hands of Binding) onto a double-faced creature that is currently face-up (e.g. Afflicted Deserter), the creature loses the encoded spell when it turns face down. I think this is incorrect.
711.7. When a double-faced permanent transforms, it doesn't become a new object. Any effects that applied to that permanent will continue to apply to it after it transforms.
Example: An effect gives Village Ironsmith (the front face of a double-faced card) +2/+2 until end of turn and then Village Ironsmith transforms into Ironfang. Ironfang will continue to get +2/+2 until end of turn.
- gos
- Posts: 4369
- Joined: 03 Mar 2011, 15:21
- Location: Reykjavík, Iceland
- Has thanked: 231 times
- Been thanked: 232 times
Who is online
Users browsing this forum: No registered users and 70 guests