상속: Item, ICraftable, ISlayer
        public RoyalArchivistSF()
            : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "Llewellyn";
            Body = 400;
            Hue = 33777;
            SpecialTitle = "Royal Archivist";
            TitleHue = 1926;

            Blessed = true;

            CantWalk = true;

            SpeechHue = YellHue = 2049;

            VirtualArmor = 36;

            TranscriptionBooks = new Dictionary<PlayerMobile, bool>();

            AddItem(new Robe(Utility.RandomYellowHue()));
            AddItem(new Sandals(Utility.RandomYellowHue()));

            var book = new Spellbook();
            book.Name = "Tome of Chaos";
            book.Hue = 1194;
            book.LootType = LootType.Newbied;
            AddItem(Immovable(book));

            HairItemID = 8265;
            FacialHairItemID = 8254;

            HairHue = 2577;
            FacialHairHue = 2577;
        }
		public SlayerSelectSpellbookGump( Spellbook item ) : base( 0, 0 )
		{
			m_Item = item;

			this.Closable=true;
			this.Disposable=true;
			this.Dragable=true;
			this.Resizable=false;

			AddPage(0);
			AddBackground(131, 90, 185, 292, 9200);
			AddAlphaRegion(137, 96, 172, 25);
			AddAlphaRegion(137, 130, 172, 247);
			AddHtml( 137, 96, 172, 25, @"<BASEFONT COLOR=#FFFFFF><CENTER>Select A Slayer</CENTER></BASEFONT>", (bool)false, (bool)false);
			AddButton(145, 140, 4023, 4024, 1, GumpButtonType.Reply, 0);
			AddLabel(180, 140, 1152, @"Repond Slayer");
			AddButton(145, 170, 4023, 4024, 2, GumpButtonType.Reply, 0);
			AddLabel(180, 170, 1152, @"Reptile Slayer");
			AddButton(145, 200, 4023, 4024, 3, GumpButtonType.Reply, 0);
			AddLabel(180, 200, 1152, @"Demon Slayer");
			AddButton(145, 230, 4023, 4024, 4, GumpButtonType.Reply, 0);
			AddLabel(180, 230, 1152, @"Elemental Slayer");
			AddButton(145, 260, 4023, 4024, 5, GumpButtonType.Reply, 0);
			AddLabel(180, 260, 1152, @"Undead Slayer");
			AddButton(145, 290, 4023, 4024, 6, GumpButtonType.Reply, 0);
			AddLabel(180, 290, 1152, @"Arachnid Slayer");
			AddButton(145, 320, 4023, 4024, 7, GumpButtonType.Reply, 0);
			AddLabel(180, 320, 1152, @"Fey Slayer");
		}
예제 #3
0
		public Beholder() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Beholder";
			Body = 22;
			Hue = 0x0492;
			BaseSoundID = 377;

			SetStr( 1500 );
			SetDex( 200 );
			SetInt( 800 );
			SetHits( 1500 );
			SetStam( 200 );
			SetMana( 800 );

			SetDamage( 30, 50 );

			SetSkill( SkillName.Magery, 200.0 );
			SetSkill( SkillName.MagicResist, 100.0 );
			SetSkill( SkillName.Tactics, 150.0 );
			SetSkill( SkillName.Wrestling, 200.0 );

			Fame = 19000;
			Karma = -9000;

			VirtualArmor = 50;

            Spellbook book = new Spellbook();
            book.Content = ulong.MaxValue;
            book.LootType = LootType.Regular;
            AddItem(book);


		}
예제 #4
0
        public Altageas()
            : base(AIType.AI_SphereMage, FightMode.Closest, 10, 5, 0.2, 0.4)
        {
            Name = "Altageas";
            Body = 0x03ca;
            Hue = 0x1;

            SetStr(600, 700);
            SetDex(350, 450);
            SetInt(300, 400);

            SetHits(610, 720);
            SetStam(350, 450);
            SetMana(400);
            SetDamage(38, 51);

            SetSkill(SkillName.Magery, 120.0);
            SetSkill(SkillName.Tactics, 300.0, 400.0);
            SetSkill(SkillName.MagicResist, 100.0, 150.0);
            SetSkill(SkillName.Parry, 200.0, 250.0);
            SetSkill(SkillName.Wrestling, 100.0);
            SetSkill(SkillName.EvalInt, 120.0);

            Fame = Utility.RandomMinMax(2500, 4000);
            Karma = Utility.RandomMinMax(-4000, -6000);

            VirtualArmor = 80;

            PackGold(650, 1150);
            PlateGloves glo = new PlateGloves {Hue = 0x1};
            PackItem(glo);

            Spellbook book = new Spellbook {Content = ulong.MaxValue, LootType = LootType.Regular};
            AddItem(book);
        }
예제 #5
0
        public Khalnga()
            : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Body = 0x190;
            Title = "the Bone Lord";

            SetStr(1254, 1381);
            SetDex(93, 135);
            SetInt(745, 810);

            SetHits(3000, 4500);

            SetDamage(30, 45);

            SetSkill(SkillName.Wrestling, 90.1, 100.0);
            SetSkill(SkillName.Tactics, 90.1, 100.0);
            SetSkill(SkillName.MagicResist, 90.1, 100.0);
            SetSkill(SkillName.Magery, 90.1, 100.0);
            SetSkill(SkillName.EvalInt, 100.0);
            SetSkill(SkillName.Meditation, 120.1, 130.0);

            VirtualArmor = 50;
            Fame = 10000;
            Karma = -10000;

            PlateHelm helm = new PlateHelm();
            helm.Hue = 1157;
            helm.Identified = true;
            AddItem(Immovable(helm));

            PlateArms arms = new PlateArms();
            arms.Hue = 1157;
            arms.Identified = true;
            AddItem(Immovable(arms));

            PlateLegs legs = new PlateLegs();
            legs.Hue = 1157;
            legs.Identified = true;
            AddItem(Immovable(legs));

            PlateGloves gloves = new PlateGloves();
            gloves.Hue = 1157;
            gloves.Identified = true;
            AddItem(Immovable(gloves));

            PlateChest chest = new PlateChest();
            chest.Hue = 1157;
            chest.Identified = true;
            AddItem(Immovable(chest));

            PlateGorget gorget = new PlateGorget();
            gorget.Hue = 1157;
            gorget.Identified = true;
            AddItem(Immovable(gorget));

            Spellbook spellbook = new Spellbook();
            spellbook.Hue = 1157;
            spellbook.Name = "red book of spells";
            AddItem(Immovable(spellbook));
        }
