mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Do not draw targeting arc stack->player if player avatar isn't showing. Fixes IllegalComponentStateExceptions.
This commit is contained in:
@@ -17,10 +17,10 @@
|
|||||||
*/
|
*/
|
||||||
package forge.screens.match;
|
package forge.screens.match;
|
||||||
|
|
||||||
|
import java.awt.Point;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
|
||||||
import java.awt.Point;
|
|
||||||
import java.awt.RenderingHints;
|
import java.awt.RenderingHints;
|
||||||
import java.awt.geom.AffineTransform;
|
import java.awt.geom.AffineTransform;
|
||||||
import java.awt.geom.Area;
|
import java.awt.geom.Area;
|
||||||
@@ -175,7 +175,10 @@ public class TargetingOverlay {
|
|||||||
addArc(endpoints.get(c.getId()), itemLocOnScreen, activator.isOpponentOf(c.getController()));
|
addArc(endpoints.get(c.getId()), itemLocOnScreen, activator.isOpponentOf(c.getController()));
|
||||||
}
|
}
|
||||||
for (PlayerView p : instance.getTargetPlayers()) {
|
for (PlayerView p : instance.getTargetPlayers()) {
|
||||||
addArc(getPlayerTargetingArrowPoint(p, locOnScreen), itemLocOnScreen, activator.isOpponentOf(p));
|
Point point = getPlayerTargetingArrowPoint(p, locOnScreen);
|
||||||
|
if(point != null) {
|
||||||
|
addArc(point, itemLocOnScreen, activator.isOpponentOf(p));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
instance = instance.getSubInstance();
|
instance = instance.getSubInstance();
|
||||||
}
|
}
|
||||||
@@ -185,6 +188,10 @@ public class TargetingOverlay {
|
|||||||
|
|
||||||
private Point getPlayerTargetingArrowPoint(final PlayerView p, final Point locOnScreen) {
|
private Point getPlayerTargetingArrowPoint(final PlayerView p, final Point locOnScreen) {
|
||||||
final JPanel avatarArea = matchUI.getFieldViewFor(p).getAvatarArea();
|
final JPanel avatarArea = matchUI.getFieldViewFor(p).getAvatarArea();
|
||||||
|
if(!avatarArea.isShowing()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
final Point point = avatarArea.getLocationOnScreen();
|
final Point point = avatarArea.getLocationOnScreen();
|
||||||
point.x += avatarArea.getWidth() / 2 - locOnScreen.x;
|
point.x += avatarArea.getWidth() / 2 - locOnScreen.x;
|
||||||
point.y += avatarArea.getHeight() / 2 - locOnScreen.y;
|
point.y += avatarArea.getHeight() / 2 - locOnScreen.y;
|
||||||
|
|||||||
Reference in New Issue
Block a user