コード例 #1
0
        protected override bool BeginMove(Direction dir, SpeedCode speed)
        {
            if (speed == SpeedCode.Slow || speed == SpeedCode.Medium || speed == SpeedCode.Fast)
            {
                switch (Status)
                {
                case GalleonStatus.Half:
                {
                    if (speed == SpeedCode.Fast)
                    {
                        speed = SpeedCode.Medium;
                    }

                    break;
                }

                case GalleonStatus.Low:
                {
                    if (speed == SpeedCode.Fast || speed == SpeedCode.Medium)
                    {
                        speed = SpeedCode.Slow;
                    }

                    break;
                }
                }
            }

            if (base.BeginMove(dir, speed))
            {
                return(true);
            }

            return(false);
        }
コード例 #2
0
        protected override bool BeginMove(Direction dir, SpeedCode speed)
        {
            if (speed == SpeedCode.Fast)
            {
                speed = SpeedCode.Slow;
            }

            return(base.BeginMove(dir, speed));
        }
コード例 #3
0
 protected BaseSmoothMulti(int itemID)
     : base(itemID)
 {
     m_Facing           = Direction.North;
     m_Moving           = Direction.North;
     m_Speed            = SpeedCode.Stop;
     m_ContainedObjects = new DynamicComponentList();
     m_VirtualMount     = new SmoothMultiMountItem(this);
     m_Instances.Add(this);
 }
コード例 #4
0
 protected BaseSmoothMulti(int itemID)
     : base(itemID)
 {
     _facing           = Direction.North;
     _moving           = Direction.North;
     _speed            = SpeedCode.Stop;
     _containedObjects = new DynamicComponentList();
     _virtualMount     = new SmoothMultiMountItem(this);
     _instances.Add(this);
 }
コード例 #5
0
ファイル: BaseShip.cs プロジェクト: alucardxlx/uo-crystal
        protected override bool BeginMove(Direction dir, SpeedCode speed)
        {
            Order = BoatOrder.Move;

            if (base.BeginMove(dir, speed))
            {
                return(true);
            }

            return(false);
        }
コード例 #6
0
        protected override bool BeginMove(Direction dir, SpeedCode speed)
        {
            if (Anchored)
            {
                return(false);
            }

            if (base.BeginMove(dir, speed))
            {
                return(true);
            }

            return(false);
        }
コード例 #7
0
 protected override bool Move(Direction dir, SpeedCode speed)
 {
     if (base.Move(dir, speed))
     {
         return(true);
     }
     else
     {
         if (TillerMan != null)
         {
             TillerMan.TillerManSay(501424);                     //Ar, we've stopped sir.
         }
         return(false);
     }
 }
コード例 #8
0
        protected virtual bool EndMove()
        {
            if (m_Speed == SpeedCode.Stop)
            {
                return(false);
            }

            if (m_MoveTimer != null)
            {
                m_MoveTimer.Stop();
            }

            m_Speed = SpeedCode.Stop;
            return(true);
        }
コード例 #9
0
        protected virtual bool EndMove()
        {
            if (_speed == SpeedCode.Stop)
            {
                return(false);
            }

            if (_currentMoveTimer != null)
            {
                _currentMoveTimer.Stop();
            }

            _speed = SpeedCode.Stop;

            return(true);
        }
コード例 #10
0
        protected virtual bool BeginCourse(Direction dir, SpeedCode speed)
        {
            Order = BoatOrder.Course;

            if (speed == SpeedCode.One)
            {
                return(true);
            }

            if (base.BeginMove(dir, speed))
            {
                return(true);
            }

            return(false);
        }
コード例 #11
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_Facing           = (Direction)reader.ReadByte();
            m_VirtualMount     = reader.ReadItem() as SmoothMultiMountItem;
            m_Moving           = m_Facing;
            m_Speed            = SpeedCode.Stop;
            m_ContainedObjects = new DynamicComponentList(reader);

            if (m_VirtualMount == null)
            {
                Delete();
            }
        }
コード例 #12
0
        protected virtual bool BeginMove(Direction dir, SpeedCode speed)
        {
            if (speed == SpeedCode.Stop)
            {
                return(false);
            }

            if (_currentMoveTimer != null)
            {
                _currentMoveTimer.Stop();
            }

            _moving = dir;
            _speed  = speed;

            _currentMoveTimer = new MoveTimer(this, timespanDictionary[speed], speed);
            _currentMoveTimer.Start();

            return(true);
        }
コード例 #13
0
        protected virtual bool BeginMove(Direction dir, SpeedCode speed)
        {
            if (speed == SpeedCode.Stop)
            {
                return(false);
            }

            if (m_MoveTimer != null)
            {
                m_MoveTimer.Stop();
            }

            m_Moving = dir;
            m_Speed  = speed;

            m_MoveTimer = new MoveTimer(this, m_TimespanDictionary[speed], speed);
            m_MoveTimer.Start();

            return(true);
        }
コード例 #14
0
        protected bool BeginCourse(Direction dir, SpeedCode speed)
        {
            if (Anchored)
            {
                return(false);
            }

            Order = BoatOrder.Course;

            if (speed == SpeedCode.One)
            {
                return(true);
            }

            if (BeginMove(dir, speed))
            {
                return(true);
            }

            return(false);
        }
コード例 #15
0
        private bool Move(Direction dir, SpeedCode speed)
        {
            Map map = Map;

            if (map == null || Deleted)
            {
                return(false);
            }

            int rx = 0, ry = 0;

            Movement.Movement.Offset(dir, ref rx, ref ry);

            Point3D newLocation = new Point3D(X + rx, Y + ry, Z);

            if (!CanFit(newLocation, Map, ItemID))
            {
                return(false);
            }

            SetLocationOnSmooth(newLocation);
            return(true);
        }
