From 2cedade95761bdeefa67c4f74f9c5daa26d5fc2b Mon Sep 17 00:00:00 2001 From: drdev Date: Mon, 6 Oct 2014 05:20:48 +0000 Subject: [PATCH] Fix crash in tempShowCard Fix crash that can occur from calling canPlay too early --- .../src/main/java/forge/game/spellability/SpellAbility.java | 1 + .../main/java/forge/game/spellability/SpellAbilityView.java | 5 ----- .../src/main/java/forge/player/PlayerControllerHuman.java | 4 +++- 3 files changed, 4 insertions(+), 6 deletions(-) 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 5b1122a84e9..d2b7e9d1fa8 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -247,6 +247,7 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit if (subAbility != null) { subAbility.setActivatingPlayer(player); } + view.updateCanPlay(this); } public Player getTargetingPlayer() { diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityView.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityView.java index c6490bd7ee4..a072807b55a 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityView.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityView.java @@ -10,11 +10,6 @@ public class SpellAbilityView extends TrackableObject { super(sa.getId(), SpellAbilityProp.class); updateHostCard(sa); updateDescription(sa); - - //only update remaining properties if within Game context - if (sa.getHostCard().getGame() == null) { return; } - - updateCanPlay(sa); updatePromptIfOnlyPossibleAbility(sa); } diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index e7de890c137..4545c50f9fc 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -164,7 +164,9 @@ public class PlayerControllerHuman extends PlayerController { } } private void tempShowCard(Card c) { - CardView cv = MatchUtil.cards.get(c.getId()); + if (c == null) { return; } + + CardView cv = gameView.getCardView(c, false); if (!cv.mayBeShown()) { cv.setMayBeShown(true); tempShownCards.add(c);