It is currently 23 May 2025, 22:08
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

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

Re: Bug Reports (snapshot builds)

Postby friarsol » 10 Apr 2013, 00:54

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)
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Almeida » 10 Apr 2013, 16:29

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)
User avatar
Almeida
 
Posts: 41
Joined: 24 Dec 2011, 04:48
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Almeida » 10 Apr 2013, 16:43

Killing Wave works only in the human player
User avatar
Almeida
 
Posts: 41
Joined: 24 Dec 2011, 04:48
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Almeida » 10 Apr 2013, 16:47

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)
User avatar
Almeida
 
Posts: 41
Joined: 24 Dec 2011, 04:48
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Max mtg » 10 Apr 2013, 21:41

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
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)

Postby Corwin72 » 11 Apr 2013, 02:38

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.
User avatar
Corwin72
 
Posts: 793
Joined: 15 Sep 2009, 13:26
Location: Grayson, Ga
Has thanked: 25 times
Been thanked: 9 times

Re: Bug Reports (snapshot builds)

Postby Almeida » 11 Apr 2013, 02:50

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
User avatar
Almeida
 
Posts: 41
Joined: 24 Dec 2011, 04:48
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby swordshine » 11 Apr 2013, 04:08

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.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 11 Apr 2013, 05:07

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.
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)

Postby moomarc » 11 Apr 2013, 09:13

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.
-Marc
User avatar
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)

Postby Almeida » 11 Apr 2013, 15:24

Moonlace is wrong ... the text says Blue permanent is colorless
User avatar
Almeida
 
Posts: 41
Joined: 24 Dec 2011, 04:48
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby FabioFLX » 11 Apr 2013, 15:30

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.
User avatar
FabioFLX
 
Posts: 78
Joined: 27 Sep 2011, 13:08
Has thanked: 4 times
Been thanked: 7 times

Re: Bug Reports (snapshot builds)

Postby Sloth » 11 Apr 2013, 16:42

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.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 11 Apr 2013, 19:56

@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)
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)

Postby Sloth » 11 Apr 2013, 21:09

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.
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 18 guests


Who is online

In total there are 18 users online :: 0 registered, 0 hidden and 18 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 18 guests

Login Form