Esempio n. 1
0
		public ArcherGuard( Mobile target ) : base( target )
		{
			InitStats( 100, 125, 25 );
			Title = "the guard";

			SpeechHue = Utility.RandomDyedHue();

			Hue = Utility.RandomSkinHue();

			if ( Female = Utility.RandomBool() )
			{
				Body = 0x191;
				Name = NameList.RandomName( "female" );
			}
			else
			{
				Body = 0x190;
				Name = NameList.RandomName( "male" );
			}

			new Horse().Rider = this;

			AddItem( new StuddedChest() );
			AddItem( new StuddedArms() );
			AddItem( new StuddedGloves() );
			AddItem( new StuddedGorget() );
			AddItem( new StuddedLegs() );
			AddItem( new Boots() );
			AddItem( new SkullCap() );

			Bow bow = new Bow();

			bow.Movable = false;
			bow.Crafter = this;
			bow.Quality = WeaponQuality.Exceptional;

			AddItem( bow );

			Container pack = new Backpack();

			pack.Movable = false;

			Arrow arrows = new Arrow( 250 );

			arrows.LootType = LootType.Newbied;

			pack.DropItem( arrows );
			pack.DropItem( new Gold( 10, 25 ) );

			AddItem( pack );

			Skills[SkillName.Anatomy].Base = 120.0;
			Skills[SkillName.Tactics].Base = 120.0;
			Skills[SkillName.Archery].Base = 120.0;
			Skills[SkillName.MagicResist].Base = 120.0;
			Skills[SkillName.DetectHidden].Base = 100.0;

			this.NextCombatTime = DateTime.Now + TimeSpan.FromSeconds( 0.5 );
			this.Focus = target;
		}
Esempio n. 2
0
        public Hunter()
            : base(AIType.AI_Archer, FightMode.Aggressor, 10, 1, 0.2, 0.4)
        {
            InitStats( 300, 300, 100 );
            Title = "the hunter";

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();

            if ( Female = Utility.RandomBool() )
            {
                Body = 0x191;
                Name = NameList.RandomName( "female" );
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName( "male" );
            }

            AddItem( new StuddedChest() );
            AddItem( new StuddedArms() );
            AddItem( new StuddedGloves() );
            AddItem( new StuddedGorget() );
            AddItem( new StuddedLegs() );
            AddItem( new ThighBoots() );
            AddItem( new BodySash(2118));
            AddItem(Utility.RandomBool() ? (Item)new BearMask() : (Item)new DeerMask());
            AddItem(Utility.RandomBool() ? (Item)new Bow() : (Item)new Crossbow());

            Container pack = new Backpack();

            pack.Movable = false;

            Arrow arrows = new Arrow( 250 );

            arrows.LootType = LootType.Newbied;

            pack.DropItem( arrows );
            pack.DropItem( new Gold( 10, 25 ) );

            AddItem( pack );

            Skills[SkillName.Anatomy].Base = 120.0;
            Skills[SkillName.Tactics].Base = 120.0;
            Skills[SkillName.Archery].Base = 120.0;
            Skills[SkillName.MagicResist].Base = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;
        }
        public AGhostlyBlacksmith()
        {

            InitStats(31, 41, 51);

            Name = "A Ghostly Blacksmith";

            Title = "";

            Body = 0x190;
            Hue = 1072;


            AddItem(new Server.Items.DeathShroud());
            AddItem(new SmithHammer());



            Blessed = true;
            CantWalk = true;


            Container pack = new Backpack();
            pack.DropItem(new Gold(250, 300));
            pack.Movable = false;
            AddItem(pack);
        }
[Constructable]public Crystal(){

///////////STR/DEX/INT
InitStats( 31, 41, 51 );

///////////name
Name = "Crystal";

///////////title
Title = "Quest Giver";

///////////sex. 0x191 is female, 0x190 is male.
Body = 0x191;

///////////skincolor
Hue = Utility.RandomSkinHue();

///////////Random hair and haircolor
Utility.AssignRandomHair( this );

///////////clothing and hues
AddItem( new Server.Items.Shirt( Utility.RandomBlueHue() ) );
AddItem( new Server.Items.LongPants( Utility.RandomBlueHue() ) );
AddItem( new Server.Items.Sandals( Utility.RandomBlueHue() ) );

///////////immortal and frozen to-the-spot features below:
Blessed = true;
CantWalk = true;

///////////Adding a backpack
Container pack = new Backpack();
pack.DropItem( new Gold( 250, 300 ) );
pack.Movable = false;
AddItem( pack );
}
        public IchabodCrane()
            : base(AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4)
        {


            InitStats(31, 41, 51);


            Name = "Ichabod Crane";
            Body = 0x190;
            Hue = 1002;




            AddItem(new Server.Items.FancyShirt());
            AddItem(new Server.Items.LongPants());
            AddItem(new Server.Items.Boots());
            int hairHue = 1865;

            Utility.AssignRandomHair(this);

            Blessed = true;


            Container pack = new Backpack();
            pack.DropItem(new Gold(250, 300));
            pack.Movable = false;
            AddItem(pack);
        }
Esempio n. 6
0
[Constructable]public Marrow(){

InitStats( 100, 100, 100 );

Name = "Marrow";

Title = "the chemist";

Body = 0x191;

Fame = 2000;
Karma = 3000;

Hue = Utility.RandomSkinHue();

Utility.AssignRandomHair( this );

AddItem( new Server.Items.Shirt( Utility.RandomRedHue() ) );
AddItem( new Server.Items.Skirt( Utility.RandomRedHue() ) );
AddItem( new Server.Items.Boots( Utility.RandomNeutralHue() ) );

Blessed = true;
CantWalk = true;

Container pack = new Backpack();
pack.DropItem( new Gold( 150, 200 ) );
pack.Movable = false;
AddItem( pack );
}
Esempio n. 7
0
        public static void CombineBackpacks( BaseCreature animal )
        {
            if ( Core.AOS )
                return;

            //if ( animal.IsBonded || animal.IsDeadPet )
            //	return;

            Container pack = animal.Backpack;

            if ( pack != null )
            {
                Container newPack = new Backpack();

                for ( int i = pack.Items.Count - 1; i >= 0; --i )
                {
                    if ( i >= pack.Items.Count )
                        continue;

                    newPack.DropItem( pack.Items[i] );
                }

                pack.DropItem( newPack );
            }
        }
