ModernUO/Scripts/Items/Special/8th Anniversary Items/Talismans.cs
2018-09-14 13:07:43 -07:00

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