Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by fmartel » 06 Jan 2017, 18:20
Hmm, I'm not sure to follow you on that, is it on the Forge exucable (as you mentionned) or on the parameters of (global) Java ?timmermac wrote:The amount of physical RAM your machine has isn't relevant here. The key is how much of that is allocated for use by Java. If you right-click on forge.exe and click properties, you should see a window that, among other things, has a box that lists some parameters. Where it says Xms, you'll want to modify the number there to 4096. That means that Java now has access to 4 gigs of memory. I'm not sure if Java will let you allocate more or not.fmartel wrote:Description: [in commander, choosing a land with Sword of the Animist]Note that I have 24GB RAM machine
- OutOfMemoryError | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32997
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_25 Oracle Corporation
java.lang.OutOfMemoryError: GC overhead limit exceeded
at net.miginfocom.layout.Grid.addToSizeGroup(Unknown Source)
at net.miginfocom.layout.Grid.calcRowsOrColsSizes(Unknown Source)
at net.miginfocom.layout.Grid.checkSizeCalcs(Unknown Source)
at net.miginfocom.layout.Grid.layout(Unknown Source)
at net.miginfocom.swing.MigLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(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$1.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$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
Attached is a picture of the détailed propreties of Forge.exe
- fmartel
- Posts: 281
- Joined: 31 Dec 2013, 19:27
- Location: Québec City
- Has thanked: 8 times
- Been thanked: 4 times
Re: Bug Reports (snapshot builds)
by stormcat » 06 Jan 2017, 18:35
:r32997
When Paradox Engine triggered, Artifacts ought to untap.
When Paradox Engine triggered, Artifacts ought to untap.
Re: Bug Reports (snapshot builds)
by friarsol » 06 Jan 2017, 18:44
Hey Stormcat,stormcat wrote::r32997
When Paradox Engine triggered, Artifacts ought to untap.
Could you post any Aether Revolt related issues in viewtopic.php?f=52&t=19629 at least until we have a release that contains the set?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by pfps » 06 Jan 2017, 19:16
The idea is to not have a separate confirmation box. Instead, if there is a relevant ordering make that the initial ordering in the dual list box. The user can either accept that initial ordering or revise it using the usual methods.Agetian wrote:Well, the ordering confirmation was implemented to be able to change the order if necessary, that was discussed before and there were cases where this was relevant. It would be nice to still be able to change the order.pfps wrote:OK, I'm running r32993 and things are mostly working.
It also occurs to me that the ordering confirmation box isn't necessary. Just make that the initial order instead (and say something in the dual list box title, I guess). I'll see if I can make this work.
- Agetian
peter
Re: Bug Reports (snapshot builds)
by pfps » 06 Jan 2017, 19:22
I found the bug. It turns out that the code that saves the ordering is saving a mapping from final to initial instead of from intial to final. This works OK if the reordering is diagonal, which will always be true with two abilities. With three or more abilities the wrong thing could happen.pfps wrote:OK, I'm running r32993 and things are mostly working.
I am seeing something strange with repeated ordering. I had 2 Amulets out and untapped using them first and then bounced a bounce land back. The next time I was offered to untap, then bounce, then untap, which wasn't what I had just done. I'll investigate further.
The patch is
- Code: Select all
- for (SpellAbility sa : activePlayerSAs) {
- savedOrder.add(orderedSAs.indexOf(sa));
+ for (SpellAbility sa : orderedSAs) {
+ savedOrder.add(activePlayerSAs.indexOf(sa));
Re: Bug Reports (snapshot builds)
by pfps » 06 Jan 2017, 19:28
Is there a discussion of how Auto yield is supposed to work? I can think of several variants ranging from same underlying ability (i.e., same internal id) to same text to same effect.friarsol wrote:This is definitely related to the ordering change. Since the triggers no longer "match" it isn't passed for auto-trigger handling.fmartel wrote:-r32997, in commander, the "Auto yeild" does not work for Soul Warden. I always have to push "Entre" to confirm the action. Even If I right-click and tell it to "Atomate" it.
Re: Bug Reports (snapshot builds)
by Agetian » 06 Jan 2017, 19:30
@ pfps: Thanks a lot, your changes sound reasonable, it'd be nice to have the ordering a part of the list box (though the existence of mobile Forge probably needs to be accounted for in that case, I can test if it works well in mobile Forge if necessary).
I also committed your modification to the ordering save logic, thanks!
- Agetian
I also committed your modification to the ordering save logic, thanks!
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by Agetian » 06 Jan 2017, 19:33
Umm good question, actually I'm not sure what the best approach is, I'd love to hear opinions on this.pfps wrote:Is there a discussion of how Auto yield is supposed to work? I can think of several variants ranging from same underlying ability (i.e., same internal id) to same text to same effect.friarsol wrote:This is definitely related to the ordering change. Since the triggers no longer "match" it isn't passed for auto-trigger handling.fmartel wrote:-r32997, in commander, the "Auto yeild" does not work for Soul Warden. I always have to push "Entre" to confirm the action. Even If I right-click and tell it to "Atomate" it.
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by friarsol » 06 Jan 2017, 20:14
I believe it's always been a single card's ability. So if I have two different Soul Sisters in play, I have to enable auto-accept for each one. I think the key is that a single trigger should be handled this way, no matter what triggered it. I think I'd be ok if this was expanded so that autoyielding to a single Soul Sister would autoyield to them all, but it's possible that people would want the flexibility of doing it individually.pfps wrote:Is there a discussion of how Auto yield is supposed to work? I can think of several variants ranging from same underlying ability (i.e., same internal id) to same text to same effect.friarsol wrote:This is definitely related to the ordering change. Since the triggers no longer "match" it isn't passed for auto-trigger handling.fmartel wrote:-r32997, in commander, the "Auto yeild" does not work for Soul Warden. I always have to push "Entre" to confirm the action. Even If I right-click and tell it to "Atomate" it.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by fmartel » 06 Jan 2017, 20:19
The old way was working fine for me. i.e., I have Rampaging Balloths OTB, I play a land, his mechanics works (droping a 4/4 Beast Token). I press the "Y" key to automate its actions. there could be an option (as I saw here viewtopic.php?f=26&t=1516&p=208107#p208107). but why the sudden change ?Agetian wrote:Umm good question, actually I'm not sure what the best approach is, I'd love to hear opinions on this.pfps wrote:Is there a discussion of how Auto yield is supposed to work? I can think of several variants ranging from same underlying ability (i.e., same internal id) to same text to same effect.
- Agetian
- fmartel
- Posts: 281
- Joined: 31 Dec 2013, 19:27
- Location: Québec City
- Has thanked: 8 times
- Been thanked: 4 times
Re: Bug Reports (snapshot builds)
by Agetian » 06 Jan 2017, 20:37
I agree with Sol's reasoning about flexibility, it's better to do it on a per-card basis (so, another card with the same ability would need to be auto-yielded separately).
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Bug Reports (snapshot builds)
by stormcat » 06 Jan 2017, 21:13
:r33003
The cards of return to library top by ability of Scroll Rack become reverse order of my intention.
The cards of return to library top by ability of Scroll Rack become reverse order of my intention.
Re: Bug Reports (snapshot builds)
by pfps » 06 Jan 2017, 22:24
The old (current, I guess, with the recent reversion) way has a game problemfmartel wrote:The old way was working fine for me. i.e., I have Rampaging Balloths OTB, I play a land, his mechanics works (droping a 4/4 Beast Token). I press the "Y" key to automate its actions. there could be an option (as I saw here viewtopic.php?f=26&t=1516&p=208107#p208107). but why the sudden change ?Agetian wrote:Umm good question, actually I'm not sure what the best approach is, I'd love to hear opinions on this.pfps wrote:Is there a discussion of how Auto yield is supposed to work? I can think of several variants ranging from same underlying ability (i.e., same internal id) to same text to same effect.
- Agetian
with simultaneous actions. Two simultaneous actions that did the different
things looked exactly the same. This used to cause problems with manual
ordering as users had to guess which Amulet of Vigor effect untapped which
land. With the recent changes to the effect ordering code there isn't any
way to affect the order at all.
What I did was to add in more information to trigger descriptions so that
triggers with different effects looked different. This meant that some
triggers that had the same effect looked different (e.g., add one life
when a creature enters the battlefield when two creatures enter at once).
This then affects auto yield as auto yield uses the same description.
Re: Bug Reports (snapshot builds)
by pfps » 06 Jan 2017, 22:33
I think that this is not how auto-yield worked. I tried auto-yielding (in a version that doesn't have my changes) on an Evolve effect and Evolve auto-yielded for all creatures.Agetian wrote:I agree with Sol's reasoning about flexibility, it's better to do it on a per-card basis (so, another card with the same ability would need to be auto-yielded separately).
- Agetian
I agree that this view of auto-yield is best. Implementing it is a separate issue if ordering is to be fixed as well. I see two possibilities:
1/ autoyield remembers the original effect
2/ autoyield remembers the description of the original effect and the card it came from
However, I don't know how to access the original effect, i.e., one that isn't wrapped.
Re: Bug Reports (snapshot builds)
by tasteful » 07 Jan 2017, 02:58
Description: In draft, AI's Thalakos Deceiver stalls out the game with this error whenever it activates its ability.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Mac OS X 10.12 x86_64
Java Version: 1.8.0_111 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:139)
at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:128)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at forge.util.collect.FCollection.<init>(FCollection.java:90)
at forge.game.card.CardCollection.<init>(CardCollection.java:115)
at forge.game.card.CardLists.filter(CardLists.java:255)
at forge.ai.ability.ControlGainAi.canPlayAI(ControlGainAi.java:128)
at forge.ai.ability.ControlGainAi.chkAIDrawback(ControlGainAi.java:286)
at forge.ai.SpellAbilityAi.chkDrawbackWithSubs(SpellAbilityAi.java:241)
at forge.ai.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:128)
at forge.ai.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:119)
at forge.ai.AiController.doTrigger(AiController.java:1205)
at forge.ai.PlayerControllerAi.prepareSingleSa(PlayerControllerAi.java:707)
at forge.ai.PlayerControllerAi.orderAndPlaySimultaneousSa(PlayerControllerAi.java:695)
at forge.game.zone.MagicStack.chooseOrderOfSimultaneousStackEntry(MagicStack.java:863)
at forge.game.zone.MagicStack.addAllTriggeredAbilitiesToStack(MagicStack.java:829)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:911)
at forge.game.GameAction.startGame(GameAction.java:1462)
at forge.game.Match.startGame(Match.java:95)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Mac OS X 10.12 x86_64
Java Version: 1.8.0_111 Oracle Corporation
java.lang.NullPointerException
at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:139)
at forge.ai.ability.ControlGainAi$1.apply(ControlGainAi.java:128)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at forge.util.collect.FCollection.<init>(FCollection.java:90)
at forge.game.card.CardCollection.<init>(CardCollection.java:115)
at forge.game.card.CardLists.filter(CardLists.java:255)
at forge.ai.ability.ControlGainAi.canPlayAI(ControlGainAi.java:128)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:29)
at forge.ai.AiController.canPlaySa(AiController.java:654)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:641)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1158)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1133)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1072)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:392)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:925)
at forge.game.GameAction.startGame(GameAction.java:1462)
at forge.game.Match.startGame(Match.java:95)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Who is online
Users browsing this forum: No registered users and 89 guests