/// <summary> /// Populates the bundle with the name, required items, minimum required, and color /// </summary> protected override void Populate() { int moneyAmount = 0; BundleType = Globals.RNGGetAndRemoveRandomValueFromList(RoomBundleTypes); int bundleNameFlavorID = 1; switch (BundleType) { case BundleTypes.Vault2500: bundleNameFlavorID = Range.GetRandomValue(1, 7); moneyAmount = Range.GetRandomValue(500, 3500); break; case BundleTypes.Vault5000: bundleNameFlavorID = Range.GetRandomValue(1, 6); moneyAmount = Range.GetRandomValue(4000, 7000); break; case BundleTypes.Vault10000: bundleNameFlavorID = Range.GetRandomValue(1, 6); moneyAmount = Range.GetRandomValue(7500, 12500); break; case BundleTypes.Vault25000: bundleNameFlavorID = Range.GetRandomValue(1, 7); moneyAmount = Range.GetRandomValue(20000, 30000); break; default: return; } RequiredItems = new List <RequiredItem> { new RequiredItem() { MoneyAmount = moneyAmount } }; string moneyString = moneyAmount.ToString("N0", new CultureInfo(Globals.ModRef.Helper.Translation.Locale)); string bundleNameFlavor = Globals.GetTranslation($"{BundleType.ToString()}-{bundleNameFlavorID}"); Name = $"{Globals.GetTranslation("vault-money-format", new { moneyString })}: {bundleNameFlavor}"; ImageNameSuffix = $"-{bundleNameFlavorID}"; Color = Globals.RNGGetRandomValueFromList( Enum.GetValues(typeof(BundleColors)).Cast <BundleColors>().ToList()); }
/// <summary> /// Force generate a random bundle /// Failsafe in case we run out of bundles /// </summary> protected void GenerateRandomBundleFailsafe() { Globals.ConsoleWarn($"Had to generate random bundle for {Room} as a fallback for this bundle: {BundleType.ToString()}"); PopulateRandomBundle(); GenerateRandomReward(); }