From 452bdd7b4f6aaa69139c6780369bef93ee9aa0ff Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 13 Sep 2017 16:41:10 +0000 Subject: [PATCH] - NPE prevention in ControlGainAi. --- .../java/forge/ai/ability/ControlGainAi.java | 22 ++++++++++--------- .../forge/game/spellability/SpellAbility.java | 4 ++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/ControlGainAi.java b/forge-ai/src/main/java/forge/ai/ability/ControlGainAi.java index d94b1ea60f1..3a24bbc6ea4 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ControlGainAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ControlGainAi.java @@ -227,16 +227,18 @@ public class ControlGainAi extends SpellAbilityAi { t = ComputerUtilCard.getMostExpensivePermanentAI(list, sa, true); } - if (t.isCreature()) - creatures--; - if (t.isPlaneswalker()) - planeswalkers--; - if (t.isLand()) - lands--; - if (t.isArtifact()) - artifacts--; - if (t.isEnchantment()) - enchantments--; + if (t != null) { + if (t.isCreature()) + creatures--; + if (t.isPlaneswalker()) + planeswalkers--; + if (t.isLand()) + lands--; + if (t.isArtifact()) + artifacts--; + if (t.isEnchantment()) + enchantments--; + } if (!sa.canTarget(t)) { list.remove(t); diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index 90b07f390cd..3017e615679 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -889,6 +889,10 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit } public final boolean canTarget(final GameObject entity) { + if (entity == null) { + return false; + } + final TargetRestrictions tr = getTargetRestrictions(); // Restriction related to this ability