Page 117 of 487

Re: Bug Reports (snapshot builds)

PostPosted: 10 Apr 2013, 00:54
by friarsol
r20921

Description: Shade Quest AI had a Nether Traitor enchanted with a Shade's Form. When it went to declare an attacker I got this NPE.

NullPointerException | Open
Code: Select all
Forge Version:    SVN
Operating System: Windows 7 6.1 x86
Java Version:     1.6.0_30 Sun Microsystems Inc.

java.lang.NullPointerException
   at forge.card.mana.ManaCostBeingPaid.applySpellCostChange(ManaCostBeingPaid.java:708)
   at forge.game.ai.ComputerUtilMana.calculateManaCost(ComputerUtilMana.java:418)
   at forge.game.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:60)
   at forge.game.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:356)
   at forge.game.ai.ComputerUtilCombat.predictPowerBonusOfAttacker(ComputerUtilCombat.java:1064)
   at forge.game.ai.ComputerUtilCombat.damageIfUnblocked(ComputerUtilCombat.java:129)
   at forge.game.ai.ComputerUtilCombat.sumDamageIfUnblocked(ComputerUtilCombat.java:184)
   at forge.game.ai.AiAttackController.doAssault(AiAttackController.java:426)
   at forge.game.ai.AiAttackController.getAttackers(AiAttackController.java:502)
   at forge.game.ai.AiController.declareAttackers(AiController.java:827)
   at forge.game.ai.AiController.onPriorityRecieved(AiController.java:808)
   at forge.game.ai.AiInputCommon$1.run(AiInputCommon.java:74)
   at forge.FThreads$1.run(FThreads.java:113)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)

Re: Bug Reports (snapshot builds)

PostPosted: 10 Apr 2013, 16:29
by Almeida
Description: every Fetch land cause this

NullPointerException | Open
Code: Select all
Forge Version:    1.3.12-SNAPSHOT-r20888
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_07 Oracle Corporation

