It is currently 25 Aug 2025, 17:49
   
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 jje4th » 01 May 2016, 23:02

Thanks for the feedback! I've been rethinking and testing the fix as well. Turns out it still may be more tricky.

Sinister concoction apparently should trigger The Gitrog Monster twice:
http://magicjudge.tumblr.com/post/14263 ... the-gitrog

That means we need to track the instance of each cost effect inside an SpellAbility rather than just the ability itself. Just creating the StackInstance earlier likely isn't enough. (Note that my fix also doesn't handle this situation correctly either).

I'll think about this more.
jje4th
 
Posts: 18
Joined: 26 Dec 2014, 20:29
Has thanked: 0 time
Been thanked: 1 time

Re: Bug Reports (snapshot builds)

Postby friarsol » 02 May 2016, 00:52

jje4th wrote:Thanks for the feedback! I've been rethinking and testing the fix as well. Turns out it still may be more tricky.

Sinister concoction apparently should trigger The Gitrog Monster twice:
http://magicjudge.tumblr.com/post/14263 ... the-gitrog

That means we need to track the instance of each cost effect inside an SpellAbility rather than just the ability itself. Just creating the StackInstance earlier likely isn't enough. (Note that my fix also doesn't handle this situation correctly either).

I'll think about this more.
It'd be nice to get a definitive answer, since I got the opposite response from a different judge that also runs a "Ask judges questions" place. There's about 3 different scenarios I can think of that need clarification.

Sinister Concoction - Do two lands from different costs provide 2 triggers
Keldon Arsonist - Do two lands from the same/combined cost provide 2 triggers
Brutal Suppression + Lin Sivvi - Do two lands from two separate additional costs provide 2 triggers


As far as our implementation goes, if we assign the StackInstance, whether it's a Cost or Effect, and what type of cost or effect, we should be able to uniquely identify using those three aspects. (Resolved mana abilities should be the effect of their own SI, not whatever SA is being paid for)

[[I'm going to spawn this discussion off into a new thread, but... uhh.. Game of Thrones is on, and I have my priorities]]
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 VileTouch » 02 May 2016, 03:36

friarsol wrote:
VileTouch wrote:
friarsol wrote:Any idea what the AI was trying to cast (or even have the decklist)? I'll wrap this stack description with exception handling, so we can try to figure out what's causing it, and fix the AI.
i don't know what the ai was trying to do, but i do remember the cards. a quick grep will surely help with pinpointing the exact deck.

oh... on that vein, would it be possible to show somewhere what deck is the AI using when you give it a random deck? (not generated)
"He traded sand for skins, skins for gold, gold for life. In the end, he traded life for sand." - Afari, Tales
User avatar
VileTouch
 
Posts: 33
Joined: 04 Apr 2016, 10:39
Has thanked: 10 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby Out0fAmmo » 02 May 2016, 05:02

I was playing an Elf deck versus a Thopter/Gifts deck. Had the error occur while the AI attacked with some tokens. I was able to finish the game after it happened.

ConcurrentModificationException | Open
Code: Select all
Forge Version:    1.5.51-r-1
Operating System: Windows 7 6.1 x86
Java Version:     1.8.0_91 Oracle Corporation

java.util.ConcurrentModificationException
   at java.util.HashMap$HashIterator.nextNode(Unknown Source)
   at java.util.HashMap$KeyIterator.next(Unknown Source)
   at java.util.AbstractCollection.addAll(Unknown Source)
   at java.util.HashSet.<init>(Unknown Source)
   at forge.game.combat.CombatView.getAttackers(CombatView.java:61)
   at forge.screens.match.TargetingOverlay.addArcsForCard(TargetingOverlay.java:279)
   at forge.screens.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:160)
   at forge.screens.match.TargetingOverlay.access$700(TargetingOverlay.java:57)
   at forge.screens.match.TargetingOverlay$OverlayPanel.paintComponent(TargetingOverlay.java:389)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JLayeredPane.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JLayeredPane.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintToOffscreen(Unknown Source)
   at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
   at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
   at javax.swing.RepaintManager.paint(Unknown Source)
   at javax.swing.JComponent._paintImmediately(Unknown Source)
   at javax.swing.JComponent.paintImmediately(Unknown Source)
   at javax.swing.RepaintManager$4.run(Unknown Source)
   at javax.swing.RepaintManager$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
   at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
   at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
   at javax.swing.RepaintManager.access$1200(Unknown Source)
   at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.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
Out0fAmmo
 
Posts: 2
Joined: 25 Dec 2012, 05:15
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby tjtillman » 03 May 2016, 06:22

Old build r31177

CPU played Pale Rider of Trostad on Turn 2, discarded Gisa's Bidding, but had no mana to cast it. Afterward Gisa's Bidding remained in exile, whereas it should've gone to the graveyard.

Also occurred in another game, CPU discarded Gisa's Bidding to transform Heir of Falkenrath. CPU did not have enough mana to cast Gisa's Bidding and it remained in exile.
tjtillman
 
Posts: 202
Joined: 16 Sep 2013, 17:47
Has thanked: 0 time
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby flupo42 » 03 May 2016, 14:55

Forge Beta: 04-13-2016 ver 1.5.51

1:
Cankerous Thirst
I don't remember if AI spent Death mana on the spell but the Prompt log did have an action on stack about it targeting my Kindly Stranger with the -3/-3 effect and empowered his Deathspore Thallid. Stranger did not die from it, and had no counters visible on it. Deathspore Thallid became 4/4 for attack. Not sure it if matters but Kindly Stranger had Leaonin Bola attached to it at the time. Happened during AI attack phase.

(as an addition in terms of how AI uses the card - I played many duels against a deck that had this and AI always used it as out of combat removal, rather than playing it as a combat trick to get a 2 for 1 kill with it)

2:

I use Rise from the Grave to put AI's Rampaging Balloths under my control.

AI played The Great Aurora. The Balloths are removed from the board along with everything else.

I picked 6 lands from the drawn cards.

bug part A) Each of MY lands triggered Rampaging Balloths' Landfall, despite the Balloths no longer being on the battlefield

