Files
abysmal-isle/Scripts/Services/Seasonal Events/TreasuresOfSorceresDungeon/Items/JacksBagOfTricks.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

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();
}
}
}