Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by Fizanko » 17 Sep 2014, 15:22
I don't know if it is a bug or something missing or something not supposed to be there , but when you play constructed mode and change the deck lists into displaying an image instead of simple deck text listing , even if you have
Image=blablabla.jpg
defined in the .dck file and have the actual blablabla.jpg in our ...\Cache\pics\icons\
or
...\Cache\pics\precons\
(or in both)
the image of the deck will not be displayed :

Image=blablabla.jpg
defined in the .dck file and have the actual blablabla.jpg in our ...\Cache\pics\icons\
or
...\Cache\pics\precons\
(or in both)
the image of the deck will not be displayed :

probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Agetian » 17 Sep 2014, 15:45
I tried to fix this issue in r27493, or at least circumvent it in a good enough way until someone can pinpoint the source of the issue somewhere deeper in the code. Currently fixed in a way similar to SpellAbilityRestriction.java:432-437, seems like this was an issue in the past, too, and whoever implemented the workaround on lines 432-437 was stumped as to the exact cause of the issue as well. Most likely deserves a better fix somewhere higher up in the stack, but I have no idea as to what exactly is (randomly) causing this and can't reliably reproduce the related crashes in order to trace them in the debugger.lujo wrote:
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_25 Oracle Corporation
java.lang.NullPointerException
at forge.game.spellability.SpellAbilityRestriction.checkActivatorRestrictions(SpellAbilityRestriction.java:283)
at forge.game.spellability.AbilityActivated.isPossible(AbilityActivated.java:127)
at forge.ai.ComputerUtilMana$ManaProducingCard.<init>(ComputerUtilMana.java:115)
at forge.ai.ComputerUtilMana.sortManaAbilities(ComputerUtilMana.java:139)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:360)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:79)
at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:54)
at forge.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:378)
at forge.ai.ComputerUtilCombat.predictPowerBonusOfAttacker(ComputerUtilCombat.java:1186)
at forge.ai.ComputerUtilCombat.damageIfUnblocked(ComputerUtilCombat.java:127)
at forge.ai.AiAttackController.declareAttackers(AiAttackController.java:801)
at forge.ai.AiController.declareAttackers(AiController.java:1180)
at forge.ai.PlayerControllerAi.declareAttackers(PlayerControllerAi.java:405)
at forge.game.phase.PhaseHandler.declareAttackersTurnBasedAction(PhaseHandler.java:479)
at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:292)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1067)
at forge.game.GameAction.startGame(GameAction.java:1559)
at forge.game.Match.startGame(Match.java:81)
at forge.control.FControl$4.run(FControl.java:496)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_25 Oracle Corporation
java.lang.NullPointerException
at forge.game.spellability.SpellAbilityRestriction.checkActivatorRestrictions(SpellAbilityRestriction.java:283)
at forge.game.spellability.AbilityActivated.isPossible(AbilityActivated.java:127)
at forge.ai.ComputerUtilMana$ManaProducingCard.<init>(ComputerUtilMana.java:115)
at forge.ai.ComputerUtilMana.sortManaAbilities(ComputerUtilMana.java:139)
at forge.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:360)
at forge.ai.ComputerUtilMana.canPayManaCost(ComputerUtilMana.java:46)
at forge.match.input.InputPayMana$4.evaluate(InputPayMana.java:389)
at forge.match.input.InputPayMana$4.evaluate(InputPayMana.java:386)
at forge.util.Evaluator.run(Evaluator.java:8)
at forge.game.player.Player.runWithController(Player.java:3098)
at forge.match.input.InputPayMana.runAsAi(InputPayMana.java:347)
at forge.match.input.InputPayMana.updateMessage(InputPayMana.java:392)
at forge.match.input.InputPayMana$5.run(InputPayMana.java:419)
at forge.FThreads.invokeInEdtNowOrLater(FThreads.java:33)
at forge.match.input.InputPayMana.onStateChanged(InputPayMana.java:416)
at forge.match.input.InputPayMana.showMessage(InputPayMana.java:407)
at forge.match.input.InputBase.showMessageInitial(InputBase.java:112)
at forge.match.input.InputProxy$2.run(InputProxy.java:99)
at java.awt.event.InvocationEvent.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.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)
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Agetian » 17 Sep 2014, 17:14
Description: r27492: I used Mindslaver to control my opponent. Then, once the controlled opponent's turn ended, I got this exception. I kept receiving this exception every opponent's turn from that point forward. Also, the opponent's hand didn't disappear from the tabs in the match interface.
- Agetian
- IllegalArgumentException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r27492u
Operating System: Linux 3.8.0-26-generic amd64
Java Version: 1.7.0_51 Oracle Corporation
java.lang.IllegalArgumentException: illegal component position
at java.awt.Container.checkAdding(Container.java:504)
at java.awt.Container.setComponentZOrder(Container.java:759)
at forge.view.arcane.CardArea.doLayout(CardArea.java:197)
at forge.view.arcane.CardPanelContainer.setCardPanels(CardPanelContainer.java:376)
at forge.screens.match.controllers.CHand.updateHand(CHand.java:128)
at forge.GuiDesktop.updatePlayerControl(GuiDesktop.java:258)
at forge.control.FControlGameEventHandler$4.run(FControlGameEventHandler.java:153)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Fizanko » 17 Sep 2014, 18:25
I just noticed it on r27494 , i had a Wild Beastmaster with Beastmaster's Magemark on it, and the attack/thoughness is flickering between phases.Agetian wrote:Also, one more issue: for some reason, the power and toughness of creatures with P/T-changing enchantments or equipments on them (e.g. Frogmite with Loxodon Warhammer) flickers on phase change in much the same way the mana cost used to flicker before (as I reported earlier on). Basically, it seems to very quickly alternate between its original variant and the modified variant.
I remember this happened a lot in an old version, it was fixed at some point but i don't remember who did the fix.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 17 Sep 2014, 18:27
drdev implemented caching for card stats a little while ago to remedy this.Fizanko wrote:I just noticed it on r27494 , i had a Wild Beastmaster with Beastmaster's Magemark on it, and the attack/thoughness is flickering between phases.Agetian wrote:Also, one more issue: for some reason, the power and toughness of creatures with P/T-changing enchantments or equipments on them (e.g. Frogmite with Loxodon Warhammer) flickers on phase change in much the same way the mana cost used to flicker before (as I reported earlier on). Basically, it seems to very quickly alternate between its original variant and the modified variant.
I remember this happened a lot in an old version, it was fixed at some point but i don't remember who did the fix.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by Agetian » 17 Sep 2014, 18:40
Yes, but this report is coming from the latest version (r27492), so apparently there is a regression that cancels out drdev's previous fix for this... Might be due to refactoring, most likely needs investigation (definitely noticeable).
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 17 Sep 2014, 19:02
Right, just saying that's what's not working since it was asked (sort of).Agetian wrote:Yes, but this report is coming from the latest version (r27492), so apparently there is a regression that cancels out drdev's previous fix for this... Might be due to refactoring, most likely needs investigation (definitely noticeable).
- Agetian

