90 lines
1.9 KiB
C#
90 lines
1.9 KiB
C#
namespace Server.Items
|
|
{
|
|
public class KhaldunPitTeleporter : Item
|
|
{
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public bool Active { get; set; }
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public Point3D PointDest { get; set; }
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public Map MapDest { get; set; }
|
|
|
|
public override int LabelNumber => 1016511; // the floor of the cavern seems to have collapsed here - a faint light is visible at the bottom of the pit
|
|
|
|
[Constructible]
|
|
public KhaldunPitTeleporter() : this( new Point3D( 5451, 1374, 0 ), Map.Felucca )
|
|
{
|
|
}
|
|
|
|
[Constructible]
|
|
public KhaldunPitTeleporter( Point3D pointDest, Map mapDest ) : base( 0x053B )
|
|
{
|
|
Movable = false;
|
|
Hue = 1;
|
|
|
|
Active = true;
|
|
PointDest = pointDest;
|
|
MapDest = mapDest;
|
|
}
|
|
|
|
public KhaldunPitTeleporter( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void OnDoubleClick( Mobile m )
|
|
{
|
|
if ( !Active )
|
|
return;
|
|
|
|
Map map = MapDest;
|
|
|
|
if ( map == null || map == Map.Internal )
|
|
map = m.Map;
|
|
|
|
Point3D p = PointDest;
|
|
|
|
if ( p == Point3D.Zero )
|
|
p = m.Location;
|
|
|
|
if ( m.InRange( this, 3 ) )
|
|
{
|
|
Mobiles.BaseCreature.TeleportPets( m, PointDest, MapDest );
|
|
|
|
m.MoveToWorld( PointDest, MapDest );
|
|
}
|
|
else
|
|
{
|
|
m.SendLocalizedMessage( 1019045 ); // I can't reach that.
|
|
}
|
|
}
|
|
|
|
public override void OnDoubleClickDead( Mobile m )
|
|
{
|
|
OnDoubleClick( m );
|
|
}
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
|
|
writer.Write( (int)0 ); // version
|
|
|
|
writer.Write( Active );
|
|
writer.Write( PointDest );
|
|
writer.Write( MapDest );
|
|
}
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
|
|
int version = reader.ReadInt();
|
|
|
|
Active = reader.ReadBool();
|
|
PointDest = reader.ReadPoint3D();
|
|
MapDest = reader.ReadMap();
|
|
}
|
|
}
|
|
}
|