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 friarsol » 21 Oct 2012, 20:25
It should probably be going through all non-active players for blocking. Max has been doing a good job flagging these issues down, I'd imagine he'll get to it soon enough.Hellfish wrote:I see the problem but I am unsure of wether I can fix it in a way that doesn't break multiplayer, I'm getting rusty..Bundy wrote:forge-1.2.16-20121021.113541-15
At the declare defenders phase i can't pick any defenders. I only get a change to play instants and effects.
In InputControl.getActualInput() there is a check for wether player with priority is getting attacked before setting the Block Input state.However, at that point the player with priority is the attacking player, so the check always evaluates to false.
- 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 Hellfish » 21 Oct 2012, 20:42
Aye, I got a horrible horrible hack (tm) going that just assumes there is only one human player and creates a block state for them if they're under attack but that's hardly conducive to the multiplayer work. I'll hold off atm..
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Bug Reports (snapshot builds)
by Milod » 21 Oct 2012, 22:03
herald of war ability isent working ( angels cost less to cast for each counter)
Re: Bug Reports (snapshot builds)
by Max mtg » 22 Oct 2012, 04:27
Thanks for not having planted a lot of hacksfriarsol wrote:It should probably be going through all non-active players for blocking. Max has been doing a good job flagging these issues down, I'd imagine he'll get to it soon enough.Hellfish wrote:In InputControl.getActualInput() there is a check for wether player with priority is getting attacked before setting the Block Input state.However, at that point the player with priority is the attacking player, so the check always evaluates to false.

- Code: Select all
if (!isUnderAttack) { // noone attacks you
handler.passPriority();
return null;
}
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: Bug Reports (snapshot builds)
by Diogenes » 22 Oct 2012, 11:45
The "end turn" button now passes priority until the AI does something. If you use it during your own turn, you will automatically pass priority through the end of your turn and all phases of the AI's turn until the AI does something to which you can respond.
Re: Bug Reports (snapshot builds)
by Bundy » 22 Oct 2012, 17:26
forge-1.2.16-20121022.102807-16
I can block again!
The 'end turn' button works perfectly!
Found a bug in the emblem of Tamiyo, the Moon Sage, it decreases my handsize
I have the emblem in play and 2 cards in my hand, the message in the prompt reads: "Cleanup Phase: You can only have a maximum of -1 cards, you currently have 2 cards in your hand - select a card to discard"
When i discard my 2 cards, i still have to discard because my hand size is -1, but i have nothing left to discard
I can block again!

The 'end turn' button works perfectly!

Found a bug in the emblem of Tamiyo, the Moon Sage, it decreases my handsize

I have the emblem in play and 2 cards in my hand, the message in the prompt reads: "Cleanup Phase: You can only have a maximum of -1 cards, you currently have 2 cards in your hand - select a card to discard"
When i discard my 2 cards, i still have to discard because my hand size is -1, but i have nothing left to discard

