### Summary - Fixes the name `Vegies` to `Veggies` - Adds feeding leather to goats - Adds metal for Lava Lizards - Fixes Bone Helm being classified as plate instead of bone. - Fixes wooden shields not classified as wood. ### Note On OSI, the preferred foods on the animal lore gump doesn't contain all possible favorite food categories. Furthermore, the one listed is not necessarily always the "first" in the list of possible categories. We aren't going to try and fix that since it isn't important.
115 lines
3.9 KiB
C#
115 lines
3.9 KiB
C#
using ModernUO.Serialization;
|
|
using System;
|
|
using Server.Items;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
[SerializationGenerator(0, false)]
|
|
public partial class Kirin : BaseMount
|
|
{
|
|
public override string DefaultName => "a ki-rin";
|
|
|
|
[Constructible]
|
|
public Kirin() : base(132, 0x3EAD, AIType.AI_Mage, FightMode.Evil)
|
|
{
|
|
BaseSoundID = 0x3C5;
|
|
|
|
SetStr(296, 325);
|
|
SetDex(86, 105);
|
|
SetInt(186, 225);
|
|
|
|
SetHits(191, 210);
|
|
|
|
SetDamage(16, 22);
|
|
|
|
SetDamageType(ResistanceType.Physical, 70);
|
|
SetDamageType(ResistanceType.Fire, 10);
|
|
SetDamageType(ResistanceType.Cold, 10);
|
|
SetDamageType(ResistanceType.Energy, 10);
|
|
|
|
SetResistance(ResistanceType.Physical, 55, 65);
|
|
SetResistance(ResistanceType.Fire, 35, 45);
|
|
SetResistance(ResistanceType.Cold, 25, 35);
|
|
SetResistance(ResistanceType.Poison, 25, 35);
|
|
SetResistance(ResistanceType.Energy, 25, 35);
|
|
|
|
SetSkill(SkillName.EvalInt, 80.1, 90.0);
|
|
SetSkill(SkillName.Magery, 60.4, 100.0);
|
|
SetSkill(SkillName.Meditation, 90.1, 100.0);
|
|
SetSkill(SkillName.MagicResist, 85.3, 100.0);
|
|
SetSkill(SkillName.Tactics, 20.1, 22.5);
|
|
SetSkill(SkillName.Wrestling, 80.5, 92.5);
|
|
|
|
Fame = 9000;
|
|
Karma = 9000;
|
|
|
|
Tamable = true;
|
|
ControlSlots = 2;
|
|
MinTameSkill = 95.1;
|
|
}
|
|
|
|
public override int StepsMax => 4480;
|
|
public override string CorpseName => "a ki-rin corpse";
|
|
public override bool AllowFemaleRider => false;
|
|
public override bool AllowFemaleTamer => false;
|
|
|
|
public override bool InitialInnocent => true;
|
|
|
|
public override TimeSpan MountAbilityDelay => TimeSpan.FromHours(1.0);
|
|
|
|
public override OppositionGroup OppositionGroup => OppositionGroup.FeyAndUndead;
|
|
|
|
public override int Meat => 3;
|
|
public override int Hides => 10;
|
|
public override HideType HideType => HideType.Horned;
|
|
public override FoodType FavoriteFood => FoodType.FruitsAndVeggies | FoodType.GrainsAndHay;
|
|
|
|
public override void OnDisallowedRider(Mobile m)
|
|
{
|
|
m.SendLocalizedMessage(1042319); // The Ki-Rin refuses your attempts to mount it.
|
|
}
|
|
|
|
public override bool DoMountAbility(int damage, Mobile attacker)
|
|
{
|
|
if (Rider == null || attacker == null) // sanity
|
|
{
|
|
return false;
|
|
}
|
|
|
|
// Range and map checked here instead of other base function because of abilities that don't need to check this
|
|
if (Rider.Hits - damage < 30 && Rider.Map == attacker.Map && Rider.InRange(attacker, 18))
|
|
{
|
|
attacker.BoltEffect(0);
|
|
// 35~100 damage, unresistable, by the Ki-rin.
|
|
// Don't inform mount about this damage, Still unsure whether or not it's flagged as the mount doing damage or the player.
|
|
// If changed to player, without the extra bool it'd be an infinite loop
|
|
attacker.Damage(Utility.RandomMinMax(35, 100), this, false);
|
|
|
|
// Your mount calls down the forces of nature on your opponent.
|
|
Rider.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1042534);
|
|
Rider.FixedParticles(0, 0, 0, 0x13A7, EffectLayer.Waist);
|
|
Rider.PlaySound(0xA9); // Ki-rin's whinny.
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public override void GenerateLoot()
|
|
{
|
|
AddLoot(LootPack.Rich);
|
|
AddLoot(LootPack.LowScrolls);
|
|
AddLoot(LootPack.Potions);
|
|
}
|
|
|
|
public override void OnDeath(Container c)
|
|
{
|
|
base.OnDeath(c);
|
|
|
|
if (Utility.RandomDouble() < 0.35)
|
|
{
|
|
c.DropItem(new KirinBrains());
|
|
}
|
|
}
|
|
}
|
|
}
|