#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
136
Scripts/Items/Special/11th Year promo/EarringsOfProtection.cs
Normal file
136
Scripts/Items/Special/11th Year promo/EarringsOfProtection.cs
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EarringBoxSet : RedVelvetGiftBox
|
||||
{
|
||||
[Constructable]
|
||||
public EarringBoxSet()
|
||||
: base()
|
||||
{
|
||||
DropItem( new EarringsOfProtection( AosElementAttribute.Physical ) );
|
||||
DropItem( new EarringsOfProtection( AosElementAttribute.Fire ) );
|
||||
DropItem( new EarringsOfProtection( AosElementAttribute.Cold ) );
|
||||
DropItem( new EarringsOfProtection( AosElementAttribute.Poison ) );
|
||||
DropItem( new EarringsOfProtection( AosElementAttribute.Energy ) );
|
||||
}
|
||||
|
||||
public EarringBoxSet( 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 EarringsOfProtection : BaseJewel
|
||||
{
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual AosElementAttribute Attribute
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Attribute;
|
||||
}
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetItemData( m_Attribute, true );
|
||||
}
|
||||
}
|
||||
|
||||
public override int Hue
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetItemData( m_Attribute, false );
|
||||
}
|
||||
}
|
||||
|
||||
private AosElementAttribute m_Attribute;
|
||||
|
||||
[Constructable]
|
||||
public EarringsOfProtection() : this( RandomType() )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public EarringsOfProtection( AosElementAttribute element )
|
||||
: base( 0x1087, Layer.Earrings )
|
||||
{
|
||||
Resistances[ ( (AosElementAttribute)element ) ] = 2;
|
||||
|
||||
m_Attribute = element;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public EarringsOfProtection( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int)0 ); // version
|
||||
writer.Write( (int)m_Attribute );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
m_Attribute = (AosElementAttribute)reader.ReadInt();
|
||||
}
|
||||
|
||||
public static AosElementAttribute RandomType()
|
||||
{
|
||||
return GetTypes( Utility.Random( 5 ) );
|
||||
}
|
||||
|
||||
public static AosElementAttribute GetTypes( int value )
|
||||
{
|
||||
switch( value )
|
||||
{
|
||||
case 0: return AosElementAttribute.Physical;
|
||||
case 1: return AosElementAttribute.Fire;
|
||||
case 2: return AosElementAttribute.Cold;
|
||||
case 3: return AosElementAttribute.Poison;
|
||||
default: return AosElementAttribute.Energy;
|
||||
}
|
||||
}
|
||||
|
||||
public static int GetItemData( AosElementAttribute element, bool label )
|
||||
{
|
||||
switch( element )
|
||||
{
|
||||
case AosElementAttribute.Physical: return ( label ) ? 1071091 : 0; // Earring of Protection (Physical) 1071091
|
||||
case AosElementAttribute.Fire: return ( label ) ? 1071092 : 0x4ec; // Earring of Protection (Fire) 1071092
|
||||
case AosElementAttribute.Cold: return ( label ) ? 1071093 : 0x4f2; // Earring of Protection (Cold) 1071093
|
||||
case AosElementAttribute.Poison: return ( label ) ? 1071094 : 0x4f8; // Earring of Protection (Poison) 1071094
|
||||
case AosElementAttribute.Energy: return ( label ) ? 1071095 : 0x4fe; // Earring of Protection (Energy) 1071095
|
||||
|
||||
default: return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,315 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.ContextMenus;
|
||||
using Server.Gumps;
|
||||
using Server.Multis;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public sealed class StopMusic : Packet
|
||||
{
|
||||
public static readonly Packet Instance = Packet.SetStatic( new StopMusic() );
|
||||
|
||||
public StopMusic() : base( 0x6D, 3 )
|
||||
{
|
||||
m_Stream.Write( (short) 0x1FFF );
|
||||
}
|
||||
}
|
||||
|
||||
[Flipable( 0x2AF9, 0x2AFD )]
|
||||
public class DawnsMusicBox : Item, ISecurable
|
||||
{
|
||||
public override int LabelNumber { get { return 1075198; } } // Dawn’s Music Box
|
||||
|
||||
private List<MusicName> m_Tracks;
|
||||
|
||||
public List<MusicName> Tracks
|
||||
{
|
||||
get { return m_Tracks; }
|
||||
}
|
||||
|
||||
private SecureLevel m_Level;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public SecureLevel Level
|
||||
{
|
||||
get { return m_Level; }
|
||||
set { m_Level = value; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public DawnsMusicBox() : base( 0x2AF9 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
|
||||
m_Tracks = new List<MusicName>();
|
||||
|
||||
while ( m_Tracks.Count < 4 )
|
||||
{
|
||||
MusicName name = RandomTrack( DawnsMusicRarity.Common );
|
||||
|
||||
if ( !m_Tracks.Contains( name ) )
|
||||
m_Tracks.Add( name );
|
||||
}
|
||||
}
|
||||
|
||||
public DawnsMusicBox( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnAfterDuped( Item newItem )
|
||||
{
|
||||
DawnsMusicBox box = newItem as DawnsMusicBox;
|
||||
|
||||
if ( box == null )
|
||||
return;
|
||||
|
||||
box.m_Tracks = new List<MusicName>();
|
||||
box.m_Tracks.AddRange( m_Tracks );
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
int commonSongs = 0;
|
||||
int uncommonSongs = 0;
|
||||
int rareSongs = 0;
|
||||
|
||||
for ( int i = 0; i < m_Tracks.Count; i++ )
|
||||
{
|
||||
DawnsMusicInfo info = GetInfo( m_Tracks[ i ] );
|
||||
|
||||
switch ( info.Rarity )
|
||||
{
|
||||
case DawnsMusicRarity.Common: commonSongs++; break;
|
||||
case DawnsMusicRarity.Uncommon: uncommonSongs++; break;
|
||||
case DawnsMusicRarity.Rare: rareSongs++; break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( commonSongs > 0 )
|
||||
list.Add( 1075234, commonSongs.ToString() ); // ~1_NUMBER~ Common Tracks
|
||||
if ( uncommonSongs > 0 )
|
||||
list.Add( 1075235, uncommonSongs.ToString() ); // ~1_NUMBER~ Uncommon Tracks
|
||||
if ( rareSongs > 0 )
|
||||
list.Add( 1075236, rareSongs.ToString() ); // ~1_NUMBER~ Rare Tracks
|
||||
}
|
||||
|
||||
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
|
||||
{
|
||||
base.GetContextMenuEntries( from, list );
|
||||
|
||||
SetSecureLevelEntry.AddTo( from, this, list ); // Set secure level
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( !IsChildOf( from.Backpack ) && !IsLockedDown )
|
||||
from.SendLocalizedMessage( 1061856 ); // You must have the item in your backpack or locked down in order to use it.
|
||||
else if ( IsLockedDown && !HasAccces( from ) )
|
||||
from.SendLocalizedMessage( 502436 ); // That is not accessible.
|
||||
else
|
||||
{
|
||||
from.CloseGump( typeof( DawnsMusicBoxGump ) );
|
||||
from.SendGump( new DawnsMusicBoxGump( this ) );
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasAccces( Mobile m )
|
||||
{
|
||||
if ( m.AccessLevel >= AccessLevel.GameMaster )
|
||||
return true;
|
||||
|
||||
BaseHouse house = BaseHouse.FindHouseAt( this );
|
||||
|
||||
return ( house != null && house.HasAccess( m ) );
|
||||
}
|
||||
|
||||
private Timer m_Timer;
|
||||
private int m_ItemID = 0;
|
||||
private int m_Count = 0;
|
||||
|
||||
public void PlayMusic( Mobile m, MusicName music )
|
||||
{
|
||||
if ( m_Timer != null && m_Timer.Running )
|
||||
EndMusic( m );
|
||||
else
|
||||
m_ItemID = ItemID;
|
||||
|
||||
m.Send( new PlayMusic( music ) );
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 0.5 ), TimeSpan.FromSeconds( 0.5 ), 4, new TimerCallback( Animate ) );
|
||||
}
|
||||
|
||||
public void EndMusic( Mobile m )
|
||||
{
|
||||
if ( m_Timer != null && m_Timer.Running )
|
||||
m_Timer.Stop();
|
||||
|
||||
m.Send( StopMusic.Instance );
|
||||
|
||||
if ( m_Count > 0 )
|
||||
ItemID = m_ItemID;
|
||||
|
||||
m_Count = 0;
|
||||
}
|
||||
|
||||
private void Animate()
|
||||
{
|
||||
m_Count++;
|
||||
|
||||
if ( m_Count >= 4 )
|
||||
{
|
||||
m_Count = 0;
|
||||
ItemID = m_ItemID;
|
||||
}
|
||||
else
|
||||
ItemID++;
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
|
||||
writer.Write( (int) m_Tracks.Count );
|
||||
|
||||
for ( int i = 0; i < m_Tracks.Count; i++ )
|
||||
writer.Write( (int) m_Tracks[ i ] );
|
||||
|
||||
writer.Write( (int) m_Level );
|
||||
writer.Write( (int) m_ItemID );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
int count = reader.ReadInt();
|
||||
m_Tracks = new List<MusicName>();
|
||||
|
||||
for ( int i = 0; i < count; i++ )
|
||||
m_Tracks.Add( (MusicName) reader.ReadInt() );
|
||||
|
||||
m_Level = (SecureLevel) reader.ReadInt();
|
||||
m_ItemID = reader.ReadInt();
|
||||
}
|
||||
|
||||
private static Dictionary<MusicName, DawnsMusicInfo> m_Info = new Dictionary<MusicName, DawnsMusicInfo>();
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
m_Info.Add( MusicName.Samlethe, new DawnsMusicInfo( 1075152, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Sailing, new DawnsMusicInfo( 1075163, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Britain2, new DawnsMusicInfo( 1075145, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Britain1, new DawnsMusicInfo( 1075144, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Bucsden, new DawnsMusicInfo( 1075146, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Forest_a, new DawnsMusicInfo( 1075161, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Cove, new DawnsMusicInfo( 1075176, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Death, new DawnsMusicInfo( 1075171, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Dungeon9, new DawnsMusicInfo( 1075160, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Dungeon2, new DawnsMusicInfo( 1075175, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Cave01, new DawnsMusicInfo( 1075159, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Combat3, new DawnsMusicInfo( 1075170, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Combat1, new DawnsMusicInfo( 1075168, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Combat2, new DawnsMusicInfo( 1075169, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Jhelom, new DawnsMusicInfo( 1075147, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Linelle, new DawnsMusicInfo( 1075185, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.LBCastle, new DawnsMusicInfo( 1075148, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Minoc, new DawnsMusicInfo( 1075150, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Moonglow, new DawnsMusicInfo( 1075177, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Magincia, new DawnsMusicInfo( 1075149, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Nujelm, new DawnsMusicInfo( 1075174, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.BTCastle, new DawnsMusicInfo( 1075173, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Tavern04, new DawnsMusicInfo( 1075167, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Skarabra, new DawnsMusicInfo( 1075154, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Stones2, new DawnsMusicInfo( 1075143, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Serpents, new DawnsMusicInfo( 1075153, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Taiko, new DawnsMusicInfo( 1075180, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Tavern01, new DawnsMusicInfo( 1075164, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Tavern02, new DawnsMusicInfo( 1075165, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Tavern03, new DawnsMusicInfo( 1075166, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.TokunoDungeon, new DawnsMusicInfo( 1075179, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Trinsic, new DawnsMusicInfo( 1075155, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.OldUlt01, new DawnsMusicInfo( 1075142, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Ocllo, new DawnsMusicInfo( 1075151, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Vesper, new DawnsMusicInfo( 1075156, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Victory, new DawnsMusicInfo( 1075172, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Mountn_a, new DawnsMusicInfo( 1075162, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Wind, new DawnsMusicInfo( 1075157, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Yew, new DawnsMusicInfo( 1075158, DawnsMusicRarity.Common ) );
|
||||
m_Info.Add( MusicName.Zento, new DawnsMusicInfo( 1075178, DawnsMusicRarity.Common ) );
|
||||
|
||||
m_Info.Add( MusicName.GwennoConversation, new DawnsMusicInfo( 1075131, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.DreadHornArea, new DawnsMusicInfo( 1075181, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.ElfCity, new DawnsMusicInfo( 1075182, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.GoodEndGame, new DawnsMusicInfo( 1075132, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.GoodVsEvil, new DawnsMusicInfo( 1075133, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.GreatEarthSerpents, new DawnsMusicInfo( 1075134, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.GrizzleDungeon, new DawnsMusicInfo( 1075186, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.Humanoids_U9, new DawnsMusicInfo( 1075135, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.MelisandesLair, new DawnsMusicInfo( 1075183, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.MinocNegative, new DawnsMusicInfo( 1075136, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.ParoxysmusLair, new DawnsMusicInfo( 1075184, DawnsMusicRarity.Uncommon ) );
|
||||
m_Info.Add( MusicName.Paws, new DawnsMusicInfo( 1075137, DawnsMusicRarity.Uncommon ) );
|
||||
|
||||
m_Info.Add( MusicName.SelimsBar, new DawnsMusicInfo( 1075138, DawnsMusicRarity.Rare ) );
|
||||
m_Info.Add( MusicName.SerpentIsleCombat_U7, new DawnsMusicInfo( 1075139, DawnsMusicRarity.Rare ) );
|
||||
m_Info.Add( MusicName.ValoriaShips, new DawnsMusicInfo( 1075140, DawnsMusicRarity.Rare ) );
|
||||
}
|
||||
|
||||
public static MusicName[] m_CommonTracks = new MusicName[]
|
||||
{
|
||||
MusicName.Samlethe, MusicName.Sailing, MusicName.Britain2, MusicName.Britain1,
|
||||
MusicName.Bucsden, MusicName.Forest_a, MusicName.Cove, MusicName.Death,
|
||||
MusicName.Dungeon9, MusicName.Dungeon2, MusicName.Cave01, MusicName.Combat3,
|
||||
MusicName.Combat1, MusicName.Combat2, MusicName.Jhelom, MusicName.Linelle,
|
||||
MusicName.LBCastle, MusicName.Minoc, MusicName.Moonglow, MusicName.Magincia,
|
||||
MusicName.Nujelm, MusicName.BTCastle, MusicName.Tavern04, MusicName.Skarabra,
|
||||
MusicName.Stones2, MusicName.Serpents, MusicName.Taiko, MusicName.Tavern01,
|
||||
MusicName.Tavern02, MusicName.Tavern03, MusicName.TokunoDungeon, MusicName.Trinsic,
|
||||
MusicName.OldUlt01, MusicName.Ocllo, MusicName.Vesper, MusicName.Victory,
|
||||
MusicName.Mountn_a, MusicName.Wind, MusicName.Yew, MusicName.Zento
|
||||
};
|
||||
|
||||
public static MusicName[] m_UncommonTracks = new MusicName[]
|
||||
{
|
||||
MusicName.GwennoConversation, MusicName.DreadHornArea, MusicName.ElfCity,
|
||||
MusicName.GoodEndGame, MusicName.GoodVsEvil, MusicName.GreatEarthSerpents,
|
||||
MusicName.GrizzleDungeon, MusicName.Humanoids_U9, MusicName.MelisandesLair,
|
||||
MusicName.MinocNegative, MusicName.ParoxysmusLair, MusicName.Paws
|
||||
};
|
||||
|
||||
public static MusicName[] m_RareTracks = new MusicName[]
|
||||
{
|
||||
MusicName.SelimsBar, MusicName.SerpentIsleCombat_U7, MusicName.ValoriaShips
|
||||
};
|
||||
|
||||
public static DawnsMusicInfo GetInfo( MusicName name )
|
||||
{
|
||||
if ( m_Info.ContainsKey( name ) )
|
||||
return m_Info[ name ];
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static MusicName RandomTrack( DawnsMusicRarity rarity )
|
||||
{
|
||||
MusicName[] list = null;
|
||||
|
||||
switch ( rarity )
|
||||
{
|
||||
default:
|
||||
case DawnsMusicRarity.Common: list = m_CommonTracks; break;
|
||||
case DawnsMusicRarity.Uncommon: list = m_UncommonTracks; break;
|
||||
case DawnsMusicRarity.Rare: list = m_RareTracks; break;
|
||||
}
|
||||
|
||||
return list[ Utility.Random( list.Length ) ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
using System;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x1053, 0x1054 )]
|
||||
public class DawnsMusicGear : Item
|
||||
{
|
||||
public static DawnsMusicGear RandomCommon
|
||||
{
|
||||
get { return new DawnsMusicGear( DawnsMusicBox.RandomTrack( DawnsMusicRarity.Common ) ); }
|
||||
}
|
||||
|
||||
public static DawnsMusicGear RandomUncommon
|
||||
{
|
||||
get { return new DawnsMusicGear( DawnsMusicBox.RandomTrack( DawnsMusicRarity.Uncommon ) ); }
|
||||
}
|
||||
|
||||
public static DawnsMusicGear RandomRare
|
||||
{
|
||||
get { return new DawnsMusicGear( DawnsMusicBox.RandomTrack( DawnsMusicRarity.Rare ) ); }
|
||||
}
|
||||
|
||||
private MusicName m_Music;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public MusicName Music
|
||||
{
|
||||
get { return m_Music; }
|
||||
set { m_Music = value; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public DawnsMusicGear() : this( DawnsMusicBox.RandomTrack( DawnsMusicRarity.Common ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public DawnsMusicGear( MusicName music ) : base( 0x1053 )
|
||||
{
|
||||
m_Music = music;
|
||||
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public DawnsMusicGear( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void AddNameProperty( ObjectPropertyList list )
|
||||
{
|
||||
DawnsMusicInfo info = DawnsMusicBox.GetInfo( m_Music );
|
||||
|
||||
if ( info != null )
|
||||
{
|
||||
if ( info.Rarity == DawnsMusicRarity.Common )
|
||||
list.Add( 1075204 ); // Gear for Dawn's Music Box (Common)
|
||||
else if ( info.Rarity == DawnsMusicRarity.Uncommon )
|
||||
list.Add( 1075205 ); // Gear for Dawn's Music Box (Uncommon)
|
||||
else if ( info.Rarity == DawnsMusicRarity.Rare )
|
||||
list.Add( 1075206 ); // Gear for Dawn's Music Box (Rare)
|
||||
|
||||
list.Add( info.Name );
|
||||
}
|
||||
else
|
||||
base.AddNameProperty( list );
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
from.Target = new InternalTarget( this );
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( (int) 1 ); // version
|
||||
|
||||
writer.Write( (int) m_Music );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_Music = (MusicName) reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( version == 0 ) // Music wasn't serialized in version 0, pick a new track of random rarity
|
||||
{
|
||||
DawnsMusicRarity rarity;
|
||||
double rand = Utility.RandomDouble();
|
||||
|
||||
if ( rand < 0.025 )
|
||||
rarity = DawnsMusicRarity.Rare;
|
||||
else if ( rand < 0.225 )
|
||||
rarity = DawnsMusicRarity.Uncommon;
|
||||
else
|
||||
rarity = DawnsMusicRarity.Common;
|
||||
|
||||
m_Music = DawnsMusicBox.RandomTrack( rarity );
|
||||
}
|
||||
}
|
||||
|
||||
public class InternalTarget : Target
|
||||
{
|
||||
private DawnsMusicGear m_Gear;
|
||||
|
||||
public InternalTarget( DawnsMusicGear gear ) : base( 2, false, TargetFlags.None )
|
||||
{
|
||||
m_Gear = gear;
|
||||
}
|
||||
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
{
|
||||
if ( m_Gear == null || m_Gear.Deleted )
|
||||
return;
|
||||
|
||||
DawnsMusicBox box = targeted as DawnsMusicBox;
|
||||
|
||||
if ( box != null )
|
||||
{
|
||||
if ( !box.Tracks.Contains( m_Gear.Music ) )
|
||||
{
|
||||
box.Tracks.Add( m_Gear.Music );
|
||||
box.InvalidateProperties();
|
||||
|
||||
m_Gear.Delete();
|
||||
|
||||
from.SendLocalizedMessage( 1071961 ); // This song has been added to the musicbox.
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1071962 ); // This song track is already in the musicbox.
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1071964 ); // Gears can only be put into a musicbox.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum DawnsMusicRarity
|
||||
{
|
||||
Common,
|
||||
Uncommon,
|
||||
Rare,
|
||||
}
|
||||
|
||||
public class DawnsMusicInfo
|
||||
{
|
||||
private int m_Name;
|
||||
|
||||
public int Name
|
||||
{
|
||||
get { return m_Name; }
|
||||
}
|
||||
|
||||
private DawnsMusicRarity m_Rarity;
|
||||
|
||||
public DawnsMusicRarity Rarity
|
||||
{
|
||||
get { return m_Rarity; }
|
||||
}
|
||||
|
||||
public DawnsMusicInfo( int name, DawnsMusicRarity rarity )
|
||||
{
|
||||
m_Name = name;
|
||||
m_Rarity = rarity;
|
||||
}
|
||||
}
|
||||
}
|
||||
53
Scripts/Items/Special/8th Anniversary Items/DupresShield.cs
Normal file
53
Scripts/Items/Special/8th Anniversary Items/DupresShield.cs
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class DupresShield : BaseShield, ITokunoDyable
|
||||
{
|
||||
public override int LabelNumber { get { return 1075196; } } // Dupre’s Shield
|
||||
|
||||
public override int BasePhysicalResistance { get { return 1; } }
|
||||
public override int BaseFireResistance { get { return 0; } }
|
||||
public override int BaseColdResistance { get { return 0; } }
|
||||
public override int BasePoisonResistance { get { return 0; } }
|
||||
public override int BaseEnergyResistance { get { return 1; } }
|
||||
|
||||
public override int InitMinHits { get { return 255; } }
|
||||
public override int InitMaxHits { get { return 255; } }
|
||||
|
||||
public override int AosStrReq { get { return 50; } }
|
||||
|
||||
public override int ArmorBase { get { return 15; } }
|
||||
|
||||
[Constructable]
|
||||
public DupresShield() : base( 0x2B01 )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Weight = 6.0;
|
||||
|
||||
Attributes.BonusHits = 5;
|
||||
Attributes.RegenHits = 1;
|
||||
|
||||
SkillBonuses.SetValues( 0, SkillName.Parry, 5 );
|
||||
}
|
||||
|
||||
public DupresShield( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
280
Scripts/Items/Special/8th Anniversary Items/FountainOfLife.cs
Normal file
280
Scripts/Items/Special/8th Anniversary Items/FountainOfLife.cs
Normal file
|
|
@ -0,0 +1,280 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.Gumps;
|
||||
using Server.Multis;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EnhancedBandage : Bandage
|
||||
{
|
||||
public static int HealingBonus { get { return 10; } }
|
||||
|
||||
public override int LabelNumber { get { return 1152441; } } // enhanced bandage
|
||||
|
||||
[Constructable]
|
||||
public EnhancedBandage()
|
||||
: this( 1 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public EnhancedBandage( int amount )
|
||||
: base( amount )
|
||||
{
|
||||
Hue = 0x8A5;
|
||||
}
|
||||
|
||||
public EnhancedBandage( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool Dye( Mobile from, DyeTub sender )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void AddNameProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.AddNameProperties( list );
|
||||
|
||||
list.Add( 1075216 ); // these bandages have been enhanced
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
[FlipableAttribute( 0x2AC0, 0x2AC3 )]
|
||||
public class FountainOfLife : BaseAddonContainer
|
||||
{
|
||||
public override BaseAddonContainerDeed Deed
|
||||
{
|
||||
get { return new FountainOfLifeDeed( m_Charges ); }
|
||||
}
|
||||
|
||||
public override bool OnDragLift( Mobile from )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual TimeSpan RechargeTime { get { return TimeSpan.FromDays( 1 ); } }
|
||||
|
||||
public override int LabelNumber { get { return 1075197; } } // Fountain of Life
|
||||
public override int DefaultGumpID { get { return 0x484; } }
|
||||
public override int DefaultDropSound { get { return 66; } }
|
||||
public override int DefaultMaxItems { get { return 125; } }
|
||||
|
||||
private int m_Charges;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Charges
|
||||
{
|
||||
get { return m_Charges; }
|
||||
set { m_Charges = Math.Min( value, 10 ); InvalidateProperties(); }
|
||||
}
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
[Constructable]
|
||||
public FountainOfLife()
|
||||
: this( 10 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FountainOfLife( int charges )
|
||||
: base( 0x2AC0 )
|
||||
{
|
||||
m_Charges = charges;
|
||||
|
||||
m_Timer = Timer.DelayCall( RechargeTime, RechargeTime, new TimerCallback( Recharge ) );
|
||||
}
|
||||
|
||||
public FountainOfLife( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnDragDrop( Mobile from, Item dropped )
|
||||
{
|
||||
if( dropped is Bandage )
|
||||
{
|
||||
bool allow = base.OnDragDrop( from, dropped );
|
||||
|
||||
if( allow )
|
||||
Enhance( from );
|
||||
|
||||
return allow;
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1075209 ); // Only bandages may be dropped into the fountain.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool OnDragDropInto( Mobile from, Item item, Point3D p )
|
||||
{
|
||||
if( item is Bandage )
|
||||
{
|
||||
bool allow = base.OnDragDropInto( from, item, p );
|
||||
|
||||
if( allow )
|
||||
Enhance( from );
|
||||
|
||||
return allow;
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1075209 ); // Only bandages may be dropped into the fountain.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public override void AddNameProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.AddNameProperties( list );
|
||||
|
||||
list.Add( 1075217, m_Charges.ToString() ); // ~1_val~ charges remaining
|
||||
}
|
||||
|
||||
public override void OnDelete()
|
||||
{
|
||||
if( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
base.OnDelete();
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); //version
|
||||
|
||||
writer.Write( m_Charges );
|
||||
writer.Write( (DateTime)m_Timer.Next );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_Charges = reader.ReadInt();
|
||||
|
||||
DateTime next = reader.ReadDateTime();
|
||||
|
||||
if( next < DateTime.UtcNow )
|
||||
m_Timer = Timer.DelayCall( TimeSpan.Zero, RechargeTime, new TimerCallback( Recharge ) );
|
||||
else
|
||||
m_Timer = Timer.DelayCall( next - DateTime.UtcNow, RechargeTime, new TimerCallback( Recharge ) );
|
||||
}
|
||||
|
||||
public void Recharge()
|
||||
{
|
||||
m_Charges = 10;
|
||||
|
||||
Enhance( null );
|
||||
}
|
||||
|
||||
public void Enhance( Mobile from )
|
||||
{
|
||||
for( int i = Items.Count - 1; i >= 0 && m_Charges > 0; --i )
|
||||
{
|
||||
if ( Items[i] is EnhancedBandage )
|
||||
continue;
|
||||
|
||||
Bandage bandage = Items[i] as Bandage;
|
||||
|
||||
if( bandage != null )
|
||||
{
|
||||
Item enhanced;
|
||||
|
||||
if( bandage.Amount > m_Charges )
|
||||
{
|
||||
bandage.Amount -= m_Charges;
|
||||
enhanced = new EnhancedBandage( m_Charges );
|
||||
m_Charges = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
enhanced = new EnhancedBandage( bandage.Amount );
|
||||
m_Charges -= bandage.Amount;
|
||||
bandage.Delete();
|
||||
}
|
||||
|
||||
if ( from == null || !TryDropItem( from, enhanced, false ) ) // try stacking first
|
||||
DropItem( enhanced );
|
||||
}
|
||||
}
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
public class FountainOfLifeDeed : BaseAddonContainerDeed
|
||||
{
|
||||
public override int LabelNumber { get { return 1075197; } } // Fountain of Life
|
||||
public override BaseAddonContainer Addon { get { return new FountainOfLife( m_Charges ); } }
|
||||
|
||||
private int m_Charges;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Charges
|
||||
{
|
||||
get { return m_Charges; }
|
||||
set { m_Charges = Math.Min( value, 10 ); InvalidateProperties(); }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FountainOfLifeDeed()
|
||||
: this( 10 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FountainOfLifeDeed( int charges )
|
||||
: base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
m_Charges = charges;
|
||||
}
|
||||
|
||||
public FountainOfLifeDeed( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); //version
|
||||
|
||||
writer.Write( m_Charges );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_Charges = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class OssianGrimoire : NecromancerSpellbook, ITokunoDyable
|
||||
{
|
||||
public override int LabelNumber { get { return 1078148; } } // Ossian Grimoire
|
||||
|
||||
[Constructable]
|
||||
public OssianGrimoire()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
SkillBonuses.SetValues( 0, SkillName.Necromancy, 10.0 );
|
||||
Attributes.RegenMana = 1;
|
||||
Attributes.CastSpeed = 1;
|
||||
Attributes.IncreasedKarmaLoss = 5;
|
||||
}
|
||||
|
||||
public OssianGrimoire( 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 )
|
||||
Attributes.IncreasedKarmaLoss = 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class QuiverOfInfinity : BaseQuiver, ITokunoDyable
|
||||
{
|
||||
public override int LabelNumber { get { return 1075201; } } // Quiver of Infinity
|
||||
|
||||
[Constructable]
|
||||
public QuiverOfInfinity() : base( 0x2B02 )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Weight = 8.0;
|
||||
|
||||
WeightReduction = 30;
|
||||
LowerAmmoCost = 20;
|
||||
|
||||
Attributes.DefendChance = 5;
|
||||
}
|
||||
|
||||
public QuiverOfInfinity( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 2 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
if ( version < 1 && DamageIncrease == 0 )
|
||||
DamageIncrease = 10;
|
||||
|
||||
if ( version < 2 && Attributes.WeaponDamage == 10 )
|
||||
Attributes.WeaponDamage = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
187
Scripts/Items/Special/8th Anniversary Items/Talismans.cs
Normal file
187
Scripts/Items/Special/8th Anniversary Items/Talismans.cs
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Spells.Ninjitsu;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum TalismanForm
|
||||
{
|
||||
Ferret = 1031672,
|
||||
Squirrel = 1031671,
|
||||
CuSidhe = 1031670,
|
||||
Reptalon = 1075202
|
||||
}
|
||||
|
||||
public class BaseFormTalisman : Item, ITokunoDyable
|
||||
{
|
||||
public virtual TalismanForm Form { get { return TalismanForm.Squirrel; } }
|
||||
|
||||
public BaseFormTalisman() : base( 0x2F59 )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Layer = Layer.Talisman;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public BaseFormTalisman( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void AddNameProperty( ObjectPropertyList list )
|
||||
{
|
||||
list.Add( 1075200, String.Format( "#{0}", (int) Form ) );
|
||||
}
|
||||
|
||||
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 override void OnRemoved(IEntity parent)
|
||||
{
|
||||
base.OnRemoved( parent );
|
||||
|
||||
if ( parent is Mobile )
|
||||
{
|
||||
Mobile m = (Mobile) parent;
|
||||
|
||||
AnimalForm.RemoveContext( m, true );
|
||||
}
|
||||
}
|
||||
|
||||
public static bool EntryEnabled( Mobile m, Type type )
|
||||
{
|
||||
if ( type == typeof( Squirrel ) )
|
||||
return m.Talisman is SquirrelFormTalisman;
|
||||
else if ( type == typeof( Ferret ) )
|
||||
return m.Talisman is FerretFormTalisman;
|
||||
else if ( type == typeof( CuSidhe ) )
|
||||
return m.Talisman is CuSidheFormTalisman;
|
||||
else if ( type == typeof( Reptalon ) )
|
||||
return m.Talisman is ReptalonFormTalisman;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public class FerretFormTalisman : BaseFormTalisman
|
||||
{
|
||||
public override TalismanForm Form { get { return TalismanForm.Ferret; } }
|
||||
|
||||
[Constructable]
|
||||
public FerretFormTalisman() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public FerretFormTalisman( 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 SquirrelFormTalisman : BaseFormTalisman
|
||||
{
|
||||
public override TalismanForm Form { get { return TalismanForm.Squirrel; } }
|
||||
|
||||
[Constructable]
|
||||
public SquirrelFormTalisman () : base()
|
||||
{
|
||||
}
|
||||
|
||||
public SquirrelFormTalisman ( 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 CuSidheFormTalisman : BaseFormTalisman
|
||||
{
|
||||
public override TalismanForm Form { get { return TalismanForm.CuSidhe; } }
|
||||
|
||||
[Constructable]
|
||||
public CuSidheFormTalisman() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public CuSidheFormTalisman( 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 ReptalonFormTalisman : BaseFormTalisman
|
||||
{
|
||||
public override TalismanForm Form { get { return TalismanForm.Reptalon; } }
|
||||
|
||||
[Constructable]
|
||||
public ReptalonFormTalisman() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public ReptalonFormTalisman( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2684, 0x2683 )]
|
||||
public class HoodedShroudOfShadows : BaseOuterTorso
|
||||
{
|
||||
[Constructable]
|
||||
public HoodedShroudOfShadows() : this( 0x455 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public HoodedShroudOfShadows( int hue ) : base( 0x2684, hue )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Weight = 3.0;
|
||||
}
|
||||
|
||||
public override bool Dye( Mobile from, DyeTub sender )
|
||||
{
|
||||
from.SendLocalizedMessage( sender.FailMessage );
|
||||
return false;
|
||||
}
|
||||
|
||||
public HoodedShroudOfShadows( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
37
Scripts/Items/Special/AoS Promotional/LuckyNecklace.cs
Normal file
37
Scripts/Items/Special/AoS Promotional/LuckyNecklace.cs
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LuckyNecklace : BaseJewel
|
||||
{
|
||||
public override int Hue{ get { return 1150; } }
|
||||
public override int LabelNumber{ get { return 1075239; } } //Lucky Necklace 1075239
|
||||
|
||||
[Constructable]
|
||||
public LuckyNecklace( )
|
||||
: base( 0x1088, Layer.Neck )
|
||||
{
|
||||
base.Attributes.Luck = 200;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public LuckyNecklace( 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 );
|
||||
|
||||
reader.ReadInt(); /* int version = reader.ReadInt(); Why? Just to have an unused var? */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0xC12, 0xC13 )]
|
||||
public class BrokenArmoireComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076262; } } // Broken Armoire
|
||||
|
||||
public BrokenArmoireComponent() : base( 0xC12 )
|
||||
{
|
||||
}
|
||||
|
||||
public BrokenArmoireComponent( 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 BrokenArmoireAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BrokenArmoireDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrokenArmoireAddon() : base()
|
||||
{
|
||||
AddComponent( new BrokenArmoireComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BrokenArmoireAddon( 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 BrokenArmoireDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BrokenArmoireAddon(); } }
|
||||
public override int LabelNumber { get { return 1076262; } } // Broken Armoire
|
||||
|
||||
[Constructable]
|
||||
public BrokenArmoireDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BrokenArmoireDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
134
Scripts/Items/Special/Broken Furniture Collection/BrokenBed.cs
Normal file
134
Scripts/Items/Special/Broken Furniture Collection/BrokenBed.cs
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BrokenBedAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BrokenBedDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrokenBedAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x1895, 1076263 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x1894, 1076263 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x1897, 1076263 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x1896, 1076263 ), 1, 1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x1899, 1076263 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x1898, 1076263 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x189B, 1076263 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x189A, 1076263 ), 1, 1, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public BrokenBedAddon( 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 BrokenBedDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BrokenBedAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076263; } } // Broken Bed
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public BrokenBedDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BrokenBedDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private BrokenBedDeed m_Deed;
|
||||
|
||||
public InternalGump( BrokenBedDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076749, 0x7FFF, false, false ); // Please select your broken bed position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0xC14, 0xC15 )]
|
||||
public class BrokenBookcaseComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076258; } } // Broken Bookcase
|
||||
|
||||
public BrokenBookcaseComponent() : base( 0xC14 )
|
||||
{
|
||||
}
|
||||
|
||||
public BrokenBookcaseComponent( 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 BrokenBookcaseAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BrokenBookcaseDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrokenBookcaseAddon() : base()
|
||||
{
|
||||
AddComponent( new BrokenBookcaseComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BrokenBookcaseAddon( 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 BrokenBookcaseDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BrokenBookcaseAddon(); } }
|
||||
public override int LabelNumber { get { return 1076258; } } // Broken Bookcase
|
||||
|
||||
[Constructable]
|
||||
public BrokenBookcaseDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BrokenBookcaseDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0xC24, 0xC25 )]
|
||||
public class BrokenChestOfDrawersComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076261; } } // Broken Chest of Drawers
|
||||
|
||||
public BrokenChestOfDrawersComponent() : base( 0xC24 )
|
||||
{
|
||||
}
|
||||
|
||||
public BrokenChestOfDrawersComponent( 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 BrokenChestOfDrawersAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BrokenChestOfDrawersDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrokenChestOfDrawersAddon() : base()
|
||||
{
|
||||
AddComponent( new BrokenChestOfDrawersComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BrokenChestOfDrawersAddon( 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 BrokenChestOfDrawersDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BrokenChestOfDrawersAddon(); } }
|
||||
public override int LabelNumber { get { return 1076261; } } // Broken Chest of Drawers
|
||||
|
||||
[Constructable]
|
||||
public BrokenChestOfDrawersDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BrokenChestOfDrawersDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0xC17, 0xC18 )]
|
||||
public class BrokenCoveredChairComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076257; } } // Broken Covered Chair
|
||||
|
||||
public BrokenCoveredChairComponent() : base( 0xC17 )
|
||||
{
|
||||
}
|
||||
|
||||
public BrokenCoveredChairComponent( 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 BrokenCoveredChairAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BrokenCoveredChairDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrokenCoveredChairAddon() : base()
|
||||
{
|
||||
AddComponent( new BrokenCoveredChairComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BrokenCoveredChairAddon( 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 BrokenCoveredChairDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BrokenCoveredChairAddon(); } }
|
||||
public override int LabelNumber { get { return 1076257; } } // Broken Covered Chair
|
||||
|
||||
[Constructable]
|
||||
public BrokenCoveredChairDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BrokenCoveredChairDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0xC19, 0xC1A )]
|
||||
public class BrokenFallenChairComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076264; } } // Broken Fallen Chair
|
||||
|
||||
public BrokenFallenChairComponent() : base( 0xC19 )
|
||||
{
|
||||
}
|
||||
|
||||
public BrokenFallenChairComponent( 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 < 1 && ItemID == 0xC17)
|
||||
ItemID = 0xC19;
|
||||
}
|
||||
}
|
||||
|
||||
public class BrokenFallenChairAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BrokenFallenChairDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrokenFallenChairAddon() : base()
|
||||
{
|
||||
AddComponent( new BrokenFallenChairComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BrokenFallenChairAddon( 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 BrokenFallenChairDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BrokenFallenChairAddon(); } }
|
||||
public override int LabelNumber { get { return 1076264; } } // Broken Fallen Chair
|
||||
|
||||
[Constructable]
|
||||
public BrokenFallenChairDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BrokenFallenChairDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BrokenVanityAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BrokenVanityDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BrokenVanityAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xC20, 1076260 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xC21, 1076260 ), 0, -1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xC22, 1076260 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xC23, 1076260 ), -1, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public BrokenVanityAddon( 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 BrokenVanityDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BrokenVanityAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076260; } } // Broken Vanity
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public BrokenVanityDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BrokenVanityDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private BrokenVanityDeed m_Deed;
|
||||
|
||||
public InternalGump( BrokenVanityDeed deed ) : base( 60, 63 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076747, 0x7FFF, false, false ); // Please select your broken vanity position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0xC1B, 0xC1C, 0xC1E, 0xC1D )]
|
||||
public class StandingBrokenChairComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076259; } } // Standing Broken Chair
|
||||
|
||||
public StandingBrokenChairComponent() : base( 0xC1B )
|
||||
{
|
||||
}
|
||||
|
||||
public StandingBrokenChairComponent( 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 StandingBrokenChairAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new StandingBrokenChairDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public StandingBrokenChairAddon() : base()
|
||||
{
|
||||
AddComponent( new StandingBrokenChairComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public StandingBrokenChairAddon( 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 StandingBrokenChairDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new StandingBrokenChairAddon(); } }
|
||||
public override int LabelNumber { get { return 1076259; } } // Standing Broken Chair
|
||||
|
||||
[Constructable]
|
||||
public StandingBrokenChairDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public StandingBrokenChairDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,134 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Engines.Craft;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAttribute( 0x13E4, 0x13E3 )]
|
||||
public class AncientSmithyHammer : BaseTool
|
||||
{
|
||||
private int m_Bonus;
|
||||
private SkillMod m_SkillMod;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Bonus
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Bonus;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Bonus = value;
|
||||
InvalidateProperties();
|
||||
|
||||
if ( m_Bonus == 0 )
|
||||
{
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = null;
|
||||
}
|
||||
else if ( m_SkillMod == null && Parent is Mobile )
|
||||
{
|
||||
m_SkillMod = new DefaultSkillMod( SkillName.Blacksmith, true, m_Bonus );
|
||||
((Mobile)Parent).AddSkillMod( m_SkillMod );
|
||||
}
|
||||
else if ( m_SkillMod != null )
|
||||
{
|
||||
m_SkillMod.Value = m_Bonus;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnAdded(IEntity parent)
|
||||
{
|
||||
base.OnAdded( parent );
|
||||
|
||||
if ( m_Bonus != 0 && parent is Mobile )
|
||||
{
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = new DefaultSkillMod( SkillName.Blacksmith, true, m_Bonus );
|
||||
((Mobile)parent).AddSkillMod( m_SkillMod );
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnRemoved(IEntity parent)
|
||||
{
|
||||
base.OnRemoved( parent );
|
||||
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = null;
|
||||
}
|
||||
|
||||
public override CraftSystem CraftSystem{ get{ return DefBlacksmithy.CraftSystem; } }
|
||||
public override int LabelNumber{ get{ return 1045127; } } // ancient smithy hammer
|
||||
|
||||
[Constructable]
|
||||
public AncientSmithyHammer( int bonus ) : this( bonus, 600 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public AncientSmithyHammer( int bonus, int uses ) : base( uses, 0x13E4 )
|
||||
{
|
||||
m_Bonus = bonus;
|
||||
Weight = 8.0;
|
||||
Layer = Layer.OneHanded;
|
||||
Hue = 0x482;
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( m_Bonus != 0 )
|
||||
list.Add( 1060451, "#1042354\t{0}", m_Bonus.ToString() ); // ~1_skillname~ +~2_val~
|
||||
}
|
||||
|
||||
public AncientSmithyHammer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
|
||||
writer.Write( (int) m_Bonus );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_Bonus = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_Bonus != 0 && Parent is Mobile )
|
||||
{
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = new DefaultSkillMod( SkillName.Blacksmith, true, m_Bonus );
|
||||
((Mobile)Parent).AddSkillMod( m_SkillMod );
|
||||
}
|
||||
|
||||
if ( Hue == 0 )
|
||||
Hue = 0x482;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Engines.Craft;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Anvil, Flipable( 0xFAF, 0xFB0 )]
|
||||
public class ColoredAnvil : Item
|
||||
{
|
||||
[Constructable]
|
||||
public ColoredAnvil() : this( CraftResources.GetHue( (CraftResource)Utility.RandomMinMax( (int)CraftResource.DullCopper, (int)CraftResource.Valorite ) ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public ColoredAnvil( int hue ) : base( 0xFAF )
|
||||
{
|
||||
Hue = hue;
|
||||
Weight = 20;
|
||||
}
|
||||
|
||||
public ColoredAnvil( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,256 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAttribute( 0x13c6, 0x13ce )]
|
||||
public class LeatherGlovesOfMining : BaseGlovesOfMining
|
||||
{
|
||||
public override int BasePhysicalResistance{ get{ return 2; } }
|
||||
public override int BaseFireResistance{ get{ return 4; } }
|
||||
public override int BaseColdResistance{ get{ return 3; } }
|
||||
public override int BasePoisonResistance{ get{ return 3; } }
|
||||
public override int BaseEnergyResistance{ get{ return 3; } }
|
||||
|
||||
public override int InitMinHits{ get{ return 30; } }
|
||||
public override int InitMaxHits{ get{ return 40; } }
|
||||
|
||||
public override int AosStrReq{ get{ return 20; } }
|
||||
public override int OldStrReq{ get{ return 10; } }
|
||||
|
||||
public override int ArmorBase{ get{ return 13; } }
|
||||
|
||||
public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Leather; } }
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.RegularLeather; } }
|
||||
|
||||
public override ArmorMeditationAllowance DefMedAllowance{ get{ return ArmorMeditationAllowance.All; } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1045122; } } // leather blacksmith gloves of mining
|
||||
|
||||
[Constructable]
|
||||
public LeatherGlovesOfMining( int bonus ) : base( bonus, 0x13C6 )
|
||||
{
|
||||
Weight = 1;
|
||||
}
|
||||
|
||||
public LeatherGlovesOfMining( 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();
|
||||
}
|
||||
}
|
||||
|
||||
[FlipableAttribute( 0x13d5, 0x13dd )]
|
||||
public class StuddedGlovesOfMining : BaseGlovesOfMining
|
||||
{
|
||||
public override int BasePhysicalResistance{ get{ return 2; } }
|
||||
public override int BaseFireResistance{ get{ return 4; } }
|
||||
public override int BaseColdResistance{ get{ return 3; } }
|
||||
public override int BasePoisonResistance{ get{ return 3; } }
|
||||
public override int BaseEnergyResistance{ get{ return 4; } }
|
||||
|
||||
public override int InitMinHits{ get{ return 35; } }
|
||||
public override int InitMaxHits{ get{ return 45; } }
|
||||
|
||||
public override int AosStrReq{ get{ return 25; } }
|
||||
public override int OldStrReq{ get{ return 25; } }
|
||||
|
||||
public override int ArmorBase{ get{ return 16; } }
|
||||
|
||||
public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Studded; } }
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.RegularLeather; } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1045123; } } // studded leather blacksmith gloves of mining
|
||||
|
||||
[Constructable]
|
||||
public StuddedGlovesOfMining( int bonus ) : base( bonus, 0x13D5 )
|
||||
{
|
||||
Weight = 2;
|
||||
}
|
||||
|
||||
public StuddedGlovesOfMining( 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();
|
||||
}
|
||||
}
|
||||
|
||||
[FlipableAttribute( 0x13eb, 0x13f2 )]
|
||||
public class RingmailGlovesOfMining : BaseGlovesOfMining
|
||||
{
|
||||
public override int BasePhysicalResistance{ get{ return 3; } }
|
||||
public override int BaseFireResistance{ get{ return 3; } }
|
||||
public override int BaseColdResistance{ get{ return 1; } }
|
||||
public override int BasePoisonResistance{ get{ return 5; } }
|
||||
public override int BaseEnergyResistance{ get{ return 3; } }
|
||||
|
||||
public override int InitMinHits{ get{ return 40; } }
|
||||
public override int InitMaxHits{ get{ return 50; } }
|
||||
|
||||
public override int AosStrReq{ get{ return 40; } }
|
||||
public override int OldStrReq{ get{ return 20; } }
|
||||
|
||||
public override int OldDexBonus{ get{ return -1; } }
|
||||
|
||||
public override int ArmorBase{ get{ return 22; } }
|
||||
|
||||
public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Ringmail; } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1045124; } } // ringmail blacksmith gloves of mining
|
||||
|
||||
[Constructable]
|
||||
public RingmailGlovesOfMining( int bonus ) : base( bonus, 0x13EB )
|
||||
{
|
||||
Weight = 1;
|
||||
}
|
||||
|
||||
public RingmailGlovesOfMining( 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 abstract class BaseGlovesOfMining : BaseArmor
|
||||
{
|
||||
private int m_Bonus;
|
||||
private SkillMod m_SkillMod;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Bonus
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Bonus;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Bonus = value;
|
||||
InvalidateProperties();
|
||||
|
||||
if ( m_Bonus == 0 )
|
||||
{
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = null;
|
||||
}
|
||||
else if ( m_SkillMod == null && Parent is Mobile )
|
||||
{
|
||||
m_SkillMod = new DefaultSkillMod( SkillName.Mining, true, m_Bonus );
|
||||
((Mobile)Parent).AddSkillMod( m_SkillMod );
|
||||
}
|
||||
else if ( m_SkillMod != null )
|
||||
{
|
||||
m_SkillMod.Value = m_Bonus;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnAdded(IEntity parent)
|
||||
{
|
||||
base.OnAdded( parent );
|
||||
|
||||
if ( m_Bonus != 0 && parent is Mobile )
|
||||
{
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = new DefaultSkillMod( SkillName.Mining, true, m_Bonus );
|
||||
((Mobile)parent).AddSkillMod( m_SkillMod );
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnRemoved(IEntity parent)
|
||||
{
|
||||
base.OnRemoved( parent );
|
||||
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = null;
|
||||
}
|
||||
|
||||
public BaseGlovesOfMining( int bonus, int itemID ) : base( itemID )
|
||||
{
|
||||
m_Bonus = bonus;
|
||||
|
||||
this.Hue = CraftResources.GetHue( (CraftResource)Utility.RandomMinMax( (int)CraftResource.DullCopper, (int)CraftResource.Valorite ) );
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( m_Bonus != 0 )
|
||||
list.Add( 1062005, m_Bonus.ToString() ); // mining bonus +~1_val~
|
||||
}
|
||||
|
||||
public BaseGlovesOfMining( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
|
||||
writer.Write( (int) m_Bonus );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_Bonus = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_Bonus != 0 && Parent is Mobile )
|
||||
{
|
||||
if ( m_SkillMod != null )
|
||||
m_SkillMod.Remove();
|
||||
|
||||
m_SkillMod = new DefaultSkillMod( SkillName.Mining, true, m_Bonus );
|
||||
((Mobile)Parent).AddSkillMod( m_SkillMod );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,189 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Targeting;
|
||||
using Server.Engines.Craft;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PowderOfTemperament : Item, IUsesRemaining
|
||||
{
|
||||
private int m_UsesRemaining;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int UsesRemaining
|
||||
{
|
||||
get { return m_UsesRemaining; }
|
||||
set { m_UsesRemaining = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
public bool ShowUsesRemaining{ get{ return true; } set{} }
|
||||
|
||||
public override int LabelNumber{ get{ return 1049082; } } // powder of fortifying
|
||||
|
||||
[Constructable]
|
||||
public PowderOfTemperament() : this( 10 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public PowderOfTemperament( int charges ) : base( 4102 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
Hue = 2419;
|
||||
UsesRemaining = charges;
|
||||
}
|
||||
|
||||
public PowderOfTemperament( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
writer.Write( (int) m_UsesRemaining );
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_UsesRemaining = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
list.Add( 1060584, m_UsesRemaining.ToString() ); // uses remaining: ~1_val~
|
||||
}
|
||||
|
||||
public virtual void DisplayDurabilityTo( Mobile m )
|
||||
{
|
||||
LabelToAffix( m, 1017323, AffixType.Append, ": " + m_UsesRemaining.ToString() ); // Durability
|
||||
}
|
||||
|
||||
public override void OnSingleClick( Mobile from )
|
||||
{
|
||||
DisplayDurabilityTo( from );
|
||||
|
||||
base.OnSingleClick( from );
|
||||
}
|
||||
|
||||
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 PowderOfTemperament m_Powder;
|
||||
|
||||
public InternalTarget( PowderOfTemperament powder ) : base( 2, false, TargetFlags.None )
|
||||
{
|
||||
m_Powder = powder;
|
||||
}
|
||||
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
{
|
||||
if ( m_Powder.Deleted || m_Powder.UsesRemaining <= 0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1049086 ); // You have used up your powder of temperament.
|
||||
return;
|
||||
}
|
||||
|
||||
if ( targeted is IDurability && targeted is Item )
|
||||
{
|
||||
IDurability wearable = (IDurability) targeted;
|
||||
Item item = (Item) targeted;
|
||||
|
||||
if ( !wearable.CanFortify )
|
||||
{
|
||||
from.SendLocalizedMessage( 1049083 ); // You cannot use the powder on that item.
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ( item.IsChildOf( from.Backpack ) || ( Core.ML && item.Parent == from ) ) && m_Powder.IsChildOf( from.Backpack ) )
|
||||
{
|
||||
int origMaxHP = wearable.MaxHitPoints;
|
||||
int origCurHP = wearable.HitPoints;
|
||||
|
||||
if ( origMaxHP > 0 )
|
||||
{
|
||||
int initMaxHP = Core.AOS ? 255 : wearable.InitMaxHits;
|
||||
|
||||
wearable.UnscaleDurability();
|
||||
|
||||
if ( wearable.MaxHitPoints < initMaxHP )
|
||||
{
|
||||
int bonus = initMaxHP - wearable.MaxHitPoints;
|
||||
|
||||
if ( bonus > 10 )
|
||||
bonus = 10;
|
||||
|
||||
wearable.MaxHitPoints += bonus;
|
||||
wearable.HitPoints += bonus;
|
||||
|
||||
wearable.ScaleDurability();
|
||||
|
||||
if ( wearable.MaxHitPoints > 255 ) wearable.MaxHitPoints = 255;
|
||||
if ( wearable.HitPoints > 255 ) wearable.HitPoints = 255;
|
||||
|
||||
if ( wearable.MaxHitPoints > origMaxHP )
|
||||
{
|
||||
from.SendLocalizedMessage( 1049084 ); // You successfully use the powder on the item.
|
||||
from.PlaySound( 0x247 );
|
||||
|
||||
--m_Powder.UsesRemaining;
|
||||
|
||||
if ( m_Powder.UsesRemaining <= 0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1049086 ); // You have used up your powder of fortifying.
|
||||
m_Powder.Delete();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wearable.MaxHitPoints = origMaxHP;
|
||||
wearable.HitPoints = origCurHP;
|
||||
from.SendLocalizedMessage( 1049085 ); // The item cannot be improved any further.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1049085 ); // The item cannot be improved any further.
|
||||
wearable.ScaleDurability();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1049083 ); // You cannot use the powder on that item.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1049083 ); // You cannot use the powder on that item.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class JesterHatofChuckles : BaseHat, ITokunoDyable
|
||||
{
|
||||
public override int LabelNumber { get { return 1073256; } } //Jester Hat of Chuckles - Museum of Vesper Replica 1073256
|
||||
|
||||
public override int BasePhysicalResistance { get { return 12; } }
|
||||
public override int BaseFireResistance { get { return 12; } }
|
||||
public override int BaseColdResistance { get { return 12; } }
|
||||
public override int BasePoisonResistance { get { return 12; } }
|
||||
public override int BaseEnergyResistance { get { return 12; } }
|
||||
|
||||
public override int InitMinHits{ get{ return 100; } }
|
||||
public override int InitMaxHits{ get{ return 100; } }
|
||||
|
||||
[Constructable]
|
||||
public JesterHatofChuckles() : this( Utility.RandomList( 0x13e, 0x03, 0x172, 0x3f ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public JesterHatofChuckles( int hue ) : base( 0x171C, hue )
|
||||
{
|
||||
Attributes.Luck = 150;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public JesterHatofChuckles( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A5D, 0x2A61 )]
|
||||
public class AwesomeDisturbingPortraitComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074479; } } // Disturbing portrait
|
||||
public bool FacingSouth { get { return ItemID < 0x2A61; } }
|
||||
|
||||
private InternalTimer m_Timer;
|
||||
|
||||
public AwesomeDisturbingPortraitComponent() : base( 0x2A5D )
|
||||
{
|
||||
m_Timer = new InternalTimer( this, TimeSpan.FromSeconds( 1 ) );
|
||||
m_Timer.Start();
|
||||
}
|
||||
|
||||
public AwesomeDisturbingPortraitComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
{
|
||||
int hours;
|
||||
int minutes;
|
||||
|
||||
Clock.GetTime( Map, X, Y, out hours, out minutes );
|
||||
|
||||
if ( hours < 4 || hours > 20 )
|
||||
Effects.PlaySound( Location, Map, 0x569 );
|
||||
|
||||
UpdateImage();
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if ( m_Timer != null && m_Timer.Running )
|
||||
m_Timer.Stop();
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
m_Timer = new InternalTimer( this, TimeSpan.Zero );
|
||||
m_Timer.Start();
|
||||
}
|
||||
|
||||
private void UpdateImage()
|
||||
{
|
||||
int hours;
|
||||
int minutes;
|
||||
|
||||
Clock.GetTime( Map, X, Y, out hours, out minutes );
|
||||
|
||||
if ( FacingSouth )
|
||||
{
|
||||
if ( hours < 4 )
|
||||
ItemID = 0x2A60;
|
||||
else if ( hours < 6 )
|
||||
ItemID = 0x2A5F;
|
||||
else if ( hours < 8 )
|
||||
ItemID = 0x2A5E;
|
||||
else if ( hours < 16 )
|
||||
ItemID = 0x2A5D;
|
||||
else if ( hours < 18 )
|
||||
ItemID = 0x2A5E;
|
||||
else if ( hours < 20 )
|
||||
ItemID = 0x2A5F;
|
||||
else
|
||||
ItemID = 0x2A60;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( hours < 4 )
|
||||
ItemID = 0x2A64;
|
||||
else if ( hours < 6 )
|
||||
ItemID = 0x2A63;
|
||||
else if ( hours < 8 )
|
||||
ItemID = 0x2A62;
|
||||
else if ( hours < 16 )
|
||||
ItemID = 0x2A61;
|
||||
else if ( hours < 18 )
|
||||
ItemID = 0x2A62;
|
||||
else if ( hours < 20 )
|
||||
ItemID = 0x2A63;
|
||||
else
|
||||
ItemID = 0x2A64;
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private AwesomeDisturbingPortraitComponent m_Component;
|
||||
|
||||
public InternalTimer( AwesomeDisturbingPortraitComponent c, TimeSpan delay ) : base( delay, TimeSpan.FromMinutes( 10 ) )
|
||||
{
|
||||
m_Component = c;
|
||||
|
||||
Priority = TimerPriority.OneMinute;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if ( m_Component != null && !m_Component.Deleted )
|
||||
m_Component.UpdateImage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class AwesomeDisturbingPortraitAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new AwesomeDisturbingPortraitDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public AwesomeDisturbingPortraitAddon() : base()
|
||||
{
|
||||
AddComponent( new AwesomeDisturbingPortraitComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public AwesomeDisturbingPortraitAddon( 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 AwesomeDisturbingPortraitDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new AwesomeDisturbingPortraitAddon(); } }
|
||||
public override int LabelNumber { get { return 1074479; } } // Disturbing portrait
|
||||
|
||||
[Constructable]
|
||||
public AwesomeDisturbingPortraitDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public AwesomeDisturbingPortraitDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
195
Scripts/Items/Special/Evil Home Decor Collection/BedOfNails.cs
Normal file
195
Scripts/Items/Special/Evil Home Decor Collection/BedOfNails.cs
Normal file
|
|
@ -0,0 +1,195 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BedOfNailsComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074801; } } // Bed of Nails
|
||||
|
||||
public BedOfNailsComponent( int itemID )
|
||||
: base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public BedOfNailsComponent( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnMoveOver( Mobile m )
|
||||
{
|
||||
bool allow = base.OnMoveOver( m );
|
||||
|
||||
if( allow && Addon is BedOfNailsAddon )
|
||||
( (BedOfNailsAddon)Addon ).OnMoveOver( m );
|
||||
|
||||
return allow;
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
[FlipableAddon( Direction.South, Direction.East )]
|
||||
public class BedOfNailsAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BedOfNailsDeed(); } }
|
||||
|
||||
private InternalTimer m_Timer;
|
||||
|
||||
[Constructable]
|
||||
public BedOfNailsAddon()
|
||||
: base()
|
||||
{
|
||||
Direction = Direction.South;
|
||||
|
||||
AddComponent( new BedOfNailsComponent( 0x2A81 ), 0, 0, 0 );
|
||||
AddComponent( new BedOfNailsComponent( 0x2A82 ), 0, -1, 0 );
|
||||
}
|
||||
|
||||
public BedOfNailsAddon( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnMoveOver( Mobile m )
|
||||
{
|
||||
if( m.Alive && ( m.AccessLevel == AccessLevel.Player || !m.Hidden ) )
|
||||
{
|
||||
if( m.Player )
|
||||
{
|
||||
if( m.Female )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x53B, 0x53D ) );
|
||||
else
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x53E, 0x540 ) );
|
||||
}
|
||||
|
||||
if( m_Timer == null || !m_Timer.Running )
|
||||
( m_Timer = new InternalTimer( m ) ).Start();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
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 virtual void Flip( Mobile from, Direction direction )
|
||||
{
|
||||
switch( direction )
|
||||
{
|
||||
case Direction.East:
|
||||
AddComponent( new BedOfNailsComponent( 0x2A89 ), 0, 0, 0 );
|
||||
AddComponent( new BedOfNailsComponent( 0x2A8A ), -1, 0, 0 );
|
||||
break;
|
||||
case Direction.South:
|
||||
AddComponent( new BedOfNailsComponent( 0x2A81 ), 0, 0, 0 );
|
||||
AddComponent( new BedOfNailsComponent( 0x2A82 ), 0, -1, 0 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private Mobile m_Mobile;
|
||||
private Point3D m_Location;
|
||||
|
||||
public InternalTimer( Mobile m )
|
||||
: base( TimeSpan.Zero, TimeSpan.FromSeconds( 1 ), 5 )
|
||||
{
|
||||
m_Mobile = m;
|
||||
m_Location = Point3D.Zero;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if( m_Mobile == null || m_Mobile.Map == null || m_Mobile.Deleted || !m_Mobile.Alive || m_Mobile.Map == Map.Internal )
|
||||
{
|
||||
Stop();
|
||||
}
|
||||
else
|
||||
{
|
||||
if( m_Location != m_Mobile.Location )
|
||||
{
|
||||
int amount = Utility.RandomMinMax( 0, 7 );
|
||||
|
||||
for( int i = 0; i < amount; i++ )
|
||||
{
|
||||
int x = m_Mobile.X + Utility.RandomMinMax( -1, 1 );
|
||||
int y = m_Mobile.Y + Utility.RandomMinMax( -1, 1 );
|
||||
int z = m_Mobile.Z;
|
||||
|
||||
if( !m_Mobile.Map.CanFit( x, y, z, 1, false, false, true ) )
|
||||
{
|
||||
z = m_Mobile.Map.GetAverageZ( x, y );
|
||||
|
||||
if( !m_Mobile.Map.CanFit( x, y, z, 1, false, false, true ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Blood blood = new Blood( Utility.RandomMinMax( 0x122C, 0x122F ) );
|
||||
blood.MoveToWorld( new Point3D( x, y, z ), m_Mobile.Map );
|
||||
}
|
||||
m_Location = m_Mobile.Location;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class BedOfNailsDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BedOfNailsAddon(); } }
|
||||
public override int LabelNumber { get { return 1074801; } } // Bed of Nails
|
||||
|
||||
[Constructable]
|
||||
public BedOfNailsDeed()
|
||||
: base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BedOfNailsDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
119
Scripts/Items/Special/Evil Home Decor Collection/BoneCouch.cs
Normal file
119
Scripts/Items/Special/Evil Home Decor Collection/BoneCouch.cs
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BoneCouchComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074477; } } // Bone couch
|
||||
|
||||
public BoneCouchComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public BoneCouchComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnMoveOver( Mobile m )
|
||||
{
|
||||
bool allow = base.OnMoveOver( m );
|
||||
|
||||
if ( allow && m.Alive && m.Player && ( m.AccessLevel == AccessLevel.Player || !m.Hidden ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x547, 0x54A ) );
|
||||
|
||||
return allow;
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
[FlipableAddon( Direction.South, Direction.East )]
|
||||
public class BoneCouchAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BoneCouchDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BoneCouchAddon() : base()
|
||||
{
|
||||
Direction = Direction.South;
|
||||
|
||||
AddComponent( new BoneCouchComponent( 0x2A5A ), 0, 0, 0 );
|
||||
AddComponent( new BoneCouchComponent( 0x2A5B ), -1, 0, 0 );
|
||||
}
|
||||
|
||||
public BoneCouchAddon( 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 virtual void Flip( Mobile from, Direction direction )
|
||||
{
|
||||
switch ( direction )
|
||||
{
|
||||
case Direction.East:
|
||||
AddComponent( new BoneCouchComponent( 0x2A80 ), 0, 0, 0 );
|
||||
AddComponent( new BoneCouchComponent( 0x2A7F ), 0, 1, 0 );
|
||||
break;
|
||||
case Direction.South:
|
||||
AddComponent( new BoneCouchComponent( 0x2A5A ), 0, 0, 0 );
|
||||
AddComponent( new BoneCouchComponent( 0x2A5B ), -1, 0, 0 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class BoneCouchDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BoneCouchAddon(); } }
|
||||
public override int LabelNumber { get { return 1074477; } } // Bone couch
|
||||
|
||||
[Constructable]
|
||||
public BoneCouchDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BoneCouchDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BoneTableAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BoneTableDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BoneTableAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x2A5C, 1074478 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BoneTableAddon( 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 BoneTableDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BoneTableAddon(); } }
|
||||
public override int LabelNumber { get { return 1074478; } } // Bone table
|
||||
|
||||
[Constructable]
|
||||
public BoneTableDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BoneTableDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
101
Scripts/Items/Special/Evil Home Decor Collection/BoneThrone.cs
Normal file
101
Scripts/Items/Special/Evil Home Decor Collection/BoneThrone.cs
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A58, 0x2A59 )]
|
||||
public class BoneThroneComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074476; } } // Bone throne
|
||||
|
||||
public BoneThroneComponent() : base( 0x2A58 )
|
||||
{
|
||||
}
|
||||
|
||||
public BoneThroneComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnMoveOver( Mobile m )
|
||||
{
|
||||
bool allow = base.OnMoveOver( m );
|
||||
|
||||
if ( allow && m.Alive && m.Player && ( m.AccessLevel == AccessLevel.Player || !m.Hidden ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x54B, 0x54D ) );
|
||||
|
||||
return allow;
|
||||
}
|
||||
|
||||
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 BoneThroneAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BoneThroneDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BoneThroneAddon() : base()
|
||||
{
|
||||
AddComponent( new BoneThroneComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BoneThroneAddon( 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 BoneThroneDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BoneThroneAddon(); } }
|
||||
public override int LabelNumber { get { return 1074476; } } // Bone throne
|
||||
|
||||
[Constructable]
|
||||
public BoneThroneDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BoneThroneDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A69, 0x2A6D )]
|
||||
public class CreepyPortraitComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074481; } } // Creepy portrait
|
||||
public override bool HandlesOnMovement { get { return true; } }
|
||||
|
||||
public CreepyPortraitComponent() : base( 0x2A69 )
|
||||
{
|
||||
}
|
||||
|
||||
public CreepyPortraitComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x565, 0x566 ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
public override void OnMovement( Mobile m, Point3D old )
|
||||
{
|
||||
if ( m.Alive && m.Player && ( m.AccessLevel == AccessLevel.Player || !m.Hidden ) )
|
||||
{
|
||||
if ( !Utility.InRange( old, Location, 2 ) && Utility.InRange( m.Location, Location, 2 ) )
|
||||
{
|
||||
if ( ItemID == 0x2A69 || ItemID == 0x2A6D )
|
||||
{
|
||||
Up();
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 0.5 ), TimeSpan.FromSeconds( 0.5 ), 2, new TimerCallback( Up ) );
|
||||
}
|
||||
}
|
||||
else if ( Utility.InRange( old, Location, 2 ) && !Utility.InRange( m.Location, Location, 2 ) )
|
||||
{
|
||||
if ( ItemID == 0x2A6C || ItemID == 0x2A70 )
|
||||
{
|
||||
Down();
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 0.5 ), TimeSpan.FromSeconds( 0.5 ), 2, new TimerCallback( Down ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Up()
|
||||
{
|
||||
ItemID += 1;
|
||||
}
|
||||
|
||||
private void Down()
|
||||
{
|
||||
ItemID -= 1;
|
||||
}
|
||||
|
||||
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 && ItemID != 0x2A69 && ItemID != 0x2A6D )
|
||||
ItemID = 0x2A69;
|
||||
}
|
||||
}
|
||||
|
||||
public class CreepyPortraitAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new CreepyPortraitDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public CreepyPortraitAddon() : base()
|
||||
{
|
||||
AddComponent( new CreepyPortraitComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public CreepyPortraitAddon( 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 CreepyPortraitDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new CreepyPortraitAddon(); } }
|
||||
public override int LabelNumber { get { return 1074481; } } // Creepy portrait
|
||||
|
||||
[Constructable]
|
||||
public CreepyPortraitDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public CreepyPortraitDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A5D, 0x2A61 )]
|
||||
public class DisturbingPortraitComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074479; } } // Disturbing portrait
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
public DisturbingPortraitComponent() : base( 0x2A5D )
|
||||
{
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromMinutes( 3 ), TimeSpan.FromMinutes( 3 ), new TimerCallback( Change ) );
|
||||
}
|
||||
|
||||
public DisturbingPortraitComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x567, 0x568 ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if ( m_Timer != null && m_Timer.Running )
|
||||
m_Timer.Stop();
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromMinutes( 3 ), TimeSpan.FromMinutes( 3 ), new TimerCallback( Change ) );
|
||||
}
|
||||
|
||||
private void Change()
|
||||
{
|
||||
if ( ItemID < 0x2A61 )
|
||||
ItemID = Utility.RandomMinMax( 0x2A5D, 0x2A60 );
|
||||
else
|
||||
ItemID = Utility.RandomMinMax( 0x2A61, 0x2A64 );
|
||||
}
|
||||
}
|
||||
|
||||
public class DisturbingPortraitAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new DisturbingPortraitDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public DisturbingPortraitAddon() : base()
|
||||
{
|
||||
AddComponent( new DisturbingPortraitComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public DisturbingPortraitAddon( 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 DisturbingPortraitDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new DisturbingPortraitAddon(); } }
|
||||
public override int LabelNumber { get { return 1074479; } } // Disturbing portrait
|
||||
|
||||
[Constructable]
|
||||
public DisturbingPortraitDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public DisturbingPortraitDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A7B, 0x2A7D )]
|
||||
public class HaunterMirrorComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074800; } } // Haunted Mirror
|
||||
public override bool HandlesOnMovement { get { return true; } }
|
||||
|
||||
public HaunterMirrorComponent() : base( 0x2A7B )
|
||||
{
|
||||
}
|
||||
|
||||
public HaunterMirrorComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnMovement( Mobile m, Point3D old )
|
||||
{
|
||||
base.OnMovement( m, old );
|
||||
|
||||
if ( m.Alive && m.Player && ( m.AccessLevel == AccessLevel.Player || !m.Hidden ) )
|
||||
{
|
||||
if ( !Utility.InRange( old, Location, 2 ) && Utility.InRange( m.Location, Location, 2 ) )
|
||||
{
|
||||
if ( ItemID == 0x2A7B || ItemID == 0x2A7D )
|
||||
{
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x551, 0x553 ) );
|
||||
ItemID += 1;
|
||||
}
|
||||
}
|
||||
else if ( Utility.InRange( old, Location, 2 ) && !Utility.InRange( m.Location, Location, 2 ) )
|
||||
{
|
||||
if ( ItemID == 0x2A7C || ItemID == 0x2A7E )
|
||||
ItemID -= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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 HaunterMirrorAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new HaunterMirrorDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public HaunterMirrorAddon() : base()
|
||||
{
|
||||
AddComponent( new HaunterMirrorComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public HaunterMirrorAddon( 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 HaunterMirrorDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new HaunterMirrorAddon(); } }
|
||||
public override int LabelNumber { get { return 1074800; } } // Haunted Mirror
|
||||
|
||||
[Constructable]
|
||||
public HaunterMirrorDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public HaunterMirrorDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A75, 0x2A76 )]
|
||||
public class MountedPixieBlueComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
public MountedPixieBlueComponent() : base( 0x2A75 )
|
||||
{
|
||||
}
|
||||
|
||||
public MountedPixieBlueComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x55C, 0x55E ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 MountedPixieBlueAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new MountedPixieBlueDeed(); } }
|
||||
|
||||
public MountedPixieBlueAddon() : base()
|
||||
{
|
||||
AddComponent( new MountedPixieBlueComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public MountedPixieBlueAddon( 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 MountedPixieBlueDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new MountedPixieBlueAddon(); } }
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
[Constructable]
|
||||
public MountedPixieBlueDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MountedPixieBlueDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A71, 0x2A72 )]
|
||||
public class MountedPixieGreenComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
public MountedPixieGreenComponent() : base( 0x2A71 )
|
||||
{
|
||||
}
|
||||
|
||||
public MountedPixieGreenComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x554, 0x557 ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 MountedPixieGreenAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new MountedPixieGreenDeed(); } }
|
||||
|
||||
public MountedPixieGreenAddon() : base()
|
||||
{
|
||||
AddComponent( new MountedPixieGreenComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public MountedPixieGreenAddon( 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 MountedPixieGreenDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new MountedPixieGreenAddon(); } }
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
[Constructable]
|
||||
public MountedPixieGreenDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MountedPixieGreenDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A77, 0x2A78 )]
|
||||
public class MountedPixieLimeComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
public MountedPixieLimeComponent() : base( 0x2A77 )
|
||||
{
|
||||
}
|
||||
|
||||
public MountedPixieLimeComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x55F, 0x561 ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 MountedPixieLimeAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new MountedPixieLimeDeed(); } }
|
||||
|
||||
public MountedPixieLimeAddon() : base()
|
||||
{
|
||||
AddComponent( new MountedPixieLimeComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public MountedPixieLimeAddon( 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 MountedPixieLimeDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new MountedPixieLimeAddon(); } }
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
[Constructable]
|
||||
public MountedPixieLimeDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MountedPixieLimeDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A73, 0x2A74 )]
|
||||
public class MountedPixieOrangeComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
public MountedPixieOrangeComponent() : base( 0x2A73 )
|
||||
{
|
||||
}
|
||||
|
||||
public MountedPixieOrangeComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x558, 0x55B ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 MountedPixieOrangeAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new MountedPixieOrangeDeed(); } }
|
||||
|
||||
public MountedPixieOrangeAddon() : base()
|
||||
{
|
||||
AddComponent( new MountedPixieOrangeComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public MountedPixieOrangeAddon( 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 MountedPixieOrangeDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new MountedPixieOrangeAddon(); } }
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
[Constructable]
|
||||
public MountedPixieOrangeDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MountedPixieOrangeDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A79, 0x2A7A )]
|
||||
public class MountedPixieWhiteComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
public MountedPixieWhiteComponent() : base( 0x2A79 )
|
||||
{
|
||||
}
|
||||
|
||||
public MountedPixieWhiteComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x562, 0x564 ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 MountedPixieWhiteAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new MountedPixieWhiteDeed(); } }
|
||||
|
||||
public MountedPixieWhiteAddon() : base()
|
||||
{
|
||||
AddComponent( new MountedPixieWhiteComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public MountedPixieWhiteAddon( 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 MountedPixieWhiteDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new MountedPixieWhiteAddon(); } }
|
||||
public override int LabelNumber { get { return 1074482; } } // Mounted pixie
|
||||
|
||||
[Constructable]
|
||||
public MountedPixieWhiteDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MountedPixieWhiteDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAddon( Direction.South, Direction.East )]
|
||||
public class SacrificialAltarAddon : BaseAddonContainer
|
||||
{
|
||||
public override BaseAddonContainerDeed Deed { get { return new SacrificialAltarDeed(); } }
|
||||
public override int LabelNumber { get { return 1074818; } } // Sacrificial Altar
|
||||
public override int DefaultMaxWeight { get { return 0; } }
|
||||
public override int DefaultGumpID { get { return 0x107; } }
|
||||
public override int DefaultDropSound { get { return 0x42; } }
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
[Constructable]
|
||||
public SacrificialAltarAddon() : base( 0x2A9B )
|
||||
{
|
||||
Direction = Direction.South;
|
||||
|
||||
AddComponent( new LocalizedContainerComponent( 0x2A9A, 1074818 ), 1, 0, 0 );
|
||||
}
|
||||
|
||||
public SacrificialAltarAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnDragDrop( Mobile from, Item dropped )
|
||||
{
|
||||
if ( !base.OnDragDrop( from, dropped ) )
|
||||
return false;
|
||||
|
||||
if ( TotalItems >= 50 )
|
||||
{
|
||||
SendLocalizedMessageTo( from, 501478 ); // The trash is full! Emptying!
|
||||
Empty();
|
||||
}
|
||||
else
|
||||
{
|
||||
SendLocalizedMessageTo( from, 1010442 ); // The item will be deleted in three minutes
|
||||
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromMinutes( 3 ), new TimerCallback( Empty ) );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool OnDragDropInto( Mobile from, Item item, Point3D p )
|
||||
{
|
||||
if ( !base.OnDragDropInto( from, item, p ) )
|
||||
return false;
|
||||
|
||||
if ( TotalItems >= 50 )
|
||||
{
|
||||
SendLocalizedMessageTo( from, 501478 ); // The trash is full! Emptying!
|
||||
Empty();
|
||||
}
|
||||
else
|
||||
{
|
||||
SendLocalizedMessageTo( from, 1010442 ); // The item will be deleted in three minutes
|
||||
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromMinutes( 3 ), new TimerCallback( Empty ) );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
if ( Items.Count > 0 )
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromMinutes( 3 ), new TimerCallback( Empty ) );
|
||||
}
|
||||
|
||||
public virtual void Flip( Mobile from, Direction direction )
|
||||
{
|
||||
switch ( direction )
|
||||
{
|
||||
case Direction.East:
|
||||
ItemID = 0x2A9C;
|
||||
AddComponent( new LocalizedContainerComponent( 0x2A9D, 1074818 ), 0, -1, 0 );
|
||||
break;
|
||||
case Direction.South:
|
||||
ItemID = 0x2A9B;
|
||||
AddComponent( new LocalizedContainerComponent( 0x2A9A, 1074818 ), 1, 0, 0 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Empty()
|
||||
{
|
||||
if ( Items.Count > 0 )
|
||||
{
|
||||
Point3D location = Location;
|
||||
location.Z += 10;
|
||||
|
||||
Effects.SendLocationEffect( location, Map, 0x3709, 10, 10, 0x356, 0 );
|
||||
Effects.PlaySound( location, Map, 0x32E );
|
||||
|
||||
if ( Items.Count > 0 )
|
||||
{
|
||||
for ( int i = Items.Count - 1; i >= 0; --i )
|
||||
{
|
||||
if ( i >= Items.Count )
|
||||
continue;
|
||||
|
||||
Items[ i ].Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
|
||||
m_Timer = null;
|
||||
}
|
||||
}
|
||||
|
||||
public class SacrificialAltarDeed : BaseAddonContainerDeed
|
||||
{
|
||||
public override BaseAddonContainer Addon { get { return new SacrificialAltarAddon(); } }
|
||||
public override int LabelNumber { get { return 1074818; } } // Sacrificial Altar
|
||||
|
||||
[Constructable]
|
||||
public SacrificialAltarDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SacrificialAltarDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2A65, 0x2A67 )]
|
||||
public class UnsettlingPortraitComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1074480; } } // Unsettling portrait
|
||||
|
||||
private Timer m_Timer;
|
||||
|
||||
public UnsettlingPortraitComponent() : base( 0x2A65 )
|
||||
{
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromMinutes( 3 ), TimeSpan.FromMinutes( 3 ), new TimerCallback( ChangeDirection ) );
|
||||
}
|
||||
|
||||
public UnsettlingPortraitComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( Utility.InRange( Location, from.Location, 2 ) )
|
||||
Effects.PlaySound( Location, Map, Utility.RandomMinMax( 0x567, 0x568 ) );
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if ( m_Timer != null )
|
||||
m_Timer.Stop();
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
m_Timer = Timer.DelayCall( TimeSpan.FromMinutes( 3 ), TimeSpan.FromMinutes( 3 ), new TimerCallback( ChangeDirection ) );
|
||||
}
|
||||
|
||||
private void ChangeDirection()
|
||||
{
|
||||
if ( ItemID == 0x2A65 )
|
||||
ItemID += 1;
|
||||
else if ( ItemID == 0x2A66 )
|
||||
ItemID -= 1;
|
||||
else if ( ItemID == 0x2A67 )
|
||||
ItemID += 1;
|
||||
else if ( ItemID == 0x2A68 )
|
||||
ItemID -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
public class UnsettlingPortraitAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new UnsettlingPortraitDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public UnsettlingPortraitAddon() : base()
|
||||
{
|
||||
AddComponent( new UnsettlingPortraitComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public UnsettlingPortraitAddon( 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 UnsettlingPortraitDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new UnsettlingPortraitAddon(); } }
|
||||
public override int LabelNumber { get { return 1074480; } } // Unsettling portrait
|
||||
|
||||
[Constructable]
|
||||
public UnsettlingPortraitDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public UnsettlingPortraitDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
132
Scripts/Items/Special/Gifts/HearthOfHomeFire.cs
Normal file
132
Scripts/Items/Special/Gifts/HearthOfHomeFire.cs
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HearthOfHomeFire : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new HearthOfHomeFireDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public HearthOfHomeFire( bool east )
|
||||
{
|
||||
if ( east )
|
||||
{
|
||||
AddLightComponent( new AddonComponent( 0x2352 ), 0, 0, 0 );
|
||||
AddLightComponent( new AddonComponent( 0x2358 ), 0, -1, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
AddLightComponent( new AddonComponent( 0x2360 ), 0, 0, 0 );
|
||||
AddLightComponent( new AddonComponent( 0x2366 ), -1, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
private void AddLightComponent( AddonComponent component, int x, int y, int z )
|
||||
{
|
||||
component.Light = LightType.Circle150;
|
||||
|
||||
AddComponent( component, x, y, z );
|
||||
}
|
||||
|
||||
public HearthOfHomeFire( 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 HearthOfHomeFireDeed : BaseAddonDeed
|
||||
{
|
||||
private bool m_East;
|
||||
|
||||
public override BaseAddon Addon{ get{ return new HearthOfHomeFire( m_East ); } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1062919; } } // Hearth of the Home Fire
|
||||
|
||||
[Constructable]
|
||||
public HearthOfHomeFireDeed()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
|
||||
}
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
private class InternalGump : Gump
|
||||
{
|
||||
private HearthOfHomeFireDeed m_Deed;
|
||||
|
||||
public InternalGump( HearthOfHomeFireDeed deed ) : base( 150, 50 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddBackground( 0, 0, 350, 250, 0xA28 );
|
||||
|
||||
AddItem( 90, 52, 0x2367 );
|
||||
AddItem( 112, 35, 0x2360 );
|
||||
AddButton( 70, 35, 0x868, 0x869, 1, GumpButtonType.Reply, 0 ); // South
|
||||
|
||||
AddItem( 220, 35, 0x2352 );
|
||||
AddItem( 242, 52, 0x2358 );
|
||||
AddButton( 185, 35, 0x868, 0x869, 2, GumpButtonType.Reply, 0 ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = (info.ButtonID != 1);
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
|
||||
public HearthOfHomeFireDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
45
Scripts/Items/Special/Gifts/HolySword.cs
Normal file
45
Scripts/Items/Special/Gifts/HolySword.cs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HolySword : Longsword
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1062921; } } // The Holy Sword
|
||||
|
||||
public override int InitMinHits{ get{ return 255; } }
|
||||
public override int InitMaxHits{ get{ return 255; } }
|
||||
|
||||
[Constructable]
|
||||
public HolySword()
|
||||
{
|
||||
Hue = 0x482;
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
Slayer = SlayerName.Silver;
|
||||
|
||||
Attributes.WeaponDamage = 40;
|
||||
WeaponAttributes.SelfRepair = 10;
|
||||
WeaponAttributes.LowerStatReq = 100;
|
||||
WeaponAttributes.UseBestSkill = 1;
|
||||
}
|
||||
|
||||
public HolySword( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
48
Scripts/Items/Special/Gifts/LeggingsOfEmbers.cs
Normal file
48
Scripts/Items/Special/Gifts/LeggingsOfEmbers.cs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LeggingsOfEmbers : PlateLegs
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1062911; } } // Royal Leggings of Embers
|
||||
|
||||
public override int BasePhysicalResistance{ get{ return 15; } }
|
||||
public override int BaseFireResistance{ get{ return 25; } }
|
||||
public override int BaseColdResistance{ get{ return 0; } }
|
||||
public override int BasePoisonResistance{ get{ return 15; } }
|
||||
public override int BaseEnergyResistance{ get{ return 15; } }
|
||||
|
||||
public override int InitMinHits{ get{ return 255; } }
|
||||
public override int InitMaxHits{ get{ return 255; } }
|
||||
|
||||
[Constructable]
|
||||
public LeggingsOfEmbers()
|
||||
{
|
||||
Hue = 0x2C;
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
ArmorAttributes.SelfRepair = 10;
|
||||
ArmorAttributes.MageArmor = 1;
|
||||
ArmorAttributes.LowerStatReq = 100;
|
||||
}
|
||||
|
||||
public LeggingsOfEmbers( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
223
Scripts/Items/Special/Gifts/RoseOfTrinsic.cs
Normal file
223
Scripts/Items/Special/Gifts/RoseOfTrinsic.cs
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
using Server.Gumps;
|
||||
using Server.Multis;
|
||||
using Server.ContextMenus;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAttribute( 0x234C, 0x234D )]
|
||||
public class RoseOfTrinsic : Item, ISecurable
|
||||
{
|
||||
private static readonly TimeSpan m_SpawnTime = TimeSpan.FromHours( 4.0 );
|
||||
|
||||
private int m_Petals;
|
||||
private DateTime m_NextSpawnTime;
|
||||
private SpawnTimer m_SpawnTimer;
|
||||
|
||||
private SecureLevel m_Level;
|
||||
|
||||
public override int LabelNumber{ get{ return 1062913; } } // Rose of Trinsic
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public SecureLevel Level
|
||||
{
|
||||
get{ return m_Level; }
|
||||
set{ m_Level = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Petals
|
||||
{
|
||||
get{ return m_Petals; }
|
||||
set
|
||||
{
|
||||
if ( value >= 10 )
|
||||
{
|
||||
m_Petals = 10;
|
||||
|
||||
StopSpawnTimer();
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( value <= 0 )
|
||||
m_Petals = 0;
|
||||
else
|
||||
m_Petals = value;
|
||||
|
||||
StartSpawnTimer( m_SpawnTime );
|
||||
}
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public RoseOfTrinsic() : base( 0x234D )
|
||||
{
|
||||
Weight = 1.0;
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
m_Petals = 0;
|
||||
StartSpawnTimer( TimeSpan.FromMinutes( 1.0 ) );
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
list.Add( 1062925, Petals.ToString() ); // Petals: ~1_COUNT~
|
||||
}
|
||||
|
||||
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
|
||||
{
|
||||
base.GetContextMenuEntries( from, list );
|
||||
|
||||
SetSecureLevelEntry.AddTo( from, this, list );
|
||||
}
|
||||
|
||||
private void StartSpawnTimer( TimeSpan delay )
|
||||
{
|
||||
StopSpawnTimer();
|
||||
|
||||
m_SpawnTimer = new SpawnTimer( this, delay );
|
||||
m_SpawnTimer.Start();
|
||||
|
||||
m_NextSpawnTime = DateTime.UtcNow + delay;
|
||||
}
|
||||
|
||||
private void StopSpawnTimer()
|
||||
{
|
||||
if ( m_SpawnTimer != null )
|
||||
{
|
||||
m_SpawnTimer.Stop();
|
||||
m_SpawnTimer = null;
|
||||
}
|
||||
}
|
||||
|
||||
private class SpawnTimer : Timer
|
||||
{
|
||||
private RoseOfTrinsic m_Rose;
|
||||
|
||||
public SpawnTimer( RoseOfTrinsic rose, TimeSpan delay ) : base( delay )
|
||||
{
|
||||
m_Rose = rose;
|
||||
|
||||
Priority = TimerPriority.OneMinute;
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if ( m_Rose.Deleted )
|
||||
return;
|
||||
|
||||
m_Rose.m_SpawnTimer = null;
|
||||
m_Rose.Petals++;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( !from.InRange( GetWorldLocation(), 2 ) )
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
else if ( Petals > 0 )
|
||||
{
|
||||
from.AddToBackpack( new RoseOfTrinsicPetal( Petals ) );
|
||||
Petals = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public RoseOfTrinsic( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( (int) 0 ); // version
|
||||
|
||||
writer.WriteEncodedInt( (int) m_Petals );
|
||||
writer.WriteDeltaTime( (DateTime) m_NextSpawnTime );
|
||||
writer.WriteEncodedInt( (int) m_Level );
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_Petals = reader.ReadEncodedInt();
|
||||
m_NextSpawnTime = reader.ReadDeltaTime();
|
||||
m_Level = (SecureLevel) reader.ReadEncodedInt();
|
||||
|
||||
if ( m_Petals < 10 )
|
||||
StartSpawnTimer( m_NextSpawnTime - DateTime.UtcNow );
|
||||
}
|
||||
}
|
||||
|
||||
public class RoseOfTrinsicPetal : Item
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1062926; } } // Petal of the Rose of Trinsic
|
||||
|
||||
[Constructable]
|
||||
public RoseOfTrinsicPetal() : this( 1 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public RoseOfTrinsicPetal( int amount ) : base( 0x1021 )
|
||||
{
|
||||
Stackable = true;
|
||||
Amount = amount;
|
||||
|
||||
Weight = 1.0;
|
||||
Hue = 0xE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( !IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 1042038 ); // You must have the object in your backpack to use it.
|
||||
}
|
||||
else if ( from.GetStatMod( "RoseOfTrinsicPetal" ) != null )
|
||||
{
|
||||
from.SendLocalizedMessage( 1062927 ); // You have eaten one of these recently and eating another would provide no benefit.
|
||||
}
|
||||
else
|
||||
{
|
||||
from.PlaySound( 0x1EE );
|
||||
from.AddStatMod( new StatMod( StatType.Str, "RoseOfTrinsicPetal", 5, TimeSpan.FromMinutes( 5.0 ) ) );
|
||||
|
||||
Consume();
|
||||
}
|
||||
}
|
||||
|
||||
public RoseOfTrinsicPetal( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
52
Scripts/Items/Special/Gifts/SamuraiHelm.cs
Normal file
52
Scripts/Items/Special/Gifts/SamuraiHelm.cs
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAttribute( 0x236C, 0x236D )]
|
||||
public class SamuraiHelm : BaseArmor
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1062923; } } // Ancient Samurai Helm
|
||||
|
||||
public override int BasePhysicalResistance{ get{ return 15; } }
|
||||
public override int BaseFireResistance{ get{ return 10; } }
|
||||
public override int BaseColdResistance{ get{ return 10; } }
|
||||
public override int BasePoisonResistance{ get{ return 15; } }
|
||||
public override int BaseEnergyResistance{ get{ return 10; } }
|
||||
|
||||
public override int InitMinHits{ get{ return 255; } }
|
||||
public override int InitMaxHits{ get{ return 255; } }
|
||||
|
||||
public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Plate; } }
|
||||
|
||||
[Constructable]
|
||||
public SamuraiHelm() : base( 0x236C )
|
||||
{
|
||||
Weight = 5.0;
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
Attributes.DefendChance = 15;
|
||||
ArmorAttributes.SelfRepair = 10;
|
||||
ArmorAttributes.LowerStatReq = 100;
|
||||
ArmorAttributes.MageArmor = 1;
|
||||
}
|
||||
|
||||
public SamuraiHelm( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
43
Scripts/Items/Special/Gifts/ShaminoCrossbow.cs
Normal file
43
Scripts/Items/Special/Gifts/ShaminoCrossbow.cs
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ShaminoCrossbow : RepeatingCrossbow
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1062915; } } // Shamino’s Best Crossbow
|
||||
|
||||
public override int InitMinHits{ get{ return 255; } }
|
||||
public override int InitMaxHits{ get{ return 255; } }
|
||||
|
||||
[Constructable]
|
||||
public ShaminoCrossbow()
|
||||
{
|
||||
Hue = 0x504;
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
Attributes.AttackChance = 15;
|
||||
Attributes.WeaponDamage = 40;
|
||||
WeaponAttributes.SelfRepair = 10;
|
||||
WeaponAttributes.LowerStatReq = 100;
|
||||
}
|
||||
|
||||
public ShaminoCrossbow( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
83
Scripts/Items/Special/Gifts/TapestryOfSosaria.cs
Normal file
83
Scripts/Items/Special/Gifts/TapestryOfSosaria.cs
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
using Server.Multis;
|
||||
using Server.ContextMenus;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[FlipableAttribute( 0x234E, 0x234F )]
|
||||
public class TapestryOfSosaria : Item, ISecurable
|
||||
{
|
||||
private SecureLevel m_Level;
|
||||
|
||||
public override int LabelNumber{ get{ return 1062917; } } // The Tapestry of Sosaria
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public SecureLevel Level
|
||||
{
|
||||
get{ return m_Level; }
|
||||
set{ m_Level = value; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public TapestryOfSosaria() : base( 0x234E )
|
||||
{
|
||||
Weight = 1.0;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
|
||||
{
|
||||
base.GetContextMenuEntries( from, list );
|
||||
|
||||
SetSecureLevelEntry.AddTo( from, this, list );
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( from.InRange( GetWorldLocation(), 2 ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump() );
|
||||
}
|
||||
else
|
||||
{
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalGump : Gump
|
||||
{
|
||||
public InternalGump() : base( 50, 50 )
|
||||
{
|
||||
AddImage( 0, 0, 0x2C95 );
|
||||
}
|
||||
}
|
||||
|
||||
public TapestryOfSosaria( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( (int) 0 ); // version
|
||||
|
||||
writer.WriteEncodedInt( (int) m_Level );
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_Level = (SecureLevel) reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Scripts/Items/Special/Heritage Items/AppleTrunk.cs
Normal file
63
Scripts/Items/Special/Heritage Items/AppleTrunk.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AppleTrunkAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new AppleTrunkDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public AppleTrunkAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xD98, 1076785 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public AppleTrunkAddon( 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 AppleTrunkDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new AppleTrunkAddon(); } }
|
||||
public override int LabelNumber { get { return 1076785; } } // Apple Trunk
|
||||
|
||||
[Constructable]
|
||||
public AppleTrunkDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public AppleTrunkDeed( 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/Special/Heritage Items/BlueDecorativeRug.cs
Normal file
71
Scripts/Items/Special/Heritage Items/BlueDecorativeRug.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BlueDecorativeRugAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BlueDecorativeRugDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BlueDecorativeRugAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD2, 1076589 ), 1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD3, 1076589 ), -1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD4, 1076589 ), -1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD5, 1076589 ), 1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD6, 1076589 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD7, 1076589 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD8, 1076589 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD9, 1076589 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD1, 1076589 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BlueDecorativeRugAddon( 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 BlueDecorativeRugDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BlueDecorativeRugAddon(); } }
|
||||
public override int LabelNumber { get { return 1076589; } } // Blue decorative rug
|
||||
|
||||
[Constructable]
|
||||
public BlueDecorativeRugDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BlueDecorativeRugDeed( 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/Special/Heritage Items/BlueFancyRug.cs
Normal file
71
Scripts/Items/Special/Heritage Items/BlueFancyRug.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BlueFancyRugAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BlueFancyRugDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BlueFancyRugAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC2, 1076273 ), 1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC3, 1076273 ), -1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC4, 1076273 ), -1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC5, 1076273 ), 1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF6, 1076273 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF7, 1076273 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF8, 1076273 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF9, 1076273 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAFA, 1076273 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BlueFancyRugAddon( 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 BlueFancyRugDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BlueFancyRugAddon(); } }
|
||||
public override int LabelNumber { get { return 1076273; } } // Blue fancy rug
|
||||
|
||||
[Constructable]
|
||||
public BlueFancyRugDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BlueFancyRugDeed( 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/Special/Heritage Items/BluePlainRug.cs
Normal file
71
Scripts/Items/Special/Heritage Items/BluePlainRug.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BluePlainRugAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new BluePlainRugDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public BluePlainRugAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC2, 1076585 ), 1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC3, 1076585 ), -1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC4, 1076585 ), -1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC5, 1076585 ), 1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF6, 1076585 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF7, 1076585 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF8, 1076585 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF9, 1076585 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC0, 1076585 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public BluePlainRugAddon( 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 BluePlainRugDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new BluePlainRugAddon(); } }
|
||||
public override int LabelNumber { get { return 1076585; } } // Blue plain rug
|
||||
|
||||
[Constructable]
|
||||
public BluePlainRugDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BluePlainRugDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
68
Scripts/Items/Special/Heritage Items/BoilingCauldron.cs
Normal file
68
Scripts/Items/Special/Heritage Items/BoilingCauldron.cs
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2068, 0x207A )]
|
||||
public class BoilingCauldronAddon : BaseAddonContainer
|
||||
{
|
||||
public override BaseAddonContainerDeed Deed { get { return new BoilingCauldronDeed(); } }
|
||||
public override int LabelNumber { get { return 1076267; } } // Boiling Cauldron
|
||||
public override int DefaultGumpID { get { return 0x9; } }
|
||||
public override int DefaultDropSound { get { return 0x42; } }
|
||||
|
||||
[Constructable]
|
||||
public BoilingCauldronAddon() : base( 0x2068 )
|
||||
{
|
||||
AddComponent( new LocalizedContainerComponent( 0xFAC, 1076267 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedContainerComponent( 0x970, 1076267 ), 0, 0, 8 );
|
||||
}
|
||||
|
||||
public BoilingCauldronAddon( 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 BoilingCauldronDeed : BaseAddonContainerDeed
|
||||
{
|
||||
public override BaseAddonContainer Addon { get { return new BoilingCauldronAddon(); } }
|
||||
public override int LabelNumber { get { return 1076267; } } // Boiling Cauldron
|
||||
|
||||
[Constructable]
|
||||
public BoilingCauldronDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BoilingCauldronDeed( 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/Special/Heritage Items/CherryBlossomTree.cs
Normal file
64
Scripts/Items/Special/Heritage Items/CherryBlossomTree.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CherryBlossomTreeAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new CherryBlossomTreeDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public CherryBlossomTreeAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x26EE, 1076268 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3122, 1076268 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public CherryBlossomTreeAddon( 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 CherryBlossomTreeDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new CherryBlossomTreeAddon(); } }
|
||||
public override int LabelNumber { get { return 1076268; } } // Cherry Blossom Tree
|
||||
|
||||
[Constructable]
|
||||
public CherryBlossomTreeDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public CherryBlossomTreeDeed( 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/Special/Heritage Items/CherryBlossomTrunk.cs
Normal file
63
Scripts/Items/Special/Heritage Items/CherryBlossomTrunk.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CherryBlossomTrunkAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new CherryBlossomTrunkDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public CherryBlossomTrunkAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x26EE, 1076784 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public CherryBlossomTrunkAddon( 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 CherryBlossomTrunkDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new CherryBlossomTrunkAddon(); } }
|
||||
public override int LabelNumber { get { return 1076784; } } // Cherry Blossom Trunk
|
||||
|
||||
[Constructable]
|
||||
public CherryBlossomTrunkDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public CherryBlossomTrunkDeed( 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/Special/Heritage Items/CinnamonFancyRug.cs
Normal file
71
Scripts/Items/Special/Heritage Items/CinnamonFancyRug.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CinnamonFancyRugAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new CinnamonFancyRugDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public CinnamonFancyRugAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE3, 1076587 ), 1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE4, 1076587 ), -1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE5, 1076587 ), -1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE6, 1076587 ), 1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE7, 1076587 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE8, 1076587 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE9, 1076587 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAEA, 1076587 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAEB, 1076587 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public CinnamonFancyRugAddon( 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 CinnamonFancyRugDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new CinnamonFancyRugAddon(); } }
|
||||
public override int LabelNumber { get { return 1076587; } } // Cinnamon fancy rug
|
||||
|
||||
[Constructable]
|
||||
public CinnamonFancyRugDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public CinnamonFancyRugDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
213
Scripts/Items/Special/Heritage Items/Curtains.cs
Normal file
213
Scripts/Items/Special/Heritage Items/Curtains.cs
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CurtainsComponent : AddonComponent, IDyable
|
||||
{
|
||||
public override int LabelNumber { get { return 1076280; } } // Curtains
|
||||
public override bool DisplayWeight { get { return false; } }
|
||||
|
||||
private int m_ClosedID;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ClosedID
|
||||
{
|
||||
get { return m_ClosedID; }
|
||||
set { m_ClosedID = value; }
|
||||
}
|
||||
|
||||
public CurtainsComponent( int itemID, int closedID ) : base( itemID )
|
||||
{
|
||||
m_ClosedID = closedID;
|
||||
}
|
||||
|
||||
public CurtainsComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
base.OnDoubleClick( from );
|
||||
|
||||
if ( Addon != null )
|
||||
{
|
||||
if ( from.InRange( Location, 1 ) )
|
||||
{
|
||||
foreach ( AddonComponent c in Addon.Components )
|
||||
{
|
||||
if ( c is CurtainsComponent )
|
||||
{
|
||||
CurtainsComponent curtain = (CurtainsComponent) c;
|
||||
|
||||
int temp = curtain.ItemID;
|
||||
curtain.ItemID = curtain.ClosedID;
|
||||
curtain.ClosedID = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
|
||||
writer.Write( (int) m_ClosedID );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_ClosedID = reader.ReadInt();
|
||||
}
|
||||
|
||||
#region IDyable
|
||||
public virtual bool Dye( Mobile from, DyeTub sender )
|
||||
{
|
||||
if ( Deleted )
|
||||
return false;
|
||||
|
||||
Hue = sender.DyedHue;
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class CurtainsAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new CurtainsDeed(); } }
|
||||
public override bool RetainDeedHue { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public CurtainsAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new CurtainsComponent( 0x3D9E, 0x3DA8 ), 0, -1, 0 );
|
||||
AddComponent( new CurtainsComponent( 0x3DAC, 0x3DAE ), 0, 0, 0 );
|
||||
AddComponent( new CurtainsComponent( 0x3DA0, 0x3DA6 ), 0, 2, 0 );
|
||||
AddComponent( new CurtainsComponent( 0x3D9F, 0x3DA7 ), 0, 1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new CurtainsComponent( 0x3D9C, 0x3DAD ), 0, 0, 0 );
|
||||
AddComponent( new CurtainsComponent( 0x3D9D, 0x3DA3 ), -1, 0, 0 );
|
||||
AddComponent( new CurtainsComponent( 0x3DA1, 0x3DA5 ), 2, 0, 0 );
|
||||
AddComponent( new CurtainsComponent( 0x3DAB, 0x3DA4 ), 1, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public CurtainsAddon( 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 CurtainsDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new CurtainsAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076280; } } // Curtains
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public CurtainsDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public CurtainsDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private CurtainsDeed m_Deed;
|
||||
|
||||
public InternalGump( CurtainsDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076581, 0x7FFF, false, false ); // Please select your curtain position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Scripts/Items/Special/Heritage Items/Fountain.cs
Normal file
62
Scripts/Items/Special/Heritage Items/Fountain.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class FountainAddon : StoneFountainAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new FountainDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public FountainAddon() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public FountainAddon( 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 FountainDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new FountainAddon(); } }
|
||||
public override int LabelNumber { get { return 1076283; } } // Fountain
|
||||
|
||||
[Constructable]
|
||||
public FountainDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public FountainDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
215
Scripts/Items/Special/Heritage Items/FruitTrees.cs
Normal file
215
Scripts/Items/Special/Heritage Items/FruitTrees.cs
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseFruitTreeAddon : BaseAddon
|
||||
{
|
||||
public override abstract BaseAddonDeed Deed { get; }
|
||||
public abstract Item Fruit { get; }
|
||||
|
||||
private int m_Fruits;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Fruits
|
||||
{
|
||||
get { return m_Fruits; }
|
||||
set
|
||||
{
|
||||
if ( value < 0 )
|
||||
m_Fruits = 0;
|
||||
else
|
||||
m_Fruits = value;
|
||||
}
|
||||
}
|
||||
|
||||
public BaseFruitTreeAddon() : base()
|
||||
{
|
||||
Timer.DelayCall( TimeSpan.FromMinutes( 5 ), new TimerCallback( Respawn ) );
|
||||
}
|
||||
|
||||
public BaseFruitTreeAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnComponentUsed( AddonComponent c, Mobile from )
|
||||
{
|
||||
if ( from.InRange( c.Location, 2 ) )
|
||||
{
|
||||
if ( m_Fruits > 0 )
|
||||
{
|
||||
Item fruit = Fruit;
|
||||
|
||||
if ( fruit == null )
|
||||
return;
|
||||
|
||||
if ( !from.PlaceInBackpack( fruit ) )
|
||||
{
|
||||
fruit.Delete();
|
||||
from.SendLocalizedMessage( 501015 ); // There is no room in your backpack for the fruit.
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( --m_Fruits == 0 )
|
||||
Timer.DelayCall( TimeSpan.FromMinutes( 30 ), new TimerCallback( Respawn ) );
|
||||
|
||||
from.SendLocalizedMessage( 501016 ); // You pick some fruit and put it in your backpack.
|
||||
}
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 501017 ); // There is no more fruit on this tree
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
private void Respawn()
|
||||
{
|
||||
m_Fruits = Utility.RandomMinMax( 1, 4 );
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
|
||||
writer.Write( (int) m_Fruits );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
m_Fruits = reader.ReadInt();
|
||||
|
||||
if ( m_Fruits == 0 )
|
||||
Respawn();
|
||||
}
|
||||
}
|
||||
|
||||
public class AppleTreeAddon : BaseFruitTreeAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new AppleTreeDeed(); } }
|
||||
public override Item Fruit { get { return new Apple(); } }
|
||||
|
||||
[Constructable]
|
||||
public AppleTreeAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xD98, 1076269 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3124, 1076269 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public AppleTreeAddon( 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 AppleTreeDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new AppleTreeAddon(); } }
|
||||
public override int LabelNumber { get { return 1076269; } } // Apple Tree
|
||||
|
||||
[Constructable]
|
||||
public AppleTreeDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public AppleTreeDeed( 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 PeachTreeAddon : BaseFruitTreeAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new PeachTreeDeed(); } }
|
||||
public override Item Fruit { get { return new Peach(); } }
|
||||
|
||||
[Constructable]
|
||||
public PeachTreeAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xD9C, 1076270 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3123, 1076270 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public PeachTreeAddon( 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 PeachTreeDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new PeachTreeAddon(); } }
|
||||
public override int LabelNumber { get { return 1076270; } } // Peach Tree
|
||||
|
||||
[Constructable]
|
||||
public PeachTreeDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public PeachTreeDeed( 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/Special/Heritage Items/GoldenDecorativeRug.cs
Normal file
71
Scripts/Items/Special/Heritage Items/GoldenDecorativeRug.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GoldenDecorativeRugAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new GoldenDecorativeRugDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public GoldenDecorativeRugAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xADB, 1076586 ), 1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xADC, 1076586 ), -1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xADD, 1076586 ), -1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xADE, 1076586 ), 1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xADF, 1076586 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE0, 1076586 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE1, 1076586 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAE2, 1076586 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xADA, 1076586 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public GoldenDecorativeRugAddon( 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 GoldenDecorativeRugDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new GoldenDecorativeRugAddon(); } }
|
||||
public override int LabelNumber { get { return 1076586; } } // Golden decorative rug
|
||||
|
||||
[Constructable]
|
||||
public GoldenDecorativeRugDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public GoldenDecorativeRugDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
175
Scripts/Items/Special/Heritage Items/Guillotine.cs
Normal file
175
Scripts/Items/Special/Heritage Items/Guillotine.cs
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Spells;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x125E, 0x1230 )]
|
||||
public class GuillotineComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1024656; } } // Guillotine
|
||||
|
||||
public GuillotineComponent() : base( 0x125E )
|
||||
{
|
||||
}
|
||||
|
||||
public GuillotineComponent( 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 GuillotineAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new GuillotineDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public GuillotineAddon() : base()
|
||||
{
|
||||
AddComponent( new GuillotineComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public GuillotineAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnComponentUsed( AddonComponent c, Mobile from )
|
||||
{
|
||||
if ( from.InRange( Location, 2 ) )
|
||||
{
|
||||
if ( Utility.RandomBool() )
|
||||
{
|
||||
from.Location = Location;
|
||||
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 0.5 ), new TimerStateCallback( Activate ), new object[] { c, from } );
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0, 501777 ); // Hmm... you suspect that if you used this again, it might hurt.
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 void Activate( object obj )
|
||||
{
|
||||
object[] param = (object[]) obj;
|
||||
|
||||
if ( param[ 0 ] is AddonComponent && param[ 1 ] is Mobile )
|
||||
Activate( (AddonComponent) param[ 0 ], (Mobile) param[ 1 ] );
|
||||
}
|
||||
|
||||
public virtual void Activate( AddonComponent c, Mobile from )
|
||||
{
|
||||
if ( c.ItemID == 0x125E || c.ItemID == 0x1269 || c.ItemID == 0x1260 )
|
||||
c.ItemID = 0x1269;
|
||||
else
|
||||
c.ItemID = 0x1247;
|
||||
|
||||
// blood
|
||||
int amount = Utility.RandomMinMax( 3, 7 );
|
||||
|
||||
for ( int i = 0; i < amount; i++ )
|
||||
{
|
||||
int x = c.X + Utility.RandomMinMax( -1, 1 );
|
||||
int y = c.Y + Utility.RandomMinMax( -1, 1 );
|
||||
int z = c.Z;
|
||||
|
||||
if ( !c.Map.CanFit( x, y, z, 1, false, false, true ) )
|
||||
{
|
||||
z = c.Map.GetAverageZ( x, y );
|
||||
|
||||
if ( !c.Map.CanFit( x, y, z, 1, false, false, true ) )
|
||||
continue;
|
||||
}
|
||||
|
||||
Blood blood = new Blood( Utility.RandomMinMax( 0x122C, 0x122F ) );
|
||||
blood.MoveToWorld( new Point3D( x, y, z ), c.Map );
|
||||
}
|
||||
|
||||
if ( from.Female )
|
||||
from.PlaySound( Utility.RandomMinMax( 0x150, 0x153 ) );
|
||||
else
|
||||
from.PlaySound( Utility.RandomMinMax( 0x15A, 0x15D ) );
|
||||
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0, 501777 ); // Hmm... you suspect that if you used this again, it might hurt.
|
||||
SpellHelper.Damage( TimeSpan.Zero, from, Utility.Dice( 2, 10, 5 ) );
|
||||
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 0.5 ), TimeSpan.FromSeconds( 0.5 ), 2, new TimerStateCallback( Deactivate ), c );
|
||||
}
|
||||
|
||||
private void Deactivate( object obj )
|
||||
{
|
||||
if ( obj is AddonComponent )
|
||||
{
|
||||
AddonComponent c = (AddonComponent) obj;
|
||||
|
||||
if ( c.ItemID == 0x1269 )
|
||||
c.ItemID = 0x1260;
|
||||
else if ( c.ItemID == 0x1260 )
|
||||
c.ItemID = 0x125E;
|
||||
else if ( c.ItemID == 0x1247 )
|
||||
c.ItemID = 0x1246;
|
||||
else if ( c.ItemID == 0x1246 )
|
||||
c.ItemID = 0x1230;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class GuillotineDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new GuillotineAddon(); } }
|
||||
public override int LabelNumber { get { return 1024656; } } // Guillotine
|
||||
|
||||
[Constructable]
|
||||
public GuillotineDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public GuillotineDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Scripts/Items/Special/Heritage Items/HangingAxes.cs
Normal file
130
Scripts/Items/Special/Heritage Items/HangingAxes.cs
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HangingAxesAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new HangingAxesDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public HangingAxesAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x156A, 1076271 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x156B, 1076271 ), 0, -1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x1568, 1076271 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x1569, 1076271 ), 1, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public HangingAxesAddon( 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 HangingAxesDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new HangingAxesAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076271; } } // Hanging Axes
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public HangingAxesDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public HangingAxesDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private HangingAxesDeed m_Deed;
|
||||
|
||||
public InternalGump( HangingAxesDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076745, 0x7FFF, false, false ); // Please select your hanging axe position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Scripts/Items/Special/Heritage Items/HangingSwords.cs
Normal file
130
Scripts/Items/Special/Heritage Items/HangingSwords.cs
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HangingSwordsAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new HangingSwordsDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public HangingSwordsAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x1566, 1076272 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x1567, 1076272 ), 0, -1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x1564, 1076272 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x1565, 1076272 ), 1, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public HangingSwordsAddon( 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 HangingSwordsDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new HangingSwordsAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076272; } } // Hanging Swords
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public HangingSwordsDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public HangingSwordsDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private HangingSwordsDeed m_Deed;
|
||||
|
||||
public InternalGump( HangingSwordsDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076746, 0x7FFF, false, false ); // Please select your hanging sword position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
170
Scripts/Items/Special/Heritage Items/HouseLadder.cs
Normal file
170
Scripts/Items/Special/Heritage Items/HouseLadder.cs
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HouseLadderAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new HouseLadderDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public HouseLadderAddon( int type ) : base()
|
||||
{
|
||||
switch ( type )
|
||||
{
|
||||
case 0: // castle south
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB2, 1076791 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3F28, 1076791 ), 0, 1, 28 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB4, 1076791 ), 0, 2, 20 );
|
||||
break;
|
||||
case 1: // castle east
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB3, 1076791 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3F28, 1076791 ), 1, 0, 28 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB5, 1076791 ), 2, 0, 20 );
|
||||
break;
|
||||
case 2: // castle north
|
||||
AddComponent( new LocalizedAddonComponent( 0x2FDF, 1076791 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3F28, 1076791 ), 0, -1, 28 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB6, 1076791 ), 0, -2, 20 );
|
||||
break;
|
||||
case 3: // castle west
|
||||
AddComponent( new LocalizedAddonComponent( 0x2FDE, 1076791 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3F28, 1076791 ), -1, 0, 28 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB7, 1076791 ), -2, 0, 20 );
|
||||
break;
|
||||
case 4: // south
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB2, 1076287 ), 0, 0, 0 );
|
||||
break;
|
||||
case 5: // east
|
||||
AddComponent( new LocalizedAddonComponent( 0x3DB3, 1076287 ), 0, 0, 0 );
|
||||
break;
|
||||
case 6: // north
|
||||
AddComponent( new LocalizedAddonComponent( 0x2FDF, 1076287 ), 0, 0, 0 );
|
||||
break;
|
||||
case 7: // west
|
||||
AddComponent( new LocalizedAddonComponent( 0x2FDE, 1076287 ), 0, 0, 0 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public HouseLadderAddon( 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 HouseLadderDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new HouseLadderAddon( m_Type ); } }
|
||||
public override int LabelNumber { get { return 1076287; } } // Ladder
|
||||
|
||||
private int m_Type;
|
||||
|
||||
[Constructable]
|
||||
public HouseLadderDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public HouseLadderDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private HouseLadderDeed m_Deed;
|
||||
|
||||
public InternalGump( HouseLadderDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076780, 0x7FFF, false, false ); // Please select your ladder position. <br>Use the ladders marked (castle) <br> for accessing the tops of keeps <br> and castles.
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1076794, 0x7FFF, false, false ); // South (Castle)
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1076795, 0x7FFF, false, false ); // East (Castle)
|
||||
AddButton( 19, 97, 0x845, 0x846, 3, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 95, 213, 20, 1076792, 0x7FFF, false, false ); // North (Castle)
|
||||
AddButton( 19, 121, 0x845, 0x846, 4, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 119, 213, 20, 1076793, 0x7FFF, false, false ); // West (Castle)
|
||||
AddButton( 19, 145, 0x845, 0x846, 5, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 143, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 169, 0x845, 0x846, 6, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 167, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
AddButton( 19, 193, 0x845, 0x846, 7, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 191, 213, 20, 1075389, 0x7FFF, false, false ); // North
|
||||
AddButton( 19, 217, 0x845, 0x846, 8, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 215, 213, 20, 1075390, 0x7FFF, false, false ); // West
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
if ( info.ButtonID >= 1 && info.ButtonID <= 8 )
|
||||
{
|
||||
m_Deed.m_Type = info.ButtonID - 1;
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
136
Scripts/Items/Special/Heritage Items/IronMaiden.cs
Normal file
136
Scripts/Items/Special/Heritage Items/IronMaiden.cs
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Spells;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class IronMaidenAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new IronMaidenDeed(); } }
|
||||
|
||||
public IronMaidenAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x1249, 1076288 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public IronMaidenAddon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnComponentUsed( AddonComponent c, Mobile from )
|
||||
{
|
||||
if ( from.InRange( this.GetWorldLocation(), 2 ) && from.InLOS( this.GetWorldLocation() ) )
|
||||
{
|
||||
if ( Utility.RandomBool() )
|
||||
{
|
||||
from.Location = Location;
|
||||
c.ItemID = 0x124A;
|
||||
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 0.5 ), TimeSpan.FromSeconds( 0.5 ), 3, new TimerStateCallback( Activate ), new object[] { c, from } );
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0, 501777 ); // Hmm... you suspect that if you used this again, it might hurt.
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 void Activate( object obj )
|
||||
{
|
||||
object[] param = (object[]) obj;
|
||||
|
||||
if ( param[ 0 ] is AddonComponent && param[ 1 ] is Mobile )
|
||||
Activate( (AddonComponent) param[ 0 ], (Mobile) param[ 1 ] );
|
||||
}
|
||||
|
||||
public virtual void Activate( AddonComponent c, Mobile from )
|
||||
{
|
||||
c.ItemID += 1;
|
||||
|
||||
if ( c.ItemID >= 0x124D )
|
||||
{
|
||||
// blood
|
||||
int amount = Utility.RandomMinMax( 3, 7 );
|
||||
|
||||
for ( int i = 0; i < amount; i++ )
|
||||
{
|
||||
int x = c.X + Utility.RandomMinMax( -1, 1 );
|
||||
int y = c.Y + Utility.RandomMinMax( -1, 1 );
|
||||
int z = c.Z;
|
||||
|
||||
if ( !c.Map.CanFit( x, y, z, 1, false, false, true ) )
|
||||
{
|
||||
z = c.Map.GetAverageZ( x, y );
|
||||
|
||||
if ( !c.Map.CanFit( x, y, z, 1, false, false, true ) )
|
||||
continue;
|
||||
}
|
||||
|
||||
Blood blood = new Blood( Utility.RandomMinMax( 0x122C, 0x122F ) );
|
||||
blood.MoveToWorld( new Point3D( x, y, z ), c.Map );
|
||||
}
|
||||
|
||||
if ( from.Female )
|
||||
from.PlaySound( Utility.RandomMinMax( 0x150, 0x153 ) );
|
||||
else
|
||||
from.PlaySound( Utility.RandomMinMax( 0x15A, 0x15D ) );
|
||||
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0, 501777 ); // Hmm... you suspect that if you used this again, it might hurt.
|
||||
SpellHelper.Damage( TimeSpan.Zero, from, Utility.Dice( 2, 10, 5 ) );
|
||||
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 1 ), new TimerStateCallback( Deactivate ), c );
|
||||
}
|
||||
}
|
||||
|
||||
private void Deactivate( object obj )
|
||||
{
|
||||
if ( obj is AddonComponent )
|
||||
( (AddonComponent) obj ).ItemID = 0x1249;
|
||||
}
|
||||
}
|
||||
|
||||
public class IronMaidenDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new IronMaidenAddon(); } }
|
||||
public override int LabelNumber { get { return 1076288; } } // Iron Maiden
|
||||
|
||||
[Constructable]
|
||||
public IronMaidenDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public IronMaidenDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Scripts/Items/Special/Heritage Items/LargeFishingNet.cs
Normal file
91
Scripts/Items/Special/Heritage Items/LargeFishingNet.cs
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x3D8E, 0x3D8F )]
|
||||
public class LargeFishingNetComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076285; } } // Large Fish Net
|
||||
|
||||
public LargeFishingNetComponent() : base( 0x3D8E )
|
||||
{
|
||||
}
|
||||
|
||||
public LargeFishingNetComponent( 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 LargeFishingNetAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new LargeFishingNetDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public LargeFishingNetAddon() : base()
|
||||
{
|
||||
AddComponent( new LargeFishingNetComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public LargeFishingNetAddon( 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 LargeFishingNetDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new LargeFishingNetAddon(); } }
|
||||
public override int LabelNumber { get { return 1076285; } } // Large Fish Net
|
||||
|
||||
[Constructable]
|
||||
public LargeFishingNetDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public LargeFishingNetDeed( 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/Special/Heritage Items/PeachTrunk.cs
Normal file
63
Scripts/Items/Special/Heritage Items/PeachTrunk.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PeachTrunkAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new PeachTrunkDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PeachTrunkAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xD9C, 1076786 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public PeachTrunkAddon( 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 PeachTrunkDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new PeachTrunkAddon(); } }
|
||||
public override int LabelNumber { get { return 1076786; } } // Peach Trunk
|
||||
|
||||
[Constructable]
|
||||
public PeachTrunkDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public PeachTrunkDeed( 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/Special/Heritage Items/PinkFancyRug.cs
Normal file
71
Scripts/Items/Special/Heritage Items/PinkFancyRug.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class PinkFancyRugAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new PinkFancyRugDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public PinkFancyRugAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xAEE, 1076590 ), 1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAEF, 1076590 ), -1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF0, 1076590 ), -1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF1, 1076590 ), 1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF2, 1076590 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF3, 1076590 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF4, 1076590 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAF5, 1076590 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAEC, 1076590 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public PinkFancyRugAddon( 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 PinkFancyRugDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new PinkFancyRugAddon(); } }
|
||||
public override int LabelNumber { get { return 1076590; } } // Pink fancy rug
|
||||
|
||||
[Constructable]
|
||||
public PinkFancyRugDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public PinkFancyRugDeed( 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/Special/Heritage Items/RedPlainRug.cs
Normal file
71
Scripts/Items/Special/Heritage Items/RedPlainRug.cs
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RedPlainRugAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new RedPlainRugDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public RedPlainRugAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC9, 1076588 ), 1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xACA, 1076588 ), -1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xACB, 1076588 ), -1, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xACC, 1076588 ), 1, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xACD, 1076588 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xACE, 1076588 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xACF, 1076588 ), 1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAD0, 1076588 ), 0, 1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xAC6, 1076588 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public RedPlainRugAddon( 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 RedPlainRugDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new RedPlainRugAddon(); } }
|
||||
public override int LabelNumber { get { return 1076588; } } // Red plain rug
|
||||
|
||||
[Constructable]
|
||||
public RedPlainRugDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public RedPlainRugDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Scripts/Items/Special/Heritage Items/Scarecrow.cs
Normal file
91
Scripts/Items/Special/Heritage Items/Scarecrow.cs
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x1E34, 0x1E35 )]
|
||||
public class ScarecrowComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076608; } } // Scarecrow
|
||||
|
||||
public ScarecrowComponent() : base( 0x1E34 )
|
||||
{
|
||||
}
|
||||
|
||||
public ScarecrowComponent( 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 ScarecrowAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new ScarecrowDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public ScarecrowAddon() : base()
|
||||
{
|
||||
AddComponent( new ScarecrowComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public ScarecrowAddon( 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 ScarecrowDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new ScarecrowAddon(); } }
|
||||
public override int LabelNumber { get { return 1076608; } } // Scarecrow
|
||||
|
||||
[Constructable]
|
||||
public ScarecrowDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public ScarecrowDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Scripts/Items/Special/Heritage Items/SmallFishingNet.cs
Normal file
91
Scripts/Items/Special/Heritage Items/SmallFishingNet.cs
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x1EA3, 0x1EA4 )]
|
||||
public class SmallFishingNetComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076286; } } // Small Fish Net
|
||||
|
||||
public SmallFishingNetComponent() : base( 0x1EA3 )
|
||||
{
|
||||
}
|
||||
|
||||
public SmallFishingNetComponent( 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 SmallFishingNetAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new SmallFishingNetDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SmallFishingNetAddon() : base()
|
||||
{
|
||||
AddComponent( new SmallFishingNetComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SmallFishingNetAddon( 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 SmallFishingNetDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new SmallFishingNetAddon(); } }
|
||||
public override int LabelNumber { get { return 1076286; } } // Small Fish Net
|
||||
|
||||
[Constructable]
|
||||
public SmallFishingNetDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SmallFishingNetDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
132
Scripts/Items/Special/Heritage Items/Statue.cs
Normal file
132
Scripts/Items/Special/Heritage Items/Statue.cs
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class StoneStatueAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new StoneStatueDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public StoneStatueAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x139E, 1076284 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x139F, 1076284 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x13A0, 1076284 ), 0, -1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x129F, 1076284 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x12A0, 1076284 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0x12A1, 1076284 ), -1, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public StoneStatueAddon( 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 StoneStatueDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new StoneStatueAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076284; } } // Statue
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public StoneStatueDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public StoneStatueDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private StoneStatueDeed m_Deed;
|
||||
|
||||
public InternalGump( StoneStatueDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076579, 0x7FFF, false, false ); // Please select your statue position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Scripts/Items/Special/Heritage Items/SuitOfGoldArmor.cs
Normal file
91
Scripts/Items/Special/Heritage Items/SuitOfGoldArmor.cs
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x3DAA, 0x3DA9 )]
|
||||
public class SuitOfGoldArmorComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076265; } } // Suit of Gold Armor
|
||||
|
||||
public SuitOfGoldArmorComponent() : base( 0x3DAA )
|
||||
{
|
||||
}
|
||||
|
||||
public SuitOfGoldArmorComponent( 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 SuitOfGoldArmorAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new SuitOfGoldArmorDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SuitOfGoldArmorAddon() : base()
|
||||
{
|
||||
AddComponent( new SuitOfGoldArmorComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SuitOfGoldArmorAddon( 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 SuitOfGoldArmorDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new SuitOfGoldArmorAddon(); } }
|
||||
public override int LabelNumber { get { return 1076265; } } // Suit of Gold Armor
|
||||
|
||||
[Constructable]
|
||||
public SuitOfGoldArmorDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SuitOfGoldArmorDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Scripts/Items/Special/Heritage Items/SuitOfSilverArmor.cs
Normal file
91
Scripts/Items/Special/Heritage Items/SuitOfSilverArmor.cs
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x3D86, 0x3D87 )]
|
||||
public class SuitOfSilverArmorComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076266; } } // Suit of Silver Armor
|
||||
|
||||
public SuitOfSilverArmorComponent() : base( 0x3D86 )
|
||||
{
|
||||
}
|
||||
|
||||
public SuitOfSilverArmorComponent( 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 SuitOfSilverArmorAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new SuitOfSilverArmorDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public SuitOfSilverArmorAddon() : base()
|
||||
{
|
||||
AddComponent( new SuitOfSilverArmorComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public SuitOfSilverArmorAddon( 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 SuitOfSilverArmorDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new SuitOfSilverArmorAddon(); } }
|
||||
public override int LabelNumber { get { return 1076266; } } // Suit of Silver Armor
|
||||
|
||||
[Constructable]
|
||||
public SuitOfSilverArmorDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SuitOfSilverArmorDeed( 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/Special/Heritage Items/TableWithBlueCloth.cs
Normal file
63
Scripts/Items/Special/Heritage Items/TableWithBlueCloth.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TableWithBlueClothAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new TableWithBlueClothDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TableWithBlueClothAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x118C, 1076276 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public TableWithBlueClothAddon( 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 TableWithBlueClothDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new TableWithBlueClothAddon(); } }
|
||||
public override int LabelNumber { get { return 1076276; } } // Table With A Blue Tablecloth
|
||||
|
||||
[Constructable]
|
||||
public TableWithBlueClothDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public TableWithBlueClothDeed( 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/Special/Heritage Items/TableWithOrangeCloth.cs
Normal file
63
Scripts/Items/Special/Heritage Items/TableWithOrangeCloth.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TableWithOrangeClothAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new TableWithOrangeClothDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TableWithOrangeClothAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x118E, 1076278 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public TableWithOrangeClothAddon( 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 TableWithOrangeClothDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new TableWithOrangeClothAddon(); } }
|
||||
public override int LabelNumber { get { return 1076278; } } // Table With An Orange Tablecloth
|
||||
|
||||
[Constructable]
|
||||
public TableWithOrangeClothDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public TableWithOrangeClothDeed( 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/Special/Heritage Items/TableWithPurpleCloth.cs
Normal file
63
Scripts/Items/Special/Heritage Items/TableWithPurpleCloth.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TableWithPurpleClothAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new TableWithPurpleClothDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TableWithPurpleClothAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x118B, 1076275 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public TableWithPurpleClothAddon( 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 TableWithPurpleClothDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new TableWithPurpleClothAddon(); } }
|
||||
public override int LabelNumber { get { return 1076275; } } // Table With A Purple Tablecloth
|
||||
|
||||
[Constructable]
|
||||
public TableWithPurpleClothDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public TableWithPurpleClothDeed( 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/Special/Heritage Items/TableWithRedCloth.cs
Normal file
63
Scripts/Items/Special/Heritage Items/TableWithRedCloth.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class TableWithRedClothAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new TableWithRedClothDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public TableWithRedClothAddon() : base()
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0x118D, 1076277 ), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public TableWithRedClothAddon( 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 TableWithRedClothDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new TableWithRedClothAddon(); } }
|
||||
public override int LabelNumber { get { return 1076277; } } // Table With A Red Tablecloth
|
||||
|
||||
[Constructable]
|
||||
public TableWithRedClothDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public TableWithRedClothDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
134
Scripts/Items/Special/Heritage Items/UnmadeBed.cs
Normal file
134
Scripts/Items/Special/Heritage Items/UnmadeBed.cs
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class UnmadeBedAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new UnmadeBedDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public UnmadeBedAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xA8C, 1076279 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xA8D, 1076279 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xA90, 1076279 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xA91, 1076279 ), -1, -1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new LocalizedAddonComponent( 0xDB0, 1076279 ), 0, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xDB1, 1076279 ), -1, 0, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xDB4, 1076279 ), 0, -1, 0 );
|
||||
AddComponent( new LocalizedAddonComponent( 0xDB5, 1076279 ), -1, -1, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public UnmadeBedAddon( 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 UnmadeBedDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new UnmadeBedAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076279; } } // Unmade Bed
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public UnmadeBedDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public UnmadeBedDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private UnmadeBedDeed m_Deed;
|
||||
|
||||
public InternalGump( UnmadeBedDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076580, 0x7FFF, false, false ); // Pleae select your unmade bed position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
131
Scripts/Items/Special/Heritage Items/Vanity.cs
Normal file
131
Scripts/Items/Special/Heritage Items/Vanity.cs
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class VanityAddon : BaseAddonContainer
|
||||
{
|
||||
public override BaseAddonContainerDeed Deed { get { return new VanityDeed(); } }
|
||||
public override int LabelNumber { get { return 1074027; } } // Vanity
|
||||
public override int DefaultGumpID { get { return 0x51; } }
|
||||
public override int DefaultDropSound { get { return 0x42; } }
|
||||
|
||||
[Constructable]
|
||||
public VanityAddon( bool east ) : base( east ? 0xA44 : 0xA3C )
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new AddonContainerComponent( 0xA45 ), 0, -1, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new AddonContainerComponent( 0xA3D ), -1, 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public VanityAddon( 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 VanityDeed : BaseAddonContainerDeed
|
||||
{
|
||||
public override BaseAddonContainer Addon { get { return new VanityAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1074027; } } // Vanity
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public VanityDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public VanityDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private VanityDeed m_Deed;
|
||||
|
||||
public InternalGump( VanityDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076744, 0x7FFF, false, false ); // Please select your vanity position.
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
112
Scripts/Items/Special/Heritage Items/WallTorch.cs
Normal file
112
Scripts/Items/Special/Heritage Items/WallTorch.cs
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Spells;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x3D98, 0x3D94 )]
|
||||
public class WallTorchComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076282; } } // Wall Torch
|
||||
|
||||
public WallTorchComponent() : base( 0x3D98 )
|
||||
{
|
||||
}
|
||||
|
||||
public WallTorchComponent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( from.InRange( Location, 2 ) )
|
||||
{
|
||||
switch ( ItemID )
|
||||
{
|
||||
case 0x3D98: ItemID = 0x3D9B; break;
|
||||
case 0x3D9B: ItemID = 0x3D98; break;
|
||||
case 0x3D94: ItemID = 0x3D97; break;
|
||||
case 0x3D97: ItemID = 0x3D94; break;
|
||||
}
|
||||
|
||||
Effects.PlaySound( Location, Map, 0x3BE );
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
|
||||
}
|
||||
|
||||
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 WallTorchAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new WallTorchDeed(); } }
|
||||
|
||||
public WallTorchAddon() : base()
|
||||
{
|
||||
AddComponent( new WallTorchComponent(), 0, 0, 0 );
|
||||
}
|
||||
|
||||
public WallTorchAddon( 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 WallTorchDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new WallTorchAddon(); } }
|
||||
public override int LabelNumber { get { return 1076282; } } // Wall Torch
|
||||
|
||||
[Constructable]
|
||||
public WallTorchDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public WallTorchDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
159
Scripts/Items/Special/Heritage Items/WoodenCoffin.cs
Normal file
159
Scripts/Items/Special/Heritage Items/WoodenCoffin.cs
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class WoodenCoffinComponent : AddonComponent
|
||||
{
|
||||
public override int LabelNumber { get { return 1076274; } } // Coffin
|
||||
|
||||
public WoodenCoffinComponent( int itemID ) : base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public WoodenCoffinComponent( 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 WoodenCoffinAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed { get { return new WoodenCoffinDeed(); } }
|
||||
|
||||
[Constructable]
|
||||
public WoodenCoffinAddon( bool east ) : base()
|
||||
{
|
||||
if ( east ) // east
|
||||
{
|
||||
AddComponent( new WoodenCoffinComponent( 0x1C41 ), 0, 0, 0 );
|
||||
AddComponent( new WoodenCoffinComponent( 0x1C42 ), 1, 0, 0 );
|
||||
AddComponent( new WoodenCoffinComponent( 0x1C43 ), 2, 0, 0 );
|
||||
}
|
||||
else // south
|
||||
{
|
||||
AddComponent( new WoodenCoffinComponent( 0x1C4F ), 0, 0, 0 );
|
||||
AddComponent( new WoodenCoffinComponent( 0x1C50 ), 0, 1, 0 );
|
||||
AddComponent( new WoodenCoffinComponent( 0x1C51 ), 0, 2, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public WoodenCoffinAddon( 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 WoodenCoffinDeed : BaseAddonDeed
|
||||
{
|
||||
public override BaseAddon Addon { get { return new WoodenCoffinAddon( m_East ); } }
|
||||
public override int LabelNumber { get { return 1076274; } } // Coffin
|
||||
|
||||
private bool m_East;
|
||||
|
||||
[Constructable]
|
||||
public WoodenCoffinDeed() : base()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public WoodenCoffinDeed( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
private void SendTarget( Mobile m )
|
||||
{
|
||||
base.OnDoubleClick( m );
|
||||
}
|
||||
|
||||
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 class InternalGump : Gump
|
||||
{
|
||||
private WoodenCoffinDeed m_Deed;
|
||||
|
||||
public InternalGump( WoodenCoffinDeed deed ) : base( 60, 36 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 273, 324, 0x13BE );
|
||||
AddImageTiled( 10, 10, 253, 20, 0xA40 );
|
||||
AddImageTiled( 10, 40, 253, 244, 0xA40 );
|
||||
AddImageTiled( 10, 294, 253, 20, 0xA40 );
|
||||
AddAlphaRegion( 10, 10, 253, 304 );
|
||||
AddButton( 10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 45, 296, 450, 20, 1060051, 0x7FFF, false, false ); // CANCEL
|
||||
AddHtmlLocalized( 14, 12, 273, 20, 1076748, 0x7FFF, false, false ); // Please select your coffin position
|
||||
|
||||
AddPage( 1 );
|
||||
|
||||
AddButton( 19, 49, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 47, 213, 20, 1075386, 0x7FFF, false, false ); // South
|
||||
AddButton( 19, 73, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
AddHtmlLocalized( 44, 71, 213, 20, 1075387, 0x7FFF, false, false ); // East
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted || info.ButtonID == 0 )
|
||||
return;
|
||||
|
||||
m_Deed.m_East = ( info.ButtonID != 1 );
|
||||
m_Deed.SendTarget( sender.Mobile );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
58
Scripts/Items/Special/HeritageToken.cs
Normal file
58
Scripts/Items/Special/HeritageToken.cs
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public interface ITokunoDyable
|
||||
{
|
||||
}
|
||||
|
||||
public class HeritageToken : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1076596; } } // A Heritage Token
|
||||
|
||||
[Constructable]
|
||||
public HeritageToken() : base( 0x367A )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Weight = 5.0;
|
||||
}
|
||||
|
||||
public HeritageToken( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( HeritageTokenGump ) );
|
||||
from.SendGump( new HeritageTokenGump( this ) );
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage( 1062334 ); // This item must be in your backpack to be used.
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
list.Add( 1070998, String.Format( "#{0}", 1076595 ) ); // Use this to redeem<br>Your Heritage Items
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
314
Scripts/Items/Special/Holiday/Christmas/HolidayTree.cs
Normal file
314
Scripts/Items/Special/Holiday/Christmas/HolidayTree.cs
Normal file
|
|
@ -0,0 +1,314 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Network;
|
||||
using Server.Items;
|
||||
using Server.Multis;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum HolidayTreeType
|
||||
{
|
||||
Classic,
|
||||
Modern
|
||||
}
|
||||
|
||||
public class HolidayTree : Item, IAddon
|
||||
{
|
||||
private ArrayList m_Components;
|
||||
private Mobile m_Placer;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Mobile Placer
|
||||
{
|
||||
get{ return m_Placer; }
|
||||
set{ m_Placer = value; }
|
||||
}
|
||||
|
||||
private class Ornament : Item
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1041118; } } // a tree ornament
|
||||
|
||||
public Ornament( int itemID ) : base( itemID )
|
||||
{
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public Ornament( 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 class TreeTrunk : Item
|
||||
{
|
||||
private HolidayTree m_Tree;
|
||||
|
||||
public override int LabelNumber{ get{ return 1041117; } } // a tree for the holidays
|
||||
|
||||
public TreeTrunk( HolidayTree tree, int itemID ) : base( itemID )
|
||||
{
|
||||
Movable = false;
|
||||
MoveToWorld( tree.Location, tree.Map );
|
||||
|
||||
m_Tree = tree;
|
||||
}
|
||||
|
||||
public TreeTrunk( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( m_Tree != null && !m_Tree.Deleted )
|
||||
m_Tree.OnDoubleClick( from );
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
|
||||
writer.Write( m_Tree );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_Tree = reader.ReadItem() as HolidayTree;
|
||||
|
||||
if ( m_Tree == null )
|
||||
Delete();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override int LabelNumber{ get{ return 1041117; } } // a tree for the holidays
|
||||
|
||||
public HolidayTree( Mobile from, HolidayTreeType type, Point3D loc ) : base( 1 )
|
||||
{
|
||||
Movable = false;
|
||||
MoveToWorld( loc, from.Map );
|
||||
|
||||
m_Placer = from;
|
||||
m_Components = new ArrayList();
|
||||
|
||||
switch ( type )
|
||||
{
|
||||
case HolidayTreeType.Classic:
|
||||
{
|
||||
ItemID = 0xCD7;
|
||||
|
||||
AddItem( 0, 0, 0, new TreeTrunk( this, 0xCD6 ) );
|
||||
|
||||
AddOrnament( 0, 0, 2, 0xF22 );
|
||||
AddOrnament( 0, 0, 9, 0xF18 );
|
||||
AddOrnament( 0, 0, 15, 0xF20 );
|
||||
AddOrnament( 0, 0, 19, 0xF17 );
|
||||
AddOrnament( 0, 0, 20, 0xF24 );
|
||||
AddOrnament( 0, 0, 20, 0xF1F );
|
||||
AddOrnament( 0, 0, 20, 0xF19 );
|
||||
AddOrnament( 0, 0, 21, 0xF1B );
|
||||
AddOrnament( 0, 0, 28, 0xF2F );
|
||||
AddOrnament( 0, 0, 30, 0xF23 );
|
||||
AddOrnament( 0, 0, 32, 0xF2A );
|
||||
AddOrnament( 0, 0, 33, 0xF30 );
|
||||
AddOrnament( 0, 0, 34, 0xF29 );
|
||||
AddOrnament( 0, 1, 7, 0xF16 );
|
||||
AddOrnament( 0, 1, 7, 0xF1E );
|
||||
AddOrnament( 0, 1, 12, 0xF0F );
|
||||
AddOrnament( 0, 1, 13, 0xF13 );
|
||||
AddOrnament( 0, 1, 18, 0xF12 );
|
||||
AddOrnament( 0, 1, 19, 0xF15 );
|
||||
AddOrnament( 0, 1, 25, 0xF28 );
|
||||
AddOrnament( 0, 1, 29, 0xF1A );
|
||||
AddOrnament( 0, 1, 37, 0xF2B );
|
||||
AddOrnament( 1, 0, 13, 0xF10 );
|
||||
AddOrnament( 1, 0, 14, 0xF1C );
|
||||
AddOrnament( 1, 0, 16, 0xF14 );
|
||||
AddOrnament( 1, 0, 17, 0xF26 );
|
||||
AddOrnament( 1, 0, 22, 0xF27 );
|
||||
|
||||
break;
|
||||
}
|
||||
case HolidayTreeType.Modern:
|
||||
{
|
||||
ItemID = 0x1B7E;
|
||||
|
||||
AddOrnament( 0, 0, 2, 0xF2F );
|
||||
AddOrnament( 0, 0, 2, 0xF20 );
|
||||
AddOrnament( 0, 0, 2, 0xF22 );
|
||||
AddOrnament( 0, 0, 5, 0xF30 );
|
||||
AddOrnament( 0, 0, 5, 0xF15 );
|
||||
AddOrnament( 0, 0, 5, 0xF1F );
|
||||
AddOrnament( 0, 0, 5, 0xF2B );
|
||||
AddOrnament( 0, 0, 6, 0xF0F );
|
||||
AddOrnament( 0, 0, 7, 0xF1E );
|
||||
AddOrnament( 0, 0, 7, 0xF24 );
|
||||
AddOrnament( 0, 0, 8, 0xF29 );
|
||||
AddOrnament( 0, 0, 9, 0xF18 );
|
||||
AddOrnament( 0, 0, 14, 0xF1C );
|
||||
AddOrnament( 0, 0, 15, 0xF13 );
|
||||
AddOrnament( 0, 0, 15, 0xF20 );
|
||||
AddOrnament( 0, 0, 16, 0xF26 );
|
||||
AddOrnament( 0, 0, 17, 0xF12 );
|
||||
AddOrnament( 0, 0, 18, 0xF17 );
|
||||
AddOrnament( 0, 0, 20, 0xF1B );
|
||||
AddOrnament( 0, 0, 23, 0xF28 );
|
||||
AddOrnament( 0, 0, 25, 0xF18 );
|
||||
AddOrnament( 0, 0, 25, 0xF2A );
|
||||
AddOrnament( 0, 1, 7, 0xF16 );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
for ( int i = 0; i < m_Components.Count; ++i )
|
||||
((Item)m_Components[i]).Delete();
|
||||
}
|
||||
|
||||
private void AddOrnament( int x, int y, int z, int itemID )
|
||||
{
|
||||
AddItem( x + 1, y + 1, z + 11, new Ornament( itemID ) );
|
||||
}
|
||||
|
||||
private void AddItem( int x, int y, int z, Item item )
|
||||
{
|
||||
item.MoveToWorld( new Point3D( this.Location.X + x, this.Location.Y + y, this.Location.Z + z ), this.Map );
|
||||
|
||||
m_Components.Add( item );
|
||||
}
|
||||
|
||||
public HolidayTree( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public bool CouldFit( IPoint3D p, Map map )
|
||||
{
|
||||
return map.CanFit( (Point3D)p, 20 );
|
||||
}
|
||||
|
||||
Item IAddon.Deed
|
||||
{
|
||||
get{ return new HolidayTreeDeed(); }
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( m_Placer );
|
||||
|
||||
writer.Write( (int) m_Components.Count );
|
||||
|
||||
for ( int i = 0; i < m_Components.Count; ++i )
|
||||
writer.Write( (Item)m_Components[i] );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_Placer = reader.ReadMobile();
|
||||
|
||||
goto case 0;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
int count = reader.ReadInt();
|
||||
|
||||
m_Components = new ArrayList( count );
|
||||
|
||||
for ( int i = 0; i < count; ++i )
|
||||
{
|
||||
Item item = reader.ReadItem();
|
||||
|
||||
if ( item != null )
|
||||
m_Components.Add( item );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Timer.DelayCall( TimeSpan.Zero, ValidatePlacement );
|
||||
}
|
||||
|
||||
public void ValidatePlacement()
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt( this );
|
||||
|
||||
if ( house == null )
|
||||
{
|
||||
HolidayTreeDeed deed = new HolidayTreeDeed();
|
||||
deed.MoveToWorld( Location, Map );
|
||||
Delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( from.InRange( this.GetWorldLocation(), 1 ) )
|
||||
{
|
||||
if ( m_Placer == null || from == m_Placer || from.AccessLevel >= AccessLevel.GameMaster )
|
||||
{
|
||||
from.AddToBackpack( new HolidayTreeDeed() );
|
||||
|
||||
this.Delete();
|
||||
|
||||
BaseHouse house = BaseHouse.FindHouseAt( this );
|
||||
|
||||
if ( house != null && house.Addons.Contains( this ) )
|
||||
{
|
||||
house.Addons.Remove( this );
|
||||
}
|
||||
|
||||
from.SendLocalizedMessage( 503393 ); // A deed for the tree has been placed in your backpack.
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 503396 ); // You cannot take this tree down.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 500446 ); // That is too far away.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
41
Scripts/Items/Special/Holiday/GiftBox.cs
Normal file
41
Scripts/Items/Special/Holiday/GiftBox.cs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Furniture]
|
||||
[Flipable( 0x232A, 0x232B )]
|
||||
public class GiftBox : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public GiftBox() : this( Utility.RandomDyedHue() )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public GiftBox( int hue ) : base( Utility.Random( 0x232A, 2 ) )
|
||||
{
|
||||
Weight = 2.0;
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public GiftBox( 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/Special/Holiday/GingerBreadHouseDeed.cs
Normal file
66
Scripts/Items/Special/Holiday/GingerBreadHouseDeed.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GingerBreadHouseAddon : BaseAddon
|
||||
{
|
||||
public override BaseAddonDeed Deed{ get{ return new GingerBreadHouseDeed(); } }
|
||||
|
||||
public GingerBreadHouseAddon()
|
||||
{
|
||||
for( int i=0x2be5; i<0x2be8; i++ )
|
||||
{
|
||||
LocalizedAddonComponent laoc = new LocalizedAddonComponent( i, 1077395 ); // Gingerbread House
|
||||
laoc.Light = LightType.SouthSmall;
|
||||
AddComponent( laoc, (i==0x2be5) ? -1 : 0, (i==0x2be7) ? -1 : 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
public GingerBreadHouseAddon( 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 GingerBreadHouseDeed : BaseAddonDeed
|
||||
{
|
||||
public override int LabelNumber{ get{ return 1077394; } } //a Gingerbread House Deed
|
||||
public override BaseAddon Addon{ get{ return new GingerBreadHouseAddon(); } }
|
||||
|
||||
[Constructable]
|
||||
public GingerBreadHouseDeed()
|
||||
{
|
||||
Weight = 1.0;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public GingerBreadHouseDeed( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
109
Scripts/Items/Special/Holiday/HolidayBell.cs
Normal file
109
Scripts/Items/Special/Holiday/HolidayBell.cs
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HolidayBell : Item
|
||||
{
|
||||
private static string[] m_StaffNames = new string[]
|
||||
{
|
||||
"Adrick",
|
||||
"Alai",
|
||||
"Bulldoz",
|
||||
"Evocare",
|
||||
"FierY-iCe",
|
||||
"Greyburn",
|
||||
"Hanse",
|
||||
"Ignatz",
|
||||
"Jalek",
|
||||
"LadyMOI",
|
||||
"Lord Krum",
|
||||
"Malantus",
|
||||
"Nimrond",
|
||||
"Oaks",
|
||||
"Prophet",
|
||||
"Runesabre",
|
||||
"Sage",
|
||||
"Stellerex",
|
||||
"T-Bone",
|
||||
"Tajima",
|
||||
"Tyrant",
|
||||
"Vex"
|
||||
};
|
||||
private static int[] m_Hues = new int[]
|
||||
{
|
||||
0xA, 0x24, 0x42, 0x56, 0x1A, 0x4C, 0x3C, 0x60, 0x2E, 0x55, 0x23, 0x38, 0x482, 0x6, 0x10
|
||||
};
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int SoundID
|
||||
{
|
||||
get { return m_SoundID; }
|
||||
set { m_SoundID = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public string Giver { get { return m_Maker; } set { m_Maker = value; } }
|
||||
|
||||
public override string DefaultName
|
||||
{
|
||||
get { return String.Format("A Holiday Bell From {0}", Giver); }
|
||||
}
|
||||
|
||||
private string m_Maker;
|
||||
private int m_SoundID;
|
||||
|
||||
[Constructable]
|
||||
public HolidayBell()
|
||||
: this(m_StaffNames[Utility.Random(m_StaffNames.Length)])
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public HolidayBell(string maker)
|
||||
: base(0x1C12)
|
||||
{
|
||||
m_Maker = maker;
|
||||
|
||||
LootType = LootType.Blessed;
|
||||
Hue = m_Hues[Utility.Random(m_Hues.Length)];
|
||||
SoundID = 0x0F5 + Utility.Random(14);
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!from.InRange(GetWorldLocation(), 2))
|
||||
{
|
||||
from.SendLocalizedMessage(500446); // That is too far away.
|
||||
}
|
||||
else from.PlaySound(m_SoundID);
|
||||
}
|
||||
|
||||
public HolidayBell(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0); // version
|
||||
|
||||
writer.Write((string)m_Maker);
|
||||
|
||||
writer.WriteEncodedInt((int)m_SoundID);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_Maker = reader.ReadString();
|
||||
m_SoundID = reader.ReadEncodedInt();
|
||||
|
||||
Utility.Intern(ref m_Maker);
|
||||
}
|
||||
}
|
||||
}
|
||||
188
Scripts/Items/Special/Holiday/HolidayFoods.cs
Normal file
188
Scripts/Items/Special/Holiday/HolidayFoods.cs
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CandyCane : Food
|
||||
{
|
||||
private static Dictionary<Mobile, CandyCaneTimer> m_ToothAches;
|
||||
|
||||
public static Dictionary<Mobile, CandyCaneTimer> ToothAches
|
||||
{
|
||||
get { return m_ToothAches; }
|
||||
set { m_ToothAches = value; }
|
||||
}
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
m_ToothAches = new Dictionary<Mobile, CandyCaneTimer>();
|
||||
}
|
||||
|
||||
public class CandyCaneTimer : Timer
|
||||
{
|
||||
private int m_Eaten;
|
||||
private Mobile m_Eater;
|
||||
|
||||
public Mobile Eater { get { return m_Eater; } }
|
||||
public int Eaten { get { return m_Eaten; } set { m_Eaten = value; } }
|
||||
|
||||
public CandyCaneTimer( Mobile eater )
|
||||
: base( TimeSpan.FromSeconds( 30 ), TimeSpan.FromSeconds( 30 ) )
|
||||
{
|
||||
m_Eater = eater;
|
||||
Priority = TimerPriority.FiveSeconds;
|
||||
Start();
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
--m_Eaten;
|
||||
|
||||
if ( m_Eater == null || m_Eater.Deleted || m_Eaten <= 0 )
|
||||
{
|
||||
Stop();
|
||||
m_ToothAches.Remove( m_Eater );
|
||||
}
|
||||
else if ( m_Eater.Map != Map.Internal && m_Eater.Alive )
|
||||
{
|
||||
if ( m_Eaten > 60 )
|
||||
{
|
||||
m_Eater.Say( 1077388 + Utility.Random( 5 ) );
|
||||
|
||||
/* ARRGH! My tooth hurts sooo much!
|
||||
* You just can't find a good Britannian dentist these days...
|
||||
* My teeth!
|
||||
* MAKE IT STOP!
|
||||
* AAAH! It feels like someone kicked me in the teeth!
|
||||
*/
|
||||
|
||||
if ( Utility.RandomBool() && m_Eater.Body.IsHuman && !m_Eater.Mounted )
|
||||
m_Eater.Animate( 32, 5, 1, true, false, 0 );
|
||||
}
|
||||
else if ( m_Eaten == 60 )
|
||||
{
|
||||
m_Eater.SendLocalizedMessage( 1077393 ); // The extreme pain in your teeth subsides.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static CandyCaneTimer EnsureTimer( Mobile from )
|
||||
{
|
||||
CandyCaneTimer timer;
|
||||
|
||||
if ( !m_ToothAches.TryGetValue( from, out timer ) )
|
||||
m_ToothAches[from] = timer = new CandyCaneTimer( from );
|
||||
|
||||
return timer;
|
||||
}
|
||||
|
||||
public static int GetToothAche( Mobile from )
|
||||
{
|
||||
CandyCaneTimer timer;
|
||||
|
||||
if ( m_ToothAches.TryGetValue( from, out timer ) )
|
||||
return timer.Eaten;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static void SetToothAche( Mobile from, int value )
|
||||
{
|
||||
EnsureTimer( from ).Eaten = value;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public CandyCane()
|
||||
: this( 0x2bdd + Utility.Random( 4 ) )
|
||||
{
|
||||
}
|
||||
|
||||
public CandyCane( int itemID )
|
||||
: base( itemID )
|
||||
{
|
||||
Stackable = false;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public override bool CheckHunger( Mobile from )
|
||||
{
|
||||
EnsureTimer( from ).Eaten += 32;
|
||||
|
||||
from.SendLocalizedMessage( 1077387 ); // You feel as if you could eat as much as you wanted!
|
||||
return true;
|
||||
}
|
||||
|
||||
public CandyCane( 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 GingerBreadCookie : Food
|
||||
{
|
||||
private readonly int[] m_Messages =
|
||||
{
|
||||
0,
|
||||
1077396, // Noooo!
|
||||
1077397, // Please don't eat me... *whimper*
|
||||
1077405, // Not the face!
|
||||
1077406, // Ahhhhhh! My foot’s gone!
|
||||
1077407, // Please. No! I have gingerkids!
|
||||
1077408, // No, no! I’m really made of poison. Really.
|
||||
1077409 // Run, run as fast as you can! You can't catch me! I'm the gingerbread man!
|
||||
};
|
||||
|
||||
[Constructable]
|
||||
public GingerBreadCookie()
|
||||
: base( Utility.RandomBool() ? 0x2be1 : 0x2be2 )
|
||||
{
|
||||
Stackable = false;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public GingerBreadCookie( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool Eat( Mobile from )
|
||||
{
|
||||
int message = m_Messages[Utility.Random( m_Messages.Length )];
|
||||
|
||||
if ( message != 0 )
|
||||
{
|
||||
SendLocalizedMessageTo( from, message );
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.Eat( from );
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
221
Scripts/Items/Special/Holiday/HolidayGiftBoxes.cs
Normal file
221
Scripts/Items/Special/Holiday/HolidayGiftBoxes.cs
Normal file
|
|
@ -0,0 +1,221 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GiftBoxHues
|
||||
{
|
||||
public static int RandomGiftBoxHue{ get { return m_NormalHues[Utility.Random(m_NormalHues.Length)]; }}
|
||||
public static int RandomNeonBoxHue{ get { return m_NeonHues[Utility.Random(m_NeonHues.Length)]; }}
|
||||
|
||||
/* there's possibly a couple more, but this is what we could verify on OSI */
|
||||
|
||||
private static readonly int[] m_NormalHues =
|
||||
{
|
||||
0x672,
|
||||
0x454,
|
||||
0x507,
|
||||
0x4ac,
|
||||
0x504,
|
||||
0x84b,
|
||||
0x495,
|
||||
0x97c,
|
||||
0x493,
|
||||
0x4a8,
|
||||
0x494,
|
||||
0x4aa,
|
||||
0xb8b,
|
||||
0x84f,
|
||||
0x491,
|
||||
0x851,
|
||||
0x503,
|
||||
0xb8c,
|
||||
0x4ab,
|
||||
0x84B
|
||||
};
|
||||
private static readonly int[] m_NeonHues =
|
||||
{
|
||||
0x438,
|
||||
0x424,
|
||||
0x433,
|
||||
0x445,
|
||||
0x42b,
|
||||
0x448
|
||||
};
|
||||
}
|
||||
|
||||
[FlipableAttribute(0x46A5, 0x46A6)]
|
||||
public class GiftBoxRectangle : BaseContainer
|
||||
{
|
||||
public override int DefaultGumpID { get { return 0x11E; } }
|
||||
|
||||
[Constructable]
|
||||
public GiftBoxRectangle()
|
||||
: base(Utility.RandomBool() ? 0x46A5 : 0x46A6)
|
||||
{
|
||||
Hue = GiftBoxHues.RandomGiftBoxHue;
|
||||
}
|
||||
|
||||
public GiftBoxRectangle(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 GiftBoxCube : BaseContainer
|
||||
{
|
||||
public override int DefaultGumpID { get { return 0x11B; } }
|
||||
|
||||
[Constructable]
|
||||
public GiftBoxCube()
|
||||
: base(0x46A2)
|
||||
{
|
||||
Hue = GiftBoxHues.RandomGiftBoxHue;
|
||||
}
|
||||
|
||||
public GiftBoxCube(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 GiftBoxCylinder : BaseContainer
|
||||
{
|
||||
public override int DefaultGumpID { get { return 0x11C; } }
|
||||
|
||||
[Constructable]
|
||||
public GiftBoxCylinder()
|
||||
: base(0x46A3)
|
||||
{
|
||||
Hue = GiftBoxHues.RandomGiftBoxHue;
|
||||
}
|
||||
|
||||
public GiftBoxCylinder(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 GiftBoxOctogon : BaseContainer
|
||||
{
|
||||
public override int DefaultGumpID { get { return 0x11D; } }
|
||||
|
||||
[Constructable]
|
||||
public GiftBoxOctogon()
|
||||
: base(0x46A4)
|
||||
{
|
||||
Hue = GiftBoxHues.RandomGiftBoxHue;
|
||||
}
|
||||
|
||||
public GiftBoxOctogon(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 GiftBoxAngel : BaseContainer
|
||||
{
|
||||
public override int DefaultGumpID { get { return 0x11F; } }
|
||||
|
||||
[Constructable]
|
||||
public GiftBoxAngel()
|
||||
: base(0x46A7)
|
||||
{
|
||||
Hue = GiftBoxHues.RandomGiftBoxHue;
|
||||
}
|
||||
|
||||
public GiftBoxAngel(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();
|
||||
}
|
||||
}
|
||||
|
||||
[Flipable(0x232A, 0x232B)]
|
||||
public class GiftBoxNeon : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public GiftBoxNeon()
|
||||
: base(Utility.RandomBool() ? 0x232A : 0x232B)
|
||||
{
|
||||
Hue = GiftBoxHues.RandomNeonBoxHue;
|
||||
}
|
||||
|
||||
public GiftBoxNeon(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
155
Scripts/Items/Special/Holiday/HolidayPottedPlant.cs
Normal file
155
Scripts/Items/Special/Holiday/HolidayPottedPlant.cs
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HolidayPottedPlant : Item
|
||||
{
|
||||
public override bool ForceShowProperties { get { return ObjectPropertyList.Enabled; } }
|
||||
|
||||
[Constructable]
|
||||
public HolidayPottedPlant()
|
||||
: this( Utility.RandomMinMax( 0x11C8, 0x11CC ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public HolidayPottedPlant( int itemID )
|
||||
: base( itemID )
|
||||
{
|
||||
}
|
||||
|
||||
public HolidayPottedPlant( 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 PottedPlantDeed : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1041114; } } // A deed for a potted plant.
|
||||
public override double DefaultWeight { get { return 1.0; } }
|
||||
|
||||
[Constructable]
|
||||
public PottedPlantDeed()
|
||||
: base( 0x14F0 )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public PottedPlantDeed( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1042038 ); // You must have the object in your backpack to use it.
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
|
||||
private class InternalGump : Gump
|
||||
{
|
||||
private PottedPlantDeed m_Deed;
|
||||
|
||||
public InternalGump( PottedPlantDeed deed ) : base( 100, 200 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
Closable = true;
|
||||
Disposable = true;
|
||||
Dragable = true;
|
||||
Resizable = false;
|
||||
|
||||
AddPage( 0 );
|
||||
AddBackground( 0, 0, 360, 195, 0xA28 );
|
||||
|
||||
AddPage( 1 );
|
||||
AddLabel( 45, 15, 0, "Choose a Potted Plant:" );
|
||||
|
||||
AddItem( 45, 75, 0x11C8 );
|
||||
AddButton( 55, 50, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
|
||||
AddItem( 100, 75, 0x11C9 );
|
||||
AddButton( 115, 50, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
|
||||
AddItem( 160, 75, 0x11CA );
|
||||
AddButton( 175, 50, 0x845, 0x846, 3, GumpButtonType.Reply, 0 );
|
||||
|
||||
AddItem( 225, 75, 0x11CB );
|
||||
AddButton( 235, 50, 0x845, 0x846, 4, GumpButtonType.Reply, 0 );
|
||||
|
||||
AddItem( 280, 75, 0x11CC );
|
||||
AddButton( 295, 50, 0x845, 0x846, 5, GumpButtonType.Reply, 0 );
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted )
|
||||
return;
|
||||
|
||||
Mobile from = sender.Mobile;
|
||||
|
||||
if ( !m_Deed.IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 1042038 ); // You must have the object in your backpack to use it
|
||||
return;
|
||||
}
|
||||
|
||||
int index = info.ButtonID - 1;
|
||||
|
||||
if ( index >= 0 && index <= 4 )
|
||||
{
|
||||
HolidayPottedPlant plant = new HolidayPottedPlant( 0x11C8 + index );
|
||||
|
||||
if ( !from.PlaceInBackpack( plant ) )
|
||||
{
|
||||
plant.Delete();
|
||||
from.SendLocalizedMessage( 1078837 ); // Your backpack is full! Please make room and try again.
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Deed.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
39
Scripts/Items/Special/Holiday/HolidayTimepiece.cs
Normal file
39
Scripts/Items/Special/Holiday/HolidayTimepiece.cs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class HolidayTimepiece : Clock
|
||||
{
|
||||
public override int LabelNumber { get { return 1041113; } } // a holiday timepiece
|
||||
public override double DefaultWeight { get { return 1.0; } }
|
||||
|
||||
[Constructable]
|
||||
public HolidayTimepiece()
|
||||
: base( 0x1086 )
|
||||
{
|
||||
Weight = DefaultWeight;
|
||||
LootType = LootType.Blessed;
|
||||
Layer = Layer.Bracelet;
|
||||
}
|
||||
|
||||
public HolidayTimepiece( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
167
Scripts/Items/Special/Holiday/Icecicles.cs
Normal file
167
Scripts/Items/Special/Holiday/Icecicles.cs
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class IcicleLargeSouth : Item
|
||||
{
|
||||
[Constructable]
|
||||
public IcicleLargeSouth()
|
||||
: base(0x4572)
|
||||
{
|
||||
}
|
||||
|
||||
public IcicleLargeSouth(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public class IcicleMedSouth : Item
|
||||
{
|
||||
[Constructable]
|
||||
public IcicleMedSouth ()
|
||||
: base(0x4573)
|
||||
{
|
||||
}
|
||||
|
||||
public IcicleMedSouth (Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public class IcicleSmallSouth : Item
|
||||
{
|
||||
[Constructable]
|
||||
public IcicleSmallSouth ()
|
||||
: base(0x4574)
|
||||
{
|
||||
}
|
||||
|
||||
public IcicleSmallSouth (Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public class IcicleLargeEast : Item
|
||||
{
|
||||
[Constructable]
|
||||
public IcicleLargeEast ()
|
||||
: base(0x4575)
|
||||
{
|
||||
}
|
||||
|
||||
public IcicleLargeEast (Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public class IcicleMedEast : Item
|
||||
{
|
||||
[Constructable]
|
||||
public IcicleMedEast ()
|
||||
: base(0x4576)
|
||||
{
|
||||
}
|
||||
|
||||
public IcicleMedEast (Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public class IcicleSmallEast : Item
|
||||
{
|
||||
[Constructable]
|
||||
public IcicleSmallEast ()
|
||||
: base(0x4577)
|
||||
{
|
||||
}
|
||||
|
||||
public IcicleSmallEast(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
125
Scripts/Items/Special/Holiday/IcyPatch.cs
Normal file
125
Scripts/Items/Special/Holiday/IcyPatch.cs
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Spells;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class IcyPatch : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1095159; } } //An Icy Patch
|
||||
public override double DefaultWeight { get { return 5.0; } }
|
||||
|
||||
/* On OSI, the iceypatch with itemid 0x122a is "rarer", so we will give it 1:10 chance of creating it that way */
|
||||
|
||||
[Constructable]
|
||||
public IcyPatch()
|
||||
: this((Utility.Random(10) == 0) ? 0x122A : 0x122F)
|
||||
{
|
||||
}
|
||||
|
||||
public IcyPatch(int itemid)
|
||||
: base (itemid)
|
||||
{
|
||||
Hue = 0x481;
|
||||
}
|
||||
|
||||
public IcyPatch(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnMoveOver(Mobile m)
|
||||
{
|
||||
if (m is PlayerMobile && m.Alive && m.AccessLevel == AccessLevel.Player)
|
||||
{
|
||||
switch (Utility.Random(3))
|
||||
{
|
||||
case 0: RunSequence(m, 1095160, false); break; //You steadily walk over the slippery surface.
|
||||
case 1: RunSequence(m, 1095161, true); break; //You skillfully manage to maintain your balance.
|
||||
default: RunSequence(m, 1095162, true); break; //You lose your footing and ungracefully splatter on the ground.
|
||||
}
|
||||
}
|
||||
return base.OnMoveOver(m);
|
||||
}
|
||||
|
||||
public virtual void RunSequence(Mobile m, int message, bool freeze)
|
||||
{
|
||||
object[] arg = null;
|
||||
|
||||
if (freeze)
|
||||
{
|
||||
m.Frozen = freeze;
|
||||
Timer.DelayCall(TimeSpan.FromSeconds((message==1095162) ? 2.0 : 1.25), new TimerStateCallback(EndFall_Callback), m);
|
||||
}
|
||||
|
||||
m.SendLocalizedMessage(message);
|
||||
|
||||
if (message == 1095162)
|
||||
{
|
||||
if (m.Mounted)
|
||||
{
|
||||
m.Mount.Rider = null;
|
||||
}
|
||||
|
||||
Point3D p = new Point3D(Location);
|
||||
|
||||
if (SpellHelper.FindValidSpawnLocation(Map, ref p, true))
|
||||
{
|
||||
Timer.DelayCall(TimeSpan.FromSeconds(0), new TimerStateCallback(Relocate_Callback), new object[] { m, p });
|
||||
}
|
||||
|
||||
arg = new object[] { m, (21 + Utility.Random(2)), !m.Female ? 0x426 : 0x317 };
|
||||
}
|
||||
else if (message == 1095161)
|
||||
{
|
||||
arg = new object[] { m, 17, !m.Female ? 0x429 : 0x319 };
|
||||
}
|
||||
if (arg != null)
|
||||
{
|
||||
Timer.DelayCall(TimeSpan.FromSeconds(.4), new TimerStateCallback(BeginFall_Callback), arg);
|
||||
}
|
||||
}
|
||||
|
||||
private static void Relocate_Callback(object state)
|
||||
{
|
||||
object[] states = (object[])state;
|
||||
Mobile m = (Mobile)states[0];
|
||||
Point3D to = (Point3D)states[1];
|
||||
|
||||
m.MoveToWorld(to, m.Map);
|
||||
}
|
||||
|
||||
private static void BeginFall_Callback(object state)
|
||||
{
|
||||
object[] states = (object[])state;
|
||||
|
||||
Mobile m = (Mobile)states[0];
|
||||
int action = (int)states[1];
|
||||
int sound = (int)states[2];
|
||||
if (!m.Mounted)
|
||||
{
|
||||
m.Animate(action, 1, 1, false, true, 0);
|
||||
}
|
||||
m.PlaySound(sound);
|
||||
}
|
||||
|
||||
private static void EndFall_Callback(object state)
|
||||
{
|
||||
((Mobile)state).Frozen = false;
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
93
Scripts/Items/Special/Holiday/PKHolidayStuff.cs
Normal file
93
Scripts/Items/Special/Holiday/PKHolidayStuff.cs
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Coal : Item
|
||||
{
|
||||
public override string DefaultName{ get { return "Coal"; }}
|
||||
|
||||
[Constructable]
|
||||
public Coal() : base( 0x19b9 )
|
||||
{
|
||||
Stackable = false;
|
||||
LootType=LootType.Blessed;
|
||||
Hue = 0x965;
|
||||
}
|
||||
|
||||
public Coal( 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 BadCard : Item
|
||||
{
|
||||
public override int LabelNumber{ get { return 1041428; }} // Maybe next year youll get a better...
|
||||
|
||||
[Constructable]
|
||||
public BadCard() : base( 0x14ef )
|
||||
{
|
||||
int[] m_CardHues=new int[]{ 0x45, 0x27, 0x3d0 };
|
||||
Hue = m_CardHues[Utility.Random(m_CardHues.Length)];
|
||||
Stackable = false;
|
||||
LootType=LootType.Blessed;
|
||||
Movable=true;
|
||||
}
|
||||
|
||||
public BadCard( 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 Spam : Food
|
||||
{
|
||||
[Constructable]
|
||||
public Spam() : base( 0x1044 )
|
||||
{
|
||||
Stackable = false;
|
||||
LootType=LootType.Blessed;
|
||||
}
|
||||
|
||||
public Spam( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Scripts/Items/Special/Holiday/Poinsettias.cs
Normal file
62
Scripts/Items/Special/Holiday/Poinsettias.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RedPoinsettia : Item
|
||||
{
|
||||
[Constructable]
|
||||
public RedPoinsettia() : base( 0x2330 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public RedPoinsettia( 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 WhitePoinsettia : Item
|
||||
{
|
||||
[Constructable]
|
||||
public WhitePoinsettia() : base( 0x2331 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public WhitePoinsettia( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
311
Scripts/Items/Special/Holiday/SnowGlobes.cs
Normal file
311
Scripts/Items/Special/Holiday/SnowGlobes.cs
Normal file
|
|
@ -0,0 +1,311 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SnowGlobe : Item
|
||||
{
|
||||
public override double DefaultWeight { get { return 1.0; } }
|
||||
|
||||
public SnowGlobe()
|
||||
: base( 0xE2F )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
Light = LightType.Circle150;
|
||||
}
|
||||
|
||||
public SnowGlobe( 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 enum SnowGlobeTypeOne
|
||||
{
|
||||
Britain,
|
||||
Moonglow,
|
||||
Minoc,
|
||||
Magincia,
|
||||
BuccaneersDen,
|
||||
Trinsic,
|
||||
Yew,
|
||||
SkaraBrae,
|
||||
Jhelom,
|
||||
Nujelm,
|
||||
Papua,
|
||||
Delucia,
|
||||
Cove,
|
||||
Ocllo,
|
||||
SerpentsHold,
|
||||
EmpathAbbey,
|
||||
TheLycaeum,
|
||||
Vesper,
|
||||
Wind
|
||||
}
|
||||
|
||||
public class SnowGlobeOne : SnowGlobe
|
||||
{
|
||||
private SnowGlobeTypeOne m_Type;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public SnowGlobeTypeOne Place
|
||||
{
|
||||
get { return m_Type; }
|
||||
set { m_Type = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
public override int LabelNumber { get { return 1041454 + (int) m_Type; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowGlobeOne()
|
||||
: this( (SnowGlobeTypeOne) Utility.Random( 19 ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SnowGlobeOne( SnowGlobeTypeOne type )
|
||||
{
|
||||
m_Type = type;
|
||||
}
|
||||
|
||||
public SnowGlobeOne( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
writer.WriteEncodedInt( (int) m_Type );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_Type = (SnowGlobeTypeOne) reader.ReadEncodedInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum SnowGlobeTypeTwo
|
||||
{
|
||||
AncientCitadel,
|
||||
BlackthornesCastle,
|
||||
CityofMontor,
|
||||
CityofMistas,
|
||||
ExodusLair,
|
||||
LakeofFire,
|
||||
Lakeshire,
|
||||
PassofKarnaugh,
|
||||
TheEtherealFortress,
|
||||
TwinOaksTavern,
|
||||
ChaosShrine,
|
||||
ShrineofHumility,
|
||||
ShrineofSacrifice,
|
||||
ShrineofCompassion,
|
||||
ShrineofHonor,
|
||||
ShrineofHonesty,
|
||||
ShrineofSpirituality,
|
||||
ShrineofJustice,
|
||||
ShrineofValor
|
||||
}
|
||||
|
||||
public class SnowGlobeTwo : SnowGlobe
|
||||
{
|
||||
/* Oddly, these are not localized. */
|
||||
private static readonly string[] m_PlaceNames = new string[]
|
||||
{
|
||||
/* AncientCitadel */ "Ancient Citadel",
|
||||
/* BlackthornesCastle */ "Blackthorne's Castle",
|
||||
/* CityofMontor */ "City of Montor",
|
||||
/* CityofMistas */ "City of Mistas",
|
||||
/* ExodusLair */ "Exodus' Lair",
|
||||
/* LakeofFire */ "Lake of Fire",
|
||||
/* Lakeshire */ "Lakeshire",
|
||||
/* PassofKarnaugh */ "Pass of Karnaugh",
|
||||
/* TheEtherealFortress */ "The Etheral Fortress",
|
||||
/* TwinOaksTavern */ "Twin Oaks Tavern",
|
||||
/* ChaosShrine */ "Chaos Shrine",
|
||||
/* ShrineofHumility */ "Shrine of Humility",
|
||||
/* ShrineofSacrifice */ "Shrine of Sacrifice",
|
||||
/* ShrineofCompassion */ "Shrine of Compassion",
|
||||
/* ShrineofHonor */ "Shrine of Honor",
|
||||
/* ShrineofHonesty */ "Shrine of Honesty",
|
||||
/* ShrineofSpirituality */ "Shrine of Spirituality",
|
||||
/* ShrineofJustice */ "Shrine of Justice",
|
||||
/* ShrineofValor */ "Shrine of Valor"
|
||||
};
|
||||
|
||||
private SnowGlobeTypeTwo m_Type;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public SnowGlobeTypeTwo Place
|
||||
{
|
||||
get { return m_Type; }
|
||||
set { m_Type = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
public override string DefaultName
|
||||
{
|
||||
get
|
||||
{
|
||||
int idx = (int) m_Type;
|
||||
|
||||
if ( idx < 0 || idx >= m_PlaceNames.Length )
|
||||
return "a snowy scene";
|
||||
|
||||
return String.Format( "a snowy scene of {0}", m_PlaceNames[idx] );
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SnowGlobeTwo()
|
||||
: this( (SnowGlobeTypeTwo) Utility.Random( 19 ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SnowGlobeTwo( SnowGlobeTypeTwo type )
|
||||
{
|
||||
m_Type = type;
|
||||
}
|
||||
|
||||
public SnowGlobeTwo( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
writer.WriteEncodedInt( (int) m_Type );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_Type = (SnowGlobeTypeTwo) reader.ReadEncodedInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum SnowGlobeTypeThree
|
||||
{
|
||||
Luna,
|
||||
Umbra,
|
||||
Zento,
|
||||
Heartwood,
|
||||
Covetous,
|
||||
Deceit,
|
||||
Destard,
|
||||
Hythloth,
|
||||
Khaldun,
|
||||
Shame,
|
||||
Wrong,
|
||||
Doom,
|
||||
TheCitadel,
|
||||
ThePalaceofParoxysmus,
|
||||
TheBlightedGrove,
|
||||
ThePrismofLight
|
||||
}
|
||||
|
||||
public class SnowGlobeThree : SnowGlobe
|
||||
{
|
||||
private SnowGlobeTypeThree m_Type;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public SnowGlobeTypeThree Place
|
||||
{
|
||||
get { return m_Type; }
|
||||
set { m_Type = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
if ( m_Type >= SnowGlobeTypeThree.Covetous )
|
||||
return 1075440 + ( (int) m_Type - 4 );
|
||||
|
||||
return 1075294 + (int) m_Type;
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SnowGlobeThree()
|
||||
: this( (SnowGlobeTypeThree) Utility.Random( 16 ) )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SnowGlobeThree( SnowGlobeTypeThree type )
|
||||
{
|
||||
m_Type = type;
|
||||
}
|
||||
|
||||
public SnowGlobeThree( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
writer.WriteEncodedInt( (int) m_Type );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_Type = (SnowGlobeTypeThree) reader.ReadEncodedInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
42
Scripts/Items/Special/Holiday/SnowPiles.cs
Normal file
42
Scripts/Items/Special/Holiday/SnowPiles.cs
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
public class SnowPileDeco : Item
|
||||
{
|
||||
public override string DefaultName{ get { return "Snow Pile"; } }
|
||||
public override double DefaultWeight{ get { return 2.0; } }
|
||||
|
||||
private static readonly int[] m_Types = new int[] { 0x8E2, 0x8E0, 0x8E6, 0x8E5, 0x8E3 };
|
||||
|
||||
[Constructable]
|
||||
public SnowPileDeco()
|
||||
: this(m_Types[Utility.Random(m_Types.Length)])
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public SnowPileDeco( int itemid )
|
||||
: base(itemid)
|
||||
{
|
||||
Hue = 0x481;
|
||||
}
|
||||
|
||||
public SnowPileDeco(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
246
Scripts/Items/Special/Holiday/SnowStatue.cs
Normal file
246
Scripts/Items/Special/Holiday/SnowStatue.cs
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x456E, 0x456F )]
|
||||
public class SnowStatuePegasus : Item
|
||||
{
|
||||
public override bool ForceShowProperties { get { return ObjectPropertyList.Enabled; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowStatuePegasus()
|
||||
: base( 0x456E )
|
||||
{
|
||||
}
|
||||
|
||||
public SnowStatuePegasus( 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();
|
||||
}
|
||||
}
|
||||
|
||||
[Flipable( 0x4578, 0x4579 )]
|
||||
public class SnowStatueSeahorse : Item
|
||||
{
|
||||
public override bool ForceShowProperties { get { return ObjectPropertyList.Enabled; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowStatueSeahorse()
|
||||
: base( 0x4578 )
|
||||
{
|
||||
}
|
||||
|
||||
public SnowStatueSeahorse( 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();
|
||||
}
|
||||
}
|
||||
|
||||
[Flipable( 0x457A, 0x457B )]
|
||||
public class SnowStatueMermaid : Item
|
||||
{
|
||||
public override bool ForceShowProperties { get { return ObjectPropertyList.Enabled; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowStatueMermaid()
|
||||
: base( 0x457A )
|
||||
{
|
||||
}
|
||||
|
||||
public SnowStatueMermaid( 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();
|
||||
}
|
||||
}
|
||||
|
||||
[Flipable( 0x457C, 0x457D )]
|
||||
public class SnowStatueGriffon : Item
|
||||
{
|
||||
public override bool ForceShowProperties { get { return ObjectPropertyList.Enabled; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowStatueGriffon()
|
||||
: base( 0x457C )
|
||||
{
|
||||
}
|
||||
|
||||
public SnowStatueGriffon( 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 SnowStatueDeed : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1114296; } } // snow statue deed
|
||||
public override double DefaultWeight { get { return 1.0; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowStatueDeed()
|
||||
: base( 0x14F0 )
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public SnowStatueDeed( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.CloseGump( typeof( InternalGump ) );
|
||||
from.SendGump( new InternalGump( this ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1042038 ); // You must have the object in your backpack to use it.
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.WriteEncodedInt( 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
|
||||
private class InternalGump : Gump
|
||||
{
|
||||
private SnowStatueDeed m_Deed;
|
||||
|
||||
public InternalGump( SnowStatueDeed deed ) : base( 100, 200 )
|
||||
{
|
||||
m_Deed = deed;
|
||||
|
||||
Closable = true;
|
||||
Disposable = true;
|
||||
Dragable = true;
|
||||
Resizable = false;
|
||||
|
||||
AddPage( 0 );
|
||||
AddBackground( 0, 0, 360, 225, 0xA28 );
|
||||
|
||||
AddPage( 1 );
|
||||
AddLabel( 45, 15, 0, "Select One:" );
|
||||
|
||||
AddItem( 35, 75, 0x456E );
|
||||
AddButton( 65, 50, 0x845, 0x846, 1, GumpButtonType.Reply, 0 );
|
||||
|
||||
AddItem( 120, 75, 0x4578 );
|
||||
AddButton( 135, 50, 0x845, 0x846, 2, GumpButtonType.Reply, 0 );
|
||||
|
||||
AddItem( 190, 75, 0x457A );
|
||||
AddButton( 205, 50, 0x845, 0x846, 3, GumpButtonType.Reply, 0 );
|
||||
|
||||
AddItem( 250, 75, 0x457C );
|
||||
AddButton( 275, 50, 0x845, 0x846, 4, GumpButtonType.Reply, 0 );
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
if ( m_Deed == null || m_Deed.Deleted )
|
||||
return;
|
||||
|
||||
Mobile from = sender.Mobile;
|
||||
|
||||
if ( !m_Deed.IsChildOf( from.Backpack ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 1042038 ); // You must have the object in your backpack to use it
|
||||
return;
|
||||
}
|
||||
|
||||
Item statue = null;
|
||||
|
||||
switch ( info.ButtonID )
|
||||
{
|
||||
case 1: statue = new SnowStatuePegasus(); break;
|
||||
case 2: statue = new SnowStatueSeahorse(); break;
|
||||
case 3: statue = new SnowStatueMermaid(); break;
|
||||
case 4: statue = new SnowStatueGriffon(); break;
|
||||
}
|
||||
|
||||
if ( statue == null )
|
||||
return;
|
||||
|
||||
if ( !from.PlaceInBackpack( statue ) )
|
||||
{
|
||||
statue.Delete();
|
||||
from.SendLocalizedMessage( 1078837 ); // Your backpack is full! Please make room and try again.
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Deed.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
62
Scripts/Items/Special/Holiday/Snowflakes.cs
Normal file
62
Scripts/Items/Special/Holiday/Snowflakes.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BlueSnowflake : Item
|
||||
{
|
||||
[Constructable]
|
||||
public BlueSnowflake() : base( 0x232E )
|
||||
{
|
||||
Weight = 1.0;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public BlueSnowflake( 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 WhiteSnowflake : Item
|
||||
{
|
||||
[Constructable]
|
||||
public WhiteSnowflake() : base( 0x232F )
|
||||
{
|
||||
Weight = 1.0;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public WhiteSnowflake( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
159
Scripts/Items/Special/Holiday/Snowman.cs
Normal file
159
Scripts/Items/Special/Holiday/Snowman.cs
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x2328, 0x2329 )]
|
||||
public class Snowman : Item, IDyable
|
||||
{
|
||||
public static string GetRandomTitle()
|
||||
{
|
||||
// All hail OSI staff
|
||||
string[] titles = new string[]
|
||||
{
|
||||
/* 1 */ "Backflash",
|
||||
/* 2 */ "Carbon",
|
||||
/* 3 */ "Colbalistic",
|
||||
/* 4 */ "Comforl",
|
||||
/* 5 */ "Coppacchia",
|
||||
/* 6 */ "Cyrus",
|
||||
/* 7 */ "DannyB",
|
||||
/* 8 */ "DJSoul",
|
||||
/* 9 */ "DraconisRex",
|
||||
/* 10 */ "Earia",
|
||||
/* 11 */ "Foster",
|
||||
/* 12 */ "Gonzo",
|
||||
/* 13 */ "Haan",
|
||||
/* 14 */ "Halona",
|
||||
/* 15 */ "Hugo",
|
||||
/* 16 */ "Hyacinth",
|
||||
/* 17 */ "Imirian",
|
||||
/* 18 */ "Jinsol",
|
||||
/* 19 */ "Liciatia",
|
||||
/* 20 */ "Loewen",
|
||||
/* 21 */ "Loke",
|
||||
/* 22 */ "Magnus",
|
||||
/* 23 */ "Maleki",
|
||||
/* 24 */ "Morpheus",
|
||||
/* 25 */ "Obberron",
|
||||
/* 26 */ "Odee",
|
||||
/* 27 */ "Orbeus",
|
||||
/* 28 */ "Pax",
|
||||
/* 29 */ "Phields",
|
||||
/* 30 */ "Pigpen",
|
||||
/* 31 */ "Platinum",
|
||||
/* 32 */ "Polpol",
|
||||
/* 33 */ "Prume",
|
||||
/* 34 */ "Quinnly",
|
||||
/* 35 */ "Ragnarok",
|
||||
/* 36 */ "Rend",
|
||||
/* 37 */ "Roland",
|
||||
/* 38 */ "RyanM",
|
||||
/* 39 */ "Screach",
|
||||
/* 40 */ "Seraph",
|
||||
/* 41 */ "Silvani",
|
||||
/* 42 */ "Sherbear",
|
||||
/* 43 */ "SkyWalker",
|
||||
/* 44 */ "Snark",
|
||||
/* 45 */ "Sowl",
|
||||
/* 46 */ "Spada",
|
||||
/* 47 */ "Starblade",
|
||||
/* 48 */ "Tenacious",
|
||||
/* 49 */ "Tnez",
|
||||
/* 50 */ "Wasia",
|
||||
/* 51 */ "Zilo",
|
||||
/* 52 */ "Zippy",
|
||||
/* 53 */ "Zoer"
|
||||
};
|
||||
|
||||
if ( titles.Length > 0 )
|
||||
return titles[Utility.Random( titles.Length )];
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private string m_Title;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string Title
|
||||
{
|
||||
get{ return m_Title; }
|
||||
set{ m_Title = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Snowman() : this( Utility.RandomDyedHue(), GetRandomTitle() )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Snowman( int hue ) : this( hue, GetRandomTitle() )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Snowman( string title ) : this( Utility.RandomDyedHue(), title )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Snowman( int hue, string title ) : base( Utility.Random( 0x2328, 2 ) )
|
||||
{
|
||||
Weight = 10.0;
|
||||
Hue = hue;
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
m_Title = title;
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( m_Title != null )
|
||||
list.Add( 1062841, m_Title ); // ~1_NAME~ the Snowman
|
||||
}
|
||||
|
||||
public bool Dye( Mobile from, DyeTub sender )
|
||||
{
|
||||
if ( Deleted )
|
||||
return false;
|
||||
|
||||
Hue = sender.DyedHue;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public Snowman( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( (string) m_Title );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_Title = reader.ReadString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Utility.Intern( ref m_Title );
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Scripts/Items/Special/Holiday/Stockings.cs
Normal file
64
Scripts/Items/Special/Holiday/Stockings.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Furniture]
|
||||
[FlipableAttribute( 0x2bd9, 0x2bda )]
|
||||
public class GreenStocking : BaseContainer
|
||||
{
|
||||
public override int DefaultGumpID{ get{ return 0x103; } }
|
||||
public override int DefaultDropSound{ get{ return 0x42; } }
|
||||
|
||||
[Constructable]
|
||||
public GreenStocking() : base ( Utility.Random( 0x2BD9, 2 ) )
|
||||
{
|
||||
}
|
||||
|
||||
public GreenStocking( 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();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[FlipableAttribute( 0x2bdb, 0x2bdc )]
|
||||
public class RedStocking : BaseContainer
|
||||
{
|
||||
public override int DefaultGumpID{ get{ return 0x103; } }
|
||||
public override int DefaultDropSound{ get{ return 0x42; } }
|
||||
|
||||
[Constructable]
|
||||
public RedStocking() : base ( Utility.Random( 0x2BDB, 2 ) )
|
||||
{
|
||||
}
|
||||
|
||||
public RedStocking( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
37
Scripts/Items/Special/Holiday/WinterGiftPackage2003.cs
Normal file
37
Scripts/Items/Special/Holiday/WinterGiftPackage2003.cs
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flipable( 0x232A, 0x232B )]
|
||||
public class WinterGiftPackage2003 : GiftBox
|
||||
{
|
||||
[Constructable]
|
||||
public WinterGiftPackage2003()
|
||||
{
|
||||
DropItem( new Snowman() );
|
||||
DropItem( new WreathDeed() );
|
||||
DropItem( new BlueSnowflake() );
|
||||
DropItem( new RedPoinsettia() );
|
||||
}
|
||||
|
||||
public WinterGiftPackage2003( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue