示例#1
0
		public HordeMinionFamiliar()
		{
			Name = "a horde minion";
			Body = 776;
			BaseSoundID = 0x39D;

			SetStr( 100 );
			SetDex( 110 );
			SetInt( 100 );

			SetHits( 70 );
			SetStam( 110 );
			SetMana( 0 );

			SetDamage( 5, 10 );



			SetSkill( SkillName.Wrestling, 70.1, 75.0 );
			SetSkill( SkillName.Tactics, 50.0 );

			ControlSlots = 1;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
示例#2
0
        public PackLlama()
            : base(AIType.AI_Animal, FightMode.Aggressor, 12, 1, 0.5, 0.75)
        {
            Body = 292;
            Name = "a pack llama";
            SetStr( 21, 49 );
            SetHits( 21, 49 );
            SetDex( 36, 55 );
            SetStam( 36, 55 );
            SetInt( 16, 30 );
            SetMana( 0 );
            Tamable = true;
            MinTameSkill = 50;
            BaseSoundID = 181;
            SetSkill( SkillName.Wrestling, 19.2, 29 );
            SetSkill( SkillName.Parry, 35.1, 45 );
            SetSkill( SkillName.Tactics, 19.2, 29 );
            SetSkill( SkillName.MagicResist, 15.1, 20 );

            VirtualArmor = 8;
            SetDamage( 2, 6 );

            Fame = 0;
            Karma = 200;

            Container pack = Backpack;

            if ( pack != null )
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            AddItem( pack );
        }
示例#3
0
		public EvilSara() : base( AIType.AI_Animal, FightMode.Closest, 10, 5, 0.175, 0.75 )
		{		
			Name = "Evil Sara";
			//Title = "";
			Body = 205;
			Hue = 0x481;
			BaseSoundID = 0;

			SetStr( 45, 55 );
			SetDex( 45, 55 );
			SetInt( 31, 43 );

			SetHits( 300, 400 );

			SetDamage( 15, 20 );

            SetDamageType(ResistanceType.Physical, 100);

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

            SetSkill(SkillName.MagicResist, 120.0);
            SetSkill(SkillName.Tactics, 120.0);
            SetSkill(SkillName.Wrestling, 120.0);

			Fame = 500;
			Karma = 100;

			VirtualArmor = 15;

			//Tamable = true;
			//ControlSlots = 1;
			//MinTameSkill = 11.1;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );

                       double gschance = Utility.RandomDouble();

                       //If the random generated number is higher then 70, or exacly 70, a staff will drop.
                       //Meaning: there's a 30% chance that one will drop.

                	if ( gschance <= 0.7 )
                	{                      
                       		Item EvilSaraPickaxe = new EvilSaraPickaxe();
                       		AddItem( EvilSaraPickaxe );
                	}
		}
示例#4
0
	public Squire(): base( AIType.AI_Melee, FightMode.Evil, 10, 1, 0.2, 0.4 )
	  {
		Name = GetName();
		Body = 401;
		BaseSoundID = 0x31B;
	     	Hue = Utility.RandomSkinHue();
		SpeechHue = 1170;
		CanHearGhosts = true;

		Summoned = false;
		SummonMaster = null;

		SetStr( 150 );
		SetDex( 110 );
		SetInt( 200 );
 		SetHits( 215 );
		SetStam( 110 );
		SetMana( 100 );

		SetDamage( 15, 45 );

		SetDamageType( ResistanceType.Physical, 100 );

		SetResistance( ResistanceType.Physical, 70, 90 );
		SetResistance( ResistanceType.Fire, 80, 85 );
		SetResistance( ResistanceType.Poison, 95, 100 );
		SetResistance( ResistanceType.Energy, 25, 30 );

		SetSkill( SkillName.Swords, 25.0, 35.0 );
		SetSkill( SkillName.Parry, 170.1, 175.0 );
		SetSkill( SkillName.Tactics, 150.0 );

		AddItem( new TwoPigTails( Utility.RandomHairHue() ) );
		AddItem( new NeonWep() );
		AddItem( new LongPants( Utility.RandomNeutralHue() ) );
                AddItem( new FancyShirt( Utility.RandomNeutralHue() ) );
                AddItem( new Boots( Utility.RandomNeutralHue() ) );
	        AddItem( new Cloak( Utility.RandomNeutralHue() ) );
	        AddItem( new BodySash( Utility.RandomNeutralHue() ) );

		new Horse().Rider = this;
		ControlSlots = 2;

		Container pack = Backpack;
		if ( pack != null )
		pack.Delete();
		pack = new StrongBackpack();
		pack.Movable = false;
		AddItem( pack );
	}
示例#5
0
		public PackWyrm () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Body = Core.AOS ? 180 : 49;
			Name = "a Pack Wyrm";
			BaseSoundID = 362;
			Hue = 1164;

			SetStr( 721, 760 );
			SetDex( 101, 130 );
			SetInt( 386, 425 );

			SetHits( 433, 456 );

			SetDamage( 17, 25 );

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

			SetResistance( ResistanceType.Physical, 55, 70 );
			SetResistance( ResistanceType.Fire, 15, 25 );
			SetResistance( ResistanceType.Cold, 80, 90 );
			SetResistance( ResistanceType.Poison, 40, 50 );
			SetResistance( ResistanceType.Energy, 40, 50 );

			SetSkill( SkillName.EvalInt, 99.1, 100.0 );
			SetSkill( SkillName.Magery, 99.1, 100.0 );
			SetSkill( SkillName.MagicResist, 99.1, 100.0 );
			SetSkill( SkillName.Tactics, 97.6, 100.0 );
			SetSkill( SkillName.Wrestling, 90.1, 100.0 );

			Fame = 18000;
			Karma = -18000;

			VirtualArmor = 64;

			Tamable = true;
			ControlSlots = 3;
			MinTameSkill = 96.3;


			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
示例#6
0
        public Beetle( string name )
            : base(name, 0x317, 0x3EBC, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            SetStr( 300 );
            SetDex( 100 );
            SetInt( 500 );

            SetHits( 200 );

            SetDamage( 7, 20 );

            SetDamageType( ResistanceType.Physical, 100 );

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

            SetSkill( SkillName.MagicResist, 80.0 );
            SetSkill( SkillName.Tactics, 100.0 );
            SetSkill( SkillName.Wrestling, 100.0 );

            Fame = 4000;
            Karma = -4000;

            Tamable = true;
            ControlSlots = 3;
            MinTameSkill = 29.1;

            Container pack = Backpack;

            if ( pack != null )
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            AddItem( pack );

            if ( 0.001 > Utility.RandomDouble() )
            {
                Name = "a shiny giant beetle";
                Hue = 94;

                this.Skills.Tactics.Cap = 120.0;
                this.Skills.Wrestling.Cap = 120.0;
            }
        }
示例#7
0
		public PackDragon () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "a Pack Dragon";
			Body = Utility.RandomList( 12, 59 );
			BaseSoundID = 362;

			SetStr( 796, 825 );
			SetDex( 86, 105 );
			SetInt( 436, 475 );

			SetHits( 478, 495 );

			SetDamage( 16, 22 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 55, 65 );
			SetResistance( ResistanceType.Fire, 60, 70 );
			SetResistance( ResistanceType.Cold, 30, 40 );
			SetResistance( ResistanceType.Poison, 25, 35 );
			SetResistance( ResistanceType.Energy, 35, 45 );

			SetSkill( SkillName.EvalInt, 30.1, 40.0 );
			SetSkill( SkillName.Magery, 30.1, 40.0 );
			SetSkill( SkillName.MagicResist, 99.1, 100.0 );
			SetSkill( SkillName.Tactics, 97.6, 100.0 );
			SetSkill( SkillName.Wrestling, 90.1, 92.5 );

			Fame = 15000;
			Karma = -15000;

			Hue = 1148;

			VirtualArmor = 60;

			Tamable = true;
			ControlSlots = 4;
			MinTameSkill = 93.9;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
		public rideablepackhorse( string name ) : base( name, 0x123, 0x3E9F, AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
		{
			BaseSoundID = 0xA8;

			SetStr( 44, 120 );
			SetDex( 36, 55 );
			SetInt( 6, 10 );

			SetHits( 61, 80 );
			SetStam( 81, 100 );
			SetMana( 0 );

			SetDamage( 5, 11 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 20, 25 );
			SetResistance( ResistanceType.Fire, 10, 15 );
			SetResistance( ResistanceType.Poison, 10, 15 );
			SetResistance( ResistanceType.Energy, 10, 15 );
			SetSkill( SkillName.MagicResist, 25.1, 30.0 );
			SetSkill( SkillName.Wrestling, 29.3, 44.0 );
			SetSkill( SkillName.Tactics, 29.3, 44.0 );

			
			Tamable = true; 
         		ControlSlots = 1; 
         		MinTameSkill = 0.0;
			Fame = 0;
			Karma = 200;

			VirtualArmor = 16;


			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
			PackItem( new Gold( 100 ) );
			//PackItem( new KevinD() );


		}
		public rideablepackllama( string name ) : base( name, 0x124, 0x3EA6, AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
		{
			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.Poison, 10, 15 );
			SetResistance( ResistanceType.Energy, 10, 15 );
			SetSkill( SkillName.MagicResist, 15.1, 20.0 );
			SetSkill( SkillName.Wrestling, 19.2, 29.0 );
			SetSkill( SkillName.Tactics, 19.2, 29.0 );

			
			Tamable = true; 
         		ControlSlots = 1; 
         		MinTameSkill = 0.0;
			Fame = 0;
			Karma = 200;

			VirtualArmor = 16;


			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
			PackItem( new Gold( 100 ) );
			//PackItem( new KevinD() );


		}
示例#10
0
        public PackLlama()
            : base(AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4)
        {
            Name = "a pack llama";
            Body = 292;
            BaseSoundID = 0x3F3;

            SetStr( 52, 80 );
            SetDex( 36, 55 );
            SetInt( 16, 30 );

            SetHits( 52, 80 );
            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 = 0;

            VirtualArmor = 16;

            Tamable = true;
            ControlSlots = 1;
            MinTameSkill = 50.0;

            Container pack = Backpack;

            if ( pack != null )
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            AddItem( pack );
        }
示例#11
0
        public PackHorse()
            : base(AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4)
        {
            this.Name = "a pack horse";
            this.Body = 291;
            this.BaseSoundID = 0xA8;

            this.SetStr(44, 120);
            this.SetDex(36, 55);
            this.SetInt(6, 10);

            this.SetHits(61, 80);
            this.SetStam(81, 100);
            this.SetMana(0);

            this.SetDamage(5, 11);

            this.SetDamageType(ResistanceType.Physical, 100);

            this.SetResistance(ResistanceType.Physical, 20, 25);
            this.SetResistance(ResistanceType.Fire, 10, 15);
            this.SetResistance(ResistanceType.Cold, 20, 25);
            this.SetResistance(ResistanceType.Poison, 10, 15);
            this.SetResistance(ResistanceType.Energy, 10, 15);

            this.SetSkill(SkillName.MagicResist, 25.1, 30.0);
            this.SetSkill(SkillName.Tactics, 29.3, 44.0);
            this.SetSkill(SkillName.Wrestling, 29.3, 44.0);

            this.Fame = 0;
            this.Karma = 200;

            this.VirtualArmor = 16;

            this.Tamable = true;
            this.ControlSlots = 1;
            this.MinTameSkill = 11.1;

            Container pack = this.Backpack;

            if (pack != null)
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            this.AddItem(pack);
        }
示例#12
0
		private static void AddBackpack( Mobile m )
		{
			Container pack = m.Backpack;

			if ( pack == null )
			{
				pack = new StrongBackpack();
				pack.Movable = false;

				m.AddItem( pack );
			}

            PackItem(new Gold(Utility.Random(999, 1111)));
            PackItem(new Dagger());
            PackItem(new Lantern());
            PackItem(new RedBook("Journal", m.Name, 20, true));
            PackItem(new BreadLoaf(5));
            PackItem(new Pitcher(BeverageType.Water));
            // PackItem(new Brush());

            /* Checks if already has a house. If not, we give him a deed.
            Account a = m.Account as Account;

            int houses = 0;

            if (a != null)
            {
                for (int i = 0; i < a.Length; ++i)
                {
                    Mobile mob = a[i];

                    if (mob != null)
                        houses += Multis.BaseHouse.GetHouses(mob).Count;
                }
            }

            if (houses == 0)
            {
                PackItem(new Multis.Deeds.FieldStoneHouseDeed());
            }
            
            // PackItem(new VendorRentalContract());
            // PackItem(new InteriorDecorator());
            // PackItem(new Server.ACC.YS.YardShovel());
            */
        }
示例#13
0
        public Beetle( string name )
            : base(name, 0x317, 0x3EA6, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Body = 220;
            Hue = 15;

            SetStr( 300 );
            SetDex( 100 );
            SetInt( 500 );

            SetHits( 200 );

            SetDamage( 7, 20 );

            SetDamageType( ResistanceType.Physical, 100 );

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

            SetSkill( SkillName.MagicResist, 80.0 );
            SetSkill( SkillName.Tactics, 100.0 );
            SetSkill( SkillName.Wrestling, 100.0 );

            Fame = 4000;
            Karma = -4000;

            Tamable = true;
            ControlSlots = 3;
            MinTameSkill = 29.1;

            Container pack = Backpack;

            if ( pack != null )
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            AddItem( pack );
        }
示例#14
0
		public UltraBeetle() : base( "an ultra beetle", 0xA9, 0x3E95, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			SetStr( 300 );
			SetDex( 100 );
			SetInt( 500 );

			SetHits( 200 );

			SetDamage( 7, 20 );

			SetDamageType( ResistanceType.Physical, 100 );

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

			SetSkill( SkillName.MagicResist, 80.0 );
			SetSkill( SkillName.Tactics, 100.0 );
			SetSkill( SkillName.Wrestling, 100.0 );

			Fame = 4000;
			Karma = -4000;

			Tamable = true;
			ControlSlots = 4;
			MinTameSkill = 93.9;
			Hue = 1172;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );


		}
示例#15
0
        public PackRatFamiliar()
        {
            Name = "a pack rat";
            Body = 0xD7;
            BaseSoundID = 0x188;

            SetStr(32, 74);
            SetDex(46, 65);
            SetInt(16, 30);

            SetHits(26, 39);
            SetMana(0);

            SetDamage(4, 8);

            SetDamageType(ResistanceType.Physical, 100);

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

            SetSkill(SkillName.MagicResist, 25.1, 30.0);
            SetSkill(SkillName.Tactics, 29.3, 44.0);
            SetSkill(SkillName.Wrestling, 29.3, 44.0);

            Fame = 300;
            Karma = -300;

            VirtualArmor = 18;

            ControlSlots = 1;

            Container pack = Backpack;

            if (pack != null)
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            AddItem(pack);
        }
示例#16
0
		public TamableHordeMinion() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "a horde minion";
			Body = 776;
			BaseSoundID = 0x39D;

			SetStr( 100 );
			SetDex( 110 );
			SetInt( 100 );

			SetHits( 100 );
			SetStam( 110 );
			SetMana( 100 );

			SetDamage( 5, 10 );

			SetDamageType( ResistanceType.Physical, 100 );

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

			SetSkill( SkillName.Wrestling, 70.1, 75.0 );
			SetSkill( SkillName.Tactics, 50.0 );

			
			Tamable = true; 
         		ControlSlots = 2; 
         		MinTameSkill = 75.1;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
示例#17
0
		public FemaleFerret() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "a female ferret";
			Body = 279;
			
			SetStr( 1000, 1200 );
			SetDex( 1000, 1200 );
			SetInt( 1000, 1200 );

			SetHits( 4500, 8000 );
			SetStam( 800, 1000 );
			SetMana( 500, 750 );

			SetDamage( 15 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetSkill( SkillName.MagicResist, 200.0 );
			SetSkill( SkillName.Tactics, 75.0 );
			SetSkill( SkillName.Wrestling, 95.0 );

			Fame = 1000;
			Karma = 2500;

			VirtualArmor = 70;

			Tamable = true;
			ControlSlots = 2;
			MinTameSkill = 40.0;
			
			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );

		}
