Page 1 of 2

Forge Release 07/19/2021 ver 1.6.43

PostPosted: 19 Jul 2021, 04:53
by Agetian
Forge: 07/19/2021 ver 1.6.43



Image

Desktop: https://releases.cardforge.org/forge/forge-gui-desktop/1.6.43/forge-gui-desktop-1.6.43.tar.bz2



Image


Get in the discord if you aren't yet. https://discord.gg/3v9JCVr
Pre-release build for "Dungeons and Dragons: Adventures in the Forgotten Realms", please report any bugs!
Commander cards for the D&D set are still being worked on.
Custom cards can now be loaded from your user profile. Enable it your preferences.
Add support for Collector Boosters (not implemented everywhere yet)
*** Android 7 & 8 support is now deprecated. Support will be dropped in an upcoming release. ***




Image

Bug fixes
As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run.





Image

Known issues are here: https://git.cardforge.org/core-developers/forge/issues

Feel free to report your own there if you have any.




Image

The Forge archive includes a MANUAL.txt file and we ask that you spend a few minutes reading this file as it contains some information that may prove useful. We do tend to update this file at times and you should quickly read this file and look for new information for each and every new release. Thank you.

The archive format used for the Forge distribution is ".tar.bz2". There are utilities for Windows, Mac OS and the various *nix's that can be used to extract/decompress these ".tar.bz2" archives. We recommend that you extract/decompress the Forge archive into a new and unused folder.

Some people use the Windows application 7zip. This utility can be found at http://www.7-zip.org/download.html. Mac users can double click on the archive and the application Archive Utility will launch and extract the archive. Mac users do not need to download a separate utility.

Once the Forge archive has been decompressed you should then be able to launch Forge by using the included launcher. Launching Forge by double clicking on the forge jar file in the past caused a java heap space error. Forge's memory requirements have increased over time and the launchers increase the java heap space available to Forge. Currently you can launch Forge by double clicking on the forge jar file without a java heap space error but this is likely to change as we add in more sounds, icons, etc.

- The Mac OS application version -
We provide separate macOS builds of desktop and mobile (backported) Forge packaged as native Mac applications. Please check the relevant thread for details and download links.


- Online Multiplayer -
For local network play you should only need two systems running Forge. One to host and one to join and play. For remote (over the Internet) play you will need to ensure that the port used (36743 by default) is forwarded to the hosting machine.




Image


Agetian
Alumi
apantel
Austinio7116
Benjamin
CCTV-1
Churrufli
DrDev
Elwin
excessum
Flair
Gos
guytrash
Hanmac
Indigo Dragon
Jamin Collins
John
kevlahnota
klaxnek
KrazyTheFox
leriomaggio
Luke
Marek14
Marvel
mcrawford620
medusa
Meerkov
Monkey Gland Sauce
Myrd
nefigah
Northmoc
OgreBattlecruiser
pfps
Ral
Ryan1729
Seravy
Sirspud
Sloth
slyfox7777777
Snoops
Sol
squee1968
Swordshine
Suthro
Svaldan
The Cheese Stands Alone
thenobletheif
tjtillman
tojammot
torridus
twosat
Xyx
Zimtente
Zuchinni

(If you think your name should be on this list, add it with your next contribution)


(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com)
(Thanks to the XMage team for permission to use their targeting arrows.)
(Thanks to http://www.freesound.org/browse/ for providing some sound files.)

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 19 Jul 2021, 09:35
by thenaiker
Version 1.6.43

When Massacre Wurm was summoned in this match, its effect on Fickle Efreet was triggered infinite times.
https: //ibb.co/s37T7F0 (space added because I couldn't directly add the url)

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 20 Jul 2021, 12:06
by Magicus
What happened to that bot, which was posting here statistics about card implementation in each release?

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 21 Jul 2021, 03:31
by MystREmo
I was using the auto-update in the settings for 1.6.42 and it suggests an update for 1.6.43, but when I use the downloader, it keeps downloading and using 1.6.36 in the tmp folder.

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 22 Jul 2021, 20:33
by friarsol
MystREmo wrote:I was using the auto-update in the settings for 1.6.42 and it suggests an update for 1.6.43, but when I use the downloader, it keeps downloading and using 1.6.36 in the tmp folder.
You might need to manually update for 1.6.43, and then the auto-updater should work again?

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 28 Jul 2021, 15:09
by Siber1an
Hi everyone!

Many thanks for this wonderful release! You guys are rock!! =D>

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 29 Jul 2021, 04:42
by er00ic
I'm not sure if this is the best place for this, but I ran into an issue today when testing a deck idea. The game crashed against the AI during a game and whenever I try to start a new game I get an error message (I've placed it under the spoiler).

