protected override void OnTarget(Mobile from, object o)
            {
                if (o is Mobile)
                {
                    if (o == from)
                    {
                        from.SendMessage("You can't target yourself.");
                        return;
                    }

                    TeiravonMobile m_Player = (TeiravonMobile)from;
                    Mobile         m_Target = (Mobile)o;

                    if (m_Target != null)
                    {
                        int bashdamage = m_ar;

                        if (shield is SpikedShield)
                        {
                            bashdamage = bashdamage + (int)(m_Player.PlayerLevel * 1.5);
                        }

                        m_Target.Damage(bashdamage, from);

                        if (Utility.Random(1, 20) <= m_Player.PlayerLevel)
                        {
                            from.SendMessage("You deliver a stunning blow!");
                            m_Target.SendMessage("The attack has stunned you!");
                            m_Target.Paralyze(m_Target.Player ? TimeSpan.FromSeconds(3.0) : TimeSpan.FromSeconds(6.0));
                            m_Target.FixedEffect(0x376A, 9, 32);
                            m_Target.PlaySound(0x204);
                        }
                    }

                    // Reuse Timer
                    TimerHelper m_TimerHelper = new TimerHelper((int)m_Player.Serial);
                    m_TimerHelper.DoFeat   = true;
                    m_TimerHelper.Feat     = TeiravonMobile.Feats.ShieldBash;
                    m_TimerHelper.Duration = Server.Teiravon.AbilityCoolDown.AtWill;
                    m_TimerHelper.Start();

                    m_Player.SetActiveFeats(TeiravonMobile.Feats.ShieldBash, true);
                }
                else
                {
                    from.SendMessage("That is not a living creature.");
                }
            }
        public override void Drink(Mobile from)
        {
            TeiravonMobile m_Player = (TeiravonMobile)from;

            if (m_Player.CanDrink(PEffect))
            {
                BasePotion.PlayDrinkEffect(from);
                this.Consume();

                m_Player.SendMessage("You take a sip of the potion...");

                TimerHelper m_TimerHelper = new TimerHelper((int)m_Player.Serial);

                m_TimerHelper.Potion   = PEffect;
                m_TimerHelper.Duration = Scale(from, Duration);
                m_TimerHelper.Start();

                m_Player.SetActivePotions(PEffect, true);
            }
            else
            {
                m_Player.SendMessage("You can't drink this now.");
            }
        }