BritainKnights/Scripts/Items/Construction/Doors/ThruDoors.cs

228 lines
No EOL
5.2 KiB
C#

using System;
using System.Collections.Generic;
using Server.Commands;
using Server.Network;
using Server.Targeting;
using Server.Mobiles;
namespace Server.Items
{
public class ThruDoor : BaseDoor
{
[Constructable]
public ThruDoor() : this( DoorFacing.WestCW )
{
}
[Constructable]
public ThruDoor( DoorFacing WestCW ) : base( 1661, 1661, 0xEC, 0xEC, BaseDoor.GetOffset( WestCW ) )
{
}
public bool isMetal( Item door )
{
if ( door.ItemID == 1661 ||
door.ItemID == 1663 ||
door.ItemID == 1741 ||
door.ItemID == 1743 ||
door.ItemID == 1677 ||
door.ItemID == 1679 ||
door.ItemID == 8181 ||
door.ItemID == 8183 ||
door.ItemID == 2092 ||
door.ItemID == 2094 ||
door.ItemID == 2132 ||
door.ItemID == 2134 ||
door.ItemID == 1653 ||
door.ItemID == 1655 ||
door.ItemID == 1733 ||
door.ItemID == 1735 ||
door.ItemID == 1669 ||
door.ItemID == 1671 ||
door.ItemID == 8173 ||
door.ItemID == 8175 ||
door.ItemID == 2084 ||
door.ItemID == 2086 ||
door.ItemID == 2124 ||
door.ItemID == 2126
)
return true;
return false;
}
public bool isWood( Item door )
{
if ( door.ItemID == 1717 ||
door.ItemID == 1719 ||
door.ItemID == 1749 ||
door.ItemID == 1751 ||
door.ItemID == 1703 ||
door.ItemID == 1701 ||
door.ItemID == 1765 ||
door.ItemID == 1767 ||
door.ItemID == 1709 ||
door.ItemID == 1711 ||
door.ItemID == 1773 ||
door.ItemID == 1775 ||
door.ItemID == 1725 ||
door.ItemID == 1727 ||
door.ItemID == 1757 ||
door.ItemID == 1759
)
return true;
return false;
}
public bool isCloth( Item door )
{
if ( door.ItemID == 0x0DED ||
door.ItemID == 0x0DEE
)
return true;
return false;
}
public bool isFence( Item door )
{
if ( door.ItemID == 2158 ||
door.ItemID == 2160 ||
door.ItemID == 2150 ||
door.ItemID == 2152 ||
door.ItemID == 2105 ||
door.ItemID == 2107 ||
door.ItemID == 2113 ||
door.ItemID == 2115
)
return true;
return false;
}
public bool isEW( Item door )
{
if ( door.ItemID == 1661 ||
door.ItemID == 1663 ||
door.ItemID == 1741 ||
door.ItemID == 1743 ||
door.ItemID == 1677 ||
door.ItemID == 1679 ||
door.ItemID == 8181 ||
door.ItemID == 8183 ||
door.ItemID == 2092 ||
door.ItemID == 2094 ||
door.ItemID == 2132 ||
door.ItemID == 2134 ||
door.ItemID == 1709 ||
door.ItemID == 1711 ||
door.ItemID == 1773 ||
door.ItemID == 1775 ||
door.ItemID == 1725 ||
door.ItemID == 1727 ||
door.ItemID == 1757 ||
door.ItemID == 1759 ||
door.ItemID == 0x0DEE ||
door.ItemID == 2158 ||
door.ItemID == 2160 ||
door.ItemID == 2113 ||
door.ItemID == 2115
)
return true;
return false;
}
public bool isNS( Item door )
{
if ( door.ItemID == 1717 ||
door.ItemID == 1719 ||
door.ItemID == 1749 ||
door.ItemID == 1751 ||
door.ItemID == 1703 ||
door.ItemID == 1701 ||
door.ItemID == 1765 ||
door.ItemID == 1767 ||
door.ItemID == 1653 ||
door.ItemID == 1655 ||
door.ItemID == 1733 ||
door.ItemID == 1735 ||
door.ItemID == 1669 ||
door.ItemID == 1671 ||
door.ItemID == 8173 ||
door.ItemID == 8175 ||
door.ItemID == 2084 ||
door.ItemID == 2086 ||
door.ItemID == 2124 ||
door.ItemID == 2126 ||
door.ItemID == 0x0DED ||
door.ItemID == 2150 ||
door.ItemID == 2152 ||
door.ItemID == 2105 ||
door.ItemID == 2107
)
return true;
return false;
}
public Point3D loc( Item door, Mobile from )
{
Point3D d = door.Location;
Point3D p = d;
if ( isNS( door ) && from.Y > door.Y )
d = new Point3D( p.X, p.Y-1, p.Z );
else if ( isNS( door ) && from.Y < door.Y )
d = new Point3D( p.X, p.Y+1, p.Z );
else if ( isEW( door ) && from.X < door.X )
d = new Point3D( p.X+1, p.Y, p.Z );
else if ( isEW( door ) && from.X > door.X )
d = new Point3D( p.X-1, p.Y, p.Z );
return d;
}
public override void Use( Mobile from )
{
if ( from is PlayerMobile )
{
BeginDoor( from );
int sound = 0;
if ( isMetal( this ) )
sound = 0xEC;
else if ( isWood( this ) )
sound = 0xEA;
else if ( isCloth( this ) )
sound = 0x48;
else if ( isFence( this ) )
sound = 0xEB;
Point3D d = loc( this, from );
Server.Mobiles.BaseCreature.TeleportPets( from, d, from.Map );
if ( ItemID != 8611 ){ from.PlaySound( sound ); }
from.MoveToWorld( d, from.Map );
}
}
public ThruDoor( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer ) // Default Serialize method
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader ) // Default Deserialize method
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}