Fixes code according to modern code style. Fixes a few expression bugs.

This commit is contained in:
Kamron Batman 2018-09-15 09:58:51 -07:00
parent 89eea25e5f
commit 970fd563b2
3324 changed files with 441118 additions and 433755 deletions

View file

@ -1,363 +1,333 @@
using System;
using Server.Items;
using Server.Targeting;
using Server.Events.Halloween;
using Server.Mobiles;
using System.Collections.Generic;
using Server.Events.Halloween;
using Server.Items;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Engines.Events
{
public class TrickOrTreat
{
public static TimeSpan OneSecond = TimeSpan.FromSeconds( 1 );
public class TrickOrTreat
{
public static TimeSpan OneSecond = TimeSpan.FromSeconds(1);
public static void Initialize()
{
DateTime now = DateTime.UtcNow;
public static void Initialize()
{
DateTime now = DateTime.UtcNow;
if ( DateTime.UtcNow >= HolidaySettings.StartHalloween && DateTime.UtcNow <= HolidaySettings.FinishHalloween )
{
EventSink.Speech += EventSink_Speech;
}
}
if (DateTime.UtcNow >= HolidaySettings.StartHalloween && DateTime.UtcNow <= HolidaySettings.FinishHalloween)
EventSink.Speech += EventSink_Speech;
}
private static void EventSink_Speech( SpeechEventArgs e )
{
private static void EventSink_Speech(SpeechEventArgs e)
{
if (Insensitive.Contains(e.Speech, "trick or treat"))
{
e.Mobile.Target = new TrickOrTreatTarget();
if ( Insensitive.Contains( e.Speech, "trick or treat" ) )
{
e.Mobile.Target = new TrickOrTreatTarget();
e.Mobile.SendLocalizedMessage(1076764); /* Pick someone to Trick or Treat. */
}
}
e.Mobile.SendLocalizedMessage( 1076764 ); /* Pick someone to Trick or Treat. */
}
}
public static void Bleeding(Mobile m_From)
{
if (CheckMobile(m_From))
if (m_From.Location != Point3D.Zero)
{
int amount = Utility.RandomMinMax(3, 7);
private class TrickOrTreatTarget : Target
{
public TrickOrTreatTarget()
: base( 15, false, TargetFlags.None )
{
}
for (int i = 0; i < amount; i++)
new Blood(Utility.RandomMinMax(0x122C, 0x122F)).MoveToWorld(
RandomPointOneAway(m_From.X, m_From.Y, m_From.Z, m_From.Map), m_From.Map);
}
}
protected override void OnTarget( Mobile from, object targ )
{
if ( targ != null && CheckMobile( from ) )
{
if ( !( targ is Mobile ) )
{
from.SendLocalizedMessage( 1076781 ); /* There is little chance of getting candy from that! */
return;
}
if ( !( targ is BaseVendor ) || ( ( BaseVendor )targ ).Deleted )
{
from.SendLocalizedMessage( 1076765 ); /* That doesn't look friendly. */
return;
}
public static void RemoveHueMod(Mobile target)
{
if (target != null && !target.Deleted) target.SolidHueOverride = -1;
}
DateTime now = DateTime.UtcNow;
public static void SolidHueMobile(Mobile target)
{
if (CheckMobile(target))
{
target.SolidHueOverride = Utility.RandomMinMax(2501, 2644);
BaseVendor m_Begged = targ as BaseVendor;
Timer.DelayCall(TimeSpan.FromSeconds(10), RemoveHueMod, target);
}
}
if ( CheckMobile( m_Begged ) )
{
if ( m_Begged.NextTrickOrTreat > now )
{
from.SendLocalizedMessage( 1076767 ); /* That doesn't appear to have any more candy. */
return;
}
public static void MakeTwin(Mobile m_From)
{
List<Item> m_Items = new List<Item>();
m_Begged.NextTrickOrTreat = now + TimeSpan.FromMinutes( Utility.RandomMinMax( 5, 10 ) );
if (CheckMobile(m_From))
{
Mobile twin = new NaughtyTwin(m_From);
if ( from.Backpack != null && !from.Backpack.Deleted )
{
if ( Utility.RandomDouble() > .10 )
{
switch( Utility.Random( 3 ) )
{
case 0: m_Begged.Say( 1076768 ); break; /* Oooooh, aren't you cute! */
case 1: m_Begged.Say( 1076779 ); break; /* All right...This better not spoil your dinner! */
case 2: m_Begged.Say( 1076778 ); break; /* Here you go! Enjoy! */
default: break;
}
if (twin != null && !twin.Deleted)
{
foreach (Item item in m_From.Items)
if (item.Layer != Layer.Backpack && item.Layer != Layer.Mount && item.Layer != Layer.Bank)
m_Items.Add(item);
if ( Utility.RandomDouble() <= .01 && from.Skills.Begging.Value >= 100 )
{
from.AddToBackpack( HolidaySettings.RandomGMBeggerItem );
if (m_Items.Count > 0)
{
for (int i = 0; i < m_Items.Count; i++) /* dupe exploits start out like this ... */
twin.AddItem(Mobile.LiftItemDupe(m_Items[i], 1));
from.SendLocalizedMessage( 1076777 ); /* You receive a special treat! */
}
else
{
from.AddToBackpack( HolidaySettings.RandomTreat );
foreach (Item item in twin.Items) /* ... and end like this */
if (item.Layer != Layer.Backpack && item.Layer != Layer.Mount && item.Layer != Layer.Bank)
item.Movable = false;
}
from.SendLocalizedMessage( 1076769 ); /* You receive some candy. */
}
}
else
{
m_Begged.Say( 1076770 ); /* TRICK! */
twin.Hue = m_From.Hue;
twin.BodyValue = m_From.BodyValue;
twin.Kills = m_From.Kills;
int m_Action = Utility.Random( 4 );
Point3D point = RandomPointOneAway(m_From.X, m_From.Y, m_From.Z, m_From.Map);
if ( m_Action == 0 )
{
Timer.DelayCall<Mobile>( OneSecond, OneSecond, 10, Bleeding, from );
}
else if ( m_Action == 1 )
{
Timer.DelayCall<Mobile>( TimeSpan.FromSeconds( 2 ), SolidHueMobile, from );
}
else
{
Timer.DelayCall<Mobile>( TimeSpan.FromSeconds( 2 ), MakeTwin, from );
}
}
}
}
}
}
}
twin.MoveToWorld(m_From.Map.CanSpawnMobile(point) ? point : m_From.Location, m_From.Map);
public static void Bleeding( Mobile m_From )
{
if ( CheckMobile( m_From ) )
{
if ( m_From.Location != Point3D.Zero )
{
int amount = Utility.RandomMinMax( 3, 7 );
Timer.DelayCall(TimeSpan.FromSeconds(5), DeleteTwin, twin);
}
}
}
for( int i = 0; i < amount; i++ )
{
new Blood( Utility.RandomMinMax( 0x122C, 0x122F ) ).MoveToWorld( RandomPointOneAway( m_From.X, m_From.Y, m_From.Z, m_From.Map ), m_From.Map );
}
}
}
}
public static void DeleteTwin(Mobile m_Twin)
{
if (CheckMobile(m_Twin)) m_Twin.Delete();
}
public static void RemoveHueMod( Mobile target )
{
if ( target != null && !target.Deleted )
{
target.SolidHueOverride = -1;
}
}
public static Point3D RandomPointOneAway(int x, int y, int z, Map map)
{
Point3D loc = new Point3D(x + Utility.Random(-1, 3), y + Utility.Random(-1, 3), 0);
public static void SolidHueMobile( Mobile target )
{
if ( CheckMobile( target ) )
{
target.SolidHueOverride = Utility.RandomMinMax( 2501, 2644 );
loc.Z = map.CanFit(loc, 0) ? map.GetAverageZ(loc.X, loc.Y) : z;
Timer.DelayCall<Mobile>( TimeSpan.FromSeconds( 10 ), RemoveHueMod, target );
}
}
return loc;
}
public static void MakeTwin( Mobile m_From )
{
List<Item> m_Items = new List<Item>();
public static bool CheckMobile(Mobile mobile)
{
return mobile?.Map != null && !mobile.Deleted && mobile.Alive && mobile.Map != Map.Internal;
}
if ( CheckMobile( m_From ) )
{
Mobile twin = new NaughtyTwin( m_From );
private class TrickOrTreatTarget : Target
{
public TrickOrTreatTarget()
: base(15, false, TargetFlags.None)
{
}
if ( twin != null && !twin.Deleted )
{
foreach( Item item in m_From.Items )
{
if ( item.Layer != Layer.Backpack && item.Layer != Layer.Mount && item.Layer != Layer.Bank )
{
m_Items.Add( item );
}
}
protected override void OnTarget(Mobile from, object targ)
{
if (targ != null && CheckMobile(from))
{
if (!(targ is Mobile))
{
from.SendLocalizedMessage(1076781); /* There is little chance of getting candy from that! */
return;
}
if ( m_Items.Count > 0 )
{
for( int i = 0; i < m_Items.Count; i++ ) /* dupe exploits start out like this ... */
{
twin.AddItem( Mobile.LiftItemDupe( m_Items[ i ], 1 ) );
}
if (!(targ is BaseVendor) || ((BaseVendor)targ).Deleted)
{
from.SendLocalizedMessage(1076765); /* That doesn't look friendly. */
return;
}
foreach( Item item in twin.Items ) /* ... and end like this */
{
if ( item.Layer != Layer.Backpack && item.Layer != Layer.Mount && item.Layer != Layer.Bank )
{
item.Movable = false;
}
}
}
DateTime now = DateTime.UtcNow;
twin.Hue = m_From.Hue;
twin.BodyValue = m_From.BodyValue;
twin.Kills = m_From.Kills;
BaseVendor m_Begged = targ as BaseVendor;
Point3D point = RandomPointOneAway( m_From.X, m_From.Y, m_From.Z, m_From.Map );
if (CheckMobile(m_Begged))
{
if (m_Begged.NextTrickOrTreat > now)
{
from.SendLocalizedMessage(1076767); /* That doesn't appear to have any more candy. */
return;
}
twin.MoveToWorld( m_From.Map.CanSpawnMobile( point ) ? point : m_From.Location, m_From.Map );
m_Begged.NextTrickOrTreat = now + TimeSpan.FromMinutes(Utility.RandomMinMax(5, 10));
Timer.DelayCall( TimeSpan.FromSeconds( 5 ), DeleteTwin, twin );
}
}
}
if (from.Backpack != null && !from.Backpack.Deleted)
{
if (Utility.RandomDouble() > .10)
{
switch (Utility.Random(3))
{
case 0:
m_Begged.Say(1076768);
break; /* Oooooh, aren't you cute! */
case 1:
m_Begged.Say(1076779);
break; /* All right...This better not spoil your dinner! */
case 2:
m_Begged.Say(1076778);
break; /* Here you go! Enjoy! */
}
public static void DeleteTwin( Mobile m_Twin )
{
if ( CheckMobile( m_Twin ) )
{
m_Twin.Delete();
}
}
if (Utility.RandomDouble() <= .01 && from.Skills.Begging.Value >= 100)
{
from.AddToBackpack(HolidaySettings.RandomGMBeggerItem);
public static Point3D RandomPointOneAway( int x, int y, int z, Map map )
{
Point3D loc = new Point3D( x + Utility.Random( -1, 3 ), y + Utility.Random( -1, 3 ), 0 );
from.SendLocalizedMessage(1076777); /* You receive a special treat! */
}
else
{
from.AddToBackpack(HolidaySettings.RandomTreat);
loc.Z = ( map.CanFit( loc, 0 )) ? map.GetAverageZ( loc.X, loc.Y ) : z;
from.SendLocalizedMessage(1076769); /* You receive some candy. */
}
}
else
{
m_Begged.Say(1076770); /* TRICK! */
return loc;
}
int m_Action = Utility.Random(4);
public static bool CheckMobile( Mobile mobile )
{
return ( mobile?.Map != null && !mobile.Deleted && mobile.Alive && mobile.Map != Map.Internal );
}
}
if (m_Action == 0)
Timer.DelayCall(OneSecond, OneSecond, 10, Bleeding, from);
else if (m_Action == 1)
Timer.DelayCall(TimeSpan.FromSeconds(2), SolidHueMobile, from);
else
Timer.DelayCall(TimeSpan.FromSeconds(2), MakeTwin, from);
}
}
}
}
}
}
}
public class NaughtyTwin : BaseCreature
{
private Mobile m_From;
public class NaughtyTwin : BaseCreature
{
private static Point3D[] Felucca_Locations =
{
new Point3D(4467, 1283, 5), // Moonglow
new Point3D(1336, 1997, 5), // Britain
new Point3D(1499, 3771, 5), // Jhelom
new Point3D(771, 752, 5), // Yew
new Point3D(2701, 692, 5), // Minoc
new Point3D(1828, 2948, -20), // Trinsic
new Point3D(643, 2067, 5), // Skara Brae
new Point3D(3563, 2139, Map.Trammel.GetAverageZ(3563, 2139)) // (New) Magincia
};
private static Point3D[] Felucca_Locations =
{
new Point3D( 4467, 1283, 5 ), // Moonglow
new Point3D( 1336, 1997, 5 ), // Britain
new Point3D( 1499, 3771, 5 ), // Jhelom
new Point3D( 771, 752, 5 ), // Yew
new Point3D( 2701, 692, 5 ), // Minoc
new Point3D( 1828, 2948,-20), // Trinsic
new Point3D( 643, 2067, 5 ), // Skara Brae
new Point3D( 3563, 2139, Map.Trammel.GetAverageZ( 3563, 2139 ) ), // (New) Magincia
};
private static Point3D[] Malas_Locations =
{
new Point3D(1015, 527, -65), // Luna
new Point3D(1997, 1386, -85) // Umbra
};
private static Point3D[] Malas_Locations =
{
new Point3D(1015, 527, -65), // Luna
new Point3D(1997, 1386, -85) // Umbra
};
private static Point3D[] Ilshenar_Locations =
{
new Point3D(1215, 467, -13), // Compassion
new Point3D(722, 1366, -60), // Honesty
new Point3D(744, 724, -28), // Honor
new Point3D(281, 1016, 0), // Humility
new Point3D(987, 1011, -32), // Justice
new Point3D(1174, 1286, -30), // Sacrifice
new Point3D(1532, 1340, -3), // Spirituality
new Point3D(528, 216, -45), // Valor
new Point3D(1721, 218, 96) // Chaos
};
private static Point3D[] Ilshenar_Locations =
{
new Point3D( 1215, 467, -13 ), // Compassion
new Point3D( 722, 1366, -60 ), // Honesty
new Point3D( 744, 724, -28 ), // Honor
new Point3D( 281, 1016, 0 ), // Humility
new Point3D( 987, 1011, -32 ), // Justice
new Point3D( 1174, 1286, -30 ), // Sacrifice
new Point3D( 1532, 1340, - 3 ), // Spirituality
new Point3D( 528, 216, -45 ), // Valor
new Point3D( 1721, 218, 96 ) // Chaos
};
private static Point3D[] Tokuno_Locations =
{
new Point3D(1169, 998, 41), // Isamu-Jima
new Point3D(802, 1204, 25), // Makoto-Jima
new Point3D(270, 628, 15) // Homare-Jima
};
private static Point3D[] Tokuno_Locations =
{
new Point3D( 1169, 998, 41 ), // Isamu-Jima
new Point3D( 802, 1204, 25 ), // Makoto-Jima
new Point3D( 270, 628, 15 ) // Homare-Jima
};
private Mobile m_From;
public NaughtyTwin( Mobile from )
: base( AIType.AI_Melee, FightMode.None, 10, 1, 0.2, 0.4 )
{
if ( TrickOrTreat.CheckMobile( from ) )
{
Body = from.Body;
public NaughtyTwin(Mobile from)
: base(AIType.AI_Melee, FightMode.None, 10, 1, 0.2, 0.4)
{
if (TrickOrTreat.CheckMobile(from))
{
Body = from.Body;
m_From = from;
Name = $"{from.Name}\'s Naughty Twin";
m_From = from;
Name = $"{from.Name}\'s Naughty Twin";
Timer.DelayCall<Mobile>( TrickOrTreat.OneSecond, Utility.RandomBool() ? StealCandy : new TimerStateCallback<Mobile>( ToGate ), m_From );
}
}
Timer.DelayCall(TrickOrTreat.OneSecond,
Utility.RandomBool() ? StealCandy : new TimerStateCallback<Mobile>(ToGate), m_From);
}
}
public override void OnThink()
{
if ( m_From == null || m_From.Deleted )
{
Delete();
}
}
public NaughtyTwin(Serial serial)
: base(serial)
{
}
public static Item FindCandyTypes( Mobile target )
{
Type[] types = { typeof( WrappedCandy ), typeof( Lollipops ), typeof( NougatSwirl ), typeof( Taffy ), typeof( JellyBeans ) };
public override void OnThink()
{
if (m_From == null || m_From.Deleted) Delete();
}
if ( TrickOrTreat.CheckMobile( target ) )
{
for( int i = 0; i < types.Length; i++ )
{
Item item = target.Backpack.FindItemByType( types[ i ] );
public static Item FindCandyTypes(Mobile target)
{
Type[] types =
{ typeof(WrappedCandy), typeof(Lollipops), typeof(NougatSwirl), typeof(Taffy), typeof(JellyBeans) };
if ( item != null )
{
return item;
}
}
}
return null;
}
if (TrickOrTreat.CheckMobile(target))
for (int i = 0; i < types.Length; i++)
{
Item item = target.Backpack.FindItemByType(types[i]);
public static void StealCandy( Mobile target )
{
if ( TrickOrTreat.CheckMobile( target ) )
{
Item item = FindCandyTypes( target );
if (item != null) return item;
}
target.SendLocalizedMessage( 1113967 ); /* Your naughty twin steals some of your candy. */
return null;
}
if ( item != null && !item.Deleted )
{
item.Delete();
}
}
}
public static void StealCandy(Mobile target)
{
if (TrickOrTreat.CheckMobile(target))
{
Item item = FindCandyTypes(target);
public static void ToGate( Mobile target )
{
if ( TrickOrTreat.CheckMobile( target ) )
{
target.SendLocalizedMessage( 1113972 ); /* Your naughty twin teleports you away with a naughty laugh! */
target.SendLocalizedMessage(1113967); /* Your naughty twin steals some of your candy. */
target.MoveToWorld( RandomMoongate( target ), target.Map );
}
}
if (item != null && !item.Deleted) item.Delete();
}
}
public static Point3D RandomMoongate( Mobile target )
{
Map map = target.Map;
public static void ToGate(Mobile target)
{
if (TrickOrTreat.CheckMobile(target))
{
target.SendLocalizedMessage(1113972); /* Your naughty twin teleports you away with a naughty laugh! */
switch( target.Map.MapID )
{
case 2: return Ilshenar_Locations[ Utility.Random( Ilshenar_Locations.Length ) ];
case 3: return Malas_Locations[ Utility.Random( Malas_Locations.Length ) ];
case 4: return Tokuno_Locations[ Utility.Random( Tokuno_Locations.Length ) ];
default: return Felucca_Locations[ Utility.Random( Felucca_Locations.Length ) ];
}
}
target.MoveToWorld(RandomMoongate(target), target.Map);
}
}
public NaughtyTwin( Serial serial )
: base( serial )
{
}
public static Point3D RandomMoongate(Mobile target)
{
Map map = target.Map;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( ( int )0 );
}
switch (target.Map.MapID)
{
case 2: return Ilshenar_Locations[Utility.Random(Ilshenar_Locations.Length)];
case 3: return Malas_Locations[Utility.Random(Malas_Locations.Length)];
case 4: return Tokuno_Locations[Utility.Random(Tokuno_Locations.Length)];
default: return Felucca_Locations[Utility.Random(Felucca_Locations.Length)];
}
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -1,85 +1,96 @@
using System;
using Server.Mobiles;
using Server.Mobiles;
namespace Server.Items
{
public class HalloweenPumpkin : Item
{
private static readonly string[] m_Staff =
{
"Ryan", "Mark", "Eos", "Athena", "Xavier", "Krrios", "Zippy"
};
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 );
}
[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;
public HalloweenPumpkin(Serial serial)
: base(serial)
{
}
bool douse = false;
public override void OnDoubleClick(Mobile from)
{
if (!from.InRange(GetWorldLocation(), 2))
return;
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;
}
bool douse = false;
from.SendLocalizedMessage( douse ? 1113988 : 1113987 ); // You extinguish/light the Jack-O-Lantern
Effects.PlaySound( GetWorldLocation(), Map, douse ? 0x3be : 0x47 );
}
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;
}
private void AssignRandomName()
{
Name = $"{m_Staff[Utility.Random(m_Staff.Length)]}'s Jack-O-Lantern";
}
from.SendLocalizedMessage(douse ? 1113988 : 1113987); // You extinguish/light the Jack-O-Lantern
Effects.PlaySound(GetWorldLocation(), Map, douse ? 0x3be : 0x47);
}
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 );
private void AssignRandomName()
{
Name = $"{m_Staff[Utility.Random(m_Staff.Length)]}'s Jack-O-Lantern";
}
Delete();
return false;
}
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);
AssignRandomName();
}
Delete();
return false;
}
return true;
}
AssignRandomName();
}
public HalloweenPumpkin( Serial serial )
: base( serial )
{
}
return true;
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( (int)1 ); // version
}
writer.Write(1); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
int version = reader.ReadInt();
if ( version == 0 && Name == null && ItemID == 0x4698 )
AssignRandomName();
}
}
}
if (version == 0 && Name == null && ItemID == 0x4698)
AssignRandomName();
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items
{
public class PumpkinScarecrow : Item
{
public override int LabelNumber => 1096947;
public class PumpkinScarecrow : Item
{
[Constructible]
public PumpkinScarecrow()
: base(Utility.RandomBool() ? 0x469B : 0x469C)
{
}
[Constructible]
public PumpkinScarecrow()
: base( Utility.RandomBool() ? 0x469B : 0x469C )
{
}
public PumpkinScarecrow(Serial serial)
: base(serial)
{
}
public PumpkinScarecrow( Serial serial )
: base( serial )
{
}
public override int LabelNumber => 1096947;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items
{
public class RuinedTapestry : Item
{
public override string DefaultName => "Ruined Tapestry ";
public class RuinedTapestry : Item
{
[Constructible]
public RuinedTapestry()
: base(Utility.RandomBool() ? 0x4699 : 0x469A)
{
}
[Constructible]
public RuinedTapestry()
: base( Utility.RandomBool() ? 0x4699 : 0x469A )
{
}
public RuinedTapestry(Serial serial)
: base(serial)
{
}
public RuinedTapestry( Serial serial )
: base( serial )
{
}
public override string DefaultName => "Ruined Tapestry ";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,45 +1,44 @@
namespace Server.Items
{
public class TwilightLantern : Lantern
{
[Constructible]
public TwilightLantern()
{
Hue = Utility.RandomBool() ? 244 : 997;
}
public class TwilightLantern : Lantern
{
public override string DefaultName => "Twilight Lantern";
public TwilightLantern(Serial serial)
: base(serial)
{
}
[Constructible]
public TwilightLantern()
{
Hue = Utility.RandomBool() ? 244 : 997;
}
public override string DefaultName => "Twilight Lantern";
public override bool AllowEquippedCast( Mobile from )
{
return true;
}
public override bool AllowEquippedCast(Mobile from)
{
return true;
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
list.Add( 1060482 ); // Spell Channeling
}
list.Add(1060482); // Spell Channeling
}
public TwilightLantern( Serial serial )
: base( serial )
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write(0); // version
}
writer.Write( ( int )0 ); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,74 +1,68 @@
using System;
using Server.Items;
using Server.Events.Halloween;
using Server.Items;
namespace Server.Engines.Events
{
public class PumpkinPatchSpawner
{
private static Timer m_Timer;
public class PumpkinPatchSpawner
{
private static Timer m_Timer;
private static Rectangle2D[] m_PumpkinFields =
{
new Rectangle2D( 4557, 1471, 20, 10 ),
new Rectangle2D( 796, 2152, 36, 24 ),
new Rectangle2D( 816, 2251, 16, 8 ),
new Rectangle2D( 816, 2261, 16, 8 ),
new Rectangle2D( 816, 2271, 16, 8 ),
new Rectangle2D( 816, 2281, 16, 8 ),
new Rectangle2D( 835, 2344, 16, 16 ),
new Rectangle2D( 816, 2344, 16, 24 )
};
private static Rectangle2D[] m_PumpkinFields =
{
new Rectangle2D(4557, 1471, 20, 10),
new Rectangle2D(796, 2152, 36, 24),
new Rectangle2D(816, 2251, 16, 8),
new Rectangle2D(816, 2261, 16, 8),
new Rectangle2D(816, 2271, 16, 8),
new Rectangle2D(816, 2281, 16, 8),
new Rectangle2D(835, 2344, 16, 16),
new Rectangle2D(816, 2344, 16, 24)
};
public static void Initialize()
{
DateTime now = DateTime.UtcNow;
public static void Initialize()
{
DateTime now = DateTime.UtcNow;
if ( DateTime.UtcNow >= HolidaySettings.StartHalloween && DateTime.UtcNow <= HolidaySettings.FinishHalloween )
{
m_Timer = Timer.DelayCall( TimeSpan.Zero, TimeSpan.FromMinutes( .50 ), 0, PumpkinPatchSpawnerCallback);
}
}
if (DateTime.UtcNow >= HolidaySettings.StartHalloween && DateTime.UtcNow <= HolidaySettings.FinishHalloween)
m_Timer = Timer.DelayCall(TimeSpan.Zero, TimeSpan.FromMinutes(.50), 0, PumpkinPatchSpawnerCallback);
}
protected static void PumpkinPatchSpawnerCallback()
{
AddPumpkin( Map.Felucca );
AddPumpkin( Map.Trammel );
}
protected static void PumpkinPatchSpawnerCallback()
{
AddPumpkin(Map.Felucca);
AddPumpkin(Map.Trammel);
}
private static void AddPumpkin( Map map )
{
for( int i = 0; i < m_PumpkinFields.Length; i++ )
{
Rectangle2D rect = m_PumpkinFields[ i ];
private static void AddPumpkin(Map map)
{
for (int i = 0; i < m_PumpkinFields.Length; i++)
{
Rectangle2D rect = m_PumpkinFields[i];
int spawncount = ( ( rect.Height * rect.Width ) / 20 );
int pumpkins = 0;
int spawncount = rect.Height * rect.Width / 20;
int pumpkins = 0;
foreach( Item item in map.GetItemsInBounds( rect ) )
{
if ( item is HalloweenPumpkin )
{
pumpkins++;
}
}
foreach (Item item in map.GetItemsInBounds(rect))
if (item is HalloweenPumpkin)
pumpkins++;
if ( spawncount > pumpkins )
{
Item item = new HalloweenPumpkin();
if (spawncount > pumpkins)
{
Item item = new HalloweenPumpkin();
item.MoveToWorld( RandomPointIn( rect, map ), map );
}
}
}
item.MoveToWorld(RandomPointIn(rect, map), map);
}
}
}
private static Point3D RandomPointIn( Rectangle2D rect, Map map )
{
int x = Utility.Random( rect.X, rect.Width );
int y = Utility.Random( rect.Y, rect.Height );
int z = map.GetAverageZ( x, y );
private static Point3D RandomPointIn(Rectangle2D rect, Map map)
{
int x = Utility.Random(rect.X, rect.Width);
int y = Utility.Random(rect.Y, rect.Height);
int z = map.GetAverageZ(x, y);
return new Point3D( x, y, z );
}
}
}
return new Point3D(x, y, z);
}
}
}

View file

@ -1,38 +1,38 @@
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class CreepyCake : Food
{
public override string DefaultName => "Creepy Cake";
public class CreepyCake : Food
{
[Constructible]
public CreepyCake()
: base(0x9e9)
{
Hue = 0x3E4;
}
[Constructible]
public CreepyCake()
: base( 0x9e9 )
{
Hue = 0x3E4;
}
public CreepyCake(Serial serial)
: base(serial)
{
}
public CreepyCake( Serial serial )
: base( serial )
{
}
public override string DefaultName => "Creepy Cake";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,39 +1,39 @@
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class HarvestWine : BeverageBottle
{
public override string DefaultName => "Harvest Wine";
public override double DefaultWeight => 1;
public class HarvestWine : BeverageBottle
{
[Constructible]
public HarvestWine()
: base(BeverageType.Wine)
{
Hue = 0xe0;
}
[Constructible]
public HarvestWine()
: base( BeverageType.Wine )
{
Hue = 0xe0;
}
public HarvestWine(Serial serial)
: base(serial)
{
}
public HarvestWine( Serial serial )
: base( serial )
{
}
public override string DefaultName => "Harvest Wine";
public override double DefaultWeight => 1;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,35 +1,35 @@
namespace Server.Items
{
public class MrPlainsCookies : Food
{
public override string DefaultName => "Mr Plain's Cookies";
public class MrPlainsCookies : Food
{
[Constructible]
public MrPlainsCookies()
: base(0x160C)
{
Weight = 1.0;
FillFactor = 4;
Hue = 0xF4;
}
[Constructible]
public MrPlainsCookies( )
: base( 0x160C )
{
Weight = 1.0;
FillFactor = 4;
Hue = 0xF4;
}
public MrPlainsCookies(Serial serial)
: base(serial)
{
}
public MrPlainsCookies( Serial serial )
: base( serial )
{
}
public override string DefaultName => "Mr Plain's Cookies";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,42 +1,42 @@
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class MurkyMilk : Pitcher
{
public override string DefaultName => "Murky Milk";
public override int MaxQuantity => 5;
public override double DefaultWeight => 1;
public class MurkyMilk : Pitcher
{
[Constructible]
public MurkyMilk()
: base(BeverageType.Milk)
{
Hue = 0x3e5;
Quantity = MaxQuantity;
ItemID = Utility.RandomBool() ? 0x09F0 : 0x09AD;
}
[Constructible]
public MurkyMilk( )
: base( BeverageType.Milk )
{
Hue = 0x3e5;
Quantity = MaxQuantity;
ItemID = ( Utility.RandomBool() ) ? 0x09F0 : 0x09AD;
}
public MurkyMilk(Serial serial)
: base(serial)
{
}
public MurkyMilk( Serial serial )
: base( serial )
{
}
public override string DefaultName => "Murky Milk";
public override int MaxQuantity => 5;
public override double DefaultWeight => 1;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,37 +1,37 @@
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class PumpkinPizza : CheesePizza
{
public override string DefaultName => "Pumpkin Pizza";
public class PumpkinPizza : CheesePizza
{
[Constructible]
public PumpkinPizza()
{
Hue = 0xF3;
}
[Constructible]
public PumpkinPizza( )
{
Hue = 0xF3;
}
public PumpkinPizza(Serial serial)
: base(serial)
{
}
public PumpkinPizza( Serial serial )
: base( serial )
{
}
public override string DefaultName => "Pumpkin Pizza";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,37 +1,37 @@
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class GrimWarning : Item
{
public override double DefaultWeight => 1;
public class GrimWarning : Item
{
[Constructible]
public GrimWarning()
: base(0x42BD)
{
}
[Constructible]
public GrimWarning ()
: base( 0x42BD )
{
}
public GrimWarning(Serial serial)
: base(serial)
{
}
public GrimWarning( Serial serial )
: base( serial )
{
}
public override double DefaultWeight => 1;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,37 +1,37 @@
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class SkullsOnPike : Item
{
public override double DefaultWeight => 1;
public class SkullsOnPike : Item
{
[Constructible]
public SkullsOnPike()
: base(0x42B5)
{
}
[Constructible]
public SkullsOnPike()
: base( 0x42B5 )
{
}
public SkullsOnPike(Serial serial)
: base(serial)
{
}
public SkullsOnPike( Serial serial )
: base( serial )
{
}
public override double DefaultWeight => 1;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items
{
public class ChairInAGhostCostume : Item
{
public override double DefaultWeight => 5;
public class ChairInAGhostCostume : Item
{
[Constructible]
public ChairInAGhostCostume()
: base(0x3F26)
{
}
[Constructible]
public ChairInAGhostCostume()
: base( 0x3F26 )
{
}
public ChairInAGhostCostume(Serial serial)
: base(serial)
{
}
public ChairInAGhostCostume( Serial serial )
: base( serial )
{
}
public override double DefaultWeight => 5;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,33 +1,33 @@
namespace Server.Items
{
public class ColoredSmallWebs : Item
{
public override double DefaultWeight => 5;
public class ColoredSmallWebs : Item
{
[Constructible]
public ColoredSmallWebs()
: base(Utility.RandomBool() ? 0x10d6 : 0x10d7)
{
Hue = Utility.RandomBool() ? 0x455 : 0x4E9;
}
[Constructible]
public ColoredSmallWebs()
: base( Utility.RandomBool() ? 0x10d6 : 0x10d7 )
{
Hue = Utility.RandomBool() ? 0x455 : 0x4E9;
}
public ColoredSmallWebs(Serial serial)
: base(serial)
{
}
public ColoredSmallWebs( Serial serial )
: base( serial )
{
}
public override double DefaultWeight => 5;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items
{
public class ExcellentIronMaiden : Item
{
public override double DefaultWeight => 5;
public class ExcellentIronMaiden : Item
{
[Constructible]
public ExcellentIronMaiden()
: base(0x3f15)
{
}
[Constructible]
public ExcellentIronMaiden()
: base( 0x3f15 )
{
}
public ExcellentIronMaiden(Serial serial)
: base(serial)
{
}
public ExcellentIronMaiden( Serial serial )
: base( serial )
{
}
public override double DefaultWeight => 5;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,31 +1,31 @@
namespace Server.Items
{
public class HalloweenGuillotine : Item
{
public override double DefaultWeight => 5;
public class HalloweenGuillotine : Item
{
[Constructible]
public HalloweenGuillotine() : base(0x3F27)
{
}
[Constructible]
public HalloweenGuillotine() : base( 0x3F27 )
{
}
public HalloweenGuillotine(Serial serial)
: base(serial)
{
}
public HalloweenGuillotine( Serial serial )
: base( serial )
{
}
public override double DefaultWeight => 5;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,76 +1,67 @@
using System;
//using System.Collections.Generic;
//using System.Collections.Generic;
namespace Server.Items.Holiday
{
[TypeAlias( "Server.Items.ClownMask", "Server.Items.DaemonMask", "Server.Items.PlagueMask" )]
public class BasePaintedMask : Item
{
public override string DefaultName
{
get
{
if ( m_Staffer != null )
{
return $"{MaskName} hand painted by {m_Staffer}";
}
[TypeAlias("Server.Items.ClownMask", "Server.Items.DaemonMask", "Server.Items.PlagueMask")]
public class BasePaintedMask : Item
{
private static string[] m_Staffers =
{
"Ryan",
"Mark",
"Krrios",
"Zippy",
"Athena",
"Eos",
"Xavier"
};
return MaskName;
}
}
private string m_Staffer;
public virtual string MaskName => "A Mask";
public BasePaintedMask(int itemid)
: this(m_Staffers[Utility.Random(m_Staffers.Length)], itemid)
{
}
private string m_Staffer;
public BasePaintedMask(string staffer, int itemid)
: base(itemid + Utility.Random(2))
{
m_Staffer = staffer;
private static string[] m_Staffers =
{
"Ryan",
"Mark",
"Krrios",
"Zippy",
"Athena",
"Eos",
"Xavier"
};
Utility.Intern(m_Staffer);
}
public BasePaintedMask( int itemid )
: this( m_Staffers[ Utility.Random( m_Staffers.Length ) ], itemid )
{
public BasePaintedMask(Serial serial) : base(serial)
{
}
}
public override string DefaultName
{
get
{
if (m_Staffer != null) return $"{MaskName} hand painted by {m_Staffer}";
public BasePaintedMask( string staffer, int itemid )
: base( itemid + Utility.Random( 2 ) )
{
m_Staffer = staffer;
return MaskName;
}
}
Utility.Intern( m_Staffer );
}
public virtual string MaskName => "A Mask";
public BasePaintedMask( Serial serial ) : base( serial )
{
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
}
writer.Write(1); // version
writer.Write(m_Staffer);
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
writer.Write( ( int )1 ); // version
writer.Write( ( string )m_Staffer );
}
int version = reader.ReadInt();
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( version == 1 )
{
m_Staffer = Utility.Intern( reader.ReadString() );
}
}
}
}
if (version == 1) m_Staffer = Utility.Intern(reader.ReadString());
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items.Holiday
{
public class PaintedEvilClownMask : BasePaintedMask
{
public override string MaskName => "Evil Clown Mask";
public class PaintedEvilClownMask : BasePaintedMask
{
[Constructible]
public PaintedEvilClownMask()
: base(0x4a90)
{
}
[Constructible]
public PaintedEvilClownMask( )
: base( 0x4a90 )
{
}
public PaintedEvilClownMask(Serial serial)
: base(serial)
{
}
public PaintedEvilClownMask( Serial serial )
: base( serial )
{
}
public override string MaskName => "Evil Clown Mask";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,33 +1,32 @@
namespace Server.Items.Holiday
{
public class PaintedDaemonMask : BasePaintedMask
{
public override string MaskName => "Daemon Mask";
public class PaintedDaemonMask : BasePaintedMask
{
[Constructible]
public PaintedDaemonMask()
: base(0x4a92)
{
}
[Constructible]
public PaintedDaemonMask()
: base( 0x4a92 )
{
}
public PaintedDaemonMask(Serial serial)
: base(serial)
{
}
public PaintedDaemonMask( Serial serial )
: base( serial )
{
}
public override string MaskName => "Daemon Mask";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items.Holiday
{
public class PaintedPlagueMask : BasePaintedMask
{
public override string MaskName => "Plague Mask";
public class PaintedPlagueMask : BasePaintedMask
{
[Constructible]
public PaintedPlagueMask()
: base(0x4A8E)
{
}
[Constructible]
public PaintedPlagueMask()
: base( 0x4A8E )
{
}
public PaintedPlagueMask(Serial serial)
: base(serial)
{
}
public PaintedPlagueMask( Serial serial )
: base( serial )
{
}
public override string MaskName => "Plague Mask";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -4,126 +4,127 @@ using Server.Items.Holiday;
namespace Server.Mobiles
{
public class PumpkinHead : BaseCreature
{
public override string CorpseName => "a killer pumpkin corpse";
public override bool AutoDispel => true;
public override bool BardImmune => true;
public override bool Unprovokable => true;
public override bool AreaPeaceImmune => true;
public override string DefaultName => "a killer pumpkin";
public class PumpkinHead : BaseCreature
{
[Constructible]
public PumpkinHead()
: base(Utility.RandomBool() ? AIType.AI_Melee : AIType.AI_Mage, FightMode.Closest, 10, 1, 0.05, 0.1)
{
Body = 1246 + Utility.Random(2);
[Constructible]
public PumpkinHead()
: base( Utility.RandomBool() ? AIType.AI_Melee : AIType.AI_Mage, FightMode.Closest, 10, 1, 0.05, 0.1 )
{
Body = 1246 + Utility.Random( 2 );
BaseSoundID = 268;
BaseSoundID = 268;
SetStr(350);
SetDex(125);
SetInt(250);
SetStr( 350 );
SetDex( 125 );
SetInt( 250 );
SetHits(500);
SetMana(1000);
SetHits( 500 );
SetMana( 1000 );
SetDamage(10, 15);
SetDamage( 10, 15 );
SetDamageType(ResistanceType.Physical, 100);
SetDamageType( ResistanceType.Physical, 100 );
SetResistance(ResistanceType.Physical, 55);
SetResistance(ResistanceType.Fire, 50);
SetResistance(ResistanceType.Cold, 50);
SetResistance(ResistanceType.Poison, 65);
SetResistance(ResistanceType.Energy, 80);
SetResistance( ResistanceType.Physical, 55 );
SetResistance( ResistanceType.Fire, 50 );
SetResistance( ResistanceType.Cold, 50 );
SetResistance( ResistanceType.Poison, 65 );
SetResistance( ResistanceType.Energy, 80 );
SetSkill(SkillName.DetectHidden, 100.0);
SetSkill(SkillName.Meditation, 120.0);
SetSkill(SkillName.Necromancy, 100.0);
SetSkill(SkillName.SpiritSpeak, 120.0);
SetSkill(SkillName.Magery, 160.0);
SetSkill(SkillName.EvalInt, 100.0);
SetSkill(SkillName.MagicResist, 100.0);
SetSkill(SkillName.Tactics, 100.0);
SetSkill(SkillName.Wrestling, 80.0);
SetSkill( SkillName.DetectHidden, 100.0 );
SetSkill( SkillName.Meditation, 120.0 );
SetSkill( SkillName.Necromancy, 100.0 );
SetSkill( SkillName.SpiritSpeak, 120.0 );
SetSkill( SkillName.Magery, 160.0 );
SetSkill( SkillName.EvalInt, 100.0 );
SetSkill( SkillName.MagicResist, 100.0 );
SetSkill( SkillName.Tactics, 100.0 );
SetSkill( SkillName.Wrestling, 80.0 );
Fame = 5000;
Karma = -5000;
Fame = 5000;
Karma = -5000;
VirtualArmor = 49;
}
VirtualArmor = 49;
}
public PumpkinHead(Serial serial)
: base(serial)
{
}
public override void GenerateLoot()
{
if ( Utility.RandomDouble() < .05 )
{
//PackItem( new TwilightLantern() ); OLD Halloween
public override string CorpseName => "a killer pumpkin corpse";
public override bool AutoDispel => true;
public override bool BardImmune => true;
public override bool Unprovokable => true;
public override bool AreaPeaceImmune => true;
public override string DefaultName => "a killer pumpkin";
switch( Utility.Random( 5 ) )
{
case 0: PackItem( new PaintedEvilClownMask() ); break;
case 1: PackItem( new PaintedDaemonMask() ); break;
case 2: PackItem( new PaintedPlagueMask() ); break;
case 3: PackItem( new PaintedEvilJesterMask() ); break;
case 4: PackItem( new PaintedPorcelainMask() ); break;
default: break;
}
}
public override void GenerateLoot()
{
if (Utility.RandomDouble() < .05)
switch (Utility.Random(5))
{
case 0:
PackItem(new PaintedEvilClownMask());
break;
case 1:
PackItem(new PaintedDaemonMask());
break;
case 2:
PackItem(new PaintedPlagueMask());
break;
case 3:
PackItem(new PaintedEvilJesterMask());
break;
case 4:
PackItem(new PaintedPorcelainMask());
break;
}
PackItem( new WrappedCandy() );
AddLoot( LootPack.UltraRich, 2 );
}
PackItem(new WrappedCandy());
AddLoot(LootPack.UltraRich, 2);
}
public virtual void Lifted_Callback( Mobile from )
{
if ( from != null && !from.Deleted && from is PlayerMobile )
{
Combatant = from;
public virtual void Lifted_Callback(Mobile from)
{
if (from != null && !from.Deleted && from is PlayerMobile)
{
Combatant = from;
Warmode = true;
}
}
Warmode = true;
}
}
public override Item NewHarmfulItem()
{
Item bad = new AcidSlime( TimeSpan.FromSeconds( 10 ), 25, 30 );
public override Item NewHarmfulItem()
{
Item bad = new AcidSlime(TimeSpan.FromSeconds(10), 25, 30);
bad.Name = "gooey nasty pumpkin hummus";
bad.Name = "gooey nasty pumpkin hummus";
bad.Hue = 144;
bad.Hue = 144;
return bad;
}
return bad;
}
public override void OnDamage( int amount, Mobile from, bool willKill )
{
if ( Utility.RandomBool() )
{
if ( from?.Map != null && Map != Map.Internal && Map == from.Map && from.InRange( this, 12 ) )
{
SpillAcid( ( willKill ) ? this : from, ( willKill ) ? 3 : 1 );
}
}
public override void OnDamage(int amount, Mobile from, bool willKill)
{
if (Utility.RandomBool())
if (from?.Map != null && Map != Map.Internal && Map == from.Map && from.InRange(this, 12))
SpillAcid(willKill ? this : from, willKill ? 3 : 1);
base.OnDamage( amount, from, willKill );
}
base.OnDamage(amount, from, willKill);
}
public PumpkinHead( Serial serial )
: base( serial )
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
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 override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items.Holiday
{
public class PaintedEvilJesterMask : BasePaintedMask
{
public override string MaskName => "Evil Jester Mask";
public class PaintedEvilJesterMask : BasePaintedMask
{
[Constructible]
public PaintedEvilJesterMask()
: base(0x4BA5)
{
}
[Constructible]
public PaintedEvilJesterMask()
: base( 0x4BA5 )
{
}
public PaintedEvilJesterMask(Serial serial)
: base(serial)
{
}
public PaintedEvilJesterMask( Serial serial )
: base( serial )
{
}
public override string MaskName => "Evil Jester Mask";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,32 @@
namespace Server.Items.Holiday
{
public class PaintedPorcelainMask : BasePaintedMask
{
public override string MaskName => "Porcelain Mask";
public class PaintedPorcelainMask : BasePaintedMask
{
[Constructible]
public PaintedPorcelainMask()
: base(0x4BA7)
{
}
[Constructible]
public PaintedPorcelainMask()
: base( 0x4BA7 )
{
}
public PaintedPorcelainMask(Serial serial)
: base(serial)
{
}
public PaintedPorcelainMask( Serial serial )
: base( serial )
{
}
public override string MaskName => "Porcelain Mask";
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )1 ); // version
}
writer.Write(1); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -3,38 +3,40 @@ using Server.Items;
namespace Server.Events.Halloween
{
class HolidaySettings
{
public static DateTime StartHalloween // YY MM DD
=> new DateTime( 2012, 10, 24 );
internal class HolidaySettings
{
private static Type[] m_GMBeggarTreats =
{
typeof(CreepyCake),
typeof(PumpkinPizza),
typeof(GrimWarning),
typeof(HarvestWine),
typeof(MurkyMilk),
typeof(MrPlainsCookies),
typeof(SkullsOnPike),
typeof(ChairInAGhostCostume),
typeof(ExcellentIronMaiden),
typeof(HalloweenGuillotine),
typeof(ColoredSmallWebs)
};
public static DateTime FinishHalloween => new DateTime( 2012, 11, 15 );
private static Type[] m_Treats =
{
typeof(Lollipops),
typeof(WrappedCandy),
typeof(JellyBeans),
typeof(Taffy),
typeof(NougatSwirl)
};
public static Item RandomGMBeggerItem => ( Item )Activator.CreateInstance( m_GMBeggarTreats[ Utility.Random( m_GMBeggarTreats.Length ) ] );
public static Item RandomTreat => (Item)Activator.CreateInstance ( m_Treats[ Utility.Random( m_Treats.Length ) ]);
public static DateTime StartHalloween // YY MM DD
=> new DateTime(2012, 10, 24);
private static Type[] m_GMBeggarTreats =
{
typeof( CreepyCake ),
typeof( PumpkinPizza ),
typeof( GrimWarning ),
typeof( HarvestWine ),
typeof( MurkyMilk ),
typeof( MrPlainsCookies ),
typeof( SkullsOnPike ),
typeof( ChairInAGhostCostume ),
typeof( ExcellentIronMaiden ),
typeof( HalloweenGuillotine ),
typeof( ColoredSmallWebs )
};
public static DateTime FinishHalloween => new DateTime(2012, 11, 15);
private static Type[] m_Treats =
{
typeof( Lollipops ),
typeof( WrappedCandy ),
typeof( JellyBeans ),
typeof( Taffy ),
typeof( NougatSwirl )
};
}
}
public static Item RandomGMBeggerItem =>
(Item)Activator.CreateInstance(m_GMBeggarTreats[Utility.Random(m_GMBeggarTreats.Length)]);
public static Item RandomTreat => (Item)Activator.CreateInstance(m_Treats[Utility.Random(m_Treats.Length)]);
}
}

View file

@ -1,38 +1,38 @@
namespace Server.Items
{
public class JellyBeans : CandyCane
{
public override int LabelNumber => 1096932; /* jellybeans */
public class JellyBeans : CandyCane
{
[Constructible]
public JellyBeans()
: this(1)
{
}
[Constructible]
public JellyBeans()
: this( 1 )
{
}
public JellyBeans(int amount)
: base(0x468C)
{
Stackable = true;
}
public JellyBeans( int amount )
: base( 0x468C )
{
Stackable = true;
}
public JellyBeans(Serial serial)
: base(serial)
{
}
public JellyBeans( Serial serial )
: base( serial )
{
}
public override int LabelNumber => 1096932; /* jellybeans */
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,38 +1,38 @@
namespace Server.Items
{
[TypeAlias( "Server.Items.Lollipop" )]
public class Lollipops : CandyCane
{
[Constructible]
public Lollipops()
: this( 1 )
{
}
[TypeAlias("Server.Items.Lollipop")]
public class Lollipops : CandyCane
{
[Constructible]
public Lollipops()
: this(1)
{
}
[Constructible]
public Lollipops( int amount )
: base( 0x468D + Utility.Random( 3 ))
{
Stackable = true;
}
[Constructible]
public Lollipops(int amount)
: base(0x468D + Utility.Random(3))
{
Stackable = true;
}
public Lollipops( Serial serial )
: base( serial )
{
}
public Lollipops(Serial serial)
: base(serial)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,39 +1,38 @@
namespace Server.Items
{
public class NougatSwirl : CandyCane
{
public override int LabelNumber => 1096936; /* nougat swirl */
public class NougatSwirl : CandyCane
{
[Constructible]
public NougatSwirl() : this(1)
{
}
[Constructible]
public NougatSwirl() : this(1)
{
[Constructible]
public NougatSwirl(int amount)
: base(0x4690)
{
Stackable = true;
}
}
public NougatSwirl(Serial serial)
: base(serial)
{
}
[Constructible]
public NougatSwirl( int amount )
: base( 0x4690 )
{
Stackable = true;
}
public override int LabelNumber => 1096936; /* nougat swirl */
public NougatSwirl( Serial serial )
: base( serial )
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write(0); // version
}
writer.Write( ( int )0 ); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,38 +1,38 @@
namespace Server.Items
{
public class Taffy : CandyCane
{
public override int LabelNumber => 1096949; /* taffy */
public class Taffy : CandyCane
{
[Constructible]
public Taffy()
: this(1)
{
}
[Constructible]
public Taffy()
: this( 1 )
{
}
public Taffy(int amount)
: base(0x469D)
{
Stackable = true;
}
public Taffy( int amount )
: base( 0x469D )
{
Stackable = true;
}
public Taffy(Serial serial)
: base(serial)
{
}
public Taffy( Serial serial )
: base( serial )
{
}
public override int LabelNumber => 1096949; /* taffy */
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}

View file

@ -1,38 +1,38 @@
namespace Server.Items
{
public class WrappedCandy : CandyCane
{
public override int LabelNumber => 1096950; /* wrapped candy */
public class WrappedCandy : CandyCane
{
[Constructible]
public WrappedCandy()
: this(1)
{
}
[Constructible]
public WrappedCandy()
: this( 1 )
{
}
public WrappedCandy(int amount)
: base(0x469e)
{
Stackable = true;
}
public WrappedCandy( int amount )
: base( 0x469e )
{
Stackable = true;
}
public WrappedCandy(Serial serial)
: base(serial)
{
}
public WrappedCandy( Serial serial )
: base( serial )
{
}
public override int LabelNumber => 1096950; /* wrapped candy */
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( ( int )0 ); // version
}
writer.Write(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}
int version = reader.ReadInt();
}
}
}