diff --git a/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java b/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java index e500d5c8510..d0d7e0b3bbe 100644 --- a/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java +++ b/forge-gui-mobile/src/forge/screens/match/TargetingOverlay.java @@ -61,10 +61,7 @@ public class TargetingOverlay { final Map endpoints = new HashMap(); for (FCardPanel c : cardPanels) { - Vector2 cardScreenPos = c.getScreenPosition(); - endpoints.put(c.getCard().getUniqueNumber(), new Vector2( - cardScreenPos.x + c.getWidth() / 4, - cardScreenPos.y + c.getHeight() / 2)); + endpoints.put(c.getCard().getUniqueNumber(), c.getTargetingArrowOrigin()); } final Combat combat = FControl.getGame().getCombat(); diff --git a/forge-gui-mobile/src/forge/toolbox/FCardPanel.java b/forge-gui-mobile/src/forge/toolbox/FCardPanel.java index f67b6aaee76..7653554d102 100644 --- a/forge-gui-mobile/src/forge/toolbox/FCardPanel.java +++ b/forge-gui-mobile/src/forge/toolbox/FCardPanel.java @@ -1,5 +1,7 @@ package forge.toolbox; +import com.badlogic.gdx.math.Vector2; + import forge.Graphics; import forge.card.CardRenderer; import forge.game.card.Card; @@ -73,6 +75,30 @@ public class FCardPanel extends FDisplayObject { return PADDING; } + public Vector2 getTargetingArrowOrigin() { + Vector2 origin = new Vector2(getScreenPosition()); + + float left = PADDING; + float top = PADDING; + float w = getWidth() - 2 * PADDING; + float h = getHeight() - 2 * PADDING; + if (w == h) { //adjust width if needed to make room for tapping + w = h / ASPECT_RATIO; + } + + if (tapped) { //rotate box if tapped + top += h - w; + float temp = w; + w = h; + h = temp; + } + + origin.x += left + w * 0.15f; + origin.y += top + h * 0.5f; + + return origin; + } + @Override public void draw(Graphics g) { if (card == null) { return; }