bug part B)
worse it triggered on behalf of AI – meaning the opponent got the creature tokens.

It was definitely my lands because I put down 6 and AI put down 4 lands, and it recieved 6 tokens.
flupo42
 
Posts: 6
Joined: 21 Apr 2016, 22:54
Has thanked: 3 times
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby friarsol » 03 May 2016, 15:09

flupo42 wrote:Forge Beta: 04-13-2016 ver 1.5.51

1:
Cankerous Thirst
I don't remember if AI spent Death mana on the spell but the Prompt log did have an action on stack about it targeting my Kindly Stranger with the -3/-3 effect and empowered his Deathspore Thallid. Stranger did not die from it, and had no counters visible on it. Deathspore Thallid became 4/4 for attack. Not sure it if matters but Kindly Stranger had Leaonin Bola attached to it at the time. Happened during AI attack phase.
This isn't a bug. Spells have to target before mana is paid. So these are conditional effects. Additionally, please read the link in my signature about bug reports.
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 treaver » 03 May 2016, 15:53

When i win a game in quest mode.The Forge error and dead.


Description: [describe what you were doing when the crash occurred]

NullPointerException | Open
Code: Select all
Forge Version:    1.5.53-SNAPSHOT-r31186
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_91 Oracle Corporation

java.lang.NullPointerException
   at java.util.TreeMap.getEntry(Unknown Source)
   at java.util.TreeMap.get(Unknown Source)
   at forge.game.GameView.getAnteResult(GameView.java:204)
   at forge.quest.QuestWinLoseController$1.run(QuestWinLoseController.java:95)
   at forge.screens.match.ViewWinLose.showRewards(ViewWinLose.java:271)
   at forge.quest.QuestWinLoseController.showRewards(QuestWinLoseController.java:90)
   at forge.screens.match.QuestWinLose.populateCustomPanel(QuestWinLose.java:58)
   at forge.screens.match.ViewWinLose.<init>(ViewWinLose.java:151)
   at forge.screens.match.CMatchUI.finishGame(CMatchUI.java:641)
   at forge.control.FControlGameEventHandler$1.run(FControlGameEventHandler.java:116)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.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)
treaver
 
Posts: 1
Joined: 03 May 2016, 15:40
Has thanked: 1 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby VileTouch » 05 May 2016, 00:52

friarsol wrote:Any idea what the AI was trying to cast (or even have the decklist)? I'll wrap this stack description with exception handling, so we can try to figure out what's causing it, and fix the AI.
alright, i was able to reproduce it (after many matches!). The deck in question is Mortal Coil

what the AI was trying to do was to Fate Transfer the counters out of it's stolen Herald of War.

something similar happens when Leech Bonder (in the same deck) activates it's ability.

if you don't have this deck for whatever reason here it is.

| Open
Code: Select all
[shop]
WinsToUnlock=0
Credits=1200
MinDifficulty=0
MaxDifficulty=5

