It is currently 14 Aug 2025, 21:04
   
Text Size

SVN Bug Reports

Post MTG Forge Related Programming Questions Here

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

Re: SVN Bug Reports

Postby friarsol » 27 Jan 2011, 21:11

Hellfish wrote:Pretty sure that's intentional, because you should get to see your entire library.
Yep. This is a feature. The first dialog box even says "Looking at your Library" not "Select a Card" like the second one does.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby Jaedayr » 27 Jan 2011, 21:34

r5823

Code: Select all
An error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to:
   http://www.slightlymagic.net/forum/viewforum.php?f=26
If you don't want to register an account, you can mail it directly to
   mtgerror@yahoo.com


AbilityFactory : getAbility -- abString too short in Runed Servitor


Version:
Forge -- official beta: $Date: 2011-01-06 11:34:48 -0500 (Thu, 06 Jan 2011) $, SVN revision: $Revision: 4891 $

OS: Windows XP Version: 5.1 Architecture: x86

Java Version: 1.6.0_23 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.RuntimeException: AbilityFactory : getAbility -- abString too short in Runed Servitor
   at forge.AbilityFactory.getAbility(AbilityFactory.java:98)
   at forge.TriggerHandler.runSingleTrigger(TriggerHandler.java:237)
   at forge.TriggerHandler.runTrigger(TriggerHandler.java:197)
   at forge.GameAction.moveTo(GameAction.java:84)
   at forge.GameAction.moveToGraveyard(GameAction.java:172)
   at forge.GameAction.sacrificeDestroy(GameAction.java:2075)
   at forge.GameAction.destroy(GameAction.java:2200)
   at forge.GameAction.checkStateEffects(GameAction.java:515)
   at forge.GameAction.checkWheneverKeyword(GameAction.java:713)
   at forge.GameAction.sacrificeDestroy(GameAction.java:2093)
   at forge.GameAction.destroy(GameAction.java:2200)
   at forge.GameAction.checkStateEffects(GameAction.java:515)
   at forge.Phase.handleBeginPhase(Phase.java:252)
   at forge.InputControl.updateInput(InputControl.java:91)
   at forge.GuiInput.update(GuiInput.java:19)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.MyObservable.updateObservers(MyObservable.java:9)
   at forge.Phase.nextPhase(Phase.java:372)
   at forge.GuiDisplay4$25.actionPerformed(GuiDisplay4.java:781)
   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.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.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)
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby jeffwadsworth » 27 Jan 2011, 23:25

Cheers.
Last edited by jeffwadsworth on 28 Jan 2011, 06:51, edited 1 time in total.
jeffwadsworth
Super Tester Elite
 
Posts: 1172
Joined: 20 Oct 2010, 04:47
Location: USA
Has thanked: 287 times
Been thanked: 70 times

Re: SVN Bug Reports

Postby slapshot5 » 28 Jan 2011, 01:45

Jaedayr wrote:r5823

Code: Select all
An error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to:
   http://www.slightlymagic.net/forum/viewforum.php?f=26
If you don't want to register an account, you can mail it directly to
   mtgerror@yahoo.com


AbilityFactory : getAbility -- abString too short in Runed Servitor


Version:
Forge -- official beta: $Date: 2011-01-06 11:34:48 -0500 (Thu, 06 Jan 2011) $, SVN revision: $Revision: 4891 $

OS: Windows XP Version: 5.1 Architecture: x86

Java Version: 1.6.0_23 Vendor: Sun Microsystems Inc.

Detailed error trace:
java.lang.RuntimeException: AbilityFactory : getAbility -- abString too short in Runed Servitor
   at forge.AbilityFactory.getAbility(AbilityFactory.java:98)
   at forge.TriggerHandler.runSingleTrigger(TriggerHandler.java:237)
   at forge.TriggerHandler.runTrigger(TriggerHandler.java:197)
   at forge.GameAction.moveTo(GameAction.java:84)
   at forge.GameAction.moveToGraveyard(GameAction.java:172)
   at forge.GameAction.sacrificeDestroy(GameAction.java:2075)
   at forge.GameAction.destroy(GameAction.java:2200)
   at forge.GameAction.checkStateEffects(GameAction.java:515)
   at forge.GameAction.checkWheneverKeyword(GameAction.java:713)
   at forge.GameAction.sacrificeDestroy(GameAction.java:2093)
   at forge.GameAction.destroy(GameAction.java:2200)
   at forge.GameAction.checkStateEffects(GameAction.java:515)
   at forge.Phase.handleBeginPhase(Phase.java:252)
   at forge.InputControl.updateInput(InputControl.java:91)
   at forge.GuiInput.update(GuiInput.java:19)
   at java.util.Observable.notifyObservers(Unknown Source)
   at java.util.Observable.notifyObservers(Unknown Source)
   at forge.MyObservable.updateObservers(MyObservable.java:9)
   at forge.Phase.nextPhase(Phase.java:372)
   at forge.GuiDisplay4$25.actionPerformed(GuiDisplay4.java:781)
   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.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.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)
