It is currently 16 Apr 2024, 19:00
   
Text Size

Forge Beta Release: 01-29-2017 ver. 1.5.59

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Agetian » 29 Jan 2017, 19:59

Forge Beta: 01-29-2017 ver 1.5.59

Download:
http://www.cardforge.link/releases/forg ... 59.tar.bz2


16451 cards in total.

-------------
Release Notes
-------------

- Aether Revolt -
This release features all Aether Revolt cards that you can play with in all game modes. There are still some remaining caveats and issues that are hopefully going to be addressed soon. Please report any issues you encounter with the new cards.

- Commander 2016 -
This release features most Commander 2016 cards scripted and ready to play. The few remaining cards that are not currently supported may be scripted in the upcoming versions of Forge.

- User interface updates and changes -
Some notable modifications were made to the Forge UI for desktop computers. First of all, many pop-up prompts have been replaced with prompt window queries - for example, Scry 1 now shows the request to put the card on the top or bottom of the library in the prompt window instead of a pop-up dialog window, and allows to view the card in question by moving the mouse over the prompt window, which is more convenient. Second of all, in both desktop and mobile Forge, there is now an option in Forge Preferences called "Preselect Last Order of Abilities" that preselects the last known order of simultaneous abilities, thus making it possible to just use "Space" once to confirm the previous order instead of having to press Space for each ability or clicking the ">>" button to add the previous order once more. This option is currently disabled by default to avoid being confusing to users who are used to doing it the way it used to be before. Also, there is now an option to view detailed spell ability descriptions in the prompt window during mana payment and targeting, which is enabled by default but can be enabled/disabled in Forge preferences ("Spell Description in Payment Prompt" under the "Gameplay" preference group).

- Targeting Overlay Optional Optimization -
Throttling-based targeting overlay optimization aimed at eliminating continuous CPU use has been made optional (but enabled by default). Most users running modern hardware will want this option enabled because it will significantly reduce CPU use when playing Forge, especially when playing with the targeting overlay always on. However, some users running older hardware at slower CPU clock speed may experience choppiness (for example, when dragging card panels in hand), in which case we advise you to try disabling the option "Enabled Targeting Overlay Optimization" in Forge preferences under "Graphic Options".

- AI updates -
Artificial intelligence received several improvements and fixes. The AI should now be able to use mana ritual cards (Dark Ritual and similar cards), sacrifice-and-upgrade cards (Birthing Pod, Eldritch Evolution, Natural Order). AI for some other card groups has been improved. The AI should no longer animate manlands with other manlands that were animated during the same turn, it should not instantly sac Bomat Courier, no longer kill itself by activating Smallpox and Pox at 1 life. The AI should now be able to use Spellskite correctly (at least when redirecting a single targeted ability). Some other improvements and modifications were made as well, hopefully making the AI more fun to play against.

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

------------
Known Issues
------------

Images for the latest sets will be available soon.

There is a known issue with the cost reduction for cards that have color-locked X in their mana cost (e.g. Drain Life, Soul Burn). Cost reduction will not apply correctly to these cards if the amount by which the cost is reduced is greater than the amount of colorless mana in the mana cost specified on the card (e.g. 1 for Drain Life, 2 for Soul Burn). Fixing this issue likely requires rewriting the way announced color-locked X is interpreted and paid (most likely it has to be represented with colorless mana shards but still locked to the colors required by the card).

Currently Improvise is implemented as a "clone" of Convoke keyword, which does not work correctly in corner cases (for example, together with an instance of Convoke or Delve). This is planned to be addressed soon.

Replacement effects that happen when a card moves from zone to zone (e.g. ETB replacement effect of Essence of the Wild; Kalitas, Traitor of Ghet replacement effect for a dying creature) need some rework to allow all of them to work in a rule-exact way without the need for special exclusions and hacks (see ReplacementHandler.java:120).

