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

@ -5,273 +5,289 @@ using Server.Targeting;
namespace Server.Items
{
public class Fireflies : Item, IAddon
{
public override int LabelNumber => 1150061;
public class Fireflies : Item, IAddon
{
[Constructible]
public Fireflies()
: this(0x1596)
{
}
public Item Deed
{
get
{
FirefliesDeed deed = new FirefliesDeed();
[Constructible]
public Fireflies(int itemID)
: base(itemID)
{
LootType = LootType.Blessed;
Movable = false;
}
return deed;
}
}
public Fireflies(Serial serial)
: base(serial)
{
}
public bool FacingSouth
{
get
{
if ( ItemID == 0x2336 )
return true;
public override int LabelNumber => 1150061;
return false;
}
}
public bool FacingSouth
{
get
{
if (ItemID == 0x2336)
return true;
[Constructible]
public Fireflies()
: this( 0x1596 )
{
}
return false;
}
}
[Constructible]
public Fireflies( int itemID )
: base( itemID )
{
LootType = LootType.Blessed;
Movable = false;
}
public Item Deed
{
get
{
FirefliesDeed deed = new FirefliesDeed();
public Fireflies( Serial serial )
: base( serial )
{
}
return deed;
}
}
public override void OnDoubleClick( Mobile from )
{
if ( from.InRange( Location, 3 ) )
{
BaseHouse house = BaseHouse.FindHouseAt( this );
public bool CouldFit(IPoint3D p, Map map)
{
if (map == null || !map.CanFit(p.X, p.Y, p.Z, ItemData.Height))
return false;
if ( house != null && house.IsOwner( from ) )
{
from.CloseGump( typeof( RewardDemolitionGump ) );
from.SendGump( new RewardDemolitionGump( this, 1049783 ) ); // Do you wish to re-deed this decoration?
}
else
from.SendLocalizedMessage( 1049784 ); // You can only re-deed this decoration if you are the house owner or originally placed the decoration.
}
else
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
}
if (FacingSouth)
return BaseAddon.IsWall(p.X, p.Y - 1, p.Z, map); // north wall
return BaseAddon.IsWall(p.X - 1, p.Y, p.Z, map); // west wall
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void OnDoubleClick(Mobile from)
{
if (from.InRange(Location, 3))
{
BaseHouse house = BaseHouse.FindHouseAt(this);
writer.WriteEncodedInt( 0 ); // version
}
if (house != null && house.IsOwner(from))
{
from.CloseGump(typeof(RewardDemolitionGump));
from.SendGump(new RewardDemolitionGump(this, 1049783)); // Do you wish to re-deed this decoration?
}
else
{
from.SendLocalizedMessage(
1049784); // You can only re-deed this decoration if you are the house owner or originally placed the decoration.
}
}
else
{
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
int version = reader.ReadEncodedInt();
}
writer.WriteEncodedInt(0); // version
}
public bool CouldFit( IPoint3D p, Map map )
{
if ( map == null || !map.CanFit( p.X, p.Y, p.Z, ItemData.Height ) )
return false;
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
if ( FacingSouth )
return BaseAddon.IsWall( p.X, p.Y - 1, p.Z, map ); // north wall
return BaseAddon.IsWall( p.X - 1, p.Y, p.Z, map ); // west wall
}
}
int version = reader.ReadEncodedInt();
}
}
public class FirefliesDeed : Item
{
public override int LabelNumber => 1150061;
public class FirefliesDeed : Item
{
[Constructible]
public FirefliesDeed()
: base(0x14F0)
{
LootType = LootType.Blessed;
Weight = 1.0;
}
[Constructible]
public FirefliesDeed()
: base( 0x14F0 )
{
LootType = LootType.Blessed;
Weight = 1.0;
}
public FirefliesDeed(Serial serial)
: base(serial)
{
}
public FirefliesDeed( Serial serial )
: base( serial )
{
}
public override int LabelNumber => 1150061;
public override void OnDoubleClick( Mobile from )
{
if ( IsChildOf( from.Backpack ) )
{
BaseHouse house = BaseHouse.FindHouseAt( from );
public override void OnDoubleClick(Mobile from)
{
if (IsChildOf(from.Backpack))
{
BaseHouse house = BaseHouse.FindHouseAt(from);
if ( house != null && house.IsOwner( from ) )
{
from.CloseGump( typeof( FacingGump ) );
if (house != null && house.IsOwner(from))
{
from.CloseGump(typeof(FacingGump));
if ( !from.SendGump( new FacingGump( this, from ) ) )
{
from.SendLocalizedMessage( 1150062 ); // You fail to re-deed the holiday fireflies.
}
}
else
from.SendLocalizedMessage( 502092 ); // You must be in your house to do this.
}
else
from.SendLocalizedMessage( 1042038 ); // You must have the object in your backpack to use it.
}
if (!from.SendGump(new FacingGump(this, from)))
from.SendLocalizedMessage(1150062); // You fail to re-deed the holiday fireflies.
}
else
{
from.SendLocalizedMessage(502092); // You must be in your house to do this.
}
}
else
{
from.SendLocalizedMessage(1042038); // You must have the object in your backpack to use it.
}
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt( 0 ); // version
}
writer.WriteEncodedInt(0); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
int version = reader.ReadEncodedInt();
}
private class FacingGump : Gump
{
private FirefliesDeed m_Deed;
private Mobile m_Placer;
private class FacingGump : Gump
{
private FirefliesDeed m_Deed;
private Mobile m_Placer;
private enum Buttons
{
Cancel,
South,
East
}
public FacingGump(FirefliesDeed deed, Mobile player)
: base(150, 50)
{
m_Deed = deed;
m_Placer = player;
public FacingGump( FirefliesDeed deed, Mobile player )
: base( 150, 50 )
{
m_Deed = deed;
m_Placer = player;
Closable = true;
Disposable = true;
Dragable = true;
Resizable = false;
Closable = true;
Disposable = true;
Dragable = true;
Resizable = false;
AddPage(0);
AddPage( 0 );
AddBackground(0, 0, 300, 150, 0xA28);
AddBackground( 0, 0, 300, 150, 0xA28 );
AddItem(90, 30, 0x2332);
AddItem(180, 30, 0x2336);
AddItem( 90, 30, 0x2332 );
AddItem( 180, 30, 0x2336 );
AddButton(50, 35, 0x868, 0x869, (int)Buttons.East, GumpButtonType.Reply, 0);
AddButton(145, 35, 0x868, 0x869, (int)Buttons.South, GumpButtonType.Reply, 0);
}
AddButton( 50, 35, 0x868, 0x869, ( int )Buttons.East, GumpButtonType.Reply, 0 );
AddButton( 145, 35, 0x868, 0x869, ( int )Buttons.South, GumpButtonType.Reply, 0 );
}
public override void OnResponse(NetState sender, RelayInfo info)
{
int m_ItemID;
public override void OnResponse( NetState sender, RelayInfo info )
{
int m_ItemID;
switch (info.ButtonID)
{
case (int)Buttons.East:
m_ItemID = 0x2332;
break;
case (int)Buttons.South:
m_ItemID = 0x2336;
break;
default: return;
}
switch( (int)info.ButtonID )
{
case ( int )Buttons.East: m_ItemID = 0x2332; break;
case ( int )Buttons.South: m_ItemID = 0x2336; break;
default: return;
}
m_Placer.Target = new InternalTarget(m_Deed, m_ItemID);
}
m_Placer.Target = new InternalTarget( m_Deed, m_ItemID );
private enum Buttons
{
Cancel,
South,
East
}
}
}
}
private class InternalTarget : Target
{
private FirefliesDeed m_FirefliesDeed;
private int m_ItemID;
private class InternalTarget : Target
{
private FirefliesDeed m_FirefliesDeed;
private int m_ItemID;
public InternalTarget(FirefliesDeed m_Deed, int itemid)
: base(-1, true, TargetFlags.None)
{
m_FirefliesDeed = m_Deed;
m_ItemID = itemid;
}
public InternalTarget( FirefliesDeed m_Deed, int itemid )
: base( -1, true, TargetFlags.None )
{
m_FirefliesDeed = m_Deed;
m_ItemID = itemid;
}
protected override void OnTarget(Mobile from, object targeted)
{
if (m_FirefliesDeed == null || m_FirefliesDeed.Deleted)
return;
protected override void OnTarget( Mobile from, object targeted )
{
if ( m_FirefliesDeed == null || m_FirefliesDeed.Deleted )
return;
if (m_FirefliesDeed.IsChildOf(from.Backpack))
{
BaseHouse house = BaseHouse.FindHouseAt(from);
if ( m_FirefliesDeed.IsChildOf( from.Backpack ) )
{
BaseHouse house = BaseHouse.FindHouseAt( from );
if (house != null && house.IsOwner(from))
{
IPoint3D p = targeted as IPoint3D;
Map map = from.Map;
if ( house != null && house.IsOwner( from ) )
{
IPoint3D p = targeted as IPoint3D;
Map map = from.Map;
if (p == null || map == null || map == Map.Internal)
return;
if ( p == null || map == null || map == Map.Internal )
return;
Point3D p3d = new Point3D(p);
ItemData id = TileData.ItemTable[m_ItemID & TileData.MaxItemValue];
Point3D p3d = new Point3D( p );
ItemData id = TileData.ItemTable[ m_ItemID & TileData.MaxItemValue ];
if (map.CanFit(p3d, id.Height))
{
house = BaseHouse.FindHouseAt(p3d, map, id.Height);
if ( map.CanFit( p3d, id.Height ) )
{
house = BaseHouse.FindHouseAt( p3d, map, id.Height );
if (house != null && house.IsOwner(from))
{
bool north = BaseAddon.IsWall(p3d.X, p3d.Y - 1, p3d.Z, map);
bool west = BaseAddon.IsWall(p3d.X - 1, p3d.Y, p3d.Z, map);
if ( house != null && house.IsOwner( from ) )
{
bool north = BaseAddon.IsWall( p3d.X, p3d.Y - 1, p3d.Z, map );
bool west = BaseAddon.IsWall( p3d.X - 1, p3d.Y, p3d.Z, map );
bool isclear = true;
bool isclear = true;
foreach (Item item in Map.Malas.GetItemsInRange(p3d, 0))
if (item is Fireflies)
isclear = false;
foreach( Item item in Map.Malas.GetItemsInRange( p3d, 0 ) )
{
if ( item is Fireflies )
{
isclear = false;
}
}
if ((m_ItemID == 0x2336 && north || m_ItemID == 0x2332 && west) && isclear)
{
Fireflies flies = new Fireflies(m_ItemID);
if ( ( ( m_ItemID == 0x2336 && north ) || ( m_ItemID == 0x2332 && west ) ) && isclear )
{
Fireflies flies = new Fireflies( m_ItemID );
house.Addons.Add(flies);
house.Addons.Add( flies );
flies.MoveToWorld(p3d, from.Map);
flies.MoveToWorld( p3d, from.Map );
m_FirefliesDeed.Delete();
}
m_FirefliesDeed.Delete();
}
else
from.SendLocalizedMessage( 1150065 ); // Holiday fireflies must be placed next to a wall.
}
else
from.SendLocalizedMessage( 1042036 ); // That location is not in your house.
}
else
from.SendLocalizedMessage( 500269 ); // You cannot build that there.
}
else
from.SendLocalizedMessage( 502092 ); // You must be in your house to do this.
}
else
from.SendLocalizedMessage( 1042038 ); // You must have the object in your backpack to use it.
}
}
}
}
else
{
from.SendLocalizedMessage(1150065); // Holiday fireflies must be placed next to a wall.
}
}
else
{
from.SendLocalizedMessage(1042036); // That location is not in your house.
}
}
else
{
from.SendLocalizedMessage(500269); // You cannot build that there.
}
}
else
{
from.SendLocalizedMessage(502092); // You must be in your house to do this.
}
}
else
{
from.SendLocalizedMessage(1042038); // You must have the object in your backpack to use it.
}
}
}
}
}

