SVN Bug Reports
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Agetian, friarsol, Blacksmith, KrazyTheFox, CCGHQ Admins
Re: SVN Bug Reports
by Sloth » 06 Jun 2011, 07:46
Someone thought wither damage should use damageFromNonEffect (and the function damageFromNonEffect didn't have a M1M1/P1P1 exchange check).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 ChangeZonefriarsol 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.
-

Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: SVN Bug Reports
by slapshot5 » 06 Jun 2011, 12:18
The offending code is here in SpellAbility.java:slapshot5 wrote:What happened? It never used to be this way?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).
And this works on Siren's Call for example, but on Clone, this forced the getStackDescription() text to be added to the card.
-slapshot5
- Code: Select all
public void setStackDescription(String s) {
stackDescription = s;
if(description == "")
description = s;
}
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
by Sloth » 06 Jun 2011, 14:16
Seems rather unintuitive to me. Who would set a stack description and no description.slapshot5 wrote:The offending code is here in SpellAbility.java:If you comment out the if block, the duplicate text issue is gone.
- Code: Select all
public void setStackDescription(String s) {
stackDescription = s;
if(description == "")
description = s;
}
Isn't this done automaticly when a spell without stack description hits the stack?slapshot5 wrote:(setting the stack description from the description is ok; we do that at times.)
-

Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: SVN Bug Reports
by slapshot5 » 06 Jun 2011, 16:17
Yeah, I think that's how it works.Sloth wrote:Isn't this done automaticly when a spell without stack description hits the stack?slapshot5 wrote:(setting the stack description from the description is ok; we do that at times.)
- 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
by 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.
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
by 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?
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?
Re: SVN Bug Reports
by friarsol » 07 Jun 2011, 18:48
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?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?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: SVN Bug Reports
by Jaedayr » 07 Jun 2011, 19:26
No, but next time I get crystallized I will watch for it.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?
Re: SVN Bug Reports
by 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
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
Re: SVN Bug Reports
by jeffwadsworth » 07 Jun 2011, 20:07
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.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
- 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
by slapshot5 » 07 Jun 2011, 23:42
r9381
Error in Phyrexian Swarmlord:
-slapshot5
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
by 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.
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.
Re: SVN Bug Reports
by 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.
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.
Re: SVN Bug Reports
by Sloth » 08 Jun 2011, 19:41
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
The Forest enchanted by Awakener Druid remains a creature the turn after the druid is put into the graveyard.
I started a topic for the broken unless cost.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.
-

Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: SVN Bug Reports
by 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.
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.
Who is online
Users browsing this forum: No registered users and 97 guests