Fixed NPE errors for some cards (#5471)

This commit is contained in:
Oleg Agafonov 2019-01-08 07:15:39 +04:00
parent d70743d4a5
commit 063be44523
12 changed files with 122 additions and 139 deletions

View file

@ -1,8 +1,5 @@
package mage.abilities;
import java.util.Optional;
import java.util.UUID;
import mage.MageObject;
import mage.MageObjectReference;
import mage.abilities.costs.Cost;
@ -12,17 +9,15 @@ import mage.abilities.costs.mana.VariableManaCost;
import mage.abilities.keyword.FlashAbility;
import mage.cards.Card;
import mage.cards.SplitCard;
import mage.constants.AbilityType;
import mage.constants.AsThoughEffectType;
import mage.constants.SpellAbilityCastMode;
import mage.constants.SpellAbilityType;
import mage.constants.TimingRule;
import mage.constants.Zone;
import mage.constants.*;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.stack.Spell;
import mage.players.Player;
import java.util.Optional;
import java.util.UUID;
/**
* @author BetaSteward_at_googlemail.com
*/
@ -224,12 +219,16 @@ public class SpellAbility extends ActivatedAbilityImpl {
if (event.getType() != GameEvent.EventType.CAST_SPELL) {
return null;
}
Card card = game.getCard(event.getSourceId());
Optional<Ability> ability = card.getAbilities(game).get(event.getTargetId());
if (ability.isPresent() && ability.get() instanceof SpellAbility) {
return (SpellAbility) ability.get();
if (card != null) {
Optional<Ability> ability = card.getAbilities(game).get(event.getTargetId());
if (ability.isPresent() && ability.get() instanceof SpellAbility) {
return (SpellAbility) ability.get();
}
return card.getSpellAbility();
}
return card.getSpellAbility();
return null;
}
public void setId(UUID idToUse) {