[metadata]
Name=Mortal Coil
Description=Like to exploit weakness? Then grab the "Mortal Coil" deck! This deck focuses on tricks you can pull with -1/-1 counters. Of course, the most basic "trick" is simply to put them on your opponent's creatures, which Grim Poppet, Torture, and Incremental Blight do with ease. But you're cleverer than that!
Deck Type=constructed
Set=SHM
Image=mortal_coil.jpg

[main]
12  Island|SHM
12  Swamp|SHM

Chainbreaker|SHM
Faerie Macabre|SHM
Gravelgill Axeshark|SHM
Grim Poppet|SHM
Inkfathom Infiltrator|SHM
Inkfathom Witch|SHM
Leech Bonder|SHM
Loch Korrigan|SHM
Oona's Gatewarden|SHM
River Kelpie|SHM
Sickle Ripper|SHM
Wanderbrine Rootcutters|SHM
Wasp Lancer|SHM
Wingrattle Scarecrow|SHM

Biting Tether|SHM
Fate Transfer|SHM
Gloomlance|SHM
Gnarled Effigy|SHM
Helm of the Ghastlord|SHM
Incremental Blight|SHM
River's Grasp|SHM
Scarscale Ritual|SHM
Torture|SHM
Trip Noose|SHM

[sideboard]
Last edited by VileTouch on 05 May 2016, 21:07, edited 1 time in total.
"He traded sand for skins, skins for gold, gold for life. In the end, he traded life for sand." - Afari, Tales
User avatar
VileTouch
 
Posts: 33
Joined: 04 Apr 2016, 10:39
Has thanked: 10 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby AppleQueso » 05 May 2016, 11:27

Playing constructed: my game will freeze fairly often on the mobile version whenever I'm playing Abzan Company (doesn't matter what deck I'm playing against). Whenever I assemble the infinite life combo of Viscera Seer+Melira+Kitchen Finks and start sacking Finks, my game will freeze on "Waiting for Opponent". Conceding the game does nothing for me. Usually the only fix to get forge out of this freeze for me is to restart my phone.

I have version 1.5.52.001 Alpha. Playing on Galaxy Note 3 if that helps any. Will try to get a screenshot of it asap.
AppleQueso
 
Posts: 5
Joined: 29 Jul 2015, 14:12
Has thanked: 1 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby AppleQueso » 05 May 2016, 11:28

AppleQueso
 
Posts: 5
Joined: 29 Jul 2015, 14:12
Has thanked: 1 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Hanmac » 05 May 2016, 19:56

r31180: tested with but should still be there with r31194

AI does have shroud because Ivory Mask.
then AI does cast Time Stretch, trying to target itself, but it does frizzle.

AI should not cast that spell because it can't target itself. (or a befriended player)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby VileTouch » 06 May 2016, 22:25

Ok, so after last time i'm affraid to ask, but if opponent has Suppression Field and you have a planeswalker, but you refuse to pay {2} to activate it's ability, is the loyalty counter supposed to change, even though the action was cancelled?. this happens with all planeswalkers and it is possible to abuse this to get infinite amounts of loyalty.
"He traded sand for skins, skins for gold, gold for life. In the end, he traded life for sand." - Afari, Tales
User avatar
VileTouch
 
Posts: 33
Joined: 04 Apr 2016, 10:39
Has thanked: 10 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 07 May 2016, 03:02

VileTouch wrote:Ok, so after last time i'm affraid to ask, but if opponent has Suppression Field and you have a planeswalker, but you refuse to pay {2} to activate it's ability, is the loyalty counter supposed to change, even though the action was cancelled?. this happens with all planeswalkers and it is possible to abuse this to get infinite amounts of loyalty.
Some of our costs don't have "undoability" so when you cancel them, they don't do anything in reverse. I'm not sure if add/remove counters is one of them. They probably shouldn't be if so.

Also, I wouldn't be afraid to ask, we were just trying to make sure you understood the rule correctly since you were being so adamant about it.
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 Hanmac » 07 May 2016, 09:56

i try to build newest r31196
because i wanted to fix some error with the Color CardView one some cards.

forge-core/src/main/java/forge/util/collect/FCollection.java:[335,38]
incompatible types: java.util.ArrayList<capture#1 of ? extends T> cannot be converted to java.util.List<T>
i don't know if its a error on forge or on my system ...
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 24 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 24 users online :: 0 registered, 0 hidden and 24 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 24 guests

Login Form