It happens with a single AI or multiple AI and with different decks (I tried removing the newest deck I was making, but it didn't resolve th issue). I originally ran into this error with version 1.6.42, but it also happened with 1.6.43 after I installed the latest version. I restored default settings and ran into the same problem. I also uninstalled and reinstalled Java, but the error persists. Any help would be appreciated.

| Open
java.lang.NullPointerException
at forge.screens.match.views.VCombat.updateCombat(VCombat.java:110)
at forge.screens.match.controllers.CCombat.update(CCombat.java:55)
at forge.screens.match.CMatchUI.initialize(CMatchUI.java:666)
at forge.control.FControl.setCurrentScreen(FControl.java:331)
at forge.control.FControl.setCurrentScreen(FControl.java:294)
at forge.screens.match.CMatchUI.openView(CMatchUI.java:1067)
at forge.gamemodes.match.HostedMatch.startGame(HostedMatch.java:220)
at forge.gamemodes.match.HostedMatch.startMatch(HostedMatch.java:136)
at forge.gamemodes.match.HostedMatch.startMatch(HostedMatch.java:98)
at forge.gamemodes.match.GameLobby$1.run(GameLobby.java:543)
at forge.screens.home.VLobby$2.actionPerformed(VLobby.java:215)
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)

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 29 Jul 2021, 20:01
by epsilon82
Great work everyone as always!

The only issue I've had so far is that the dungeon card images aren't showing up in the command zone. Interestingly, it was working using some of the pre-release snapshots but at some point it seems to have changed. Does anyone know exactly where and what filenames the images should be? I previously had copies in the tokens folder and then the AFR cards folder with the .full name. The editions.txt file shows "S Dungeon of the Mad Mage" and so on, but it's not clear from that if the filename should include the S or if it should be separated with underscores like most tokens or what.

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 30 Jul 2021, 03:27
by friarsol
er00ic wrote:I'm not sure if this is the best place for this, but I ran into an issue today when testing a deck idea. The game crashed against the AI during a game and whenever I try to start a new game I get an error message (I've placed it under the spoiler).

It happens with a single AI or multiple AI and with different decks (I tried removing the newest deck I was making, but it didn't resolve th issue). I originally ran into this error with version 1.6.42, but it also happened with 1.6.43 after I installed the latest version. I restored default settings and ran into the same problem. I also uninstalled and reinstalled Java, but the error persists. Any help would be appreciated.

| Open
java.lang.NullPointerException
at forge.screens.match.views.VCombat.updateCombat(VCombat.java:110)
at forge.screens.match.controllers.CCombat.update(CCombat.java:55)
at forge.screens.match.CMatchUI.initialize(CMatchUI.java:666)
at forge.control.FControl.setCurrentScreen(FControl.java:331)
at forge.control.FControl.setCurrentScreen(FControl.java:294)
at forge.screens.match.CMatchUI.openView(CMatchUI.java:1067)
at forge.gamemodes.match.HostedMatch.startGame(HostedMatch.java:220)
at forge.gamemodes.match.HostedMatch.startMatch(HostedMatch.java:136)
at forge.gamemodes.match.HostedMatch.startMatch(HostedMatch.java:98)
at forge.gamemodes.match.GameLobby$1.run(GameLobby.java:543)
at forge.screens.home.VLobby$2.actionPerformed(VLobby.java:215)
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)
Preferences -> Troubleshooting -> Reset Match Layout

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 30 Jul 2021, 04:17
by Fregnor
I don't think The Deck of Many Things is working properly. I finally managed to roll a 20 with no subtraction, and I put an opponent's creature from his graveyard onto the battlefield. When it died, the opponent did not lose the game, and I did not win, following the special win condition set forth on that card.

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 30 Jul 2021, 19:33
by Djebb
I killed one of my opp in a 4-players commander game, it triggered a NPE :
Code: Select all
java.lang.NullPointerException
   at forge.game.Game.onPlayerLost(Game.java:808)
   at forge.game.GameAction.checkGameOverCondition(GameAction.java:1535)
   at forge.game.GameAction.checkStateEffects(GameAction.java:1178)
   at forge.game.phase.PhaseHandler.checkStateBasedEffects(PhaseHandler.java:1149)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1034)
   at forge.game.GameAction.startGame(GameAction.java:1909)
   at forge.game.Match.startGame(Match.java:102)
   at forge.gamemodes.match.HostedMatch$2.run(HostedMatch.java:251)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
