From 819301c7d82b5077571742087404c0ee070ece31 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 21 Apr 2018 19:58:03 +0300 Subject: [PATCH] - FIXME: Added NPE prevention for situations where targeting cards with Shroud would be tested, but the SA activator would be null at this point (seems to happen for the AI in MoJhoSto matches; probably needs a more thorough long-term solution). --- forge-game/src/main/java/forge/game/card/Card.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 785cc0f4116..207aecb8f29 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -4985,7 +4985,10 @@ public class Card extends GameEntity implements Comparable { StringBuilder sb = new StringBuilder(); sb.append("Can target CardUID_").append(String.valueOf(getId())); sb.append(" with spells and abilities as though it didn't have shroud."); - if (!sa.getActivatingPlayer().hasKeyword(sb.toString())) { + if (sa.getActivatingPlayer() == null) { + System.err.println("Unexpected behavior: SA activator was null when trying to determine if the activating player could target a card with Shroud. SA host card = " + source + ", SA = " + sa); + result.setFalse(); // FIXME: maybe this should check by SA host card controller at this point instead? + } else if (!sa.getActivatingPlayer().hasKeyword(sb.toString())) { result.setFalse(); } break;