Forge Beta: 01-18-2013 ver 1.3.5
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Forge Beta: 01-18-2013 ver 1.3.5
by Chris H. » 18 Jan 2013, 16:24
Forge Beta: 01-18-2013 ver 1.3.5
(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com)
(Thanks to the MAGE team for permission to use their targeting arrows.)
(Thanks to http://www.freesound.org/browse/ for providing some sound files.)
11782 cards in total.
The "Sanctioned Format: Constructed" view should now be compatible with displays that are only 600 pixels tall. The deck list at 600 pixels tall should now display three lines of text rather than less than a single line of text.
The deck conformance/legality is now a user-togglable preference and is enabled by default. You no longer need to turn on dev mode to play an illegal deck.
Work on the quest worlds continue. Information on this new game format can be found in this topic:
http://www.slightlymagic.net/forum/viewtopic.php?f=26&t=9258
--
A second Quest World, Jamuraa, has been added to Forge. When playing Quest mode, it is now possible to 'Travel' between the regular Quest environment and the two Worlds, Shandalar and Jamuraa, both of which include special formats, opponents and challenges. Or you can start a new Quest in any of them.
Like Shandalar, Jamuraa is a fantasy world. Its peaceful existence has recently been wrecked by a planar conjunction that shattered the barriers between Jamuraa and the infernal planes known as Jahim, Saqar, and Jahannam. The demon planeswalkers who rule those planes, and their hellish sister, Lilith, are now extending their influence over Jamuraa and gradually destroying the whole continent. Your task is to fight their minions and ultimately challenge the four demons - but beware, their destructive might is unfathomable!
From a technical perspective, the following sets are available to the player in Jamuraa:
5th Edition, Arabian Nights, Mirage, Visions, Weatherlight.
Jamuraa contains:
- 81 opponent decks, broken down as follows: 13 'easy' decks, 17 'medium' decks, 31 'hard' decks, and 20 'very hard' decks.
- 9 challenges, including the 4 demon planeswalkers (the 3 demon rulers and Lilith) and 5 other special scenarios set in Jamuraa. All challenges are repeatable. All are fairly hard, and the 4 demon challenges are especially fiendish.
For the most part, the opponent duel and challenge decks are built with the same format restrictions as your own cardpool, and some of the easiest opponent decks were in fact based on a limited cardpool. But there will be exceptions, especially in the hard/very hard decks and challenges, which can be more like Vintage/T1 decks than pure Mirage + 5th Edition decks. There will be older cards here and there, and maybe even a random Tempest card or two (although these are extremely scarce!).
Hint: if you find the later 'Vintage' opponent decks unfair or near-impossible to beat with your 5th Edition/Mirage block cards, you can Travel to Shandalar and collect some old power cards there, and then return to Jamuraa. Just remember to complete your challenges before traveling.
--
This version of forge includes a few sound files for the new sound effect system. While we have several sounds assigned to a few of the available events there are a number of events that do not yet have a assigned sound file. This should be considered a work in progress and we could use some help in finding interesting sounds that we can add to forge.
The sound files need to be in wav or au format, wav appears to be more wide spread but the code can handle either format. The sound files need to be copy right free and they should be in the public domain.
You can either record your own sounds if you have the necessary equipment or you may be able to find an appropriate sound on a web site such as this site:
http://www.freesound.org/browse/
You should note that sound files can be large sized and we would like to avoid this if possible. A good size to shoot for would be 50 K or less. There is a freeware sound editor that may have versions for all operating systems. This app is named Audacity.
We have a forge forum topic at the Collectible Card Games Headquarters web site that is devoted to finding sounds for this new sound system. Please visit this topic and contribute a sound or two. We can use your help and assistance.
http://www.slightlymagic.net/forum/viewtopic.php?f=26&t=8570
--
On several occasions people have noticed that the forge deck editor and/or quest mode card shop would not open or display. We have also received reports that some of the tabs/panels in the deck editor are missing. Try deleting the file named "editor_preferred.xml" which is found in the "res/layouts" folder. This should force forge to then use the "editor_default.xml" file instead.
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 eachother. This work is not yet finished. As a result there is currently some inconsistencies with "Enters the battlefield with counters" (Not incredibly noticeable).
It seems like the front face of double faced cards aren't triggering properly, but the back face and single faced cards are.
A recent contribution to the code base should fix some of the bugs that people noticed with cloning type abilities. At this time there are two remaining issues that we hope will be addressed in the near future.
1. Leave play triggers don't work correct for clones.
2. Copies of cards that setup Zone Change triggers via addComesIntoPlayCommand and addLeavesPlayCommand will not function correctly.
We are now using a different system for our snapshot and beta releases. Unfortunately, this new system builds a jar file which does not accurately display the SVN revision number.
Forge is likely to be compatible with Java 7 at this time. Some people have used forge with Java 7 and have not reported any problems that are related to Java 7. If you would like to upgrade to Java 7 and have held off because of Forge then you may upgrade as we do not think that it will cause an incompatibility type of problem at this time. We will continue to try to maintain compatibility with Java 6 for the foreseeable future.
--
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.
Many people helped with this version. A special thank you goes out to them. (Attempted to list names alphabetically):
ArsenalNut
Gos
Hellfish
Lexusex
Marc
Max
PowerClaws
RumbleBBU
Sloth
Sol
Squee1968
Swordshine
Xitax
ZzzzSleep
Chris H
Added the following cards:
Added the following new Gatecrash cards to the Gatecrash branch. These cards are not yet available for in game use.:
The links to the various archives:
(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com)
(Thanks to the MAGE team for permission to use their targeting arrows.)
(Thanks to http://www.freesound.org/browse/ for providing some sound files.)
11782 cards in total.
The "Sanctioned Format: Constructed" view should now be compatible with displays that are only 600 pixels tall. The deck list at 600 pixels tall should now display three lines of text rather than less than a single line of text.
The deck conformance/legality is now a user-togglable preference and is enabled by default. You no longer need to turn on dev mode to play an illegal deck.
Work on the quest worlds continue. Information on this new game format can be found in this topic:
http://www.slightlymagic.net/forum/viewtopic.php?f=26&t=9258
--
A second Quest World, Jamuraa, has been added to Forge. When playing Quest mode, it is now possible to 'Travel' between the regular Quest environment and the two Worlds, Shandalar and Jamuraa, both of which include special formats, opponents and challenges. Or you can start a new Quest in any of them.
Like Shandalar, Jamuraa is a fantasy world. Its peaceful existence has recently been wrecked by a planar conjunction that shattered the barriers between Jamuraa and the infernal planes known as Jahim, Saqar, and Jahannam. The demon planeswalkers who rule those planes, and their hellish sister, Lilith, are now extending their influence over Jamuraa and gradually destroying the whole continent. Your task is to fight their minions and ultimately challenge the four demons - but beware, their destructive might is unfathomable!
From a technical perspective, the following sets are available to the player in Jamuraa:
5th Edition, Arabian Nights, Mirage, Visions, Weatherlight.
Jamuraa contains:
- 81 opponent decks, broken down as follows: 13 'easy' decks, 17 'medium' decks, 31 'hard' decks, and 20 'very hard' decks.
- 9 challenges, including the 4 demon planeswalkers (the 3 demon rulers and Lilith) and 5 other special scenarios set in Jamuraa. All challenges are repeatable. All are fairly hard, and the 4 demon challenges are especially fiendish.
For the most part, the opponent duel and challenge decks are built with the same format restrictions as your own cardpool, and some of the easiest opponent decks were in fact based on a limited cardpool. But there will be exceptions, especially in the hard/very hard decks and challenges, which can be more like Vintage/T1 decks than pure Mirage + 5th Edition decks. There will be older cards here and there, and maybe even a random Tempest card or two (although these are extremely scarce!).
Hint: if you find the later 'Vintage' opponent decks unfair or near-impossible to beat with your 5th Edition/Mirage block cards, you can Travel to Shandalar and collect some old power cards there, and then return to Jamuraa. Just remember to complete your challenges before traveling.
--
This version of forge includes a few sound files for the new sound effect system. While we have several sounds assigned to a few of the available events there are a number of events that do not yet have a assigned sound file. This should be considered a work in progress and we could use some help in finding interesting sounds that we can add to forge.
The sound files need to be in wav or au format, wav appears to be more wide spread but the code can handle either format. The sound files need to be copy right free and they should be in the public domain.
You can either record your own sounds if you have the necessary equipment or you may be able to find an appropriate sound on a web site such as this site:
http://www.freesound.org/browse/
You should note that sound files can be large sized and we would like to avoid this if possible. A good size to shoot for would be 50 K or less. There is a freeware sound editor that may have versions for all operating systems. This app is named Audacity.
We have a forge forum topic at the Collectible Card Games Headquarters web site that is devoted to finding sounds for this new sound system. Please visit this topic and contribute a sound or two. We can use your help and assistance.

http://www.slightlymagic.net/forum/viewtopic.php?f=26&t=8570
--
On several occasions people have noticed that the forge deck editor and/or quest mode card shop would not open or display. We have also received reports that some of the tabs/panels in the deck editor are missing. Try deleting the file named "editor_preferred.xml" which is found in the "res/layouts" folder. This should force forge to then use the "editor_default.xml" file instead.
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 eachother. This work is not yet finished. As a result there is currently some inconsistencies with "Enters the battlefield with counters" (Not incredibly noticeable).
It seems like the front face of double faced cards aren't triggering properly, but the back face and single faced cards are.
A recent contribution to the code base should fix some of the bugs that people noticed with cloning type abilities. At this time there are two remaining issues that we hope will be addressed in the near future.
1. Leave play triggers don't work correct for clones.
2. Copies of cards that setup Zone Change triggers via addComesIntoPlayCommand and addLeavesPlayCommand will not function correctly.
We are now using a different system for our snapshot and beta releases. Unfortunately, this new system builds a jar file which does not accurately display the SVN revision number.
Forge is likely to be compatible with Java 7 at this time. Some people have used forge with Java 7 and have not reported any problems that are related to Java 7. If you would like to upgrade to Java 7 and have held off because of Forge then you may upgrade as we do not think that it will cause an incompatibility type of problem at this time. We will continue to try to maintain compatibility with Java 6 for the foreseeable future.
--
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.
Many people helped with this version. A special thank you goes out to them. (Attempted to list names alphabetically):
ArsenalNut
Gos
Hellfish
Lexusex
Marc
Max
PowerClaws
RumbleBBU
Sloth
Sol
Squee1968
Swordshine
Xitax
ZzzzSleep
Chris H
Added the following cards:
- NEW CARD LIST | Open
- Chlorophant
Contempt
Crag Saurian
Decaying Soil
Discordant Spirit
Droning Bureaucrats
Epicenter
Erratic Mutation
Goham Djinn
Halam Djinn
Kusari-Gama
Mirrorweave
Necromancer's Magemark
Petals of Insight
Ruham Djinn
Runesword
Scattering Stroke
Sentinel
Sulam Djinn
Sworn Defender
Zanam Djinn
Added the following new Gatecrash cards to the Gatecrash branch. These cards are not yet available for in game use.:
- Future Gatecrash cards | Open
- Aetherize
Alms Beast
Angelic Skirmisher
Assemble the Legion
Basilica Guards
Biomass Mutation
Blind Obedience
Borborygmos Enraged
Boros Charm
Boros Elite
Boros Guildgate
Boros Keyrune
Burning-Tree Emissary
Call of the Nightwing
Clan Defiance
Cloudfin Raptor
Consuming Aberration
Crocanura
Crypt Ghast
Deathpact Angel
Dimir Charm
Dimir Guildgate
Dimir Keyrune
Domri Rade
Drakewing Krasis
Duskmantle Guildmage
Elusive Krasis
Enter the Infinite
Experiment One
Fathom Mage
Firemane Avenger
Five-Alarm Fire
Foundry Champion
Frontline Medic
Gateway Shade
Ghor-Clan Rampager
Giant Adephage
Gideon, Champion of Justice
Gridlock
Gruul Guildgate
Gruul Keyrune
Hands of Binding
Hellkite Tyrant
Hellraiser Goblin
High Priest of Penance
Illusionist's Bracers
Lazav, Dimir Mastermind
Leyline Phantom
Mind Grind
Mystic Genesis
Obzedat, Ghost Council
Orzhov Guildgate
Orzhov Keyrune
Pit Fight
Prime Speaker Zegana
Rapid Hybridization
Realmwright
Rubblehulk
Shambleshark
Simic Charm
Simic Fluxmage
Simic Guildgate
Simic Keyrune
Skarrg Goliath
Skarrg Guildmage
Skullcrack
Spark Trooper
Stolen Identity
Sunhome Guildmage
Syndic of Tithes
Thespian's Stage
Tin Street Market
Treasury Thrull
Undercity Plague
Urban Evolution
Viashino Shanktail
Whispering Madness
Zhur-Taa Swine
The links to the various archives:
The Forge 01/18/2013 Windows and Linux archive (requires java 6):
forge-1.3.5.tar.bz2 (51.4 MB, at cardforge.org)
Forge 01/18/2013 BETA packaged as a Mac OS application:
forge-1.3.5-osx.tar.bz2 (52.6 MB, at cardforge.org)
-
Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge Beta: 01-18-2013 ver 1.3.5
by friarsol » 18 Jan 2013, 16:32
EDIT: The script doing the calculation was skipping some of the special card sets, here is the new numbers.
Distinct: Implemented (Missing) / Total = Percentage Implemented
11885 (1037) / 12922 = 91.97 %
*NOTE: This implemented total includes special cards like Avatars, where Chris' total above doesn't.
Distinct: Implemented (Missing) / Total = Percentage Implemented
11885 (1037) / 12922 = 91.97 %
*NOTE: This implemented total includes special cards like Avatars, where Chris' total above doesn't.
- Set Breakdown | Open
- Set: Implemented (Missing) / Total = Percentage Implemented
Dark Ascension: 158 (0) / 158 = 100.0%
Return to Ravnica: 254 (0) / 254 = 100.0%
Starter 2000: 52 (0) / 52 = 100.0%
Mirrodin Besieged: 150 (0) / 150 = 100.0%
Alara Reborn: 145 (0) / 145 = 100.0%
Innistrad: 253 (1) / 254 = 99.61%
Portal Three Kingdoms: 169 (1) / 170 = 99.41%
Starter 1999: 157 (1) / 158 = 99.37%
Magic 2013: 232 (2) / 234 = 99.15%
Portal Second Age: 153 (2) / 155 = 98.71%
Tenth Edition: 363 (5) / 368 = 98.64%
Conflux: 143 (2) / 145 = 98.62%
Urza's Destiny: 141 (2) / 143 = 98.6%
Portal: 197 (3) / 200 = 98.5%
Avacyn Restored: 230 (4) / 234 = 98.29%
Rise of the Eldrazi: 229 (4) / 233 = 98.28%
Ninth Edition: 338 (6) / 344 = 98.26%
Seventh Edition: 329 (6) / 335 = 98.21%
Legions: 142 (3) / 145 = 97.93%
Shards of Alara: 229 (5) / 234 = 97.86%
Magic 2012: 229 (5) / 234 = 97.86%
Scars of Mirrodin: 229 (5) / 234 = 97.86%
Eighth Edition: 334 (8) / 342 = 97.66%
Magic 2011: 228 (6) / 234 = 97.44%
Magic 2010: 228 (6) / 234 = 97.44%
Zendikar: 227 (8) / 235 = 96.6%
New Phyrexia: 164 (6) / 170 = 96.47%
Classic Sixth Edition: 323 (12) / 335 = 96.42%
Lorwyn: 275 (11) / 286 = 96.15%
Worldwake: 139 (6) / 145 = 95.86%
Tempest: 321 (14) / 335 = 95.82%
Urza's Legacy: 137 (6) / 143 = 95.8%
Torment: 137 (6) / 143 = 95.8%
Eventide: 172 (8) / 180 = 95.56%
Urza's Saga: 320 (15) / 335 = 95.52%
Fifth Dawn: 157 (8) / 165 = 95.15%
Scourge: 136 (7) / 143 = 95.1%
Guildpact: 156 (9) / 165 = 94.55%
Nemesis: 135 (8) / 143 = 94.41%
Judgment: 134 (9) / 143 = 93.71%
Shadowmoor: 268 (18) / 286 = 93.71%
Time Spiral: 267 (19) / 286 = 93.36%
Morningtide: 140 (10) / 150 = 93.33%
Saviors of Kamigawa: 154 (11) / 165 = 93.33%
Mirrodin: 271 (20) / 291 = 93.13%
Fifth Edition: 404 (30) / 434 = 93.09%
Odyssey: 311 (24) / 335 = 92.84%
Mercadian Masques: 311 (24) / 335 = 92.84%
Future Sight: 167 (13) / 180 = 92.78%
Magic: The Gathering-Commander: 280 (23) / 303 = 92.41%
Prophecy: 132 (11) / 143 = 92.31%
Planeshift: 132 (11) / 143 = 92.31%
Stronghold: 132 (11) / 143 = 92.31%
Revised Edition: 273 (23) / 296 = 92.23%
Planar Chaos: 152 (13) / 165 = 92.12%
Fourth Edition: 339 (29) / 368 = 92.12%
Time Spiral "Timeshifted": 111 (10) / 121 = 91.74%
Exodus: 131 (12) / 143 = 91.61%
Onslaught: 306 (29) / 335 = 91.34%
Darksteel: 150 (15) / 165 = 90.91%
Ravnica: City of Guilds: 264 (27) / 291 = 90.72%
Champions of Kamigawa: 264 (27) / 291 = 90.72%
Antiquities: 77 (8) / 85 = 90.59%
Weatherlight: 151 (16) / 167 = 90.42%
Unlimited Edition: 264 (28) / 292 = 90.41%
Limited Edition Beta: 264 (28) / 292 = 90.41%
Limited Edition Alpha: 262 (28) / 290 = 90.34%
Invasion: 302 (33) / 335 = 90.15%
Archenemy: 172 (19) / 191 = 90.05%
Coldsnap: 137 (18) / 155 = 88.39%
Dissension: 158 (22) / 180 = 87.78%
Apocalypse: 125 (18) / 143 = 87.41%
Arabian Nights: 68 (10) / 78 = 87.18%
Mirage: 292 (43) / 335 = 87.16%
Homelands: 100 (15) / 115 = 86.96%
Betrayers of Kamigawa: 143 (22) / 165 = 86.67%
Chronicles: 99 (17) / 116 = 85.34%
Promo set for Gatherer: 23 (4) / 27 = 85.19%
Visions: 142 (25) / 167 = 85.03%
Ice Age: 313 (59) / 372 = 84.14%
The Dark: 100 (19) / 119 = 84.03%
Alliances: 121 (23) / 144 = 84.03%
Fallen Empires: 85 (17) / 102 = 83.33%
Legends: 257 (53) / 310 = 82.9%
Planechase 2012 Edition: 134 (43) / 177 = 75.71%
Planechase: 140 (51) / 191 = 73.3%
Vanguard: 69 (37) / 106 = 65.09%
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Beta: 01-18-2013 ver 1.3.5
by TastetheJace » 18 Jan 2013, 17:42
Does increasing rank do anything? Or is it just for fun titles?
- TastetheJace
- Posts: 91
- Joined: 30 Jul 2012, 00:13
- Has thanked: 0 time
- Been thanked: 0 time
Re: Forge Beta: 01-18-2013 ver 1.3.5
by donluca » 18 Jan 2013, 18:43
Lotus Bloom is bugged as of 1.3.5, was fine in 1.3.4
When I play the card, a window opens letting me chose between "Lotus Bloom" and "Suspend 3 -".
If I choose "Lotus Bloom" the card enters the battlefield directly, if I choose "Suspend 3 -" it works as intended, removing it from the game with 3 time counters on it.
Maybe this bug happens with other 0 casting cost suspend cards too.
I think there's just an if condition that isn't making a check on the card cost, I'll be giving a shot at the source code.
EDIT: err... how do I download the sorcecode?
When I play the card, a window opens letting me chose between "Lotus Bloom" and "Suspend 3 -".
If I choose "Lotus Bloom" the card enters the battlefield directly, if I choose "Suspend 3 -" it works as intended, removing it from the game with 3 time counters on it.
Maybe this bug happens with other 0 casting cost suspend cards too.
I think there's just an if condition that isn't making a check on the card cost, I'll be giving a shot at the source code.
EDIT: err... how do I download the sorcecode?
_______________________________________________________________
Ask not what others can do for you, but what you can do for others
Ask not what others can do for you, but what you can do for others
-
donluca - Posts: 18
- Joined: 18 Jan 2013, 18:36
- Location: Rome, Italy
- Has thanked: 3 times
- Been thanked: 0 time
Re: Forge Beta: 01-18-2013 ver 1.3.5
by Chris H. » 18 Jan 2013, 18:58
donluca wrote:I think there's just an if condition that isn't making a check on the card cost, I'll be giving a shot at the source code.
EDIT: err... how do I download the sorcecode?
Forge:How to Get Started Developing Forge
-
Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge Beta: 01-18-2013 ver 1.3.5
by donluca » 18 Jan 2013, 20:09
Ok, I've tried getting my way through the sourcecode but couldn't find the part where it gives the option to the user to either pay the card by its mana cost or play it for its suspend cost.
I looked inside some of the classes, even grep'd the entire source code for the "suspend" string and still couldn't figure it out.
Can you lend a hand, please?
EDIT: Ok, so, when there's no mana cost in the card like in the Lotus Bloom, the mana cost is set to -1.
Now, all that's needed to do is just to place a control when you're playing a card which both the mana cost == -1 and has suspend (is there a boolean that tells Forge that the card can be played paying its suspend cost?).
I need to find that part, the one that handles a card being played.
EDIT 2: ok so the card has a boolean value named "suspend" which tells forge if the card can be played through suspend and, if positive, it tells the suspend cost.
Now, the actions are handled by GameAction, I'm trying to find a way to tell Forge that if the card has -1 in mana cost and suspend they can ONLY be played by its suspend cost, so I have to replace, in the case of the lotus bloom, the action that moves it to the ZoneType.Battlefield to the ZoneType.Exile with the timer counters on it.
Slowly making progress (hell, it's hard working on a code that was written by someone else >__> )
I looked inside some of the classes, even grep'd the entire source code for the "suspend" string and still couldn't figure it out.
Can you lend a hand, please?

EDIT: Ok, so, when there's no mana cost in the card like in the Lotus Bloom, the mana cost is set to -1.
Now, all that's needed to do is just to place a control when you're playing a card which both the mana cost == -1 and has suspend (is there a boolean that tells Forge that the card can be played paying its suspend cost?).
I need to find that part, the one that handles a card being played.
EDIT 2: ok so the card has a boolean value named "suspend" which tells forge if the card can be played through suspend and, if positive, it tells the suspend cost.
Now, the actions are handled by GameAction, I'm trying to find a way to tell Forge that if the card has -1 in mana cost and suspend they can ONLY be played by its suspend cost, so I have to replace, in the case of the lotus bloom, the action that moves it to the ZoneType.Battlefield to the ZoneType.Exile with the timer counters on it.
Slowly making progress (hell, it's hard working on a code that was written by someone else >__> )
_______________________________________________________________
Ask not what others can do for you, but what you can do for others
Ask not what others can do for you, but what you can do for others
-
donluca - Posts: 18
- Joined: 18 Jan 2013, 18:36
- Location: Rome, Italy
- Has thanked: 3 times
- Been thanked: 0 time
Re: Forge Beta: 01-18-2013 ver 1.3.5
by Chris H. » 18 Jan 2013, 21:20
donluca wrote:Ok, I've tried getting my way through the sourcecode but couldn't find the part where it gives the option to the user to either pay the card by its mana cost or play it for its suspend cost.
I looked inside some of the classes, even grep'd the entire source code for the "suspend" string and still couldn't figure it out.
Can you lend a hand, please?
Eclipse has a search command that will return 320 matches for the word Suspend. Ignore the hits in the res folder and concentrate on the src folder.
It looks like you are slowly finding the code that controls the suspend mechs. Good luck.

-
Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge Beta: 01-18-2013 ver 1.3.5
by donluca » 18 Jan 2013, 21:41
Yeah, I thought it would be easy to find and fix what was broken but eventually I ended up importing the entire project in eclipse.
Gonna be looking for those things tomorrow.
Gonna be looking for those things tomorrow.
_______________________________________________________________
Ask not what others can do for you, but what you can do for others
Ask not what others can do for you, but what you can do for others
-
donluca - Posts: 18
- Joined: 18 Jan 2013, 18:36
- Location: Rome, Italy
- Has thanked: 3 times
- Been thanked: 0 time
Re: Forge Beta: 01-18-2013 ver 1.3.5
by Max mtg » 18 Jan 2013, 23:31
Hi, I'm already working on that problem.
The most obvious reason why you got a choice of 2 options is that SpellPermanent ability was added (though it should not since Lotus Bloom has no manacost) - to fix it see CardFactory.java around line 289, should add a check of card's mana cost and do not add the ability if it is impossible to pay the cost.
The reason why suspend is not working - it's mana cost get converted to string. There is zero in Lotus Bloom. For some strange reason it gets converted into an empty line, that is unpayable "no cost", to fix that see revision 19085
The most obvious reason why you got a choice of 2 options is that SpellPermanent ability was added (though it should not since Lotus Bloom has no manacost) - to fix it see CardFactory.java around line 289, should add a check of card's mana cost and do not add the ability if it is impossible to pay the cost.
The reason why suspend is not working - it's mana cost get converted to string. There is zero in Lotus Bloom. For some strange reason it gets converted into an empty line, that is unpayable "no cost", to fix that see revision 19085
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Forge Beta: 01-18-2013 ver 1.3.5
by cc-drake » 19 Jan 2013, 08:00
- When I try to attack with multiple creatures like Hasran Ogress of Grave Titan into Propaganda, they will trigger even if I don't pay the mana.
- When AI controls an unequipped Scythe of the Wretched and I lose a creature in combat, I get
- When AI controls an unequipped Scythe of the Wretched and I lose a creature in combat, I get
- Code: Select all
This is a Crash Report. An error has occurred. Please save this message to a file.
Please follow the instructions at this address to submit this Crash Report, plus what you were doing at the time:
http://tinyurl.com/3zzrnyb
Reporting bugs in Forge is very important. We thank you for your time.
null
Version:
Forge version 1.3.5-r19081
OS: Windows XP Version: 5.1 Architecture: x86
Java Version: 1.7.0_11 Vendor: Oracle Corporation
Detailed error trace:
java.lang.NullPointerException
at java.util.TreeMap.getEntry(Unknown Source)
at java.util.TreeMap.containsKey(Unknown Source)
at java.util.TreeMap$KeySet.contains(Unknown Source)
at forge.Card.hasProperty(Card.java:6894)
at forge.Card.isValid(Card.java:6250)
at forge.GameEntity.isValid(GameEntity.java:318)
at forge.card.trigger.TriggerChangesZone.performTest(TriggerChangesZone.java:75)
at forge.card.trigger.TriggerHandler.runSingleTrigger(TriggerHandler.java:440)
at forge.card.trigger.TriggerHandler.runWaitingTrigger(TriggerHandler.java:350)
at forge.card.trigger.TriggerHandler.runWaitingTriggers(TriggerHandler.java:294)
at forge.GameAction.checkStateEffects(GameAction.java:1180)
at forge.game.phase.PhaseHandler.handleBeginPhase(PhaseHandler.java:350)
at forge.control.input.InputControl.getActualInput(InputControl.java:186)
at forge.gui.GuiInput.update(GuiInput.java:50)
at java.util.Observable.notifyObservers(Unknown Source)
at java.util.Observable.notifyObservers(Unknown Source)
at forge.util.MyObservable.updateObservers(MyObservable.java:38)
at forge.game.phase.PhaseHandler.nextPhase(PhaseHandler.java:516)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:775)
at forge.gui.GuiInput.update(GuiInput.java:57)
at java.util.Observable.notifyObservers(Unknown Source)
at java.util.Observable.notifyObservers(Unknown Source)
at forge.util.MyObservable.updateObservers(MyObservable.java:38)
at forge.control.input.InputControl.resetInput(InputControl.java:140)
at forge.control.input.InputControl.resetInput(InputControl.java:136)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:783)
at forge.gui.GuiInput.update(GuiInput.java:57)
at java.util.Observable.notifyObservers(Unknown Source)
at java.util.Observable.notifyObservers(Unknown Source)
at forge.util.MyObservable.updateObservers(MyObservable.java:38)
at forge.game.phase.PhaseHandler.nextPhase(PhaseHandler.java:516)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:775)
at forge.control.input.InputPassPriority.selectButtonOK(InputPassPriority.java:74)
at forge.gui.GuiInput.selectButtonOK(GuiInput.java:80)
at forge.gui.match.controllers.CMessage$2.actionPerformed(CMessage.java:51)
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)
Re: Forge Beta: 01-18-2013 ver 1.3.5
by Bundy » 19 Jan 2013, 11:52
After using a mana producing myr creature (like Iron Myr) for the ability of Myr Battlesphere, i can't tap it for mana anymore.
- Bundy
- Posts: 348
- Joined: 17 Dec 2010, 17:32
- Location: The netherlands
- Has thanked: 23 times
- Been thanked: 3 times
Re: Forge Beta: 01-18-2013 ver 1.3.5
by cc-drake » 19 Jan 2013, 12:24
When I attack with Mtenda Lion, even if AI doesn't have blue mana, all damage is prevented.
Re: Forge Beta: 01-18-2013 ver 1.3.5
by Chris H. » 19 Jan 2013, 13:37
victorvndoom wrote:java vulnerability may hurt your computer.
try to install the new patch of java immediatly.
victorvndoom wrote:so or uninstall java or replace it with a version or make forge without java and use other technologies like proposed in this websites
Using Java locally has nothing to do with using it in a web browser, and the browser plugins are the ones with the security issues. No one should have Java enabled in their web browsers, it is simply not safe. The security issues are with the browser use of Java.
It is safe to install java on your computer and to run Forge on your computer. It is extremely unlikely that the dev team will rewrite Forge in a different language.
You should check your web browser preferences and turn off java if it is currently turned on. Most web sites do not use the java browser plugin. Some bank sites and a few others may not work as expected when you turn off the java browser plugin.
I use the Safari web browser and here is a screenshot of my prefs:
-
Chris H. - Forge Moderator
- Posts: 6320
- Joined: 04 Nov 2008, 12:11
- Location: Mac OS X Yosemite
- Has thanked: 644 times
- Been thanked: 643 times
Re: Forge Beta: 01-18-2013 ver 1.3.5
by donluca » 19 Jan 2013, 13:44
Good to know.Max mtg wrote:Hi, I'm already working on that problem.
The most obvious reason why you got a choice of 2 options is that SpellPermanent ability was added (though it should not since Lotus Bloom has no manacost) - to fix it see CardFactory.java around line 289, should add a check of card's mana cost and do not add the ability if it is impossible to pay the cost.
The reason why suspend is not working - it's mana cost get converted to string. There is zero in Lotus Bloom. For some strange reason it gets converted into an empty line, that is unpayable "no cost", to fix that see revision 19085
Lotus Bloom doesn't have zero casting cost, it has no casting cost making it unplayable normally which is correct.
This is handled by putting an empty line as the mana cost.
Anyway, this should get it fixed
- Code: Select all
// may have to change the spell
// this is so permanents like creatures and artifacts have a "default"
// spell and costless spells cannot be played
if (card.isPermanent() && !card.isLand() && !card.isAura() && !card.getManaCost().isEmpty()) {
card.addSpellAbility(new SpellPermanent(card));
}
_______________________________________________________________
Ask not what others can do for you, but what you can do for others
Ask not what others can do for you, but what you can do for others
-
donluca - Posts: 18
- Joined: 18 Jan 2013, 18:36
- Location: Rome, Italy
- Has thanked: 3 times
- Been thanked: 0 time
Re: Forge Beta: 01-18-2013 ver 1.3.5
by gos » 19 Jan 2013, 13:56
. Spellweaver Helix is still broken. It prompts to you as to whether to copy a spell when you cast a spell imprinted on it, but no effect is put on the stack.
- 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 60 guests