112 lines
2.5 KiB
C#
112 lines
2.5 KiB
C#
namespace Server.Items
|
|
{
|
|
[Flippable( 0x2A7B, 0x2A7D )]
|
|
public class HaunterMirrorComponent : AddonComponent
|
|
{
|
|
public override int LabelNumber => 1074800; // Haunted Mirror
|
|
public override bool HandlesOnMovement => true;
|
|
|
|
public HaunterMirrorComponent() : base( 0x2A7B )
|
|
{
|
|
}
|
|
|
|
public HaunterMirrorComponent( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void OnMovement( Mobile m, Point3D old )
|
|
{
|
|
base.OnMovement( m, old );
|
|
|
|
if ( m.Alive && m.Player && ( m.AccessLevel == AccessLevel.Player || !m.Hidden ) )
|
|
{
|
|
if ( !Utility.InRange( old, Location, 2 ) && Utility.InRange( m.Location, Location, 2 ) )
|
|
{
|
|
if ( ItemID == 0x2A7B || ItemID == 0x2A7D )
|
|
{
|
|
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x551, 0x553 ) );
|
|
ItemID += 1;
|
|
}
|
|
}
|
|
else if ( Utility.InRange( old, Location, 2 ) && !Utility.InRange( m.Location, Location, 2 ) )
|
|
{
|
|
if ( ItemID == 0x2A7C || ItemID == 0x2A7E )
|
|
ItemID -= 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
|
|
writer.WriteEncodedInt( 0 ); // version
|
|
}
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
|
|
int version = reader.ReadEncodedInt();
|
|
}
|
|
}
|
|
|
|
public class HaunterMirrorAddon : BaseAddon
|
|
{
|
|
public override BaseAddonDeed Deed => new HaunterMirrorDeed();
|
|
|
|
[Constructible]
|
|
public HaunterMirrorAddon()
|
|
{
|
|
AddComponent( new HaunterMirrorComponent(), 0, 0, 0 );
|
|
}
|
|
|
|
public HaunterMirrorAddon( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
|
|
writer.WriteEncodedInt( 0 ); // version
|
|
}
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
|
|
int version = reader.ReadEncodedInt();
|
|
}
|
|
}
|
|
|
|
public class HaunterMirrorDeed : BaseAddonDeed
|
|
{
|
|
public override BaseAddon Addon => new HaunterMirrorAddon();
|
|
public override int LabelNumber => 1074800; // Haunted Mirror
|
|
|
|
[Constructible]
|
|
public HaunterMirrorDeed()
|
|
{
|
|
LootType = LootType.Blessed;
|
|
}
|
|
|
|
public HaunterMirrorDeed( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
|
|
writer.WriteEncodedInt( 0 ); // version
|
|
}
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
|
|
int version = reader.ReadEncodedInt();
|
|
}
|
|
}
|
|
}
|