using System.Collections.Generic; using Server.ContextMenus; using Server.Items; namespace Server.Mobiles { public class PackLlama : BaseCreature { [Constructible] public PackLlama() : base(AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4) { Body = 292; BaseSoundID = 0x3F3; SetStr(52, 80); SetDex(36, 55); SetInt(16, 30); SetHits(50); SetStam(86, 105); SetMana(0); SetDamage(2, 6); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 25, 35); SetResistance(ResistanceType.Fire, 10, 15); SetResistance(ResistanceType.Cold, 10, 15); SetResistance(ResistanceType.Poison, 10, 15); SetResistance(ResistanceType.Energy, 10, 15); SetSkill(SkillName.MagicResist, 15.1, 20.0); SetSkill(SkillName.Tactics, 19.2, 29.0); SetSkill(SkillName.Wrestling, 19.2, 29.0); Fame = 0; Karma = 200; VirtualArmor = 16; Tamable = true; ControlSlots = 1; MinTameSkill = 11.1; Container pack = Backpack; pack?.Delete(); pack = new StrongBackpack(); pack.Movable = false; AddItem(pack); } public PackLlama(Serial serial) : base(serial) { } public override string CorpseName => "a llama corpse"; public override string DefaultName => "a pack llama"; public override int Meat => 1; public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay; public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write(0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } #region Pack Animal Methods public override bool OnBeforeDeath() { if (!base.OnBeforeDeath()) return false; PackAnimal.CombineBackpacks(this); return true; } public override DeathMoveResult GetInventoryMoveResultFor(Item item) { return DeathMoveResult.MoveToCorpse; } public override bool IsSnoop(Mobile from) { if (PackAnimal.CheckAccess(this, from)) return false; return base.IsSnoop(from); } public override bool OnDragDrop(Mobile from, Item item) { if (CheckFeed(from, item)) return true; if (PackAnimal.CheckAccess(this, from)) { AddToBackpack(item); return true; } return base.OnDragDrop(from, item); } public override bool CheckNonlocalDrop(Mobile from, Item item, Item target) { return PackAnimal.CheckAccess(this, from); } public override bool CheckNonlocalLift(Mobile from, Item item) { return PackAnimal.CheckAccess(this, from); } public override void OnDoubleClick(Mobile from) { PackAnimal.TryPackOpen(this, from); } public override void GetContextMenuEntries(Mobile from, List list) { base.GetContextMenuEntries(from, list); PackAnimal.GetContextMenuEntries(this, from, list); } #endregion } }