Esempio n. 8
0
        public Sculptor()
            : base(AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4)
        {
            this.InitStats(31, 41, 51);

            this.SpeechHue = Utility.RandomDyedHue();
            this.Title = "the sculptor";
            this.Hue = Utility.RandomSkinHue();

            if (this.Female = Utility.RandomBool())
            {
                this.Body = 0x191;
                this.Name = NameList.RandomName("female");
                this.AddItem(new Kilt(Utility.RandomNeutralHue()));
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName("male");
                this.AddItem(new LongPants(Utility.RandomNeutralHue()));
            }

            this.AddItem(new Doublet(Utility.RandomNeutralHue()));
            this.AddItem(new HalfApron());

            Utility.AssignRandomHair(this);

            Container pack = new Backpack();

            pack.DropItem(new Gold(250, 300));

            pack.Movable = false;

            this.AddItem(pack);
        }
		public override void OnDoubleClick( Mobile from )
		{
			Backpack bankbag = new Backpack();
			Container mobilePack = from.Backpack;
			BankBox mobileBox = from.BankBox;
			ArrayList equipitems = new ArrayList(from.Items);
			mobileBox.AddItem( bankbag );
			//				this.AddPlayer( player );
			from.Frozen = true;
			from.SendMessage( "All your belongings were transported to your bankbox.  You will need to close you backpack and re-open it for it to display the correct contents.");

			//				if ( Teams.Contains( from ) )
			//				{
			//					from.Frozen = true;
			//				}
			foreach (Item item in equipitems)
			{
				if ((item.Layer != Layer.Bank) && (item.Layer != Layer.Backpack) && (item.Layer != Layer.Hair) && (item.Layer != Layer.FacialHair) && (item.Layer != Layer.Mount))
				{
					mobilePack.DropItem( item );
				}
			}

			ArrayList packitems = new ArrayList( mobilePack.Items );

			foreach (Item items in packitems)
			{
				bankbag.DropItem(items);
			}
		}
Esempio n. 10
0
        public Olin()
            : base(AIType.AI_Archer, FightMode.Aggressor, 10, 1, 0.2, 0.4)
        {
            InitStats(500, 400, 100);
            Title = "the head hunter";

            SpeechHue = Utility.RandomDyedHue();

            Hue = 0x840E;

            Body = 0x190;
            Name = "Lord Olin";

            HairItemID = 8252;
            HairHue = 1107;
            FacialHairItemID = 0;

            AddItem(new StuddedChest());
            AddItem(new PlateArms());
            AddItem(new StuddedGloves());
            AddItem(new PlateGorget());
            AddItem(new StuddedLegs());
            AddItem(new ThighBoots(1907));
            AddItem(new Cloak(2118));
            AddItem(new BodySash(2118));
            AddItem(new Bow());

            Container pack = new Backpack();

            pack.Movable = false;

            Arrow arrows = new Arrow(250);

            arrows.LootType = LootType.Newbied;

            pack.DropItem(arrows);
            pack.DropItem(new Gold(10, 25));

            AddItem(pack);

            Skills[SkillName.Anatomy].Base = 120.0;
            Skills[SkillName.Tactics].Base = 120.0;
            Skills[SkillName.Archery].Base = 120.0;
            Skills[SkillName.MagicResist].Base = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;
        }
Esempio n. 11
0
		public EithkaUlesra() : base( AIType.AI_Archer, FightMode.Closest, 10, 5, 0.2, 0.4 )
		{
			Name = "Eithka Ulesra";
			Body = 0x190;
			Hue = 0x798;

			SetStr( 100 ); //I've set him up with normal stats since we've defined his Hits and his weapons speed elsewhere.
			SetDex( 100 );
			SetInt( 100 );

			SetHits( 250, 350 ); // here are his hits according to the spherescript. random between 250 and 350
			SetStam( 350, 450 );

			SetDamage( 10, 15 ); //i set his damage to be low since he hits like 3 times a second. This will probably need to be tweaked.

			SetSkill( SkillName.Archery, 110.0 ); //we dont need to give him uberskillz
			SetSkill( SkillName.Tactics, 110.0 );
			SetSkill( SkillName.MagicResist, 100.0 );

			Fame = 3900;
			Karma = -4000;

			VirtualArmor = 70; //this might need to be tweaked

			//Here we add his loot. I'm omitting his gloves since that's later in his dress.
            //no here do you NOT add the loot, onyl whats in hes backpack.
			Container pack = new Backpack();
			pack.Movable = false;
			pack.DropItem( new Arrow( 50 ) );
			AddItem( pack );
			//Now we dress him
			Item shroud = new HoodedShroudOfShadows(); //since we want a custom shroud, we define it here.
			shroud.Movable = false; //this way we dont let the shroud drop
			shroud.Hue = 0x798; //omg more props
			AddItem( shroud ); //add the item

			Item smurfshoes = new Sandals(); //since sandals are already a class i've named it smurfshoes. It doesnt matter what we call it.
			smurfshoes.Movable = false; // leet shoes for the players? GM tailoring kthx.
			smurfshoes.Hue = 0x798; // more props
			AddItem( smurfshoes ); //add the item

			Bow weapon = new Bow(); //same thing. define the weapon.
			weapon.Skill = SkillName.Archery; //props
			weapon.Hue = 0x798; //we're leet
			weapon.Speed = 90; //set the speed to 5 higher than the cho ku no.
			weapon.DamageLevel = WeaponDamageLevel.Force; //bow of force
			weapon.Movable = false; // not for players
			AddItem( weapon ); //add the weapon

			Item gloves = new PlateGloves(); // here we add his gloves. this time we let them drop
			gloves.Hue = 0x798; //omg more props
			AddItem( gloves ); //add the item
		}
Esempio n. 12
0
        public TillerManHS(BaseGalleon galleon, uint keyValue, Point3D initOffset)
            : base()
        {
			Location = initOffset;
			galleon.Embark(this);
			galleon.TillerManMobile = this;
            m_Galleon = galleon;
			m_KeyValue = keyValue;
            CantWalk = true;
			Blessed = true;

            InitStats(31, 41, 51);

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();


            if (this.Female = Utility.RandomBool())
            {
                this.Body = 0x191;
                this.Name = NameList.RandomName("female");
                AddItem(new Kilt(Utility.RandomDyedHue()));
                AddItem(new Shirt(Utility.RandomDyedHue()));
                AddItem(new ThighBoots());
                Title = "the tillerman";
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
                AddItem(new Shirt(Utility.RandomDyedHue()));
                AddItem(new Sandals());
                Title = "the tillerman";
            }

            AddItem(new Bandana(Utility.RandomDyedHue()));

            Utility.AssignRandomHair(this);

            Container pack = new Backpack();

            pack.DropItem(new Gold(250, 300));

            pack.Movable = false;

            AddItem(pack);
        }