예제 #6
0
		public FrostElfShaman() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Title = "the Frost Elf";
			Hue = 1328;

			AddItem( new Robe() );
			AddItem( new Spellbook() );
			AddItem( new Sandals() );

			Female = Utility.RandomBool();
			if( Female )
			{
				Body = 0x191;
				Name = NameList.RandomName( "pixie" );
				AddItem( new LongHair( Serial.NewItem ) );
			}
			else
			{
				Body = 0x190;
				Name = NameList.RandomName( "golem controller" );
				AddItem( new KrisnaHair( Serial.NewItem ) );
			}

			SetStr( 126, 150 );
			SetDex( 96, 120 );
			SetInt( 151, 175 );

			SetHits( 150, 200 );

			SetDamage( 3, 9 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 30, 40 );
			SetResistance( ResistanceType.Fire, 25, 35 );
			SetResistance( ResistanceType.Cold, 35, 45 );
			SetResistance( ResistanceType.Poison, 5, 15 );
			SetResistance( ResistanceType.Energy, 15, 25 );

			SetSkill( SkillName.EvalInt, 95.1, 100.0 );
			SetSkill( SkillName.Magery, 95.1, 100.0 );
			SetSkill( SkillName.Meditation, 95.1, 100.0 );
			SetSkill( SkillName.MagicResist, 102.5, 125.0 );
			SetSkill( SkillName.Tactics, 65.0, 87.5 );
			SetSkill( SkillName.Wrestling, 65.0, 87.5 );

			Fame = Utility.RandomMinMax( 2500, 1500 );
			Karma = Utility.RandomMinMax( -5000, 2000 );

			VirtualArmor = 16;

            if (Utility.RandomDouble() <= 0.7)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
		public DemonScholar() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "a demonic scholar";
			Body = 400;
			BaseSoundID = 412;
			Hue = 1175;

			SetStr( 416, 505 );
			SetDex( 146, 165 );
			SetInt( 566, 655 );

			SetHits( 250, 303 );

			SetDamage( 11, 13 );

			SetSkill( SkillName.EvalInt, 90.1, 100.0 );
			SetSkill( SkillName.Magery, 90.1, 100.0 );
			SetSkill( SkillName.MagicResist, 150.5, 200.0 );
			SetSkill( SkillName.Tactics, 50.1, 70.0 );
			SetSkill( SkillName.Wrestling, 60.1, 80.0 );

			Fame = 18000;
			Karma = -18000;

			VirtualArmor = 50;

			Lantern hands = new Lantern();
			hands.Name = "latern of souls";
			hands.Hue = 1258;
			hands.Movable = false;
			AddItem( hands );

			Spellbook hands2 = new Spellbook();
			hands2.Name = "ancient spellbook";
			hands2.Hue = 1158;
			hands2.Movable = false;
			hands2.Content = ulong.MaxValue;
			AddItem( hands2 );

			HoodedShroudOfShadows chest = new HoodedShroudOfShadows();
			chest.Name = "hooded shroud";
			chest.Hue = 1175;
			chest.Movable = false;
			AddItem( chest );

			Sandals feet = new Sandals();
			feet.Name = "sandals";
			feet.Hue = 1258;
			feet.Movable = false;
			AddItem( feet );

			PackReg( 30 );

			if ( Utility.Random( 2500 ) == 0 ) PackItem( new DemonSandals() );
			if ( Utility.Random( 2500 ) == 0 ) PackItem( new DemonDoublet() );
			if ( Utility.Random( 2500 ) == 0 ) PackItem( new DemonWizardsHat() );
			if ( Utility.Random( 2500 ) == 0 ) PackItem( new DemonHalfApron() );
			if ( Utility.Random( 2500 ) == 0 ) PackItem( new DemonSkirt() );
		}
예제 #8
0
		public Spellbook FullSpellbook()
		{
			Spellbook book = new Spellbook();
			book.Movable = false;
			book.LootType = LootType.Blessed;
			book.Content =0xFFFFFFFFFFFFFFFF;
			return book;
		}
예제 #9
0
		public VampireCount() : base( AIType.AI_SphereMelee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Vampire Count";
			Body = 0x0190;
			Hue = 0x497;

			SetStr( 50 );
			SetDex( 50 );
			SetInt( 50 );

			SetHits( 50 );
			SetStam( 50 );

			SetDamage( 10, 20 );

			SetSkill( SkillName.Poisoning, 90.0, 100.0 );
			SetSkill( SkillName.Tactics, 100.0 );
			SetSkill( SkillName.MagicResist, 65.0, 88.0 );
			SetSkill( SkillName.Parry, 75.0, 98.0 );
			SetSkill( SkillName.Wrestling, 67.0, 90.0 );
			SetSkill( SkillName.DetectHidden, 90.0, 100.0 );
			SetSkill( SkillName.Swords, 150.0 );
            SetSkill(SkillName.EvalInt, 95.0, 100.0);

			Fame = 0;

			VirtualArmor = 10;

			//Here we add his loot. 
			//PackGold(1000, 1500);
			//PackItem(new VampireHeart());
			//PackItem(new VampireBone(10));

            HairItemID = 8252;
            HairHue = Utility.RandomHairHue();

			PlateGloves glo = new PlateGloves();
			glo.Hue = 0x1;
			PackItem( glo );
			Item temp = new Doublet( 0x1 );
			temp.Movable = false;
			AddItem( temp );
			temp = new ThighBoots( 0x1 );
			temp.Movable = false;
			AddItem( temp );
			temp = new FancyShirt( 0x0496 );
			temp.Movable = false;
			AddItem( temp );
			temp = new ShortPants( 0x1 );
			temp.Movable = false;
			AddItem( temp );
			temp = null;

            Spellbook book = new Spellbook();
            book.Content = ulong.MaxValue;
            book.LootType = LootType.Regular;
            AddItem(book);
		}