-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by Fizanko » 17 Sep 2014, 20:50
thanks for the precision
r27494
Sometime during a duel the sound tap.wav is repeated multiple times (once or twice each time you move to a new phase) during a same turn despite nothing is tapped during those phases.
Can't seem to find a pattern in why it happens sometimes.
But when it start doing it, it does this for the whole match, both during the AI and player phases.
edit : this annoying problem seems to happen when an AI is pumping (same sound)
r27494
Sometime during a duel the sound tap.wav is repeated multiple times (once or twice each time you move to a new phase) during a same turn despite nothing is tapped during those phases.
Can't seem to find a pattern in why it happens sometimes.
But when it start doing it, it does this for the whole match, both during the AI and player phases.
edit : this annoying problem seems to happen when an AI is pumping (same sound)
Last edited by Fizanko on 17 Sep 2014, 20:58, edited 3 times in total.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Fizanko » 17 Sep 2014, 20:54
Still in r27494 during a duel in which the sound was annoyingly playing at each phase, no idea if it's related but at some point i ran into this when i reached the M2 phase of my turn :


- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at forge.game.card.Card.getHiddenExtrinsicKeyword(Card.java:4825)
at forge.game.card.Card.getNonAbilityText(Card.java:1962)
at forge.game.card.Card.getText(Card.java:1875)
at forge.view.ViewUtil.writeNonDependentCardViewProperties(ViewUtil.java:79)
at forge.view.LocalGameView.writeCardToView(LocalGameView.java:482)
at forge.view.LocalGameView.getCardView(LocalGameView.java:406)
at forge.view.LocalGameView$3.apply(LocalGameView.java:421)
at forge.view.LocalGameView$3.apply(LocalGameView.java:418)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:134)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:426)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:364)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:336)
at forge.view.LocalGameView.getPlayerTurn(LocalGameView.java:226)
at forge.GuiDesktop.updatePhase(GuiDesktop.java:233)
at forge.control.FControlGameEventHandler$1.run(FControlGameEventHandler.java:88)
at java.awt.event.InvocationEvent.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.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)
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by KrazyTheFox » 17 Sep 2014, 21:31
Give r27496 a try:Fizanko wrote:Still in r27494 during a duel in which the sound was annoyingly playing at each phase, no idea if it's related but at some point i ran into this when i reached the M2 phase of my turn :I could continue to play and oddly, the annoying sound wasn't playing at each phase anymore, the game was back at normal regarding this.
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.5.28-SNAPSHOT-r-1u
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_10 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at forge.game.card.Card.getHiddenExtrinsicKeyword(Card.java:4825)
at forge.game.card.Card.getNonAbilityText(Card.java:1962)
at forge.game.card.Card.getText(Card.java:1875)
at forge.view.ViewUtil.writeNonDependentCardViewProperties(ViewUtil.java:79)
at forge.view.LocalGameView.writeCardToView(LocalGameView.java:482)
at forge.view.LocalGameView.getCardView(LocalGameView.java:406)
at forge.view.LocalGameView$3.apply(LocalGameView.java:421)
at forge.view.LocalGameView$3.apply(LocalGameView.java:418)
at forge.view.ViewUtil.transformIfNotNull(ViewUtil.java:134)
at forge.view.LocalGameView.getCardViews(LocalGameView.java:426)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:364)
at forge.view.LocalGameView.getPlayerView(LocalGameView.java:336)
at forge.view.LocalGameView.getPlayerTurn(LocalGameView.java:226)
at forge.GuiDesktop.updatePhase(GuiDesktop.java:233)
at forge.control.FControlGameEventHandler$1.run(FControlGameEventHandler.java:88)
at java.awt.event.InvocationEvent.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.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)
Agetian's hopefully prevented a lot of those CMEs.- Attempt to fix the concurrent modification exception related to card extrinsic hidden keywords by using a thread-safe array list.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Bug Reports (snapshot builds)
by Fizanko » 17 Sep 2014, 22:20
Thanks, development goes so fast , i'm always several revisions behind 

probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Fizanko » 18 Sep 2014, 00:17
After several duels with AI using pumping decks (like the preconstructed Swift Justice intro one) , it seems the conccurent does not happen anymore.KrazyTheFox wrote:Give r27496 a try:Agetian's hopefully prevented a lot of those CMEs.- Attempt to fix the concurrent modification exception related to card extrinsic hidden keywords by using a thread-safe array list.
But the bug with the sound playing at every phase if the AI pump a creature is still occuring (so the error message was probably not linked).
At least my tries have showed that it is directly linked to the AI pumping a card, after that the same sound is replayed annoyingly at every phase of a turn.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Fizanko » 18 Sep 2014, 01:07
A bug that is new to me in r27496 :
I have a Deathbellow Raider, previously i attached to it Aspect of Gorgon , from 2/3 it went 3/6
Then a couple of turns later i attached Spiteful Returned attached to it, it went to 4/7
Then suddenly went back to 3/6 and one of the 2 cards attached to it wasn't displayed anymore ?
Nothing on the AI side had that effect.
After the AI played, it was my turn again, at the attack phase, suddenly both cards are displayed again and it's 4/7

Then i click OK to do the attack, and again the problem happens :

And my creature stays at 3/6 without Spiteful Returned displayed on it until it's again my attack phase.
EDIT :
Something that may linked to it, as that my creature does not have Vigilance and nothing on my side does the effect for it, but the card does not visually tap
In fact the visual is completely broken, as the AI creatures i killed still have their cards displayed on their side.
This odd visual that do not refresh correctly anymore reminds me strongly what happens when there's a concurrent modification error and i click continue to play. Until i quitted an relaunched Forge, the visual wouldn't refresh correctly in any more duel.
So i wonder if by any chances there is an actual and real conccurent modification error but the error window does not appear for some reason.
I have a Deathbellow Raider, previously i attached to it Aspect of Gorgon , from 2/3 it went 3/6
Then a couple of turns later i attached Spiteful Returned attached to it, it went to 4/7
Then suddenly went back to 3/6 and one of the 2 cards attached to it wasn't displayed anymore ?
Nothing on the AI side had that effect.
After the AI played, it was my turn again, at the attack phase, suddenly both cards are displayed again and it's 4/7

Then i click OK to do the attack, and again the problem happens :

