How to make Forge a much more fun game
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: How to make Forge a much more fun game
by ArsenalNut » 10 Feb 2012, 19:49
I suspect this related to some work I did on the computer mana pool utilities back at the end of December. Unfortunately, I don't really play the quest mode so I am not familiar with this area of the code. Is there good way to debug this? Can I get to the AI deck somehow to play it in constructed mode? Or maybe someone can post a quest data file that is at a point where I could straight into this battle?Papagelos wrote:You dont need to code, imo. You already done more than enough. My quest mode is TONS more fun now that the shop has 25 boosters worth of cards.
Even though I still only found 4 cards to my tinker deck after playing some 40 matches.
Anywyas, I dont know if its your patches fault or not, but now the green dungeon challenge crashes (the one where computer starts with card that allows mana to carry between phases).
It crashes when he has about 6-7 lands out and tries to play something, with the error msg "Mana not needed G to play this spell" or something similar in the log.
So many cards, so little time
-
ArsenalNut - Posts: 512
- Joined: 08 Jul 2011, 03:49
- Has thanked: 27 times
- Been thanked: 121 times
Re: How to make Forge a much more fun game
by Chris H. » 10 Feb 2012, 20:20
`ArsenalNut wrote:I suspect this related to some work I did on the computer mana pool utilities back at the end of December. Unfortunately, I don't really play the quest mode so I am not familiar with this area of the code. Is there good way to debug this? Can I get to the AI deck somehow to play it in constructed mode? Or maybe someone can post a quest data file that is at a point where I could straight into this battle?Papagelos wrote:You dont need to code, imo. You already done more than enough. My quest mode is TONS more fun now that the shop has 25 boosters worth of cards.
Even though I still only found 4 cards to my tinker deck after playing some 40 matches.
Anywyas, I dont know if its your patches fault or not, but now the green dungeon challenge crashes (the one where computer starts with card that allows mana to carry between phases).
It crashes when he has about 6-7 lands out and tries to play something, with the error msg "Mana not needed G to play this spell" or something similar in the log.
This archive includes the green dungeon quest deck and a setup file which requires the dev mode to be active. I hope that this helps to track this bug down.
Edit:
I was able to reproduce the above crash report. I assigned the quest deck to the computer and I choose a random generated deck for myself. I had to stall for a number of turns until the crash report displayed.
- Crash Report | Open
- 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.
ManaCost : addMana() error, mana not needed - G
Version:
Forge version 1.2.4-SNAPSHOT-r13939
OS: Mac OS X Version: 10.7.3 Architecture: x86_64
Java Version: 1.6.0_29 Vendor: Apple Inc.
Detailed error trace:
java.lang.RuntimeException: ManaCost : addMana() error, mana not needed - G
at forge.card.mana.ManaCost.addMana(ManaCost.java:382)
at forge.card.mana.ManaCost.payMana(ManaCost.java:295)
at forge.ComputerUtil.payManaCost(ComputerUtil.java:861)
at forge.ComputerUtil.payManaCost(ComputerUtil.java:602)
at forge.card.cost.CostMana.payAI(CostMana.java:192)
at forge.card.cost.CostPayment.payComputerCosts(CostPayment.java:309)
at forge.ComputerUtil.handlePlayingSpellAbility(ComputerUtil.java:190)
at forge.ComputerUtil.playSpellAbilities(ComputerUtil.java:125)
at forge.ComputerAIGeneral.playCards(ComputerAIGeneral.java:93)
at forge.ComputerAIGeneral.main1(ComputerAIGeneral.java:60)
at forge.ComputerAIInput.think(ComputerAIInput.java:98)
at forge.ComputerAIInput.showMessage(ComputerAIInput.java:71)
at forge.GuiInput.setInput(GuiInput.java:68)
at forge.GuiInput.update(GuiInput.java:54)
at java.util.Observable.notifyObservers(Observable.java:142)
at java.util.Observable.notifyObservers(Observable.java:98)
at forge.MyObservable.updateObservers(MyObservable.java:38)
at forge.gui.input.InputControl.resetInput(InputControl.java:144)
at forge.gui.input.InputPassPriority.selectButtonOK(InputPassPriority.java:76)
at forge.GuiInput.selectButtonOK(GuiInput.java:86)
at forge.control.match.ControlInput.btnOKActionPerformed(ControlInput.java:105)
at forge.control.match.ControlInput.access$000(ControlInput.java:32)
at forge.control.match.ControlInput$1.actionPerformed(ControlInput.java:52)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(BasicButtonListener.java:287)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1645)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at java.awt.Component.processEvent(Component.java:6150)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4735)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4607)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
`
- Attachments
-
- Archive.zip
- (1.75 KiB) Downloaded 245 times
-
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: How to make Forge a much more fun game
by ArsenalNut » 11 Feb 2012, 03:34
I found the problem. It should be fixed in r13954. Thanks for the setup file, it helped a lot.Chris H. wrote:`ArsenalNut wrote:I suspect this related to some work I did on the computer mana pool utilities back at the end of December. Unfortunately, I don't really play the quest mode so I am not familiar with this area of the code. Is there good way to debug this? Can I get to the AI deck somehow to play it in constructed mode? Or maybe someone can post a quest data file that is at a point where I could straight into this battle?Papagelos wrote:You dont need to code, imo. You already done more than enough. My quest mode is TONS more fun now that the shop has 25 boosters worth of cards.
Even though I still only found 4 cards to my tinker deck after playing some 40 matches.
Anywyas, I dont know if its your patches fault or not, but now the green dungeon challenge crashes (the one where computer starts with card that allows mana to carry between phases).
It crashes when he has about 6-7 lands out and tries to play something, with the error msg "Mana not needed G to play this spell" or something similar in the log.
This archive includes the green dungeon quest deck and a setup file which requires the dev mode to be active. I hope that this helps to track this bug down.
Edit:
I was able to reproduce the above crash report. I assigned the quest deck to the computer and I choose a random generated deck for myself. I had to stall for a number of turns until the crash report displayed.
- Crash Report | Open
- 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.
ManaCost : addMana() error, mana not needed - G
Version:
Forge version 1.2.4-SNAPSHOT-r13939
OS: Mac OS X Version: 10.7.3 Architecture: x86_64
Java Version: 1.6.0_29 Vendor: Apple Inc.
Detailed error trace:
java.lang.RuntimeException: ManaCost : addMana() error, mana not needed - G
at forge.card.mana.ManaCost.addMana(ManaCost.java:382)
at forge.card.mana.ManaCost.payMana(ManaCost.java:295)
at forge.ComputerUtil.payManaCost(ComputerUtil.java:861)
at forge.ComputerUtil.payManaCost(ComputerUtil.java:602)
at forge.card.cost.CostMana.payAI(CostMana.java:192)
at forge.card.cost.CostPayment.payComputerCosts(CostPayment.java:309)
at forge.ComputerUtil.handlePlayingSpellAbility(ComputerUtil.java:190)
at forge.ComputerUtil.playSpellAbilities(ComputerUtil.java:125)
at forge.ComputerAIGeneral.playCards(ComputerAIGeneral.java:93)
at forge.ComputerAIGeneral.main1(ComputerAIGeneral.java:60)
at forge.ComputerAIInput.think(ComputerAIInput.java:98)
at forge.ComputerAIInput.showMessage(ComputerAIInput.java:71)
at forge.GuiInput.setInput(GuiInput.java:68)
at forge.GuiInput.update(GuiInput.java:54)
at java.util.Observable.notifyObservers(Observable.java:142)
at java.util.Observable.notifyObservers(Observable.java:98)
at forge.MyObservable.updateObservers(MyObservable.java:38)
at forge.gui.input.InputControl.resetInput(InputControl.java:144)
at forge.gui.input.InputPassPriority.selectButtonOK(InputPassPriority.java:76)
at forge.GuiInput.selectButtonOK(GuiInput.java:86)
at forge.control.match.ControlInput.btnOKActionPerformed(ControlInput.java:105)
at forge.control.match.ControlInput.access$000(ControlInput.java:32)
at forge.control.match.ControlInput$1.actionPerformed(ControlInput.java:52)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(BasicButtonListener.java:287)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1645)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at java.awt.Component.processEvent(Component.java:6150)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4735)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4607)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
`
So many cards, so little time
-
ArsenalNut - Posts: 512
- Joined: 08 Jul 2011, 03:49
- Has thanked: 27 times
- Been thanked: 121 times
Re: How to make Forge a much more fun game
by Chris H. » 11 Feb 2012, 14:11
`ArsenalNut wrote:I found the problem. It should be fixed in r13954. Thanks for the setup file, it helped a lot.
Glad that I could help.
I updated to ver 13957 and ran forge with those two files and stalled for a number of
And I could see the green mana adding up in the computer's mana pool.
-
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: How to make Forge a much more fun game
by Papagelos » 12 Feb 2012, 08:35
So, seeing all you legendary coders in here, I might as well ask my noobie questions;
Do all future updates include the patch to the code that Rou did, that allows me to set the maximum amount of shop boosters? (and can you please up it from the max value of 25 to atleast 50? Why limit this, money is the limiting factor anyways, not card availability)
Also, when upgrading to a new version, am I supposed to unpack the files to my old forge-directory and overwrite old files, or install to a new dir?
Edit: And is there a way to Skip turn? My ENTER button is getting worn out by having to press it 500 times per match. Also, When I want to skip my turn I press enter quickly, and I always miss instants the computer plays. there should be an "OK" button to acknoledge the instant he plays, and it should not be the enter button
Do all future updates include the patch to the code that Rou did, that allows me to set the maximum amount of shop boosters? (and can you please up it from the max value of 25 to atleast 50? Why limit this, money is the limiting factor anyways, not card availability)
Also, when upgrading to a new version, am I supposed to unpack the files to my old forge-directory and overwrite old files, or install to a new dir?
Edit: And is there a way to Skip turn? My ENTER button is getting worn out by having to press it 500 times per match. Also, When I want to skip my turn I press enter quickly, and I always miss instants the computer plays. there should be an "OK" button to acknoledge the instant he plays, and it should not be the enter button
Re: How to make Forge a much more fun game
by Chris H. » 12 Feb 2012, 12:34
`Papagelos wrote:Do all future updates include the patch to the code that Rou did, that allows me to set the maximum amount of shop boosters?
yes
`Papagelos wrote: (and can you please up it from the max value of 25 to atleast 50? Why limit this, money is the limiting factor anyways, not card availability)
We limit changing the values using the In-Game-Method due to play balance issues. You can also increase these values to a much higher value by editing the values in a text editor outside of the game.
`Papagelos wrote:Also, when upgrading to a new version, am I supposed to unpack the files to my old forge-directory and overwrite old files, or install to a new dir?
We advise people to read the included README.txt file and to then follow the instructions.
-
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
36 posts
• Page 3 of 3 • 1, 2, 3
Who is online
Users browsing this forum: Google [Bot] and 44 guests