There is a known issue that allows Qasali Ambusher to be cast from any zone for its ambush ability (requires MayPlay update to be fixed). For now, a temporary measure was set up to prevent the AI from abusing this issue, but it is up to the human player to deliberately choose not to abuse this when possible.

Several people have noticed that the cards displayed on the battlefield will fail to be displayed when the number of cards on the battlefield increases. Maximizing the human panel can help to re-display the cards.

Some time was spent turning the static ETB triggers into the proper ETB replacement effects they should be, mainly to interact correctly with each other. This work is not yet finished. As a result there is currently some inconsistencies with "Enters the battlefield with counters" (Not incredibly noticeable).

A recent contribution to the code base should fix some of the bugs that people noticed with cloning type abilities. At this time there is one remaining issue that we hope will be addressed in the near future:
Copies of cards that setup Zone Change triggers via addComesIntoPlayCommand and addLeavesPlayCommand will not function correctly.

----------------------------
Forge Archive Instructions
----------------------------

The Forge archive includes a readme.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.

(Unfortunately, until our Release Manager who owns a Mac is back, the Mac application of Forge can not be distributed. Hopefully it'll be back sooner rather than later.)
- The Mac OS application version -
We can now package Forge as a Mac OS application. You can double click the Forge.app icon to launch the forge application on your Apple computer running Mac OS. This application will automatically increase the java heap space memory for you as it launches. This version does not require the forge.command file and it does not need to start the Terminal application as part of the start up process.

The Mac OS X app version apparently requires the Mavericks OS and is not compatible with earlier OS X versions. People with earlier OS X versions should use the Windows and Linux version and launch forge on their Mac by double clicking on the included "forge.command" file.


----------------------------
Contributors to This Release
----------------------------

Agetian
DrDev
excessum
Gos
Hanmac
KrazyTheFox
Marek14
mcrawford620
Myrd
nefigah
pfps
Sloth
slyfox7777777
Sol
Swordshine
tjtillman
tojammot
torridus
Xyx
Zuchinni


(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.)


Download:
http://www.cardforge.link/releases/forg ... 59.tar.bz2
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby friarsol » 29 Jan 2017, 20:04

DistinctStats.txt | Open
Implemented (Missing) / Total = Percentage Implemented
16451 (117) / 16568 = 99.29 %

Missing (117):
AEther Searcher
Agent of Acquisitions
Animus of Predation
Arcane Savant
Archdemon of Paliano
Backdraft
Backup Plan
Balduvian Warlord
Ballot Broker
Borderland Explorer
Bosium Strip
Bronze Tablet
Butcher Orgg
Caller of the Untamed
Camouflage
Canal Dredger
Celestial Convergence
Chain of Acid
Chain of Silence
Chaos Orb
Coalition Flag
Coalition Honor Guard
Cogwork Grinder
Cogwork Librarian
Cogwork Spy
Cogwork Tracker
Cruel Entertainment
Curse of Vengeance
Custodi Peacekeeper
Custodi Soulcaller
Deal Broker
Divine Deflection
Divine Intervention
Dulcet Sirens
Emblazoned Golem
Emissary's Ploy
Equinox
Errant Minion
Ertai's Meddling
Expropriate
Fade Away
Falling Star
False Orders
Fasting
Garbage Fire
General Jarkeld
Glyph of Delusion
Glyph of Reincarnation
Goblin Artisans
Harm's Way
Hazduhr the Abbot
Hold the Perimeter
Ice Cauldron
Illusion of Choice
Illusionary Informant
Illusionary Mask
Illusionary Terrain
Impact Resonance
Imprison
Infernal Denizen
Krovikan Vampire
Lava Burst
Leovold's Operative
Liege of the Hollows
Lore Seeker
Lurking Automaton
Maelstrom Archangel Avatar
Mana Cache
Martyrdom
Meddle
Mercenaries
Nacatl War-Pride
Noble Banneret
Oracle en-Vec
Orzhov Advokist
Palace Jailer
Paliano Vanguard
Paliano, the High City
Peace Talks
Piracy
Plague of Vermin
Power Leak
Preferred Selection
Primitive Justice
Psychic Battle
Pyramids
Pyretic Hunter
Raging River
Raiding Party
Rebirth
Refraction Trap
Regicide
Rock Hydra
Season of the Witch
Shadowbane
Shahrazad
Shaman's Trance
Shining Shoal
Smuggler Captain
Sorrow's Path
Soul Echo
Sovereign's Realm
Spire Phantasm
Standard Bearer
Summoner's Bond
Tawnos's Coffin
Tempest Efreet
Timmerian Fiends
Urza's Miter
Volatile Chimera
Volrath's Shapeshifter
Whippoorwill
Whispergear Sneak
Word of Command
World at War
Worms of the Earth
Ydwen Efreet


Overall Editions | Open
Set: Implemented (Missing) / Total = Percentage Implemented
Ugin's Fate: 26 (0) / 26 = 100.0%
Guildpact: 165 (0) / 165 = 100.0%
Zendikar Expeditions: 45 (0) / 45 = 100.0%
Dark Ascension: 158 (0) / 158 = 100.0%
Journey into Nyx: 165 (0) / 165 = 100.0%
Ravnica: City of Guilds: 291 (0) / 291 = 100.0%
Eighth Edition: 342 (0) / 342 = 100.0%
Champions of Kamigawa: 291 (0) / 291 = 100.0%
Theros: 234 (0) / 234 = 100.0%
Mirrodin: 291 (0) / 291 = 100.0%
Battle for Zendikar: 254 (0) / 254 = 100.0%
Born of the Gods: 165 (0) / 165 = 100.0%
New Phyrexia: 170 (0) / 170 = 100.0%
Welcome 2016: 16 (0) / 16 = 100.0%
Dragons of Tarkir: 254 (0) / 254 = 100.0%
Aether Revolt: 194 (0) / 194 = 100.0%
Fifth Edition: 434 (0) / 434 = 100.0%
Eldritch Moon: 205 (0) / 205 = 100.0%
Time Spiral "Timeshifted": 121 (0) / 121 = 100.0%
Eventide: 180 (0) / 180 = 100.0%
Planechase Anthology: 222 (0) / 222 = 100.0%
Time Spiral: 286 (0) / 286 = 100.0%
Portal Three Kingdoms: 170 (0) / 170 = 100.0%
Seventh Edition: 335 (0) / 335 = 100.0%
Scourge: 143 (0) / 143 = 100.0%
Tenth Edition: 368 (0) / 368 = 100.0%
Return to Ravnica: 254 (0) / 254 = 100.0%
Magic 2015: 269 (0) / 269 = 100.0%
Darksteel: 165 (0) / 165 = 100.0%
Planechase 2012 Edition: 177 (0) / 177 = 100.0%
Morningtide: 150 (0) / 150 = 100.0%
Masterpiece Series: 54 (0) / 54 = 100.0%
Lorwyn: 286 (0) / 286 = 100.0%
Commander's Arsenal: 18 (0) / 18 = 100.0%
Modern Masters 2015: 249 (0) / 249 = 100.0%
Scars of Mirrodin: 234 (0) / 234 = 100.0%
Commander: 303 (0) / 303 = 100.0%
Innistrad: 254 (0) / 254 = 100.0%
Odyssey: 335 (0) / 335 = 100.0%
Dragon's Maze: 156 (0) / 156 = 100.0%
Gatecrash: 249 (0) / 249 = 100.0%
Fate Reforged: 180 (0) / 180 = 100.0%
Ninth Edition: 344 (0) / 344 = 100.0%
Zendikar: 234 (0) / 234 = 100.0%
Fifth Dawn: 165 (0) / 165 = 100.0%
Planeshift: 143 (0) / 143 = 100.0%
Starter 2000: 52 (0) / 52 = 100.0%
Mercadian Masques: 335 (0) / 335 = 100.0%
Shards of Alara: 234 (0) / 234 = 100.0%
Magic 2011: 234 (0) / 234 = 100.0%
Magic 2013: 234 (0) / 234 = 100.0%
Magic 2012: 234 (0) / 234 = 100.0%
Planar Chaos: 165 (0) / 165 = 100.0%
Magic 2014: 234 (0) / 234 = 100.0%
Magic Origins: 273 (0) / 273 = 100.0%
Modern Masters: 229 (0) / 229 = 100.0%
Urza's Saga: 335 (0) / 335 = 100.0%
Torment: 143 (0) / 143 = 100.0%
Commander 2013: 341 (0) / 341 = 100.0%
Commander 2015: 327 (0) / 327 = 100.0%
Shadows over Innistrad: 287 (0) / 287 = 100.0%
Saviors of Kamigawa: 165 (0) / 165 = 100.0%
Portal: 200 (0) / 200 = 100.0%
Classic Sixth Edition: 335 (0) / 335 = 100.0%
Dissension: 180 (0) / 180 = 100.0%
Promo set for Gatherer: 27 (0) / 27 = 100.0%
Mirrodin Besieged: 150 (0) / 150 = 100.0%
Kaladesh: 264 (0) / 264 = 100.0%
Planechase: 191 (0) / 191 = 100.0%
Khans of Tarkir: 254 (0) / 254 = 100.0%
Urza's Legacy: 143 (0) / 143 = 100.0%
Urza's Destiny: 143 (0) / 143 = 100.0%
Legions: 145 (0) / 145 = 100.0%
Oath of the Gatewatch: 183 (0) / 183 = 100.0%
Alara Reborn: 145 (0) / 145 = 100.0%
Archenemy: 191 (0) / 191 = 100.0%
Conflux: 145 (0) / 145 = 100.0%
Invasion: 334 (1) / 335 = 99.7%
Shadowmoor: 285 (1) / 286 = 99.65%
Eternal Masters: 248 (1) / 249 = 99.6%
Avacyn Restored: 233 (1) / 234 = 99.57%
Magic 2010: 233 (1) / 234 = 99.57%
Rise of the Eldrazi: 232 (1) / 233 = 99.57%
Future Sight: 179 (1) / 180 = 99.44%
Tempest: 333 (2) / 335 = 99.4%
Visions: 166 (1) / 167 = 99.4%
Betrayers of Kamigawa: 164 (1) / 165 = 99.39%
Commander 2014: 320 (2) / 322 = 99.38%
Starter 1999: 157 (1) / 158 = 99.37%
Coldsnap: 154 (1) / 155 = 99.35%
Portal Second Age: 154 (1) / 155 = 99.35%
Revised Edition: 294 (2) / 296 = 99.32%
Worldwake: 144 (1) / 145 = 99.31%
Exodus: 142 (1) / 143 = 99.3%
Judgment: 142 (1) / 143 = 99.3%
Stronghold: 142 (1) / 143 = 99.3%
Prophecy: 142 (1) / 143 = 99.3%
Nemesis: 142 (1) / 143 = 99.3%
Chronicles: 115 (1) / 116 = 99.14%
Commander 2016: 338 (3) / 341 = 99.12%
Vanguard: 105 (1) / 106 = 99.06%
Fallen Empires: 101 (1) / 102 = 99.02%
Fourth Edition: 364 (4) / 368 = 98.91%
Mirage: 331 (4) / 335 = 98.81%
Onslaught: 331 (4) / 335 = 98.81%
Weatherlight: 165 (2) / 167 = 98.8%
Alliances: 142 (2) / 144 = 98.61%
Homelands: 113 (2) / 115 = 98.26%
Ice Age: 365 (8) / 373 = 97.86%
Limited Edition Beta: 284 (8) / 292 = 97.26%
Unlimited Edition: 284 (8) / 292 = 97.26%
Limited Edition Alpha: 282 (8) / 290 = 97.24%
Apocalypse: 139 (4) / 143 = 97.2%
Legends: 301 (9) / 310 = 97.1%
Arabian Nights: 75 (3) / 78 = 96.15%
The Dark: 114 (5) / 119 = 95.8%
Antiquities: 81 (4) / 85 = 95.29%
Conspiracy: 197 (13) / 210 = 93.81%
Conspiracy: Take the Crown: 196 (25) / 221 = 88.69%

Total over all sets: 25025 (143) / 25168


FormatStandard.txt | Open
BFZ OGW SOI EMN W16 KLD AER
Implemented (Missing) / Total = Percentage Implemented
1385 (0) / 1385 = 100.00 %

Missing (0):


FormatModern.txt | Open
8ED MRD DST 5DN CHK BOK SOK 9ED RAV GPT DIS CSP TSP TSB PLC FUT 10E LRW EVE SHM MOR ALA CFX ARB M10 ZEN WWK ROE M11 SOM MBS NPH M12 ISD DKA AVR M13 RTR GTC DGM M14 THS BNG JOU M15 KTK FRF DTK MM2 ORI BFZ OGW SOI EMN KLD AER
Implemented (Missing) / Total = Percentage Implemented
10518 (8) / 10526 = 99.92 %

Missing (8):
Balduvian Warlord
Divine Deflection
Harm's Way
Nacatl War-Pride
Plague of Vermin
Refraction Trap
Shining Shoal
World at War
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Marek14 » 29 Jan 2017, 22:40

Hm, could we get the explicit list of new cards, please?
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby stormcat » 29 Jan 2017, 23:27

Is it impossible to implement the conspiracy cards to use in constructed ignoring the draft ability?
stormcat
 
Posts: 361
Joined: 17 Jun 2015, 05:32
Has thanked: 0 time
Been thanked: 6 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby friarsol » 30 Jan 2017, 00:04

stormcat wrote:Is it impossible to implement the conspiracy cards to use in constructed ignoring the draft ability?
It's not impossible, but that's something that happened a lot in the early days of Forge that caused lots of headaches, so we as a dev team stopped doing. I'd imagine many of the cards you would want in this way would be pretty straightforward to script and have a custom not fully functioning version of.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby friarsol » 30 Jan 2017, 00:14

Marek14 wrote:Hm, could we get the explicit list of new cards, please?
I don't have my last distinct cards list anymore, but looking at the list I think its:

Dark Inimations
Gonti's Machinations
Greenbelt Rampager
Hope of Ghirapur
Scrap Trawler
Tymna the Weaver
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Marek14 » 30 Jan 2017, 08:52

Hm, that's six, but the difference between 16451 and 16443 is 8... Not sure where the last 2 come from.
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Agetian » 30 Jan 2017, 09:02

Marek14 wrote:Hm, that's six, but the difference between 16451 and 16443 is 8... Not sure where the last 2 come from.
A couple C16 cards were also implemented in this period, but sadly I forgot what exactly they were :/

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby gos » 30 Jan 2017, 16:01

I exiled two creatures with Divergent Transformations, one owned and controlled by my opponent, the other controlled by me, but owned by the opponent.

The opponent then flipped for both of the exiled creatures and received both of the revealed creatures.
gos
 
Posts: 4369
Joined: 03 Mar 2011, 15:21
Location: Reykjavík, Iceland
Has thanked: 231 times
Been thanked: 232 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Agetian » 30 Jan 2017, 16:09

gos wrote:I exiled two creatures with Divergent Transformations, one owned and controlled by my opponent, the other controlled by me, but owned by the opponent.

The opponent then flipped for both of the exiled creatures and received both of the revealed creatures.
This has been fixed upstream. Thanks for reporting! :)

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Turbomoose » 31 Jan 2017, 18:32