- Bundy
- Posts: 348
- Joined: 17 Dec 2010, 17:32
- Location: The netherlands
- Has thanked: 23 times
- Been thanked: 3 times
Re: Bug Reports (snapshot builds)
by moomarc » 22 Oct 2012, 17:43
-1 used to flag the unlimited hand size. Must have been broken somewhere recently.Bundy wrote:forge-1.2.16-20121022.102807-16
I can block again!![]()
The 'end turn' button works perfectly!
Found a bug in the emblem of Tamiyo, the Moon Sage, it decreases my handsize![]()
I have the emblem in play and 2 cards in my hand, the message in the prompt reads: "Cleanup Phase: You can only have a maximum of -1 cards, you currently have 2 cards in your hand - select a card to discard"
When i discard my 2 cards, i still have to discard because my hand size is -1, but i have nothing left to discard
-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Bug Reports (snapshot builds)
by Max mtg » 22 Oct 2012, 17:54
Ah... still that -1 made sense!moomarc wrote:-1 used to flag the unlimited hand size. Must have been broken somewhere recently.
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: Bug Reports (snapshot builds)
by Bundy » 22 Oct 2012, 18:58
forge-1.2.16-20121022.102807-16
Computer uses Deathrite Shaman to exile my Gemstone Mine, then this error pops up. Gemstone mine was exiled in my turn while i was casting Contagion Engine. Gemstone mine went to the graveyard because i used it's last counter for Contagion Engine.
No mouseover for Deathrite Shaman, so here is the tekst for it's used ability: Tap: Exile target land card from a graveyard. Add one mana of any color to your mana pool.
Computer uses Deathrite Shaman to exile my Gemstone Mine, then this error pops up. Gemstone mine was exiled in my turn while i was casting Contagion Engine. Gemstone mine went to the graveyard because i used it's last counter for Contagion Engine.
No mouseover for Deathrite Shaman, so here is the tekst for it's used ability: Tap: Exile target land card from a graveyard. Add one mana of any color to your mana pool.
- | 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.
AbilityFactoryMana::manaResolve() - any color mana choice is empty for Deathrite Shaman
Version:
Forge version 1.2.16-SNAPSHOT
OS: Windows 7 Version: 6.1 Architecture: x86
Java Version: 1.7.0_07 Vendor: Oracle Corporation
Detailed error trace:
java.lang.RuntimeException: AbilityFactoryMana::manaResolve() - any color mana choice is empty for Deathrite Shaman
at forge.card.abilityfactory.AbilityFactoryMana.manaResolve(AbilityFactoryMana.java:445)
at forge.card.abilityfactory.AbilityFactoryMana$1DrawbackMana.resolve(AbilityFactoryMana.java:223)
at forge.card.abilityfactory.AbilityFactory.passUnlessCost(AbilityFactory.java:2762)
at forge.card.abilityfactory.AbilityFactory.resolveSubAbilities(AbilityFactory.java:2920)
at forge.card.abilityfactory.AbilityFactory.passUnlessCost(AbilityFactory.java:2763)
at forge.card.abilityfactory.AbilityFactory.resolve(AbilityFactory.java:2892)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:915)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:754)
at forge.control.input.InputPassPriority.selectButtonOK(InputPassPriority.java:75)
at forge.gui.GuiInput.selectButtonOK(GuiInput.java:79)
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.AbstractButton.doClick(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at forge.gui.toolbox.FButton$1.keyPressed(FButton.java:91)
at java.awt.Component.processKeyEvent(Unknown Source)
at javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(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)
- Bundy
- Posts: 348
- Joined: 17 Dec 2010, 17:32
- Location: The netherlands
- Has thanked: 23 times
- Been thanked: 3 times
Re: Bug Reports (snapshot builds)
by friarsol » 22 Oct 2012, 23:35
I fixed QuestWinLoseHandler from improperly losing the ante when you actually win the first game in 17604, but I just played a game and it's broken again. I'm not sure why this was undone, but whoever undid my bugfix, can you look into and determine why it's broken.
- 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 Max mtg » 23 Oct 2012, 04:43
This is why I don't like branchesfriarsol wrote:I fixed QuestWinLoseHandler from improperly losing the ante when you actually win the first game in 17604, but I just played a game and it's broken again. I'm not sure why this was undone, but whoever undid my bugfix, can you look into and determine why it's broken.
I lost your change while moving the broken 17605 into a branch and back. See if its behaving proprtly in r17658+
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: Bug Reports (snapshot builds)
by friarsol » 23 Oct 2012, 12:24
Yea git does a much better job of handling branches than svn does.Max mtg wrote:This is why I don't like branches
- 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 ArsenalNut » 23 Oct 2012, 12:52
I checked in a fix for this in r17648. Don't know that the AI will really use the mana effectively though.Bundy wrote:forge-1.2.16-20121022.102807-16
Computer uses Deathrite Shaman to exile my Gemstone Mine, then this error pops up. Gemstone mine was exiled in my turn while i was casting Contagion Engine. Gemstone mine went to the graveyard because i used it's last counter for Contagion Engine.
No mouseover for Deathrite Shaman, so here is the tekst for it's used ability: Tap: Exile target land card from a graveyard. Add one mana of any color to your mana pool.
- | 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.
AbilityFactoryMana::manaResolve() - any color mana choice is empty for Deathrite Shaman
Version:
Forge version 1.2.16-SNAPSHOT
OS: Windows 7 Version: 6.1 Architecture: x86
Java Version: 1.7.0_07 Vendor: Oracle Corporation
Detailed error trace:
java.lang.RuntimeException: AbilityFactoryMana::manaResolve() - any color mana choice is empty for Deathrite Shaman
at forge.card.abilityfactory.AbilityFactoryMana.manaResolve(AbilityFactoryMana.java:445)
at forge.card.abilityfactory.AbilityFactoryMana$1DrawbackMana.resolve(AbilityFactoryMana.java:223)
at forge.card.abilityfactory.AbilityFactory.passUnlessCost(AbilityFactory.java:2762)
at forge.card.abilityfactory.AbilityFactory.resolveSubAbilities(AbilityFactory.java:2920)
at forge.card.abilityfactory.AbilityFactory.passUnlessCost(AbilityFactory.java:2763)
at forge.card.abilityfactory.AbilityFactory.resolve(AbilityFactory.java:2892)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:915)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:754)
at forge.control.input.InputPassPriority.selectButtonOK(InputPassPriority.java:75)
at forge.gui.GuiInput.selectButtonOK(GuiInput.java:79)
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.AbstractButton.doClick(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at forge.gui.toolbox.FButton$1.keyPressed(FButton.java:91)
at java.awt.Component.processKeyEvent(Unknown Source)
at javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(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)
So many cards, so little time
-
ArsenalNut - Posts: 512
- Joined: 08 Jul 2011, 03:49
- Has thanked: 27 times
- Been thanked: 121 times
Re: Bug Reports (snapshot builds)
by swordshine » 23 Oct 2012, 13:46
Metalworker 's mana ablility can be responded to (e.g. Stifle). This is not correct.
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Bug Reports (snapshot builds)
by friarsol » 24 Oct 2012, 00:21
r17690
Just got this crash. AI had 2/2 First striking Goblin and a 2/2 Goblin King. I had a mountain. Mountainwalking Goblin tried to attack and i got this.
Just got this crash. AI had 2/2 First striking Goblin and a 2/2 Goblin King. I had a mountain. Mountainwalking Goblin tried to attack and i got this.
- AI Landwalk | Open
- java.lang.NullPointerException
at forge.game.phase.CombatUtil.isUnblockableFromLandwalk(CombatUtil.java:286)
at forge.game.phase.CombatUtil.canBeBlocked(CombatUtil.java:224)
at forge.game.phase.CombatUtil.canBlock(CombatUtil.java:627)
at forge.game.phase.CombatUtil.canBlock(CombatUtil.java:604)
at forge.game.player.ComputerUtilAttack.canBlockAnAttacker(ComputerUtilAttack.java:199)
at forge.game.player.ComputerUtilAttack$1.apply(ComputerUtilAttack.java:176)
at forge.game.player.ComputerUtilAttack$1.apply(ComputerUtilAttack.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:348)
at forge.game.player.ComputerUtilAttack.getPossibleBlockers(ComputerUtilAttack.java:173)
at forge.game.player.ComputerUtilAttack.<init>(ComputerUtilAttack.java:85)
at forge.game.player.ComputerUtil.getAttackers(ComputerUtil.java:1771)
at forge.game.player.ComputerAIGeneral.declareAttackers(ComputerAIGeneral.java:287)
at forge.game.player.ComputerAIInput.think(ComputerAIInput.java:105)
at forge.game.player.ComputerAIInput.showMessage(ComputerAIInput.java:73)
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Who is online
Users browsing this forum: No registered users and 58 guests