Files
abysmal-isle/Scripts/Scripts-master/Items/Misc/waystone.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

140 lines
3.6 KiB
C#

using System;
namespace Server.Items
{
public class Waystone : Item
{
public static int Animation = Config.Get("Waystone.Animation", 11);
public static int FrameCount = Config.Get("Waystone.FrameCount", 5);
public static int RepeatCount = Config.Get("Waystone.RepeatCount", 1);
public static int Delay = Config.Get("Waystone.Delay", 0);
private bool m_Marked;
private Point3D m_Target;
private Map m_TargetMap;
[Constructable]
public Waystone() : base(0x41BE)
{
Name = "a Waystone";
Movable = true;
m_Marked = false;
m_TargetMap = null;
}
public override void OnDoubleClick(Mobile from)
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001);
}
else if (m_Marked == false)
{
from.Animate(Animation, FrameCount, RepeatCount, true, false, Delay);
//from.Animate(16, 5, 1, true, false, 0);
from.PlaySound(0x1EB);
m_Target = from.Location;
m_TargetMap = from.Map;
m_Marked = true;
from.SendMessage("You Mark the stones location.");
}
else
{
from.Animate(17, 5, 1, true, false, 0);
from.PlaySound(0x0F6);
from.Location = m_Target;
from.Map = m_TargetMap;
from.SendMessage("You are sent to the Waystones saved location.");
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
//list.Add("Marked");
if (m_Marked == false)
{
list.Add("Not Marked");
}
else
{
list.Add("Marked");
}
}
public Waystone(Serial serial) : base(serial)
{
}
[CommandProperty(AccessLevel.Counselor, AccessLevel.GameMaster)]
public bool Marked
{
get
{
return m_Marked;
}
set
{
if (m_Marked != value)
{
m_Marked = value;
InvalidateProperties();
}
}
}
[CommandProperty(AccessLevel.Counselor, AccessLevel.GameMaster)]
public Point3D Target
{
get
{
return m_Target;
}
set
{
m_Target = value;
}
}
[CommandProperty(AccessLevel.Counselor, AccessLevel.GameMaster)]
public Map TargetMap
{
get
{
return m_TargetMap;
}
set
{
if (m_TargetMap != value)
{
m_TargetMap = value;
InvalidateProperties();
}
}
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
writer.Write((bool)m_Marked);
writer.Write((Point3D)m_Target);
writer.Write((Map)m_TargetMap);
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
m_Marked = reader.ReadBool();
m_Target = reader.ReadPoint3D();
m_TargetMap = reader.ReadMap();
}
}
}