diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index dae2e3edef2..347749bf5da 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -92,6 +92,7 @@ public class Forge implements ApplicationListener { private static boolean destroyThis = false; public static String extrawide = "default"; public static float heigtModifier = 0.0f; + public static float deltaTime = 0f; private static boolean isloadingaMatch = false; public static boolean autoAIDeckSelection = false; public static boolean showFPS = false; @@ -713,6 +714,7 @@ public class Forge implements ApplicationListener { } } } + deltaTime = 0f; } } }); @@ -849,6 +851,10 @@ public class Forge implements ApplicationListener { ForgeAnimation.advanceAll(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); // Clear the screen. + //set delta for rotation + deltaTime += Gdx.graphics.getDeltaTime(); + if (deltaTime > 22.5f) + deltaTime = 0f; FContainer screen = currentScreen; diff --git a/forge-gui-mobile/src/forge/assets/FSkin.java b/forge-gui-mobile/src/forge/assets/FSkin.java index 27aa48ef9ef..f36a92818fb 100644 --- a/forge-gui-mobile/src/forge/assets/FSkin.java +++ b/forge-gui-mobile/src/forge/assets/FSkin.java @@ -177,6 +177,7 @@ public class FSkin { Forge.getAssets().loadTexture(getDefaultSkinFile("adv_logo.png"), new TextureLoader.TextureParameter()); Forge.getAssets().loadTexture(getDefaultSkinFile("cover.png")); Forge.getAssets().loadTexture(getDefaultSkinFile("overlay_alpha.png")); + Forge.getAssets().loadTexture(getDefaultSkinFile("spiral.png")); Forge.getAssets().loadTexture(getDefaultSkinFile("splatter.png")); if (splashScreen != null) { diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index f4f5f7d4b78..8e2be4a410b 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -59,6 +59,8 @@ import forge.model.FModel; import forge.screens.match.MatchController; import forge.toolbox.FList; +import static forge.assets.FSkin.getDefaultSkinFile; + public class CardRenderer { public enum CardStackPosition { Top, @@ -818,7 +820,7 @@ public class CardRenderer { g.setAlphaComposite(0.6f); } if (onbattlefield && onTop) { - drawAbilityIcons(g, card, cx, cy, cw, cx + ((cw * 2) / 2.3f), cy, cw / 5.5f, cw / 5.7f, showAbilityIcons(card)); + drawAbilityIcons(g, card, cx, cy, cw, ch, cx + ((cw * 2) / 2.3f), cy, cw / 5.5f, cw / 5.7f, showAbilityIcons(card)); } else if (canShow && !onbattlefield && showAbilityIcons(card)) { //draw indicator for flash or can be cast at instant speed, enabled if show ability icons is enabled String keywordKey = card.getCurrentState().getKeywordKey(); @@ -875,7 +877,7 @@ public class CardRenderer { g.setAlphaComposite(oldAlpha); } - public static void drawAbilityIcons(Graphics g, CardView card, float cx, float cy, float cw, float abiX, float abiY, float abiScale, float abiSpace, boolean showAbilityIcons) { + public static void drawAbilityIcons(Graphics g, CardView card, float cx, float cy, float cw, float ch, float abiX, float abiY, float abiScale, float abiSpace, boolean showAbilityIcons) { float abiCount = 0; //show token indicator as status if (card.isToken()) { @@ -884,9 +886,19 @@ public class CardRenderer { abiCount += 1; } if (card.isSick()) { - CardFaceSymbols.drawSymbol("summonsick", g, abiX, abiY, cw / 4.7f, cw / 4.7f); - abiY += abiSpace + 1.7f; - abiCount += 1; + Texture spiral = Forge.getAssets().getTexture(getDefaultSkinFile("spiral.png")); + if (spiral != null) { + float newX = card.isTapped() ? cx + cw / 4.5f : cx; + float newY = card.isTapped() ? cy + cw / 4.75f : cy; + g.startRotateTransform(newX + cw / 2f, newY + ch / 2, -(Forge.deltaTime * 16f)); + g.drawImage(spiral, newX, newY, cw, ch); + g.endTransform(); + } else { + //old indicator + CardFaceSymbols.drawSymbol("summonsick", g, abiX, abiY, cw / 4.7f, cw / 4.7f); + abiY += abiSpace + 1.7f; + abiCount += 1; + } } if (card.isPhasedOut()) { CardFaceSymbols.drawSymbol("phasing", g, abiX, abiY, cw / 4.7f, cw / 4.7f); diff --git a/forge-gui-mobile/src/forge/screens/FScreen.java b/forge-gui-mobile/src/forge/screens/FScreen.java index c3f2fbdaa54..8cbd8fc7efe 100644 --- a/forge-gui-mobile/src/forge/screens/FScreen.java +++ b/forge-gui-mobile/src/forge/screens/FScreen.java @@ -63,6 +63,7 @@ public abstract class FScreen extends FContainer { } public void onActivate() { + Forge.startContinuousRendering(); } public void onSwitchAway(Callback canSwitchCallback) { diff --git a/forge-gui/res/skins/default/spiral.png b/forge-gui/res/skins/default/spiral.png new file mode 100644 index 00000000000..f540a2061de Binary files /dev/null and b/forge-gui/res/skins/default/spiral.png differ