예제 #10
0
 public override void GiveEquipment()
 {
     var spellbook = new Spellbook();
     spellbook.Name = "a book of chaos";
     spellbook.Hue = 1920;
     spellbook.Movable = false;
     AddItem(Immovable(spellbook));
     base.GiveEquipment();
 }
예제 #11
0
        public LysanderGathenwale()
            : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Title = "the Cursed";

            Hue = 0x8838;
            Body = 0x190;
            Name = "Lysander Gathenwale";

            AddItem( new Boots( 0x599 ) );
            AddItem( new Cloak( 0x96F ) );

            Spellbook spellbook = new Spellbook();
            RingmailGloves gloves = new RingmailGloves();
            StuddedChest chest = new StuddedChest();
            PlateArms arms = new PlateArms();

            spellbook.Hue = 0x599;
            gloves.Hue = 0x599;
            chest.Hue = 0x96F;
            arms.Hue = 0x599;

            AddItem( spellbook );
            AddItem( gloves );
            AddItem( chest );
            AddItem( arms );

            SetStr( 111, 120 );
            SetDex( 71, 80 );
            SetInt( 121, 130 );

            SetHits( 180, 207 );
            SetMana( 227, 265 );

            SetDamage( 5, 13 );

            SetResistance( ResistanceType.Physical, 35, 45 );
            SetResistance( ResistanceType.Fire, 25, 30 );
            SetResistance( ResistanceType.Cold, 50, 60 );
            SetResistance( ResistanceType.Poison, 25, 35 );
            SetResistance( ResistanceType.Energy, 25, 35 );

            SetSkill( SkillName.UnarmedFighting, 80.1, 90.0 );
            SetSkill( SkillName.Tactics, 90.1, 100.0 );
            SetSkill( SkillName.MagicResist, 80.1, 90.0 );
            SetSkill( SkillName.Magery, 90.1, 100.0 );
            SetSkill( SkillName.Invocation, 95.1, 100.0 );
            SetSkill( SkillName.Meditation, 90.1, 100.0 );

            Fame = 5000;
            Karma = -10000;

            Item reags = Loot.RandomReagent();
            reags.Amount = 30;
            PackItem( reags );
        }
예제 #12
0
		public LysanderGathenwale() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Title = "the Cursed";

			Hue = 0x8838;
			Body = 0x190;

			AddItem( Immovable( new Boots( 0x599 )) );
			AddItem( Immovable(new Cloak( 0x96F )) );

			Spellbook spellbook = new Spellbook();
			spellbook.LootType = LootType.Blessed;
			RingmailGloves gloves = new RingmailGloves();
			StuddedChest chest = new StuddedChest();
			PlateArms arms = new PlateArms();

			spellbook.Hue = 0x599;
			gloves.Hue = 0x599;
			chest.Hue = 0x96F;
			arms.Hue = 0x599;

			AddItem( Immovable(spellbook) );
			AddItem( Immovable( gloves) );
			AddItem( Immovable(chest) );
			AddItem( Immovable(arms) );

			SetStr( 111, 120 );
			SetDex( 71, 80 );
			SetInt( 121, 130 );

			SetHits( 180, 207 );
			SetMana( 227, 265 );

			SetDamage( 5, 13 );
			

			SetSkill( SkillName.Wrestling, 80.1, 90.0 );
			SetSkill( SkillName.Tactics, 90.1, 100.0 );
			SetSkill( SkillName.MagicResist, 80.1, 90.0 );
			SetSkill( SkillName.Magery, 90.1, 100.0 );
			SetSkill( SkillName.EvalInt, 95.1, 100.0 );
			SetSkill( SkillName.Meditation, 90.1, 100.0 );

			Fame = 5000;
			Karma = -10000;

			Item reags = Loot.RandomReagent();
			reags.Amount = 30;
			PackItem( reags );
		}
예제 #13
0
		public Imp() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Imp";
			Body = 74;
			BaseSoundID = 422;

			SetStr( 91, 115 );
			SetDex( 61, 80 );
			SetInt( 86, 98 );

			SetHits( 55, 70 );

			SetDamage( 10, 14 );

			SetDamageType( ResistanceType.Physical, 0 );
			SetDamageType( ResistanceType.Fire, 50 );
			SetDamageType( ResistanceType.Poison, 50 );

			SetResistance( ResistanceType.Physical, 25, 35 );
			SetResistance( ResistanceType.Fire, 40, 50 );
			SetResistance( ResistanceType.Cold, 20, 30 );
			SetResistance( ResistanceType.Poison, 30, 40 );
			SetResistance( ResistanceType.Energy, 30, 40 );

			SetSkill( SkillName.EvalInt, 20.1, 40.0 );
			SetSkill( SkillName.Magery, 85.1, 90.0 );
			SetSkill( SkillName.MagicResist, 39.1, 59.0 );
			SetSkill( SkillName.Tactics, 42.1, 50.0 );
			SetSkill( SkillName.Wrestling, 40.1, 44.0 );

			Fame = 2500;

			VirtualArmor = 30;

			Tamable = true;
			ControlSlots = 2;
			MinTameSkill = 83.1;

            if (Core.ML && Utility.RandomDouble() < 0.09)
                PackItem(Engines.Plants.Seed.RandomPeculiarSeed(2));

            if (Utility.RandomDouble() <= 0.2)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #14