View file

@ -1,33 +1,33 @@
namespace Server.Items.Holiday
{
[TypeAlias( "Server.Items.AngelDecoration" )]
[Flippable( 0x46FA, 0x46FB )]
public class AngelDecoration : Item
{
public AngelDecoration() : base ( 0x46FA )
{
LootType = LootType.Blessed;
[TypeAlias("Server.Items.AngelDecoration")]
[Flippable(0x46FA, 0x46FB)]
public class AngelDecoration : Item
{
public AngelDecoration() : base(0x46FA)
{
LootType = LootType.Blessed;
Weight = 30;
}
Weight = 30;
}
public AngelDecoration( Serial serial )
: base( serial )
{
}
public AngelDecoration(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,33 +1,33 @@
namespace Server.Items.Holiday
{
[TypeAlias( "Server.Items.RockingHorse" )]
[Flippable( 0x4214, 0x4215 )]
public class RockingHorse : Item
{
public RockingHorse() : base ( 0x4214 )
{
LootType = LootType.Blessed;
[TypeAlias("Server.Items.RockingHorse")]
[Flippable(0x4214, 0x4215)]
public class RockingHorse : Item
{
public RockingHorse() : base(0x4214)
{
LootType = LootType.Blessed;
Weight = 30;
}
Weight = 30;
}
public RockingHorse( Serial serial )
: base( serial )
{
}
public RockingHorse(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,42 +1,42 @@
namespace Server.Items
{
public class DragonEasterEgg : Item, IDyable
{
public override int LabelNumber => 1097278;
public class DragonEasterEgg : Item, IDyable
{
[Constructible]
public DragonEasterEgg()
: base(0x47E6)
{
}
[Constructible]
public DragonEasterEgg()
: base( 0x47E6 )
{
}
public DragonEasterEgg(Serial serial)
: base(serial)
{
}
public DragonEasterEgg( Serial serial )
: base( serial )
{
}
public override int LabelNumber => 1097278;
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public bool Dye(Mobile from, DyeTub sender)
{
if (Deleted || !sender.AllowDyables)
return false;
writer.Write( ( int ) 0 );
}
Hue = sender.DyedHue;
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
return true;
}
int version = reader.ReadInt();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
public bool Dye( Mobile from, DyeTub sender )
{
if ( Deleted || !sender.AllowDyables )
return false;
writer.Write(0);
}
Hue = sender.DyedHue;
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
return true;
}
}
}
int version = reader.ReadInt();
}
}
}

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

View file

@ -1,31 +1,31 @@
namespace Server.Items
{
[FlippableAttribute( 0x49CC, 0x49D0 )]
public class AnimatedHeartShapedBox : HeartShapedBox
{
[Constructible]
public AnimatedHeartShapedBox()
{
ItemID = 0x49CC;
}
[Flippable(0x49CC, 0x49D0)]
public class AnimatedHeartShapedBox : HeartShapedBox
{
[Constructible]
public AnimatedHeartShapedBox()
{
ItemID = 0x49CC;
}
public AnimatedHeartShapedBox( Serial serial )
: base( serial )
{
}
public AnimatedHeartShapedBox(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

@ -4,284 +4,302 @@ using Server.Network;
namespace Server.Items
{
public abstract class StValentinesBear : Item
{
public override string DefaultName
{
get
{
if ( m_Owner != null )
return $"{m_Owner}'s St. Valentine Bear";
return "St. Valentine Bear";
}
}
public abstract class StValentinesBear : Item
{
private string m_Line1;
private string m_Line2;
private string m_Line3;
private string m_Owner;
private string m_Line1;
private string m_Line2;
private string m_Line3;
private string m_Owner;
[CommandProperty( AccessLevel.GameMaster )]
public string Owner
{
get => m_Owner;
set { m_Owner = value; InvalidateProperties(); }
}
public StValentinesBear(int itemid, string name)
: base(itemid)
{
m_Owner = name;
LootType = LootType.Blessed;
}
[CommandProperty( AccessLevel.GameMaster )]
public string Line1
{
get => m_Line1;
set { m_Line1 = value; InvalidateProperties(); }
}
public StValentinesBear(Serial serial)
: base(serial)
{
}
[CommandProperty( AccessLevel.GameMaster )]
public string Line2
{
get => m_Line2;
set { m_Line2 = value; InvalidateProperties(); }
}
public override string DefaultName
{
get
{
if (m_Owner != null)
return $"{m_Owner}'s St. Valentine Bear";
return "St. Valentine Bear";
}
}
[CommandProperty( AccessLevel.GameMaster )]
public string Line3
{
get => m_Line3;
set { m_Line3 = value; InvalidateProperties(); }
}
[CommandProperty(AccessLevel.GameMaster)]
public string Owner
{
get => m_Owner;
set
{
m_Owner = value;
InvalidateProperties();
}
}
[CommandProperty( AccessLevel.GameMaster )]
public DateTime EditLimit { get; set; }
[CommandProperty(AccessLevel.GameMaster)]
public string Line1
{
get => m_Line1;
set
{
m_Line1 = value;
InvalidateProperties();
}
}
public bool IsSigned => ( m_Line1 != null || m_Line2 != null || m_Line3 != null );
[CommandProperty(AccessLevel.GameMaster)]
public string Line2
{
get => m_Line2;
set
{
m_Line2 = value;
InvalidateProperties();
}
}
public bool CanSign => ( !IsSigned || DateTime.UtcNow <= EditLimit );
[CommandProperty(AccessLevel.GameMaster)]
public string Line3
{
get => m_Line3;
set
{
m_Line3 = value;
InvalidateProperties();
}
}
public StValentinesBear( int itemid, string name )
: base( itemid )
{
m_Owner = name;
LootType = LootType.Blessed;
}
[CommandProperty(AccessLevel.GameMaster)]
public DateTime EditLimit{ get; set; }
public override void AddNameProperty( ObjectPropertyList list )
{
if ( m_Owner != null )
list.Add( 1150295, m_Owner ); // ~1_NAME~'s St. Valentine Bear
else
list.Add( 1150294 ); // St. Valentine Bear
public bool IsSigned => m_Line1 != null || m_Line2 != null || m_Line3 != null;
AddLine( list, 1150301, m_Line1 ); // [ ~1_LINE0~ ]
AddLine( list, 1150302, m_Line2 ); // [ ~1_LINE1~ ]
AddLine( list, 1150303, m_Line3 ); // [ ~1_LINE2~ ]
}
public bool CanSign => !IsSigned || DateTime.UtcNow <= EditLimit;
private static void AddLine( ObjectPropertyList list, int cliloc, string line )
{
if ( line != null )
list.Add( cliloc, line );
}
public override void AddNameProperty(ObjectPropertyList list)
{
if (m_Owner != null)
list.Add(1150295, m_Owner); // ~1_NAME~'s St. Valentine Bear
else
list.Add(1150294); // St. Valentine Bear
public override void OnSingleClick( Mobile from )
{
base.OnSingleClick( from );
AddLine(list, 1150301, m_Line1); // [ ~1_LINE0~ ]
AddLine(list, 1150302, m_Line2); // [ ~1_LINE1~ ]
AddLine(list, 1150303, m_Line3); // [ ~1_LINE2~ ]
}
ShowLine( from, 1150301, m_Line1 ); // [ ~1_LINE0~ ]
ShowLine( from, 1150302, m_Line2 ); // [ ~1_LINE1~ ]
ShowLine( from, 1150303, m_Line3 ); // [ ~1_LINE2~ ]
}
private static void AddLine(ObjectPropertyList list, int cliloc, string line)
{
if (line != null)
list.Add(cliloc, line);
}
private void ShowLine( Mobile from, int cliloc, string line )
{
if ( line != null )
LabelTo( from, cliloc, line );
}
public override void OnSingleClick(Mobile from)
{
base.OnSingleClick(from);
public override void OnDoubleClick( Mobile from )
{
if ( !CupidsArrow.CheckSeason( from ) || !CanSign )
return;
ShowLine(from, 1150301, m_Line1); // [ ~1_LINE0~ ]
ShowLine(from, 1150302, m_Line2); // [ ~1_LINE1~ ]
ShowLine(from, 1150303, m_Line3); // [ ~1_LINE2~ ]
}
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1080063 ); // This must be in your backpack to use it.
return;
}
private void ShowLine(Mobile from, int cliloc, string line)
{
if (line != null)
LabelTo(from, cliloc, line);
}
from.SendGump( new InternalGump( this ) );
}
public override void OnDoubleClick(Mobile from)
{
if (!CupidsArrow.CheckSeason(from) || !CanSign)
return;
public StValentinesBear( Serial serial )
: base( serial )
{
}
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1080063); // This must be in your backpack to use it.
return;
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
from.SendGump(new InternalGump(this));
}
writer.Write( (int)0 );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( m_Owner );
writer.Write( m_Line1 );
writer.Write( m_Line2 );
writer.Write( m_Line3 );
}
writer.Write(0);
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
writer.Write(m_Owner);
writer.Write(m_Line1);
writer.Write(m_Line2);
writer.Write(m_Line3);
}
int version = reader.ReadInt();
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
m_Owner = Utility.Intern( reader.ReadString() );
m_Line1 = Utility.Intern( reader.ReadString() );
m_Line2 = Utility.Intern( reader.ReadString() );
m_Line3 = Utility.Intern( reader.ReadString() );
}
int version = reader.ReadInt();
private class InternalGump : Gump
{
private StValentinesBear m_Bear;
m_Owner = Utility.Intern(reader.ReadString());
m_Line1 = Utility.Intern(reader.ReadString());
m_Line2 = Utility.Intern(reader.ReadString());
m_Line3 = Utility.Intern(reader.ReadString());
}
public InternalGump( StValentinesBear bear )
: base( 50, 50 )
{
m_Bear = bear;
private class InternalGump : Gump
{
private StValentinesBear m_Bear;
AddPage( 0 );
AddBackground( 0, 0, 420, 320, 9300 );
AddHtml( 10, 10, 400, 21, "<CENTER>St. Valentine Bear</CENTER>", false, false );
AddHtmlLocalized( 10, 40, 400, 75, 1150293, 0, false, false ); // Enter up to three lines of personalized greeting for your St. Valentine Bear. You many enter up to 25 characters per line. Once you enter text, you will only be able to correct mistakes for 10 minutes.
public InternalGump(StValentinesBear bear)
: base(50, 50)
{
m_Bear = bear;
AddHtmlLocalized( 10, 129, 400, 21, 1150296, 0, false, false ); // Line 1:
AddBackground( 10, 150, 400, 24, 9350 );
AddTextEntry( 15, 152, 390, 20, 0, 0, "", 25 );
AddPage(0);
AddBackground(0, 0, 420, 320, 9300);
AddHtml(10, 10, 400, 21, "<CENTER>St. Valentine Bear</CENTER>", false, false);
AddHtmlLocalized(10, 40, 400, 75, 1150293, 0, false,
false); // Enter up to three lines of personalized greeting for your St. Valentine Bear. You many enter up to 25 characters per line. Once you enter text, you will only be able to correct mistakes for 10 minutes.
AddHtmlLocalized( 10, 179, 400, 21, 1150297, 0, false, false ); // Line 2:
AddBackground( 10, 200, 400, 24, 9350 );
AddTextEntry( 15, 202, 390, 20, 0, 1, "", 25 );
AddHtmlLocalized(10, 129, 400, 21, 1150296, 0, false, false); // Line 1:
AddBackground(10, 150, 400, 24, 9350);
AddTextEntry(15, 152, 390, 20, 0, 0, "", 25);
AddHtmlLocalized( 10, 229, 400, 21, 1150298, 0, false, false ); // Line 3:
AddBackground( 10, 250, 400, 24, 9350 );
AddTextEntry( 15, 252, 390, 20, 0, 2, "", 25 );
AddHtmlLocalized(10, 179, 400, 21, 1150297, 0, false, false); // Line 2:
AddBackground(10, 200, 400, 24, 9350);
AddTextEntry(15, 202, 390, 20, 0, 1, "", 25);
AddButton( 15, 285, 242, 241, 0, GumpButtonType.Reply, 0 );
AddButton( 335, 285, 247, 248, 1, GumpButtonType.Reply, 0 );
}
AddHtmlLocalized(10, 229, 400, 21, 1150298, 0, false, false); // Line 3:
AddBackground(10, 250, 400, 24, 9350);
AddTextEntry(15, 252, 390, 20, 0, 2, "", 25);
public override void OnResponse( NetState sender, RelayInfo info )
{
Mobile from = sender.Mobile;
AddButton(15, 285, 242, 241, 0, GumpButtonType.Reply, 0);
AddButton(335, 285, 247, 248, 1, GumpButtonType.Reply, 0);
}
if ( m_Bear.Deleted || !m_Bear.IsChildOf( from.Backpack ) || !m_Bear.CanSign || info.ButtonID != 1 )
return;
public override void OnResponse(NetState sender, RelayInfo info)
{
Mobile from = sender.Mobile;
string line1 = GetLine( info, 0 );
string line2 = GetLine( info, 1 );
string line3 = GetLine( info, 2 );
if (m_Bear.Deleted || !m_Bear.IsChildOf(from.Backpack) || !m_Bear.CanSign || info.ButtonID != 1)
return;
if ( string.IsNullOrEmpty( line1 )
|| string.IsNullOrEmpty( line2 )
|| string.IsNullOrEmpty( line3 ) )
{
from.SendMessage( "Lines cannot be left blank." );
return;
}
string line1 = GetLine(info, 0);
string line2 = GetLine(info, 1);
string line3 = GetLine(info, 2);
if ( line1.Length > 25
|| line2.Length > 25
|| line3.Length > 25 )
{
from.SendMessage( "Lines may not exceed 25 characters." );
return;
}
if (string.IsNullOrEmpty(line1)
|| string.IsNullOrEmpty(line2)
|| string.IsNullOrEmpty(line3))
{
from.SendMessage("Lines cannot be left blank.");
return;
}
if ( !m_Bear.IsSigned )
m_Bear.EditLimit = DateTime.UtcNow + TimeSpan.FromMinutes( 10 );
if (line1.Length > 25
|| line2.Length > 25
|| line3.Length > 25)
{
from.SendMessage("Lines may not exceed 25 characters.");
return;
}
m_Bear.Line1 = Utility.FixHtml( line1 );
m_Bear.Line2 = Utility.FixHtml( line2 );
m_Bear.Line3 = Utility.FixHtml( line3 );
if (!m_Bear.IsSigned)
m_Bear.EditLimit = DateTime.UtcNow + TimeSpan.FromMinutes(10);
from.SendMessage( "You add the personalized greeting to your St. Valentine Bear." );
}
m_Bear.Line1 = Utility.FixHtml(line1);
m_Bear.Line2 = Utility.FixHtml(line2);
m_Bear.Line3 = Utility.FixHtml(line3);
private static string GetLine( RelayInfo info, int idx )
{
TextRelay tr = info.GetTextEntry( idx );
from.SendMessage("You add the personalized greeting to your St. Valentine Bear.");
}
return tr?.Text;
}
}
}
private static string GetLine(RelayInfo info, int idx)
{
TextRelay tr = info.GetTextEntry(idx);
[FlippableAttribute( 0x48E0, 0x48E1 )]
public class StValentinesPanda : StValentinesBear
{
[Constructible]
public StValentinesPanda()
: this( null )
{
}
return tr?.Text;
}
}
}
[Constructible]
public StValentinesPanda( string name )
: base( 0x48E0, name )
{
}
[Flippable(0x48E0, 0x48E1)]
public class StValentinesPanda : StValentinesBear
{
[Constructible]
public StValentinesPanda()
: this(null)
{
}
public StValentinesPanda( Serial serial )
: base( serial )
{
}
[Constructible]
public StValentinesPanda(string name)
: base(0x48E0, name)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public StValentinesPanda(Serial serial)
: base(serial)
{
}
writer.Write( (int)0 );
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
writer.Write(0);
}
int version = reader.ReadInt();
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
[FlippableAttribute( 0x48E2, 0x48E3 )]
public class StValentinesPolarBear : StValentinesBear
{
[Constructible]
public StValentinesPolarBear()
: this( null )
{
}
int version = reader.ReadInt();
}
}
[Constructible]
public StValentinesPolarBear( string name )
: base( 0x48E2, name )
{
}
[Flippable(0x48E2, 0x48E3)]
public class StValentinesPolarBear : StValentinesBear
{
[Constructible]
public StValentinesPolarBear()
: this(null)
{
}
public StValentinesPolarBear( Serial serial )
: base( serial )
{
}
[Constructible]
public StValentinesPolarBear(string name)
: base(0x48E2, name)
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public StValentinesPolarBear(Serial serial)
: base(serial)
{
}
writer.Write( (int)0 );
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
writer.Write(0);
}
int version = reader.ReadInt();
}
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -1,34 +1,34 @@
namespace Server.Items
{
[FlippableAttribute( 0x4F7C, 0x4F7D )]
public class CupidStatue : Item
{
public override int LabelNumber => 1099220; // cupid statue
[Flippable(0x4F7C, 0x4F7D)]
public class CupidStatue : Item
{
[Constructible]
public CupidStatue()
: base(0x4F7D)
{
LootType = LootType.Blessed;
}
[Constructible]
public CupidStatue()
: base( 0x4F7D )
{
LootType = LootType.Blessed;
}
public CupidStatue(Serial serial)
: base(serial)
{
}
public CupidStatue( Serial serial )
: base( serial )
{
}
public override int LabelNumber => 1099220; // cupid statue
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write( (int)0 );
}
writer.Write(0);
}
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,52 +1,52 @@
namespace Server.Items
{
[FlippableAttribute( 0x49CA, 0x49CB )]
public class HeartShapedBox : BaseContainer
{
public override int DefaultDropSound => m_DropSound;
[Flippable(0x49CA, 0x49CB)]
public class HeartShapedBox : BaseContainer
{
private static int m_DropSound;
[Constructible]
public HeartShapedBox()
: base( 0x49CA )
{
}
[Constructible]
public HeartShapedBox()
: base(0x49CA)
{
}
public override bool OnDragDropInto( Mobile from, Item item, Point3D p )
{
PrepareSound( from );
return base.OnDragDropInto( from, item, p );
}
public HeartShapedBox(Serial serial)
: base(serial)
{
}
public override bool OnDragDrop( Mobile from, Item dropped )
{
PrepareSound( from );
return base.OnDragDrop( from, dropped );
}
public override int DefaultDropSound => m_DropSound;
private static int m_DropSound;
public override bool OnDragDropInto(Mobile from, Item item, Point3D p)
{
PrepareSound(from);
return base.OnDragDropInto(from, item, p);
}
private static void PrepareSound( Mobile from )
{
m_DropSound = from.Female ? 0x430 : 0x320;
}
public override bool OnDragDrop(Mobile from, Item dropped)
{
PrepareSound(from);
return base.OnDragDrop(from, dropped);
}
public HeartShapedBox( Serial serial )
: base( serial )
{
}
private static void PrepareSound(Mobile from)
{
m_DropSound = from.Female ? 0x430 : 0x320;
}
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();
}
}
}