Exemplo n.º 1
0
 public override void OnDoubleClick(Mobile from)
 {
     if (m_Boat != null && m_Boat.Contains(from))
     {
         m_Boat.BeginRename(from);
     }
     else if (m_Boat != null)
     {
         m_Boat.BeginRename(from);
     }
 }
Exemplo n.º 2
0
 public override void OnDoubleClick(Mobile from)
 {
     if (m_Boat?.Contains(from) == true)
     {
         m_Boat.BeginRename(from);
     }
     else
     {
         m_Boat?.BeginDryDock(from);
     }
 }
Exemplo n.º 3
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));
        }