Esempio n. 13
0
        public OutlanderLord()
            : base(AIType.AI_Archer, FightMode.Closest, 10, 3, 0.2, 0.4)
        {
            Name = "an outlander lord";
            Body = 773;
            Team = 2;

            SetStr(401, 500);
            SetDex(81, 100);
            SetInt(151, 200);

            SetHits(241, 300);

            SetDamage(10, 12);

            SetDamageType(ResistanceType.Physical, 100);

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

            SetSkill(SkillName.Anatomy, 90.1, 100.0);
            SetSkill(SkillName.Archery, 95.1, 100.0);
            SetSkill(SkillName.Healing, 80.1, 100.0);
            SetSkill(SkillName.MagicResist, 120.1, 130.0);
            SetSkill(SkillName.Swords, 90.1, 100.0);
            SetSkill(SkillName.Tactics, 95.1, 100.0);
            SetSkill(SkillName.Wrestling, 90.1, 100.0);

            Fame = 15000;
            Karma = -15000;

            VirtualArmor = 28;

            Container pack = new Backpack();

            pack.DropItem(new Arrow(Utility.RandomMinMax(25, 35)));
            pack.DropItem(new Arrow(Utility.RandomMinMax(25, 35)));
            pack.DropItem(new Bandage(Utility.RandomMinMax(5, 15)));
            pack.DropItem(new Bandage(Utility.RandomMinMax(5, 15)));
            pack.DropItem(Loot.RandomGem());
            pack.DropItem(new ArcaneGem());
            pack.DropItem(new OutlanderHead());
            PackItem(pack);

            //AddItem(new JukaBow());

            // TODO: Bandage self
        }
Esempio n. 14
0
        public Gypsy()
            : base(AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4)
        {
            InitStats( 31, 41, 51 );

            SpeechHue = Utility.RandomDyedHue();

            SetSkill( SkillName.Cooking, 65, 88 );
            SetSkill( SkillName.Snooping, 65, 88 );
            SetSkill( SkillName.Stealing, 65, 88 );

            Hue = Utility.RandomSkinHue();

            if( this.Female = Utility.RandomBool() )
            {
                this.Body = 0x191;
                this.Name = NameList.RandomName( "female" );
                AddItem( new Kilt( Utility.RandomDyedHue() ) );
                AddItem( new Shirt( Utility.RandomDyedHue() ) );
                AddItem( new ThighBoots() );
                Title = "a cigana";
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName( "male" );
                AddItem( new ShortPants( Utility.RandomNeutralHue() ) );
                AddItem( new Shirt( Utility.RandomDyedHue() ) );
                AddItem( new Sandals() );
                Title = "o cigano";
            }

            AddItem( new Bandana( Utility.RandomDyedHue() ) );
            AddItem( new Dagger() );

            Utility.AssignRandomHair( this );

            Container pack = new Backpack();

            pack.DropItem( new Gold( 250, 300 ) );

            pack.Movable = false;

            AddItem( pack );
        }
Esempio n. 15
0
        public GoblinBountyHunter()
        {
            Title = "the goblin bounty hunter";

            Body = 0x190;
            Name = NameList.RandomName("male");

            AddItem(new PlateChest());
            AddItem(new PlateArms());
            AddItem(new PlateLegs());
            AddItem(new BodySash(Utility.RandomYellowHue()));
            //DropItem(Robe());

            Utility.AssignRandomHair(this);

            if (Utility.RandomBool())
                Utility.AssignRandomFacialHair(this, HairHue);

            Halberd weapon = new Halberd();

            weapon.Movable = false;
            weapon.Crafter = this;
            weapon.Quality = WeaponQuality.Exceptional;

            AddItem(weapon);

            Container pack = new Backpack();

            pack.Movable = false;

            pack.DropItem(new Factions.Silver(10, 25));

            AddItem(pack);

            Skills[SkillName.Anatomy].Base = 120.0;
            Skills[SkillName.Tactics].Base = 120.0;
            Skills[SkillName.Swords].Base = 120.0;
            Skills[SkillName.MagicResist].Base = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;

            SetSkill(SkillName.Camping, 80.0, 100.0);
            SetSkill(SkillName.Forensics, 80.0, 100.0);
            SetSkill(SkillName.SpiritSpeak, 80.0, 100.0);
        }
Esempio n. 16
0
        public TillerMan(BaseGalleon galleon)
            : base()
        {
            m_Galleon = galleon;
            CantWalk = true;

            InitStats(31, 41, 51);

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();


            if (this.Female = Utility.RandomBool())
            {
                this.Body = 0x191;
                this.Name = NameList.RandomName("female");
                AddItem(new Kilt(Utility.RandomDyedHue()));
                AddItem(new Shirt(Utility.RandomDyedHue()));
                AddItem(new ThighBoots());
                Title = "the tillerman";
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
                AddItem(new Shirt(Utility.RandomDyedHue()));
                AddItem(new Sandals());
                Title = "the tillerman";
            }

            AddItem(new Bandana(Utility.RandomDyedHue()));

            Utility.AssignRandomHair(this);

            Container pack = new Backpack();

            pack.DropItem(new Gold(250, 300));

            pack.Movable = false;

            AddItem(pack);
        }
Esempio n. 17
0
        public OutlanderWarrior()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "an outlander warrior";
            Body = 771;
            Team = 2;

            SetStr(251, 350);
            SetDex(61, 80);
            SetInt(101, 150);

            SetHits(151, 210);

            SetDamage(7, 9);

            SetDamageType(ResistanceType.Physical, 100);

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

            SetSkill(SkillName.Anatomy, 80.1, 90.0);
            SetSkill(SkillName.Fencing, 80.1, 90.0);
            SetSkill(SkillName.Macing, 80.1, 90.0);
            SetSkill(SkillName.MagicResist, 120.1, 130.0);
            SetSkill(SkillName.Swords, 80.1, 90.0);
            SetSkill(SkillName.Tactics, 80.1, 90.0);
            SetSkill(SkillName.Wrestling, 80.1, 90.0);

            Fame = 10000;
            Karma = -10000;

            VirtualArmor = 22;

            Container pack = new Backpack();
            pack.DropItem(new OutlanderHead());
            PackItem(pack);

            if (Utility.RandomDouble() < 0.1)
                PackItem(new ArcaneGem());
        }
