Upcoming Release: Forge version 1.5.57
 Posted: 26 Sep 2016, 22:13
Posted: 26 Sep 2016, 22:13Hopefully the next week will just be a quick turnaround release (1-2 weeks). Fix any card issues that have slipped through the cracks, and bolster the AI.
			High Quality Resources for Collectible Card Games
https://www.slightlymagic.net/forum/
https://www.slightlymagic.net/forum/viewtopic.php?f=52&t=19191
 Posted: 26 Sep 2016, 22:13
Posted: 26 Sep 2016, 22:13 Posted: 27 Sep 2016, 03:21
Posted: 27 Sep 2016, 03:21 Posted: 27 Sep 2016, 03:33
Posted: 27 Sep 2016, 03:33Sweet I was hoping one of you UI savvy types would find an hour or two to rig something together.drdev wrote:I just rolled out Kaladesh for Android. Before doing so, I commited a couple UI fixes for energy counters, a couple of which also affect the desktop app. Just FYI.
 Posted: 27 Sep 2016, 06:51
Posted: 27 Sep 2016, 06:51lblLife.setIcon(null); // didn't work because it's ambiguous
lblLife.setIcon((Icon)null); // was accepted but did nothing
lblLife.setIcon((FSkin.SkinImage)null); // was accepted but did nothing
 Posted: 27 Sep 2016, 13:35
Posted: 27 Sep 2016, 13:35 Posted: 27 Sep 2016, 14:34
Posted: 27 Sep 2016, 14:34System.out.println("updateState called for " + c + " from " + Thread.currentThread().getStackTrace()[2].getClassName()+"::"+Thread.currentThread().getStackTrace()[2].getMethodName()+ " -> " + Thread.currentThread().getStackTrace()[3].getClassName()+"::"+Thread.currentThread().getStackTrace()[3].getMethodName() + " -> " + Thread.currentThread().getStackTrace()[4].getClassName() + "::" + Thread.currentThread().getStackTrace()[4].getMethodName());


 Posted: 27 Sep 2016, 16:33
Posted: 27 Sep 2016, 16:33I never really saw the flickering, maybe I just didn't have the right card setup. But you can try this:Agetian wrote:A little note of potential interest: a lot of the flickering with e.g. Wind Zendikon seems to come from the spam calls to updateStateForView from "GameAction::checkStaticAbilities" which eventually calls it from inside a loop called 9 times (for q=0; q<9; q++). This is most likely where the [still remaining] visual flickering with this card type comes from. Not sure what to do with that either, sadly... Ideally we should somehow decouple all this check/add/remove ability logic from the visual side of things, but I'm not an expert at how to do this best
- Agetian
            setHoldCheckingStaticAbilities(true);
            if (noRegCreats != null) {
                for (Card c : noRegCreats) {
                    sacrificeDestroy(c);
                }
            }
            if (desCreats != null) {
                for (Card c : desCreats) {
                    destroy(c, null);
                }
            }
            setHoldCheckingStaticAbilities(false);
            checkStaticAbilities();
            setHoldCheckingStaticAbilities(true);
            if (noRegCreats != null) {
                checkAgain = true;
                for (Card c : noRegCreats) {
                    sacrificeDestroy(c);
                }
            }
            if (desCreats != null) {
                checkAgain = true;
                for (Card c : desCreats) {
                    destroy(c, null);
                }
            }
            setHoldCheckingStaticAbilities(false);
            //checkStaticAbilities();
 Posted: 27 Sep 2016, 16:45
Posted: 27 Sep 2016, 16:45 Posted: 27 Sep 2016, 16:57
Posted: 27 Sep 2016, 16:57It doesn't need to be replaced with anything. That specific section is holding the static abilities that would be fired by creatures that are being destroyed. These creatures were just accumulated in a loop above this. But since our giant loop is already calling checkStaticAbilities AND we specifically don't want the UI updating during this time, we don't really nee to call it immediately. The only thing that's going to happen, is we're going to finish running through all of our different state effects, then recheck the static abilities to make sure everything is still ok. The giant loop is really more of a while loop, then a for loop. We're going to recheck everything each time something changes in our state. Once nothing has changed, we finish the loop.Agetian wrote:@ friarsol: Looks like commenting out that checkStaticAbilities() line as you advised does indeed solve the Wind Zendikon issue! However, I'm not entirely sure (I'm a bit afraid to break something important here): should I just comment out checkStaticAbilities() or should I introduce something else instead?
P.S. By the way, a very simple and yet effective setup to test Wind Zendikon is to just give the AI one land and enchant it with Wind Zendikon. It usually starts flickering immediately (and kinda even phasing in/out - disappearing from the battlefield temporarily from time to time). Once checkStaticAbilities() is commented out in that segment above, it doesn't seem to flicker anymore, at least 99% of it appears to be gone.
- Agetian
 Posted: 27 Sep 2016, 17:00
Posted: 27 Sep 2016, 17:00 I'm going to commit the change then!
 I'm going to commit the change then! Posted: 27 Sep 2016, 17:04
Posted: 27 Sep 2016, 17:04 Posted: 27 Sep 2016, 17:06
Posted: 27 Sep 2016, 17:06 Posted: 27 Sep 2016, 19:35
Posted: 27 Sep 2016, 19:35 Posted: 28 Sep 2016, 05:00
Posted: 28 Sep 2016, 05:00
 Posted: 01 Oct 2016, 08:53
Posted: 01 Oct 2016, 08:53