コード例 #16
0
 public MoveTimer(BaseSmoothMulti multi, TimeSpan interval, SpeedCode speed)
     : base(TimeSpan.Zero, interval, speed == SpeedCode.One ? 1 : 0)
 {
     m_Multi  = multi;
     Priority = TimerPriority.TwentyFiveMS;
 }
コード例 #17
0
        protected virtual bool Move(Direction dir, SpeedCode speed)
        {
            Map map = Map;

            if (map == null || Deleted)
            {
                return(false);
            }

            int rx = 0, ry = 0;

            Movement.Movement.Offset(dir, ref rx, ref ry);

            Point3D newLocation = new Point3D(X + rx, Y + ry, Z);

            if (!CanFit(newLocation, Map, ItemID))
            {
                return(false);
            }

            int xOffset         = rx;
            int yOffset         = ry;

            int newX = X + xOffset;
            int newY = Y + yOffset;

            Rectangle2D[] wrap = GetWrapFor(map);

            for (int i = 0; i < wrap.Length; ++i)
            {
                Rectangle2D rect = wrap[i];

                if (rect.Contains(new Point2D(X, Y)) && !rect.Contains(new Point2D(newX, newY)))
                {
                    if (newX < rect.X)
                    {
                        newX = rect.X + rect.Width - 1;
                    }
                    else if (newX >= rect.X + rect.Width)
                    {
                        newX = rect.X;
                    }

                    if (newY < rect.Y)
                    {
                        newY = rect.Y + rect.Height - 1;
                    }
                    else if (newY >= rect.Y + rect.Height)
                    {
                        newY = rect.Y;
                    }

                    for (int j = 1; j <= (int)speed; ++j)
                    {
                        if (!CanFit(new Point3D(newX + (j * rx), newY + (j * ry), Z), Map, ItemID))
                        {
                            return(false);
                        }
                    }

                    xOffset = newX - X;
                    yOffset = newY - Y;
                }
            }

            Point3D newWrapLocation = new Point3D(X + xOffset, Y + yOffset, Z);

            GetMovingEntities();
            if (newLocation != newWrapLocation)
            {
                Location = newWrapLocation;
            }
            else
            {
                SetLocationOnSmooth(newLocation);
            }

            return(true);
        }
コード例 #18
0
 public CourseMoveTimer(NewBaseBoat boat, TimeSpan interval, SpeedCode speed, bool single)
     : base(interval, interval, single ? 1 : 0)
 {
     _boat    = boat;
     Priority = TimerPriority.TwentyFiveMS;
 }
コード例 #19
0
ファイル: BaseShip.cs プロジェクト: alucardxlx/uo-crystal
 protected override bool Move(Direction dir, SpeedCode speed)
 {
     return(base.Move(dir, speed));
 }
コード例 #20
0
        /// <summary>
        /// Manejador del evento 'SelectedIndexChanged' del combobox usado para elegir la
        /// velocidad de comunicacion.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cbSpeed_SelectedIndexChanged(object sender, EventArgs e)
        {
            var pn = "B" + (string)cbSpeed.SelectedItem;

            useSpeed = (SpeedCode)Enum.Parse(typeof(SpeedCode), pn);
        }
コード例 #21
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="bag">El tipo de target al que nos estamos conectando</param>
        public TargetConfigure(TargetBag bag)
        {
            InitializeComponent();

            this.originalBag = bag;
            portList         = new List <PortDescription>();
            tbIP.Top         = tbPort.Top = cbSpeed.Top;
            btPing.Top       = cbSpeed.Top - 1;
            lbPort.Top       = cbSpeed.Top + 3;

            try
            {
                using (ManagementObjectSearcher searcher =
                           new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity"))
                {
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        object obj = queryObj["Name"];
                        if (obj != null)
                        {
                            var nom   = obj.ToString();
                            var index = nom.ToLower().IndexOf("(com");
                            if (index >= 0)
                            {
                                index++;
                                for (int i = index; i < nom.Length; i++)
                                {
                                    if (nom[i] == ')')
                                    {
                                        string portName = nom.Substring(index, i - index);
                                        portList.Add(new PortDescription {
                                            Name = portName, Description = nom
                                        });
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show($"Error examinando el equipo: '{e.Message}'");
            }

            portList.Add(new PortDescription {
                Name = "Red", Description = "Red Ethernet por TCP/IP"
            });
            portList.Sort((a, b) => a.Name.ToUpper().CompareTo(b.Name.ToUpper()));

            cbPortName.Items.Clear();
            foreach (var kvp in portList)
            {
                cbPortName.Items.Add(kvp);
                bool doSelect = originalBag.UseNetwork ?
                                kvp.Name.ToLower() == "red" :
                                kvp.Name.ToLower() == originalBag.PortName.ToLower();
                if (doSelect)
                {
                    cbPortName.SelectedIndex = cbPortName.Items.Count - 1;
                }
            }

            this.useSpeed = bag.Speed;
            this.Text     = " " + bag.Name;

            int    sel    = -1;
            string actual = useSpeed.ToString();

            foreach (var vn in Enum.GetNames(typeof(SpeedCode)))
            {
                if (vn == actual)
                {
                    sel = cbSpeed.Items.Count;
                }
                cbSpeed.Items.Add(vn.Substring(1));
            }
            if (sel >= 0)
            {
                cbSpeed.SelectedIndex = sel;
            }
            tbIP.Text = bag.IPAddress;
        }
コード例 #22
0
 public CourseMoveTimer(BaseGalleon galleon, TimeSpan interval, SpeedCode speed, bool single)
     : base(interval, interval, single ? 1 : 0)
 {
     _galleon = galleon;
     Priority = TimerPriority.TwentyFiveMS;
 }