185 lines
3.7 KiB
C#
185 lines
3.7 KiB
C#
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 => 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, $"#{(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 m )
|
|
{
|
|
AnimalForm.RemoveContext( m, true );
|
|
}
|
|
}
|
|
|
|
public static bool EntryEnabled( Mobile m, Type type )
|
|
{
|
|
if ( type == typeof( Squirrel ) )
|
|
return m.Talisman is SquirrelFormTalisman;
|
|
if ( type == typeof( Ferret ) )
|
|
return m.Talisman is FerretFormTalisman;
|
|
if ( type == typeof( CuSidhe ) )
|
|
return m.Talisman is CuSidheFormTalisman;
|
|
if ( type == typeof( Reptalon ) )
|
|
return m.Talisman is ReptalonFormTalisman;
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public class FerretFormTalisman : BaseFormTalisman
|
|
{
|
|
public override TalismanForm Form => TalismanForm.Ferret;
|
|
|
|
[Constructible]
|
|
public FerretFormTalisman()
|
|
{
|
|
}
|
|
|
|
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 => TalismanForm.Squirrel;
|
|
|
|
[Constructible]
|
|
public SquirrelFormTalisman ()
|
|
{
|
|
}
|
|
|
|
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 => TalismanForm.CuSidhe;
|
|
|
|
[Constructible]
|
|
public CuSidheFormTalisman()
|
|
{
|
|
}
|
|
|
|
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 => TalismanForm.Reptalon;
|
|
|
|
[Constructible]
|
|
public ReptalonFormTalisman()
|
|
{
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
}
|