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