예제 #1
0
            protected override void OnTick()
            {
                if ((m_MovingTrap.Xa - 5) < m_MovingTrap.X)
                {
                    m_MovingTrap.X--;

                    List <Mobile> list = new List <Mobile>();
                    foreach (Mobile mob in m_MovingTrap.GetMobilesInRange(1))
                    {
                        Point3D traploc = m_MovingTrap.GetWorldLocation();
                        //Point3D mobloc = mob.Location();
                        if ((mob.X == (m_MovingTrap.X + 1) & mob.Y == m_MovingTrap.Y || mob.X == (m_MovingTrap.X - 1) & mob.Y == m_MovingTrap.Y) & mob.Alive)
                        {
                            //if (mob is Mobile & mob.Alive)
                            list.Add(mob);
                        }
                    }

                    foreach (Mobile mob in list)
                    {
                        if (mob is PlayerMobile)
                        {
                            mob.PlaySound(mob.Female ? 0x327 : 0x437);
                            mob.Animate(20, 1, 1, true, false, 0);

                            Spells.SpellHelper.Damage(TimeSpan.FromTicks(1), mob, mob, Utility.RandomMinMax(45, 50));
                        }
                        else
                        {
                            BaseCreature bc = (BaseCreature)mob;
                            bc.PlaySound(bc.GetAngerSound());
                            if (bc.Body.IsAnimal)
                            {
                                bc.Animate(10, 5, 1, true, false, 0);
                                Spells.SpellHelper.Damage(TimeSpan.FromTicks(1), mob, mob, Utility.RandomMinMax(0, 0));
                            }
                            else if (bc.Body.IsMonster)
                            {
                                bc.Animate(18, 5, 1, true, false, 0);
                                Spells.SpellHelper.Damage(TimeSpan.FromTicks(1), mob, mob, Utility.RandomMinMax(0, 0));
                            }
                        }
                    }

                    Start();
                }
                else
                {
                    Stop();
                    m_MovingTrap.m_XPlus = new XPlus(m_MovingTrap);
                    m_MovingTrap.m_XPlus.Start();
                }
            }
예제 #2
0
            public void RecordLocation()
            {
                Point3D loc = m_MovingTrap.GetWorldLocation();

                m_MovingTrap.Xa = loc.X;
            }