0
		public EvilMageLord() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 
		{ 
			Name = NameList.RandomName( "evil mage lord" );
			Body = Utility.RandomList( 125, 126 );

			PackItem( new Robe( Utility.RandomMetalHue() ) ); 
			PackItem( new WizardsHat( Utility.RandomMetalHue() ) ); 

			SetStr( 81, 105 );
			SetDex( 191, 215 );
			SetInt( 126, 150 );

			SetHits( 49, 63 );

			SetDamage( 5, 10 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 35, 40 );
			SetResistance( ResistanceType.Fire, 30, 40 );
			SetResistance( ResistanceType.Cold, 30, 40 );
			SetResistance( ResistanceType.Poison, 30, 40 );
			SetResistance( ResistanceType.Energy, 30, 40 );

			SetSkill( SkillName.EvalInt, 80.2, 100.0 );
			SetSkill( SkillName.Magery, 95.1, 100.0 );
			SetSkill( SkillName.Meditation, 27.5, 50.0 );
			SetSkill( SkillName.MagicResist, 77.5, 100.0 );
			SetSkill( SkillName.Tactics, 65.0, 87.5 );
			SetSkill( SkillName.Wrestling, 20.3, 80.0 );

			Fame = 10500;
			Karma = -7000;

			VirtualArmor = 16;
			PackReg( 23 );
			if ( Utility.RandomBool() )
				PackItem( new Shoes() );
			else
				PackItem( new Sandals() );

            if (Utility.RandomDouble() <= 0.3)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #15
0
		public Lich() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Lich";
			Body = 24;
			BaseSoundID = 0x3E9;

			SetStr( 171, 200 );
			SetDex( 126, 145 );
			SetInt( 276, 305 );

			SetHits( 103, 120 );

			SetDamage( 24, 26 );

			SetDamageType( ResistanceType.Physical, 10 );
			SetDamageType( ResistanceType.Cold, 40 );
			SetDamageType( ResistanceType.Energy, 50 );

			SetResistance( ResistanceType.Physical, 40, 60 );
			SetResistance( ResistanceType.Fire, 20, 30 );
			SetResistance( ResistanceType.Cold, 50, 60 );
			SetResistance( ResistanceType.Poison, 55, 65 );
			SetResistance( ResistanceType.Energy, 40, 50 );

            //SetSkill(SkillName.Necromancy, 89, 99.1);
            //SetSkill(SkillName.SpiritSpeak, 90.0, 99.0);

            SetSkill(SkillName.EvalInt, 100.0);
			SetSkill( SkillName.Magery, 70.1, 80.0 );
			SetSkill( SkillName.Meditation, 85.1, 95.0 );
			SetSkill( SkillName.MagicResist, 80.1, 100.0 );
			SetSkill( SkillName.Tactics, 70.1, 90.0 );

			Fame = 8000;
			Karma = -4000;

			VirtualArmor = 50;
			PackItem( new GnarledStaff() );
			PackNecroReg( 17, 24 );

            if (Utility.RandomDouble() <= 0.3)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #16
0
		public override void InitOutfit()
		{
			FloppyHat head = new FloppyHat();
			head.Hue = 1175;
			AddItem( head );
			PlainDress chest = new PlainDress();
			chest.Hue = 1175;
			AddItem( chest );
			AddItem( new GoldNecklace() );
			Spellbook lefthand = new Spellbook();
			lefthand.Hue = 1217;
			AddItem( lefthand );
			Sandals feet = new Sandals();
			feet.Hue = 1175;
			AddItem( feet );
		}
예제 #17
0
		public OrcishMage () : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Orcish Mage";
			Body = 140;
			BaseSoundID = 0x45A;

			SetStr( 116, 150 );
			SetDex( 91, 115 );
			SetInt( 161, 180 );

			SetHits( 70, 90 );

			SetDamage( 4, 14 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 25, 35 );
			SetResistance( ResistanceType.Fire, 30, 40 );
			SetResistance( ResistanceType.Cold, 20, 30 );
			SetResistance( ResistanceType.Poison, 30, 40 );
			SetResistance( ResistanceType.Energy, 30, 40 );

			SetSkill( SkillName.EvalInt, 60.1, 69.5 );
			SetSkill( SkillName.Magery, 60.1, 69.5 );
			SetSkill( SkillName.MagicResist, 60.1, 75.0 );
			SetSkill( SkillName.Tactics, 50.1, 65.0 );
			SetSkill( SkillName.Wrestling, 40.1, 50.0 );

			Fame = 3000;

			VirtualArmor = 30;


			PackReg( 6 );

			if ( 0.05 > Utility.RandomDouble() )
				PackItem( new OrcishKinMask() );

            if (Utility.RandomDouble() <= 0.7)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }

		}
예제 #18
0
		public RatmanMage() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = NameList.RandomName( "ratman" );
			Body = 0x8F;
			BaseSoundID = 437;

			SetStr( 146, 180 );
			SetDex( 101, 130 );
			SetInt( 186, 200 );

			SetHits( 88, 108 );

			SetDamage( 7, 14 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 40, 45 );
			SetResistance( ResistanceType.Fire, 10, 20 );
			SetResistance( ResistanceType.Cold, 10, 20 );
			SetResistance( ResistanceType.Poison, 10, 20 );
			SetResistance( ResistanceType.Energy, 10, 20 );

			SetSkill( SkillName.EvalInt, 70.1, 75.0 );
			SetSkill( SkillName.Magery, 70.1, 75.0 );
			SetSkill( SkillName.MagicResist, 65.1, 90.0 );
			SetSkill( SkillName.Tactics, 50.1, 75.0 );
			SetSkill( SkillName.Wrestling, 50.1, 75.0 );

			Fame = 7500;

			VirtualArmor = 44;

			PackReg( 6 );

			if ( 0.02 > Utility.RandomDouble() )
				PackStatue();

            if (Utility.RandomDouble() <= 0.7)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #19
