public bool CanBeDestroyedByTopSpell(Card card, bool targetOnly = false) { if (IsEmpty) { return(false); } if (card.CanBeDestroyed == false) { return(false); } if (TopSpell.HasTag(EffectTag.Destroy)) { return(TopSpell.HasEffectTargets() ? TopSpell.HasEffectTarget(card) : !targetOnly); } if (card.Is().Creature == false) { return(false); } return(CanThougnessBeReducedToLeathalByTopSpell(card) || CanBeDealtLeathalDamageByTopSpell(card)); }
private bool CanThougnessBeReducedToLeathalByTopSpell(Card card) { if (IsEmpty) { return(false); } return(card.Life <= TopSpell.CalculateToughnessReduction(card)); }
public bool IsTargetedByTopSpell(Card card) { if (IsEmpty) { return(false); } return(TopSpell.HasEffectTarget(card)); }
public int GetDamageTopSpellWillDealToPlayer(Player player) { if (TopSpell == null) { return(0); } return(TopSpell.CalculatePlayerDamage(player)); }
public bool CanTopSpellReducePlayersLifeToZero(Player player) { if (TopSpell == null) { return(false); } var damage = TopSpell.CalculatePlayerDamage(player); return(damage >= player.Life); }
public int GetDamageTopSpellWillDealToCreature(Card card, bool targetOnly = false) { if (TopSpell == null) { return(0); } if (!TopSpell.HasEffectTargets() && targetOnly) { return(0); } var total = TopSpell.CalculateCreatureDamage(card); var prevented = card.CalculatePreventedDamageAmount(total, TopSpell.Source.OwningCard); return(total - prevented); }
public bool TopSpellHas(EffectTag tag) { return(!IsEmpty && TopSpell.HasTag(tag)); }