Description: Orzhov Pontiff triggered upon dying, perhaps an issue with haunt? Screencap included

NullPointerException | Open
Code: Select all
Forge Version:    1.5.59-r-1
Operating System: Windows 10 10.0 amd64
Java Version:     1.8.0_121 Oracle Corporation

java.lang.NullPointerException
   at forge.card.CardDetailUtil.composeCardText(CardDetailUtil.java:303)
   at forge.gui.CardDetailPanel.setCard(CardDetailPanel.java:252)
   at forge.screens.match.controllers.CDetail.showCard(CDetail.java:61)
   at forge.screens.match.controllers.CDetailPicture.update(CDetailPicture.java:92)
   at forge.screens.match.controllers.CDetailPicture.showCard(CDetailPicture.java:48)
   at forge.screens.match.CMatchUI$2.run(CMatchUI.java:338)
   at forge.GuiDesktop.invokeInEdtNow(GuiDesktop.java:79)
   at forge.FThreads.invokeInEdtNowOrLater(FThreads.java:30)
   at forge.screens.match.CMatchUI.setCard(CMatchUI.java:336)
   at forge.screens.match.CMatchUI.setCard(CMatchUI.java:332)
   at forge.match.input.InputSelectTargets.showMessage(InputSelectTargets.java:51)
   at forge.match.input.InputBase.showMessageInitial(InputBase.java:77)
   at forge.match.input.InputProxy$1.run(InputProxy.java:73)
   at java.awt.event.InvocationEvent.dispatch(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.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)