0
		public AncientLich() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = NameList.RandomName( "Ancient Lich" );
			Body = 78;
			BaseSoundID = 412;

			SetStr( 216, 305 );
			SetDex( 96, 115 );
			SetInt( 966, 1045 );

			SetHits( 560, 595 );

			SetDamage( 15, 27 );

			SetDamageType( ResistanceType.Physical, 20 );
			SetDamageType( ResistanceType.Cold, 40 );
			SetDamageType( ResistanceType.Energy, 40 );

			SetResistance( ResistanceType.Physical, 55, 65 );
			SetResistance( ResistanceType.Fire, 25, 30 );
			SetResistance( ResistanceType.Cold, 50, 60 );
			SetResistance( ResistanceType.Poison, 50, 60 );
			SetResistance( ResistanceType.Energy, 25, 30 );

			SetSkill( SkillName.EvalInt, 120.1, 130.0 );
			SetSkill( SkillName.Magery, 120.1, 130.0 );
			SetSkill( SkillName.Meditation, 100.1, 101.0 );
			SetSkill( SkillName.Poisoning, 100.1, 101.0 );
			SetSkill( SkillName.MagicResist, 175.2, 200.0 );
			SetSkill( SkillName.Tactics, 90.1, 100.0 );
			SetSkill( SkillName.Wrestling, 75.1, 100.0 );

			Fame = 23000;
			Karma = -16000;

			VirtualArmor = 60;
			PackNecroReg( 30, 275 );

            Spellbook book = new Spellbook();
            book.Content = ulong.MaxValue;
            book.LootType = LootType.Regular;
            AddItem(book);

		}
예제 #20
0
		public Balron () : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = NameList.RandomName( "Balron" );
			Body = 40;
			BaseSoundID = 357;

			SetStr( 986, 1185 );
			SetDex( 177, 255 );
			SetInt( 151, 250 );

			SetHits( 592, 711 );

			SetDamage( 22, 29 );

			SetDamageType( ResistanceType.Physical, 50 );
			SetDamageType( ResistanceType.Fire, 25 );
			SetDamageType( ResistanceType.Energy, 25 );

			SetResistance( ResistanceType.Physical, 65, 80 );
			SetResistance( ResistanceType.Fire, 60, 80 );
			SetResistance( ResistanceType.Cold, 50, 60 );
			SetResistance( ResistanceType.Poison, 100 );
			SetResistance( ResistanceType.Energy, 40, 50 );

			SetSkill( SkillName.Anatomy, 25.1, 50.0 );
			SetSkill( SkillName.EvalInt, 90.1, 100.0 );
			SetSkill( SkillName.Magery, 95.5, 100.0 );
			SetSkill( SkillName.Meditation, 25.1, 50.0 );
			SetSkill( SkillName.MagicResist, 100.5, 150.0 );
			SetSkill( SkillName.Tactics, 90.1, 100.0 );
			SetSkill( SkillName.Wrestling, 90.1, 100.0 );

			Fame = 24000;
			Karma = -18000;

			VirtualArmor = 90;

			PackItem( new Longsword() );

            Spellbook book = new Spellbook();
            book.Content = ulong.MaxValue;
            book.LootType = LootType.Regular;
            AddItem(book);
		}
예제 #21
0
		public Gazer () : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Gazer";
			Body = 22;
			BaseSoundID = 377;

			SetStr( 96, 125 );
			SetDex( 86, 105 );
			SetInt( 141, 155 );

			SetHits( 58, 75 );

			SetDamage( 5, 10 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 35, 40 );
			SetResistance( ResistanceType.Fire, 40, 50 );
			SetResistance( ResistanceType.Cold, 20, 30 );
			SetResistance( ResistanceType.Poison, 10, 20 );
			SetResistance( ResistanceType.Energy, 20, 30 );

			SetSkill( SkillName.EvalInt, 50.1, 65.0 );
			SetSkill( SkillName.Magery, 50.1, 65.0 );
			SetSkill( SkillName.MagicResist, 60.1, 75.0 );
			SetSkill( SkillName.Tactics, 50.1, 70.0 );
			SetSkill( SkillName.Wrestling, 50.1, 70.0 );

			Fame = 3500;
			Karma = -3500;

			VirtualArmor = 36;

			PackItem( new Nightshade( 4 ) );

            if (Utility.RandomDouble() <= 0.7)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #22
0
		public EvilMage() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 
		{ 
			Name = NameList.RandomName( "evil mage" );
			Title = "the evil mage";
			Body = 124;

			SetStr( 81, 105 );
			SetDex( 91, 115 );
			SetInt( 96, 110 );

			SetHits( 49, 63 );

			SetDamage( 5, 10 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 15, 20 );
			SetResistance( ResistanceType.Fire, 5, 10 );
			SetResistance( ResistanceType.Poison, 5, 10 );
			SetResistance( ResistanceType.Energy, 5, 10 );

			SetSkill( SkillName.EvalInt, 75.1, 90.0 );
			SetSkill( SkillName.Magery, 75.1, 90.0 );
			SetSkill( SkillName.MagicResist, 75.0, 97.5 );
			SetSkill( SkillName.Tactics, 65.0, 87.5 );
			SetSkill( SkillName.Wrestling, 20.2, 60.0 );

			Fame = 2500;

			VirtualArmor = 16;
			PackReg( 6 );
			PackItem( new Robe( Utility.RandomNeutralHue() ) ); // TODO: Proper hue
			PackItem( new Sandals() );

            if (Utility.RandomDouble() <= 0.3)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #23
0
		public Wraith() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Wraith";
			Body = 26;
			Hue = 0x4001;
			BaseSoundID = 0x482;

			SetStr( 76, 100 );
			SetDex( 76, 95 );
			SetInt( 36, 55 );

			SetHits( 46, 60 );

			SetDamage( 7, 11 );

			SetDamageType( ResistanceType.Physical, 50 );
			SetDamageType( ResistanceType.Cold, 50 );

			SetResistance( ResistanceType.Physical, 25, 30 );
			SetResistance( ResistanceType.Cold, 15, 25 );
			SetResistance( ResistanceType.Poison, 10, 20 );

			SetSkill( SkillName.EvalInt, 55.1, 65.0 );
			SetSkill( SkillName.Magery, 55.1, 65.0 );
			SetSkill( SkillName.MagicResist, 55.1, 70.0 );
			SetSkill( SkillName.Tactics, 45.1, 60.0 );
			SetSkill( SkillName.Wrestling, 45.1, 55.0 );

			Fame = 4000;

			VirtualArmor = 28;

			PackReg( 10 );

            if (Utility.RandomDouble() <= 0.3)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #24
0
		public FireGargoyle() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = NameList.RandomName( "Fire Gargoyle" );
			Body = 130;
			BaseSoundID = 0x174;

			SetStr( 351, 400 );
			SetDex( 126, 145 );
			SetInt( 226, 250 );

			SetHits( 211, 240 );

			SetDamage( 7, 14 );

			SetDamageType( ResistanceType.Physical, 20 );
			SetDamageType( ResistanceType.Fire, 80 );

			SetResistance( ResistanceType.Physical, 30, 35 );
			SetResistance( ResistanceType.Fire, 50, 60 );
			SetResistance( ResistanceType.Poison, 20, 30 );
			SetResistance( ResistanceType.Energy, 20, 30 );

			SetSkill( SkillName.Anatomy, 75.1, 85.0 );
			SetSkill( SkillName.EvalInt, 90.1, 105.0 );
			SetSkill( SkillName.Magery, 90.1, 105.0 );
			SetSkill( SkillName.Meditation, 90.1, 105.0 );
			SetSkill( SkillName.MagicResist, 90.1, 105.0 );
			SetSkill( SkillName.Tactics, 80.1, 100.0 );
			SetSkill( SkillName.Wrestling, 40.1, 80.0 );

			Fame = 3500;

			VirtualArmor = 32;

            if (Utility.RandomDouble() <= 0.7)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }
		}
