125 lines
3.1 KiB
C#
125 lines
3.1 KiB
C#
using System;
|
|
using Server.Items;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
public class JukaLord : BaseCreature
|
|
{
|
|
public override string CorpseName => "a jukan corpse";
|
|
public override string DefaultName => "a juka lord";
|
|
|
|
[Constructible]
|
|
public JukaLord() : base( AIType.AI_Archer, FightMode.Closest, 10, 3, 0.2, 0.4 )
|
|
{
|
|
Body = 766;
|
|
|
|
SetStr( 401, 500 );
|
|
SetDex( 81, 100 );
|
|
SetInt( 151, 200 );
|
|
|
|
SetHits( 241, 300 );
|
|
|
|
SetDamage( 10, 12 );
|
|
|
|
SetDamageType( ResistanceType.Physical, 100 );
|
|
|
|
SetResistance( ResistanceType.Physical, 40, 50 );
|
|
SetResistance( ResistanceType.Fire, 45, 50 );
|
|
SetResistance( ResistanceType.Cold, 40, 50 );
|
|
SetResistance( ResistanceType.Poison, 20, 25 );
|
|
SetResistance( ResistanceType.Energy, 40, 50 );
|
|
|
|
SetSkill( SkillName.Anatomy, 90.1, 100.0 );
|
|
SetSkill( SkillName.Archery, 95.1, 100.0 );
|
|
SetSkill( SkillName.Healing, 80.1, 100.0 );
|
|
SetSkill( SkillName.MagicResist, 120.1, 130.0 );
|
|
SetSkill( SkillName.Swords, 90.1, 100.0 );
|
|
SetSkill( SkillName.Tactics, 95.1, 100.0 );
|
|
SetSkill( SkillName.Wrestling, 90.1, 100.0 );
|
|
|
|
Fame = 15000;
|
|
Karma = -15000;
|
|
|
|
VirtualArmor = 28;
|
|
|
|
Container pack = new Backpack();
|
|
|
|
pack.DropItem( new Arrow( Utility.RandomMinMax( 25, 35 ) ) );
|
|
pack.DropItem( new Arrow( Utility.RandomMinMax( 25, 35 ) ) );
|
|
pack.DropItem( new Bandage( Utility.RandomMinMax( 5, 15 ) ) );
|
|
pack.DropItem( new Bandage( Utility.RandomMinMax( 5, 15 ) ) );
|
|
pack.DropItem( Loot.RandomGem() );
|
|
pack.DropItem( new ArcaneGem() );
|
|
|
|
PackItem( pack );
|
|
|
|
AddItem( new JukaBow() );
|
|
|
|
// TODO: Bandage self
|
|
}
|
|
|
|
public override void GenerateLoot()
|
|
{
|
|
AddLoot( LootPack.Rich );
|
|
AddLoot( LootPack.Average );
|
|
}
|
|
|
|
public override void OnDamage( int amount, Mobile from, bool willKill )
|
|
{
|
|
if ( from != null && !willKill && amount > 5 && from.Player && 5 > Utility.Random( 100 ) )
|
|
{
|
|
string[] toSay = {
|
|
"{0}!! You will have to do better than that!",
|
|
"{0}!! Prepare to meet your doom!",
|
|
"{0}!! My armies will crush you!",
|
|
"{0}!! You will pay for that!"
|
|
};
|
|
|
|
Say( true, string.Format( toSay[Utility.Random( toSay.Length )], from.Name ) );
|
|
}
|
|
|
|
base.OnDamage( amount, from, willKill );
|
|
}
|
|
|
|
public override int GetIdleSound()
|
|
{
|
|
return 0x262;
|
|
}
|
|
|
|
public override int GetAngerSound()
|
|
{
|
|
return 0x263;
|
|
}
|
|
|
|
public override int GetHurtSound()
|
|
{
|
|
return 0x1D0;
|
|
}
|
|
|
|
public override int GetDeathSound()
|
|
{
|
|
return 0x28D;
|
|
}
|
|
|
|
public override bool AlwaysMurderer => true;
|
|
public override bool BardImmune => !Core.AOS;
|
|
public override bool CanRummageCorpses => true;
|
|
public override int Meat => 1;
|
|
|
|
public JukaLord( 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();
|
|
}
|
|
}
|
|
}
|