I ran into this the other day for some card I was making. But I have no recollection of what the problem was. #-o Maybe whoever looks into it will improve the error message.

-slapshot5
slapshot5
Programmer
 
Posts: 1391
Joined: 03 Jan 2010, 17:47
Location: Mac OS X
Has thanked: 25 times
Been thanked: 68 times

Re: SVN Bug Reports

Postby friarsol » 28 Jan 2011, 02:39

Oh I fixed what was causing the problem. It had to do with the SVar that was being executed wasn't defined. Usually the executed one wasn't renamed to the one on the card.

Also, slap, I was trying to fix a bug with Primal Clay going to the graveyard before letting you choose. I know you worked on the */* stuff, maybe you can check it out?
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby slapshot5 » 28 Jan 2011, 03:23

friarsol wrote:Also, slap, I was trying to fix a bug with Primal Clay going to the graveyard before letting you choose. I know you worked on the */* stuff, maybe you can check it out?
Sure thing.
slapshot5
Programmer
 
Posts: 1391
Joined: 03 Jan 2010, 17:47
Location: Mac OS X
Has thanked: 25 times
Been thanked: 68 times

Re: SVN Bug Reports

Postby lazylockie » 28 Jan 2011, 03:50

r5822

Wurmcoil Engine 's tokens are also artifacts.

Name:Wurmcoil Engine
ManaCost:6
Types:Artifact Creature Wurm
Text:no text
PT:6/6
K:Deathtouch
K:Lifelink
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, put a 3/3 colorless Wurm artifact creature token with deathtouch and a 3/3 colorless Wurm artifact creature token with lifelink onto the battlefield.
SVar:TrigToken:AB$Token | Cost$ 0 | TokenImage$ C 3 3 Wurm Deathtouch | TokenColors$ Colorless | TokenAmount$ 1 | TokenName$ Wurm | TokenTypes$ Artifact,Creature,Wurm | TokenPower$ 3 | TokenToughness$ 3 | TokenKeywords$ Deathtouch | SubAbility$SVar=DBToken
SVar:DBToken:DB$Token | TokenImage$ C 3 3 Wurm Lifelink | TokenColors$ Colorless | TokenAmount$ 1 | TokenName$ Wurm | TokenTypes$ Artifact,Creature,Wurm | TokenPower$ 3 | TokenToughness$ 3 | TokenKeywords$ Lifelink
SVar:Picture:http://www.wizards.com/global/images/magic/general/wurmcoil_engine.jpg
SVar:Rarity:Mythic
SetInfo:SOM|Mythic|http://magiccards.info/scans/en/som/223.jpg
End
lazylockie
 
Posts: 508
Joined: 13 Jul 2010, 22:44
Has thanked: 74 times
Been thanked: 15 times

Re: SVN Bug Reports

Postby slapshot5 » 28 Jan 2011, 03:50

slapshot5 wrote:
friarsol wrote:Also, slap, I was trying to fix a bug with Primal Clay going to the graveyard before letting you choose. I know you worked on the */* stuff, maybe you can check it out?
Sure thing.
I think the problem is card.addComesIntoPlayCommand() (which Primal Clay uses) is too late (state effects have already sent it to the graveyard before this triggered ability resolves). That is for "When this card enters the battlefield", Primal Clay needs "As this card enters the battlefield". Several other cards have "As this card enters the battlefield", but the timing doesn't make any difference. For Primal Clay, it does. The */* is basically only for display in the Deck Editor. The easy fix here is to set the P/T to a default of 3/3 when getCard() is called. If we're releasing beta this weekend, I'll do that for now. We'll need to think a bit more about how to properly implement "As CARDNAME comes into play..."

-slapshot5
slapshot5
Programmer
 
Posts: 1391
Joined: 03 Jan 2010, 17:47
Location: Mac OS X
Has thanked: 25 times
Been thanked: 68 times

Re: SVN Bug Reports

Postby friarsol » 28 Jan 2011, 04:07

slapshot5 wrote:I think the problem is card.addComesIntoPlayCommand() (which Primal Clay uses) is too late (state effects have already sent it to the graveyard before this triggered ability resolves). That is for "When this card enters the battlefield", Primal Clay needs "As this card enters the battlefield". Several other cards have "As this card enters the battlefield", but the timing doesn't make any difference. For Primal Clay, it does. The */* is basically only for display in the Deck Editor. The easy fix here is to set the P/T to a default of 3/3 when getCard() is called. If we're releasing beta this weekend, I'll do that for now. We'll need to think a bit more about how to properly implement "As CARDNAME comes into play..."
Yep. I got about that far before I realized that's what was going on. I tried resolving the choice immediately instead of adding it to the stack, but that was also too slow. "As CARDNAME comes into play" should really be occurring before the state effects are checked (or triggers occurred) since it's a static effect itself, but we don't really have the code for that right now. Sounds like a good enough fix for now.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby slapshot5 » 28 Jan 2011, 14:23

