317 lines
8.2 KiB
C#
317 lines
8.2 KiB
C#
using System;
|
|
|
|
using Server;
|
|
using Server.Events.Halloween;
|
|
|
|
namespace Server.Items
|
|
{
|
|
public class JacksBagOfTricks : Item
|
|
{
|
|
public override int LabelNumber { get { return 1157656; } } // Jack's Bag of Tricks
|
|
|
|
private DateTime _NextUse;
|
|
|
|
[CommandProperty(AccessLevel.GameMaster)]
|
|
public DateTime NextUse
|
|
{
|
|
get { return _NextUse; }
|
|
set { _NextUse = value; }
|
|
}
|
|
|
|
[Constructable]
|
|
public JacksBagOfTricks()
|
|
: base(0x9F85)
|
|
{
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile from)
|
|
{
|
|
if (DateTime.Now.Month == 10 || from.AccessLevel > AccessLevel.Player)
|
|
{
|
|
if (_NextUse < DateTime.UtcNow)
|
|
{
|
|
Item item = null;
|
|
|
|
if (0.1 > Utility.RandomDouble())
|
|
{
|
|
item = HolidaySettings.RandomTreat;
|
|
}
|
|
else
|
|
{
|
|
switch (Utility.Random(6))
|
|
{
|
|
case 0: item = new RancidReindeerMeat(); break;
|
|
case 1: item = new GlassyCandyCane(); break;
|
|
case 2: item = new NamedSeveredElfEars(); break;
|
|
case 3: item = new SuspiciousGiftBox(); break;
|
|
case 4: item = new InsultingDoll(); break;
|
|
case 5: item = new SpikedEggnog(); break;
|
|
}
|
|
}
|
|
|
|
if (item != null)
|
|
{
|
|
if (from.Backpack == null || !from.Backpack.TryDropItem(from, item, false))
|
|
item.MoveToWorld(from.Location, from.Map);
|
|
|
|
NextUse = DateTime.UtcNow + TimeSpan.FromDays(1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
from.SendLocalizedMessage(1157633); // You have already used this today.
|
|
}
|
|
}
|
|
else
|
|
{
|
|
from.SendLocalizedMessage(1157632); // This only works during the Month of October.
|
|
}
|
|
}
|
|
|
|
public JacksBagOfTricks(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)0);
|
|
|
|
writer.Write(NextUse);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int v = reader.ReadInt();
|
|
|
|
NextUse = reader.ReadDateTime();
|
|
}
|
|
}
|
|
|
|
[Flipable(0x1E90, 0x1E91)]
|
|
public class RancidReindeerMeat : Item
|
|
{
|
|
public override int LabelNumber { get { return 1157634; } } // Rancid Reindeer Meat
|
|
|
|
[Constructable]
|
|
public RancidReindeerMeat()
|
|
: base(0x1E90)
|
|
{
|
|
Hue = 2707;
|
|
}
|
|
|
|
public RancidReindeerMeat(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile m)
|
|
{
|
|
if (IsChildOf(m.Backpack))
|
|
{
|
|
PrivateOverheadMessage(Server.Network.MessageType.Regular, 0, 1157635, m.NetState); // *It smells terrible!*
|
|
}
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)0);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int v = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
[Flipable(0x9DC3, 0x9DC4)]
|
|
public class GlassyCandyCane : Item
|
|
{
|
|
public override int LabelNumber { get { return 1157636; } } // Glass Candy Cane
|
|
|
|
[Constructable]
|
|
public GlassyCandyCane()
|
|
: base(0x9DC3)
|
|
{
|
|
Hue = 1927;
|
|
}
|
|
|
|
public GlassyCandyCane(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)0);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int v = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
[Flipable(0x312D, 0x312E)]
|
|
public class NamedSeveredElfEars : Item
|
|
{
|
|
private string _Name;
|
|
|
|
[Constructable]
|
|
public NamedSeveredElfEars()
|
|
: base(0x312D)
|
|
{
|
|
_Name = _Names[Utility.Random(_Names.Length)];
|
|
}
|
|
|
|
public override void AddNameProperty(ObjectPropertyList list)
|
|
{
|
|
list.Add(1157637, _Name); // The Severed Ears of an Elf Named ~1_NAME~
|
|
}
|
|
|
|
private string[] _Names =
|
|
{
|
|
"Alabaster Snowball", "Pepper Minstix", "Wunorse Openslae", "Sugarplum Mary"
|
|
};
|
|
|
|
|
|
public override void OnDoubleClick(Mobile m)
|
|
{
|
|
if (IsChildOf(m.Backpack))
|
|
{
|
|
PrivateOverheadMessage(Server.Network.MessageType.Regular, 0, 1157638, m.NetState); // *You hear the faint jingle of cheery bells...*
|
|
}
|
|
}
|
|
|
|
public NamedSeveredElfEars(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)0);
|
|
|
|
writer.Write(_Name);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int v = reader.ReadInt();
|
|
|
|
_Name = reader.ReadString();
|
|
}
|
|
}
|
|
|
|
public class SuspiciousGiftBox : Container
|
|
{
|
|
public override int LabelNumber { get { return 1157639; } } // Suspicious Gift Box
|
|
|
|
[Constructable]
|
|
public SuspiciousGiftBox()
|
|
: base(0x232A)
|
|
{
|
|
Hue = 1976;
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile m)
|
|
{
|
|
if (IsChildOf(m.Backpack))
|
|
{
|
|
PrivateOverheadMessage(Server.Network.MessageType.Regular, 0, 1157640, m.NetState); // Uh oh...
|
|
}
|
|
}
|
|
|
|
public SuspiciousGiftBox(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)0);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int v = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
[Flipable(0x48E2, 0x48E3)]
|
|
public class InsultingDoll : Item
|
|
{
|
|
public override int LabelNumber { get { return 1157641; } } // Insulting Doll
|
|
|
|
[Constructable]
|
|
public InsultingDoll()
|
|
: base(0x48E2)
|
|
{
|
|
Hue = 1933;
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile m)
|
|
{
|
|
if (IsChildOf(m.Backpack))
|
|
{
|
|
PrivateOverheadMessage(Server.Network.MessageType.Regular, 0, Utility.RandomMinMax(1157642, 1157646), m.NetState);
|
|
}
|
|
}
|
|
|
|
public InsultingDoll(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)0);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int v = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class SpikedEggnog : Item
|
|
{
|
|
public override int LabelNumber { get { return 1157647; } } // Spiked Egg Nog
|
|
|
|
[Constructable]
|
|
public SpikedEggnog()
|
|
: base(0x142A)
|
|
{
|
|
Hue = 2711;
|
|
}
|
|
|
|
public SpikedEggnog(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)0);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int v = reader.ReadInt();
|
|
}
|
|
}
|
|
} |