Inheritance: NesRom
Esempio n. 1
0
        private void GenerateButton_Click(object sender, RoutedEventArgs e)
        {
            var rom = new FF1Rom(_filename);
            var rng = new MT19337(BitConverter.ToUInt32(_seed, 0));

            if (TreasuresCheckBox.IsChecked == true)
            {
                rom.ShuffleTreasures(rng);
            }

            if (ShopsCheckBox.IsChecked == true)
            {
                rom.ShuffleShops(rng);
            }

            if (MagicShopsCheckBox.IsChecked == true)
            {
                rom.ShuffleMagicShops(rng);
            }

            if (MagicLevelsCheckBox.IsChecked == true)
            {
                rom.ShuffleMagicLevels(rng, MagicPermissionsCheckBox.IsChecked ?? false);
            }

            if (EnemyScriptsCheckBox.IsChecked == true)
            {
                rom.ShuffleEnemyScripts(rng);
            }

            if (EnemySkillsSpellsCheckBox.IsChecked == true)
            {
                rom.ShuffleEnemySkillsSpells(rng);
            }

            if (EnemyStatusAttacksCheckBox.IsChecked == true)
            {
                rom.ShuffleEnemyStatusAttacks(rng);
            }

            if (EarlyRodCheckBox.IsChecked == true)
            {
                rom.EnableEarlyRod();
            }

            if (NoPartyShuffleCheckBox.IsChecked == true)
            {
                rom.DisablePartyShuffle();
            }

            if (PriceScaleFactorSlider.Value > 1)
            {
                rom.ScalePrices(PriceScaleFactorSlider.Value, rng);
            }

            if (EnemyScaleFactorSlider.Value > 1)
            {
                rom.ScaleEnemyStats(EnemyScaleFactorSlider.Value, rng);
            }

            if (ExpMultiplierSlider.Value > 1 || ExpBonusSlider.Value > 0)
            {
                rom.ExpGoldBoost(ExpBonusSlider.Value*10, ExpMultiplierSlider.Value);
            }

            var seedText = _seed.ToHex();
            rom.WriteSeedAndFlags(Version, seedText, FlagsTextBox.Text);

            var fileRoot = _filename.Substring(0, _filename.LastIndexOf("."));
            var outputFilename = $"{fileRoot}_{FlagsTextBox.Text}_{seedText}.nes";
            rom.Save(outputFilename);

            MessageBox.Show($"Finished generating new ROM: {outputFilename}", "Done");
        }
Esempio n. 2
0
        private void ValidateRom(string filename)
        {
            var rom = new FF1Rom(filename);
            if (!rom.Validate())
            {
                MessageBox.Show("ROM does not appear to be valid.  Proceed at your own risk.", "Validation Error");
            }

            _filename = filename;
            var slashIndex = filename.LastIndexOfAny(new[] { '/', '\\' });
            RomTextBox.Text = filename.Substring(slashIndex + 1);
            GenerateButton.IsEnabled = true;
        }