I killed this opponent using Tezzeret, Master of the Bridge's +2

EDIT :

I clicked the "Concede" button and the same Exception has been thrown but with a different stack :
Code: Select all
java.lang.NullPointerException
   at forge.game.Game.onPlayerLost(Game.java:808)
   at forge.game.GameAction.checkGameOverCondition(GameAction.java:1535)
   at forge.player.PlayerControllerHuman.concede(PlayerControllerHuman.java:3196)
   at forge.gamemodes.match.AbstractGuiGame.concede(AbstractGuiGame.java:316)
   at forge.screens.match.VMatchUI.onClosing(VMatchUI.java:178)
   at forge.gui.framework.FScreen.onClosing(FScreen.java:254)
   at forge.view.FNavigationBar.closeTab(FNavigationBar.java:170)
   at forge.view.FNavigationBar.access$1200(FNavigationBar.java:44)
   at forge.view.FNavigationBar$NavigationTab$CloseButton$1.mouseReleased(FNavigationBar.java:514)
   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$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)

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 30 Jul 2021, 20:26
by Symphonic
I've been playing some Modern Horizons 2 drafts in Quest Mode. From time to time the games crash (game being stuck) in the mainphase when specific AI opponents play their decks.
I've added a screenshot of the last time with visible log, field and hand. The guy on the bottom in the screenshot(Zestia) in most games tends to crash the game with his draft deck. I'll add further screenshots when it happens again so that it can be narrowed down.
Edit: Seems it occurs when the AI tries to play Specimen Collector, at least he had it in his hand every time before the crash and the mana to play him.
crash 1:
| Open
bug.jpg

crash 2:
| Open
bug2.JPG

crash 3:
| Open
bug3.JPG

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 30 Jul 2021, 21:43
by Fregnor
epsilon82 wrote:Great work everyone as always!

The only issue I've had so far is that the dungeon card images aren't showing up in the command zone. Interestingly, it was working using some of the pre-release snapshots but at some point it seems to have changed. Does anyone know exactly where and what filenames the images should be? I previously had copies in the tokens folder and then the AFR cards folder with the .full name. The editions.txt file shows "S Dungeon of the Mad Mage" and so on, but it's not clear from that if the filename should include the S or if it should be separated with underscores like most tokens or what.
This issue has been fixed in or before Snapshot 1.6.44.210730. You can download the snapshot here: https://downloads.cardforge.org/dailysnapshots/

The three dungeon images are named:

Dungeon of the Mad Mage.full.jpg
Lost Mine of Phandelver.full.jpg
Tomb of Annihilation.full.jpg

They are installed in:

AppData\Local\Forge\Cache\pics\cards\AFR

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 31 Jul 2021, 00:35
by Akei
Hello, thanks for the update!

I'd like to report that [Thieves' Tool]'s equip cost is programmed 3 insted of 2 (printed on card)

Re: Forge Release 07/19/2021 ver 1.6.43

PostPosted: 02 Aug 2021, 15:29
by Symphonic
In two different games, the game got stuck when the opponent got to enter the second room of the dungeon "Tomb of Annihilation".
Don't have any screenshots or logs available, but it happened in 1.6.43 as well as in the current daily snapshot and after the opponent had already completed the Lost Mine of Phandelver.