Exemplo n.º 1
0
/*
 *                      protected override void OnTargetCancel( Mobile from, TargetCancelType cancelType )
 *                      {
 *                              ReleaseIceLock( from );
 *                              base.OnTargetCancel( from, cancelType );
 *                      }
 */
            protected override void OnTarget(Mobile from, object targeted)
            {
                bool success = false;

                if (m_Staff != null && !m_Staff.Deleted && m_Staff.UsesRemaining > 0 && from == m_Staff.Parent && targeted is Mobile)
                {
                    Mobile to = (Mobile)targeted;
                    if (!from.CanSee(to) || !from.InLOS(to))
                    {
                        from.SendLocalizedMessage(500237);
                    }
                    else if (from.HarmfulCheck(to))
                    {
                        switch (m_Staff.CurrentSpell)
                        {
                        case GlacialSpells.Freeze: success = DoFreeze(from, to); break;

                        case GlacialSpells.IceStrike: success = DoIceStrike(from, to); break;

                        case GlacialSpells.IceBall: success = DoIceBall(from, to); break;
                        }

                        if (success)
                        {
                            from.BeginAction(typeof(GlacialStaff));
                            Timer.DelayCall(TimeSpan.FromSeconds(7.0), new TimerStateCallback(ReleaseIceLock), from);
                            Timer.DelayCall(TimeSpan.FromSeconds(1.5), new TimerStateCallback(ReleaseHueMod), new object[] { m_Staff, m_Staff.Hue });
                            m_Staff.Hue = 1266;
                            --m_Staff.UsesRemaining;
                            if (m_Staff.UsesRemaining <= 0)
                            {
                                m_Staff.Delete();                                 //No message on OSI?
                            }
                            return;
                        }
                    }
                }

                //if ( !success )
                //	ReleaseIceLock( from );
            }