Esempio n. 18
0
		public override void InitBody( Faction faction )
		{
			Utility.AssignRandomHair( this );

			if ( Female = Utility.RandomBool() )
			{
				Body = 0x191;
				Name = NameList.RandomName( "female" );
			}
			else
			{
				Body = 0x190;
				Name = NameList.RandomName( "male" );

				if( Utility.RandomBool() )
					Utility.AssignRandomFacialHair( this, HairHue );
			}

			InitStats( 1000, 1000, 1000 );

			if ( faction != null )
				Title = String.Format( "the {0} guard", faction.Definition.FriendlyName.ToLower() );
			else
				Title = "the guard";

			SpeechHue = Utility.RandomDyedHue();

			Hue = Utility.RandomSkinHue();

			Container pack = new Backpack();
			pack.Movable = false;

			pack.DropItem( new Gold( 10, 25 ) );

			AddItem( pack );

			Skills[SkillName.Anatomy].Base = 120.0;
			Skills[SkillName.Tactics].Base = 120.0;
			Skills[SkillName.Swords].Base = 120.0;
			Skills[SkillName.MagicResist].Base = 120.0;
			Skills[SkillName.DetectHidden].Base = 100.0;
		}
Esempio n. 19
0
        public Beggar() : base(AIType.AI_Thief, FightMode.None, 10, 1, 0.4, 1.6)
        {
            InitStats(85, 75, 65);

            Title = "the beggar";
            Hue = Utility.RandomSkinHue();

            if (Female == Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");
            }

            // Start with some rags to wear
            AddItem(new Shirt(Utility.RandomNeutralHue()));
            AddItem(new ShortPants(Utility.RandomNeutralHue()));
            // Beggers need hair too
            Item hair = new Item(Utility.RandomList(0x203B, 0x2049, 0x2048, 0x204A))
                            {
                                Hue = Utility.RandomNondyedHue(),
                                Layer = Layer.Hair,
                                Movable = false
                            };
            AddItem(hair);
            // Start with just a little gold
            Container pack = new Backpack();
            pack.DropItem(new Gold(10, 50));
            pack.Movable = false;
            AddItem(pack);
            // Give some street skills
            Skills[SkillName.Stealing].Base = Utility.Random(50, 70);
            Skills[SkillName.Wrestling].Base = Utility.Random(50, 25);
            Skills[SkillName.Begging].Base = Utility.Random(80, 95);
            // toughen him up a tad
            VirtualArmor = 10;
        }
Esempio n. 20
0
    public Ludwig()
    {

        ///////////STR/DEX/INT
        InitStats(100, 41, 51);

        ///////////name
        Name = "Ludwig";

            ///////////title
            Title = "Quest Giver";

            ///////////sex. 0x191 is female, 0x190 is male.
            Body = 0x190;

        Fame = 5000;
        Karma = 5000;

        ///////////skincolor
        Hue = 0x83F8;

        ///////////Random hair and haircolor
        HairItemID = 0x2045;
        HairHue = 986;

        ///////////clothing and hues
        AddItem(new LongPants(656));
        AddItem(new Boots());
        AddItem(new Shirt(785));

        ///////////immortal and frozen to-the-spot features below:
        Blessed = true;
        CantWalk = true;

        ///////////Adding a backpack
        Container pack = new Backpack();
        pack.DropItem(new Gold(250, 300));
        pack.Movable = false;
        AddItem(pack);
    }
Esempio n. 21
0
		public HarborMaster()
			: base( AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4 )
		{
			InitStats( 31, 41, 51 );

			SetSkill( SkillName.Mining, 36, 68 );

            Karma = 200;
			SpeechHue = 0;
			Hue = Utility.RandomSkinHue();
			Blessed = true;


			if( Female = Utility.RandomBool() )
			{
				Body = 0x191;
				Name = NameList.RandomName( "female" );
				Title = "the Harbor Mistress";
			}
			else
			{
				Body = 0x190;
				Name = NameList.RandomName( "male" );
				Title = "the Harbor Master";
			}
			AddItem( new Shirt( Utility.RandomDyedHue() ) );
			AddItem( new Boots() );
			AddItem( new LongPants( Utility.RandomNeutralHue() ) );
			AddItem( new QuarterStaff() );

			Utility.AssignRandomHair( this );

			Container pack = new Backpack();

			pack.DropItem( new Gold( 20, 30 ) );

			pack.Movable = false;

			AddItem( pack );
		}
Esempio n. 22
0
    public Brent()
    {

        ///////////STR/DEX/INT
        InitStats(100, 41, 51);

        ///////////name
        Name = "Brent";

        ///////////title
        Title = "The Sewer Engineer";

        ///////////sex. 0x191 is female, 0x190 is male.
        Body = 0x190;

        Fame = 5000;
        Karma = 5000;

        ///////////skincolor
        Hue = Utility.RandomSkinHue();

        ///////////Random hair and haircolor
        Utility.AssignRandomHair(this);

        ///////////clothing and hues
        AddItem(new FancyShirt(Utility.RandomYellowHue()));
        AddItem(new LongPants(Utility.RandomYellowHue()));
        AddItem(new ThighBoots(Utility.RandomNeutralHue()));

        ///////////immortal and frozen to-the-spot features below:
        Blessed = true;
        CantWalk = true;

        ///////////Adding a backpack
        Container pack = new Backpack();
        pack.DropItem(new Gold(250, 300));
        pack.Movable = false;
        AddItem(pack);
    }
Esempio n. 23
0
		public Artist()
			: base( AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4 )
		{
			InitStats( 31, 41, 51 );

			SetSkill( SkillName.Healing, 36, 68 );


			SpeechHue = Utility.RandomDyedHue();
			Title = "the artist";
			Hue = Utility.RandomSkinHue();


			if( this.Female = Utility.RandomBool() )
			{
				this.Body = 0x191;
				this.Name = NameList.RandomName( "female" );
			}
			else
			{
				this.Body = 0x190;
				this.Name = NameList.RandomName( "male" );
			}
			AddItem( new Doublet( Utility.RandomDyedHue() ) );
			AddItem( new Sandals( Utility.RandomNeutralHue() ) );
			AddItem( new ShortPants( Utility.RandomNeutralHue() ) );
			AddItem( new HalfApron( Utility.RandomDyedHue() ) );

			Utility.AssignRandomHair( this );

			Container pack = new Backpack();

			pack.DropItem( new Gold( 250, 300 ) );

			pack.Movable = false;

			AddItem( pack );
		}
