Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
98
Scripts/Services/Expansions/High Seas/Multis/ShipWheel.cs
Normal file
98
Scripts/Services/Expansions/High Seas/Multis/ShipWheel.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ShipWheel : Item, IGalleonFixture
|
||||
{
|
||||
public override int LabelNumber { get { return 1149698; } } // wheel
|
||||
|
||||
public BaseGalleon Galleon { get; set; }
|
||||
|
||||
public Mobile Pilot { get { return Galleon != null ? Galleon.Pilot : null; } }
|
||||
|
||||
public ShipWheel(BaseGalleon galleon, int id)
|
||||
: base(id)
|
||||
{
|
||||
Galleon = galleon;
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public override void OnDoubleClickDead(Mobile m)
|
||||
{
|
||||
OnDoubleClick(m);
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
from.RevealingAction();
|
||||
|
||||
BaseBoat boat = BaseBoat.FindBoatAt(from, from.Map);
|
||||
Item mount = from.FindItemOnLayer(Layer.Mount);
|
||||
|
||||
if (boat == null || Galleon == null || boat != Galleon)
|
||||
{
|
||||
from.SendLocalizedMessage(1116724); // You cannot pilot a ship unless you are aboard it!
|
||||
}
|
||||
else if (Galleon.GetSecurityLevel(from) < SecurityLevel.Crewman)
|
||||
{
|
||||
from.SendLocalizedMessage(1116726); // This is not your ship!
|
||||
}
|
||||
else if (Pilot != null && Pilot != from && (Galleon.GetSecurityLevel(from) < Galleon.GetSecurityLevel(Pilot) || Pilot == Galleon.Owner))
|
||||
{
|
||||
from.SendLocalizedMessage(502221); // Someone else is already using this item.
|
||||
}
|
||||
else if (from.Flying)
|
||||
{
|
||||
from.SendLocalizedMessage(1116615); // You cannot pilot a ship while flying!
|
||||
}
|
||||
else if (from.Mounted && !(mount is BoatMountItem))
|
||||
{
|
||||
from.SendLocalizedMessage(1010097); // You cannot use this while mounted or flying.
|
||||
}
|
||||
else if (Pilot == null && Galleon.Scuttled)
|
||||
{
|
||||
from.SendLocalizedMessage(1116725); // This ship is too damaged to sail!
|
||||
}
|
||||
else if (Pilot != null)
|
||||
{
|
||||
if (from != Pilot) // High authorized player takes control of the ship
|
||||
{
|
||||
boat.RemovePilot(from);
|
||||
boat.LockPilot(from);
|
||||
}
|
||||
else
|
||||
{
|
||||
boat.RemovePilot(from);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
boat.LockPilot(from);
|
||||
}
|
||||
}
|
||||
|
||||
public ShipWheel(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)1); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (version == 0)
|
||||
{
|
||||
reader.ReadItem();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user