Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
91
Scripts/Items/Decorative/HalloweenPumpkin.cs
Normal file
91
Scripts/Items/Decorative/HalloweenPumpkin.cs
Normal file
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HalloweenPumpkin : Item
|
||||
{
|
||||
private static readonly string[] m_Staff =
|
||||
{
|
||||
"Ryan", "Mark", "Eos", "Athena", "Xavier", "Krrios", "Zippy", "Dexter", "Argalep"
|
||||
};
|
||||
[Constructable]
|
||||
public HalloweenPumpkin()
|
||||
: base()
|
||||
{
|
||||
Weight = Utility.RandomMinMax(3, 20);
|
||||
ItemID = (Utility.RandomDouble() <= .02) ? Utility.RandomList(0x4694, 0x4698) : Utility.RandomList(0xc6a, 0xc6b, 0xc6c);
|
||||
}
|
||||
|
||||
public HalloweenPumpkin(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!from.InRange(GetWorldLocation(), 2))
|
||||
return;
|
||||
|
||||
bool douse = false;
|
||||
|
||||
switch (ItemID)
|
||||
{
|
||||
case 0x4694:
|
||||
ItemID = 0x4691;
|
||||
break;
|
||||
case 0x4691:
|
||||
ItemID = 0x4694;
|
||||
douse = true;
|
||||
break;
|
||||
case 0x4698:
|
||||
ItemID = 0x4695;
|
||||
break;
|
||||
case 0x4695:
|
||||
ItemID = 0x4698;
|
||||
douse = true;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
from.SendLocalizedMessage(douse ? 1113988 : 1113987); // You extinguish/light the Jack-O-Lantern
|
||||
Effects.PlaySound(GetWorldLocation(), Map, douse ? 0x3be : 0x47);
|
||||
}
|
||||
|
||||
private void AssignRandomName()
|
||||
{
|
||||
Name = string.Format("{0}'s Jack-O-Lantern", m_Staff[Utility.Random(m_Staff.Length)]);
|
||||
}
|
||||
|
||||
public override bool OnDragLift(Mobile from)
|
||||
{
|
||||
if (Name == null && (ItemID == 0x4694 || ItemID == 0x4691 || ItemID == 0x4698 || ItemID == 0x4695))
|
||||
{
|
||||
if (Utility.RandomBool())
|
||||
{
|
||||
new PumpkinHead().MoveToWorld(GetWorldLocation(), Map);
|
||||
|
||||
Delete();
|
||||
return false;
|
||||
}
|
||||
AssignRandomName();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)1); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (version == 0 && Name == null && ItemID == 0x4698)
|
||||
AssignRandomName();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user