Exemplo n.º 1
0
        /// <summary>
        /// Populates the bundle with the name, required items, minimum required, and color
        /// </summary>
        protected override void Populate()
        {
            BundleType = Globals.RNGGetAndRemoveRandomValueFromList(RoomBundleTypes);
            List <RequiredItem> potentialItems = new List <RequiredItem>();

            switch (BundleType)
            {
            case BundleTypes.BoilerArtifacts:
                Name           = Globals.GetTranslation("bundle-boiler-artifacts");
                potentialItems = RequiredItem.CreateList(
                    ItemList.GetArtifacts().Where(x => x.DifficultyToObtain < ObtainingDifficulties.RareItem).ToList()
                    );
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, 8);
                MinimumRequiredItems = 3;
                Color = BundleColors.Orange;
                break;

            case BundleTypes.BoilerMinerals:
                Name                 = Globals.GetTranslation("bundle-boiler-minerals");
                potentialItems       = RequiredItem.CreateList(ItemList.GetGeodeMinerals());
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, 8);
                MinimumRequiredItems = Range.GetRandomValue(4, 6);
                Color                = BundleColors.Purple;
                break;

            case BundleTypes.BoilerGeode:
                Name          = Globals.GetTranslation("bundle-boiler-geode");
                RequiredItems = new List <RequiredItem>
                {
                    new RequiredItem((int)ObjectIndexes.Geode, 1, 10),
                    new RequiredItem((int)ObjectIndexes.FrozenGeode, 1, 10),
                    new RequiredItem((int)ObjectIndexes.MagmaGeode, 1, 10),
                    new RequiredItem((int)ObjectIndexes.OmniGeode, 1, 10),
                };
                Color = BundleColors.Red;
                break;

            case BundleTypes.BoilerGemstone:
                Name           = Globals.GetTranslation("bundle-boiler-gemstone");
                potentialItems = RequiredItem.CreateList(new List <int>
                {
                    (int)ObjectIndexes.Quartz,
                    (int)ObjectIndexes.FireQuartz,
                    (int)ObjectIndexes.EarthCrystal,
                    (int)ObjectIndexes.FrozenTear,
                    (int)ObjectIndexes.Aquamarine,
                    (int)ObjectIndexes.Amethyst,
                    (int)ObjectIndexes.Emerald,
                    (int)ObjectIndexes.Ruby,
                    (int)ObjectIndexes.Topaz,
                    (int)ObjectIndexes.Jade,
                    (int)ObjectIndexes.Diamond
                }, 1, 5);
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, Range.GetRandomValue(6, 8));
                MinimumRequiredItems = Range.GetRandomValue(RequiredItems.Count - 2, RequiredItems.Count);
                Color = BundleColors.Blue;
                break;

            case BundleTypes.BoilerMetal:
                Name           = Globals.GetTranslation("bundle-boiler-metal");
                potentialItems = new List <RequiredItem>
                {
                    new RequiredItem((int)ObjectIndexes.CopperOre, 5, 10),
                    new RequiredItem((int)ObjectIndexes.IronOre, 5, 10),
                    new RequiredItem((int)ObjectIndexes.GoldOre, 5, 10),
                    new RequiredItem((int)ObjectIndexes.IridiumOre, 5, 10),
                    new RequiredItem((int)ObjectIndexes.CopperBar, 1, 5),
                    new RequiredItem((int)ObjectIndexes.IronBar, 1, 5),
                    new RequiredItem((int)ObjectIndexes.GoldBar, 1, 5),
                    new RequiredItem((int)ObjectIndexes.IridiumBar, 1, 5),
                };
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, Range.GetRandomValue(6, 8));
                MinimumRequiredItems = Range.GetRandomValue(RequiredItems.Count - 2, RequiredItems.Count);
                Color = BundleColors.Red;
                break;

            case BundleTypes.BoilerExplosive:
                Name          = Globals.GetTranslation("bundle-boiler-explosive");
                RequiredItems = new List <RequiredItem>
                {
                    new RequiredItem((int)ObjectIndexes.CherryBomb, 1, 5),
                    new RequiredItem((int)ObjectIndexes.Bomb, 1, 5),
                    new RequiredItem((int)ObjectIndexes.MegaBomb, 1, 5),
                };
                Color = BundleColors.Red;
                break;

            case BundleTypes.BoilerRing:
                Name          = Globals.GetTranslation("bundle-boiler-ring");
                RequiredItems = RequiredItem.CreateList(
                    Globals.RNGGetRandomValuesFromList(ItemList.GetRings(), 8)
                    );
                MinimumRequiredItems = Range.GetRandomValue(4, 6);
                Color = BundleColors.Yellow;
                break;

            case BundleTypes.BoilerSpoopy:
                Name           = Globals.GetTranslation("bundle-boiler-spoopy");
                potentialItems = new List <RequiredItem>
                {
                    new RequiredItem((int)ObjectIndexes.Pumpkin, 6),
                    new RequiredItem((int)ObjectIndexes.JackOLantern, 6),
                    new RequiredItem((int)ObjectIndexes.Ghostfish, 6),
                    new RequiredItem((int)ObjectIndexes.BatWing, 6),
                    new RequiredItem((int)ObjectIndexes.VoidEssence, 6),
                    new RequiredItem((int)ObjectIndexes.VoidEgg, 6),
                    new RequiredItem((int)ObjectIndexes.PurpleMushroom, 6),
                    new RequiredItem((int)ObjectIndexes.GhostCrystal, 6),
                    new RequiredItem((int)ObjectIndexes.SpookFish, 6)
                };
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, 6);
                MinimumRequiredItems = 3;
                Color = BundleColors.Purple;
                break;

            case BundleTypes.BoilerMonster:
                Name          = Globals.GetTranslation("bundle-boiler-monster");
                RequiredItems = new List <RequiredItem>()
                {
                    new RequiredItem((int)ObjectIndexes.BugMeat, 10, 50),
                    new RequiredItem((int)ObjectIndexes.Slime, 10, 50),
                    new RequiredItem((int)ObjectIndexes.BatWing, 10, 50),
                    new RequiredItem((int)ObjectIndexes.SolarEssence, 10, 50),
                    new RequiredItem((int)ObjectIndexes.VoidEssence, 10, 50)
                };
                Color = BundleColors.Red;
                break;

            case BundleTypes.BoilerColorBlack:
                Name           = Globals.GetTranslation("bundle-boiler-black");
                potentialItems = RequiredItem.CreateList(new List <int>
                {
                    (int)ObjectIndexes.RareDisc,
                    (int)ObjectIndexes.Catfish,
                    (int)ObjectIndexes.ScorpionCarp,
                    (int)ObjectIndexes.TigerTrout,
                    (int)ObjectIndexes.Halibut,
                    (int)ObjectIndexes.MakiRoll,
                    (int)ObjectIndexes.Bomb,
                    (int)ObjectIndexes.VoidEgg,
                    (int)ObjectIndexes.VoidMayonnaise,
                    (int)ObjectIndexes.Coal,
                    (int)ObjectIndexes.Blackberry,
                    (int)ObjectIndexes.VampireRing,
                    (int)ObjectIndexes.Neptunite,
                    (int)ObjectIndexes.ThunderEgg,
                    (int)ObjectIndexes.BatWing,
                    (int)ObjectIndexes.VoidEssence,
                });
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, 8);
                MinimumRequiredItems = Range.GetRandomValue(3, 6);
                Color = BundleColors.Purple;
                break;

            case BundleTypes.BoilerColorRed:
                Name           = Globals.GetTranslation("bundle-boiler-red");
                potentialItems = RequiredItem.CreateList(new List <int>
                {
                    (int)ObjectIndexes.Ruby,
                    (int)ObjectIndexes.FireQuartz,
                    (int)ObjectIndexes.DwarfScrollI,
                    (int)ObjectIndexes.RedMullet,
                    (int)ObjectIndexes.RedSnapper,
                    (int)ObjectIndexes.LavaEel,
                    (int)ObjectIndexes.Bullhead,
                    (int)ObjectIndexes.Woodskip,
                    (int)ObjectIndexes.Crimsonfish,
                    (int)ObjectIndexes.PepperPoppers,
                    (int)ObjectIndexes.RhubarbPie,
                    (int)ObjectIndexes.RedPlate,
                    (int)ObjectIndexes.CranberrySauce,
                    (int)ObjectIndexes.Holly,
                    (int)ObjectIndexes.CherryBomb,
                    (int)ObjectIndexes.MegaBomb,
                    (int)ObjectIndexes.Jelly,
                    (int)ObjectIndexes.EnergyTonic,
                    (int)ObjectIndexes.RedMushroom,
                    (int)ObjectIndexes.RedSlimeEgg,
                    (int)ObjectIndexes.ExplosiveAmmo,
                    (int)ObjectIndexes.RubyRing,
                    (int)ObjectIndexes.MagmaGeode,
                    (int)ObjectIndexes.Helvite,
                    (int)ObjectIndexes.Jasper,
                    (int)ObjectIndexes.RadishSalad,
                    (int)ObjectIndexes.FruitSalad,
                    (int)ObjectIndexes.CranberryCandy,
                    (int)ObjectIndexes.Apple,
                    (int)ObjectIndexes.Pomegranate,
                    (int)ObjectIndexes.Cherry,
                    (int)ObjectIndexes.TreasureHunter,
                    (int)ObjectIndexes.CrabPot,
                    (int)ObjectIndexes.LifeElixir
                });
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, 8);
                MinimumRequiredItems = Range.GetRandomValue(3, 6);
                Color = BundleColors.Red;
                break;

            case BundleTypes.BoilerColorGray:
                Name           = Globals.GetTranslation("bundle-boiler-gray");
                potentialItems = RequiredItem.CreateList(new List <int>
                {
                    (int)ObjectIndexes.Stone,
                    (int)ObjectIndexes.Arrowhead,
                    (int)ObjectIndexes.AncientSword,
                    (int)ObjectIndexes.RustySpoon,
                    (int)ObjectIndexes.PrehistoricTool,
                    (int)ObjectIndexes.Anchor,
                    (int)ObjectIndexes.PrehistoricHandaxe,
                    (int)ObjectIndexes.DwarfGadget,
                    (int)ObjectIndexes.Tilapia,
                    (int)ObjectIndexes.Chub,
                    (int)ObjectIndexes.Lingcod,
                    (int)ObjectIndexes.Crayfish,
                    (int)ObjectIndexes.Cockle,
                    (int)ObjectIndexes.Mussel,
                    (int)ObjectIndexes.Oyster,
                    (int)ObjectIndexes.Trash,
                    (int)ObjectIndexes.SoggyNewspaper,
                    (int)ObjectIndexes.StoneFence,
                    (int)ObjectIndexes.IronFence,
                    (int)ObjectIndexes.StoneFloor,
                    (int)ObjectIndexes.CrystalFloor,
                    (int)ObjectIndexes.TeaSet,
                    (int)ObjectIndexes.GravelPath,
                    (int)ObjectIndexes.MagnetRing,
                    (int)ObjectIndexes.SmallMagnetRing,
                    (int)ObjectIndexes.WarriorRing,
                    (int)ObjectIndexes.SavageRing,
                    (int)ObjectIndexes.Bixite,
                    (int)ObjectIndexes.Granite,
                    (int)ObjectIndexes.Basalt,
                    (int)ObjectIndexes.Limestone,
                    (int)ObjectIndexes.Sprinkler,
                    (int)ObjectIndexes.BarbedHook,
                    (int)ObjectIndexes.TrapBobber,
                    (int)ObjectIndexes.OmniGeode,
                });
                RequiredItems        = Globals.RNGGetRandomValuesFromList(potentialItems, 8);
                MinimumRequiredItems = Range.GetRandomValue(3, 6);
                Color = BundleColors.Blue;
                break;
            }
        }