Esempio n. 24
0
        public RealEstateBroker()
            : base(AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4)
        {
            InitStats(31, 41, 51);

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();

            if (this.Female = Utility.RandomBool())
            {
                this.Body = 0x191;
                this.Name = NameList.RandomName("female");
                AddItem(new LongPants(Utility.RandomNeutralHue()));
                AddItem(new FancyShirt(Utility.RandomDyedHue()));
                //Title = "the actress";
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName("male");
                AddItem(new LongPants(Utility.RandomNeutralHue()));
                AddItem(new FancyShirt(Utility.RandomDyedHue()));
                //Title = "the actor";
            }

            AddItem(new Boots(Utility.RandomNeutralHue()));

            Utility.AssignRandomHair(this);

            Container pack = new Backpack();

            pack.DropItem(new Gold(250, 300));

            pack.Movable = false;

            AddItem(pack);
        }
Esempio n. 25
0
		public JukaLord() : base( AIType.AI_Archer, FightMode.Closest, 10, 3, 0.2, 0.4 )
		{
			Name = "a juka lord";
			Body = 766;

			SetStr( 401, 500 );
			SetDex( 81, 100 );
			SetInt( 151, 200 );

			SetHits( 241, 300 );

			SetDamage( 10, 12 );

			SetSkill( SkillName.Anatomy, 90.1, 100.0 );
			SetSkill( SkillName.Archery, 95.1, 100.0 );
			SetSkill( SkillName.Healing, 80.1, 100.0 );
			SetSkill( SkillName.MagicResist, 120.1, 130.0 );
			SetSkill( SkillName.Swords, 90.1, 100.0 );
			SetSkill( SkillName.Tactics, 95.1, 100.0 );
			SetSkill( SkillName.Wrestling, 90.1, 100.0 );

			Fame = 15000;
			Karma = -15000;

			VirtualArmor = 28;

			Container pack = new Backpack();

			pack.DropItem( new Arrow( Utility.RandomMinMax( 5, 35 ) ) );
			pack.DropItem( new Arrow( Utility.RandomMinMax( 5, 35 ) ) );
			pack.DropItem( new Bandage( Utility.RandomMinMax( 1, 15 ) ) );
			pack.DropItem( new Bandage( Utility.RandomMinMax( 1, 15 ) ) );
			pack.DropItem( Loot.RandomGem() );
			pack.DropItem( new ArcaneGem() );

			PackItem( pack );

			PackGold( 300, 500 );
			PackArmor( 0, 4 );
			PackWeapon( 0, 4 );

			AddItem( new JukaBow() );

			// TODO: Bandage self
		}
Esempio n. 26
0
		public Wench()
			: base( AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4 )
		{
			InitStats( 31, 41, 51 );

            Title = "the wench";
            Body = 0x191; // female
            Name = NameList.RandomName(" female");

            switch (Utility.Random(3))
            {
                case 0: AddItem(new GoldNecklace()); break;
                case 1: AddItem(new GoldRing()); break;
                case 2: AddItem(new GoldBracelet()); break;
            }

            AddItem(new PlainDress(Utility.RandomYellowHue()));

			Container pack = new Backpack();
			pack.DropItem( new Gold( 250, 300 ) );
			pack.Movable = false;
			AddItem( pack );
		}
Esempio n. 27
0
		public Eurystheus()
		{
			Name = "Eurystheus";
			Title = "The Brother";
			Body = 0x190;
			CantWalk = true;
			Hue = Utility.RandomSkinHue();
			InitStats( 31, 41, 51 );

			Blessed = true;

			Utility.AssignRandomHair( this );

			AddItem( new Server.Items.FancyShirt( Utility.RandomNeutralHue() ) );
			AddItem( new Server.Items.LongPants( Utility.RandomNeutralHue() ) );
			AddItem( new Server.Items.Boots( Utility.RandomNeutralHue() ) );

			Container pack = new Backpack();
			pack.DropItem( new Gold( 250, 300 ) );
			pack.Movable = false;
			AddItem( pack );
                 

		}
Esempio n. 28
0
		public MeerCaptain() : base( AIType.AI_Archer, FightMode.Evil, 10, 1, 0.2, 0.4 )
		{
			Body = 773;

			SetStr( 96, 110 );
			SetDex( 186, 200 );
			SetInt( 96, 110 );

			SetHits( 58, 66 );

			SetDamage( 5, 15 );

			

			
			
			
			
			

			SetSkill( SkillName.Archery, 90.1, 100.0 );
			SetSkill( SkillName.MagicResist, 91.0, 100.0 );
			SetSkill( SkillName.Swords, 90.1, 100.0 );
			SetSkill( SkillName.Tactics, 91.0, 100.0 );
			SetSkill( SkillName.Wrestling, 80.9, 89.9 );

			Fame = 2000;
			Karma = 5000;

			VirtualArmor = 28;

			Container pack = new Backpack();

			pack.DropItem( new Bolt( Utility.RandomMinMax( 10, 20 ) ) );
			pack.DropItem( new Bolt( Utility.RandomMinMax( 10, 20 ) ) );

			switch ( Utility.Random( 6 ) )
			{
				case 0: pack.DropItem( new Broadsword() ); break;
				case 1: pack.DropItem( new Cutlass() ); break;
				case 2: pack.DropItem( new Katana() ); break;
				case 3: pack.DropItem( new Longsword() ); break;
				case 4: pack.DropItem( new Scimitar() ); break;
				case 5: pack.DropItem( new VikingSword() ); break;
			}

			Container bag = new Bag();

			int count = Utility.RandomMinMax( 10, 20 );

			for ( int i = 0; i < count; ++i )
			{
				Item item = Loot.RandomReagent();

				if ( item == null )
					continue;

				if ( !bag.TryDropItem( this, item, false ) )
					item.Delete();
			}

			pack.DropItem( bag );

			AddItem( new Crossbow() );
			PackItem( pack );

			m_NextAbilityTime = DateTime.UtcNow + TimeSpan.FromSeconds( Utility.RandomMinMax( 2, 5 ) );
		}
