Files
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

75 lines
1.9 KiB
C#

using System;
namespace Server.Items
{
public class EnergyBarrier : Item
{
private Timer m_SoundTimer;
[CommandProperty(AccessLevel.GameMaster)]
public bool Active
{
get { return Visible; }
set
{
if (Active != value)
{
Visible = value;
if (Active)
m_SoundTimer.Start();
else
m_SoundTimer.Stop();
}
}
}
public EnergyBarrier(Point3D location, Map map)
: base(0x3967)
{
Movable = false;
Light = LightType.Circle150;
MoveToWorld(location, map);
m_SoundTimer = Timer.DelayCall(TimeSpan.Zero, TimeSpan.FromSeconds(Utility.RandomMinMax(5, 50)), new TimerCallback(PlaySound));
m_SoundTimer.Start();
}
protected void PlaySound()
{
// Randomize the Timer Interval
m_SoundTimer.Interval = TimeSpan.FromSeconds(Utility.RandomMinMax(5, 50));
Effects.PlaySound(Location, Map, Utility.RandomList(0x1DC, 0x210, 0x2F4));
}
public override void OnAfterDelete()
{
base.OnAfterDelete();
if (m_SoundTimer != null)
m_SoundTimer.Stop();
}
public EnergyBarrier(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_SoundTimer = Timer.DelayCall(TimeSpan.Zero, TimeSpan.FromSeconds(5.0), new TimerCallback(PlaySound));
m_SoundTimer.Start();
}
}
}