Files
abysmal-isle/Scripts/Scripts-master/Items/Armors/MarchNewMobiles/BloodHound.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

105 lines
2.1 KiB
C#

using System;
using Server.Mobiles;
using System.Collections;
using System.Collections.Generic;
namespace Server.Mobiles
{
[CorpseName( "a dog corpse" )]
public class BloodHound : BaseCreature
{
[Constructable]
public BloodHound() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a blood hound";
Body = 0xD9;
Hue = 342;
BaseSoundID = 0x85;
SetStr( 47, 67 );
SetDex( 48, 63 );
SetInt( 49, 67 );
SetHits( 47, 52 );
SetMana( 0 );
SetDamage( 8, 13 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 20, 35 );
SetSkill( SkillName.MagicResist, 22.1, 47.0 );
SetSkill( SkillName.Tactics, 69.2, 71.0 );
SetSkill( SkillName.Wrestling, 49.2, 61.0 );
Fame = 0;
Karma = 300;
VirtualArmor = 21;
Tamable = true;
ControlSlots = 2;
MinTameSkill = 98.3;
}
private DateTime m_NextRevealTime;
// Min/max seconds until next Reveal
public double RevealMinDelay{ get{ return 25.0; } }
public double RevealMaxDelay{ get{ return 40.0; } }
public override void OnThink()
{
if( DateTime.Now >= m_NextRevealTime )
{
DoReveal();
m_NextRevealTime = DateTime.Now + TimeSpan.FromSeconds( RevealMinDelay + (Utility.RandomDouble() * RevealMaxDelay) );
}
}
public void DoReveal()
{
ArrayList list = new ArrayList();
foreach ( Mobile m in this.GetMobilesInRange( 8 ) )
{
int h = m.Skills[SkillName.Hiding].Fixed;
if ( m == this || !CanBeHarmful( m ) || !m.Alive || !InLOS( m ) || h < 100 )
continue;
else
list.Add( m );
}
foreach ( Mobile m in list )
{
m.RevealingAction();
}
}
public override int Meat{ get{ return 1; } }
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
public override PackInstinct PackInstinct{ get{ return PackInstinct.Canine; } }
public BloodHound(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();
}
}
}