Some holiday stuffs.
This commit is contained in:
parent
1a79ffbbc7
commit
c97e7619f0
4 changed files with 442 additions and 0 deletions
109
Scripts/Items/Special/Holiday/HolidayBell.cs
Normal file
109
Scripts/Items/Special/Holiday/HolidayBell.cs
Normal file
|
|
@ -0,0 +1,109 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Server.Items
|
||||||
|
{
|
||||||
|
public class HolidayBell : Item
|
||||||
|
{
|
||||||
|
private static 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 int[] m_Hues = new int[]
|
||||||
|
{
|
||||||
|
0xA, 0x24, 0x42, 0x56, 0x1A, 0x4C, 0x3C, 0x60, 0x2E, 0x55, 0x23, 0x38, 0x482, 0x6, 0x10
|
||||||
|
};
|
||||||
|
|
||||||
|
[CommandProperty(AccessLevel.GameMaster)]
|
||||||
|
public int SoundID
|
||||||
|
{
|
||||||
|
get { return m_SoundID; }
|
||||||
|
set { m_SoundID = value; InvalidateProperties(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
[CommandProperty(AccessLevel.GameMaster)]
|
||||||
|
public string Giver { get { return m_Maker; } set { m_Maker = value; } }
|
||||||
|
|
||||||
|
public override string DefaultName
|
||||||
|
{
|
||||||
|
get { return String.Format("A Holiday Bell From {0}", Giver); }
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
m_Maker = maker;
|
||||||
|
|
||||||
|
LootType = LootType.Blessed;
|
||||||
|
Hue = m_Hues[Utility.Random(m_Hues.Length)];
|
||||||
|
SoundID = 0x0F5 + Utility.Random(14);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnDoubleClick(Mobile from)
|
||||||
|
{
|
||||||
|
if (!from.InRange(GetWorldLocation(), 2))
|
||||||
|
{
|
||||||
|
from.SendLocalizedMessage(500446); // That is too far away.
|
||||||
|
}
|
||||||
|
else from.PlaySound(m_SoundID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public HolidayBell(Serial serial)
|
||||||
|
: base(serial)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Serialize(GenericWriter writer)
|
||||||
|
{
|
||||||
|
base.Serialize(writer);
|
||||||
|
|
||||||
|
writer.Write((int)0); // version
|
||||||
|
|
||||||
|
writer.Write((string)m_Maker);
|
||||||
|
|
||||||
|
writer.WriteEncodedInt((int)m_SoundID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Deserialize(GenericReader reader)
|
||||||
|
{
|
||||||
|
base.Deserialize(reader);
|
||||||
|
|
||||||
|
int version = reader.ReadInt();
|
||||||
|
|
||||||
|
m_Maker = reader.ReadString();
|
||||||
|
m_SoundID = reader.ReadEncodedInt();
|
||||||
|
|
||||||
|
Utility.Intern(ref m_Maker);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
167
Scripts/Items/Special/Holiday/Icecicles.cs
Normal file
167
Scripts/Items/Special/Holiday/Icecicles.cs
Normal file
|
|
@ -0,0 +1,167 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Server.Items
|
||||||
|
{
|
||||||
|
public class IcicleLargeSouth : Item
|
||||||
|
{
|
||||||
|
[Constructable]
|
||||||
|
public IcicleLargeSouth()
|
||||||
|
: base(0x4572)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public IcicleLargeSouth(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 version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class IcicleMedSouth : Item
|
||||||
|
{
|
||||||
|
[Constructable]
|
||||||
|
public IcicleMedSouth ()
|
||||||
|
: base(0x4573)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public IcicleMedSouth (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 version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class IcicleSmallSouth : Item
|
||||||
|
{
|
||||||
|
[Constructable]
|
||||||
|
public IcicleSmallSouth ()
|
||||||
|
: base(0x4574)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public IcicleSmallSouth (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 version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class IcicleLargeEast : Item
|
||||||
|
{
|
||||||
|
[Constructable]
|
||||||
|
public IcicleLargeEast ()
|
||||||
|
: base(0x4575)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public IcicleLargeEast (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 version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class IcicleMedEast : Item
|
||||||
|
{
|
||||||
|
[Constructable]
|
||||||
|
public IcicleMedEast ()
|
||||||
|
: base(0x4576)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public IcicleMedEast (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 version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class IcicleSmallEast : Item
|
||||||
|
{
|
||||||
|
[Constructable]
|
||||||
|
public IcicleSmallEast ()
|
||||||
|
: base(0x4577)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public IcicleSmallEast(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 version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
124
Scripts/Items/Special/Holiday/IceyPatch.cs
Normal file
124
Scripts/Items/Special/Holiday/IceyPatch.cs
Normal file
|
|
@ -0,0 +1,124 @@
|
||||||
|
using System;
|
||||||
|
using Server.Mobiles;
|
||||||
|
using Server.Spells;
|
||||||
|
|
||||||
|
namespace Server.Items
|
||||||
|
{
|
||||||
|
public class IceyPatch : Item
|
||||||
|
{
|
||||||
|
public override int LabelNumber { get { return 1095159; } } //An Icy Patch
|
||||||
|
|
||||||
|
/* On OSI, the iceypatch with itemid 0x122a is "rarer", so we will give it 1:10 chance of creating it that way */
|
||||||
|
|
||||||
|
[Constructable]
|
||||||
|
public IceyPatch()
|
||||||
|
: this((Utility.Random(10) == 0) ? 0x122A : 0x122F)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public IceyPatch(int itemid)
|
||||||
|
: base (itemid)
|
||||||
|
{
|
||||||
|
Hue = 0x481;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IceyPatch(Serial serial)
|
||||||
|
: base(serial)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnMoveOver(Mobile m)
|
||||||
|
{
|
||||||
|
if (m is PlayerMobile && m.Alive && m.AccessLevel == AccessLevel.Player)
|
||||||
|
{
|
||||||
|
switch (Utility.Random(3))
|
||||||
|
{
|
||||||
|
case 0: RunSequence(m, 1095160, false); break; //You steadily walk over the slippery surface.
|
||||||
|
case 1: RunSequence(m, 1095161, true); break; //You skillfully manage to maintain your balance.
|
||||||
|
default: RunSequence(m, 1095162, true); break; //You lose your footing and ungracefully splatter on the ground.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return base.OnMoveOver(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void RunSequence(Mobile m, int message, bool freeze)
|
||||||
|
{
|
||||||
|
object[] arg = null;
|
||||||
|
|
||||||
|
if (freeze)
|
||||||
|
{
|
||||||
|
m.CantWalk = freeze;
|
||||||
|
Timer.DelayCall(TimeSpan.FromSeconds((message==1095162) ? 2.25 : 1.25), new TimerStateCallback(EndFall_Callback), m);
|
||||||
|
}
|
||||||
|
|
||||||
|
m.SendLocalizedMessage(message);
|
||||||
|
|
||||||
|
if (message == 1095162)
|
||||||
|
{
|
||||||
|
if (m.Mounted)
|
||||||
|
{
|
||||||
|
m.Mount.Rider = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Point3D p = new Point3D(Location);
|
||||||
|
|
||||||
|
if (SpellHelper.FindValidSpawnLocation(Map, ref p, true))
|
||||||
|
{
|
||||||
|
Timer.DelayCall(TimeSpan.FromSeconds(0), new TimerStateCallback(Relocate_Callback), new object[] { m, p });
|
||||||
|
}
|
||||||
|
|
||||||
|
arg = new object[] { m, (21 + Utility.Random(2)), !m.Female ? 0x426 : 0x317 };
|
||||||
|
}
|
||||||
|
else if (message == 1095161)
|
||||||
|
{
|
||||||
|
arg = new object[] { m, 17, !m.Female ? 0x429 : 0x319 };
|
||||||
|
}
|
||||||
|
if (arg != null)
|
||||||
|
{
|
||||||
|
Timer.DelayCall(TimeSpan.FromSeconds(.25), new TimerStateCallback(BeginFall_Callback), arg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Relocate_Callback(object state)
|
||||||
|
{
|
||||||
|
object[] states = (object[])state;
|
||||||
|
Mobile m = (Mobile)states[0];
|
||||||
|
Point3D to = (Point3D)states[1];
|
||||||
|
|
||||||
|
m.MoveToWorld(to, m.Map);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void BeginFall_Callback(object state)
|
||||||
|
{
|
||||||
|
object[] states = (object[])state;
|
||||||
|
|
||||||
|
Mobile m = (Mobile)states[0];
|
||||||
|
int action = (int)states[1];
|
||||||
|
int sound = (int)states[2];
|
||||||
|
if (!m.Mounted)
|
||||||
|
{
|
||||||
|
m.Animate(action, 1, 1, false, true, 0);
|
||||||
|
}
|
||||||
|
m.PlaySound(sound);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void EndFall_Callback(object state)
|
||||||
|
{
|
||||||
|
((Mobile)state).CantWalk = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Serialize(GenericWriter writer)
|
||||||
|
{
|
||||||
|
base.Serialize(writer);
|
||||||
|
|
||||||
|
writer.Write((int)0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Deserialize(GenericReader reader)
|
||||||
|
{
|
||||||
|
base.Deserialize(reader);
|
||||||
|
|
||||||
|
int version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
42
Scripts/Items/Special/Holiday/SnowPiles.cs
Normal file
42
Scripts/Items/Special/Holiday/SnowPiles.cs
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
namespace Server.Items
|
||||||
|
{
|
||||||
|
public class SnowPileDeco : Item
|
||||||
|
{
|
||||||
|
public override string DefaultName{ get { return "Snow Pile"; } }
|
||||||
|
public override double DefaultWeight{ get { return 2.0; } }
|
||||||
|
|
||||||
|
private static readonly int[] m_Types = new int[] { 0x8E2, 0x8E0, 0x8E6, 0x8E5, 0x8E3 };
|
||||||
|
|
||||||
|
[Constructable]
|
||||||
|
public SnowPileDeco()
|
||||||
|
: this(m_Types[Utility.Random(m_Types.Length)])
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Constructable]
|
||||||
|
public SnowPileDeco( int itemid )
|
||||||
|
: base(itemid)
|
||||||
|
{
|
||||||
|
Hue = 0x481;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SnowPileDeco(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 version = reader.ReadInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue