예제 #1
0
파일: Stack.cs 프로젝트: longde123/grove
        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));
        }
예제 #2
0
파일: Stack.cs 프로젝트: longde123/grove
        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);
        }