Esempio n. 29
0
        public WarriorGuard(Mobile target)
            : base(target)
        {
            SpeechHue = Utility.RandomDyedHue();
            Hue = Utility.RandomSkinHue();
            Title = "the guard";

            if (Female = Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");

                switch (Utility.Random(2))
                {
                    case 0: AddItem(new LeatherSkirt()); break;
                    case 1: AddItem(new LeatherShorts()); break;
                }

                AddItem(new FemalePlateChest());
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");

                Item item = new Shirt();
                AddItem(item);
                item.Hue = Utility.RandomNondyedHue();

                item = new ShortPants();
                AddItem(item);
                item.Hue = Utility.RandomNondyedHue();

                item = new PlateChest();
                AddItem(item);

                item = new PlateLegs();
                AddItem(item);

                item = new PlateArms();
                AddItem(item);

                item = new Tunic();
                AddItem(item);
                item.Hue = Utility.RandomNondyedHue();
            }
            Utility.AssignRandomHair(this);

            if (Female)
                Utility.AssignRandomFacialHair(this, HairHue);

            Halberd weapon = new Halberd();

            weapon.Movable = false;
            weapon.Quality = WeaponQuality.Exceptional;

            AddItem(weapon);

            Container pack = new Backpack();

            pack.Movable = false;

            pack.DropItem(new Gold(10, 25));

            AddItem(pack);
        }
Esempio n. 30
0
        public static void Fill(LockableContainer cont, int luck, int level, bool isSos)
        {
            // Apply Felucca luck bonus
            if (cont.Map == Map.Felucca)
            {
                luck += Mobiles.RandomItemGenerator.FeluccaLuckBonus;
            }

            cont.Movable = false;
            cont.Locked  = true;
            int numberItems;

            if (level == 0)
            {
                cont.LockLevel = 0; // Can't be unlocked

                cont.DropItem(new Gold(Utility.RandomMinMax(50, 100)));

                if (Utility.RandomDouble() < 0.75)
                {
                    cont.DropItem(new TreasureMap(0, Map.Trammel));
                }
            }
            else
            {
                cont.TrapType  = TrapType.ExplosionTrap;
                cont.TrapPower = level * 25;
                cont.TrapLevel = level;

                switch (level)
                {
                case 1:
                    cont.RequiredSkill = 5;
                    break;

                case 2:
                    cont.RequiredSkill = 45;
                    break;

                case 3:
                    cont.RequiredSkill = 65;
                    break;

                case 4:
                    cont.RequiredSkill = 75;
                    break;

                case 5:
                    cont.RequiredSkill = 75;
                    break;

                case 6:
                    cont.RequiredSkill = 80;
                    break;

                case 7:
                    cont.RequiredSkill = 80;
                    break;
                }

                cont.LockLevel    = cont.RequiredSkill - 10;
                cont.MaxLockLevel = cont.RequiredSkill + 40;

                cont.DropItem(new Gold(level * 5000));

                for (int i = 0; i < level * 5; ++i)
                {
                    cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular));
                }

                double propsScale = 1.0;
                if (Core.SE)
                {
                    switch (level)
                    {
                    case 1:
                        numberItems = 32;
                        propsScale  = 0.5625;
                        break;

                    case 2:
                        numberItems = 40;
                        propsScale  = 0.6875;
                        break;

                    case 3:
                        numberItems = 48;
                        propsScale  = 0.875;
                        break;

                    case 4:
                        numberItems = 56;
                        break;

                    case 5:
                        numberItems = 64;
                        break;

                    case 6:
                        numberItems = 72;
                        break;

                    case 7:
                        numberItems = 80;
                        break;

                    default:
                        numberItems = 0;
                        break;
                    }
                }
                else
                {
                    numberItems = level * 6;
                }

                for (int i = 0; i < numberItems; ++i)
                {
                    Item item;

                    if (Core.AOS)
                    {
                        item = Loot.RandomArmorOrShieldOrWeaponOrJewelry();
                    }
                    else
                    {
                        item = Loot.RandomArmorOrShieldOrWeapon();
                    }

                    if (item != null && Core.HS && RandomItemGenerator.Enabled)
                    {
                        int min, max;
                        GetRandomItemStat(out min, out max, propsScale);

                        RunicReforging.GenerateRandomItem(item, LootPack.GetLuckChance(luck), min, max);

                        cont.DropItem(item);
                    }
                    else if (item is BaseWeapon)
                    {
                        BaseWeapon weapon = (BaseWeapon)item;

                        if (Core.AOS)
                        {
                            int attributeCount;
                            int min, max;

                            GetRandomAOSStats(out attributeCount, out min, out max);

                            BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max);
                        }
                        else
                        {
                            weapon.DamageLevel     = (WeaponDamageLevel)Utility.Random(6);
                            weapon.AccuracyLevel   = (WeaponAccuracyLevel)Utility.Random(6);
                            weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6);
                        }

                        cont.DropItem(item);
                    }
                    else if (item is BaseArmor)
                    {
                        BaseArmor armor = (BaseArmor)item;

                        if (Core.AOS)
                        {
                            int attributeCount;
                            int min, max;

                            GetRandomAOSStats(out attributeCount, out min, out max);

                            BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max);
                        }
                        else
                        {
                            armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6);
                            armor.Durability      = (ArmorDurabilityLevel)Utility.Random(6);
                        }

                        cont.DropItem(item);
                    }
                    else if (item is BaseHat)
                    {
                        BaseHat hat = (BaseHat)item;

                        if (Core.AOS)
                        {
                            int attributeCount;
                            int min, max;

                            GetRandomAOSStats(out attributeCount, out min, out max);

                            BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max);
                        }

                        cont.DropItem(item);
                    }
                    else if (item is BaseJewel)
                    {
                        int attributeCount;
                        int min, max;

                        GetRandomAOSStats(out attributeCount, out min, out max);

                        BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max);

                        cont.DropItem(item);
                    }
                }
            }

            int reagents;

            if (level == 0)
            {
                reagents = 12;
            }
            else
            {
                reagents = level + 1;
            }

            for (int i = 0; i < reagents; i++)
            {
                Item item = Loot.RandomPossibleReagent();
                item.Amount = Utility.RandomMinMax(40, 60);
                cont.DropItem(item);
            }

            int gems;

            if (level == 0)
            {
                gems = 2;
            }
            else
            {
                gems = (level * 3) + 1;
            }

            for (int i = 0; i < gems; i++)
            {
                Item item = Loot.RandomGem();
                cont.DropItem(item);
            }

            if (level > 1)
            {
                Item item = Loot.Construct(m_ImbuingIngreds[Utility.Random(m_ImbuingIngreds.Length)]);

                item.Amount = level;
                cont.DropItem(item);
            }

            Item arty    = null;
            Item special = null;

            if (isSos)
            {
                if (0.004 * level > Utility.RandomDouble())
                {
                    arty = Loot.Construct(m_SOSArtifacts);
                }
                if (0.006 * level > Utility.RandomDouble())
                {
                    special = Loot.Construct(m_SOSDecor);
                }
                else if (0.009 * level > Utility.RandomDouble())
                {
                    special = new TreasureMap(Utility.RandomMinMax(level, Math.Min(7, level + 1)), cont.Map);
                }
            }
            else
            {
                if (level >= 7)
                {
                    if (0.025 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelSevenOnly);
                    }
                    else if (0.10 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelFiveToSeven);
                    }
                    else if (0.25 > Utility.RandomDouble())
                    {
                        special = GetRandomSpecial(level, cont.Map);
                    }

                    arty = Loot.Construct(m_Artifacts);
                }
                else if (level >= 6)
                {
                    if (0.025 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelFiveToSeven);
                    }
                    else if (0.10 > Utility.RandomDouble())
                    {
                        special = GetRandomSpecial(level, cont.Map);
                    }

                    arty = Loot.Construct(m_Artifacts);
                }
                else if (level >= 5)
                {
                    if (0.05 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelFiveToSeven);
                    }
                    else if (0.25 > Utility.RandomDouble())
                    {
                        special = GetRandomSpecial(level, cont.Map);
                    }
                }
                else if (.10 > Utility.RandomDouble())
                {
                    special = GetRandomSpecial(level, cont.Map);
                }
            }

            if (arty != null)
            {
                Container pack = new Backpack();
                pack.Hue = 1278;

                pack.DropItem(arty);
                cont.DropItem(pack);
            }

            if (special != null)
            {
                cont.DropItem(special);
            }
        }