r5845

I'm getting a NPE with Essence Fracture on this line in AF_ChangeZone in changeKnownOriginCanPlayAI():
Code: Select all
if (CardFactoryUtil.AI_getMostExpensivePermanent(list, af.getHostCard(), false).isCreature()
when compy tries to play Essence Fracture. I only have 1 creature out. Compy has 2 creatures out.

full stack
Code: Select all
n error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to:
   http://www.slightlymagic.net/forum/viewforum.php?f=26
If you don't want to register an account, you can mail it directly to
   mtgerror@yahoo.com


There is an error in the card code for Essence Fracture:



Version:
Forge -- official beta: $Date: 2011-01-06 10:34:48 -0600 (Thu, 06 Jan 2011) $, SVN revision: $Revision: 4891 $

OS: Mac OS X Version: 10.6.6 Architecture: x86_64

Java Version: 1.6.0_22 Vendor: Apple Inc.

Detailed error trace:
java.lang.NullPointerException
   at forge.AbilityFactory_ChangeZone.changeKnownOriginCanPlayAI(AbilityFactory_ChangeZone.java:658)
   at forge.AbilityFactory_ChangeZone.changeZoneCanPlayAI(AbilityFactory_ChangeZone.java:114)
   at forge.AbilityFactory_ChangeZone.access$0(AbilityFactory_ChangeZone.java:106)
   at forge.AbilityFactory_ChangeZone$2.canPlayAI(AbilityFactory_ChangeZone.java:43)
   at forge.ComputerAI_General.getPlayable(ComputerAI_General.java:178)
   at forge.ComputerAI_General.getMain1(ComputerAI_General.java:112)
   at forge.ComputerAI_General.playCards(ComputerAI_General.java:34)
   at forge.ComputerAI_General.main1(ComputerAI_General.java:21)
   at forge.ComputerAI_Input.think(ComputerAI_Input.java:46)
   at forge.ComputerAI_Input.showMessage(ComputerAI_Input.java:31)
   at forge.GuiInput.setInput(GuiInput.java:27)
   at forge.GuiInput.update(GuiInput.java:21)
   at java.util.Observable.notifyObservers(Observable.java:142)
   at java.util.Observable.notifyObservers(Observable.java:98)
   at forge.MyObservable.updateObservers(MyObservable.java:9)
   at forge.Phase.nextPhase(Phase.java:372)
   at forge.GuiDisplay4$25.actionPerformed(GuiDisplay4.java:781)
   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:1639)
   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:6129)
   at java.awt.Container.processEvent(Container.java:2085)
   at java.awt.Component.dispatchEventImpl(Component.java:4714)
   at java.awt.Container.dispatchEventImpl(Container.java:2143)
   at java.awt.Component.dispatchEvent(Component.java:4544)
   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:4586)
   at java.awt.Container.dispatchEventImpl(Container.java:2143)
   at java.awt.Window.dispatchEventImpl(Window.java:2478)
   at java.awt.Component.dispatchEvent(Component.java:4544)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
   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)
-slapshot5
slapshot5
Programmer
 
Posts: 1391
Joined: 03 Jan 2010, 17:47
Location: Mac OS X
Has thanked: 25 times
Been thanked: 68 times

Re: SVN Bug Reports

Postby friarsol » 28 Jan 2011, 15:51

List is empty. getMost... returns a null, then we try to find out if null is a creature. I'll fix the check above to make sure there's enough minimum creatures.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: SVN Bug Reports

Postby Jaedayr » 28 Jan 2011, 17:54

r5868

AI attacked with Iron Tusk Elephant and I blocked with Steel Wall. The wall went to the graveyard. I thought I saw this yesterday but was clicking too fast to get the details.

This was on Eclipse console.

Code: Select all
Adding 4 damage to Steel Wall
AI has Savannah Lions and Utopia Tree on the battlefield and has cast no spells during this turn.

I checked the wall txt and it has

Code: Select all
SVar:RemAIDeck:True
which seems a little strange to me but I don't know if it has any relationship to what happened.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Jaedayr » 28 Jan 2011, 18:55

r5868

The pic for Voja (ability of Tolsimir Wolfblood) does not appear on the battlefield. I have gw_2_2_voja.jpg in the tokens folder.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Jaedayr » 28 Jan 2011, 19:06

r5868

The level 1 hound pet in the new UI Bazaar says it is 1/1. However in game it is 0/1.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Sloth » 28 Jan 2011, 22:44

Jaedayr wrote:r5868

AI attacked with Iron Tusk Elephant and I blocked with Steel Wall. The wall went to the graveyard. I thought I saw this yesterday but was clicking too fast to get the details.

This was on Eclipse console.

Code: Select all
Adding 4 damage to Steel Wall
This is fixed now. It was a more general bug. Thanks for pointing out Jaedayr.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 19 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 19 users online :: 0 registered, 0 hidden and 19 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 19 guests

Login Form