コード例 #1
0
        private static void AddDungeonArmor(BaseCreature mob)
        {
            if (mob.Region == null)
            {
                return;
            }

            double chance = 1.0 / 2500.0;
            int    luck   = 0;

            if (mob.LastPlayerKiller != null)
            {
                luck = mob.LastPlayerKiller.Luck;
            }

            chance = chance * (1 + (luck / 100.0));

            bool getArmor = false;

            if (Utility.RandomDouble() <= chance)
            {
                getArmor = true;

                IndexedRegionName regionName = mob.Region.IndexedName;
                Item item = null;

                switch (regionName)
                {
                    /*
                     * case IndexedRegionName.Deceit: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Deceit, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     * case IndexedRegionName.Destard: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Destard, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     * case IndexedRegionName.Shame: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Shame, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     * case IndexedRegionName.Hythloth: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Hythloth, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     *
                     *
                     * //Luthius Expansion
                     * case IndexedRegionName.Covetous: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Covetous, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     * case IndexedRegionName.Wrong: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Wrong, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     * case IndexedRegionName.Despise: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Despise, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     * case IndexedRegionName.IceDungeon: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Ice, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     * case IndexedRegionName.FireDungeon: item = DungeonArmor.CreateDungeonArmor(DungeonEnum.Fire, DungeonArmor.ArmorTierEnum.Tier1, DungeonArmor.ArmorLocation.Unspecified); break;
                     */
                }

                if (item != null)
                {
                    mob.PackItem(item);
                }
            }

            //if (getArmor)
            //mob.PackItem(new ArcaneDust());
        }
コード例 #2
0
        public static void GenerateLoot(BaseCreature creature)
        {
            double difficulty = creature.InitialDifficulty;

            #region High-Level Creatures

            if (creature.IsParagon)
            {
                creature.PackItem(new ArcaneScroll());
            }

            if (creature.Rare)
            {
                creature.PackItem(new ArcaneScroll());
            }

            if (creature.IsLoHBoss())
            {
                creature.PackItem(new ArcaneScroll());

                switch (Utility.RandomMinMax(1, 3))
                {
                case 1: creature.PackItem(new SkillMasteryOrb()); break;

                case 2: creature.PackItem(new SkillMasteryScroll()); break;

                case 3: creature.PackItem(new AspectCore()); break;
                }
            }

            if (creature.IsChamp())
            {
                creature.PackItem(new ArcaneScroll());

                switch (Utility.RandomMinMax(1, 3))
                {
                case 1: creature.PackItem(new SkillMasteryOrb()); break;

                case 2: creature.PackItem(new SkillMasteryScroll()); break;

                case 3: creature.PackItem(new AspectCore()); break;
                }
            }

            if (creature.IsBoss())
            {
                for (int a = 0; a < 5; a++)
                {
                    creature.PackItem(new ArcaneScroll());
                }

                creature.PackItem(new SkillMasteryOrb());
                creature.PackItem(new SkillMasteryScroll());
                creature.PackItem(new AspectCore());

                for (int a = 0; a < 2; a++)
                {
                    if (Utility.RandomDouble() <= .5)
                    {
                        switch (Utility.RandomMinMax(1, 3))
                        {
                        case 1: creature.PackItem(new SkillMasteryOrb()); break;

                        case 2: creature.PackItem(new SkillMasteryScroll()); break;

                        case 3: creature.PackItem(new AspectCore()); break;
                        }
                    }
                }
            }

            if (creature.IsEventBoss())
            {
            }

            #endregion
        }