Esempio n. 31
0
		public virtual void Destroy( bool toBackpack )
		{
			Return();

			if ( !BaseHouse.NewVendorSystem )
				FixDresswear();

			/* Possible cases regarding item return:
			 * 
			 * 1. No item must be returned
			 *       -> do nothing.
			 * 2. ( toBackpack is false OR the vendor is in the internal map ) AND the vendor is associated with a AOS house
			 *       -> put the items into the moving crate or a vendor inventory,
			 *          depending on whether the vendor owner is also the house owner.
			 * 3. ( toBackpack is true OR the vendor isn't associated with any AOS house ) AND the vendor isn't in the internal map
			 *       -> put the items into a backpack.
			 * 4. The vendor isn't associated with any house AND it's in the internal map
			 *       -> do nothing (we can't do anything).
			 */

			ArrayList list = GetItems();

			if ( list.Count > 0 || HoldGold > 0 ) // No case 1
			{
				if ( ( !toBackpack || this.Map == Map.Internal ) && House != null && House.IsAosRules ) // Case 2
				{
					if ( House.IsOwner( Owner ) ) // Move to moving crate
					{
						if ( House.MovingCrate == null )
							House.MovingCrate = new MovingCrate( House );

						if ( HoldGold > 0 )
							Banker.Deposit( House.MovingCrate, HoldGold );

						foreach ( Item item in list )
						{
							House.MovingCrate.DropItem( item );
						}
					}
					else // Move to vendor inventory
					{
						VendorInventory inventory = new VendorInventory( House, Owner, Name, ShopName );
						inventory.Gold = HoldGold;

						foreach ( Item item in list )
						{
							inventory.AddItem( item );
						}

						House.VendorInventories.Add( inventory );
					}
				}
				else if ( ( toBackpack || House == null || !House.IsAosRules ) && this.Map != Map.Internal ) // Case 3 - Move to backpack
				{
					Container backpack = new Backpack();

					if ( HoldGold > 0 )
						Banker.Deposit( backpack, HoldGold );

					foreach ( Item item in list )
					{
						backpack.DropItem( item );
					}

					backpack.MoveToWorld( this.Location, this.Map );
				}
			}

			Delete();
		}
        private bool MoveItemsToBank(Mobile m)
        {
            Backpack  bag   = new Backpack();
            ArrayList equip = new ArrayList(m.Items);

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

                // erl: added check for Mobile.Alive property... will not return false if mobile is not alive
                if (125 - m.BankBox.TotalItems - 1 - m.Backpack.TotalItems - WornCount < 0 && m.Alive)
                {
                    return(false);
                }

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

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

                // Drop our new bag in the player's bank
                m.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)
                {
                    // If there's room, drop the item in the bank, otherwise drop it on the ground
                    if (bag.TryDropItem(m, i, false) || !m.Alive)
                    {
                        bag.DropItem(i);
                    }
                    else
                    {
                        i.DropToWorld(m, m.Location);
                    }
                }
            }

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

            Item aiStinger = new Server.Items.AIStinger();

            if (!m.AddToBackpack(aiStinger))
            {
                aiStinger.Delete();
            }

            Item spellbook = new Server.Items.Spellbook();

            if (!m.AddToBackpack(spellbook))
            {
                spellbook.Delete();
            }
            return(true);
        }