Attachments
Capture.PNG
Turbomoose
 
Posts: 41
Joined: 21 Mar 2016, 15:58
Has thanked: 0 time
Been thanked: 0 time

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Agetian » 01 Feb 2017, 04:33

Turbomoose wrote:Description: Orzhov Pontiff triggered upon dying, perhaps an issue with haunt? Screencap included

NullPointerException | Open
Code: Select all
Forge Version:    1.5.59-r-1
Operating System: Windows 10 10.0 amd64
Java Version:     1.8.0_121 Oracle Corporation

java.lang.NullPointerException
   at forge.card.CardDetailUtil.composeCardText(CardDetailUtil.java:303)
   at forge.gui.CardDetailPanel.setCard(CardDetailPanel.java:252)
   at forge.screens.match.controllers.CDetail.showCard(CDetail.java:61)
   at forge.screens.match.controllers.CDetailPicture.update(CDetailPicture.java:92)
   at forge.screens.match.controllers.CDetailPicture.showCard(CDetailPicture.java:48)
   at forge.screens.match.CMatchUI$2.run(CMatchUI.java:338)
   at forge.GuiDesktop.invokeInEdtNow(GuiDesktop.java:79)
   at forge.FThreads.invokeInEdtNowOrLater(FThreads.java:30)
   at forge.screens.match.CMatchUI.setCard(CMatchUI.java:336)
   at forge.screens.match.CMatchUI.setCard(CMatchUI.java:332)
   at forge.match.input.InputSelectTargets.showMessage(InputSelectTargets.java:51)
   at forge.match.input.InputBase.showMessageInitial(InputBase.java:77)
   at forge.match.input.InputProxy$1.run(InputProxy.java:73)
   at java.awt.event.InvocationEvent.dispatch(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.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)