예제 #25
0
		public Gargoyle() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Gargoyle";
			Body = 4;
			BaseSoundID = 372;

			SetStr( 146, 175 );
			SetDex( 76, 95 );
			SetInt( 81, 105 );

			SetHits( 88, 105 );

			SetDamage( 7, 14 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 30, 35 );
			SetResistance( ResistanceType.Fire, 25, 35 );
			SetResistance( ResistanceType.Cold, 5, 10 );
			SetResistance( ResistanceType.Poison, 15, 25 );

			SetSkill( SkillName.EvalInt, 70.1, 85.0 );
			SetSkill( SkillName.Magery, 70.1, 85.0 );
			SetSkill( SkillName.MagicResist, 70.1, 85.0 );
			SetSkill( SkillName.Tactics, 50.1, 70.0 );
			SetSkill( SkillName.Wrestling, 40.1, 80.0 );

			Fame = 3500;

			VirtualArmor = 32;

            if (Utility.RandomDouble() <= 0.7)
            {
                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                book.LootType = LootType.Regular;
                AddItem(book);
            }

			//if ( 0.025 > Utility.RandomDouble() )
			//	PackItem( new GargoylesPickaxe() );
		}
예제 #26
0
		public RuinedWizard() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = NameList.RandomName( "BacktrolMale" ) + ", the ruined wizard";
			BodyValue = 985;
			BaseSoundID = 0;
			
			SetStr( 400, 500 );
			SetDex( 145, 165 );
			SetInt( 550, 650 );
			
			SetHits( 250, 300 );
			
			SetDamage( 8, 10 );
			SetDamageType( ResistanceType.Physical, 0 );
			SetDamageType( ResistanceType.Fire, 20 );
			SetDamageType( ResistanceType.Cold, 20 );
			SetDamageType( ResistanceType.Energy, 60 );
			
			SetResistance( ResistanceType.Physical, 40, 50 );
			SetResistance( ResistanceType.Fire, 30, 40 );
			SetResistance( ResistanceType.Cold, 50, 60 );
			SetResistance( ResistanceType.Poison, 50, 60 );
			SetResistance( ResistanceType.Energy, 40, 50 );
			
			SetSkill( SkillName.Meditation, 65, 75 );
			SetSkill( SkillName.EvalInt, 90, 105 );
			SetSkill( SkillName.Magery, 85, 100 );
			SetSkill( SkillName.MagicResist, 100, 120 );
			SetSkill( SkillName.Tactics, 50, 70 );
			SetSkill( SkillName.Wrestling, 60, 75 );
			
			Fame = 12000;
			Karma = -12000;
			
			VirtualArmor = 35;
			
			Spellbook book = new Spellbook();
			book.Content = 74813425443667967;
			book.LootType = LootType.Cursed;
			PackItem( book );
		}
예제 #27
0
        public RoyalArchivist()
            : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "Llewellyn";
            Body = 400;
            Hue = 33777;
            SpecialTitle = "Royal Archivist";
            TitleHue = 1926;

            Blessed = true;

            CantWalk = true;

            SpeechHue = YellHue = 34;

            foreach (SkillName skill in _Skills)
            {
                SetSkill(skill, 80.0, 110);
            }

            VirtualArmor = 36;

            NotesAquired = 0;

            NotesGiven = new Dictionary<PlayerMobile, int>();

            AddItem(new Robe(Utility.RandomYellowHue()));
            AddItem(new Sandals(Utility.RandomYellowHue()));

            var book = new Spellbook();
            book.Name = "Tome of Chaos";
            book.Hue = 1194;
            book.LootType = LootType.Newbied;
            AddItem(Immovable(book));

            HairItemID = 8265;
            FacialHairItemID = 8254;

            HairHue = 2577;
            FacialHairHue = 2577;
        }
예제 #28
0
		public ArcaneDaemon() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Arcane Daemon";
			Body = 0x310;
			BaseSoundID = 0x47D;

			SetStr( 131, 150 );
			SetDex( 126, 145 );
			SetInt( 301, 350 );

			SetHits( 101, 115 );

			SetDamage( 12, 16 );

			SetDamageType( ResistanceType.Physical, 80 );
			SetDamageType( ResistanceType.Fire, 20 );

			SetResistance( ResistanceType.Physical, 50, 60 );
			SetResistance( ResistanceType.Fire, 70, 80 );
			SetResistance( ResistanceType.Cold, 10, 20 );
			SetResistance( ResistanceType.Poison, 50, 60 );
			SetResistance( ResistanceType.Energy, 30, 40 );

			SetSkill( SkillName.MagicResist, 85.1, 95.0 );
			SetSkill( SkillName.Tactics, 70.1, 80.0 );
			SetSkill( SkillName.Wrestling, 60.1, 80.0 );
			SetSkill( SkillName.Magery, 80.1, 90.0 );
			SetSkill( SkillName.EvalInt, 70.1, 80.0 );
			SetSkill( SkillName.Meditation, 70.1, 80.0 );

			Fame = 7000;
			Karma = -10000;

			VirtualArmor = 55;

            Spellbook book = new Spellbook();
            book.Content = ulong.MaxValue;
            book.LootType = LootType.Regular;
            AddItem(book);
		}
