Beispiel #1
0
 public CarveTimer(Mobile from, BattleNet net)
     : base(TimeSpan.FromSeconds(4.0))
 {
     c_Timer  = net.m_Timer;
     n_Net    = net;
     c_Mobile = from;
 }
Beispiel #2
0
        private void MoveNet(object state)
        {
            object[]     states = (object[])state;
            BattleNet    bn     = (BattleNet)states[0];
            PlayerMobile pm     = (PlayerMobile)states[1];


            if ((Math.Abs(bn.Y - m_EndY) == 0 || (Math.Abs(bn.X - m_EndX) / Math.Abs(bn.Y - m_EndY)) >= 2) && bn.Movable)
            {
                if ((bn.X - m_EndX) < 0)
                {
                    bn.X++;
                }
                else if ((bn.X - m_EndX) > 0)
                {
                    bn.X--;
                }
            }
            else if ((Math.Abs(bn.X - m_EndX) == 0 || (Math.Abs(bn.Y - m_EndY) / Math.Abs(bn.X - m_EndX)) > 2) && bn.Movable)
            {
                if ((bn.Y - m_EndY) < 0)
                {
                    bn.Y++;
                }
                else if ((bn.Y - m_EndY) > 0)
                {
                    bn.Y--;
                }
            }
            else if (bn.Movable)
            {
                if ((bn.X - m_EndX) < 0)
                {
                    bn.X++;
                }
                else if ((bn.X - m_EndX) > 0)
                {
                    bn.X--;
                }

                if ((bn.Y - m_EndY) < 0)
                {
                    bn.Y++;
                }
                else if ((bn.Y - m_EndY) > 0)
                {
                    bn.Y--;
                }
            }

            if (bn.Y == m_EndY && bn.X == m_EndX && bn.Movable)
            {
                bn.ItemID = 3530;
            }

            foreach (Mobile m in bn.GetMobilesInRange(0))
            {
                if (m != null && m != pm && m.CantWalk != true && m.AccessLevel <= pm.AccessLevel)
                {
                    if ((m is BaseCreature && TAVUtilities.CalculateLevel(m) < 45) || m is TeiravonMobile)
                    {
                        double duration = 12.0;
                        duration  -= (TAVUtilities.CalculateLevel(m) * .25);
                        m.CantWalk = true;
                        bn.Movable = false;
                        m_Timer    = new ReleaseTimer(m, bn);
                        bn.ItemID  = 7843;
                        m.LocalOverheadMessage(Server.Network.MessageType.Regular, MessageHue, true, "You've been ensnared in a net!");
                        m.Emote("*Struggles under the heavy netting*");
                        //m.Location = bn.Location;
                        m_Timer.Start();
                    }
                    else
                    {
                        m.Emote("*Shreds the netting effortlessly*");
                        bn.Delete();
                    }
                }
            }
        }