It is currently 04 Nov 2025, 20:24
   
Text Size

SVN Bug Reports

Post MTG Forge Related Programming Questions Here

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

Re: SVN Bug Reports

Postby Sloth » 06 Jun 2011, 07:46

friarsol wrote:r9314
Pupeteer Clique doesn't seem to give Raised Creature Haste or Exile keywords. Probably has to do with the fact the Target happens before a ChangeZone

friarsol wrote:Also, my 3/3 Mindless Automaton took 2 Wither damage, and now it has 3 +1/+1 counters and 2 -1/-1 counters. It should only have 1 +1/+1 Counter.
Someone thought wither damage should use damageFromNonEffect (and the function damageFromNonEffect didn't have a M1M1/P1P1 exchange check).
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: SVN Bug Reports

Postby slapshot5 » 06 Jun 2011, 12:18

slapshot5 wrote:
Sloth wrote:The problem with duplicate spell texts comes from cards with:
A. "SpellAbility XXX = new Spell(card)" and
B. "card.addSpellAbility(XXX);"

just put "XXX.setDescription("");" before B and the duplicate is gone (But maybe the stack description too).
What happened? It never used to be this way?

And this works on Siren's Call for example, but on Clone, this forced the getStackDescription() text to be added to the card.

-slapshot5
The offending code is here in SpellAbility.java:
Code: Select all
public void setStackDescription(String s) {
        stackDescription = s;
        if(description == "")
            description = s;
    }
If you comment out the if block, the duplicate text issue is gone.

Two options:
1. make it "if(description == "" && sourceCard.getText().equals(""))"
2. just delete it since setting the description from the stack description seems wrong. (setting the stack description from the description is ok; we do that at times.)

Thoughts?

-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 Sloth » 06 Jun 2011, 14:16

slapshot5 wrote:The offending code is here in SpellAbility.java:
Code: Select all
public void setStackDescription(String s) {
        stackDescription = s;
        if(description == "")
            description = s;
    }
If you comment out the if block, the duplicate text issue is gone.
Seems rather unintuitive to me. Who would set a stack description and no description.

slapshot5 wrote:(setting the stack description from the description is ok; we do that at times.)
Isn't this done automaticly when a spell without stack description hits the stack?
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: SVN Bug Reports

Postby slapshot5 » 06 Jun 2011, 16:17

Sloth wrote:
slapshot5 wrote:(setting the stack description from the description is ok; we do that at times.)
Isn't this done automaticly when a spell without stack description hits the stack?
Yeah, I think that's how it works.
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 » 07 Jun 2011, 05:58

r9354

AI is animates Inkmoth Nexus but then taps the Nexus itself to generate mana for something else. He keeps doing some silly stuff like animating then tapping itself equip itself and getting nothing useful in the process.
lazylockie
 
Posts: 508
Joined: 13 Jul 2010, 22:44
Has thanked: 74 times
Been thanked: 15 times

Re: SVN Bug Reports

Postby Jaedayr » 07 Jun 2011, 18:36

r9373

AI cast Crystallization on my Steel Overseer and it worked as expected. The next turn it cast a second Crystallization on the same creature. The Overseer went to exile, one Crystallization went to the graveyard and the second one stayed on the playing field, enchanting nothing. Should both of them have gone to the graveyard?
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby friarsol » 07 Jun 2011, 18:48

Jaedayr wrote:r9373

AI cast Crystallization on my Steel Overseer and it worked as expected. The next turn it cast a second Crystallization on the same creature. The Overseer went to exile, one Crystallization went to the graveyard and the second one stayed on the playing field, enchanting nothing. Should both of them have gone to the graveyard?
Yep, the second one should have fizzled, and the first one should have gone to GY as a state based effect. Do you know which one stayed on the Battlefield?
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 » 07 Jun 2011, 19:26

friarsol wrote:Yep, the second one should have fizzled, and the first one should have gone to GY as a state based effect. Do you know which one stayed on the Battlefield?
No, but next time I get crystallized I will watch for it.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Jaedayr » 07 Jun 2011, 19:44

r9373

I had Painsmith on the battlefield and I cast Steel Overseer. I gave deathtouch to Sheoldred, Whispering One and the overseer completely disappeared from the game. It is not on the playing field, not in graveyard or exile and I even checked my library. I have also had Barbed Battlegear in my hand for a few games today and have never been able to play it. Hovering the mouse over it gives the green highlight but clicking does nothing.

I won the game and started the next one. I started the game with Steel Overseer and Barbed Battlegear in my hand and was unable to cast either of them.

I exited quest mode to investigate. I made the following deck and started a normal game, generated mana, played Barbed Battlegear, Painsmith and tried to cast Steel Overseer. It disappeared. I don't know if there is a complex bug here or not, but hopefully someone can check this out.

12 Barbed Battlegear
12 Steel Overseer
12 Painsmith
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby jeffwadsworth » 07 Jun 2011, 20:07

Jaedayr wrote:r9373

I had Painsmith on the battlefield and I cast Steel Overseer. I gave deathtouch to Sheoldred, Whispering One and the overseer completely disappeared from the game. It is not on the playing field, not in graveyard or exile and I even checked my library. I have also had Barbed Battlegear in my hand for a few games today and have never been able to play it. Hovering the mouse over it gives the green highlight but clicking does nothing.

I won the game and started the next one. I started the game with Steel Overseer and Barbed Battlegear in my hand and was unable to cast either of them.

I exited quest mode to investigate. I made the following deck and started a normal game, generated mana, played Barbed Battlegear, Painsmith and tried to cast Steel Overseer. It disappeared. I don't know if there is a complex bug here or not, but hopefully someone can check this out.

12 Barbed Battlegear
12 Steel Overseer
12 Painsmith
I can not give specifics, but I noticed some zaniness like this also. A card would just disappear during a game. I thought it was a fluke.
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 » 07 Jun 2011, 23:42

r9381

Error in Phyrexian Swarmlord:
| Open
There is an error in the card code for Phyrexian Swarmlord:

java.lang.NullPointerException
at forge.card.spellability.SpellAbility_Restriction.canPlay(SpellAbility_Restriction.java:143)
at forge.card.spellability.Spell.canPlay(Spell.java:47)
at forge.card.spellability.Spell_Permanent.canPlay(Spell_Permanent.java:179)
at forge.ComputerAI_General.getPlayable(ComputerAI_General.java:209)
at forge.ComputerAI_General.getOtherPhases(ComputerAI_General.java:187)
at forge.ComputerAI_General.stackResponse(ComputerAI_General.java:307)
at forge.ComputerAI_General.stack_not_empty(ComputerAI_General.java:300)
at forge.gui.input.InputControl.updateInput(InputControl.java:151)
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.gui.input.InputControl.resetInput(InputControl.java:58)
at forge.Phase.passPriority(Phase.java:514)
at forge.gui.input.Input_PassPriority.selectButtonOK(Input_PassPriority.java:42)
at forge.GuiInput.selectButtonOK(GuiInput.java:37)
at forge.GuiDisplay4.okButtonActionPerformed(GuiDisplay4.java:962)
at forge.GuiDisplay4.access$3(GuiDisplay4.java:961)
at forge.GuiDisplay4$26.actionPerformed(GuiDisplay4.java:749)
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:6151)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4736)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4566)
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:4608)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4566)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:680)
at java.awt.EventQueue.access$000(EventQueue.java:86)
at java.awt.EventQueue$1.run(EventQueue.java:639)
at java.awt.EventQueue$1.run(EventQueue.java:637)
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:653)
at java.awt.EventQueue$2.run(EventQueue.java:651)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:650)
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)
java.lang.NullPointerException
at forge.card.spellability.SpellAbility_Restriction.canPlay(SpellAbility_Restriction.java:143)
at forge.card.spellability.Spell.canPlay(Spell.java:47)
at forge.card.spellability.Spell_Permanent.canPlay(Spell_Permanent.java:179)
at forge.GameAction.canPlaySpellAbility(GameAction.java:1890)
at forge.GameAction.playCard(GameAction.java:1296)
at forge.gui.input.Input_PassPriority.selectCard(Input_PassPriority.java:52)
at forge.GuiInput.selectCard(GuiInput.java:49)
at forge.GuiDisplay4$13.mousePressed(GuiDisplay4.java:419)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
at java.awt.Component.processMouseEvent(Component.java:6371)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6139)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4736)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4566)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4279)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4566)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:680)
at java.awt.EventQueue.access$000(EventQueue.java:86)
at java.awt.EventQueue$1.run(EventQueue.java:639)
at java.awt.EventQueue$1.run(EventQueue.java:637)
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:653)
at java.awt.EventQueue$2.run(EventQueue.java:651)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:650)
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 Jaedayr » 08 Jun 2011, 19:03

