132 lines
3.8 KiB
C#
132 lines
3.8 KiB
C#
using System;
|
|
using Server.Items;
|
|
using Server.Network;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
[CorpseName("a kepetch corpse")]
|
|
public class Kepetch : BaseCreature, ICarvable
|
|
{
|
|
public bool GatheredFur { get; set; }
|
|
|
|
[Constructable]
|
|
public Kepetch()
|
|
: base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
|
|
{
|
|
Name = "a kepetch";
|
|
Body = 726;
|
|
|
|
SetStr(337, 380);
|
|
SetDex(184, 194);
|
|
SetInt(30, 50);
|
|
|
|
SetHits(300, 400);
|
|
|
|
SetDamage(7, 17);
|
|
|
|
SetDamageType(ResistanceType.Physical, 100);
|
|
|
|
SetResistance(ResistanceType.Physical, 55, 75);
|
|
SetResistance(ResistanceType.Fire, 40, 60);
|
|
SetResistance(ResistanceType.Cold, 40, 50);
|
|
SetResistance(ResistanceType.Poison, 50, 70);
|
|
SetResistance(ResistanceType.Energy, 60, 70);
|
|
|
|
SetSkill(SkillName.Anatomy, 119.7, 124.1);
|
|
SetSkill(SkillName.MagicResist, 89.9, 97.4);
|
|
SetSkill(SkillName.Tactics, 117.4, 123.5);
|
|
SetSkill(SkillName.Wrestling, 107.7, 113.9);
|
|
SetSkill(SkillName.DetectHidden, 25.0);
|
|
SetSkill(SkillName.Parry, 60.0, 70.0);
|
|
|
|
Fame = 6000;
|
|
Karma = -6000;
|
|
|
|
SetSpecialAbility(SpecialAbility.ViciousBite);
|
|
}
|
|
|
|
public Kepetch(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override int Meat { get { return 5; } }
|
|
public override int Hides { get { return 14; } }
|
|
public override HideType HideType { get { return HideType.Spined; } }
|
|
public override FoodType FavoriteFood { get { return FoodType.FruitsAndVegies | FoodType.GrainsAndHay; } }
|
|
public override int DragonBlood { get { return 8; } }
|
|
public override int Fur { get { return GatheredFur ? 0 : 15; } }
|
|
public override FurType FurType { get { return FurType.Brown; } }
|
|
|
|
public bool Carve(Mobile from, Item item)
|
|
{
|
|
if (!GatheredFur)
|
|
{
|
|
var fur = new Fur(FurType, Fur);
|
|
|
|
if (from.Backpack == null || !from.Backpack.TryDropItem(from, fur, false))
|
|
{
|
|
from.SendLocalizedMessage(1112359); // You would not be able to place the gathered kepetch fur in your backpack!
|
|
fur.Delete();
|
|
}
|
|
else
|
|
{
|
|
from.SendLocalizedMessage(1112360); // You place the gathered kepetch fur into your backpack.
|
|
GatheredFur = true;
|
|
return true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1112358, from.NetState); // The Kepetch nimbly escapes your attempts to shear its mane.
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public override void GenerateLoot()
|
|
{
|
|
AddLoot(LootPack.Average, 2);
|
|
}
|
|
|
|
public override int GetIdleSound()
|
|
{
|
|
return 1545;
|
|
}
|
|
|
|
public override int GetAngerSound()
|
|
{
|
|
return 1542;
|
|
}
|
|
|
|
public override int GetHurtSound()
|
|
{
|
|
return 1544;
|
|
}
|
|
|
|
public override int GetDeathSound()
|
|
{
|
|
return 1543;
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(2);
|
|
|
|
writer.Write(GatheredFur);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
var version = reader.ReadInt();
|
|
|
|
if (version == 1)
|
|
reader.ReadDeltaTime();
|
|
else
|
|
GatheredFur = reader.ReadBool();
|
|
}
|
|
}
|
|
}
|