Пример #1
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (m_Boat == null || m_From == null)
            {
                return;
            }

            if (!m_Boat.Contains(m_From))
            {
                if (BaseBoat.isCarpet(m_Boat))
                {
                    m_From.SendMessage("You have to be on your carpet to do that!");
                }
                else
                {
                    m_From.SendMessage("You have to be on the boat to do that!");
                }
                m_From.CloseGump(typeof(TillerManGump));
                return;
            }

            switch (info.ButtonID)
            {
            case 100: m_Boat.StopMove(true); break;

            case 99: m_Boat.BeginRename(m_From); break;

            case 1:                     // N
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.North, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.North);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.South, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.South);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.West, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.West);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.East, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.East);
                    }
                }
                break;
            }

            case 2:                     // NE
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Right, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Right);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Left, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Left);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Up, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Up);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Down, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Down);
                    }
                }
                break;
            }

            case 3:                     // E
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.East, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.East);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.West, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.West);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.North, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.North);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.South, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.South);
                    }
                }
                break;
            }

            case 4:                     // SE
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Down, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Down);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Up, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Up);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Right, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Right);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Left, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Left);
                    }
                }
                break;
            }

            case 5:                     // S
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.South, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.South);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.North, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.North);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.East, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.East);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.West, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.West);
                    }
                }
                break;
            }

            case 6:                     // SW
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Left, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Left);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Right, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Right);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Down, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Down);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Up, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Up);
                    }
                }
                break;
            }

            case 7:                     // W
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.West, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.West);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.East, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.East);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.South, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.South);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.North, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.North);
                    }
                }
                break;
            }

            case 8:                     // NW
            {
                if (m_Boat.Facing == Direction.North)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Up, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Up);
                    }
                }
                else if (m_Boat.Facing == Direction.South)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Down, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Down);
                    }
                }
                else if (m_Boat.Facing == Direction.East)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Left, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Left);
                    }
                }
                else if (m_Boat.Facing == Direction.West)
                {
                    if (!ToggleOneStep)
                    {
                        m_Boat.StartMove(Direction.Right, true);
                    }
                    else
                    {
                        m_Boat.OneMove(Direction.Right);
                    }
                }
                break;
            }

            case 9:                     // TOGGLE ONE STEP
            {
                if (!ToggleOneStep)
                {
                    ToggleOneStep = true;
                }
                else
                {
                    ToggleOneStep = false;
                }
                break;
            }

            case 10:                            // RAISE / DROP ANCHOR
            {
                if (m_Boat.Anchored)
                {
                    m_Boat.RaiseAnchor(true);
                }
                else
                {
                    m_Boat.LowerAnchor(true);
                }
                break;
            }

            case 11:                            // TURN LEFT/RIGHT/AROUND
            {
                m_Boat.StartTurn(-2, true);     // LEFT
                break;
            }

            case 12:
            {
                m_Boat.StartTurn(2, true);                              // RIGHT
                break;
            }

            case 13:
            {
                m_Boat.StartTurn(-4, true);                             // AROUND
                break;
            }
            }

            m_From.CloseGump(typeof(TillerManGump));
            m_From.SendGump(new TillerManGump(m_From, m_Boat, ToggleOneStep));
        }
Пример #2
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            BaseBoat  boat = BaseBoat.FindBoatAt(m_From, m_From.Map);
            Container pack = m_From.Backpack;

            if (boat == null)
            {
                return;
            }
            if (pack != null)               // && pack.ConsumeTotal( typeof( Gold ), 2 ) )
            {
                switch (info.ButtonID)
                {
                case 1:                 // Drop Anchor
                {
                    boat.LowerAnchor(true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 2:                 // Raise Anchor
                {
                    boat.RaiseAnchor(true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 3:                 // Forward
                {
                    boat.StartMove(Direction.North, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 4:                 // Back
                {
                    boat.StartMove(Direction.South, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 5:                 // Left
                {
                    boat.StartMove(Direction.West, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 6:                 // Right
                {
                    boat.StartMove(Direction.East, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 7:                 // Stop
                {
                    boat.StopMove(true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 8:                 // TurnLeft
                {
                    boat.StartTurn(-2, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 9:                 // TurnRight
                {
                    boat.StartTurn(2, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 10:                 // OneForward
                {
                    boat.OneMove(Direction.North);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 11:                 // OneBack
                {
                    boat.OneMove(Direction.South);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 12:                 // OneLeft
                {
                    boat.OneMove(Direction.West);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 13:                 // OneRight
                {
                    boat.OneMove(Direction.East);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 14:                 // LeftForward
                {
                    boat.StartMove(Direction.Up, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }

                case 15:                 // RightForward
                {
                    boat.StartMove(Direction.Right, true);
                    m_From.SendGump(new NavigationGump((PlayerMobile)m_From));
                    break;
                }
                }
            }
        }
Пример #3
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            BaseBoat boat = BaseBoat.FindBoatAt(m_From, m_From.Map);

            if (boat == null)
            {
                return;
            }

            switch (info.ButtonID)
            {
            case 1:     // Drop Anchor
                boat.LowerAnchor(true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 2:     // Raise Anchor
                boat.RaiseAnchor(true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 3:     // Forward
                boat.StartMove(Direction.North, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 4:     // Back
                boat.StartMove(Direction.South, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 5:     // Left
                boat.StartMove(Direction.West, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 6:     // Right
                boat.StartMove(Direction.East, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 7:     // Stop
                boat.StopMove(true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 8:     // TurnLeft
                boat.StartTurn(-2, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 9:     // TurnRight
                boat.StartTurn(2, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 10:     // OneForward
                boat.OneMove(Direction.North);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 11:     // OneBack
                boat.OneMove(Direction.South);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 12:     // OneLeft
                boat.OneMove(Direction.West);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 13:     // OneRight
                boat.OneMove(Direction.East);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 14:     // LeftForward
                boat.StartMove(Direction.Up, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;

            case 15:     // RightForward
                boat.StartMove(Direction.Right, true);
                m_From.SendGump(new BoatGump((PlayerMobile)m_From));
                break;
            }
        }