예제 #29
0
		public ReactiveBalron() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = NameList.RandomName( "balron" );
			Body = 40;
			BaseSoundID = 357;
			Hue = 1957;
			SetStr( 1000, 1250 );
			SetDex( 255, 300 );
			SetInt( 151, 250 );

			SetHits( 1100, 1250 );
			SetStam( 255, 300 );
			SetMana( 400 );

			SetDamage( 45, 60 );

			SetDamageType( ResistanceType.Physical, 50 );
			SetDamageType( ResistanceType.Fire, 25 );
			SetDamageType( ResistanceType.Energy, 25 );

			SetSkill( SkillName.Parry, 120.0 );
			SetSkill( SkillName.Magery, 120.0 );
			SetSkill( SkillName.Meditation, 70.0 );
			SetSkill( SkillName.MagicResist, 150.0 );
			SetSkill( SkillName.Tactics, 150.0 );
			SetSkill( SkillName.Wrestling, 150.0 );

			Fame = 24000;
			Karma = -24000;

			VirtualArmor = 90;

			PackItem( new Longsword() );
			//PackItem(new DaemonsBlood(8));

            Spellbook book = new Spellbook();
            book.Content = ulong.MaxValue;
            book.LootType = LootType.Regular;
            AddItem(book);
		}
예제 #30
0
		public static bool ValidateSpellbook( Spellbook book, int spellID, SpellbookType type )
		{
			return ( book.SpellbookType == type && ( spellID == -1 || book.HasSpell( spellID ) ) );
		}
예제 #31
0
            protected override void OnTarget(Mobile from, object target)
            {
                Item item = target as Item;
                Type type = item.GetType();

                if (item is BaseArmor || item is BaseWeapon || item is BaseHat || item is BaseJewel || item is BaseTalisman || item is BaseQuiver || item is Spellbook)
                {
                    if (Runescribing.GetProps(item) >= 7)
                    {
                        from.SendMessage("This item cannot be enhanced any further");
                    }
                    else if (item.ChantSlots >= 3)
                    {
                        from.SendMessage("This item cannot handle any more enhancments.");
                    }
                    else if (Runescribing.CheckBlacklist(type) == true)
                    {
                        from.SendMessage("This item cannot be enhanced.");
                    }
                    else
                    {
                        int value = m_Rune.BaseAmount;
                        int max   = m_Rune.MaxAmount;

                        if (item is BaseArmor)
                        {
                            BaseArmor i = item as BaseArmor;

                            if (i.Attributes.LowerManaCost + value <= max)
                            {
                                i.Attributes.LowerManaCost += value;
                            }
                            else
                            {
                                i.Attributes.LowerManaCost = max;
                            }
                        }

                        if (item is BaseWeapon)
                        {
                            BaseWeapon i = item as BaseWeapon;

                            if (i.Attributes.LowerManaCost + value <= max)
                            {
                                i.Attributes.LowerManaCost += value;
                            }
                            else
                            {
                                i.Attributes.LowerManaCost = max;
                            }
                        }

                        if (item is BaseHat)
                        {
                            BaseHat i = item as BaseHat;

                            if (i.Attributes.LowerManaCost + value <= max)
                            {
                                i.Attributes.LowerManaCost += value;
                            }
                            else
                            {
                                i.Attributes.LowerManaCost = max;
                            }
                        }

                        if (item is BaseJewel)
                        {
                            BaseJewel i = item as BaseJewel;

                            if (i.Attributes.LowerManaCost + value <= max)
                            {
                                i.Attributes.LowerManaCost += value;
                            }
                            else
                            {
                                i.Attributes.LowerManaCost = max;
                            }
                        }

                        if (item is BaseTalisman)
                        {
                            BaseTalisman i = item as BaseTalisman;

                            if (i.Attributes.LowerManaCost + value <= max)
                            {
                                i.Attributes.LowerManaCost += value;
                            }
                            else
                            {
                                i.Attributes.LowerManaCost = max;
                            }
                        }

                        if (item is BaseQuiver)
                        {
                            BaseQuiver i = item as BaseQuiver;

                            if (i.Attributes.LowerManaCost + value <= max)
                            {
                                i.Attributes.LowerManaCost += value;
                            }
                            else
                            {
                                i.Attributes.LowerManaCost = max;
                            }
                        }

                        if (item is Spellbook)
                        {
                            Spellbook i = item as Spellbook;

                            if (i.Attributes.LowerManaCost + value <= max)
                            {
                                i.Attributes.LowerManaCost += value;
                            }
                            else
                            {
                                i.Attributes.LowerManaCost = max;
                            }
                        }

                        item.ChantSlots += 1;
                        m_Rune.Delete();
                    }
                }
                else
                {
                    from.SendMessage("You cannot use this enhancement on that.");
                }
            }
예제 #32
0
 public static void ApplyAttributesTo(Spellbook spellbook, int attributeCount, int min, int max)
 {
     ApplyAttributesTo(spellbook, false, 0, attributeCount, min, max);
 }
