155 lines
4.1 KiB
C#
155 lines
4.1 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Items;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
[CorpseName("a dimetrosaur corpse")]
|
|
public class Dimetrosaur : BaseCreature
|
|
{
|
|
public override bool AttacksFocus { get { return !Controlled; } }
|
|
|
|
[Constructable]
|
|
public Dimetrosaur()
|
|
: base(AIType.AI_Melee, FightMode.Closest, 10, 1, .2, .4)
|
|
{
|
|
Name = "a dimetrosaur";
|
|
Body = 1285;
|
|
|
|
SetStr(526, 601);
|
|
|
|
SetDex(166, 184);
|
|
SetInt(373, 435);
|
|
|
|
SetDamage(18, 21);
|
|
SetHits(5300, 5400);
|
|
|
|
SetResistance(ResistanceType.Physical, 80, 90);
|
|
SetResistance(ResistanceType.Fire, 60, 70);
|
|
SetResistance(ResistanceType.Cold, 60, 70);
|
|
SetResistance(ResistanceType.Poison, 65, 75);
|
|
SetResistance(ResistanceType.Energy, 65, 75);
|
|
|
|
SetDamageType(ResistanceType.Physical, 90);
|
|
SetDamageType(ResistanceType.Poison, 10);
|
|
|
|
SetSkill(SkillName.MagicResist, 120.0, 140.0);
|
|
SetSkill(SkillName.Tactics, 100.0, 120.0);
|
|
SetSkill(SkillName.Wrestling, 115.0, 125.0);
|
|
SetSkill(SkillName.Anatomy, 70.0, 80.0);
|
|
SetSkill(SkillName.Poisoning, 85.0, 95.0);
|
|
SetSkill(SkillName.DetectHidden, 70.0, 80.0);
|
|
SetSkill(SkillName.Parry, 95.0, 105.0);
|
|
|
|
Fame = 17000;
|
|
Karma = -17000;
|
|
|
|
Tamable = true;
|
|
ControlSlots = 3;
|
|
MinTameSkill = 102.0;
|
|
|
|
SetAreaEffect(AreaEffect.PoisonBreath);
|
|
SetWeaponAbility(WeaponAbility.MortalStrike);
|
|
SetWeaponAbility(WeaponAbility.Dismount);
|
|
}
|
|
|
|
public override int GetIdleSound()
|
|
{
|
|
return 0x2C4;
|
|
}
|
|
|
|
public override int GetAttackSound()
|
|
{
|
|
return 0x2C0;
|
|
}
|
|
|
|
public override int GetDeathSound()
|
|
{
|
|
return 0x2C1;
|
|
}
|
|
|
|
public override int GetAngerSound()
|
|
{
|
|
return 0x2C4;
|
|
}
|
|
|
|
public override int GetHurtSound()
|
|
{
|
|
return 0x2C3;
|
|
}
|
|
|
|
public override int TreasureMapLevel { get { return 6; } }
|
|
|
|
public override void SetToChampionSpawn()
|
|
{
|
|
SetStr(271, 299);
|
|
SetHits(360, 380);
|
|
}
|
|
|
|
public override void OnAfterTame(Mobile tamer)
|
|
{
|
|
if (Owners.Count == 0)
|
|
{
|
|
int hits = HitsMax;
|
|
|
|
base.OnAfterTame(tamer);
|
|
|
|
SetHits(hits / 4);
|
|
}
|
|
else
|
|
{
|
|
base.OnAfterTame(tamer);
|
|
}
|
|
}
|
|
|
|
public override bool CanAngerOnTame { get { return true; } }
|
|
public override bool StatLossAfterTame { get { return true; } }
|
|
public override int Meat { get { return 1; } }
|
|
public override int Hides { get { return 11; } }
|
|
public override HideType HideType { get { return HideType.Spined; } }
|
|
public override FoodType FavoriteFood { get { return FoodType.FruitsAndVegies; } }
|
|
|
|
public override void GenerateLoot()
|
|
{
|
|
if (IsChampionSpawn)
|
|
AddLoot(LootPack.FilthyRich, 2);
|
|
else
|
|
AddLoot(LootPack.UltraRich, 2);
|
|
}
|
|
|
|
public Dimetrosaur(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(2);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
|
|
if (version == 0)
|
|
{
|
|
if (Controlled)
|
|
{
|
|
SetHits(HitsMax / 4);
|
|
}
|
|
|
|
SetAreaEffect(AreaEffect.PoisonBreath);
|
|
SetWeaponAbility(WeaponAbility.MortalStrike);
|
|
SetWeaponAbility(WeaponAbility.Dismount);
|
|
}
|
|
|
|
if (version < 2)
|
|
{
|
|
SetMagicalAbility(MagicalAbility.Poisoning);
|
|
}
|
|
}
|
|
}
|
|
}
|