示例#18
0
		public Beetle( string name ) : base( name, 0x317, 0x3EBC, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.25, 0.5 )
		{
			SetStr( Utility.RandomMinMax( 200, 400 ));
            SetDex( Utility.RandomMinMax( 100, 200 ));
            SetInt( Utility.RandomMinMax( 40, 80 ));

            SetHits(Utility.RandomMinMax(200, 400));

			SetDamage( 7, 20 );

			SetDamageType( ResistanceType.Physical, 100 );

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

			SetSkill( SkillName.MagicResist, 80.0 );
			SetSkill( SkillName.Tactics, 100.0 );
			SetSkill( SkillName.Wrestling, 100.0 );

			Fame = 4000;
			Karma = -4000;

			Tamable = true;
			ControlSlots = 3;
			MinTameSkill = 29.1;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
        public SkitteringHopperFamiliar()
        {
            Name = "a skittering hopper";
            Body = 302;
            BaseSoundID = 959;

            SetStr( 41, 65 );
            SetDex( 91, 115 );
            SetInt( 26, 50 );

            SetHits( 31, 45 );

            SetDamage( 3, 5 );

            SetDamageType( ResistanceType.Physical, 100 );

            SetResistance( ResistanceType.Physical, 5, 10 );
            SetResistance( ResistanceType.Cold, 10, 20 );
            SetResistance( ResistanceType.Energy, 5, 10 );

            SetSkill( SkillName.MagicResist, 30.1, 45.0 );
            SetSkill( SkillName.Tactics, 45.1, 70.0 );
            SetSkill( SkillName.Wrestling, 40.1, 60.0 );

            Fame = 300;
            Karma = 0;

            ControlSlots = 1;

            Container pack = Backpack;

            if ( pack != null )
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            AddItem( pack );
        }
示例#20
0
		public Beetle() : base( 0x317, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			SetStr( 300 );
			SetDex( 100 );
			SetInt( 500 );

			SetHits( 200 );

			SetDamage( 7, 20 );

			

			
			
			
			
			

			SetSkill( SkillName.MagicResist, 80.0 );
			SetSkill( SkillName.Tactics, 100.0 );
			SetSkill( SkillName.Wrestling, 100.0 );

			Fame = 4000;
			Karma = -4000;

			Tamable = true;
			ControlSlots = 3;
			MinTameSkill = 29.1;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
示例#21
0
		public PackHorse() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
		{
			Name = "a pack horse";
			Body = 291;
			BaseSoundID = 0xA8;

			SetStr( 44, 120 );
			SetDex( 36, 55 );
			SetInt( 6, 10 );

			SetHits( 61, 80 );
			SetStam( 81, 100 );
			SetMana( 0 );

			SetDamage( 5, 11 );

			SetSkill( SkillName.MagicResist, 25.1, 30.0 );
			SetSkill( SkillName.Tactics, 29.3, 44.0 );
			SetSkill( SkillName.Wrestling, 29.3, 44.0 );

			Fame = 0;
			Karma = 200;

			VirtualArmor = 16;

			Tamable = true;
			ControlSlots = 1;
			MinTameSkill = 11.1;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
		public ThePickUpBeetle( string name ) : base( name, 0x317, 0x3EBC, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			SetStr( 000 );
			SetDex( 110 );
			SetInt( 500 );

		    SetHits( 200 );
		    
			SetStam( 110 );
			SetMana( 100 );

			SetDamage( 7, 20 );

			SetDamageType( ResistanceType.Physical, 100 );

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

			SetSkill( SkillName.Wrestling, 70.1, 75.0 );
			SetSkill( SkillName.Tactics, 50.0 );
			

			Tamable = true;
			ControlSlots = 2;
			MinTameSkill = 80.0;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
示例#23
0
		public TravelersHorse( string name ) : base( name, 0xE2, 0x3EA0, AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
		{
			SetStr( 22, 98  );
			SetDex( 56, 75 );
			SetInt( 6, 10 );
			
			SetHits( 28, 45 );
			SetMana( 0 );
			
			SetDamage( 3, 4 );
			
			SetDamageType( ResistanceType.Physical, 100 );
			
			SetResistance( ResistanceType.Physical, 15, 20 );
			
			SetSkill( SkillName.MagicResist, 25.1, 30.0 );
			SetSkill( SkillName.Tactics, 29.3, 44.0 );
			SetSkill( SkillName.Wrestling, 29.3, 44.0 );
			
			Fame = 300;
			Karma = 300;
			
			Tamable = true;
			ControlSlots = 1;
			MinTameSkill = 29.1;
			
			Container pack = Backpack;
			
			if ( pack != null )
				pack.Delete();
			
			pack = new StrongBackpack();
			pack.Movable = false;
			
			AddItem( pack );
		}
示例#24
0
        public IronBeetle()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "an Iron beetle";
            Body = 714;
            BaseSoundID = 397;

            SetStr(760, 886 );
            SetDex(66, 75);
            SetInt(36, 51);

            SetHits(765, 880);
            SetMana(36, 51);

            SetDamage(15, 20);

            SetDamageType(ResistanceType.Physical, 90);

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

            SetSkill(SkillName.Anatomy, 80, 89);
            SetSkill(SkillName.MagicResist, 120, 129);
            SetSkill(SkillName.Tactics, 82.6, 97);
            SetSkill(SkillName.Wrestling, 94.8, 108);
            SetSkill(SkillName.Blacksmith, 120.0);
            SetSkill(SkillName.Mining, 70);
            Skills.Mining.Cap = 105;

            Fame = 10000;
            Karma = -10000;

            VirtualArmor = 38;

            Tamable = true;
            ControlSlots = 4;
            MinTameSkill = 98;

            Container pack = Backpack;
            //if (pack != null) pack.Delete();
            pack = new StrongBackpack();
            pack.Movable = false;
            pack.DropItem(new Pickaxe());
        }
示例#25
0
        public BonBon()
            : base(AIType.AI_Animal, FightMode.Closest, 10, 5, 0.175, 0.75)
        {
            Name = "BonBon";
            Title = "The Bunny";
            Body = 205;
            Hue = 0x481;
            BaseSoundID = 0;

            SetStr(45, 55);
            SetDex(45, 55);
            SetInt(31, 43);

            SetHits(100, 200);

            SetDamage(11, 20);

            SetDamageType(ResistanceType.Physical, 5);
            SetDamageType(ResistanceType.Fire, 0);
            SetDamageType(ResistanceType.Cold, 0);
            SetDamageType(ResistanceType.Energy, 0);
            SetDamageType(ResistanceType.Poison, 0);

            SetResistance(ResistanceType.Physical, 8, 18);
            SetResistance(ResistanceType.Fire, 18, 21);
            SetResistance(ResistanceType.Cold, 13, 23);
            SetResistance(ResistanceType.Energy, 0, 5);
            SetResistance(ResistanceType.Poison, 11, 23);

            SetSkill(SkillName.Parry, 25, 45);
            SetSkill(SkillName.Wrestling, 80, 95);

            Fame = 500;
            Karma = 100;

            VirtualArmor = 15;

            Tamable = true;
            ControlSlots = 1;
            MinTameSkill = 11.1;

            Container pack = Backpack;

            if (pack != null)
                pack.Delete();

            pack = new StrongBackpack();
            pack.Movable = false;

            AddItem(pack);

            double gschance = Utility.RandomDouble();

            //If the random generated number is higher then 70, or exacly 70, a staff will drop.
            //Meaning: there's a 30% chance that one will drop.

            if (gschance <= 0.7)
            {
                Item BonBonPickaxe = new BonBonPickaxe();
                AddItem(BonBonPickaxe);
            }
        }
示例#26
0
		public Werewolf( string name ) : base( name, 277, 0x3e91, AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )//mounted nightmare
		{		
			Title = "The Werewolf";
			Hue = Utility.RandomList ( 0, 2310, 1175, 1109 );
			BaseSoundID = 1248;

			if ( this.Female = Utility.RandomBool() )//this is the random sex of unmounted mobile
			{
				Body = 0x191;
				Name = NameList.RandomName( "female" );
			}
			else
			{
				Body = 0x190;
				Name = NameList.RandomName( "male" );
			}


			SetStr( 496, 525 );
			SetDex( 86, 105 );
			SetInt( 86, 125 );

			SetHits( 298, 315 );

			SetDamage( 16, 22 );

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

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

			SetSkill( SkillName.EvalInt, 10.4, 50.0 );
			SetSkill( SkillName.Magery, 10.4, 50.0 );
			SetSkill( SkillName.MagicResist, 85.3, 100.0 );
			SetSkill( SkillName.Tactics, 97.6, 100.0 );
			SetSkill( SkillName.Wrestling, 80.5, 92.5 );
                        
			Fame = 5;
			Karma = 5;

			VirtualArmor = 70;

			Tamable = true;
			ControlSlots = 4;
			MinTameSkill = 95.1;


			AddItem( new Sandals(1) );//This is their only rare drop Unless you comment out the movable : false

			int hue = Utility.RandomMinMax( 1410, 1450 );  //Random Zog Green


			Item chest = new ChainChest();
			chest.Hue = hue;
			chest.Movable = false;//can remove this to make Zog Green colored armored drop
			AddItem( chest );

			Item gloves = new LeatherGloves();
			gloves.Hue = hue;
			gloves.Movable = false;//can remove this to make Zog Green colored armored drop
			AddItem( gloves );

			Item legs = new ChainLegs();
			legs.Hue = hue;
			legs.Movable = false;//can remove this to make Zog Green colored armored drop
			AddItem( legs );


			Item hair = new Item( Utility.RandomList( 0x203B, 0x203C, 0x203D, 0x2049 ) );
			hair.Hue = 0;
			hair.Layer = Layer.Hair;
			hair.Movable = false;
			AddItem( hair );

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );

		}
		public BaseBioCreature() : base( AIType.AI_Animal, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "a bio-engienered clone";
			Body = 775;

			SetStr( 1 );
			SetDex( 1 );
			SetInt( 1 );

			SetSkill( SkillName.MagicResist, 25.0 );
			SetSkill( SkillName.Tactics, 25.0 );
			SetSkill( SkillName.Wrestling, 25.0 );
			SetSkill( SkillName.Meditation, 25.0 );
			SetSkill( SkillName.Magery, 25.0 );
			SetSkill( SkillName.EvalInt, 25.0 );
			SetSkill( SkillName.Poisoning, 25.0 );

			Fame = 0;
			Karma = 0;

			VirtualArmor = 1;

			Tamable = true;
			ControlSlots = 4;
			MinTameSkill = 110.0;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );
		}
		public PackHuman() : base( AIType.AI_Animal, FightMode.Agressor, 10, 1, 0.2, 0.4 )
		{
			Name = "A Pack Human";
			Body = 401;
			Hue = 33770;
                        BaseSoundID = 0;

			SetStr( 52, 80 );
			SetDex( 36, 55 );
			SetInt( 16, 30 );

			SetHits( 500 );
			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 = 50.1;

			Container pack = Backpack;

			if ( pack != null )
				pack.Delete();

			pack = new StrongBackpack();
			pack.Movable = false;

			AddItem( pack );

			Item shirt = new Shirt();
			shirt.Hue = 1157;
			shirt.LootType = LootType.Blessed;
			EquipItem( shirt );

			Item longpants = new LongPants();
			longpants.Hue = 45;
			longpants.LootType = LootType.Blessed;
			EquipItem( longpants );

			Item shoes = new Shoes();
			shoes.Hue = 72;
			shoes.LootType = LootType.Blessed;
			EquipItem( shoes );

			Item longhair = new LongHair();
			longhair.Hue = 59;
			longhair.LootType = LootType.Blessed;
			EquipItem( longhair );
		}
示例#29
0
        public IronBeetle()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "an Iron beetle";
            Body = 714;
            BaseSoundID = 397;

            SetStr(831);
            SetDex(74, 80);
            SetInt(45);

            SetHits(801);
            SetMana(45);

            SetDamage(15, 20);

            SetDamageType(ResistanceType.Physical, 100);

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

            SetSkill(SkillName.Anatomy, 85, 90);
            SetSkill(SkillName.MagicResist, 30.1, 35);
            SetSkill(SkillName.Tactics, 91.5, 92);
            SetSkill(SkillName.Wrestling, 99.8, 100);
            SetSkill(SkillName.Blacksmith, 100.0);
            SetSkill(SkillName.Mining, 01.0);
            Skills.Mining.Cap = 100;

            Fame = 2000;
            Karma = -2000;

            VirtualArmor = 38;

            Tamable = true;
            ControlSlots = 4;
            MinTameSkill = 71.1;

            Container pack = Backpack;
            if (pack != null) pack.Delete();
            pack = new StrongBackpack();
            pack.Movable = false;
            AddItem(pack);

            AddItem(new Gold(600));
            PackItem(new IronOre(5));
        }
示例#30
0
        public static void LevelUp( BaseCreature player )
        {
            player.NextLevel += ( player.Level + 1 ) * (5000 / player.XPScale);
            player.Level++;

            if( player.Level % 2 != 0 )
                player.DamageMin++;

            else
                player.DamageMax++;

            double i = 0.5 * player.SkillScale;

            if (player is Serpent)
            {
                player.RawStr += player.StatScale;
                player.RawDex += player.StatScale;
                player.RawStam += player.StatScale;
                player.RawMana += player.StatScale;

                if (player.XPScale == 1)
                {
                    player.RawInt += 1;
                    player.RawHits += 1;
                }
                else
                {
                    player.RawInt += (player.StatScale / 2);
                    player.RawHits += (player.StatScale / 2);
                }
            }
            else if (player is BirdOfPrey)
            {
                if (player.StatScale == 1)
                {
                    player.RawStr += 1;
                    player.RawHits += 1;
                }
                else
                {
                    player.RawStr += (player.StatScale / 2);
                    player.RawHits += (player.StatScale / 2);
                }

                player.RawDex += (int)(player.StatScale * Utility.RandomMinMax(1,2));
                player.RawInt += player.StatScale;
                player.RawStam += player.StatScale;
                player.RawMana += player.StatScale;
            }
            else if (player is Bear)
            {
                int statBonus = Utility.Random(player.StatScale);
                int armorBonus = Utility.Random(5);

                if (player.XPScale == 1)
                {
                    player.RawStr += 1;
                    player.RawDex += Utility.Random(2);
                }
                else
                {
                    player.RawStr += (player.StatScale / 2);
                    player.RawDex += ((player.StatScale - (statBonus + 1)) / 2);
                }

                player.RawInt += (player.StatScale - statBonus);
                player.RawHits += (player.StatScale + (statBonus + 1));
                player.RawStam += (player.StatScale + statBonus);
                player.RawMana += (player.StatScale / 2);

                if (armorBonus == 0)
                    player.BluntResistSeed += (player.StatScale - 1);
                else if (armorBonus == 1)
                    player.SlashingResistSeed += (player.StatScale - 1);
                else if (armorBonus == 2)
                    player.PiercingResistSeed += (player.StatScale - 1);
                else if (armorBonus == 3)
                {
                    player.PoisonResistSeed += (player.StatScale - 1);
                    player.EnergyResistSeed += (player.StatScale - 1);
                }
                else
                {
                    if (player.Level % 2 != 0)
                        player.DamageMin--;
                    else
                        player.DamageMax--;
                }
            }
            else if (player is Mercenary)
            {
                int statUpgrade = Utility.RandomMinMax(1, 4);

                switch (statUpgrade)
                {
                    case 1:
                        {
                            player.RawStr += player.StatScale;
                            player.RawDex += Utility.RandomMinMax(1, player.StatScale);
                            player.RawInt += 1;
                            player.RawHits += Utility.RandomMinMax(1, player.StatScale);
                            player.RawStam += Utility.RandomMinMax(1, player.StatScale);
                            break;
                        }
                    case 2:
                        {
                            player.RawStr += Utility.RandomMinMax(1, player.StatScale);
                            player.RawDex += player.StatScale;
                            player.RawInt += 1;
                            player.RawHits += Utility.RandomMinMax(1, player.StatScale);
                            player.RawStam += Utility.RandomMinMax(1, player.StatScale);
                            break;
                        }
                    case 3:
                        {
                            player.RawStr += Utility.RandomMinMax(1, player.StatScale);
                            player.RawDex += Utility.RandomMinMax(1, player.StatScale);
                            player.RawInt += 1;
                            player.RawHits += player.StatScale;
                            player.RawStam += Utility.RandomMinMax(1, player.StatScale);
                            break;
                        }
                    case 4:
                        {
                            player.RawStr += Utility.RandomMinMax(1, player.StatScale);
                            player.RawDex += Utility.RandomMinMax(1, player.StatScale);
                            player.RawInt += 1;
                            player.RawHits += Utility.RandomMinMax(1, player.StatScale);
                            player.RawStam += player.StatScale;
                            break;
                        }
                }

                if (player.ControlMaster != null)
                {
                    switch (((PlayerMobile)player.ControlMaster).Nation)
                    {
                        case Nation.Alyrian: { if (Utility.RandomBool()) player.RawDex += Utility.Random(player.StatScale); else player.RawInt += Utility.Random(player.StatScale); break; }
                        case Nation.Azhuran: { player.RawDex += Utility.Random(player.StatScale); break; }
                        case Nation.Khemetar: { player.RawInt += Utility.Random(player.StatScale); break; }
                        case Nation.Mhordul: { player.RawStr += Utility.Random(player.StatScale); break; }
                        case Nation.Tyrean: { if (Utility.RandomBool()) player.RawStr += Utility.Random(player.StatScale); else player.RawStam += Utility.Random(player.StatScale); break; }
                        case Nation.Vhalurian: { player.RawHits += Utility.Random(player.StatScale); break; }
                    }
                }
            }
            else
            {
                player.RawStr += player.StatScale;
                player.RawDex += player.StatScale;
                player.RawInt += player.StatScale;
                player.RawHits += player.StatScale;
                player.RawStam += player.StatScale;
                player.RawMana += player.StatScale;
            }

            if( player is Dragon )
            {
                if( player.Level > 19 && player.BodyValue == 61 )
                {
                    Gold newloot = new Gold( Utility.RandomMinMax( 1, 3 ) );
                    Container pack = player.Backpack;

                    if( pack != null )
                        pack.DropItem( newloot );

                    player.BodyValue = 59;
                }

                if( player.Level > 38 && player.BodyValue == 59 )
                {
                    Gold newloot = new Gold( Utility.RandomMinMax( 3, 6 ) );
                    Container pack = player.Backpack;

                    if( pack != null )
                        pack.DropItem( newloot );

                    player.BodyValue = 46;
                }
            }

            if( player is Mercenary && ((Mercenary)player).Lives < 8 )
                ((Mercenary)player).Lives++;

            else if( player is BaseBreedableCreature )
            {
                BaseBreedableCreature bbc = player as BaseBreedableCreature;

                if( player.Level % 5 == 0 && bbc.PetEvolution > 0 )
                {
                    bbc.RaiseRandomFeat();
                    bbc.PetEvolution--;
                }

                bbc.UpdateSpeeds();

                if( ((BaseBreedableCreature)player).Lives < (8 + ((BaseBreedableCreature)player).ExtraLives) )
                    ((BaseBreedableCreature)player).Lives++;

                if (player is Serpent)
                {
                    if (player.Level == 40)
                    {
                        if (player is GrassSnake)
                        {
                            ((GrassSnake)player).SetConstrict(true);
                            player.SetDex(player.RawDex / 3);
                            player.BodyValue = 89;
                            player.Emote("*" + player.Name + " has grown more langurous but also more powerful!*");
                            player.PlaySound(0x05E);
                        }
                        else
                        {
                            player.BodyValue = 89;
                            player.Emote("*" + player.Name + " is growing!*");
                            player.PlaySound(0x05E);
                        }
                    }

                    if(player is Viper)
                        ((Viper)player).incSerpentPoison();
                    else if(player is Copperhead)
                        ((Copperhead)player).incSerpentPoison();
                    else if(player is Cobra)
                        ((Cobra)player).incSerpentPoison();
                    else if(player is BlackMamba)
                        ((BlackMamba)player).incSerpentPoison();
                }

                    if (player is WorkHorse)
                    {
                        List<Item> packItems = new List<Item>();
                        foreach (Item item in (player as WorkHorse).Backpack.Items)
                            packItems.Add(item);

                        StrongBackpack newPack = new StrongBackpack((player as WorkHorse).Backpack.MaxWeight + player.StatScale);
                        newPack.MaxItems += Utility.Random(player.StatScale);
                        foreach (Item item in packItems)
                            newPack.AddItem(item);

                        (player as WorkHorse).Backpack.Delete();
                        (player as WorkHorse).AddItem(newPack);
                    }
            }

            else if( player.Controlled && player.Lives < 8 )
                player.Lives++;

            AwardSkill( player, i );

            if( player.Level < 50 )
                CheckLevel( player );
        }
        public static List <Mobile> ReadMobiles()
        {
            var output = new List <Mobile>();

            try
            {
                var mobiles = new List <MobileEntry>();

                if (File.Exists(MobileIndexPath) && File.Exists(MobileTypesPath))
                {
                    using (
                        FileStream idx = new FileStream(MobileIndexPath, FileMode.Open, FileAccess.Read, FileShare.Read)
                        )
                    {
                        BinaryReader idxReader = new BinaryReader(idx);

                        using (
                            FileStream tdb = new FileStream(MobileTypesPath, FileMode.Open, FileAccess.Read,
                                                            FileShare.Read))
                        {
                            BinaryReader tdbReader = new BinaryReader(tdb);

                            var types = ReadTypes(tdbReader);

                            int mobileCount = idxReader.ReadInt32();

                            for (int i = 0; i < mobileCount; ++i)
                            {
                                int  typeID = idxReader.ReadInt32();
                                int  serial = idxReader.ReadInt32();
                                long pos    = idxReader.ReadInt64();
                                int  length = idxReader.ReadInt32();

                                var objs = types[typeID];

                                if (objs == null)
                                {
                                    continue;
                                }

                                ConstructorInfo ctor     = objs.Item1;
                                string          typeName = objs.Item2;

                                try
                                {
                                    Mobile value;
                                    Mobile m = null;
                                    if (World.Mobiles.TryGetValue(serial, out value))
                                    {
                                        Mobile       sameSerialMob = value;
                                        BaseCreature bc            = sameSerialMob as BaseCreature;
                                        // Don't use the real serial number, get a new serial number for it
                                        serial = Serial.NewMobile;
                                        m      = (Mobile)(ctor.Invoke(new object[] { (Serial)serial }));
                                        // this constructor gets a new, unused serial number

                                        if (m.GetType() != sameSerialMob.GetType())
                                        {
                                            // the serial has already been reused by a different type of mob
                                            // which means the original stabled mob is gone.  Therefore add the original mob
                                            output.Add(m);
                                            World.AddMobile(m);

                                            /*LoggingCustom.Log("PetReassignedSerials.txt",
                                             *  "serial was previously replaced by: " + sameSerialMob.Name + "\t" +
                                             *  sameSerialMob.Serial + "\tDeleted:" +
                                             *  sameSerialMob.Deleted + "\t|new serial assigned for pet:" + m.Serial);*/
                                        }
                                        else
                                        // it's a very safe bet that it's the same mob (though we can't be absolutely sure)...
                                        {
                                            /*LoggingCustom.Log("PetStillExists.txt",
                                             *  "Now Existing: " + sameSerialMob.Name + "\t" + sameSerialMob.Serial +
                                             *  "\tDeleted:" + sameSerialMob.Deleted);*/
                                            // don't add mob to output
                                        }
                                    }
                                    else
                                    {
                                        // construct mob with it's original serial number... this probably won't happen much
                                        m = (Mobile)(ctor.Invoke(new object[] { (Serial)serial }));
                                        // this constructor adds this mob into the World.Mobiles dictionary at this serial
                                        World.AddMobile(m);
                                        output.Add(m);
                                        //LoggingCustom.Log("PetSameSerialRestored.txt", m.Serial + "");
                                    }
                                    // always add it to this list regardless
                                    mobiles.Add(new MobileEntry(m, typeID, typeName, pos, length));
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("LostStabledPetRecorder error!: " + e.Message);
                                    Console.WriteLine(e.StackTrace);
                                }
                            }

                            tdbReader.Close();
                        }

                        idxReader.Close();
                    }
                }
                else
                {
                    Console.WriteLine("Lost stable files not found!  Should be at " + Path.GetFullPath(MobileIndexPath));
                }

                Serial failedSerial = Serial.Zero;
                if (File.Exists(MobileDataPath))
                {
                    using (
                        FileStream bin = new FileStream(MobileDataPath, FileMode.Open, FileAccess.Read, FileShare.Read))
                    {
                        BinaryFileReader reader = new BinaryFileReader(new BinaryReader(bin));

                        for (int i = 0; i < mobiles.Count; ++i)
                        {
                            MobileEntry entry = mobiles[i];
                            Mobile      m     = entry.Mobile;

                            if (m != null)
                            {
                                reader.Seek(entry.Position, SeekOrigin.Begin);

                                try
                                {
                                    if (!output.Contains(m))
                                    {
                                        // same mob already exist in the world, but
                                        // m has been assigned a new serial number so it's ok to delete it
                                    }
                                    else
                                    {
                                        m_LoadingType = entry.TypeName;
                                        m.Deserialize(reader);

                                        m.Map = Map.Internal;
                                        if (m is Beetle || m is HordeMinion || m is PackHorse || m is PackLlama)
                                        {
                                            // pack animals: make sure they have their pack

                                            Container pack = m.Backpack;
                                            if (pack == null)
                                            {
                                                pack = new StrongBackpack {
                                                    Movable = false
                                                };

                                                m.AddItem(pack);
                                            }
                                        }
                                        if (reader.Position != (entry.Position + entry.Length))
                                        {
                                            throw new Exception(String.Format("***** Bad serialize on {0} *****",
                                                                              m.GetType()));
                                        }
                                    }
                                }
                                catch
                                {
                                    mobiles.RemoveAt(i);

                                    Type failedType   = m.GetType();
                                    int  failedTypeID = entry.TypeID;
                                    failedSerial = m.Serial;
                                    Console.WriteLine(failedType);
                                    Console.WriteLine(failedTypeID);
                                    Console.WriteLine(failedSerial);
                                    break;
                                }
                            }
                        }

                        reader.Close();
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
            return(output);
        }