869 lines
No EOL
43 KiB
C#
869 lines
No EOL
43 KiB
C#
using Server;
|
|
using Server.Commands;
|
|
using Server.Gumps;
|
|
using Server.Multis;
|
|
using Server.Network;
|
|
using System;
|
|
using System.Text;
|
|
|
|
namespace Server.Misc
|
|
{
|
|
public class BoatNavigationControl : Gump
|
|
{
|
|
public BoatNavigationControl(Mobile from) : base(50, 50)
|
|
{
|
|
this.Closable = true;
|
|
this.Disposable = true;
|
|
this.Dragable = true;
|
|
this.Resizable = false;
|
|
|
|
AddPage(0);
|
|
|
|
AddImage(333, 141, 9274);
|
|
AddImage(343, 152, 9274);
|
|
|
|
AddImage(222, 214, 1417);
|
|
AddImage(504, 214, 1417);
|
|
AddItem(525, 219, 5367);
|
|
AddItem(504, 262, 5368);
|
|
AddItem(242, 221, 16083);
|
|
AddImage(302, 110, 9007);
|
|
|
|
AddItem(385, 163, 15946, 795);
|
|
|
|
AddBackground(368, 199, 74, 46, 9400);
|
|
|
|
AddButton(554, 233, 5600, 5604, (int)Buttons.RaiseAnchor, GumpButtonType.Reply, 0);
|
|
AddButton(554, 261, 5606, 5606, (int)Buttons.LowerAnchor, GumpButtonType.Reply, 0);
|
|
AddButton(395, 143, 2117, 11400, (int)Buttons.NorthWest, GumpButtonType.Reply, 0);
|
|
AddButton(396, 263, 2117, 11400, (int)Buttons.SouthEast, GumpButtonType.Reply, 0);
|
|
AddButton(336, 203, 2117, 11400, (int)Buttons.SouthWest, GumpButtonType.Reply, 0);
|
|
AddButton(456, 202, 2117, 11400, (int)Buttons.NorthEast, GumpButtonType.Reply, 0);
|
|
AddButton(436, 162, 2117, 11400, (int)Buttons.North, GumpButtonType.Reply, 0);
|
|
AddButton(355, 244, 2117, 11400, (int)Buttons.South, GumpButtonType.Reply, 0);
|
|
AddButton(353, 163, 2117, 11400, (int)Buttons.West, GumpButtonType.Reply, 0);
|
|
AddButton(438, 244, 2117, 11400, (int)Buttons.East, GumpButtonType.Reply, 0);
|
|
AddButton(239, 229, 5603, 5607, (int)Buttons.PPlankControl, GumpButtonType.Reply, 0);
|
|
AddButton(275, 249, 5601, 5605, (int)Buttons.SPlankControl, GumpButtonType.Reply, 0);
|
|
|
|
AddButton(275, 249, 5601, 5605, (int)Buttons.SPlankControl, GumpButtonType.Reply, 0);
|
|
|
|
AddButton(553, 280, 4, 4, (int)Buttons.RenameShip, GumpButtonType.Reply, 0);
|
|
|
|
AddLabel(388, 212, 295, @"STOP");
|
|
|
|
AddButton(478, 244, 3, 3, (int)Buttons.Close, GumpButtonType.Reply, 0);
|
|
AddButton(571, 217, 22404, 22404, (int)Buttons.TurnRight, GumpButtonType.Reply, 0);
|
|
AddButton(476, 198, 9904, 9903, (int)Buttons.NorthEastOne, GumpButtonType.Reply, 0);
|
|
AddButton(309, 199, 9910, 9909, (int)Buttons.SouthWestOne, GumpButtonType.Reply, 0);
|
|
AddButton(392, 116, 9901, 9900, (int)Buttons.NorthWestOne, GumpButtonType.Reply, 0);
|
|
AddButton(393, 284, 9907, 9906, (int)Buttons.SouthEastOne, GumpButtonType.Reply, 0);
|
|
AddButton(217, 217, 22403, 22403, (int)Buttons.TurnLeft, GumpButtonType.Reply, 0);
|
|
AddButton(286, 278, 22400, 22400, (int)Buttons.TurnAround, GumpButtonType.Reply, 0);
|
|
AddButton(435, 215, 9762, 9763, (int)Buttons.ForwardOnCurrentHeading, GumpButtonType.Reply, 0);
|
|
AddButton(358, 215, 9766, 9767, (int)Buttons.BackwardOnCurrentHeading, GumpButtonType.Reply, 0);
|
|
}
|
|
|
|
public enum Buttons
|
|
{
|
|
DoNothing,
|
|
RaiseAnchor,
|
|
LowerAnchor,
|
|
NorthWest,
|
|
SouthEast,
|
|
SouthWest,
|
|
NorthEast,
|
|
North,
|
|
South,
|
|
West,
|
|
East,
|
|
PPlankControl,
|
|
SPlankControl,
|
|
Stop,
|
|
Close,
|
|
TurnRight,
|
|
NorthEastOne,
|
|
SouthWestOne,
|
|
NorthWestOne,
|
|
SouthEastOne,
|
|
TurnLeft,
|
|
TurnAround,
|
|
ForwardOnCurrentHeading,
|
|
BackwardOnCurrentHeading,
|
|
RenameShip
|
|
}
|
|
|
|
public override void OnResponse(NetState sender, RelayInfo info)
|
|
{
|
|
Mobile from = sender.Mobile;
|
|
BaseBoat boat = BaseBoat.FindBoatAt(from, from.Map);
|
|
|
|
if (!from.Alive && boat == null)
|
|
{
|
|
return;
|
|
}
|
|
else if (boat == null)
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
switch (info.ButtonID)
|
|
{
|
|
case 0:
|
|
{
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.RenameShip:
|
|
{
|
|
boat.BeginRename( from );
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.RaiseAnchor:
|
|
{
|
|
from.Say("Raise The Anchor!");
|
|
boat.RaiseAnchor(true);
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.LowerAnchor:
|
|
{
|
|
from.Say("Lower The Anchor!");
|
|
boat.LowerAnchor(true);
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.NorthWest:
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Set Heading: North Northwest!!");
|
|
boat.StartMove(Direction.Up, true);
|
|
}
|
|
else if (boat.Facing != Direction.North)
|
|
{
|
|
if (boat.Facing == Direction.East)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: North Northwest!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: West Northwest!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: North Northwest!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: West Northwest!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: North Northwest!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: West Northwest!!");
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.SouthEast:
|
|
{
|
|
if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Set Heading: South Southeast!!");
|
|
boat.StartMove(Direction.Up, true);
|
|
}
|
|
else if (boat.Facing != Direction.South)
|
|
{
|
|
if (boat.Facing == Direction.West)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: South Southeast!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: East Southeast!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.North)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: South Southeast!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: East Southeast!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: South Southeast!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: East Southeast!!");
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.SouthWest:
|
|
{
|
|
if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Set Heading: South Southwest!");
|
|
boat.StartMove(Direction.Right, true);
|
|
}
|
|
else if (boat.Facing != Direction.South)
|
|
{
|
|
if (boat.Facing == Direction.West)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: South Southwest!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: West Southwest!!");
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.North)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: South Southwest!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: West Southwest!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: South Southwest!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: West Southwest!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.NorthEast:
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Set Heading: North Northeast!");
|
|
boat.StartMove(Direction.Right, true);
|
|
}
|
|
else if (boat.Facing != Direction.North)
|
|
{
|
|
if (boat.Facing == Direction.East)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: North Northeast!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: East Northeast!!");
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: North Northeast!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: East Northeast!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
switch (Utility.Random(2))
|
|
{
|
|
case 1:
|
|
{
|
|
from.Say("Set Heading: North Northeast!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.Right, true);
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: East Northeast!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.Up, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.North:
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Set Heading: Due North!!");
|
|
boat.StartMove(Direction.North, true);
|
|
}
|
|
else if (boat.Facing != Direction.North)
|
|
{
|
|
if (boat.Facing == Direction.East)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due North!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due North!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due North!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.South:
|
|
{
|
|
if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Set Heading: Due South!!");
|
|
boat.StartMove(Direction.North, true);
|
|
}
|
|
else if (boat.Facing != Direction.South)
|
|
{
|
|
if (boat.Facing == Direction.West)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due South!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.North)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due South!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due South!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.West:
|
|
{
|
|
if (boat.Facing == Direction.West)
|
|
{
|
|
from.Say("Set Heading: Due West!!");
|
|
boat.StartMove(Direction.North, true);
|
|
}
|
|
else if (boat.Facing != Direction.West)
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due West!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due West!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due West!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.East:
|
|
{
|
|
if (boat.Facing == Direction.East)
|
|
{
|
|
from.Say("Set Heading: Due East!!");
|
|
boat.StartMove(Direction.North, true);
|
|
}
|
|
else if (boat.Facing != Direction.East)
|
|
{
|
|
if (boat.Facing == Direction.South)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due East!!");
|
|
boat.Turn(270, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due East!!");
|
|
boat.Turn(180, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (boat.Facing == Direction.North)
|
|
{
|
|
switch (Utility.Random(1))
|
|
{
|
|
case 0:
|
|
{
|
|
from.Say("Set Heading: Due East!!");
|
|
boat.Turn(90, true);
|
|
boat.StartMove(Direction.North, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.PPlankControl:
|
|
{
|
|
from.Say("Extend The Port Plank!!");
|
|
boat.PPlank.Open();
|
|
boat.PPlank.Locked = false;
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.SPlankControl:
|
|
{
|
|
from.Say("Extend The Starboard Plank!!");
|
|
boat.SPlank.Open();
|
|
boat.SPlank.Locked = false;
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.Stop:
|
|
{
|
|
from.Say("Stop The Ship!!");
|
|
boat.StopMove(true);
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.Close:
|
|
{
|
|
from.CloseGump(typeof(BoatNavigationControl));
|
|
break;
|
|
}
|
|
case (int)Buttons.TurnRight:
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Change Course! New Heading: Due East!");
|
|
boat.Turn(90, true);
|
|
}
|
|
else if (boat.Facing != Direction.North)
|
|
{
|
|
if (boat.Facing == Direction.East)
|
|
{
|
|
from.Say("Change Course! New Heading: Due South!");
|
|
boat.Turn(90, true);
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Change Course! New Heading: Due West!");
|
|
boat.Turn(90, true);
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
from.Say("Change Course! New Heading Due North!");
|
|
boat.Turn(90, true);
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.NorthEastOne:
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Set Heading: One Right!");
|
|
boat.OneMove(Direction.East);
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
from.Say("Set Heading: One Right!");
|
|
boat.OneMove(Direction.East);
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Set Heading: One Right!");
|
|
boat.OneMove(Direction.East);
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
from.Say("Set Heading: One Right!");
|
|
boat.OneMove(Direction.East);
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.SouthWestOne: // Left One
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Set Heading: One Left!");
|
|
boat.OneMove(Direction.West);
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
from.Say("Set Heading: One Left!");
|
|
boat.OneMove(Direction.West);
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Set Heading: One Left!");
|
|
boat.OneMove(Direction.West);
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
from.Say("Set Heading: One Left!");
|
|
boat.OneMove(Direction.West);
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.NorthWestOne: // Forward One
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Set Heading: One Forward!");
|
|
boat.OneMove(Direction.North);
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
from.Say("Set Heading: One Forward!");
|
|
boat.OneMove(Direction.North);
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Set Heading: One Forward!");
|
|
boat.OneMove(Direction.North);
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
from.Say("Set Heading: One Forward!");
|
|
boat.OneMove(Direction.North);
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.SouthEastOne:
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Set Heading: One Backward!");
|
|
boat.OneMove(Direction.South);
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
from.Say("Set Heading: One Backward!");
|
|
boat.OneMove(Direction.South);
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Set Heading: One Backward!");
|
|
boat.OneMove(Direction.South);
|
|
}
|
|
else if (boat.Facing == Direction.West)
|
|
{
|
|
from.Say("Set Heading: One Backward!");
|
|
boat.OneMove(Direction.South);
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.TurnLeft:
|
|
{
|
|
if (boat.Facing == Direction.North)
|
|
{
|
|
from.Say("Change Course! New Heading: Due West!");
|
|
boat.Turn(-90, true);
|
|
}
|
|
else if (boat.Facing != Direction.North)
|
|
{
|
|
if (boat.Facing == Direction.West)
|
|
{
|
|
from.Say("Change Course! New Heading: Due South!");
|
|
boat.Turn(-90, true);
|
|
}
|
|
else if (boat.Facing == Direction.South)
|
|
{
|
|
from.Say("Change Course! New Heading: Due East!");
|
|
boat.Turn(-90, true);
|
|
}
|
|
else if (boat.Facing == Direction.East)
|
|
{
|
|
from.Say("Change Course! New Heading: Due North!");
|
|
boat.Turn(-90, true);
|
|
}
|
|
}
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.TurnAround:
|
|
{
|
|
from.Say("Come About!!");
|
|
boat.Turn(180, true);
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.ForwardOnCurrentHeading:
|
|
{
|
|
// Code: boat.Speed = 1
|
|
// Originally Worked But Caused Boats To Beach Themselves On Land
|
|
|
|
boat.StartMove(Direction.North, false);
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
case (int)Buttons.BackwardOnCurrentHeading:
|
|
{
|
|
// Code: boat.Speed = -1
|
|
// Originally Worked But Caused Boats To Beach Themselves On Land
|
|
|
|
boat.StartMove(Direction.South, false);
|
|
|
|
from.SendGump(new BoatNavigationControl(from));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |