#W# Source and Scripts added. Added Scripts/Settings.cs to expose some basic tweak able settings.
This commit is contained in:
parent
b51c58f514
commit
3045c83799
3512 changed files with 627673 additions and 0 deletions
71
Scripts/Items/Addons/AbbatoirAddon.cs
Normal file
71
Scripts/Items/Addons/AbbatoirAddon.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AbbatoirAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new AbbatoirDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public AbbatoirAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x120E ), -1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x120F ), 0, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1210 ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1215 ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1216 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1211 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1214 ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1213 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1212 ), 1, 1, 0 );
|
||||
}
|
||||
|
||||
public AbbatoirAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class AbbatoirDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new AbbatoirAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044329; } } // abbatoir
|
||||
|
||||
[Constructable]
|
||||
public AbbatoirDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public AbbatoirDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
285
Scripts/Items/Addons/AddonComponent.cs
Normal file
285
Scripts/Items/Addons/AddonComponent.cs
Normal file
|
|
@ -0,0 +1,285 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Server.Engines.Craft.Anvil]
|
||||
public class AnvilComponent : AddonComponent
|
||||
{
|
||||
[Constructable]
|
||||
public AnvilComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public AnvilComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Server.Engines.Craft.Forge]
|
||||
public class ForgeComponent : AddonComponent
|
||||
{
|
||||
[Constructable]
|
||||
public ForgeComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public ForgeComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LocalizedAddonComponent : AddonComponent
|
||||
{
|
||||
private int m_LabelNumber;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Number
|
||||
{
|
||||
get{ return m_LabelNumber; }
|
||||
set{ m_LabelNumber = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
public override int LabelNumber{ get{ return m_LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public LocalizedAddonComponent( int itemID, int labelNumber ) : base( itemID )
|
||||
{
|
||||
m_LabelNumber = labelNumber;
|
||||
}
|
||||
|
||||
public LocalizedAddonComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
|
||||
writer.Write( (int) m_LabelNumber );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_LabelNumber = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class AddonComponent : Item, IChopable
|
||||
{
|
||||
private Point3D m_Offset;
|
||||
private BaseAddon m_Addon;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public BaseAddon Addon
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Addon;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Addon = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Point3D Offset
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Offset;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Offset = value;
|
||||
}
|
||||
}
|
||||
|
||||
[Hue, CommandProperty( AccessLevel.GameMaster )]
|
||||
public override int Hue
|
||||
{
|
||||
get
|
||||
{
|
||||
return base.Hue;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.Hue = value;
|
||||
|
||||
if ( m_Addon != null && m_Addon.ShareHue )
|
||||
m_Addon.Hue = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool NeedsWall{ get{ return false; } }
|
||||
public virtual Point3D WallPosition{ get{ return Point3D.Zero; } }
|
||||
|
||||
[Constructable]
|
||||
public AddonComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
Movable = false;
|
||||
ApplyLightTo( this );
|
||||
}
|
||||
|
||||
public AddonComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( m_Addon != null )
|
||||
m_Addon.OnComponentUsed( this, from );
|
||||
}
|
||||
|
||||
public void OnChop( Mobile from )
|
||||
{
|
||||
if ( m_Addon != null && from.InRange( GetWorldLocation(), 3 ) )
|
||||
m_Addon.OnChop( from );
|
||||
else
|
||||
from.SendLocalizedMessage( 500446 ); // That is too far away.
|
||||
}
|
||||
|
||||
public override void OnLocationChange( Point3D old )
|
||||
{
|
||||
if ( m_Addon != null )
|
||||
m_Addon.Location = new Point3D( X - m_Offset.X, Y - m_Offset.Y, Z - m_Offset.Z );
|
||||
}
|
||||
|
||||
public override void OnMapChange()
|
||||
{
|
||||
if ( m_Addon != null )
|
||||
m_Addon.Map = Map;
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if ( m_Addon != null )
|
||||
m_Addon.Delete();
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( m_Addon );
|
||||
writer.Write( m_Offset );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
case 0:
|
||||
{
|
||||
m_Addon = reader.ReadItem() as BaseAddon;
|
||||
m_Offset = reader.ReadPoint3D();
|
||||
|
||||
if ( m_Addon != null )
|
||||
m_Addon.OnComponentLoaded( this );
|
||||
|
||||
ApplyLightTo( this );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( version < 1 && Weight == 0 )
|
||||
Weight = -1;
|
||||
}
|
||||
|
||||
public static void ApplyLightTo( Item item )
|
||||
{
|
||||
if ( (item.ItemData.Flags & TileFlag.LightSource) == 0 )
|
||||
return; // not a light source
|
||||
|
||||
int itemID = item.ItemID;
|
||||
|
||||
for ( int i = 0; i < m_Entries.Length; ++i )
|
||||
{
|
||||
LightEntry entry = m_Entries[i];
|
||||
int[] toMatch = entry.m_ItemIDs;
|
||||
bool contains = false;
|
||||
|
||||
for ( int j = 0; !contains && j < toMatch.Length; ++j )
|
||||
contains = ( itemID == toMatch[j] );
|
||||
|
||||
if ( contains )
|
||||
{
|
||||
item.Light = entry.m_Light;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static LightEntry[] m_Entries = new LightEntry[]
|
||||
{
|
||||
new LightEntry( LightType.WestSmall, 1122, 1123, 1124, 1141, 1142, 1143, 1144, 1145, 1146, 2347, 2359, 2360, 2361, 2362, 2363, 2364, 2387, 2388, 2389, 2390, 2391, 2392 ),
|
||||
new LightEntry( LightType.NorthSmall, 1131, 1133, 1134, 1147, 1148, 1149, 1150, 1151, 1152, 2352, 2373, 2374, 2375, 2376, 2377, 2378, 2401, 2402, 2403, 2404, 2405, 2406 ),
|
||||
new LightEntry( LightType.Circle300, 6526, 6538, 6571 ),
|
||||
new LightEntry( LightType.Circle150, 5703, 6587 )
|
||||
};
|
||||
|
||||
private class LightEntry
|
||||
{
|
||||
public LightType m_Light;
|
||||
public int[] m_ItemIDs;
|
||||
|
||||
public LightEntry( LightType light, params int[] itemIDs )
|
||||
{
|
||||
m_Light = light;
|
||||
m_ItemIDs = itemIDs;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
171
Scripts/Items/Addons/AddonContainerComponent.cs
Normal file
171
Scripts/Items/Addons/AddonContainerComponent.cs
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.ContextMenus;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AddonContainerComponent : Item, IChopable
|
||||
{
|
||||
public virtual bool NeedsWall { get { return false; } }
|
||||
public virtual Point3D WallPosition { get { return Point3D.Zero; } }
|
||||
|
||||
private Point3D m_Offset;
|
||||
private BaseAddonContainer m_Addon;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public BaseAddonContainer Addon
|
||||
{
|
||||
get { return m_Addon; }
|
||||
set { m_Addon = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Point3D Offset
|
||||
{
|
||||
get { return m_Offset; }
|
||||
set { m_Offset = value; }
|
||||
}
|
||||
|
||||
[Hue, CommandProperty( AccessLevel.GameMaster )]
|
||||
public override int Hue
|
||||
{
|
||||
get { return base.Hue; }
|
||||
set
|
||||
{
|
||||
base.Hue = value;
|
||||
|
||||
if ( m_Addon != null && m_Addon.ShareHue )
|
||||
m_Addon.Hue = value;
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public AddonContainerComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
Movable = false;
|
||||
|
||||
AddonComponent.ApplyLightTo( this );
|
||||
}
|
||||
|
||||
public AddonContainerComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnDragDrop( Mobile from, Item dropped )
|
||||
{
|
||||
if ( Addon != null )
|
||||
return Addon.OnDragDrop( from, dropped );
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( m_Addon != null )
|
||||
m_Addon.OnComponentUsed( this, from );
|
||||
}
|
||||
|
||||
public override void OnLocationChange( Point3D old )
|
||||
{
|
||||
if ( m_Addon != null )
|
||||
m_Addon.Location = new Point3D( X - m_Offset.X, Y - m_Offset.Y, Z - m_Offset.Z );
|
||||
}
|
||||
|
||||
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
|
||||
{
|
||||
if ( m_Addon != null )
|
||||
m_Addon.GetContextMenuEntries( from, list );
|
||||
}
|
||||
|
||||
public override void OnMapChange()
|
||||
{
|
||||
if ( m_Addon != null )
|
||||
m_Addon.Map = Map;
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if ( m_Addon != null )
|
||||
m_Addon.Delete();
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
|
||||
writer.Write( m_Addon );
|
||||
writer.Write( m_Offset );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_Addon = reader.ReadItem() as BaseAddonContainer;
|
||||
m_Offset = reader.ReadPoint3D();
|
||||
|
||||
if ( m_Addon != null )
|
||||
m_Addon.OnComponentLoaded( this );
|
||||
|
||||
AddonComponent.ApplyLightTo( this );
|
||||
}
|
||||
|
||||
public virtual void OnChop( Mobile from )
|
||||
{
|
||||
if ( m_Addon != null && from.InRange( GetWorldLocation(), 3 ) )
|
||||
m_Addon.OnChop( from );
|
||||
else
|
||||
from.SendLocalizedMessage( 500446 ); // That is too far away.
|
||||
}
|
||||
}
|
||||
|
||||
public class LocalizedContainerComponent : AddonContainerComponent
|
||||
{
|
||||
private int m_LabelNumber;
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
if ( m_LabelNumber > 0 )
|
||||
return m_LabelNumber;
|
||||
|
||||
return base.LabelNumber;
|
||||
}
|
||||
}
|
||||
|
||||
public LocalizedContainerComponent( int itemID, int labelNumber ) : base( itemID )
|
||||
{
|
||||
m_LabelNumber = labelNumber;
|
||||
}
|
||||
|
||||
public LocalizedContainerComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
|
||||
writer.Write( m_LabelNumber );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_LabelNumber = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/AlchemistTableEastAddon.cs
Normal file
63
Scripts/Items/Addons/AlchemistTableEastAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AlchemistTableEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new AlchemistTableEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public AlchemistTableEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2DD3 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public AlchemistTableEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 1 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class AlchemistTableEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new AlchemistTableEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073397; } } // alchemist table (east)
|
||||
|
||||
[Constructable]
|
||||
public AlchemistTableEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public AlchemistTableEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/AlchemistTableSouthAddon.cs
Normal file
63
Scripts/Items/Addons/AlchemistTableSouthAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AlchemistTableSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new AlchemistTableSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public AlchemistTableSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2DD4 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public AlchemistTableSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 1 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class AlchemistTableSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new AlchemistTableSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073396; } } // alchemist table (south)
|
||||
|
||||
[Constructable]
|
||||
public AlchemistTableSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public AlchemistTableSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/AnvilEastAddon.cs
Normal file
63
Scripts/Items/Addons/AnvilEastAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AnvilEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new AnvilEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public AnvilEastAddon()
|
||||
{
|
||||
AddComponent( new AnvilComponent( 0xFAF ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public AnvilEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class AnvilEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new AnvilEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044333; } } // anvil (east)
|
||||
|
||||
[Constructable]
|
||||
public AnvilEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public AnvilEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/AnvilSouthAddon.cs
Normal file
63
Scripts/Items/Addons/AnvilSouthAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AnvilSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new AnvilSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public AnvilSouthAddon()
|
||||
{
|
||||
AddComponent( new AnvilComponent( 0xFB0 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public AnvilSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class AnvilSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new AnvilSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044334; } } // anvil (south)
|
||||
|
||||
[Constructable]
|
||||
public AnvilSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public AnvilSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ArcaneBookshelfEastAddon.cs
Normal file
64
Scripts/Items/Addons/ArcaneBookshelfEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ArcaneBookshelfEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ArcaneBookshelfEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ArcaneBookshelfEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3084 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3085 ), -1, 0, 0 );
|
||||
}
|
||||
|
||||
public ArcaneBookshelfEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ArcaneBookshelfEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ArcaneBookshelfEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073371; } } // arcane bookshelf (east)
|
||||
|
||||
[Constructable]
|
||||
public ArcaneBookshelfEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ArcaneBookshelfEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ArcaneBookshelfSouthAddon.cs
Normal file
64
Scripts/Items/Addons/ArcaneBookshelfSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ArcaneBookshelfSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ArcaneBookshelfSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ArcaneBookshelfSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3087 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3086 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public ArcaneBookshelfSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ArcaneBookshelfSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ArcaneBookshelfSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072871; } } // arcane bookshelf (south)
|
||||
|
||||
[Constructable]
|
||||
public ArcaneBookshelfSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ArcaneBookshelfSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Scripts/Items/Addons/ArcaneCircleAddon.cs
Normal file
87
Scripts/Items/Addons/ArcaneCircleAddon.cs
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ArcaneCircleAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ArcaneCircleDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ArcaneCircleAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3083 ), -1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x3080 ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3082 ), 0, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x3081 ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x307D ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x307F ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x307E ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x307C ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x307B ), 1, 1, 0 );
|
||||
}
|
||||
|
||||
public ArcaneCircleAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 1 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
if ( version == 0 )
|
||||
ValidationQueue<ArcaneCircleAddon>.Add( this );
|
||||
}
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
if ( c.ItemID == 0x3083 )
|
||||
{
|
||||
c.Offset = new Point3D( -1, -1, 0 );
|
||||
c.MoveToWorld( new Point3D( X + c.Offset.X, Y + c.Offset.Y, Z + c.Offset.Z ), Map );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ArcaneCircleDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ArcaneCircleAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072703; } } // arcane circle
|
||||
|
||||
[Constructable]
|
||||
public ArcaneCircleDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ArcaneCircleDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/ArcanistStatueEastAddon.cs
Normal file
63
Scripts/Items/Addons/ArcanistStatueEastAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ArcanistStatueEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ArcanistStatueEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ArcanistStatueEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2D0E ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ArcanistStatueEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ArcanistStatueEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ArcanistStatueEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072886; } } // arcanist statue (east)
|
||||
|
||||
[Constructable]
|
||||
public ArcanistStatueEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ArcanistStatueEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/ArcanistStatueSouthAddon.cs
Normal file
63
Scripts/Items/Addons/ArcanistStatueSouthAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ArcanistStatueSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ArcanistStatueSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ArcanistStatueSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2D0F ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ArcanistStatueSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ArcanistStatueSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ArcanistStatueSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072885; } } // arcanist statue (south)
|
||||
|
||||
[Constructable]
|
||||
public ArcanistStatueSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ArcanistStatueSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
367
Scripts/Items/Addons/ArcheryButteAddon.cs
Normal file
367
Scripts/Items/Addons/ArcheryButteAddon.cs
Normal file
|
|
@ -0,0 +1,367 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAttribute( 0x100A/*East*/, 0x100B/*South*/ )]
|
||||
public class ArcheryButte : AddonComponent
|
||||
{
|
||||
private double m_MinSkill;
|
||||
private double m_MaxSkill;
|
||||
|
||||
private int m_Arrows, m_Bolts;
|
||||
|
||||
private DateTime m_LastUse;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double MinSkill
|
||||
{
|
||||
get{ return m_MinSkill; }
|
||||
set{ m_MinSkill = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double MaxSkill
|
||||
{
|
||||
get{ return m_MaxSkill; }
|
||||
set{ m_MaxSkill = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public DateTime LastUse
|
||||
{
|
||||
get{ return m_LastUse; }
|
||||
set{ m_LastUse = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool FacingEast
|
||||
{
|
||||
get{ return ( ItemID == 0x100A ); }
|
||||
set{ ItemID = value ? 0x100A : 0x100B; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Arrows
|
||||
{
|
||||
get{ return m_Arrows; }
|
||||
set{ m_Arrows = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Bolts
|
||||
{
|
||||
get{ return m_Bolts; }
|
||||
set{ m_Bolts = value; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public ArcheryButte() : this( 0x100A )
|
||||
{
|
||||
}
|
||||
|
||||
public ArcheryButte( int itemID ) : base( itemID )
|
||||
{
|
||||
m_MinSkill = -25.0;
|
||||
m_MaxSkill = +25.0;
|
||||
}
|
||||
|
||||
public ArcheryButte( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( (m_Arrows > 0 || m_Bolts > 0) && from.InRange( GetWorldLocation(), 1 ) )
|
||||
Gather( from );
|
||||
else
|
||||
Fire( from );
|
||||
}
|
||||
|
||||
public void Gather( Mobile from )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500592 ); // You gather the arrows and bolts.
|
||||
|
||||
if ( m_Arrows > 0 )
|
||||
from.AddToBackpack( new Arrow( m_Arrows ) );
|
||||
|
||||
if ( m_Bolts > 0 )
|
||||
from.AddToBackpack( new Bolt( m_Bolts ) );
|
||||
|
||||
m_Arrows = 0;
|
||||
m_Bolts = 0;
|
||||
|
||||
m_Entries = null;
|
||||
}
|
||||
|
||||
private static TimeSpan UseDelay = TimeSpan.FromSeconds( 2.0 );
|
||||
|
||||
private class ScoreEntry
|
||||
{
|
||||
private int m_Total;
|
||||
private int m_Count;
|
||||
|
||||
public int Total{ get{ return m_Total; } set{ m_Total = value; } }
|
||||
public int Count{ get{ return m_Count; } set{ m_Count = value; } }
|
||||
|
||||
public void Record( int score )
|
||||
{
|
||||
m_Total += score;
|
||||
m_Count += 1;
|
||||
}
|
||||
|
||||
public ScoreEntry()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private Hashtable m_Entries;
|
||||
|
||||
private ScoreEntry GetEntryFor( Mobile from )
|
||||
{
|
||||
if ( m_Entries == null )
|
||||
m_Entries = new Hashtable();
|
||||
|
||||
ScoreEntry e = (ScoreEntry)m_Entries[from];
|
||||
|
||||
if ( e == null )
|
||||
m_Entries[from] = e = new ScoreEntry();
|
||||
|
||||
return e;
|
||||
}
|
||||
|
||||
public void Fire( Mobile from )
|
||||
{
|
||||
BaseRanged bow = from.Weapon as BaseRanged;
|
||||
|
||||
if ( bow == null )
|
||||
{
|
||||
SendLocalizedMessageTo( from, 500593 ); // You must practice with ranged weapons on this.
|
||||
return;
|
||||
}
|
||||
|
||||
if ( DateTime.UtcNow < (m_LastUse + UseDelay) )
|
||||
return;
|
||||
|
||||
Point3D worldLoc = GetWorldLocation();
|
||||
|
||||
if ( FacingEast ? from.X <= worldLoc.X : from.Y <= worldLoc.Y )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500596 ); // You would do better to stand in front of the archery butte.
|
||||
return;
|
||||
}
|
||||
|
||||
if ( FacingEast ? from.Y != worldLoc.Y : from.X != worldLoc.X )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500597 ); // You aren't properly lined up with the archery butte to get an accurate shot.
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !from.InRange( worldLoc, 6 ) )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500598 ); // You are too far away from the archery butte to get an accurate shot.
|
||||
return;
|
||||
}
|
||||
else if ( from.InRange( worldLoc, 4 ) )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500599 ); // You are too close to the target.
|
||||
return;
|
||||
}
|
||||
|
||||
Container pack = from.Backpack;
|
||||
Type ammoType = bow.AmmoType;
|
||||
|
||||
bool isArrow = ( ammoType == typeof( Arrow ) );
|
||||
bool isBolt = ( ammoType == typeof( Bolt ) );
|
||||
bool isKnown = ( isArrow || isBolt );
|
||||
|
||||
if ( pack == null || !pack.ConsumeTotal( ammoType, 1 ) )
|
||||
{
|
||||
if ( isArrow )
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500594 ); // You do not have any arrows with which to practice.
|
||||
else if ( isBolt )
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500595 ); // You do not have any crossbow bolts with which to practice.
|
||||
else
|
||||
SendLocalizedMessageTo( from, 500593 ); // You must practice with ranged weapons on this.
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_LastUse = DateTime.UtcNow;
|
||||
|
||||
from.Direction = from.GetDirectionTo( GetWorldLocation() );
|
||||
bow.PlaySwingAnimation( from );
|
||||
from.MovingEffect( this, bow.EffectID, 18, 1, false, false );
|
||||
|
||||
ScoreEntry se = GetEntryFor( from );
|
||||
|
||||
if ( !from.CheckSkill( bow.Skill, m_MinSkill, m_MaxSkill ) )
|
||||
{
|
||||
from.PlaySound( bow.MissSound );
|
||||
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 500604, from.Name ); // You miss the target altogether.
|
||||
|
||||
se.Record( 0 );
|
||||
|
||||
if ( se.Count == 1 )
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1062719, se.Total.ToString() );
|
||||
else
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1042683, String.Format( "{0}\t{1}", se.Total, se.Count ) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Effects.PlaySound( Location, Map, 0x2B1 );
|
||||
|
||||
double rand = Utility.RandomDouble();
|
||||
|
||||
int area, score, splitScore;
|
||||
|
||||
if ( 0.10 > rand )
|
||||
{
|
||||
area = 0; // bullseye
|
||||
score = 50;
|
||||
splitScore = 100;
|
||||
}
|
||||
else if ( 0.25 > rand )
|
||||
{
|
||||
area = 1; // inner ring
|
||||
score = 10;
|
||||
splitScore = 20;
|
||||
}
|
||||
else if ( 0.50 > rand )
|
||||
{
|
||||
area = 2; // middle ring
|
||||
score = 5;
|
||||
splitScore = 15;
|
||||
}
|
||||
else
|
||||
{
|
||||
area = 3; // outer ring
|
||||
score = 2;
|
||||
splitScore = 5;
|
||||
}
|
||||
|
||||
bool split = ( isKnown && ((m_Arrows + m_Bolts) * 0.02) > Utility.RandomDouble() );
|
||||
|
||||
if ( split )
|
||||
{
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1010027 + area, String.Format( "{0}\t{1}", from.Name, isArrow ? "arrow" : "bolt" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1010035 + area, from.Name );
|
||||
|
||||
if ( isArrow )
|
||||
++m_Arrows;
|
||||
else if ( isBolt )
|
||||
++m_Bolts;
|
||||
}
|
||||
|
||||
se.Record( split ? splitScore : score );
|
||||
|
||||
if ( se.Count == 1 )
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1062719, se.Total.ToString() );
|
||||
else
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1042683, String.Format( "{0}\t{1}", se.Total, se.Count ) );
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
|
||||
writer.Write( m_MinSkill );
|
||||
writer.Write( m_MaxSkill );
|
||||
writer.Write( m_Arrows );
|
||||
writer.Write( m_Bolts );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_MinSkill = reader.ReadDouble();
|
||||
m_MaxSkill = reader.ReadDouble();
|
||||
m_Arrows = reader.ReadInt();
|
||||
m_Bolts = reader.ReadInt();
|
||||
|
||||
if ( m_MinSkill == 0.0 && m_MaxSkill == 30.0 )
|
||||
{
|
||||
m_MinSkill = -25.0;
|
||||
m_MaxSkill = +25.0;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ArcheryButteAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ArcheryButteDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ArcheryButteAddon()
|
||||
{
|
||||
AddComponent( new ArcheryButte( 0x100A ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ArcheryButteAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ArcheryButteDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ArcheryButteAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1024106; } } // archery butte
|
||||
|
||||
[Constructable]
|
||||
public ArcheryButteDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ArcheryButteDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
392
Scripts/Items/Addons/BallotBox.cs
Normal file
392
Scripts/Items/Addons/BallotBox.cs
Normal file
|
|
@ -0,0 +1,392 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
using Server.Prompts;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BallotBox : AddonComponent
|
||||
{
|
||||
public static readonly int MaxTopicLines = 6;
|
||||
|
||||
public override int LabelNumber{ get{ return 1041006; } } // a ballot box
|
||||
|
||||
private string[] m_Topic;
|
||||
private List<Mobile> m_Yes;
|
||||
private List<Mobile> m_No;
|
||||
|
||||
public string[] Topic
|
||||
{
|
||||
get{ return m_Topic; }
|
||||
}
|
||||
|
||||
public List<Mobile> Yes
|
||||
{
|
||||
get{ return m_Yes; }
|
||||
}
|
||||
|
||||
public List<Mobile> No
|
||||
{
|
||||
get{ return m_No; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public BallotBox() : base( 0x9A8 )
|
||||
{
|
||||
m_Topic = new string[0];
|
||||
m_Yes = new List<Mobile>();
|
||||
m_No = new List<Mobile>();
|
||||
}
|
||||
|
||||
public BallotBox( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public void ClearTopic()
|
||||
{
|
||||
m_Topic = new string[0];
|
||||
|
||||
ClearVotes();
|
||||
}
|
||||
|
||||
public void AddLineToTopic( string line )
|
||||
{
|
||||
if ( m_Topic.Length >= MaxTopicLines )
|
||||
return;
|
||||
|
||||
string[] newTopic = new string[m_Topic.Length + 1];
|
||||
m_Topic.CopyTo( newTopic, 0 );
|
||||
newTopic[m_Topic.Length] = line;
|
||||
|
||||
m_Topic = newTopic;
|
||||
|
||||
ClearVotes();
|
||||
}
|
||||
|
||||
public void ClearVotes()
|
||||
{
|
||||
Yes.Clear();
|
||||
No.Clear();
|
||||
}
|
||||
|
||||
public bool IsOwner( Mobile from )
|
||||
{
|
||||
if ( from.AccessLevel >= AccessLevel.GameMaster )
|
||||
return true;
|
||||
|
||||
BaseHouse house = BaseHouse.FindHouseAt( this );
|
||||
return ( house != null && house.IsOwner( from ) );
|
||||
}
|
||||
|
||||
public bool HasVoted( Mobile from )
|
||||
{
|
||||
return ( Yes.Contains( from ) || No.Contains( from ) );
|
||||
}
|
||||
|
||||
public override bool OnDragDrop( Mobile from, Item dropped )
|
||||
{
|
||||
SendLocalizedMessageTo( from, 500369 ); // I'm a ballot box, not a container!
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( !from.InRange( this.GetWorldLocation(), 2 ) )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
else
|
||||
{
|
||||
bool isOwner = IsOwner( from );
|
||||
from.SendGump( new InternalGump( this, isOwner ) );
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalGump : Gump
|
||||
{
|
||||
private BallotBox m_Box;
|
||||
|
||||
public InternalGump( BallotBox box, bool isOwner ) : base( 110, 70 )
|
||||
{
|
||||
m_Box = box;
|
||||
|
||||
AddBackground( 0, 0, 400, 350, 0xA28 );
|
||||
|
||||
if ( isOwner )
|
||||
AddHtmlLocalized( 0, 15, 400, 35, 1011000, false, false ); // <center>Ballot Box Owner's Menu</center>
|
||||
else
|
||||
AddHtmlLocalized( 0, 15, 400, 35, 1011001, false, false ); // <center>Ballot Box -- Vote Here!</center>
|
||||
|
||||
AddHtmlLocalized( 0, 50, 400, 35, 1011002, false, false ); // <center>Topic</center>
|
||||
|
||||
int lineCount = box.Topic.Length;
|
||||
AddBackground( 25, 90, 350, Math.Max( 20 * lineCount, 20 ), 0x1400 );
|
||||
|
||||
for ( int i = 0; i < lineCount; i++ )
|
||||
{
|
||||
string line = box.Topic[i];
|
||||
|
||||
if ( !String.IsNullOrEmpty( line ) )
|
||||
AddLabelCropped( 30, 90 + i * 20, 340, 20, 0x3E3, line );
|
||||
}
|
||||
|
||||
int yesCount = box.Yes.Count;
|
||||
int noCount = box.No.Count;
|
||||
int totalVotes = yesCount + noCount;
|
||||
|
||||
AddHtmlLocalized( 0, 215, 400, 35, 1011003, false, false ); // <center>votes</center>
|
||||
|
||||
if ( !isOwner )
|
||||
AddButton( 20, 240, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 55, 242, 25, 35, 1011004, false, false ); // aye:
|
||||
AddLabel( 78, 242, 0x0, String.Format( "[{0}]", yesCount ) );
|
||||
|
||||
if ( !isOwner )
|
||||
AddButton( 20, 275, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 55, 277, 25, 35, 1011005, false, false ); // nay:
|
||||
AddLabel( 78, 277, 0x0, String.Format( "[{0}]", noCount ) );
|
||||
|
||||
if ( totalVotes > 0 )
|
||||
{
|
||||
AddImageTiled( 130, 242, ( yesCount * 225 ) / totalVotes, 10, 0xD6 );
|
||||
AddImageTiled( 130, 277, ( noCount * 225 ) / totalVotes, 10, 0xD6 );
|
||||
}
|
||||
|
||||
AddButton( 45, 305, 0xFA5, 0xFA7, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 80, 308, 40, 35, 1011008, false, false ); // done
|
||||
|
||||
if ( isOwner )
|
||||
{
|
||||
AddButton( 120, 305, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 155, 308, 100, 35, 1011006, false, false ); // change topic
|
||||
|
||||
AddButton( 240, 305, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 275, 308, 300, 100, 1011007, false, false ); // reset votes
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Box.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
Mobile from = sender.Mobile;
|
||||
|
||||
if ( from.Map != m_Box.Map || !from.InRange( m_Box.GetWorldLocation(), 2 ) )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
return;
|
||||
}
|
||||
|
||||
bool isOwner = m_Box.IsOwner( from );
|
||||
|
||||
switch ( info.ButtonID )
|
||||
{
|
||||
case 1: // change topic
|
||||
{
|
||||
if ( isOwner )
|
||||
{
|
||||
m_Box.ClearTopic();
|
||||
|
||||
from.SendLocalizedMessage( 500370, "", 0x35 ); // Enter a line of text for your ballot, and hit ENTER. Hit ESC after the last line is entered.
|
||||
from.Prompt = new TopicPrompt( m_Box );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 2: // reset votes
|
||||
{
|
||||
if ( isOwner )
|
||||
{
|
||||
m_Box.ClearVotes();
|
||||
from.SendLocalizedMessage( 500371 ); // Votes zeroed out.
|
||||
}
|
||||
|
||||
goto default;
|
||||
}
|
||||
case 3: // aye
|
||||
{
|
||||
if ( !isOwner )
|
||||
{
|
||||
if ( m_Box.HasVoted( from ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 500374 ); // You have already voted on this ballot.
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Box.Yes.Add( from );
|
||||
from.SendLocalizedMessage( 500373 ); // Your vote has been registered.
|
||||
}
|
||||
}
|
||||
|
||||
goto default;
|
||||
}
|
||||
case 4: // nay
|
||||
{
|
||||
if ( !isOwner )
|
||||
{
|
||||
if ( m_Box.HasVoted( from ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 500374 ); // You have already voted on this ballot.
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Box.No.Add( from );
|
||||
from.SendLocalizedMessage( 500373 ); // Your vote has been registered.
|
||||
}
|
||||
}
|
||||
|
||||
goto default;
|
||||
}
|
||||
default:
|
||||
{
|
||||
from.SendGump( new InternalGump( m_Box, isOwner ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class TopicPrompt : Prompt
|
||||
{
|
||||
private BallotBox m_Box;
|
||||
|
||||
public TopicPrompt( BallotBox box )
|
||||
{
|
||||
m_Box = box;
|
||||
}
|
||||
|
||||
public override void OnResponse( Mobile from, string text )
|
||||
{
|
||||
if ( m_Box.Deleted || !m_Box.IsOwner( from ) )
|
||||
return;
|
||||
|
||||
if ( from.Map != m_Box.Map || !from.InRange( m_Box.GetWorldLocation(), 2 ) )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
return;
|
||||
}
|
||||
|
||||
m_Box.AddLineToTopic( text.TrimEnd() );
|
||||
|
||||
if ( m_Box.Topic.Length < MaxTopicLines )
|
||||
{
|
||||
from.SendLocalizedMessage( 500377, "", 0x35 ); // Next line or ESC to finish:
|
||||
from.Prompt = new TopicPrompt( m_Box );
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 500376, "", 0x35 ); // Ballot entry complete.
|
||||
from.SendGump( new InternalGump( m_Box, true ) );
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnCancel( Mobile from )
|
||||
{
|
||||
if ( m_Box.Deleted || !m_Box.IsOwner( from ) )
|
||||
return;
|
||||
|
||||
if ( from.Map != m_Box.Map || !from.InRange( m_Box.GetWorldLocation(), 2 ) )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
return;
|
||||
}
|
||||
|
||||
from.SendLocalizedMessage( 500376, "", 0x35 ); // Ballot entry complete.
|
||||
from.SendGump( new InternalGump( m_Box, true ) );
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
|
||||
writer.WriteEncodedInt( m_Topic.Length );
|
||||
|
||||
for ( int i = 0; i < m_Topic.Length; i++ )
|
||||
writer.Write( (string) m_Topic[i] );
|
||||
|
||||
writer.Write( m_Yes, true );
|
||||
writer.Write( m_No, true );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_Topic = new string[reader.ReadEncodedInt()];
|
||||
|
||||
for ( int i = 0; i < m_Topic.Length; i++ )
|
||||
m_Topic[i] = reader.ReadString();
|
||||
|
||||
m_Yes = reader.ReadStrongMobileList();
|
||||
m_No = reader.ReadStrongMobileList();
|
||||
}
|
||||
}
|
||||
|
||||
public class BallotBoxAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new BallotBoxDeed(); } }
|
||||
|
||||
public BallotBoxAddon()
|
||||
{
|
||||
AddComponent( new BallotBox(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BallotBoxAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BallotBoxDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new BallotBoxAddon(); } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1044327; } } // ballot box
|
||||
|
||||
[Constructable]
|
||||
public BallotBoxDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public BallotBoxDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
296
Scripts/Items/Addons/BaseAddon.cs
Normal file
296
Scripts/Items/Addons/BaseAddon.cs
Normal file
|
|
@ -0,0 +1,296 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
using Server.Regions;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum AddonFitResult
|
||||
{
|
||||
Valid,
|
||||
Blocked,
|
||||
NotInHouse,
|
||||
DoorTooClose,
|
||||
NoWall,
|
||||
DoorsNotClosed
|
||||
}
|
||||
|
||||
public interface IAddon
|
||||
{
|
||||
Item Deed{ get; }
|
||||
|
||||
bool CouldFit( IPoint3D p, Map map );
|
||||
}
|
||||
|
||||
public abstract class BaseAddon : Item, IChopable, IAddon
|
||||
{
|
||||
#region Mondain's Legacy
|
||||
private CraftResource m_Resource;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftResource Resource
|
||||
{
|
||||
get{ return m_Resource; }
|
||||
set
|
||||
{
|
||||
if ( m_Resource != value )
|
||||
{
|
||||
m_Resource = value;
|
||||
Hue = CraftResources.GetHue( m_Resource );
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
private List<AddonComponent> m_Components;
|
||||
|
||||
public void AddComponent( AddonComponent c, int x, int y, int z )
|
||||
{
|
||||
if ( Deleted )
|
||||
return;
|
||||
|
||||
m_Components.Add( c );
|
||||
|
||||
c.Addon = this;
|
||||
c.Offset = new Point3D( x, y, z );
|
||||
c.MoveToWorld( new Point3D( X + x, Y + y, Z + z ), Map );
|
||||
}
|
||||
|
||||
public BaseAddon() : base( 1 )
|
||||
{
|
||||
Movable = false;
|
||||
Visible = false;
|
||||
|
||||
m_Components = new List<AddonComponent>();
|
||||
}
|
||||
|
||||
public virtual bool RetainDeedHue{ get{ return false; } }
|
||||
|
||||
public virtual void OnChop( Mobile from )
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt( this );
|
||||
|
||||
if ( house != null && house.IsOwner( from ) && house.Addons.Contains( this ) )
|
||||
{
|
||||
Effects.PlaySound( GetWorldLocation(), Map, 0x3B3 );
|
||||
from.SendLocalizedMessage( 500461 ); // You destroy the item.
|
||||
|
||||
int hue = 0;
|
||||
|
||||
if ( RetainDeedHue )
|
||||
{
|
||||
for ( int i = 0; hue == 0 && i < m_Components.Count; ++i )
|
||||
{
|
||||
AddonComponent c = m_Components[i];
|
||||
|
||||
if ( c.Hue != 0 )
|
||||
hue = c.Hue;
|
||||
}
|
||||
}
|
||||
|
||||
Delete();
|
||||
|
||||
house.Addons.Remove( this );
|
||||
|
||||
BaseAddonDeed deed = Deed;
|
||||
|
||||
if ( deed != null )
|
||||
{
|
||||
if ( RetainDeedHue )
|
||||
deed.Hue = hue;
|
||||
|
||||
from.AddToBackpack( deed );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual BaseAddonDeed Deed{ get{ return null; } }
|
||||
|
||||
Item IAddon.Deed
|
||||
{
|
||||
get{ return this.Deed; }
|
||||
}
|
||||
|
||||
public List<AddonComponent> Components
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Components;
|
||||
}
|
||||
}
|
||||
|
||||
public BaseAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public bool CouldFit( IPoint3D p, Map map )
|
||||
{
|
||||
BaseHouse h = null;
|
||||
return ( CouldFit( p, map, null, ref h ) == AddonFitResult.Valid );
|
||||
}
|
||||
|
||||
public virtual AddonFitResult CouldFit( IPoint3D p, Map map, Mobile from, ref BaseHouse house )
|
||||
{
|
||||
if ( Deleted )
|
||||
return AddonFitResult.Blocked;
|
||||
|
||||
foreach ( AddonComponent c in m_Components )
|
||||
{
|
||||
Point3D p3D = new Point3D( p.X + c.Offset.X, p.Y + c.Offset.Y, p.Z + c.Offset.Z );
|
||||
|
||||
if ( !map.CanFit( p3D.X, p3D.Y, p3D.Z, c.ItemData.Height, false, true, ( c.Z == 0 ) ) )
|
||||
return AddonFitResult.Blocked;
|
||||
else if ( !CheckHouse( from, p3D, map, c.ItemData.Height, ref house ) )
|
||||
return AddonFitResult.NotInHouse;
|
||||
|
||||
if ( c.NeedsWall )
|
||||
{
|
||||
Point3D wall = c.WallPosition;
|
||||
|
||||
if ( !IsWall( p3D.X + wall.X, p3D.Y + wall.Y, p3D.Z + wall.Z, map ) )
|
||||
return AddonFitResult.NoWall;
|
||||
}
|
||||
}
|
||||
|
||||
ArrayList doors = house.Doors;
|
||||
|
||||
for ( int i = 0; i < doors.Count; ++i )
|
||||
{
|
||||
BaseDoor door = doors[i] as BaseDoor;
|
||||
|
||||
Point3D doorLoc = door.GetWorldLocation();
|
||||
int doorHeight = door.ItemData.CalcHeight;
|
||||
|
||||
foreach ( AddonComponent c in m_Components )
|
||||
{
|
||||
Point3D addonLoc = new Point3D( p.X + c.Offset.X, p.Y + c.Offset.Y, p.Z + c.Offset.Z );
|
||||
int addonHeight = c.ItemData.CalcHeight;
|
||||
|
||||
if ( Utility.InRange( doorLoc, addonLoc, 1 ) && (addonLoc.Z == doorLoc.Z || ((addonLoc.Z + addonHeight) > doorLoc.Z && (doorLoc.Z + doorHeight) > addonLoc.Z)) )
|
||||
return AddonFitResult.DoorTooClose;
|
||||
}
|
||||
}
|
||||
|
||||
return AddonFitResult.Valid;
|
||||
}
|
||||
|
||||
public static bool CheckHouse( Mobile from, Point3D p, Map map, int height, ref BaseHouse house )
|
||||
{
|
||||
house = BaseHouse.FindHouseAt( p, map, height );
|
||||
|
||||
if ( house == null || ( from != null && !house.IsOwner( from ) ) )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsWall( int x, int y, int z, Map map )
|
||||
{
|
||||
if ( map == null )
|
||||
return false;
|
||||
|
||||
StaticTile[] tiles = map.Tiles.GetStaticTiles( x, y, true );
|
||||
|
||||
for ( int i = 0; i < tiles.Length; ++i )
|
||||
{
|
||||
StaticTile t = tiles[i];
|
||||
ItemData id = TileData.ItemTable[t.ID & TileData.MaxItemValue];
|
||||
|
||||
if ( (id.Flags & TileFlag.Wall) != 0 && (z + 16) > t.Z && (t.Z + t.Height) > z )
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual void OnComponentLoaded( AddonComponent c )
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void OnComponentUsed( AddonComponent c, Mobile from )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnLocationChange( Point3D oldLoc )
|
||||
{
|
||||
if ( Deleted )
|
||||
return;
|
||||
|
||||
foreach ( AddonComponent c in m_Components )
|
||||
c.Location = new Point3D( X + c.Offset.X, Y + c.Offset.Y, Z + c.Offset.Z );
|
||||
}
|
||||
|
||||
public override void OnMapChange()
|
||||
{
|
||||
if ( Deleted )
|
||||
return;
|
||||
|
||||
foreach ( AddonComponent c in m_Components )
|
||||
c.Map = Map;
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
foreach ( AddonComponent c in m_Components )
|
||||
c.Delete();
|
||||
}
|
||||
|
||||
public virtual bool ShareHue{ get{ return true; } }
|
||||
|
||||
[Hue, CommandProperty( AccessLevel.GameMaster )]
|
||||
public override int Hue
|
||||
{
|
||||
get
|
||||
{
|
||||
return base.Hue;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ( base.Hue != value )
|
||||
{
|
||||
base.Hue = value;
|
||||
|
||||
if ( !Deleted && this.ShareHue && m_Components != null )
|
||||
{
|
||||
foreach ( AddonComponent c in m_Components )
|
||||
c.Hue = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.WriteItemList<AddonComponent>( m_Components );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
case 0:
|
||||
{
|
||||
m_Components = reader.ReadStrongItemList<AddonComponent>();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( version < 1 && Weight == 0 )
|
||||
Weight = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
307
Scripts/Items/Addons/BaseAddonContainer.cs
Normal file
307
Scripts/Items/Addons/BaseAddonContainer.cs
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
using Server.Regions;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseAddonContainer : BaseContainer, IChopable, IAddon
|
||||
{
|
||||
public override bool DisplayWeight { get { return false; } }
|
||||
|
||||
[Hue, CommandProperty( AccessLevel.GameMaster )]
|
||||
public override int Hue
|
||||
{
|
||||
get
|
||||
{
|
||||
return base.Hue;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ( base.Hue != value )
|
||||
{
|
||||
base.Hue = value;
|
||||
|
||||
if ( !Deleted && this.ShareHue && m_Components != null )
|
||||
{
|
||||
Hue = value;
|
||||
|
||||
foreach ( AddonContainerComponent c in m_Components )
|
||||
c.Hue = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private CraftResource m_Resource;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftResource Resource
|
||||
{
|
||||
get { return m_Resource; }
|
||||
set
|
||||
{
|
||||
if ( m_Resource != value )
|
||||
{
|
||||
m_Resource = value;
|
||||
Hue = CraftResources.GetHue( m_Resource );
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item IAddon.Deed
|
||||
{
|
||||
get { return this.Deed; }
|
||||
}
|
||||
|
||||
public virtual bool RetainDeedHue { get { return false; } }
|
||||
public virtual bool NeedsWall { get { return false; } }
|
||||
public virtual bool ShareHue { get { return true; } }
|
||||
public virtual Point3D WallPosition { get { return Point3D.Zero; } }
|
||||
public virtual BaseAddonContainerDeed Deed { get { return null; } }
|
||||
|
||||
private List<AddonContainerComponent> m_Components;
|
||||
|
||||
public List<AddonContainerComponent> Components
|
||||
{
|
||||
get { return m_Components; }
|
||||
}
|
||||
|
||||
public BaseAddonContainer( int itemID ) : base( itemID )
|
||||
{
|
||||
AddonComponent.ApplyLightTo( this );
|
||||
|
||||
m_Components = new List<AddonContainerComponent>();
|
||||
}
|
||||
|
||||
public BaseAddonContainer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnLocationChange( Point3D oldLoc )
|
||||
{
|
||||
base.OnLocationChange( oldLoc );
|
||||
|
||||
if ( Deleted )
|
||||
return;
|
||||
|
||||
foreach ( AddonContainerComponent c in m_Components )
|
||||
c.Location = new Point3D( X + c.Offset.X, Y + c.Offset.Y, Z + c.Offset.Z );
|
||||
}
|
||||
|
||||
public override void OnMapChange()
|
||||
{
|
||||
base.OnMapChange();
|
||||
|
||||
if ( Deleted )
|
||||
return;
|
||||
|
||||
foreach ( AddonContainerComponent c in m_Components )
|
||||
c.Map = Map;
|
||||
}
|
||||
|
||||
public override void OnDelete()
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt( this );
|
||||
|
||||
if ( house != null )
|
||||
house.Addons.Remove( this );
|
||||
|
||||
base.OnDelete();
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( !CraftResources.IsStandard( m_Resource ) )
|
||||
list.Add( CraftResources.GetLocalizationNumber( m_Resource ) );
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
foreach ( AddonContainerComponent c in m_Components )
|
||||
c.Delete();
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
|
||||
writer.WriteItemList<AddonContainerComponent>( m_Components );
|
||||
writer.Write( (int) m_Resource );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_Components = reader.ReadStrongItemList<AddonContainerComponent>();
|
||||
m_Resource = (CraftResource) reader.ReadInt();
|
||||
|
||||
AddonComponent.ApplyLightTo( this );
|
||||
}
|
||||
|
||||
public virtual void DropItemsToGround()
|
||||
{
|
||||
for ( int i = Items.Count - 1; i >= 0; i-- )
|
||||
Items[ i ].MoveToWorld( Location );
|
||||
}
|
||||
|
||||
public void AddComponent( AddonContainerComponent c, int x, int y, int z )
|
||||
{
|
||||
if ( Deleted )
|
||||
return;
|
||||
|
||||
m_Components.Add( c );
|
||||
|
||||
c.Addon = this;
|
||||
c.Offset = new Point3D( x, y, z );
|
||||
c.MoveToWorld( new Point3D( X + x, Y + y, Z + z ), Map );
|
||||
}
|
||||
|
||||
public AddonFitResult CouldFit( IPoint3D p, Map map, Mobile from, ref BaseHouse house )
|
||||
{
|
||||
if ( Deleted )
|
||||
return AddonFitResult.Blocked;
|
||||
|
||||
foreach ( AddonContainerComponent c in m_Components )
|
||||
{
|
||||
Point3D p3D = new Point3D( p.X + c.Offset.X, p.Y + c.Offset.Y, p.Z + c.Offset.Z );
|
||||
|
||||
if ( !map.CanFit( p3D.X, p3D.Y, p3D.Z, c.ItemData.Height, false, true, ( c.Z == 0 ) ) )
|
||||
return AddonFitResult.Blocked;
|
||||
else if ( !BaseAddon.CheckHouse( from, p3D, map, c.ItemData.Height, ref house ) )
|
||||
return AddonFitResult.NotInHouse;
|
||||
|
||||
if ( c.NeedsWall )
|
||||
{
|
||||
Point3D wall = c.WallPosition;
|
||||
|
||||
if ( !BaseAddon.IsWall( p3D.X + wall.X, p3D.Y + wall.Y, p3D.Z + wall.Z, map ) )
|
||||
return AddonFitResult.NoWall;
|
||||
}
|
||||
}
|
||||
|
||||
Point3D p3 = new Point3D( p.X, p.Y, p.Z );
|
||||
|
||||
if ( !map.CanFit( p3.X, p3.Y, p3.Z, ItemData.Height, false, true, ( Z == 0 ) ) )
|
||||
return AddonFitResult.Blocked;
|
||||
else if ( !BaseAddon.CheckHouse( from, p3, map, ItemData.Height, ref house ) )
|
||||
return AddonFitResult.NotInHouse;
|
||||
|
||||
if ( NeedsWall )
|
||||
{
|
||||
Point3D wall = WallPosition;
|
||||
|
||||
if ( !BaseAddon.IsWall( p3.X + wall.X, p3.Y + wall.Y, p3.Z + wall.Z, map ) )
|
||||
return AddonFitResult.NoWall;
|
||||
}
|
||||
|
||||
if ( house != null )
|
||||
{
|
||||
ArrayList doors = house.Doors;
|
||||
|
||||
for ( int i = 0; i < doors.Count; ++i )
|
||||
{
|
||||
BaseDoor door = doors[ i ] as BaseDoor;
|
||||
|
||||
if ( door != null && door.Open )
|
||||
return AddonFitResult.DoorsNotClosed;
|
||||
|
||||
Point3D doorLoc = door.GetWorldLocation();
|
||||
int doorHeight = door.ItemData.CalcHeight;
|
||||
|
||||
foreach ( AddonContainerComponent c in m_Components )
|
||||
{
|
||||
Point3D addonLoc = new Point3D( p.X + c.Offset.X, p.Y + c.Offset.Y, p.Z + c.Offset.Z );
|
||||
int addonHeight = c.ItemData.CalcHeight;
|
||||
|
||||
if ( Utility.InRange( doorLoc, addonLoc, 1 ) && ( addonLoc.Z == doorLoc.Z || ( ( addonLoc.Z + addonHeight ) > doorLoc.Z && ( doorLoc.Z + doorHeight ) > addonLoc.Z ) ) )
|
||||
return AddonFitResult.DoorTooClose;
|
||||
}
|
||||
|
||||
Point3D addonLo = new Point3D( p.X, p.Y, p.Z );
|
||||
int addonHeigh = ItemData.CalcHeight;
|
||||
|
||||
if ( Utility.InRange( doorLoc, addonLo, 1 ) && ( addonLo.Z == doorLoc.Z || ( ( addonLo.Z + addonHeigh ) > doorLoc.Z && ( doorLoc.Z + doorHeight ) > addonLo.Z ) ) )
|
||||
return AddonFitResult.DoorTooClose;
|
||||
}
|
||||
}
|
||||
|
||||
return AddonFitResult.Valid;
|
||||
}
|
||||
|
||||
public bool CouldFit( IPoint3D p, Map map )
|
||||
{
|
||||
BaseHouse house = null;
|
||||
|
||||
return ( CouldFit( p, map, null, ref house ) == AddonFitResult.Valid );
|
||||
}
|
||||
|
||||
public virtual void OnChop( Mobile from )
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt( this );
|
||||
|
||||
if ( house != null && house.IsOwner( from ) )
|
||||
{
|
||||
if ( !IsSecure )
|
||||
{
|
||||
Effects.PlaySound( GetWorldLocation(), Map, 0x3B3 );
|
||||
from.SendLocalizedMessage( 500461 ); // You destroy the item.
|
||||
|
||||
int hue = 0;
|
||||
|
||||
if ( RetainDeedHue )
|
||||
{
|
||||
for ( int i = 0; hue == 0 && i < m_Components.Count; ++i )
|
||||
{
|
||||
AddonContainerComponent c = m_Components[ i ];
|
||||
|
||||
if ( c.Hue != 0 )
|
||||
hue = c.Hue;
|
||||
}
|
||||
}
|
||||
|
||||
DropItemsToGround();
|
||||
|
||||
Delete();
|
||||
|
||||
house.Addons.Remove( this );
|
||||
|
||||
BaseAddonContainerDeed deed = Deed;
|
||||
|
||||
if ( deed != null )
|
||||
{
|
||||
deed.Resource = Resource;
|
||||
|
||||
if ( RetainDeedHue )
|
||||
deed.Hue = hue;
|
||||
|
||||
from.AddToBackpack( deed );
|
||||
}
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1074870 ); // This item must be unlocked/unsecured before re-deeding it.
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void OnComponentLoaded( AddonContainerComponent c )
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void OnComponentUsed( AddonContainerComponent c, Mobile from )
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
165
Scripts/Items/Addons/BaseAddonContainerDeed.cs
Normal file
165
Scripts/Items/Addons/BaseAddonContainerDeed.cs
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
using System;
|
||||
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
using Server.Targeting;
|
||||
using Server.Engines.Craft;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x14F0, 0x14EF )]
|
||||
public abstract class BaseAddonContainerDeed : Item, ICraftable
|
||||
{
|
||||
public abstract BaseAddonContainer Addon{ get; }
|
||||
|
||||
private CraftResource m_Resource;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftResource Resource
|
||||
{
|
||||
get{ return m_Resource; }
|
||||
set
|
||||
{
|
||||
if ( m_Resource != value )
|
||||
{
|
||||
m_Resource = value;
|
||||
Hue = CraftResources.GetHue( m_Resource );
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public BaseAddonContainerDeed() : base( 0x14F0 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
|
||||
if ( !Core.AOS )
|
||||
LootType = LootType.Newbied;
|
||||
}
|
||||
|
||||
public BaseAddonContainerDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
// version 1
|
||||
writer.Write( (int) m_Resource );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
m_Resource = (CraftResource) reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
from.Target = new InternalTarget( this );
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( !CraftResources.IsStandard( m_Resource ) )
|
||||
list.Add( CraftResources.GetLocalizationNumber( m_Resource ) );
|
||||
}
|
||||
|
||||
#region ICraftable
|
||||
public virtual int OnCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue )
|
||||
{
|
||||
Type resourceType = typeRes;
|
||||
|
||||
if ( resourceType == null )
|
||||
resourceType = craftItem.Resources.GetAt( 0 ).ItemType;
|
||||
|
||||
Resource = CraftResources.GetFromType( resourceType );
|
||||
|
||||
CraftContext context = craftSystem.GetContext( from );
|
||||
|
||||
if ( context != null && context.DoNotColor )
|
||||
Hue = 0;
|
||||
|
||||
return quality;
|
||||
}
|
||||
#endregion
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private BaseAddonContainerDeed m_Deed;
|
||||
|
||||
public InternalTarget( BaseAddonContainerDeed deed ) : base( -1, true, TargetFlags.None )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
CheckLOS = false;
|
||||
}
|
||||
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
{
|
||||
IPoint3D p = targeted as IPoint3D;
|
||||
Map map = from.Map;
|
||||
|
||||
if ( p == null || map == null || m_Deed.Deleted )
|
||||
return;
|
||||
|
||||
if ( m_Deed.IsChildOf( from.Backpack ) )
|
||||
{
|
||||
BaseAddonContainer addon = m_Deed.Addon;
|
||||
addon.Resource = m_Deed.Resource;
|
||||
|
||||
Server.Spells.SpellHelper.GetSurfaceTop( ref p );
|
||||
|
||||
BaseHouse house = null;
|
||||
|
||||
AddonFitResult res = addon.CouldFit( p, map, from, ref house );
|
||||
|
||||
if ( res == AddonFitResult.Valid )
|
||||
addon.MoveToWorld( new Point3D( p ), map );
|
||||
else if ( res == AddonFitResult.Blocked )
|
||||
from.SendLocalizedMessage( 500269 ); // You cannot build that there.
|
||||
else if ( res == AddonFitResult.NotInHouse )
|
||||
from.SendLocalizedMessage( 500274 ); // You can only place this in a house that you own!
|
||||
else if ( res == AddonFitResult.DoorsNotClosed )
|
||||
from.SendMessage( "You must close all house doors before placing this." );
|
||||
else if ( res == AddonFitResult.DoorTooClose )
|
||||
from.SendLocalizedMessage( 500271 ); // You cannot build near the door.
|
||||
else if ( res == AddonFitResult.NoWall )
|
||||
from.SendLocalizedMessage( 500268 ); // This object needs to be mounted on something.
|
||||
|
||||
if ( res == AddonFitResult.Valid )
|
||||
{
|
||||
m_Deed.Delete();
|
||||
house.Addons.Add( addon );
|
||||
house.AddSecure( from, addon );
|
||||
}
|
||||
else
|
||||
{
|
||||
addon.Delete();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
129
Scripts/Items/Addons/BaseAddonDeed.cs
Normal file
129
Scripts/Items/Addons/BaseAddonDeed.cs
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x14F0, 0x14EF )]
|
||||
public abstract class BaseAddonDeed : Item
|
||||
{
|
||||
public abstract BaseAddon Addon{ get;
|
||||
}
|
||||
|
||||
#region Mondain's Legacy
|
||||
private CraftResource m_Resource;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftResource Resource
|
||||
{
|
||||
get{ return m_Resource; }
|
||||
set
|
||||
{
|
||||
if ( m_Resource != value )
|
||||
{
|
||||
m_Resource = value;
|
||||
Hue = CraftResources.GetHue( m_Resource );
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public BaseAddonDeed() : base( 0x14F0 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
|
||||
if ( !Core.AOS )
|
||||
LootType = LootType.Newbied;
|
||||
}
|
||||
|
||||
public BaseAddonDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( Weight == 0.0 )
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
from.Target = new InternalTarget( this );
|
||||
else
|
||||
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
|
||||
}
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private BaseAddonDeed m_Deed;
|
||||
|
||||
public InternalTarget( BaseAddonDeed deed ) : base( -1, true, TargetFlags.None )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
CheckLOS = false;
|
||||
}
|
||||
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
{
|
||||
IPoint3D p = targeted as IPoint3D;
|
||||
Map map = from.Map;
|
||||
|
||||
if ( p == null || map == null || m_Deed.Deleted )
|
||||
return;
|
||||
|
||||
if ( m_Deed.IsChildOf( from.Backpack ) )
|
||||
{
|
||||
BaseAddon addon = m_Deed.Addon;
|
||||
|
||||
Server.Spells.SpellHelper.GetSurfaceTop( ref p );
|
||||
|
||||
BaseHouse house = null;
|
||||
|
||||
AddonFitResult res = addon.CouldFit( p, map, from, ref house );
|
||||
|
||||
if ( res == AddonFitResult.Valid )
|
||||
addon.MoveToWorld( new Point3D( p ), map );
|
||||
else if ( res == AddonFitResult.Blocked )
|
||||
from.SendLocalizedMessage( 500269 ); // You cannot build that there.
|
||||
else if ( res == AddonFitResult.NotInHouse )
|
||||
from.SendLocalizedMessage( 500274 ); // You can only place this in a house that you own!
|
||||
else if ( res == AddonFitResult.DoorTooClose )
|
||||
from.SendLocalizedMessage( 500271 ); // You cannot build near the door.
|
||||
else if ( res == AddonFitResult.NoWall )
|
||||
from.SendLocalizedMessage( 500268 ); // This object needs to be mounted on something.
|
||||
|
||||
if ( res == AddonFitResult.Valid )
|
||||
{
|
||||
m_Deed.Delete();
|
||||
house.Addons.Add( addon );
|
||||
}
|
||||
else
|
||||
{
|
||||
addon.Delete();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
269
Scripts/Items/Addons/BearRugs.cs
Normal file
269
Scripts/Items/Addons/BearRugs.cs
Normal file
|
|
@ -0,0 +1,269 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BrownBearRugEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new BrownBearRugEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrownBearRugEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1E40 ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E41 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E42 ), 1,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E43 ), 0,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E44 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E45 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E46 ),-1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E47 ),-1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E48 ),-1,-1, 0 );
|
||||
}
|
||||
|
||||
public BrownBearRugEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrownBearRugEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new BrownBearRugEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049397; } } // a brown bear rug deed facing east
|
||||
|
||||
[Constructable]
|
||||
public BrownBearRugEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public BrownBearRugEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrownBearRugSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new BrownBearRugSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrownBearRugSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1E36 ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E37 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E38 ),-1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E39 ),-1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E3A ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E3B ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E3C ), 1,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E3D ), 0,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E3E ),-1,-1, 0 );
|
||||
}
|
||||
|
||||
public BrownBearRugSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrownBearRugSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new BrownBearRugSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049398; } } // a brown bear rug deed facing south
|
||||
|
||||
[Constructable]
|
||||
public BrownBearRugSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public BrownBearRugSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PolarBearRugEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new PolarBearRugEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PolarBearRugEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1E53 ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E54 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E55 ), 1,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E56 ), 0,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E57 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E58 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E59 ),-1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E5A ),-1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E5B ),-1,-1, 0 );
|
||||
}
|
||||
|
||||
public PolarBearRugEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PolarBearRugEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new PolarBearRugEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049399; } } // a polar bear rug deed facing east
|
||||
|
||||
[Constructable]
|
||||
public PolarBearRugEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public PolarBearRugEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PolarBearRugSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new PolarBearRugSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PolarBearRugSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1E49 ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E4A ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E4B ),-1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E4C ),-1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E4D ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E4E ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E4F ), 1,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E50 ), 0,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1E51 ),-1,-1, 0 );
|
||||
}
|
||||
|
||||
public PolarBearRugSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PolarBearRugSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new PolarBearRugSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049400; } } // a polar bear rug deed facing south
|
||||
|
||||
[Constructable]
|
||||
public PolarBearRugSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public PolarBearRugSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
Scripts/Items/Addons/BloodPentagram.cs
Normal file
70
Scripts/Items/Addons/BloodPentagram.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BloodPentagram : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public BloodPentagram ()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1CF9 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF8 ), 0, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF7 ), 0, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF6 ), 0, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF5 ), 0, 5, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1CFB ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CFA ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D09 ), 1, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D08 ), 1, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D07 ), 1, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF4 ), 1, 5, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1CFC ), 2, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D0A ), 2, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D11 ), 2, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D10 ), 2, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D06 ), 2, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF3 ), 2, 5, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1CFD ), 3, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D0B ), 3, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D12 ), 3, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D0F ), 3, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D05 ), 3, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF2 ), 3, 5, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1CFE ), 4, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D0C ), 4, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D0D ), 4, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D0E ), 4, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D04 ), 4, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1CF1 ), 4, 5, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1CFF ), 5, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D00 ), 5, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D01 ), 5, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D02 ), 5, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1D03 ), 5, 4, 0 );
|
||||
}
|
||||
|
||||
public BloodPentagram( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
218
Scripts/Items/Addons/DartBoard.cs
Normal file
218
Scripts/Items/Addons/DartBoard.cs
Normal file
|
|
@ -0,0 +1,218 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class DartBoard : AddonComponent
|
||||
{
|
||||
public override bool NeedsWall{ get{ return true; } }
|
||||
public override Point3D WallPosition{ get{ return this.East ? new Point3D( -1, 0, 0 ) : new Point3D( 0, -1, 0 ); } }
|
||||
|
||||
public bool East{ get{ return this.ItemID == 0x1E2F; } }
|
||||
|
||||
[Constructable]
|
||||
public DartBoard() : this( true )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public DartBoard( bool east ) : base( east ? 0x1E2F : 0x1E2E )
|
||||
{
|
||||
}
|
||||
|
||||
public DartBoard( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
Direction dir;
|
||||
if ( from.Location != this.Location )
|
||||
dir = from.GetDirectionTo( this );
|
||||
else if ( this.East )
|
||||
dir = Direction.West;
|
||||
else
|
||||
dir = Direction.North;
|
||||
|
||||
from.Direction = dir;
|
||||
|
||||
bool canThrow = true;
|
||||
|
||||
if ( !from.InRange( this, 4 ) || !from.InLOS( this ) )
|
||||
canThrow = false;
|
||||
else if ( this.East )
|
||||
canThrow = ( dir == Direction.Left || dir == Direction.West || dir == Direction.Up );
|
||||
else
|
||||
canThrow = ( dir == Direction.Up || dir == Direction.North || dir == Direction.Right );
|
||||
|
||||
if ( canThrow )
|
||||
Throw( from );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
public void Throw( Mobile from )
|
||||
{
|
||||
BaseKnife knife = from.Weapon as BaseKnife;
|
||||
|
||||
if ( knife == null )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 500751 ); // Try holding a knife...
|
||||
return;
|
||||
}
|
||||
|
||||
from.Animate( from.Mounted ? 26 : 9, 7, 1, true, false, 0 );
|
||||
from.MovingEffect( this, knife.ItemID, 7, 1, false, false );
|
||||
from.PlaySound( 0x238 );
|
||||
|
||||
double rand = Utility.RandomDouble();
|
||||
|
||||
int message;
|
||||
if ( rand < 0.05 )
|
||||
message = 500752; // BULLSEYE! 50 Points!
|
||||
else if ( rand < 0.20 )
|
||||
message = 500753; // Just missed the center! 20 points.
|
||||
else if ( rand < 0.45 )
|
||||
message = 500754; // 10 point shot.
|
||||
else if ( rand < 0.70 )
|
||||
message = 500755; // 5 pointer.
|
||||
else if ( rand < 0.85 )
|
||||
message = 500756; // 1 point. Bad throw.
|
||||
else
|
||||
message = 500757; // Missed.
|
||||
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, message );
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DartBoardEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new DartBoardEastDeed(); } }
|
||||
|
||||
public DartBoardEastAddon()
|
||||
{
|
||||
AddComponent( new DartBoard( true ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public DartBoardEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DartBoardEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new DartBoardEastAddon(); } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1044326; } } // dartboard (east)
|
||||
|
||||
[Constructable]
|
||||
public DartBoardEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public DartBoardEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DartBoardSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new DartBoardSouthDeed(); } }
|
||||
|
||||
public DartBoardSouthAddon()
|
||||
{
|
||||
AddComponent( new DartBoard( false ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public DartBoardSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DartBoardSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new DartBoardSouthAddon(); } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1044325; } } // dartboard (south)
|
||||
|
||||
[Constructable]
|
||||
public DartBoardSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public DartBoardSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenBedEastAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenBedEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenBedEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenBedEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenBedEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x304D ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x304C ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenBedEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenBedEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenBedEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072861; } } // elven bed (east)
|
||||
|
||||
[Constructable]
|
||||
public ElvenBedEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenBedEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenBedSouthAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenBedSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenBedSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenBedSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenBedSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3050 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3051 ), 0, -1, 0 );
|
||||
}
|
||||
|
||||
public ElvenBedSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenBedSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenBedSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072860; } } // elven bed (south)
|
||||
|
||||
[Constructable]
|
||||
public ElvenBedSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenBedSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenDresserEastAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenDresserEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenDresserEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenDresserEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenDresserEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x30E4 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x30E3 ), 0, -1, 0 );
|
||||
}
|
||||
|
||||
public ElvenDresserEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenDresserEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenDresserEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073388; } } // elven dresser (east)
|
||||
|
||||
[Constructable]
|
||||
public ElvenDresserEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenDresserEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenDresserSouthAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenDresserSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenDresserSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenDresserSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenDresserSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x30E5 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x30E6 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenDresserSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenDresserSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenDresserSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072864; } } // elven dresser (south)
|
||||
|
||||
[Constructable]
|
||||
public ElvenDresserSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenDresserSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/ElvenForgeAddon.cs
Normal file
63
Scripts/Items/Addons/ElvenForgeAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenForgeAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenForgeDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenForgeAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2DD8 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenForgeAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenForgeDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenForgeAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072875; } } // squirrel statue (east)
|
||||
|
||||
[Constructable]
|
||||
public ElvenForgeDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenForgeDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenLoveseatEastAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenLoveseatEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenLoveseatEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenLoveseatEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenLoveseatEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3089 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3088 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenLoveseatEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenLoveseatEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenLoveseatEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073372; } } // elven loveseat (east)
|
||||
|
||||
[Constructable]
|
||||
public ElvenLoveseatEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenLoveseatEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenLoveseatSouthAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenLoveseatSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenLoveseatSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenLoveseatSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenLoveseatSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x308A ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x308B ), 0, -1, 0 );
|
||||
}
|
||||
|
||||
public ElvenLoveseatSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenLoveseatSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenLoveseatSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072867; } } // elven loveseat (south)
|
||||
|
||||
[Constructable]
|
||||
public ElvenLoveseatSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenLoveseatSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
137
Scripts/Items/Addons/ElvenSpinningwheelEastAddon.cs
Normal file
137
Scripts/Items/Addons/ElvenSpinningwheelEastAddon.cs
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenSpinningwheelEastAddon : BaseAddon, ISpinningWheel
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenSpinningwheelEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenSpinningwheelEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2DD9 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenSpinningwheelEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
public override void OnComponentLoaded( AddonComponent c )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x2E3D:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Spinning{ get{ return m_Timer != null; } }
|
||||
|
||||
public void BeginSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
m_Timer = new SpinTimer( this, callback, from, hue );
|
||||
m_Timer.Start();
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x2DD9:
|
||||
case 0x101C:
|
||||
case 0x10A4: ++c.ItemID; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void EndSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = null;
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1016:
|
||||
case 0x101A:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( callback != null )
|
||||
callback( this, from, hue );
|
||||
}
|
||||
|
||||
private class SpinTimer : Timer
|
||||
{
|
||||
private ElvenSpinningwheelEastAddon m_Wheel;
|
||||
private SpinCallback m_Callback;
|
||||
private Mobile m_From;
|
||||
private int m_Hue;
|
||||
|
||||
public SpinTimer( ElvenSpinningwheelEastAddon wheel, SpinCallback callback, Mobile from, int hue ) : base( TimeSpan.FromSeconds( 3.0 ) )
|
||||
{
|
||||
m_Wheel = wheel;
|
||||
m_Callback = callback;
|
||||
m_From = from;
|
||||
m_Hue = hue;
|
||||
Priority = TimerPriority.TwoFiftyMS;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Wheel.EndSpin( m_Callback, m_From, m_Hue );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenSpinningwheelEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenSpinningwheelEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073393; } } // elven spinning wheel (east)
|
||||
|
||||
[Constructable]
|
||||
public ElvenSpinningwheelEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenSpinningwheelEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
139
Scripts/Items/Addons/ElvenSpinningwheelSouthAddon.cs
Normal file
139
Scripts/Items/Addons/ElvenSpinningwheelSouthAddon.cs
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenSpinningwheelSouthAddon : BaseAddon, ISpinningWheel
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenSpinningwheelSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenSpinningwheelSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2DDA ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenSpinningwheelSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
public override void OnComponentLoaded( AddonComponent c )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1016:
|
||||
case 0x101A:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Spinning{ get{ return m_Timer != null; } }
|
||||
|
||||
public void BeginSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
m_Timer = new SpinTimer( this, callback, from, hue );
|
||||
m_Timer.Start();
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1015:
|
||||
case 0x1019:
|
||||
case 0x101C:
|
||||
case 0x10A4: ++c.ItemID; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void EndSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = null;
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1016:
|
||||
case 0x101A:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( callback != null )
|
||||
callback( this, from, hue );
|
||||
}
|
||||
|
||||
private class SpinTimer : Timer
|
||||
{
|
||||
private ElvenSpinningwheelSouthAddon m_Wheel;
|
||||
private SpinCallback m_Callback;
|
||||
private Mobile m_From;
|
||||
private int m_Hue;
|
||||
|
||||
public SpinTimer( ElvenSpinningwheelSouthAddon wheel, SpinCallback callback, Mobile from, int hue ) : base( TimeSpan.FromSeconds( 3.0 ) )
|
||||
{
|
||||
m_Wheel = wheel;
|
||||
m_Callback = callback;
|
||||
m_From = from;
|
||||
m_Hue = hue;
|
||||
Priority = TimerPriority.TwoFiftyMS;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Wheel.EndSpin( m_Callback, m_From, m_Hue );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenSpinningwheelSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenSpinningwheelSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072878; } } // spinning wheel (south)
|
||||
|
||||
[Constructable]
|
||||
public ElvenSpinningwheelSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenSpinningwheelSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/ElvenStoveEastAddon.cs
Normal file
63
Scripts/Items/Addons/ElvenStoveEastAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenStoveEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenStoveEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenStoveEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2DDB ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenStoveEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenStoveEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenStoveEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073395; } } // elven oven (east)
|
||||
|
||||
[Constructable]
|
||||
public ElvenStoveEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenStoveEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/ElvenStoveSouthAddon.cs
Normal file
63
Scripts/Items/Addons/ElvenStoveSouthAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenStoveSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenStoveSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenStoveSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2DDC ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenStoveSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenStoveSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenStoveSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073394; } } // elven oven (south)
|
||||
|
||||
[Constructable]
|
||||
public ElvenStoveSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenStoveSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenWashbasinEastAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenWashbasinEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenWashBasinEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenWashBasinEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenWashBasinEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x30DF ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x30E0 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public ElvenWashBasinEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenWashBasinEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenWashBasinEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073387; } } // elven wash basin (east)
|
||||
|
||||
[Constructable]
|
||||
public ElvenWashBasinEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenWashBasinEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/ElvenWashbasinSouthAddon.cs
Normal file
64
Scripts/Items/Addons/ElvenWashbasinSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ElvenWashBasinSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ElvenWashBasinSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ElvenWashBasinSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x30E1 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x30E2 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public ElvenWashBasinSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ElvenWashBasinSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ElvenWashBasinSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072865; } } // elven wash basin (south)
|
||||
|
||||
[Constructable]
|
||||
public ElvenWashBasinSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ElvenWashBasinSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Items/Addons/FancyElvenTableEastAddon.cs
Normal file
65
Scripts/Items/Addons/FancyElvenTableEastAddon.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class FancyElvenTableEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new FancyElvenTableEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public FancyElvenTableEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3094 ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3093 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3092 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public FancyElvenTableEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class FancyElvenTableEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new FancyElvenTableEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073386; } } // hardwood table (east)
|
||||
|
||||
[Constructable]
|
||||
public FancyElvenTableEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public FancyElvenTableEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Items/Addons/FancyElvenTableSouthAddon.cs
Normal file
65
Scripts/Items/Addons/FancyElvenTableSouthAddon.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class FancyElvenTableSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new FancyElvenTableSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public FancyElvenTableSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3095 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x3096 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3097 ), 0, -1, 0 );
|
||||
}
|
||||
|
||||
public FancyElvenTableSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class FancyElvenTableSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new FancyElvenTableSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073385; } } // hardwood table (south)
|
||||
|
||||
[Constructable]
|
||||
public FancyElvenTableSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public FancyElvenTableSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/Items/Addons/FireColumnAddon.cs
Normal file
67
Scripts/Items/Addons/FireColumnAddon.cs
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class FireColumnAddon : BaseAddon
|
||||
{
|
||||
public override bool ShareHue
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FireColumnAddon()
|
||||
: this( false )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FireColumnAddon( bool bloody )
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3A5 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3A5 ), 0, 0, 5 );
|
||||
AddComponent( new AddonComponent( 0x3A5 ), 0, 0, 10 );
|
||||
AddComponent( new AddonComponent( 0x3A5 ), 0, 0, 15 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x19BB ), 0, 0, 21 );
|
||||
AddComponent( new AddonComponent( 0x19AB ), 0, 0, 23 );
|
||||
|
||||
if ( bloody )
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x122B ), -2, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x122E ), 0, -2, 0 );
|
||||
AddComponent( new AddonComponent( 0x122D ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x122F ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x122D ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x122A ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x122B ), 2, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x122B ), 0, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x122E ), 1, 1, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public FireColumnAddon( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
230
Scripts/Items/Addons/FlourMillEastAddon.cs
Normal file
230
Scripts/Items/Addons/FlourMillEastAddon.cs
Normal file
|
|
@ -0,0 +1,230 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public interface IFlourMill
|
||||
{
|
||||
int MaxFlour{ get; }
|
||||
int CurFlour{ get; set; }
|
||||
}
|
||||
|
||||
public enum FlourMillStage
|
||||
{
|
||||
Empty,
|
||||
Filled,
|
||||
Working
|
||||
}
|
||||
|
||||
public class FlourMillEastAddon : BaseAddon, IFlourMill
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new FlourMillEastDeed(); } }
|
||||
|
||||
private int m_Flour;
|
||||
private Timer m_Timer;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int MaxFlour
|
||||
{
|
||||
get{ return 2; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int CurFlour
|
||||
{
|
||||
get{ return m_Flour; }
|
||||
set{ m_Flour = Math.Max( 0, Math.Min( value, MaxFlour ) ); UpdateStage(); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool HasFlour
|
||||
{
|
||||
get{ return ( m_Flour > 0 ); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool IsFull
|
||||
{
|
||||
get{ return ( m_Flour >= MaxFlour ); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool IsWorking
|
||||
{
|
||||
get{ return ( m_Timer != null ); }
|
||||
}
|
||||
|
||||
public void StartWorking( Mobile from )
|
||||
{
|
||||
if ( IsWorking )
|
||||
return;
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 5.0 ), new TimerStateCallback( FinishWorking_Callback ), from );
|
||||
UpdateStage();
|
||||
}
|
||||
|
||||
private void FinishWorking_Callback( object state )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
{
|
||||
m_Timer.Stop();
|
||||
m_Timer = null;
|
||||
}
|
||||
|
||||
Mobile from = state as Mobile;
|
||||
|
||||
if ( from != null && !from.Deleted && !this.Deleted && IsFull )
|
||||
{
|
||||
SackFlour flour = new SackFlour();
|
||||
|
||||
flour.ItemID = ( Utility.RandomBool() ? 4153 : 4165 );
|
||||
|
||||
if ( from.PlaceInBackpack( flour ) )
|
||||
{
|
||||
m_Flour = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
flour.Delete();
|
||||
from.SendLocalizedMessage( 500998 ); // There is not enough room in your backpack! You stop grinding.
|
||||
}
|
||||
}
|
||||
|
||||
UpdateStage();
|
||||
}
|
||||
|
||||
private static int[][] m_StageTable = new int[][]
|
||||
{
|
||||
new int[]{ 0x1920, 0x1921, 0x1925 },
|
||||
new int[]{ 0x1922, 0x1923, 0x1926 },
|
||||
new int[]{ 0x1924, 0x1924, 0x1928 }
|
||||
};
|
||||
|
||||
private int[] FindItemTable( int itemID )
|
||||
{
|
||||
for ( int i = 0; i < m_StageTable.Length; ++i )
|
||||
{
|
||||
int[] itemTable = m_StageTable[i];
|
||||
|
||||
for ( int j = 0; j < itemTable.Length; ++j )
|
||||
{
|
||||
if ( itemTable[j] == itemID )
|
||||
return itemTable;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void UpdateStage()
|
||||
{
|
||||
if ( IsWorking )
|
||||
UpdateStage( FlourMillStage.Working );
|
||||
else if ( HasFlour )
|
||||
UpdateStage( FlourMillStage.Filled );
|
||||
else
|
||||
UpdateStage( FlourMillStage.Empty );
|
||||
}
|
||||
|
||||
public void UpdateStage( FlourMillStage stage )
|
||||
{
|
||||
List<AddonComponent> components = this.Components;
|
||||
|
||||
int[][] stageTable = m_StageTable;
|
||||
|
||||
for ( int i = 0; i < components.Count; ++i )
|
||||
{
|
||||
AddonComponent component = components[i] as AddonComponent;
|
||||
|
||||
if ( component == null )
|
||||
continue;
|
||||
|
||||
int[] itemTable = FindItemTable( component.ItemID );
|
||||
|
||||
if ( itemTable != null )
|
||||
component.ItemID = itemTable[(int)stage];
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnComponentUsed( AddonComponent c, Mobile from )
|
||||
{
|
||||
if ( !from.InRange( GetWorldLocation(), 4 ) || !from.InLOS( this ) )
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
else if ( !IsFull )
|
||||
from.SendLocalizedMessage( 500997 ); // You need more wheat to make a sack of flour.
|
||||
else
|
||||
StartWorking( from );
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FlourMillEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1920 ),-1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1922 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1924 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public FlourMillEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( (int) m_Flour );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_Flour = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UpdateStage();
|
||||
}
|
||||
}
|
||||
|
||||
public class FlourMillEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new FlourMillEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044347; } } // flour mill (east)
|
||||
|
||||
[Constructable]
|
||||
public FlourMillEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public FlourMillEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
216
Scripts/Items/Addons/FlourMillSouthAddon.cs
Normal file
216
Scripts/Items/Addons/FlourMillSouthAddon.cs
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class FlourMillSouthAddon : BaseAddon, IFlourMill
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new FlourMillSouthDeed(); } }
|
||||
private int m_Flour;
|
||||
private Timer m_Timer;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int MaxFlour
|
||||
{
|
||||
get{ return 2; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int CurFlour
|
||||
{
|
||||
get{ return m_Flour; }
|
||||
set{ m_Flour = Math.Max( 0, Math.Min( value, MaxFlour ) ); UpdateStage(); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool HasFlour
|
||||
{
|
||||
get{ return ( m_Flour > 0 ); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool IsFull
|
||||
{
|
||||
get{ return ( m_Flour >= MaxFlour ); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool IsWorking
|
||||
{
|
||||
get{ return ( m_Timer != null ); }
|
||||
}
|
||||
|
||||
public void StartWorking( Mobile from )
|
||||
{
|
||||
if ( IsWorking )
|
||||
return;
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 5.0 ), new TimerStateCallback( FinishWorking_Callback ), from );
|
||||
UpdateStage();
|
||||
}
|
||||
|
||||
private void FinishWorking_Callback( object state )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
{
|
||||
m_Timer.Stop();
|
||||
m_Timer = null;
|
||||
}
|
||||
|
||||
Mobile from = state as Mobile;
|
||||
|
||||
if ( from != null && !from.Deleted && !this.Deleted && IsFull )
|
||||
{
|
||||
SackFlour flour = new SackFlour();
|
||||
|
||||
flour.ItemID = ( Utility.RandomBool() ? 4153 : 4165 );
|
||||
|
||||
if ( from.PlaceInBackpack( flour ) )
|
||||
{
|
||||
m_Flour = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
flour.Delete();
|
||||
from.SendLocalizedMessage( 500998 ); // There is not enough room in your backpack! You stop grinding.
|
||||
}
|
||||
}
|
||||
|
||||
UpdateStage();
|
||||
}
|
||||
|
||||
private static int[][] m_StageTable = new int[][]
|
||||
{
|
||||
new int[]{ 0x192C, 0x192D, 0x1931 },
|
||||
new int[]{ 0x192E, 0x192F, 0x1932 },
|
||||
new int[]{ 0x1930, 0x1930, 0x1934 }
|
||||
};
|
||||
|
||||
private int[] FindItemTable( int itemID )
|
||||
{
|
||||
for ( int i = 0; i < m_StageTable.Length; ++i )
|
||||
{
|
||||
int[] itemTable = m_StageTable[i];
|
||||
|
||||
for ( int j = 0; j < itemTable.Length; ++j )
|
||||
{
|
||||
if ( itemTable[j] == itemID )
|
||||
return itemTable;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void UpdateStage()
|
||||
{
|
||||
if ( IsWorking )
|
||||
UpdateStage( FlourMillStage.Working );
|
||||
else if ( HasFlour )
|
||||
UpdateStage( FlourMillStage.Filled );
|
||||
else
|
||||
UpdateStage( FlourMillStage.Empty );
|
||||
}
|
||||
|
||||
public void UpdateStage( FlourMillStage stage )
|
||||
{
|
||||
List<AddonComponent> components = this.Components;
|
||||
|
||||
int[][] stageTable = m_StageTable;
|
||||
|
||||
for ( int i = 0; i < components.Count; ++i )
|
||||
{
|
||||
AddonComponent component = components[i] as AddonComponent;
|
||||
|
||||
if ( component == null )
|
||||
continue;
|
||||
|
||||
int[] itemTable = FindItemTable( component.ItemID );
|
||||
|
||||
if ( itemTable != null )
|
||||
component.ItemID = itemTable[(int)stage];
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnComponentUsed( AddonComponent c, Mobile from )
|
||||
{
|
||||
if ( !from.InRange( GetWorldLocation(), 4 ) || !from.InLOS( this ) )
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
else if ( !IsFull )
|
||||
from.SendLocalizedMessage( 500997 ); // You need more wheat to make a sack of flour.
|
||||
else
|
||||
StartWorking( from );
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FlourMillSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x192C ), 0,-1, 0 );
|
||||
AddComponent( new AddonComponent( 0x192E ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1930 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public FlourMillSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( (int) m_Flour );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_Flour = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UpdateStage();
|
||||
}
|
||||
}
|
||||
|
||||
public class FlourMillSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new FlourMillSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044348; } } // flour mill (south)
|
||||
|
||||
[Constructable]
|
||||
public FlourMillSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public FlourMillSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
241
Scripts/Items/Addons/FlowerTapestries.cs
Normal file
241
Scripts/Items/Addons/FlowerTapestries.cs
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LightFlowerTapestryEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LightFlowerTapestryEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public LightFlowerTapestryEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xFDC ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xFDB ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public LightFlowerTapestryEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LightFlowerTapestryEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LightFlowerTapestryEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049393; } } // a flower tapestry deed facing east
|
||||
|
||||
[Constructable]
|
||||
public LightFlowerTapestryEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LightFlowerTapestryEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LightFlowerTapestrySouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LightFlowerTapestrySouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public LightFlowerTapestrySouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xFD9 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xFDA ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public LightFlowerTapestrySouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LightFlowerTapestrySouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LightFlowerTapestrySouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049394; } } // a flower tapestry deed facing south
|
||||
|
||||
[Constructable]
|
||||
public LightFlowerTapestrySouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LightFlowerTapestrySouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DarkFlowerTapestryEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new DarkFlowerTapestryEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public DarkFlowerTapestryEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xFE0 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xFDF ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public DarkFlowerTapestryEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DarkFlowerTapestryEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new DarkFlowerTapestryEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049395; } } // a dark flower tapestry deed facing east
|
||||
|
||||
[Constructable]
|
||||
public DarkFlowerTapestryEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public DarkFlowerTapestryEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DarkFlowerTapestrySouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new DarkFlowerTapestrySouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public DarkFlowerTapestrySouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xFDD ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xFDE ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public DarkFlowerTapestrySouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class DarkFlowerTapestrySouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new DarkFlowerTapestrySouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049396; } } // a dark flower tapestry deed facing south
|
||||
|
||||
[Constructable]
|
||||
public DarkFlowerTapestrySouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public DarkFlowerTapestrySouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
207
Scripts/Items/Addons/GiantWebs.cs
Normal file
207
Scripts/Items/Addons/GiantWebs.cs
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GiantWeb1 : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public GiantWeb1()
|
||||
{
|
||||
int itemID = 4280;
|
||||
int count = 5;
|
||||
bool leftToRight = false;
|
||||
|
||||
for ( int i = 0; i < count; ++i )
|
||||
AddComponent( new AddonComponent( itemID++ ), leftToRight ? i : count - 1 - i, -( leftToRight ? i : count - 1 - i ), 0 );
|
||||
}
|
||||
|
||||
public GiantWeb1( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
|
||||
public class GiantWeb2 : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public GiantWeb2()
|
||||
{
|
||||
int itemID = 4285;
|
||||
int count = 5;
|
||||
bool leftToRight = true;
|
||||
|
||||
for ( int i = 0; i < count; ++i )
|
||||
AddComponent( new AddonComponent( itemID++ ), leftToRight ? i : count - 1 - i, -( leftToRight ? i : count - 1 - i ), 0 );
|
||||
}
|
||||
|
||||
public GiantWeb2( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
|
||||
public class GiantWeb3 : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public GiantWeb3()
|
||||
{
|
||||
int itemID = 4290;
|
||||
int count = 4;
|
||||
bool leftToRight = true;
|
||||
|
||||
for ( int i = 0; i < count; ++i )
|
||||
AddComponent( new AddonComponent( itemID++ ), leftToRight ? i : count - 1 - i, -( leftToRight ? i : count - 1 - i ), 0 );
|
||||
}
|
||||
|
||||
public GiantWeb3( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
|
||||
public class GiantWeb4 : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public GiantWeb4()
|
||||
{
|
||||
int itemID = 4294;
|
||||
int count = 4;
|
||||
bool leftToRight = false;
|
||||
|
||||
for ( int i = 0; i < count; ++i )
|
||||
AddComponent( new AddonComponent( itemID++ ), leftToRight ? i : count - 1 - i, -( leftToRight ? i : count - 1 - i ), 0 );
|
||||
}
|
||||
|
||||
public GiantWeb4( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
|
||||
public class GiantWeb5 : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public GiantWeb5()
|
||||
{
|
||||
int itemID = 4298;
|
||||
int count = 4;
|
||||
bool leftToRight = true;
|
||||
|
||||
for ( int i = 0; i < count; ++i )
|
||||
AddComponent( new AddonComponent( itemID++ ), leftToRight ? i : count - 1 - i, -( leftToRight ? i : count - 1 - i ), 0 );
|
||||
}
|
||||
|
||||
public GiantWeb5( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
|
||||
public class GiantWeb6 : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public GiantWeb6()
|
||||
{
|
||||
int itemID = 4302;
|
||||
int count = 4;
|
||||
bool leftToRight = false;
|
||||
|
||||
for ( int i = 0; i < count; ++i )
|
||||
AddComponent( new AddonComponent( itemID++ ), leftToRight ? i : count - 1 - i, -( leftToRight ? i : count - 1 - i ), 0 );
|
||||
}
|
||||
|
||||
public GiantWeb6( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
}
|
||||
538
Scripts/Items/Addons/GozaMats.cs
Normal file
538
Scripts/Items/Addons/GozaMats.cs
Normal file
|
|
@ -0,0 +1,538 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GozaMatEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new GozaMatEastDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public GozaMatEastAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public GozaMatEastAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28a4, 1030688 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x28a5, 1030688 ), 0, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public GozaMatEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class GozaMatEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new GozaMatEastAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030404; } } // goza (east)
|
||||
|
||||
[Constructable]
|
||||
public GozaMatEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public GozaMatEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class GozaMatSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new GozaMatSouthDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public GozaMatSouthAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public GozaMatSouthAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28a6, 1030688 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x28a7, 1030688 ), 0, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public GozaMatSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class GozaMatSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new GozaMatSouthAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030405; } } // goza (south)
|
||||
|
||||
[Constructable]
|
||||
public GozaMatSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public GozaMatSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SquareGozaMatEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SquareGozaMatEastDeed(); } }
|
||||
public override int LabelNumber{ get{ return 1030688; } } // goza mat
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public SquareGozaMatEastAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SquareGozaMatEastAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28a8, 1030688 ), 0, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public SquareGozaMatEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SquareGozaMatEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SquareGozaMatEastAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030407; } } // square goza (east)
|
||||
|
||||
[Constructable]
|
||||
public SquareGozaMatEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SquareGozaMatEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SquareGozaMatSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SquareGozaMatSouthDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public SquareGozaMatSouthAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SquareGozaMatSouthAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28a9, 1030688 ), 0, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public SquareGozaMatSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SquareGozaMatSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SquareGozaMatSouthAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030406; } } // square goza (south)
|
||||
|
||||
|
||||
[Constructable]
|
||||
public SquareGozaMatSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SquareGozaMatSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrocadeGozaMatEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new BrocadeGozaMatEastDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public BrocadeGozaMatEastAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public BrocadeGozaMatEastAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28AB, 1030688 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x28AA, 1030688 ), 1, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public BrocadeGozaMatEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrocadeGozaMatEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new BrocadeGozaMatEastAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030408; } } // brocade goza (east)
|
||||
|
||||
[Constructable]
|
||||
public BrocadeGozaMatEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public BrocadeGozaMatEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public class BrocadeGozaMatSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new BrocadeGozaMatSouthDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public BrocadeGozaMatSouthAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public BrocadeGozaMatSouthAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28AD, 1030688 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x28AC, 1030688 ), 0, 1, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public BrocadeGozaMatSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrocadeGozaMatSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new BrocadeGozaMatSouthAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030409; } } // brocade goza (south)
|
||||
|
||||
[Constructable]
|
||||
public BrocadeGozaMatSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public BrocadeGozaMatSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public class BrocadeSquareGozaMatEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new BrocadeSquareGozaMatEastDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public BrocadeSquareGozaMatEastAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public BrocadeSquareGozaMatEastAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28AE, 1030688 ), 0, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public BrocadeSquareGozaMatEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrocadeSquareGozaMatEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new BrocadeSquareGozaMatEastAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030411; } } // brocade square goza (east)
|
||||
|
||||
[Constructable]
|
||||
public BrocadeSquareGozaMatEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public BrocadeSquareGozaMatEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrocadeSquareGozaMatSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new BrocadeSquareGozaMatSouthDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public BrocadeSquareGozaMatSouthAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public BrocadeSquareGozaMatSouthAddon( int hue )
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x28AF, 1030688 ), 0, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public BrocadeSquareGozaMatSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class BrocadeSquareGozaMatSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new BrocadeSquareGozaMatSouthAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1030410; } } // brocade square goza (south)
|
||||
|
||||
|
||||
[Constructable]
|
||||
public BrocadeSquareGozaMatSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public BrocadeSquareGozaMatSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/GrayBrickFireplaceEastAddon.cs
Normal file
64
Scripts/Items/Addons/GrayBrickFireplaceEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GrayBrickFireplaceEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new GrayBrickFireplaceEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public GrayBrickFireplaceEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x93D ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x937 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public GrayBrickFireplaceEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class GrayBrickFireplaceEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new GrayBrickFireplaceEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1061846; } } // grey brick fireplace (east)
|
||||
|
||||
[Constructable]
|
||||
public GrayBrickFireplaceEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public GrayBrickFireplaceEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/GrayBrickFireplaceSouthAddon.cs
Normal file
64
Scripts/Items/Addons/GrayBrickFireplaceSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GrayBrickFireplaceSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new GrayBrickFireplaceSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public GrayBrickFireplaceSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x94B ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x945 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public GrayBrickFireplaceSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class GrayBrickFireplaceSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new GrayBrickFireplaceSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1061847; } } // grey brick fireplace (south)
|
||||
|
||||
[Constructable]
|
||||
public GrayBrickFireplaceSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public GrayBrickFireplaceSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
102
Scripts/Items/Addons/JackOLantern.cs
Normal file
102
Scripts/Items/Addons/JackOLantern.cs
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class JackOLantern : BaseAddon
|
||||
{
|
||||
public override bool ShareHue
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
private AddonComponent GetComponent( int itemID, int hue )
|
||||
{
|
||||
AddonComponent ac = new AddonComponent( itemID );
|
||||
|
||||
ac.Hue = hue;
|
||||
ac.Name = "jack-o-lantern";
|
||||
|
||||
return ac;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public JackOLantern()
|
||||
: this( 1 > Utility.Random( 2 ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public JackOLantern( bool south )
|
||||
{
|
||||
AddComponent( new AddonComponent( 5703 ), 0, 0, +0 );
|
||||
|
||||
int hue = 1161;
|
||||
//( 1 > Utility.Random( 5 ) ? 2118 : 1161 );
|
||||
|
||||
if ( !south )
|
||||
{
|
||||
AddComponent( GetComponent( 3178, 0000 ), 0, 0, -1 );
|
||||
AddComponent( GetComponent( 3883, hue ), 0, 0, +1 );
|
||||
AddComponent( GetComponent( 3862, hue ), 0, 0, +0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
AddComponent( GetComponent( 3179, 0000 ), 0, 0, +0 );
|
||||
AddComponent( GetComponent( 3885, hue ), 0, 0, -1 );
|
||||
AddComponent( GetComponent( 3871, hue ), 0, 0, +0 );
|
||||
}
|
||||
}
|
||||
|
||||
public JackOLantern( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 2 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
|
||||
if ( version == 0 )
|
||||
{
|
||||
Timer.DelayCall( TimeSpan.Zero, delegate()
|
||||
{
|
||||
for ( int i = 0; i < Components.Count; ++i )
|
||||
{
|
||||
AddonComponent ac = Components[i] as AddonComponent;
|
||||
|
||||
if ( ac != null && ac.Hue == 2118 )
|
||||
ac.Hue = 1161;
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
if ( version <= 1 )
|
||||
{
|
||||
Timer.DelayCall( TimeSpan.Zero, delegate()
|
||||
{
|
||||
for ( int i = 0; i < Components.Count; ++i )
|
||||
{
|
||||
AddonComponent ac = Components[i] as AddonComponent;
|
||||
|
||||
if ( ac != null )
|
||||
ac.Name = "jack-o-lantern";
|
||||
}
|
||||
} );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Items/Addons/LargeBedEastAddon.cs
Normal file
66
Scripts/Items/Addons/LargeBedEastAddon.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LargeBedEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LargeBedEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public LargeBedEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xA7D ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xA7C ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0xA79 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xA78 ), 1, 1, 0 );
|
||||
}
|
||||
|
||||
public LargeBedEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LargeBedEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LargeBedEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044324; } } // large bed (east)
|
||||
|
||||
[Constructable]
|
||||
public LargeBedEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LargeBedEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Items/Addons/LargeBedSouthAddon.cs
Normal file
66
Scripts/Items/Addons/LargeBedSouthAddon.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LargeBedSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LargeBedSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public LargeBedSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xA83 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xA7F ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0xA82 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xA7E ), 1, 1, 0 );
|
||||
}
|
||||
|
||||
public LargeBedSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LargeBedSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LargeBedSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044323; } } // large bed (south)
|
||||
|
||||
[Constructable]
|
||||
public LargeBedSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LargeBedSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Items/Addons/LargeForgeEastAddon.cs
Normal file
66
Scripts/Items/Addons/LargeForgeEastAddon.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LargeForgeEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LargeForgeEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public LargeForgeEastAddon()
|
||||
{
|
||||
AddComponent( new ForgeComponent( 0x1986 ), 0, 0, 0 );
|
||||
AddComponent( new ForgeComponent( 0x198A ), 0, 1, 0 );
|
||||
AddComponent( new ForgeComponent( 0x1996 ), 0, 2, 0 );
|
||||
AddComponent( new ForgeComponent( 0x1992 ), 0, 3, 0 );
|
||||
}
|
||||
|
||||
public LargeForgeEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LargeForgeEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LargeForgeEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044331; } } // large forge (east)
|
||||
|
||||
[Constructable]
|
||||
public LargeForgeEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LargeForgeEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Items/Addons/LargeForgeSouthAddon.cs
Normal file
66
Scripts/Items/Addons/LargeForgeSouthAddon.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LargeForgeSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LargeForgeSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public LargeForgeSouthAddon()
|
||||
{
|
||||
AddComponent( new ForgeComponent( 0x197A ), 0, 0, 0 );
|
||||
AddComponent( new ForgeComponent( 0x197E ), 1, 0, 0 );
|
||||
AddComponent( new ForgeComponent( 0x19A2 ), 2, 0, 0 );
|
||||
AddComponent( new ForgeComponent( 0x199E ), 3, 0, 0 );
|
||||
}
|
||||
|
||||
public LargeForgeSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LargeForgeSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LargeForgeSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044332; } } // large forge (south)
|
||||
|
||||
[Constructable]
|
||||
public LargeForgeSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LargeForgeSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Items/Addons/LargeStoneTableEastAddon.cs
Normal file
73
Scripts/Items/Addons/LargeStoneTableEastAddon.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LargeStoneTableEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LargeStoneTableEastDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public LargeStoneTableEastAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public LargeStoneTableEastAddon( int hue )
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1202 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1203 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1201 ), 0, 2, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public LargeStoneTableEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LargeStoneTableEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LargeStoneTableEastAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1044511; } } // large stone table (east)
|
||||
|
||||
[Constructable]
|
||||
public LargeStoneTableEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LargeStoneTableEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
73
Scripts/Items/Addons/LargeStoneTableSouthAddon.cs
Normal file
73
Scripts/Items/Addons/LargeStoneTableSouthAddon.cs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LargeStoneTableSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LargeStoneTableSouthDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public LargeStoneTableSouthAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public LargeStoneTableSouthAddon( int hue )
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1205 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1206 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1204 ), 2, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public LargeStoneTableSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class LargeStoneTableSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LargeStoneTableSouthAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1044512; } } // large stone table (South)
|
||||
|
||||
[Constructable]
|
||||
public LargeStoneTableSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LargeStoneTableSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
84
Scripts/Items/Addons/LoomEastAddon.cs
Normal file
84
Scripts/Items/Addons/LoomEastAddon.cs
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public interface ILoom
|
||||
{
|
||||
int Phase{ get; set; }
|
||||
}
|
||||
|
||||
public class LoomEastAddon : BaseAddon, ILoom
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LoomEastDeed(); } }
|
||||
|
||||
private int m_Phase;
|
||||
|
||||
public int Phase{ get{ return m_Phase; } set{ m_Phase = value; } }
|
||||
|
||||
[Constructable]
|
||||
public LoomEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1060 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x105F ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public LoomEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( (int) m_Phase );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_Phase = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class LoomEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LoomEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044343; } } // loom (east)
|
||||
|
||||
[Constructable]
|
||||
public LoomEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LoomEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
79
Scripts/Items/Addons/LoomSouthAddon.cs
Normal file
79
Scripts/Items/Addons/LoomSouthAddon.cs
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LoomSouthAddon : BaseAddon, ILoom
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new LoomSouthDeed(); } }
|
||||
|
||||
private int m_Phase;
|
||||
|
||||
public int Phase{ get{ return m_Phase; } set{ m_Phase = value; } }
|
||||
|
||||
[Constructable]
|
||||
public LoomSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1061 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1062 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public LoomSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( (int) m_Phase );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_Phase = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class LoomSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new LoomSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044344; } } // loom (south)
|
||||
|
||||
[Constructable]
|
||||
public LoomSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public LoomSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Scripts/Items/Addons/MediumStoneTableEastAddon.cs
Normal file
72
Scripts/Items/Addons/MediumStoneTableEastAddon.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MediumStoneTableEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new MediumStoneTableEastDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public MediumStoneTableEastAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public MediumStoneTableEastAddon( int hue )
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1202 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1201 ), 0, 1, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public MediumStoneTableEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class MediumStoneTableEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new MediumStoneTableEastAddon( this.Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1044508; } } // stone table (east)
|
||||
|
||||
[Constructable]
|
||||
public MediumStoneTableEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public MediumStoneTableEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Scripts/Items/Addons/MediumStoneTableSouthAddon.cs
Normal file
72
Scripts/Items/Addons/MediumStoneTableSouthAddon.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MediumStoneTableSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new MediumStoneTableSouthDeed(); } }
|
||||
|
||||
public override bool RetainDeedHue{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public MediumStoneTableSouthAddon() : this( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public MediumStoneTableSouthAddon( int hue )
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1205 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1204 ), 1, 0, 0 );
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public MediumStoneTableSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class MediumStoneTableSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new MediumStoneTableSouthAddon( Hue ); } }
|
||||
public override int LabelNumber{ get{ return 1044509; } } // stone table (South)
|
||||
|
||||
[Constructable]
|
||||
public MediumStoneTableSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public MediumStoneTableSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Items/Addons/OrnateElvenTableEastAddon.cs
Normal file
65
Scripts/Items/Addons/OrnateElvenTableEastAddon.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class OrnateElvenTableEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new OrnateElvenTableEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public OrnateElvenTableEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x308E ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x308D ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x308C ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public OrnateElvenTableEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class OrnateElvenTableEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new OrnateElvenTableEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073384; } } // ornate table (east)
|
||||
|
||||
[Constructable]
|
||||
public OrnateElvenTableEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public OrnateElvenTableEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Items/Addons/OrnateElvenTableSouthAddon.cs
Normal file
65
Scripts/Items/Addons/OrnateElvenTableSouthAddon.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class OrnateElvenTableSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new OrnateElvenTableSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public OrnateElvenTableSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x308F ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x3090 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3091 ), 0, -1, 0 );
|
||||
}
|
||||
|
||||
public OrnateElvenTableSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class OrnateElvenTableSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new OrnateElvenTableSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072869; } } // ornate table (south)
|
||||
|
||||
[Constructable]
|
||||
public OrnateElvenTableSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public OrnateElvenTableSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/ParrotPerchAddon.cs
Normal file
63
Scripts/Items/Addons/ParrotPerchAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ParrotPerchAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new ParrotPerchDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ParrotPerchAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2FF4 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ParrotPerchAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ParrotPerchDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new ParrotPerchAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072617; } } // parrot perch
|
||||
|
||||
[Constructable]
|
||||
public ParrotPerchDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public ParrotPerchDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Scripts/Items/Addons/PentagramAddon.cs
Normal file
71
Scripts/Items/Addons/PentagramAddon.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PentagramAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new PentagramDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PentagramAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xFE7 ), -1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0xFE8 ), 0, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0xFEB ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0xFE6 ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xFEA ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xFEE ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xFE9 ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0xFEC ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0xFED ), 1, 1, 0 );
|
||||
}
|
||||
|
||||
public PentagramAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PentagramDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new PentagramAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044328; } } // pentagram
|
||||
|
||||
[Constructable]
|
||||
public PentagramDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public PentagramDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
274
Scripts/Items/Addons/PickpocketDips.cs
Normal file
274
Scripts/Items/Addons/PickpocketDips.cs
Normal file
|
|
@ -0,0 +1,274 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x1EC0, 0x1EC3 )]
|
||||
public class PickpocketDip : AddonComponent
|
||||
{
|
||||
private double m_MinSkill;
|
||||
private double m_MaxSkill;
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double MinSkill
|
||||
{
|
||||
get{ return m_MinSkill; }
|
||||
set{ m_MinSkill = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double MaxSkill
|
||||
{
|
||||
get{ return m_MaxSkill; }
|
||||
set{ m_MaxSkill = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Swinging
|
||||
{
|
||||
get{ return ( m_Timer != null ); }
|
||||
}
|
||||
|
||||
public PickpocketDip( int itemID ) : base( itemID )
|
||||
{
|
||||
m_MinSkill = -25.0;
|
||||
m_MaxSkill = +25.0;
|
||||
}
|
||||
|
||||
public void UpdateItemID()
|
||||
{
|
||||
int baseItemID = 0x1EC0 + (((ItemID - 0x1EC0) / 3) * 3);
|
||||
|
||||
ItemID = baseItemID + (Swinging ? 1 : 0);
|
||||
}
|
||||
|
||||
public void BeginSwing()
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = new InternalTimer( this );
|
||||
m_Timer.Start();
|
||||
|
||||
UpdateItemID();
|
||||
}
|
||||
|
||||
public void EndSwing()
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = null;
|
||||
|
||||
UpdateItemID();
|
||||
}
|
||||
|
||||
public void Use( Mobile from )
|
||||
{
|
||||
from.Direction = from.GetDirectionTo( GetWorldLocation() );
|
||||
|
||||
Effects.PlaySound( GetWorldLocation(), Map, 0x4F );
|
||||
|
||||
if ( from.CheckSkill( SkillName.Stealing, m_MinSkill, m_MaxSkill ) )
|
||||
{
|
||||
SendLocalizedMessageTo( from, 501834 ); // You successfully avoid disturbing the dip while searching it.
|
||||
}
|
||||
else
|
||||
{
|
||||
Effects.PlaySound( GetWorldLocation(), Map, 0x390 );
|
||||
|
||||
BeginSwing();
|
||||
ProcessDelta();
|
||||
SendLocalizedMessageTo( from, 501831 ); // You carelessly bump the dip and start it swinging.
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( !from.InRange( GetWorldLocation(), 1 ) )
|
||||
SendLocalizedMessageTo( from, 501816 ); // You are too far away to do that.
|
||||
else if ( Swinging )
|
||||
SendLocalizedMessageTo( from, 501815 ); // You have to wait until it stops swinging.
|
||||
else if ( from.Skills[SkillName.Stealing].Base >= m_MaxSkill )
|
||||
SendLocalizedMessageTo( from, 501830 ); // Your ability to steal cannot improve any further by simply practicing on a dummy.
|
||||
else if ( from.Mounted )
|
||||
SendLocalizedMessageTo( from, 501829 ); // You can't practice on this while on a mount.
|
||||
else
|
||||
Use( from );
|
||||
}
|
||||
|
||||
public PickpocketDip( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
|
||||
writer.Write( m_MinSkill );
|
||||
writer.Write( m_MaxSkill );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_MinSkill = reader.ReadDouble();
|
||||
m_MaxSkill = reader.ReadDouble();
|
||||
|
||||
if ( m_MinSkill == 0.0 && m_MaxSkill == 30.0 )
|
||||
{
|
||||
m_MinSkill = -25.0;
|
||||
m_MaxSkill = +25.0;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UpdateItemID();
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private PickpocketDip m_Dip;
|
||||
|
||||
public InternalTimer( PickpocketDip dip ) : base( TimeSpan.FromSeconds( 3.0 ) )
|
||||
{
|
||||
m_Dip = dip;
|
||||
Priority = TimerPriority.FiftyMS;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Dip.EndSwing();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class PickpocketDipEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new PickpocketDipEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PickpocketDipEastAddon()
|
||||
{
|
||||
AddComponent( new PickpocketDip( 0x1EC3 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public PickpocketDipEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PickpocketDipEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new PickpocketDipEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044337; } } // pickpocket dip (east)
|
||||
|
||||
[Constructable]
|
||||
public PickpocketDipEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public PickpocketDipEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PickpocketDipSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new PickpocketDipSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PickpocketDipSouthAddon()
|
||||
{
|
||||
AddComponent( new PickpocketDip( 0x1EC0 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public PickpocketDipSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PickpocketDipSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new PickpocketDipSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044338; } } // pickpocket dip (south)
|
||||
|
||||
[Constructable]
|
||||
public PickpocketDipSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public PickpocketDipSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/PyramidAddon.cs
Normal file
63
Scripts/Items/Addons/PyramidAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PyramidAddon : BaseAddon
|
||||
{
|
||||
public override bool ShareHue
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public PyramidAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 1006 ), 0, 0, 5 );
|
||||
|
||||
for ( int o = 1; o <= 2; ++o )
|
||||
{
|
||||
AddComponent( new AddonComponent( 1011 ), -o, -o, ( 2 - o ) * 5 );
|
||||
AddComponent( new AddonComponent( 1012 ), +o, +o, ( 2 - o ) * 5 );
|
||||
AddComponent( new AddonComponent( 1013 ), +o, -o, ( 2 - o ) * 5 );
|
||||
AddComponent( new AddonComponent( 1014 ), -o, +o, ( 2 - o ) * 5 );
|
||||
}
|
||||
|
||||
for ( int o = -1; o <= 1; ++o )
|
||||
{
|
||||
AddComponent( new AddonComponent( 1007 ), o, 2, 0 );
|
||||
AddComponent( new AddonComponent( 1008 ), 2, o, 0 );
|
||||
AddComponent( new AddonComponent( 1009 ), o, -2, 0 );
|
||||
AddComponent( new AddonComponent( 1010 ), -2, o, 0 );
|
||||
}
|
||||
|
||||
AddComponent( new AddonComponent( 1007 ), 0, 1, 5 );
|
||||
AddComponent( new AddonComponent( 1008 ), 1, 0, 5 );
|
||||
AddComponent( new AddonComponent( 1009 ), 0, -1, 5 );
|
||||
AddComponent( new AddonComponent( 1010 ), -1, 0, 5 );
|
||||
}
|
||||
|
||||
public PyramidAddon( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
}
|
||||
180
Scripts/Items/Addons/RejuvinationAnkhs.cs
Normal file
180
Scripts/Items/Addons/RejuvinationAnkhs.cs
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RejuvinationAddonComponent : AddonComponent
|
||||
{
|
||||
public RejuvinationAddonComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public RejuvinationAddonComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( from.BeginAction( typeof( RejuvinationAddonComponent ) ) )
|
||||
{
|
||||
from.FixedEffect( 0x373A, 1, 16 );
|
||||
|
||||
int random = Utility.Random( 1, 4 );
|
||||
|
||||
if ( random == 1 || random == 4 )
|
||||
{
|
||||
from.Hits = from.HitsMax;
|
||||
SendLocalizedMessageTo( from, 500801 ); // A sense of warmth fills your body!
|
||||
}
|
||||
|
||||
if ( random == 2 || random == 4 )
|
||||
{
|
||||
from.Mana = from.ManaMax;
|
||||
SendLocalizedMessageTo( from, 500802 ); // A feeling of power surges through your veins!
|
||||
}
|
||||
|
||||
if ( random == 3 || random == 4 )
|
||||
{
|
||||
from.Stam = from.StamMax;
|
||||
SendLocalizedMessageTo( from, 500803 ); // You feel as though you've slept for days!
|
||||
}
|
||||
|
||||
Timer.DelayCall( TimeSpan.FromHours( 2.0 ), new TimerStateCallback( ReleaseUseLock_Callback ), new object[]{ from, random } );
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void ReleaseUseLock_Callback( object state )
|
||||
{
|
||||
object[] states = (object[])state;
|
||||
|
||||
Mobile from = (Mobile)states[0];
|
||||
int random = (int)states[1];
|
||||
|
||||
from.EndAction( typeof( RejuvinationAddonComponent ) );
|
||||
|
||||
if ( random == 4 )
|
||||
{
|
||||
from.Hits = from.HitsMax;
|
||||
from.Mana = from.ManaMax;
|
||||
from.Stam = from.StamMax;
|
||||
SendLocalizedMessageTo( from, 500807 ); // You feel completely rejuvinated!
|
||||
}
|
||||
}
|
||||
|
||||
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 abstract class BaseRejuvinationAnkh : BaseAddon
|
||||
{
|
||||
public BaseRejuvinationAnkh()
|
||||
{
|
||||
}
|
||||
|
||||
public override bool HandlesOnMovement{ get{ return true; } }
|
||||
|
||||
private DateTime m_NextMessage;
|
||||
|
||||
public override void OnMovement( Mobile m, Point3D oldLocation )
|
||||
{
|
||||
base.OnMovement( m, oldLocation );
|
||||
|
||||
if ( m.Player && Utility.InRange( Location, m.Location, 3 ) && !Utility.InRange( Location, oldLocation, 3 ) )
|
||||
{
|
||||
if ( DateTime.UtcNow >= m_NextMessage )
|
||||
{
|
||||
if ( Components.Count > 0 )
|
||||
((AddonComponent)Components[0]).SendLocalizedMessageTo( m, 1010061 ); // An overwhelming sense of peace fills you.
|
||||
|
||||
m_NextMessage = DateTime.UtcNow + TimeSpan.FromSeconds( 25.0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public BaseRejuvinationAnkh( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class RejuvinationAnkhWest : BaseRejuvinationAnkh
|
||||
{
|
||||
[Constructable]
|
||||
public RejuvinationAnkhWest()
|
||||
{
|
||||
AddComponent( new RejuvinationAddonComponent( 0x3 ), 0, 0, 0 );
|
||||
AddComponent( new RejuvinationAddonComponent( 0x2 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public RejuvinationAnkhWest( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class RejuvinationAnkhNorth : BaseRejuvinationAnkh
|
||||
{
|
||||
[Constructable]
|
||||
public RejuvinationAnkhNorth()
|
||||
{
|
||||
AddComponent( new RejuvinationAddonComponent( 0x4 ), 0, 0, 0 );
|
||||
AddComponent( new RejuvinationAddonComponent( 0x5 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public RejuvinationAnkhNorth( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
453
Scripts/Items/Addons/SHTeleporter.cs
Normal file
453
Scripts/Items/Addons/SHTeleporter.cs
Normal file
|
|
@ -0,0 +1,453 @@
|
|||
using System;
|
||||
using Server.Commands;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SHTeleComponent : AddonComponent
|
||||
{
|
||||
private bool m_Active;
|
||||
private SHTeleComponent m_TeleDest;
|
||||
private Point3D m_TeleOffset;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Active
|
||||
{
|
||||
get { return m_Active; }
|
||||
set
|
||||
{
|
||||
m_Active = value;
|
||||
|
||||
SHTeleporter sourceAddon = Addon as SHTeleporter;
|
||||
|
||||
if ( sourceAddon != null )
|
||||
sourceAddon.ChangeActive( value );
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Point3D TeleOffset
|
||||
{
|
||||
get { return m_TeleOffset; }
|
||||
set { m_TeleOffset = value; }
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Point3D TelePoint
|
||||
{
|
||||
get { return new Point3D( Location.X + TeleOffset.X, Location.Y + TeleOffset.Y, Location.Z + TeleOffset.Z ); }
|
||||
set { m_TeleOffset = new Point3D( value.X - Location.X, value.Y - Location.Y, value.Z - Location.Z ); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public SHTeleComponent TeleDest
|
||||
{
|
||||
get { return m_TeleDest; }
|
||||
set
|
||||
{
|
||||
m_TeleDest = value;
|
||||
|
||||
SHTeleporter sourceAddon = Addon as SHTeleporter;
|
||||
|
||||
if ( sourceAddon != null )
|
||||
sourceAddon.ChangeDest( value );
|
||||
}
|
||||
}
|
||||
|
||||
public override string DefaultName
|
||||
{
|
||||
get { return "a hole"; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SHTeleComponent() : this( 0x1775 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SHTeleComponent( int itemID ) : this( itemID, new Point3D( 0, 0, 0 ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SHTeleComponent( int itemID, Point3D offset ) : base( itemID )
|
||||
{
|
||||
Movable = false;
|
||||
Hue = 1;
|
||||
|
||||
m_Active = true;
|
||||
m_TeleOffset = offset;
|
||||
}
|
||||
|
||||
public SHTeleComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile m )
|
||||
{
|
||||
if ( !m_Active || m_TeleDest == null || m_TeleDest.Deleted || m_TeleDest.Map == Map.Internal )
|
||||
return;
|
||||
|
||||
if ( m.InRange( this, 3 ) )
|
||||
{
|
||||
Map map = m_TeleDest.Map;
|
||||
Point3D p = m_TeleDest.TelePoint;
|
||||
|
||||
Server.Mobiles.BaseCreature.TeleportPets( m, p, map );
|
||||
|
||||
m.MoveToWorld( p, map );
|
||||
}
|
||||
else
|
||||
{
|
||||
m.SendLocalizedMessage( 1019045 ); // I can't reach that.
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDoubleClickDead( Mobile m )
|
||||
{
|
||||
OnDoubleClick( m );
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int)0 ); // version
|
||||
|
||||
writer.Write( m_Active );
|
||||
writer.Write( m_TeleDest );
|
||||
writer.Write( m_TeleOffset );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_Active = reader.ReadBool();
|
||||
m_TeleDest = reader.ReadItem() as SHTeleComponent;
|
||||
m_TeleOffset = reader.ReadPoint3D();
|
||||
}
|
||||
}
|
||||
|
||||
public class SHTeleporter : BaseAddon
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
CommandSystem.Register( "SHTelGen", AccessLevel.Administrator, new CommandEventHandler( SHTelGen_OnCommand ) );
|
||||
}
|
||||
|
||||
[Usage( "SHTelGen" )]
|
||||
[Description( "Generates solen hives teleporters." )]
|
||||
public static void SHTelGen_OnCommand( CommandEventArgs e )
|
||||
{
|
||||
World.Broadcast( 0x35, true, "Solen hives teleporters are being generated, please wait." );
|
||||
|
||||
DateTime startTime = DateTime.UtcNow;
|
||||
|
||||
int count = new SHTeleporterCreator().CreateSHTeleporters();
|
||||
|
||||
DateTime endTime = DateTime.UtcNow;
|
||||
|
||||
World.Broadcast( 0x35, true, "{0} solen hives teleporters have been created. The entire process took {1:F1} seconds.", count, (endTime - startTime).TotalSeconds );
|
||||
}
|
||||
|
||||
public class SHTeleporterCreator
|
||||
{
|
||||
private int m_Count;
|
||||
|
||||
public SHTeleporterCreator()
|
||||
{
|
||||
m_Count = 0;
|
||||
}
|
||||
|
||||
public static SHTeleporter FindSHTeleporter( Map map, Point3D p )
|
||||
{
|
||||
IPooledEnumerable eable = map.GetItemsInRange( p, 0 );
|
||||
|
||||
foreach ( Item item in eable )
|
||||
{
|
||||
if ( item is SHTeleporter && item.Z == p.Z )
|
||||
{
|
||||
eable.Free();
|
||||
return (SHTeleporter)item;
|
||||
}
|
||||
}
|
||||
|
||||
eable.Free();
|
||||
return null;
|
||||
}
|
||||
|
||||
public SHTeleporter AddSHT( Map map, bool ext, int x, int y, int z )
|
||||
{
|
||||
Point3D p = new Point3D( x, y, z );
|
||||
SHTeleporter tele = FindSHTeleporter( map, p );
|
||||
|
||||
if ( tele == null )
|
||||
{
|
||||
tele = new SHTeleporter( ext );
|
||||
tele.MoveToWorld( p, map );
|
||||
|
||||
m_Count++;
|
||||
}
|
||||
|
||||
return tele;
|
||||
}
|
||||
|
||||
public static void Link( SHTeleporter tele1, SHTeleporter tele2 )
|
||||
{
|
||||
tele1.ChangeDest( tele2 );
|
||||
tele2.ChangeDest( tele1 );
|
||||
}
|
||||
|
||||
public void AddSHTCouple( Map map, bool ext1, int x1, int y1, int z1, bool ext2, int x2, int y2, int z2 )
|
||||
{
|
||||
SHTeleporter tele1 = AddSHT( map, ext1, x1, y1, z1 );
|
||||
SHTeleporter tele2 = AddSHT( map, ext2, x2, y2, z2 );
|
||||
|
||||
Link( tele1, tele2 );
|
||||
}
|
||||
|
||||
public void AddSHTCouple( bool ext1, int x1, int y1, int z1, bool ext2, int x2, int y2, int z2 )
|
||||
{
|
||||
AddSHTCouple( Map.Trammel, ext1, x1, y1, z1, ext2, x2, y2, z2 );
|
||||
AddSHTCouple( Map.Felucca, ext1, x1, y1, z1, ext2, x2, y2, z2 );
|
||||
}
|
||||
|
||||
public int CreateSHTeleporters()
|
||||
{
|
||||
SHTeleporter tele1, tele2;
|
||||
|
||||
AddSHTCouple( true, 2608, 763, 0, false, 5918, 1794, 0 );
|
||||
AddSHTCouple( false, 5897, 1877, 0, false, 5871, 1867, 0 );
|
||||
AddSHTCouple( false, 5852, 1848, 0, false, 5771, 1867, 0 );
|
||||
|
||||
tele1 = AddSHT( Map.Trammel, false, 5747, 1895, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Trammel, false, 5658, 1898, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
tele1 = AddSHT( Map.Felucca, false, 5747, 1895, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Felucca, false, 5658, 1898, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
AddSHTCouple( false, 5727, 1894, 0, false, 5756, 1794, 0 );
|
||||
AddSHTCouple( false, 5784, 1929, 0, false, 5700, 1929, 0 );
|
||||
|
||||
tele1 = AddSHT( Map.Trammel, false, 5711, 1952, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Trammel, false, 5657, 1954, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
tele1 = AddSHT( Map.Felucca, false, 5711, 1952, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Felucca, false, 5657, 1954, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
tele1 = AddSHT( Map.Trammel, false, 5655, 2018, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Trammel, true, 1690, 2789, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
tele1 = AddSHT( Map.Felucca, false, 5655, 2018, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Felucca, true, 1690, 2789, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
AddSHTCouple( false, 5809, 1905, 0, false, 5876, 1891, 0 );
|
||||
|
||||
tele1 = AddSHT( Map.Trammel, false, 5814, 2015, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Trammel, false, 5913, 1893, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
tele1 = AddSHT( Map.Felucca, false, 5814, 2015, 0 );
|
||||
tele1.LeftTele.TeleOffset = new Point3D( -1, 3, 0 );
|
||||
tele2 = AddSHT( Map.Felucca, false, 5913, 1893, 0 );
|
||||
Link( tele1, tele2 );
|
||||
|
||||
AddSHTCouple( false, 5919, 2021, 0, true, 1724, 814, 0 );
|
||||
|
||||
tele1 = AddSHT( Map.Trammel, false, 5654, 1791, 0 );
|
||||
tele2 = AddSHT( Map.Trammel, true, 730, 1451, 0 );
|
||||
Link( tele1, tele2 );
|
||||
AddSHT( Map.Trammel, false, 5734, 1859, 0 ).ChangeDest( tele2 );
|
||||
|
||||
tele1 = AddSHT( Map.Felucca, false, 5654, 1791, 0 );
|
||||
tele2 = AddSHT( Map.Felucca, true, 730, 1451, 0 );
|
||||
Link( tele1, tele2 );
|
||||
AddSHT( Map.Felucca, false, 5734, 1859, 0 ).ChangeDest( tele2 );
|
||||
|
||||
return m_Count;
|
||||
}
|
||||
}
|
||||
|
||||
private bool m_External;
|
||||
|
||||
private SHTeleComponent m_UpTele;
|
||||
private SHTeleComponent m_RightTele;
|
||||
private SHTeleComponent m_DownTele;
|
||||
private SHTeleComponent m_LeftTele;
|
||||
|
||||
private bool m_Changing;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool External { get { return m_External; } }
|
||||
|
||||
public SHTeleComponent UpTele { get { return m_UpTele; } }
|
||||
public SHTeleComponent RightTele { get { return m_RightTele; } }
|
||||
public SHTeleComponent DownTele { get { return m_DownTele; } }
|
||||
public SHTeleComponent LeftTele { get { return m_LeftTele; } }
|
||||
|
||||
[Constructable]
|
||||
public SHTeleporter() : this( true )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SHTeleporter( bool external )
|
||||
{
|
||||
m_Changing = false;
|
||||
m_External = external;
|
||||
|
||||
if ( external )
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x549 ), -1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x54D ), 0, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x54E ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x548 ), 2, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x54B ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x53B ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x53B ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x544 ), 2, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x54C ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x53B ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x53B ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x545 ), 2, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x547 ), -1, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x541 ), 0, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x543 ), 1, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x540 ), 2, 2, 0 );
|
||||
}
|
||||
|
||||
Point3D upOS = external ? new Point3D( -1, 0, 0 ) : new Point3D( -2, -1, 0 );
|
||||
m_UpTele = new SHTeleComponent( external ? 0x1775 : 0x495, upOS );
|
||||
AddComponent( m_UpTele, 0, 0, 0 );
|
||||
|
||||
Point3D rightOS = external ? new Point3D( -2, 0, 0 ) : new Point3D( 2, -1, 0 );
|
||||
m_RightTele = new SHTeleComponent( external ? 0x1775 : 0x495, rightOS );
|
||||
AddComponent( m_RightTele, 1, 0, 0 );
|
||||
|
||||
Point3D downOS = external ? new Point3D( -2, -1, 0 ) : new Point3D( 2, 2, 0 );
|
||||
m_DownTele = new SHTeleComponent( external ? 0x1776 : 0x495, downOS );
|
||||
AddComponent( m_DownTele, 1, 1, 0 );
|
||||
|
||||
Point3D leftOS = external ? new Point3D( -1, -1, 0 ) : new Point3D( -1, 2, 0 );
|
||||
m_LeftTele = new SHTeleComponent( external ? 0x1775 : 0x495, leftOS );
|
||||
AddComponent( m_LeftTele, 0, 1, 0 );
|
||||
}
|
||||
|
||||
public SHTeleporter( Serial serial ) : base( serial )
|
||||
{
|
||||
m_Changing = false;
|
||||
}
|
||||
|
||||
public override bool ShareHue{ get { return false; } }
|
||||
|
||||
public void ChangeActive( bool active )
|
||||
{
|
||||
if ( m_Changing )
|
||||
return;
|
||||
|
||||
m_Changing = true;
|
||||
|
||||
m_UpTele.Active = active;
|
||||
m_RightTele.Active = active;
|
||||
m_DownTele.Active = active;
|
||||
m_LeftTele.Active = active;
|
||||
|
||||
m_Changing = false;
|
||||
}
|
||||
|
||||
public void ChangeDest( SHTeleComponent dest )
|
||||
{
|
||||
if ( m_Changing )
|
||||
return;
|
||||
|
||||
m_Changing = true;
|
||||
|
||||
if ( dest == null || !(dest.Addon is SHTeleporter) )
|
||||
{
|
||||
m_UpTele.TeleDest = dest;
|
||||
m_RightTele.TeleDest = dest;
|
||||
m_DownTele.TeleDest = dest;
|
||||
m_LeftTele.TeleDest = dest;
|
||||
}
|
||||
else
|
||||
{
|
||||
SHTeleporter destAddon = (SHTeleporter)dest.Addon;
|
||||
|
||||
m_UpTele.TeleDest = destAddon.UpTele;
|
||||
m_RightTele.TeleDest = destAddon.RightTele;
|
||||
m_DownTele.TeleDest = destAddon.DownTele;
|
||||
m_LeftTele.TeleDest = destAddon.LeftTele;
|
||||
}
|
||||
|
||||
m_Changing = false;
|
||||
}
|
||||
|
||||
public void ChangeDest( SHTeleporter destAddon )
|
||||
{
|
||||
if ( m_Changing )
|
||||
return;
|
||||
|
||||
m_Changing = true;
|
||||
|
||||
if ( destAddon != null )
|
||||
{
|
||||
m_UpTele.TeleDest = destAddon.UpTele;
|
||||
m_RightTele.TeleDest = destAddon.RightTele;
|
||||
m_DownTele.TeleDest = destAddon.DownTele;
|
||||
m_LeftTele.TeleDest = destAddon.LeftTele;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_UpTele.TeleDest = null;
|
||||
m_RightTele.TeleDest = null;
|
||||
m_DownTele.TeleDest = null;
|
||||
m_LeftTele.TeleDest = null;
|
||||
}
|
||||
|
||||
m_Changing = false;
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int)0 ); // version
|
||||
|
||||
writer.Write( m_External );
|
||||
|
||||
writer.Write( m_UpTele );
|
||||
writer.Write( m_RightTele );
|
||||
writer.Write( m_DownTele );
|
||||
writer.Write( m_LeftTele );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_External = reader.ReadBool();
|
||||
|
||||
m_UpTele = (SHTeleComponent)reader.ReadItem();
|
||||
m_RightTele = (SHTeleComponent)reader.ReadItem();
|
||||
m_DownTele = (SHTeleComponent)reader.ReadItem();
|
||||
m_LeftTele = (SHTeleComponent)reader.ReadItem();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/SandstoneFireplaceEastAddon.cs
Normal file
64
Scripts/Items/Addons/SandstoneFireplaceEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SandstoneFireplaceEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SandstoneFireplaceEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SandstoneFireplaceEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x489 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x475 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public SandstoneFireplaceEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SandstoneFireplaceEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SandstoneFireplaceEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1061844; } } // sandstone fireplace (east)
|
||||
|
||||
[Constructable]
|
||||
public SandstoneFireplaceEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SandstoneFireplaceEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/SandstoneFireplaceSouthAddon.cs
Normal file
64
Scripts/Items/Addons/SandstoneFireplaceSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SandstoneFireplaceSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SandstoneFireplaceSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SandstoneFireplaceSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x482 ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x47B ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SandstoneFireplaceSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SandstoneFireplaceSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SandstoneFireplaceSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1061845; } } // sandstone fireplace (south)
|
||||
|
||||
[Constructable]
|
||||
public SandstoneFireplaceSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SandstoneFireplaceSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
54
Scripts/Items/Addons/SandstoneFountainAddon.cs
Normal file
54
Scripts/Items/Addons/SandstoneFountainAddon.cs
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SandstoneFountainAddon : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public SandstoneFountainAddon()
|
||||
{
|
||||
int itemID = 0x19C3;
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -2, +1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, +1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, +1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, +1, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, +0, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, -1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, -2, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, -2, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, -1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, +0, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, +0, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), -2, +0, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -2, -1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, -1, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, -2, 0 );
|
||||
AddComponent( new AddonComponent( ++itemID ), -2, -2, 0 );
|
||||
}
|
||||
|
||||
public SandstoneFountainAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
54
Scripts/Items/Addons/SerpentPillarAddon.cs
Normal file
54
Scripts/Items/Addons/SerpentPillarAddon.cs
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SerpentPillarAddon : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public SerpentPillarAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 9020 ), -2, +1, 0 );
|
||||
AddComponent( new AddonComponent( 9021 ), -2, +0, 0 );
|
||||
AddComponent( new AddonComponent( 9022 ), -2, -1, 0 );
|
||||
AddComponent( new AddonComponent( 9023 ), -2, -2, 0 );
|
||||
AddComponent( new AddonComponent( 9024 ), -1, -2, 0 );
|
||||
AddComponent( new AddonComponent( 9025 ), +0, -2, 0 );
|
||||
AddComponent( new AddonComponent( 9026 ), +1, -2, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 9027 ), -1, +1, 0 );
|
||||
AddComponent( new AddonComponent( 9028 ), -1, +0, 0 );
|
||||
AddComponent( new AddonComponent( 9029 ), -1, -1, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 9030 ), +0, +1, 0 );
|
||||
AddComponent( new AddonComponent( 9031 ), +0, +0, 0 );
|
||||
AddComponent( new AddonComponent( 9032 ), +0, -1, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 9033 ), +1, +0, 0 );
|
||||
AddComponent( new AddonComponent( 9034 ), +1, -1, 0 );
|
||||
}
|
||||
|
||||
public SerpentPillarAddon( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Scripts/Items/Addons/ShrineOfWisdomAddon.cs
Normal file
65
Scripts/Items/Addons/ShrineOfWisdomAddon.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ShrineOfWisdomAddon : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public ShrineOfWisdomAddon()
|
||||
{
|
||||
AddComponent( new ShrineOfWisdomComponent( 0x14C3 ), 0, 0, 0 );
|
||||
AddComponent( new ShrineOfWisdomComponent( 0x14C6 ), 1, 0, 0 );
|
||||
AddComponent( new ShrineOfWisdomComponent( 0x14D4 ), 0, 1, 0 );
|
||||
AddComponent( new ShrineOfWisdomComponent( 0x14D5 ), 1, 1, 0 );
|
||||
Hue = 0x47E;
|
||||
}
|
||||
|
||||
public ShrineOfWisdomAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Server.Engines.Craft.Forge]
|
||||
public class ShrineOfWisdomComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1062046; } } // Shrine of Wisdom
|
||||
|
||||
[Constructable]
|
||||
public ShrineOfWisdomComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public ShrineOfWisdomComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
44
Scripts/Items/Addons/SkullPileAddon.cs
Normal file
44
Scripts/Items/Addons/SkullPileAddon.cs
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SkullPileAddon : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public SkullPileAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 6872 ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 6873 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 6874 ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 6875 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 6876 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 6877 ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 6878 ), 2, -1, 0 );
|
||||
AddComponent( new AddonComponent( 6879 ), 2, 0, 0 );
|
||||
}
|
||||
|
||||
public SkullPileAddon( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (byte) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadByte();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/SmallBedEastAddon.cs
Normal file
64
Scripts/Items/Addons/SmallBedEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SmallBedEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SmallBedEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SmallBedEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xA5D ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xA62 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public SmallBedEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SmallBedEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SmallBedEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044322; } } // small bed (east)
|
||||
|
||||
[Constructable]
|
||||
public SmallBedEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SmallBedEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/SmallBedSouthAddon.cs
Normal file
64
Scripts/Items/Addons/SmallBedSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SmallBedSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SmallBedSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SmallBedSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xA63 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xA5C ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public SmallBedSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SmallBedSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SmallBedSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044321; } } // small bed (south)
|
||||
|
||||
[Constructable]
|
||||
public SmallBedSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SmallBedSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/SmallForgeAddon.cs
Normal file
63
Scripts/Items/Addons/SmallForgeAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SmallForgeAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SmallForgeDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SmallForgeAddon()
|
||||
{
|
||||
AddComponent( new ForgeComponent( 0xFB1 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SmallForgeAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SmallForgeDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SmallForgeAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044330; } } // small forge
|
||||
|
||||
[Constructable]
|
||||
public SmallForgeDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SmallForgeDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
170
Scripts/Items/Addons/SolenAntHole.cs
Normal file
170
Scripts/Items/Addons/SolenAntHole.cs
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
using Server.Mobiles;
|
||||
using Server.Spells;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SolenAntHoleComponent : AddonComponent
|
||||
{
|
||||
public SolenAntHoleComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( from.InRange( this, 2 ) )
|
||||
{
|
||||
Map map = Map;
|
||||
|
||||
if ( map == Map.Trammel || map == Map.Felucca )
|
||||
{
|
||||
from.MoveToWorld( new Point3D( 5922, 2024, 0 ), map );
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, true, String.Format( "* {0} dives into the hole and disappears!*", from.Name ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
public SolenAntHoleComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class SolenAntHole : BaseAddon
|
||||
{
|
||||
public override bool ShareHue { get { return false; } }
|
||||
public override bool HandlesOnMovement { get { return true; } }
|
||||
|
||||
private List<Mobile> m_Spawned;
|
||||
|
||||
[Constructable]
|
||||
public SolenAntHole() : base()
|
||||
{
|
||||
m_Spawned = new List<Mobile>();
|
||||
|
||||
AddComponent( new AddonComponent( 0x914 ), "dirt", 0, 0, 0, 0 );
|
||||
AddComponent( new SolenAntHoleComponent( 0x122A ), "a hole", 0x1, 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1B23 ), "dirt", 0x970, 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0xEE0 ), "dirt", 0, 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1B24 ), "dirt", 0x970, 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0xEE1 ), "dirt", 0, 0, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1B25 ), "dirt", 0x970, -1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0xEE2 ), "dirt", 0, -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1B26 ), "dirt", 0x970, -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0xED3 ), "dirt", 0, 0, 1, 0 );
|
||||
}
|
||||
|
||||
public override void OnMovement( Mobile m, Point3D oldLocation )
|
||||
{
|
||||
if ( !m.Player || !m.Alive || m.Hidden || !SpawnKilled() )
|
||||
return;
|
||||
|
||||
if ( Utility.InRange( Location, m.Location, 3 ) && !Utility.InRange( Location, oldLocation, 3 ) )
|
||||
{
|
||||
int count = 1 + Utility.Random( 4 );
|
||||
|
||||
for ( int i = 0; i < count; i++ )
|
||||
SpawnAnt();
|
||||
|
||||
if ( 0.05 > Utility.RandomDouble() )
|
||||
SpawnAnt( new Beetle() );
|
||||
}
|
||||
}
|
||||
|
||||
public void AddComponent( AddonComponent c, string name, int hue, int x, int y, int z )
|
||||
{
|
||||
c.Hue = hue;
|
||||
c.Name = name;
|
||||
AddComponent( c, x, y, z );
|
||||
}
|
||||
|
||||
public void SpawnAnt()
|
||||
{
|
||||
int random = Utility.Random( 3 );
|
||||
Map map = Map;
|
||||
|
||||
if ( map == Map.Trammel )
|
||||
{
|
||||
if ( random < 2 )
|
||||
SpawnAnt( new RedSolenWorker() );
|
||||
else
|
||||
SpawnAnt( new RedSolenWarrior() );
|
||||
}
|
||||
else if ( map == Map.Felucca )
|
||||
{
|
||||
if ( random < 2 )
|
||||
SpawnAnt( new BlackSolenWorker() );
|
||||
else
|
||||
SpawnAnt( new BlackSolenWarrior() );
|
||||
}
|
||||
}
|
||||
|
||||
public void SpawnAnt( BaseCreature ant )
|
||||
{
|
||||
m_Spawned.Add( ant );
|
||||
|
||||
Map map = Map;
|
||||
Point3D p = Location;
|
||||
|
||||
for ( int i = 0; i < 5; i++ )
|
||||
if ( SpellHelper.FindValidSpawnLocation( map, ref p, false ) )
|
||||
break;
|
||||
|
||||
ant.MoveToWorld( p, map );
|
||||
ant.Home = Location;
|
||||
ant.RangeHome = 10;
|
||||
}
|
||||
|
||||
public bool SpawnKilled()
|
||||
{
|
||||
for ( int i = m_Spawned.Count - 1; i >= 0; i-- )
|
||||
{
|
||||
if ( !m_Spawned[ i ].Alive || m_Spawned[ i ].Deleted )
|
||||
m_Spawned.RemoveAt( i );
|
||||
}
|
||||
|
||||
return m_Spawned.Count < 2;
|
||||
}
|
||||
|
||||
public SolenAntHole( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
|
||||
writer.WriteMobileList<Mobile>( m_Spawned );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_Spawned = reader.ReadStrongMobileList<Mobile>();
|
||||
}
|
||||
}
|
||||
}
|
||||
147
Scripts/Items/Addons/SpinningwheelEastAddon.cs
Normal file
147
Scripts/Items/Addons/SpinningwheelEastAddon.cs
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public delegate void SpinCallback( ISpinningWheel sender, Mobile from, int hue );
|
||||
|
||||
public interface ISpinningWheel
|
||||
{
|
||||
bool Spinning{ get; }
|
||||
void BeginSpin( SpinCallback callback, Mobile from, int hue );
|
||||
}
|
||||
|
||||
public class SpinningwheelEastAddon : BaseAddon, ISpinningWheel
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SpinningwheelEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SpinningwheelEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1019 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SpinningwheelEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
public override void OnComponentLoaded( AddonComponent c )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1016:
|
||||
case 0x101A:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Spinning{ get{ return m_Timer != null; } }
|
||||
|
||||
public void BeginSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
m_Timer = new SpinTimer( this, callback, from, hue );
|
||||
m_Timer.Start();
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1015:
|
||||
case 0x1019:
|
||||
case 0x101C:
|
||||
case 0x10A4: ++c.ItemID; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void EndSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = null;
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1016:
|
||||
case 0x101A:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( callback != null )
|
||||
callback( this, from, hue );
|
||||
}
|
||||
|
||||
private class SpinTimer : Timer
|
||||
{
|
||||
private SpinningwheelEastAddon m_Wheel;
|
||||
private SpinCallback m_Callback;
|
||||
private Mobile m_From;
|
||||
private int m_Hue;
|
||||
|
||||
public SpinTimer( SpinningwheelEastAddon wheel, SpinCallback callback, Mobile from, int hue ) : base( TimeSpan.FromSeconds( 3.0 ) )
|
||||
{
|
||||
m_Wheel = wheel;
|
||||
m_Callback = callback;
|
||||
m_From = from;
|
||||
m_Hue = hue;
|
||||
Priority = TimerPriority.TwoFiftyMS;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Wheel.EndSpin( m_Callback, m_From, m_Hue );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class SpinningwheelEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SpinningwheelEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044341; } } // spining wheel (east)
|
||||
|
||||
[Constructable]
|
||||
public SpinningwheelEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SpinningwheelEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
139
Scripts/Items/Addons/SpinningwheelSouthAddon.cs
Normal file
139
Scripts/Items/Addons/SpinningwheelSouthAddon.cs
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SpinningwheelSouthAddon : BaseAddon, ISpinningWheel
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SpinningwheelSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SpinningwheelSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1015 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SpinningwheelSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
public override void OnComponentLoaded( AddonComponent c )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1016:
|
||||
case 0x101A:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Spinning{ get{ return m_Timer != null; } }
|
||||
|
||||
public void BeginSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
m_Timer = new SpinTimer( this, callback, from, hue );
|
||||
m_Timer.Start();
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1015:
|
||||
case 0x1019:
|
||||
case 0x101C:
|
||||
case 0x10A4: ++c.ItemID; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void EndSpin( SpinCallback callback, Mobile from, int hue )
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = null;
|
||||
|
||||
foreach ( AddonComponent c in Components )
|
||||
{
|
||||
switch ( c.ItemID )
|
||||
{
|
||||
case 0x1016:
|
||||
case 0x101A:
|
||||
case 0x101D:
|
||||
case 0x10A5: --c.ItemID; break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( callback != null )
|
||||
callback( this, from, hue );
|
||||
}
|
||||
|
||||
private class SpinTimer : Timer
|
||||
{
|
||||
private SpinningwheelSouthAddon m_Wheel;
|
||||
private SpinCallback m_Callback;
|
||||
private Mobile m_From;
|
||||
private int m_Hue;
|
||||
|
||||
public SpinTimer( SpinningwheelSouthAddon wheel, SpinCallback callback, Mobile from, int hue ) : base( TimeSpan.FromSeconds( 3.0 ) )
|
||||
{
|
||||
m_Wheel = wheel;
|
||||
m_Callback = callback;
|
||||
m_From = from;
|
||||
m_Hue = hue;
|
||||
Priority = TimerPriority.TwoFiftyMS;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
m_Wheel.EndSpin( m_Callback, m_From, m_Hue );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class SpinningwheelSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SpinningwheelSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044342; } } // spining wheel (south)
|
||||
|
||||
[Constructable]
|
||||
public SpinningwheelSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SpinningwheelSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/SquirrelStatueEastAddon.cs
Normal file
63
Scripts/Items/Addons/SquirrelStatueEastAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SquirrelStatueEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SquirrelStatueEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SquirrelStatueEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2D10 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SquirrelStatueEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SquirrelStatueEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SquirrelStatueEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1073398; } } // squirrel statue (east)
|
||||
|
||||
[Constructable]
|
||||
public SquirrelStatueEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SquirrelStatueEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/SquirrelStatueSouthAddon.cs
Normal file
63
Scripts/Items/Addons/SquirrelStatueSouthAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SquirrelStatueSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SquirrelStatueSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SquirrelStatueSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2D11 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SquirrelStatueSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SquirrelStatueSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SquirrelStatueSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072884; } } // squirrel statue (south)
|
||||
|
||||
[Constructable]
|
||||
public SquirrelStatueSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SquirrelStatueSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/StoneFireplaceEastAddon.cs
Normal file
64
Scripts/Items/Addons/StoneFireplaceEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class StoneFireplaceEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new StoneFireplaceEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public StoneFireplaceEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x959 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x953 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public StoneFireplaceEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class StoneFireplaceEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new StoneFireplaceEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1061848; } } // stone fireplace (east)
|
||||
|
||||
[Constructable]
|
||||
public StoneFireplaceEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public StoneFireplaceEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/StoneFireplaceSouthAddon.cs
Normal file
64
Scripts/Items/Addons/StoneFireplaceSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class StoneFireplaceSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new StoneFireplaceSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public StoneFireplaceSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x967 ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x961 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public StoneFireplaceSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class StoneFireplaceSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new StoneFireplaceSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1061849; } } // stone fireplace (south)
|
||||
|
||||
[Constructable]
|
||||
public StoneFireplaceSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public StoneFireplaceSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
54
Scripts/Items/Addons/StoneFountainAddon.cs
Normal file
54
Scripts/Items/Addons/StoneFountainAddon.cs
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class StoneFountainAddon : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public StoneFountainAddon()
|
||||
{
|
||||
int itemID = 0x1731;
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -2, +1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, +1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, +1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, +1, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, +0, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, -1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +1, -2, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, -2, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, -1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), +0, +0, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, +0, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), -2, +0, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -2, -1, 0 );
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, -1, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( itemID++ ), -1, -2, 0 );
|
||||
AddComponent( new AddonComponent( ++itemID ), -2, -2, 0 );
|
||||
}
|
||||
|
||||
public StoneFountainAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/StoneOvenEastAddon.cs
Normal file
64
Scripts/Items/Addons/StoneOvenEastAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class StoneOvenEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new StoneOvenEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public StoneOvenEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x92C ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x92B ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public StoneOvenEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class StoneOvenEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new StoneOvenEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044345; } } // stone oven (east)
|
||||
|
||||
[Constructable]
|
||||
public StoneOvenEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public StoneOvenEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Addons/StoneOvenSouthAddon.cs
Normal file
64
Scripts/Items/Addons/StoneOvenSouthAddon.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class StoneOvenSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new StoneOvenSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public StoneOvenSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x931 ), -1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x930 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public StoneOvenSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class StoneOvenSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new StoneOvenSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044346; } } // stone oven (south)
|
||||
|
||||
[Constructable]
|
||||
public StoneOvenSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public StoneOvenSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
237
Scripts/Items/Addons/StretchedHides.cs
Normal file
237
Scripts/Items/Addons/StretchedHides.cs
Normal file
|
|
@ -0,0 +1,237 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SmallStretchedHideEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SmallStretchedHideEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SmallStretchedHideEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1069 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SmallStretchedHideEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SmallStretchedHideEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SmallStretchedHideEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049401; } } // a small stretched hide deed facing east
|
||||
|
||||
[Constructable]
|
||||
public SmallStretchedHideEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SmallStretchedHideEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SmallStretchedHideSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new SmallStretchedHideSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SmallStretchedHideSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x107A ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SmallStretchedHideSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class SmallStretchedHideSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new SmallStretchedHideSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049402; } } // a small stretched hide deed facing south
|
||||
|
||||
[Constructable]
|
||||
public SmallStretchedHideSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public SmallStretchedHideSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class MediumStretchedHideEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new MediumStretchedHideEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public MediumStretchedHideEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x106B ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public MediumStretchedHideEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class MediumStretchedHideEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new MediumStretchedHideEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049403; } } // a medium stretched hide deed facing east
|
||||
|
||||
[Constructable]
|
||||
public MediumStretchedHideEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public MediumStretchedHideEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class MediumStretchedHideSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new MediumStretchedHideSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public MediumStretchedHideSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x107C ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public MediumStretchedHideSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class MediumStretchedHideSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new MediumStretchedHideSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1049404; } } // a medium stretched hide deed facing south
|
||||
|
||||
[Constructable]
|
||||
public MediumStretchedHideSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public MediumStretchedHideSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Items/Addons/TallElvenBedEastAddon.cs
Normal file
66
Scripts/Items/Addons/TallElvenBedEastAddon.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TallElvenBedEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new TallElvenBedEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TallElvenBedEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3054 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3053 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x3055 ), 2, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x3052 ), 2, 0, 0 );
|
||||
}
|
||||
|
||||
public TallElvenBedEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TallElvenBedEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new TallElvenBedEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072859; } } // tall elven bed (east)
|
||||
|
||||
[Constructable]
|
||||
public TallElvenBedEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public TallElvenBedEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Scripts/Items/Addons/TallElvenBedSouthAddon.cs
Normal file
66
Scripts/Items/Addons/TallElvenBedSouthAddon.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TallElvenBedSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new TallElvenBedSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TallElvenBedSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x3058 ), 0, 0, 0 ); // angolo alto sx
|
||||
AddComponent( new AddonComponent( 0x3057 ), -1, 1, 0 ); // angolo basso sx
|
||||
AddComponent( new AddonComponent( 0x3059 ), 0, -1, 0 ); // angolo alto dx
|
||||
AddComponent( new AddonComponent( 0x3056 ), 0, 1, 0 ); // angolo basso dx
|
||||
}
|
||||
|
||||
public TallElvenBedSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TallElvenBedSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new TallElvenBedSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072858; } } // tall elven bed (south)
|
||||
|
||||
[Constructable]
|
||||
public TallElvenBedSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public TallElvenBedSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
106
Scripts/Items/Addons/Telescope.cs
Normal file
106
Scripts/Items/Addons/Telescope.cs
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Telescope : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public Telescope()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1494 ), 0, 5, 0 );
|
||||
AddComponent( new AddonComponent( 0x145B ), 0, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x145A ), 0, 7, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1495 ), 1, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x145C ), 1, 7, 0 );
|
||||
AddComponent( new AddonComponent( 0x145D ), 1, 8, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1496 ), 2, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1499 ), 2, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x148E ), 2, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x1493 ), 2, 7, 0 );
|
||||
AddComponent( new AddonComponent( 0x1492 ), 2, 8, 0 );
|
||||
AddComponent( new AddonComponent( 0x145E ), 2, 9, 0 );
|
||||
AddComponent( new AddonComponent( 0x1459 ), 2,10, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1497 ), 3, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x145F ), 3, 9, 0 );
|
||||
AddComponent( new AddonComponent( 0x1461 ), 3,10, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x149A ), 4, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1498 ), 4, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x148F ), 4, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x148D ), 4, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x1488 ), 4, 8, 0 );
|
||||
AddComponent( new AddonComponent( 0x1460 ), 4, 9, 0 );
|
||||
AddComponent( new AddonComponent( 0x1462 ), 4,10, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x147D ), 5, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1490 ), 5, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x148B ), 5, 5, 0 );
|
||||
AddComponent( new AddonComponent( 0x148A ), 5, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x1486 ), 5, 7, 0 );
|
||||
AddComponent( new AddonComponent( 0x1485 ), 5, 8, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x147C ), 6, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1491 ), 6, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x148C ), 6, 5, 0 );
|
||||
AddComponent( new AddonComponent( 0x1489 ), 6, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x1487 ), 6, 7, 0 );
|
||||
AddComponent( new AddonComponent( 0x1484 ), 6, 8, 0 );
|
||||
AddComponent( new AddonComponent( 0x1463 ), 6,10, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x147B ), 7, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x147F ), 7, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1480 ), 7, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1482 ), 7, 5, 0 );
|
||||
AddComponent( new AddonComponent( 0x1469 ), 7, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x1468 ), 7, 7, 0 );
|
||||
AddComponent( new AddonComponent( 0x1465 ), 7, 8, 0 );
|
||||
AddComponent( new AddonComponent( 0x1464 ), 7, 9, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x147A ), 8, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1479 ), 8, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1477 ), 8, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x147E ), 8, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1481 ), 8, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1483 ), 8, 5, 0 );
|
||||
AddComponent( new AddonComponent( 0x146A ), 8, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x1467 ), 8, 7, 0 );
|
||||
AddComponent( new AddonComponent( 0x1466 ), 8, 8, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1478 ), 9, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1475 ), 9, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1474 ), 9, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x146F ), 9, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x146E ), 9, 5, 0 );
|
||||
AddComponent( new AddonComponent( 0x146D ), 9, 6, 0 );
|
||||
AddComponent( new AddonComponent( 0x146B ), 9, 7, 0 );
|
||||
|
||||
AddComponent( new AddonComponent( 0x1476 ),10, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x1473 ),10, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1470 ),10, 4, 0 );
|
||||
AddComponent( new AddonComponent( 0x1471 ),10, 5, 0 );
|
||||
AddComponent( new AddonComponent( 0x1472 ),10, 6, 0 );
|
||||
}
|
||||
|
||||
public Telescope( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
284
Scripts/Items/Addons/TrainingDummies.cs
Normal file
284
Scripts/Items/Addons/TrainingDummies.cs
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x1070, 0x1074 )]
|
||||
public class TrainingDummy : AddonComponent
|
||||
{
|
||||
private double m_MinSkill;
|
||||
private double m_MaxSkill;
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double MinSkill
|
||||
{
|
||||
get{ return m_MinSkill; }
|
||||
set{ m_MinSkill = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double MaxSkill
|
||||
{
|
||||
get{ return m_MaxSkill; }
|
||||
set{ m_MaxSkill = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Swinging
|
||||
{
|
||||
get{ return ( m_Timer != null ); }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public TrainingDummy() : this( 0x1074 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public TrainingDummy( int itemID ) : base( itemID )
|
||||
{
|
||||
m_MinSkill = -25.0;
|
||||
m_MaxSkill = +25.0;
|
||||
}
|
||||
|
||||
public void UpdateItemID()
|
||||
{
|
||||
int baseItemID = (ItemID / 2) * 2;
|
||||
|
||||
ItemID = baseItemID + (Swinging ? 1 : 0);
|
||||
}
|
||||
|
||||
public void BeginSwing()
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = new InternalTimer( this );
|
||||
m_Timer.Start();
|
||||
}
|
||||
|
||||
public void EndSwing()
|
||||
{
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = null;
|
||||
|
||||
UpdateItemID();
|
||||
}
|
||||
|
||||
public void OnHit()
|
||||
{
|
||||
UpdateItemID();
|
||||
Effects.PlaySound( GetWorldLocation(), Map, Utility.RandomList( 0x3A4, 0x3A6, 0x3A9, 0x3AE, 0x3B4, 0x3B6 ) );
|
||||
}
|
||||
|
||||
public void Use( Mobile from, BaseWeapon weapon )
|
||||
{
|
||||
BeginSwing();
|
||||
|
||||
from.Direction = from.GetDirectionTo( GetWorldLocation() );
|
||||
weapon.PlaySwingAnimation( from );
|
||||
|
||||
from.CheckSkill( weapon.Skill, m_MinSkill, m_MaxSkill );
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
BaseWeapon weapon = from.Weapon as BaseWeapon;
|
||||
|
||||
if ( weapon is BaseRanged )
|
||||
SendLocalizedMessageTo( from, 501822 ); // You can't practice ranged weapons on this.
|
||||
else if ( weapon == null || !from.InRange( GetWorldLocation(), weapon.MaxRange ) )
|
||||
SendLocalizedMessageTo( from, 501816 ); // You are too far away to do that.
|
||||
else if ( Swinging )
|
||||
SendLocalizedMessageTo( from, 501815 ); // You have to wait until it stops swinging.
|
||||
else if ( from.Skills[weapon.Skill].Base >= m_MaxSkill )
|
||||
SendLocalizedMessageTo( from, 501828 ); // Your skill cannot improve any further by simply practicing with a dummy.
|
||||
else if ( from.Mounted )
|
||||
SendLocalizedMessageTo( from, 501829 ); // You can't practice on this while on a mount.
|
||||
else
|
||||
Use( from, weapon );
|
||||
}
|
||||
|
||||
public TrainingDummy( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
|
||||
writer.Write( m_MinSkill );
|
||||
writer.Write( m_MaxSkill );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_MinSkill = reader.ReadDouble();
|
||||
m_MaxSkill = reader.ReadDouble();
|
||||
|
||||
if ( m_MinSkill == 0.0 && m_MaxSkill == 30.0 )
|
||||
{
|
||||
m_MinSkill = -25.0;
|
||||
m_MaxSkill = +25.0;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UpdateItemID();
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private TrainingDummy m_Dummy;
|
||||
private bool m_Delay = true;
|
||||
|
||||
public InternalTimer( TrainingDummy dummy ) : base( TimeSpan.FromSeconds( 0.25 ), TimeSpan.FromSeconds( 2.75 ) )
|
||||
{
|
||||
m_Dummy = dummy;
|
||||
Priority = TimerPriority.FiftyMS;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if ( m_Delay )
|
||||
m_Dummy.OnHit();
|
||||
else
|
||||
m_Dummy.EndSwing();
|
||||
|
||||
m_Delay = !m_Delay;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TrainingDummyEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new TrainingDummyEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TrainingDummyEastAddon()
|
||||
{
|
||||
AddComponent( new TrainingDummy( 0x1074 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public TrainingDummyEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TrainingDummyEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new TrainingDummyEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044335; } } // training dummy (east)
|
||||
|
||||
[Constructable]
|
||||
public TrainingDummyEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public TrainingDummyEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TrainingDummySouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new TrainingDummySouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TrainingDummySouthAddon()
|
||||
{
|
||||
AddComponent( new TrainingDummy( 0x1070 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public TrainingDummySouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TrainingDummySouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new TrainingDummySouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044336; } } // training dummy (south)
|
||||
|
||||
[Constructable]
|
||||
public TrainingDummySouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public TrainingDummySouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/WarriorStatueEastAddon.cs
Normal file
63
Scripts/Items/Addons/WarriorStatueEastAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class WarriorStatueEastAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new WarriorStatueEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public WarriorStatueEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2D12 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public WarriorStatueEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class WarriorStatueEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new WarriorStatueEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072888; } } // warrior statue (east)
|
||||
|
||||
[Constructable]
|
||||
public WarriorStatueEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public WarriorStatueEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Addons/WarriorStatueSouthAddon.cs
Normal file
63
Scripts/Items/Addons/WarriorStatueSouthAddon.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class WarriorStatueSouthAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new WarriorStatueSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public WarriorStatueSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x2D13 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public WarriorStatueSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class WarriorStatueSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new WarriorStatueSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1072887; } } // warrior statue (south)
|
||||
|
||||
[Constructable]
|
||||
public WarriorStatueSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public WarriorStatueSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
Scripts/Items/Addons/WaterTroughEastAddon.cs
Normal file
70
Scripts/Items/Addons/WaterTroughEastAddon.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class WaterTroughEastAddon : BaseAddon, IWaterSource
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new WaterTroughEastDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public WaterTroughEastAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xB41 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xB42 ), 0, 1, 0 );
|
||||
}
|
||||
|
||||
public WaterTroughEastAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public int Quantity
|
||||
{
|
||||
get{ return 500; }
|
||||
set{}
|
||||
}
|
||||
}
|
||||
|
||||
public class WaterTroughEastDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new WaterTroughEastAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044349; } } // water trough (east)
|
||||
|
||||
[Constructable]
|
||||
public WaterTroughEastDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public WaterTroughEastDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
Scripts/Items/Addons/WaterTroughSouthAddon.cs
Normal file
70
Scripts/Items/Addons/WaterTroughSouthAddon.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class WaterTroughSouthAddon : BaseAddon, IWaterSource
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new WaterTroughSouthDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public WaterTroughSouthAddon()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0xB43 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0xB44 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public WaterTroughSouthAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public int Quantity
|
||||
{
|
||||
get{ return 500; }
|
||||
set{}
|
||||
}
|
||||
}
|
||||
|
||||
public class WaterTroughSouthDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon{ get{ return new WaterTroughSouthAddon(); } }
|
||||
public override int LabelNumber{ get{ return 1044350; } } // water trough (south)
|
||||
|
||||
[Constructable]
|
||||
public WaterTroughSouthDeed()
|
||||
{
|
||||
}
|
||||
|
||||
public WaterTroughSouthDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Scripts/Items/Addons/WaterVat.cs
Normal file
87
Scripts/Items/Addons/WaterVat.cs
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class WaterVatEast : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public WaterVatEast()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1558 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x14DE ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1552 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x14DF ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1554 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1559 ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1550 ), 1, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1555 ), 3, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x14D7 ), 2, 2, 0 );
|
||||
|
||||
// Blockers
|
||||
AddComponent( new AddonComponent( 0x21A4 ), 2, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x21A4 ), 3, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x21A4 ), -1, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x21A4 ), 0, 3, 0 );
|
||||
}
|
||||
|
||||
public WaterVatEast( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class WaterVatSouth : BaseAddon
|
||||
{
|
||||
[Constructable]
|
||||
public WaterVatSouth()
|
||||
{
|
||||
AddComponent( new AddonComponent( 0x1558 ), 0, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x14DE ), -1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1552 ), 0, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x14DF ), 1, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1554 ), 1, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x1559 ), 1, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x1551 ), 1, 3, 0 );
|
||||
AddComponent( new AddonComponent( 0x1556 ), 3, 1, 0 );
|
||||
AddComponent( new AddonComponent( 0x14D7 ), 2, 2, 0 );
|
||||
|
||||
// Blockers
|
||||
AddComponent( new AddonComponent( 0x21A4 ), 2, -1, 0 );
|
||||
AddComponent( new AddonComponent( 0x21A4 ), 3, 0, 0 );
|
||||
AddComponent( new AddonComponent( 0x21A4 ), -1, 2, 0 );
|
||||
AddComponent( new AddonComponent( 0x21A4 ), 0, 3, 0 );
|
||||
}
|
||||
|
||||
public WaterVatSouth( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue