using System;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a warrior steed corpse" )]
public class WarriorSteed : BaseMount
{
[Constructable]
public WarriorSteed() : this( "a warrior steed" )
{
}
[Constructable]
public WarriorSteed( string name ) : base( name, 0xBE, 0x3E9E, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
BaseSoundID = 0xA8;
SetStr( 376, 400 );
SetDex( 91, 120 );
SetInt( 291, 300 );
SetHits( 226, 240 );
SetDamage( 11, 30 );
SetDamageType( ResistanceType.Physical, 20 );
SetDamageType( ResistanceType.Fire, 80 );
SetResistance( ResistanceType.Physical, 30, 40 );
SetResistance( ResistanceType.Fire, 70, 80 );
SetResistance( ResistanceType.Cold, 20, 30 );
SetResistance( ResistanceType.Poison, 30, 40 );
SetResistance( ResistanceType.Energy, 30, 40 );
SetSkill( SkillName.MagicResist, 100.0, 120.0 );
SetSkill( SkillName.Tactics, 100.0 );
SetSkill( SkillName.Wrestling, 100.0 );
Fame = 20000;
Karma = -20000;
Tamable = true;
ControlSlots = 2;
MinTameSkill = 106.0;
}
public override void OnAdded( object parent )
{
base.OnAdded( parent );
if( parent is Mobile )
{
Mobile from = (Mobile)parent;
from.Skills.Swords.Base += 10;
from.Skills.Fencing.Base += 10;
from.Skills.Magery.Base += 10;
from.Skills.Archery.Base += 10;
from.Skills.Macing.Base += 10;
from.Skills.Wrestling.Base += 10;
from.Skills.Anatomy.Base += 10;
from.Skills.Meditation.Base += 10;
from.Skills.EvalInt.Base += 10;
}
}
public override void OnRemoved( object parent )
{
base.OnRemoved( parent );
if( parent is Mobile )
{
Mobile from = (Mobile)parent;
from.Skills.Swords.Base -= 10;
from.Skills.Fencing.Base -= 10;
from.Skills.Magery.Base -= 10;
from.Skills.Archery.Base -= 10;
from.Skills.Macing.Base -= 10;
from.Skills.Wrestling.Base -= 10;
from.Skills.Anatomy.Base -= 10;
from.Skills.Meditation.Base -= 10;
from.Skills.EvalInt.Base -= 10;
}
}
public override void GenerateLoot()
{
PackItem( new SulfurousAsh( Utility.RandomMinMax( 151, 300 ) ) );
PackItem( new Ruby( Utility.RandomMinMax( 16, 30 ) ) );
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
public override PackInstinct PackInstinct{ get{ return PackInstinct.Daemon | PackInstinct.Equine; } }
public WarriorSteed( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 1 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( BaseSoundID <= 0 )
BaseSoundID = 0xA8;
if( version < 1 )
{
for ( int i = 0; i < Skills.Length; ++i )
{
Skills[i].Cap = Math.Max( 100.0, Skills[i].Cap * 0.9 );
if ( Skills[i].Base > Skills[i].Cap )
{
Skills[i].Base = Skills[i].Cap;
}
}
}
}
}
}