And my creature stays at 3/6 without Spiteful Returned displayed on it until it's again my attack phase.
EDIT :
Something that may linked to it, as that my creature does not have Vigilance and nothing on my side does the effect for it, but the card does not visually tap
In fact the visual is completely broken, as the AI creatures i killed still have their cards displayed on their side.
This odd visual that do not refresh correctly anymore reminds me strongly what happens when there's a concurrent modification error and i click continue to play. Until i quitted an relaunched Forge, the visual wouldn't refresh correctly in any more duel.
So i wonder if by any chances there is an actual and real conccurent modification error but the error window does not appear for some reason.
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Bug Reports (snapshot builds)
by Agetian » 18 Sep 2014, 05:27
Ok I reproduced the whole "tap sounds" issue and fixed it - it was much more than just tap sounds, actually, it was the actual extra tap events firing from the AI side causing all sorts of possible side effects on the battlefield (basically, anything that was dependent on cards/creatures becoming tapped fired, which might have indirectly affected things like "when CARDNAME attacks", too)
This was an especially awesome test case:

Anyhow, this is fixed in r27504, hopefully with the related side effects as well.
About the concurrent modification exception: the CME as such should be fixed as of r27496, because a thread safe array list does not allow the undefined behavior where one thread would iterate over it while another is still writing into it (which was what caused the CME). Now, of course, there is no guarantee that if there *is* some clash between threads elsewhere in the code (external to the segment where the CME itself ensued) that results in these arrays ending in the illegal (incorrect) state or something, there would not be any other connected issues. However, what you're reporting (about the card visualization being incorrect) theoretically shouldn't be linked to this, because the CME I fixed was connected with the hidden extrinsic keywords on cards and probably had nothing to do with dead creatures still appearing on the battlefield and things like that... Let me know if you are still experiencing any of the odd behavior you reported (e.g. you can still hear extra tap sounds or you still see weird things going on in the battlefield) in r27504+. If so, please try to also provide a definitely reproducible test case for it if at all possible (e.g. which cards cause this effect to always be visible), or (if it's impossible) provide a battlefield screenshot with a detailed explanation similar to how you did the first time (except it's also interesting to see what exactly was on the AI's battlefield at that moment, which action exactly led to the first odd thing that you noticed, etc. - even though you're saying there was nothing on the AI side that was interesting in the context of what you saw, it might have still mattered because of the internal workings of the game, such as in the case with those extra tap events, for instance).
- Agetian

- Code: Select all
AICardsInPlay=Killer Bees;Forest;Forest;Forest;Forest;Forest;Leatherback Baloth
AICardsInHand=Leatherback Baloth
HumanCardsInPlay=Gideon's Avenger

Anyhow, this is fixed in r27504, hopefully with the related side effects as well.
About the concurrent modification exception: the CME as such should be fixed as of r27496, because a thread safe array list does not allow the undefined behavior where one thread would iterate over it while another is still writing into it (which was what caused the CME). Now, of course, there is no guarantee that if there *is* some clash between threads elsewhere in the code (external to the segment where the CME itself ensued) that results in these arrays ending in the illegal (incorrect) state or something, there would not be any other connected issues. However, what you're reporting (about the card visualization being incorrect) theoretically shouldn't be linked to this, because the CME I fixed was connected with the hidden extrinsic keywords on cards and probably had nothing to do with dead creatures still appearing on the battlefield and things like that... Let me know if you are still experiencing any of the odd behavior you reported (e.g. you can still hear extra tap sounds or you still see weird things going on in the battlefield) in r27504+. If so, please try to also provide a definitely reproducible test case for it if at all possible (e.g. which cards cause this effect to always be visible), or (if it's impossible) provide a battlefield screenshot with a detailed explanation similar to how you did the first time (except it's also interesting to see what exactly was on the AI's battlefield at that moment, which action exactly led to the first odd thing that you noticed, etc. - even though you're saying there was nothing on the AI side that was interesting in the context of what you saw, it might have still mattered because of the internal workings of the game, such as in the case with those extra tap events, for instance).
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Bug Reports (snapshot builds)
by Agetian » 18 Sep 2014, 06:27
A new refactoring-related regression in addition to the two reported above (Mindslaver-related and P/T flickering-related):
The targeting arrows no longer work correctly - in particular, the targeting arrow for blockers will no longer show until the instants phase starts. For instance:
EDIT: I tried to take care of the blocker arrows not being visualized issue in r27507, however, I'm not sure if this change may have bigger repercussions (I'm not too familiar with the new GUI code yet). Please review.
- Agetian
The targeting arrows no longer work correctly - in particular, the targeting arrow for blockers will no longer show until the instants phase starts. For instance:
- Code: Select all
AICardsInPlay=Scathe Zombies
HumanCardsInPlay=Raging Goblin
EDIT: I tried to take care of the blocker arrows not being visualized issue in r27507, however, I'm not sure if this change may have bigger repercussions (I'm not too familiar with the new GUI code yet). Please review.
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Who is online
Users browsing this forum: No registered users and 49 guests