예제 #33
0
        public static void ApplyAttributesTo(Spellbook spellbook, bool isRunicTool, int luckChance, int attributeCount, int min, int max)
        {
            m_IsRunicTool = isRunicTool;
            m_LuckChance  = luckChance;

            AosAttributes   primary = spellbook.Attributes;
            AosSkillBonuses skills  = spellbook.SkillBonuses;

            m_Props.SetAll(false);
            m_Props.Set(0, true); // no lower stat requirements for weapons

            for (int i = 0; i < attributeCount; ++i)
            {
                int random = GetUniqueRandom(16);

                if (random == -1)
                {
                    break;
                }

                switch (random)
                {
                case  0:
                case  1:
                case  2:
                case  3:
                {
                    ApplyAttribute(primary, min, max, AosAttribute.BonusInt, 1, 8);

                    for (int j = 0; j < 4; ++j)
                    {
                        m_Props.Set(j, true);
                    }

                    break;
                }

                case  4: ApplyAttribute(primary, min, max, AosAttribute.BonusMana, 1, 8); break;

                case  5: ApplyAttribute(primary, min, max, AosAttribute.CastSpeed, 1, 1); break;

                case  6: ApplyAttribute(primary, min, max, AosAttribute.CastRecovery, 1, 3); break;

                case  7: ApplyAttribute(primary, min, max, AosAttribute.SpellDamage, 1, 12); break;

                case  8: ApplySkillBonus(skills, min, max, 0, 1, 15); break;

                case  9: ApplySkillBonus(skills, min, max, 1, 1, 15); break;

                case 10: ApplySkillBonus(skills, min, max, 2, 1, 15); break;

                case 11: ApplySkillBonus(skills, min, max, 3, 1, 15); break;

                case 12: ApplyAttribute(primary, min, max, AosAttribute.LowerRegCost, 1, 20); break;

                case 13: ApplyAttribute(primary, min, max, AosAttribute.LowerManaCost, 1, 8); break;

                case 14: ApplyAttribute(primary, min, max, AosAttribute.RegenMana, 1, 2); break;

                case 15: spellbook.Slayer = GetRandomSlayer(); break;
                }
            }
        }
예제 #34
0
 public static bool ValidateSpellbook(Spellbook book, int spellID, SpellbookType type)
 {
     return(book.SpellbookType == type && (spellID == -1 || book.HasSpell(spellID)));
 }
예제 #35
0
 public SlayerSelectEntry(Mobile from, Spellbook item) : base(5089, -1)
 {
     m_From = from;
     m_Item = item;
 }
예제 #36
0
            public void GoToPrison()
            {
                try
                {
                    if (m_Player == null || m_Player.Deleted)
                    {
                        return;
                    }

                    Account acct = m_Player.Account as Account;

                    // stable the players pets
                    StablePets(m_Staff, m_Player);

                    // drop holding
                    Item held = m_Player.Holding;
                    if (held != null)
                    {
                        held.ClearBounce();
                        if (m_Player.Backpack != null)
                        {
                            m_Player.Backpack.DropItem(held);
                        }
                    }
                    m_Player.Holding = null;

                    // move their items to the bank, overload if needed
                    Backpack  bag   = new Backpack();
                    ArrayList equip = new ArrayList(m_Player.Items);

                    if (m_Player.Backpack != null)
                    {
                        // count clothing items
                        int WornCount = 0;
                        foreach (Item i in equip)
                        {
                            if (Moongate.RestrictedItem(m_Player, i) == false)
                            {
                                continue;                                       // not clothes
                            }
                            else
                            {
                                WornCount++;
                            }
                        }

                        // Unequip any items being worn
                        foreach (Item i in equip)
                        {
                            if (Moongate.RestrictedItem(m_Player, i) == false)
                            {
                                continue;
                            }
                            else
                            {
                                m_Player.Backpack.DropItem(i);
                            }
                        }

                        // Get a count of all items in the player's backpack.
                        ArrayList items = new ArrayList(m_Player.Backpack.Items);

                        // Drop our new bag in the player's bank
                        m_Player.BankBox.DropItem(bag);

                        // Run through all items in player's pack, move them to the bag we just dropped in the bank
                        foreach (Item i in items)
                        {
                            m_Player.Backpack.RemoveItem(i);
                            bag.DropItem(i);
                        }
                    }

                    // handle imprisoning of logged out players
                    m_Player.MoveToWorld(m_Location, Map.Felucca);
                    if (m_Player.NetState == null)
                    {
                        m_Player.LogoutLocation = m_Location;
                        m_Player.Map            = Map.Internal;
                    }

                    // make them an inmate
                    m_Player.Inmate = true;

                    // Give them a Deathrobe, Stinger dagger, and a blank spell book
                    if (m_Player.Alive)
                    {
                        Item robe = new Server.Items.DeathRobe();
                        if (!m_Player.EquipItem(robe))
                        {
                            robe.Delete();
                        }
                    }

                    Item aiStinger = new Server.Items.AIStinger();
                    if (!m_Player.AddToBackpack(aiStinger))
                    {
                        aiStinger.Delete();
                    }

                    Item spellbook = new Server.Items.Spellbook();
                    if (!m_Player.AddToBackpack(spellbook))
                    {
                        spellbook.Delete();
                    }

                    m_Player.ShortTermCriminalCounts += 3;                                                              // how long you will stay
                    m_Player.LongTermCriminalCounts++;                                                                  // how many times you've been to prison

                    if (!m_Player.Alive && m_Player.NetState != null)
                    {
                        m_Player.CloseGump(typeof(Server.Gumps.ResurrectGump));
                        m_Player.SendGump(new Server.Gumps.ResurrectGump(m_Player, Server.Gumps.ResurrectMessage.Healer));
                    }

                    int sentence = (int)m_Player.ShortTermCriminalCounts * 4;                     // decay time in prison is 4 hours per count
                    m_Player.SendMessage("You have been imprisoned for {0} hours.", sentence);
                    m_Staff.SendMessage("{0} has been imprisoned for {1} hours.", m_Player.Name, sentence);

                    LogHelper Logger = new LogHelper("Prison.log", false, true);

                    Logger.Log(LogType.Mobile, m_Player, string.Format("{0}:{1}:{2}:{3}",
                                                                       m_Staff.Name,
                                                                       m_Staff.Location,
                                                                       m_Comment,
                                                                       sentence));
                    Logger.Finish();

                    Commands.CommandLogging.WriteLine(m_Staff, "{0} imprisoned {1}(Username: {2}) for {4} hours with reason: {3}.",
                                                      m_Staff.Name, m_Player.Name, acct.Username, m_Comment, sentence);
                    acct.Comments.Add(new AccountComment(m_Staff.Name, DateTime.Now + "\nTag count: " + (acct.Comments.Count + 1) + "\nImprisoned for " + sentence + " hours. Reason: " + m_Comment));
                }
                catch (Exception ex)
                {
                    LogHelper.LogException(ex);
                }
            }