using System; using System.Collections.Generic; using Server.Mobiles; using Server.Items; using Server.ContextMenus; namespace Server.Mobiles { [CorpseName("a llama corpse")] public class PackLlama : BaseCreature { [Constructable] public PackLlama() : base( AIType.AI_Timid, FightMode.Aggressor, 10, 1, 0.2, 0.4 ) { Name = "a pack llama"; Body = 292; BaseSoundID = 0x3F3; Invulnerable = true; SetStr( 52, 80 ); SetDex( 36, 55 ); SetInt( 16, 30 ); SetHits( 50 ); SetStam( 86, 105 ); SetMana( 0 ); SetDamage( 2, 6 ); SetSkill( SkillName.MagicResist, 15.1, 20.0 ); SetSkill( SkillName.Tactics, 19.2, 29.0 ); SetSkill( SkillName.HandToHand, 19.2, 29.0 ); Fame = 0; Karma = 200; ControlSlots = 2; VirtualArmor = 16; Container pack = Backpack; if ( pack != null ) pack.Delete(); pack = new StrongBackpack(); pack.Movable = false; AddItem( pack ); } public override int Meat{ get{ return 1; } } public PackLlama( Serial serial ) : base( serial ) { } #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 ( 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 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(); } } }