The NPE has been fixed upstream. Thanks for reporting! :)

Granted, there is some kind of an underlying issue with the card being in some kind of a strange, incomplete state at the moment it goes to graveyard and before Haunt is processed, which causes the card display code to be unable to correctly work with it at this point and thus it'll now show "Blank Zone Changer" in the prompt when asking to choose a creature to haunt. If you open your graveyard it'll show a blank, black card with no abilities instead of a creature with Haunt that went to graveyard. Once Haunt resolves it'll switch correctly to whatever card it was. Someone may want to take a look at why that is happening...

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Diena » 01 Feb 2017, 08:10

hi

I have this exception in version 1.5.58 and 1.5.59 and not before.
It happens in quest mode during a tournement at the end of an AI vs AI match. It is not every time but when it occurs even the error window stays blank with no way to get ride of. The only solution is to kill the process. I give the exception from the logs.

Code: Select all
com.google.common.eventbus.EventBus$LoggingSubscriberExceptionHandler handleException
SEVERE: Could not dispatch event: forge.control.FControlGamePlayback@64b9c7 to public void forge.control.FControlGamePlayback.receiveGameEvent(forge.game.event.GameEvent)
EDT > java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
   at java.awt.Component.getLocationOnScreen_NoTreeLock(Unknown Source)
   at java.awt.Component.getLocationOnScreen(Unknown Source)
   at forge.screens.match.TargetingOverlay.getCardEndpoints(TargetingOverlay.java:289)
   at forge.screens.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:264)
   at forge.screens.match.TargetingOverlay.access$800(TargetingOverlay.java:64)
   at forge.screens.match.TargetingOverlay$ArcAssembler.assembleAndRepaint(TargetingOverlay.java:609)
   at forge.screens.match.TargetingOverlay$ArcAssembler.doingLayout(TargetingOverlay.java:615)
   at forge.view.arcane.CardPanelContainer.doingLayout(CardPanelContainer.java:443)
   at forge.view.arcane.CardPanelContainer.doLayout(CardPanelContainer.java:436)
   at forge.view.arcane.PlayArea.doLayout(PlayArea.java:339)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validate(Unknown Source)
   at javax.swing.RepaintManager$3.run(Unknown Source)
   at javax.swing.RepaintManager$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at javax.swing.RepaintManager.validateInvalidComponents(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$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.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.WaitDispatchSupport$2.run(Unknown Source)
   at java.awt.WaitDispatchSupport$4.run(Unknown Source)
   at java.awt.WaitDispatchSupport$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.awt.WaitDispatchSupport.enter(Unknown Source)
   at java.awt.Dialog.show(Unknown Source)
   at java.awt.Component.show(Unknown Source)
   at java.awt.Component.setVisible(Unknown Source)
   at java.awt.Window.setVisible(Unknown Source)
   at java.awt.Dialog.setVisible(Unknown Source)
   at forge.error.BugReportDialog.show(BugReportDialog.java:88)
   at forge.GuiDesktop.showBugReportDialog(GuiDesktop.java:219)
   at forge.error.BugReporter.reportException(BugReporter.java:106)
   at forge.error.BugReporter.reportException(BugReporter.java:113)
   at forge.error.ExceptionHandler.uncaughtException(ExceptionHandler.java:107)
   at java.lang.ThreadGroup.uncaughtException(Unknown Source)
   at java.lang.ThreadGroup.uncaughtException(Unknown Source)
   at java.awt.EventDispatchThread.processException(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)
Diena
 
Posts: 59
Joined: 05 Nov 2011, 16:08
Has thanked: 2 times
Been thanked: 6 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby Agetian » 01 Feb 2017, 12:21

Diena wrote:hi

I have this exception in version 1.5.58 and 1.5.59 and not before.
It happens in quest mode during a tournement at the end of an AI vs AI match. It is not every time but when it occurs even the error window stays blank with no way to get ride of. The only solution is to kill the process. I give the exception from the logs.

Code: Select all
com.google.common.eventbus.EventBus$LoggingSubscriberExceptionHandler handleException
SEVERE: Could not dispatch event: forge.control.FControlGamePlayback@64b9c7 to public void forge.control.FControlGamePlayback.receiveGameEvent(forge.game.event.GameEvent)
EDT > java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
   at java.awt.Component.getLocationOnScreen_NoTreeLock(Unknown Source)
   at java.awt.Component.getLocationOnScreen(Unknown Source)
   at forge.screens.match.TargetingOverlay.getCardEndpoints(TargetingOverlay.java:289)
   at forge.screens.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:264)
   at forge.screens.match.TargetingOverlay.access$800(TargetingOverlay.java:64)
   at forge.screens.match.TargetingOverlay$ArcAssembler.assembleAndRepaint(TargetingOverlay.java:609)
   at forge.screens.match.TargetingOverlay$ArcAssembler.doingLayout(TargetingOverlay.java:615)
   at forge.view.arcane.CardPanelContainer.doingLayout(CardPanelContainer.java:443)
   at forge.view.arcane.CardPanelContainer.doLayout(CardPanelContainer.java:436)
   at forge.view.arcane.PlayArea.doLayout(PlayArea.java:339)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validateTree(Unknown Source)
   at java.awt.Container.validate(Unknown Source)
   at javax.swing.RepaintManager$3.run(Unknown Source)
   at javax.swing.RepaintManager$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at javax.swing.RepaintManager.validateInvalidComponents(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$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.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.WaitDispatchSupport$2.run(Unknown Source)
   at java.awt.WaitDispatchSupport$4.run(Unknown Source)
   at java.awt.WaitDispatchSupport$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.awt.WaitDispatchSupport.enter(Unknown Source)
   at java.awt.Dialog.show(Unknown Source)
   at java.awt.Component.show(Unknown Source)
   at java.awt.Component.setVisible(Unknown Source)
   at java.awt.Window.setVisible(Unknown Source)
   at java.awt.Dialog.setVisible(Unknown Source)
   at forge.error.BugReportDialog.show(BugReportDialog.java:88)
   at forge.GuiDesktop.showBugReportDialog(GuiDesktop.java:219)
   at forge.error.BugReporter.reportException(BugReporter.java:106)
   at forge.error.BugReporter.reportException(BugReporter.java:113)
   at forge.error.ExceptionHandler.uncaughtException(ExceptionHandler.java:107)
   at java.lang.ThreadGroup.uncaughtException(Unknown Source)
   at java.lang.ThreadGroup.uncaughtException(Unknown Source)
   at java.awt.EventDispatchThread.processException(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)
Hmm, this might be related to the targeting overlay optimization that was introduced in 1.5.58. I'll have a look and see if I can reproduce and address this. In the meantime, you can try disabling the option "Enable Targeting Overlay Optimization" in Forge preferences which should restore pre-1.5.58 behavior (which is not optimal but should not crash for you if it didn't do so before).