java.lang.NullPointerException
   at javax.swing.LayoutComparator.compare(Unknown Source)
   at javax.swing.LayoutComparator.compare(Unknown Source)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.legacyMergeSort(Unknown Source)
   at java.util.Arrays.sort(Unknown Source)
   at java.util.Collections.sort(Unknown Source)
   at javax.swing.SortingFocusTraversalPolicy.enumerateAndSortCycle(Unknown Source)
   at javax.swing.SortingFocusTraversalPolicy.getFocusTraversalCycle(Unknown Source)
   at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
   at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
   at javax.swing.SortingFocusTraversalPolicy.getDefaultComponent(Unknown Source)
   at java.awt.FocusTraversalPolicy.getInitialComponent(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.SequencedEvent.dispatch(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)

Re: Bug Reports (snapshot builds)

PostPosted: 10 Apr 2013, 16:43
by Almeida
Killing Wave works only in the human player

Re: Bug Reports (snapshot builds)

PostPosted: 10 Apr 2013, 16:47
by Almeida
Description: I played a Pack Rat with a spreading seas on my Swamp and another swamp with nothing

ConcurrentModificationException | Open
Code: Select all
Forge Version:    1.3.12-SNAPSHOT-r20931
Operating System: Windows 7 6.1 amd64
Java Version:     1.7.0_07 Oracle Corporation

java.util.ConcurrentModificationException
   at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
   at java.util.ArrayList$Itr.next(Unknown Source)
   at forge.Card.getType(Card.java:3825)
   at forge.Card.typeContains(Card.java:5085)
   at forge.Card.isPlaneswalker(Card.java:5077)
   at forge.gui.CardDetailPanel.composeCardText(CardDetailPanel.java:376)
   at forge.gui.CardDetailPanel.setCard(CardDetailPanel.java:301)
   at forge.gui.match.controllers.CDetail.showCard(CDetail.java:49)
   at forge.gui.match.CMatchUI.setCard(CMatchUI.java:245)
   at forge.gui.match.nonsingleton.CField.cardoverAction(CField.java:382)
   at forge.gui.match.nonsingleton.CField.access$0(CField.java:378)
   at forge.gui.match.nonsingleton.CField$1.mouseMoved(CField.java:74)
   at java.awt.AWTEventMulticaster.mouseMoved(Unknown Source)
   at java.awt.Component.processMouseMotionEvent(Unknown Source)
   at javax.swing.JComponent.processMouseMotionEvent(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.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)

Re: Bug Reports (snapshot builds)

PostPosted: 10 Apr 2013, 21:41
by Max mtg
Please describe in more detail when fetchland caused the mentioned exception. - whose turn was that, which phase, and when did you activate it - was it inside a pay mana prompt?

Killing wave from ai - does ai always choose x = 0? Must be due to announce being unimplemented for ai.

The last exception is rigtht the same as in my signature todo list. Unfortunatelly it is, I was hoping they are gone

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 02:38
by Corwin72
forge-1.3.12-20130410.110058-13.tar.bz2
Nin, the Pain Artist only does 0 damage.
You are not allowed to input any mana past UR.

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 02:50
by Almeida
Max mtg wrote:Please describe in more detail when fetchland caused the mentioned exception. - whose turn was that, which phase, and when did you activate it - was it inside a pay mana prompt?

Killing wave from ai - does ai always choose x = 0? Must be due to announce being unimplemented for ai.

The last exception is rigtht the same as in my signature todo list. Unfortunatelly it is, I was hoping they are gone
Killing Wave human player casting the ai no sacrifices only human player
Fetch lands crashs on the activating
and another is Fathom Mage no drawns
dredge cards not works.
Simic Manipulator dont works I target the creature and dont remove the counters

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 04:08
by swordshine
Thank you for testing.
Almeida wrote:Killing Wave human player casting the ai no sacrifices only human player
In my test, if AI's life total is 20, AI pays the cost. I set AI's life total to 1, AI doesn't pay and no creatures are sacrificed.
Almeida wrote:Fetch lands crashs on the activating
I cannot reproduce this. Is there any crash report?
Almeida wrote:and another is Fathom Mage no drawns
It seems all of the "CounterAdded" / "CounterRemoved" triggers are broken.

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 05:07
by Max mtg
Killing wave fixed - thanks!
Fetch lands didn't crash - That's why I asked you for extra detail.

Fathom Mage - I don't understand how triggers in Forge work and cannot be of help here, sorry!

Dredge fixed - thanks!
Simic Manipulator works - I could not reproduce incorrect behaviour.

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 09:13
by moomarc
AI uses Spike Soldier to add counters to itself... without removing one to pay the cost. So it is growing fast (and the match was going well until then). I'm guessing something is broken in AI costs for remove counter.

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 15:24
by Almeida
Moonlace is wrong ... the text says Blue permanent is colorless

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 15:30
by FabioFLX
Hi, in latest build, whenever a Goblin Arsonist dies, the AI replicates the effect over and over until all the player's life is gone.

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 16:42
by Sloth
Almeida wrote:Moonlace is wrong ... the text says Blue permanent is colorless
Fixed! Thanks Almeida.

FabioFLX wrote:Hi, in latest build, whenever a Goblin Arsonist dies, the AI replicates the effect over and over until all the player's life is gone.
I can confirm this. I think it has to do with the trigger not being mandatory (OptionalDecider parameter). Mudbutton Torchrunner doesn't have this problem, Boggart Shenanigans has it.

EDIT: Aven Fisher, Drainpipe Vermin and Algae Gharial do not have this problem.

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 19:56
by Max mtg
@Corwin, Nin, the Pain Artist script updated, now it uses announce and works as intended.

@Sloth, As I saw Goblin Arsonist text, wanted to fit that 'optional' attribute into DealDamage ability, because 'you may' is closer to effect that to conditions (that read 'whenever...')

To my mind all the scripts need to be reviewed to extract all that 'you may', 'unless' and all kinds of condition checks as separate keyworded subabilities.

That might affect AI... because AI will have to look ahead and estimate the subability of Confirm clause.


@All, the exception related to list comodification (EDT is drawing a card while game changes properties of the same permanent will probably present in next build. I have to either set locks on read/write to types arraylist or make something similiar to a LKI copy for drawing thread)

Re: Bug Reports (snapshot builds)

PostPosted: 11 Apr 2013, 21:09
by Sloth
Max mtg wrote:@Sloth, As I saw Goblin Arsonist text, wanted to fit that 'optional' attribute into DealDamage ability, because 'you may' is closer to effect that to conditions (that read 'whenever...')

To my mind all the scripts need to be reviewed to extract all that 'you may', 'unless' and all kinds of condition checks as separate keyworded subabilities.

That might affect AI... because AI will have to look ahead and estimate the subability of Confirm clause.
The "may" belongs to the trigger according to the Comprehensive Rules. See rule 603.5.

Sol made sure that our scripts are a very good translation of magic card texts.