85 lines
2 KiB
C#
85 lines
2 KiB
C#
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"
|
|
};
|
|
|
|
[Constructible]
|
|
public HalloweenPumpkin()
|
|
{
|
|
Weight = Utility.RandomMinMax( 3, 20 );
|
|
ItemID = ( Utility.RandomDouble() <= .02 ) ? Utility.RandomList( 0x4694, 0x4698 ) : Utility.RandomList( 0xc6a, 0xc6b, 0xc6c );
|
|
}
|
|
|
|
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 = $"{m_Staff[Utility.Random(m_Staff.Length)]}'s Jack-O-Lantern";
|
|
}
|
|
|
|
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 HalloweenPumpkin( Serial serial )
|
|
: base( serial )
|
|
{
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
}
|