Esempio n. 33
0
        public static void Fill(LockableContainer cont, int luck, int level, bool isSos, Map map)
        {
            cont.Movable = false;
            cont.Locked  = true;
            int count;

            if (level == 0)
            {
                cont.LockLevel = 0; // Can't be unlocked

                cont.DropItem(new Gold(Utility.RandomMinMax(50, 100)));

                if (Utility.RandomDouble() < 0.75)
                {
                    cont.DropItem(new TreasureMap(0, Map.Trammel));
                }
            }
            else
            {
                cont.TrapType  = TrapType.ExplosionTrap;
                cont.TrapPower = level * 25;
                cont.TrapLevel = level;

                switch (level)
                {
                case 1:
                    cont.RequiredSkill = 5;
                    break;

                case 2:
                    cont.RequiredSkill = 45;
                    break;

                case 3:
                    cont.RequiredSkill = 65;
                    break;

                case 4:
                    cont.RequiredSkill = 75;
                    break;

                case 5:
                    cont.RequiredSkill = 75;
                    break;

                case 6:
                    cont.RequiredSkill = 80;
                    break;

                case 7:
                    cont.RequiredSkill = 80;
                    break;
                }

                cont.LockLevel    = cont.RequiredSkill - 10;
                cont.MaxLockLevel = cont.RequiredSkill + 40;

                #region gold
                cont.DropItem(new Gold(isSos ? level * 10000 : level * 5000));
                #endregion

                #region Scrolls
                if (isSos)
                {
                    switch (level)
                    {
                    default: count = 20; break;

                    case 0:
                    case 1: count = Utility.RandomMinMax(2, 5); break;

                    case 2: count = Utility.RandomMinMax(10, 15); break;
                    }
                }
                else
                {
                    count = level * 5;
                }

                for (int i = 0; i < count; ++i)
                {
                    cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular));
                }
                #endregion

                #region Magical Items
                double propsScale = 1.0;

                if (Core.SE)
                {
                    switch (level)
                    {
                    case 1:
                        count      = isSos ? Utility.RandomMinMax(2, 6) : 32;
                        propsScale = 0.5625;
                        break;

                    case 2:
                        count      = isSos ? Utility.RandomMinMax(10, 15) : 40;
                        propsScale = 0.6875;
                        break;

                    case 3:
                        count      = isSos ? Utility.RandomMinMax(15, 20) : 48;
                        propsScale = 0.875;
                        break;

                    case 4:
                        count = isSos ? Utility.RandomMinMax(15, 20) : 56;
                        break;

                    case 5:
                        count = isSos ? Utility.RandomMinMax(15, 20) : 64;
                        break;

                    case 6:
                        count = isSos ? Utility.RandomMinMax(15, 20) : 72;
                        break;

                    case 7:
                        count = isSos ? Utility.RandomMinMax(15, 20) : 80;
                        break;

                    default:
                        count = 0;
                        break;
                    }
                }
                else
                {
                    count = level * 6;
                }

                for (int i = 0; i < count; ++i)
                {
                    Item item;

                    if (Core.AOS)
                    {
                        item = Loot.RandomArmorOrShieldOrWeaponOrJewelry();
                    }
                    else
                    {
                        item = Loot.RandomArmorOrShieldOrWeapon();
                    }

                    if (item != null && Core.HS && RandomItemGenerator.Enabled)
                    {
                        int min, max;
                        GetRandomItemStat(out min, out max, propsScale);

                        RunicReforging.GenerateRandomItem(item, luck, min, max, map);

                        cont.DropItem(item);
                    }
                    else if (item is BaseWeapon)
                    {
                        BaseWeapon weapon = (BaseWeapon)item;

                        if (Core.AOS)
                        {
                            int attributeCount;
                            int min, max;

                            GetRandomAOSStats(out attributeCount, out min, out max);

                            BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max);
                        }
                        else
                        {
                            weapon.DamageLevel     = (WeaponDamageLevel)Utility.Random(6);
                            weapon.AccuracyLevel   = (WeaponAccuracyLevel)Utility.Random(6);
                            weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6);
                        }

                        cont.DropItem(item);
                    }
                    else if (item is BaseArmor)
                    {
                        BaseArmor armor = (BaseArmor)item;

                        if (Core.AOS)
                        {
                            int attributeCount;
                            int min, max;

                            GetRandomAOSStats(out attributeCount, out min, out max);

                            BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max);
                        }
                        else
                        {
                            armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6);
                            armor.Durability      = (ArmorDurabilityLevel)Utility.Random(6);
                        }

                        cont.DropItem(item);
                    }
                    else if (item is BaseHat)
                    {
                        BaseHat hat = (BaseHat)item;

                        if (Core.AOS)
                        {
                            int attributeCount;
                            int min, max;

                            GetRandomAOSStats(out attributeCount, out min, out max);

                            BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max);
                        }

                        cont.DropItem(item);
                    }
                    else if (item is BaseJewel)
                    {
                        int attributeCount;
                        int min, max;

                        GetRandomAOSStats(out attributeCount, out min, out max);

                        BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max);

                        cont.DropItem(item);
                    }
                }
            }
            #endregion

            #region Reagents
            if (isSos)
            {
                switch (level)
                {
                default: count = Utility.RandomMinMax(45, 60); break;

                case 0:
                case 1: count = Utility.RandomMinMax(15, 20); break;

                case 2: count = Utility.RandomMinMax(25, 40); break;
                }
            }
            else
            {
                count = level == 0 ? 12 : Utility.RandomMinMax(40, 60) * (level + 1);
            }

            for (int i = 0; i < count; i++)
            {
                cont.DropItemStack(Loot.RandomPossibleReagent());
            }
            #endregion

            #region Gems
            if (level == 0)
            {
                count = 2;
            }
            else
            {
                count = (level * 3) + 1;
            }

            for (int i = 0; i < count; i++)
            {
                cont.DropItem(Loot.RandomGem());
            }
            #endregion

            #region Imbuing Ingreds
            if (level > 1)
            {
                Item item = Loot.Construct(m_ImbuingIngreds[Utility.Random(m_ImbuingIngreds.Length)]);

                item.Amount = level;
                cont.DropItem(item);
            }
            #endregion

            Item arty    = null;
            Item special = null;

            if (isSos)
            {
                if (0.004 * level > Utility.RandomDouble())
                {
                    arty = Loot.Construct(m_SOSArtifacts);
                }
                if (0.006 * level > Utility.RandomDouble())
                {
                    special = Loot.Construct(m_SOSDecor);
                }
                else if (0.009 * level > Utility.RandomDouble())
                {
                    special = new TreasureMap(Utility.RandomMinMax(level, Math.Min(7, level + 1)), cont.Map);
                }
            }
            else
            {
                if (level >= 7)
                {
                    if (0.025 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelSevenOnly);
                    }
                    else if (0.10 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelFiveToSeven);
                    }
                    else if (0.25 > Utility.RandomDouble())
                    {
                        special = GetRandomSpecial(level, cont.Map);
                    }

                    arty = Loot.Construct(m_Artifacts);
                }
                else if (level >= 6)
                {
                    if (0.025 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelFiveToSeven);
                    }
                    else if (0.20 > Utility.RandomDouble())
                    {
                        special = GetRandomSpecial(level, cont.Map);
                    }

                    arty = Loot.Construct(m_Artifacts);
                }
                else if (level >= 5)
                {
                    if (0.005 > Utility.RandomDouble())
                    {
                        special = Loot.Construct(m_LevelFiveToSeven);
                    }
                    else if (0.15 > Utility.RandomDouble())
                    {
                        special = GetRandomSpecial(level, cont.Map);
                    }
                }
                else if (.10 > Utility.RandomDouble())
                {
                    special = GetRandomSpecial(level, cont.Map);
                }
            }

            if (arty != null)
            {
                Container pack = new Backpack();
                pack.Hue = 1278;

                pack.DropItem(arty);
                cont.DropItem(pack);
            }

            if (special != null)
            {
                cont.DropItem(special);
            }

            if (Core.SA)
            {
                int rolls = 2;

                if (level >= 5)
                {
                    rolls += level - 2;
                }

                RefinementComponent.Roll(cont, rolls, 0.10);
            }
        }