r9397

The Forest enchanted by Awakener Druid remains a creature the turn after the druid is put into the graveyard.

Also, sometimes when the druid enters play the selected forest is moved out of the stack of other forests into a new spot in the land area, sometimes it is not. It would be nice to have it always move out from the stack. A forest enchanted in this manner gains focus when moused over, even if it is covered by four other forests. If you click on a covering forest for mana, you tap the creature instead, unless you maneuver the mouse to the edge where your target is not covering up the creature.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Jaedayr » 08 Jun 2011, 19:31

r9397

AI cast Mana Tithe as I was casting Enemy of the Guildpact. I had no additional mana and clicked Cancel. My creature entered the battlefield anyway.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

Re: SVN Bug Reports

Postby Sloth » 08 Jun 2011, 19:41

Jaedayr wrote:r9397
The Forest enchanted by Awakener Druid remains a creature the turn after the druid is put into the graveyard.
I think this is the same bug as a destroyed Sower of Temptation not giving back the creatures. These cards have LeavesPlayCommands that do not resolve for some reason.

Jaedayr wrote:r9397
AI cast Mana Tithe as I was casting Enemy of the Guildpact. I had no additional mana and clicked Cancel. My creature entered the battlefield anyway.
I started a topic for the broken unless cost.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: SVN Bug Reports

Postby Jaedayr » 08 Jun 2011, 20:21

r9397

This may be wild coincidence or not, and it makes absolutely no sense to me, but here goes.

I have seen a lot of cards in the past couple days that I was unable to play. The can be the first, second, third or fourth card in my hand, at the beginning of the game or drawn later. Today I have changed some cards in my deck and have noticed that CardID 18 and CardID 40 (out of a 40 card deck) have frequently been unplayable, both in my old and new decks. It may be nothing, but I would rather share the info in the off-chance it makes sense to somebody.
Jaedayr
Tester
 
Posts: 523
Joined: 08 Jul 2010, 00:06
Has thanked: 16 times
Been thanked: 13 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 97 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 97 users online :: 0 registered, 0 hidden and 97 guests (based on users active over the past 10 minutes)
Most users ever online was 9298 on 10 Oct 2025, 12:54

Users browsing this forum: No registered users and 97 guests

Login Form