EDIT: This issue has been resolved upstream. However, unless you are willing to upgrade to a nightly build (r33517 or above), before the next Beta comes out you are advised to either (1) disable Targeting Overlay Optimization as stated above [provided that you want to keep watching AI vs. AI matches] or (2) set "Simulate AI vs. AI Results" to "1" in Forge Quest Preferences to skip AI vs. AI matches and simply simulate a random result for its outcome.

- Agetian
Last edited by Agetian on 01 Feb 2017, 15:26, edited 1 time in total.
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge Beta Release: 01-29-2017 ver. 1.5.59

Postby DaniUG » 01 Feb 2017, 12:48

I found a stranger bug regarding counters. (this bug is present in all versions from 59 to 60)
I cast Aether Vial and I give it counters to 4 (for example) then since I want it to stay at 4 I long press the card and click Auto-Yield and after that click "always no" I've noticed that after clicking "always no" it gives it another counter and then for all the future turns it behaves correctly and doesn't add any more counters.

Also Aether Vial it's not the only card that does it. I've checked with several other card and If there is the possibility of saying "always no" it will always behave as I mention before.
The only instance I haven't covered is saying always no straight away because I normally I need some counters, but I will check it and update this post

PS. Regading counters I have a question. Why Experience counters are not affected by spells and abilities that double them? I have a deck with Ezuri, Claw of Progress and Vorel of the Hull Clade and I can't chose Ezuri to double its counters...
Is this a bug or are experience counters somehow inmune to that kind of effects?
Even the smallest spark may set a world ablaze
User avatar
DaniUG
 
Posts: 59
Joined: 01 Jul 2015, 10:36
Has thanked: 11 times
Been thanked: 0 time

Next

Return to Forge

Who is online

Users browsing this forum: No registered users and 64 guests


Who is online

In total there are 64 users online :: 0 registered, 0 hidden and 64 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 64 guests

Login Form