Files
abysmal-isle/Scripts/Items/Decorative/HolidayBell.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

125 lines
3.0 KiB
C#

using System;
namespace Server.Items
{
public class HolidayBell : Item
{
private static readonly string[] m_StaffNames = new string[]
{
"Adrick",
"Alai",
"Bulldoz",
"Evocare",
"FierY-iCe",
"Greyburn",
"Hanse",
"Ignatz",
"Jalek",
"LadyMOI",
"Lord Krum",
"Malantus",
"Nimrond",
"Oaks",
"Prophet",
"Runesabre",
"Sage",
"Stellerex",
"T-Bone",
"Tajima",
"Tyrant",
"Vex"
};
private static readonly int[] m_Hues = new int[]
{
0xA, 0x24, 0x42, 0x56, 0x1A, 0x4C, 0x3C, 0x60, 0x2E, 0x55, 0x23, 0x38, 0x482, 0x6, 0x10
};
private string m_Maker;
private int m_SoundID;
[Constructable]
public HolidayBell()
: this(m_StaffNames[Utility.Random(m_StaffNames.Length)])
{
}
[Constructable]
public HolidayBell(string maker)
: base(0x1C12)
{
this.m_Maker = maker;
this.LootType = LootType.Blessed;
this.Hue = m_Hues[Utility.Random(m_Hues.Length)];
this.SoundID = 0x0F5 + Utility.Random(14);
}
public HolidayBell(Serial serial)
: base(serial)
{
}
[CommandProperty(AccessLevel.GameMaster)]
public int SoundID
{
get
{
return this.m_SoundID;
}
set
{
this.m_SoundID = value;
this.InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public string Giver
{
get
{
return this.m_Maker;
}
set
{
this.m_Maker = value;
}
}
public override string DefaultName
{
get
{
return String.Format("A Holiday Bell From {0}", this.Giver);
}
}
public override void OnDoubleClick(Mobile from)
{
if (!from.InRange(this.GetWorldLocation(), 2))
{
from.SendLocalizedMessage(500446); // That is too far away.
}
else
from.PlaySound(this.m_SoundID);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
writer.Write((string)this.m_Maker);
writer.WriteEncodedInt((int)this.m_SoundID);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
this.m_Maker = reader.ReadString();
this.m_SoundID = reader.ReadEncodedInt();
Utility.Intern(ref this.m_Maker);
}
}
}