Пример #1
0
 private void PopulateItemDropPool()
 {
     //kinda hacky, probably a better way to do this
     foreach (var item in Enum.GetValues(typeof(Enums.ItemPool)).Cast <Enums.ItemPool>())
     {
         SmallDropPool.Add(new ItemPoolItem
         {
             Value    = item.GetStringValue(),
             Selected = SettingsModel.SmallEnemyPool.Contains(item),
             Enum     = item
         });
         LargeDropPool.Add(new ItemPoolItem
         {
             Value    = item.GetStringValue(),
             Selected = SettingsModel.LargeEnemyPool.Contains(item),
             Enum     = item
         });
     }
 }
Пример #2
0
        public IActionResult OnPostUpload()
        {
            if (SmallDropPool.Any(x => x.Selected))
            {
                SettingsModel.SmallEnemyPool = SmallDropPool.Where(x => x.Selected).Select(x => x.Enum).ToList();
            }
            if (LargeDropPool.Any(x => x.Selected))
            {
                SettingsModel.LargeEnemyPool = LargeDropPool.Where(x => x.Selected).Select(x => x.Enum).ToList();
            }

            //disabled values don't post
            if (!SettingsModel.ShufflePalaceRooms && !SettingsModel.ThunderbirdRequired)
            {
                SettingsModel.ThunderbirdRequired = true;
            }

            if (SettingsModel.ShuffleAllExperienceNeeded)
            {
                SettingsModel.ShuffleAttackExperienceNeeded = true;
                SettingsModel.ShuffleMagicExperienceNeeded  = true;
                SettingsModel.ShuffleLifeExperienceNeeded   = true;
            }

            using (var fileStream = RomFile.OpenReadStream())
            {
                //generate rom, json
                var romGenerator = new Hyrule(SettingsModel.GetRandomizerProperties(RomFile.FileName, fileStream));
                var rom          = romGenerator.GenerateRomStream();

                return(new FileStreamResult(rom.OutputStream, "application/octet-stream")
                {
                    FileDownloadName = rom.FileName
                });
            }
        }