public override bool CheckCast()
        {
            if (!base.CheckCast())
            {
                return(false);
            }

            if (Evasion.UnderEffect(Caster))
            {
                Caster.Send(new SetNewSpell(0x93, 0));

                Evasion.m_Table.Remove(Caster);
            }

            if (CounterAttack.UnderEffect(Caster))
            {
                Caster.Send(new SetNewSpell(0x94, 0));

                CounterAttack.m_Table.Remove(Caster);
            }

            return(true);
        }
        public override bool CheckCast()
        {
            if (!base.CheckCast())
            {
                return(false);
            }

            if (Confidence.UnderEffect(Caster))
            {
                Caster.Send(new SetNewSpell(0x92, 0));

                Confidence.m_Table.Remove(Caster);
            }

            if (Evasion.UnderEffect(Caster))
            {
                Caster.Send(new SetNewSpell(0x93, 0));

                Evasion.m_Table.Remove(Caster);
            }

            BaseShield shield = Caster.FindItemOnLayer(Layer.TwoHanded) as BaseShield;

            BaseWeapon weapon1 = Caster.FindItemOnLayer(Layer.OneHanded) as BaseWeapon;

            BaseWeapon weapon2 = Caster.FindItemOnLayer(Layer.TwoHanded) as BaseWeapon;

            if (shield == null && weapon1 == null && weapon2 == null)
            {
                Caster.SendLocalizedMessage(1062944);                   // You must have a weapon or a shield equipped to use this ability!

                return(false);
            }

            return(true);
        }