Example #1
0
        static void INSTALL(string inputSeed, bool skipAnimRandomizer = false)
        {
            Random random;

            if (inputSeed == "")
            {
                random = new Random();
            }
            else
            {
                random = new Random(inputSeed.GetHashCode());
            }

            if (MOD_PATH == null)
            {
                MOD_PATH = AskForDir();
            }
            else
            {
                Console.WriteLine("\nUse previously-specified game directory? (Y/N)");
                bool yes = ReadKey(ConsoleKey.Y, ConsoleKey.N) == ConsoleKey.Y;
                if (!yes)
                {
                    MOD_PATH = AskForDir();
                }
            }

            if (MOD_PATH == null)
            {
                Console.WriteLine("No EXE selected. Cancelling installation.");
                return;
            }

            DateTime startTime = DateTime.Now;

            Console.WriteLine("\nBeginning installation... This will take about one minute.");
            Console.WriteLine("\n" + SoyPuns.PopRandomElement(random) + "\n");

            SoulsMod mod = new SoulsMod(
                MOD_PATH, ".smbak",
                Resources.GameData.GameParam_parambnd,
                Resources.GameData.paramdef_paramdefbnd,
                Resources.GameData.item_msgbnd,
                Resources.GameData.menu_msgbnd);

            mod.LoadPlayerCharacter();
            mod.LoadNonPlayerCharacters();
            InstallInterrootFolder("event", mod);
            InstallInterrootFolder("map", mod);
            InstallInterrootFolder("script", mod);
            InstallInterrootFolder("sfx", mod);
            InstallInterrootFolder("sound", mod);


            PlayerGenerator playerSetup = new PlayerGenerator(mod);

#if DEBUG
            Console.WriteLine("Running player setup...");
#endif
            playerSetup.Install();
            Thread.CurrentThread.Join(0);

            TextGenerator textSetup = new TextGenerator(mod);
#if DEBUG
            Console.WriteLine("Running text setup...");
#endif
            textSetup.Install();
            Thread.CurrentThread.Join(0);

            SpEffectGenerator spEffectSetup = new SpEffectGenerator(mod);
#if DEBUG
            Console.WriteLine("Running SpEffect setup...");
#endif
            spEffectSetup.Install();
            Thread.CurrentThread.Join(0);

            GoodsGenerator goodsSetup = new GoodsGenerator(mod);
#if DEBUG
            Console.WriteLine("Running goods setup...");
#endif
            goodsSetup.Install();
            Thread.CurrentThread.Join(0);

            SpellGenerator spellSetup = new SpellGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running spell setup...");
#endif
            spellSetup.Install();
            Thread.CurrentThread.Join(0);

            WeaponGenerator weaponSetup = new WeaponGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running weapon setup...");
#endif
            weaponSetup.Install();
            Thread.CurrentThread.Join(0);

            ArmorGenerator armorSetup = new ArmorGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running armor setup...");
#endif
            armorSetup.Install();
            Thread.CurrentThread.Join(0);

            EnemyGenerator enemySetup = new EnemyGenerator(mod, random, weaponSetup, armorSetup);
#if DEBUG
            Console.WriteLine("Running enemy setup...");
#endif
            enemySetup.Install();
            Thread.CurrentThread.Join(0);

            MapItemLotsGenerator itemLotsSetup = new MapItemLotsGenerator(mod, weaponSetup, armorSetup, random);
#if DEBUG
            Console.WriteLine("Running item lot setup...");
#endif
            itemLotsSetup.Install();
            Thread.CurrentThread.Join(0);

            EnemyAnimationGenerator animSetup = new EnemyAnimationGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running animation setup...");
#endif
            animSetup.Install(skipAnimRandomizer);
            Thread.CurrentThread.Join(0);

            // Must be run AFTER weapon/armor setup.
            CharacterGenerator chrSetup = new CharacterGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running chr setup...");
#endif
            chrSetup.Install();
            Thread.CurrentThread.Join(0);

            Console.WriteLine(SoyPuns.PopRandomElement(random) + "\n");

#if DEBUG
            Console.WriteLine("Installing mod...");
#endif
            mod.Install();
            Thread.CurrentThread.Join(0);

#if DEBUG
            Console.WriteLine($"Installation time: {(DateTime.Now - startTime).TotalSeconds}");
#endif
        }
Example #2
0
        static void INSTALL(string inputSeed)
        {
            Random random;

            random = inputSeed == "" ? new Random() : new Random(inputSeed.GetHashCode());

            MOD_PATH = GetGameDir();
            if (MOD_PATH == null)
            {
                Console.WriteLine("No EXE selected. Cancelling installation.");
                return;
            }

            DateTime startTime = DateTime.Now;

            Console.WriteLine("\nBeginning installation... This will take about one minute.");
            Console.WriteLine("\n" + SoyPuns.PopRandomElement(random) + "\n");

            SoulsMod mod = new SoulsMod(
                MOD_PATH, ".rsbak",
                Resources.GameData.GameParam_parambnd,
                Resources.GameData.paramdef_paramdefbnd,
                Resources.GameData.item_msgbnd,
                Resources.GameData.menu_msgbnd);

            mod.LoadPlayerCharacter();
            mod.LoadNonPlayerCharacters();
            InstallInterrootFolder("event", mod);
            InstallInterrootFolder("map", mod);
            InstallInterrootFolder("script", mod);
            InstallInterrootFolder("sfx", mod);
            InstallInterrootFolder("sound", mod);

            TextGenerator textSetup = new TextGenerator(mod);

#if DEBUG
            Console.WriteLine("Running text setup...");
#else
            Console.WriteLine("Studying the ancient texts...");
#endif
            textSetup.Install();
            Thread.CurrentThread.Join(0);

            PlayerGenerator playerSetup = new PlayerGenerator(mod);
#if DEBUG
            Console.WriteLine("Running player setup...");
#else
            Console.WriteLine("Putting the party together...");
#endif
            playerSetup.Install();
            Thread.CurrentThread.Join(0);

            SpEffectGenerator spEffectSetup = new SpEffectGenerator(mod);
#if DEBUG
            Console.WriteLine("Running SpEffect setup...");
#else
            Console.WriteLine("Channeling the powers that be...");
#endif
            spEffectSetup.Install();
            Thread.CurrentThread.Join(0);

            GoodsGenerator goodsSetup = new GoodsGenerator(mod);
#if DEBUG
            Console.WriteLine("Running goods setup...");
#else
            Console.WriteLine("Documenting the artifacts...");
#endif
            goodsSetup.Install();
            Thread.CurrentThread.Join(0);

            SpellGenerator spellSetup = new SpellGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running spell setup...");
#else
            Console.WriteLine("Messing with forces beyond our control...");
#endif
            spellSetup.Install();
            Thread.CurrentThread.Join(0);

            WeaponGenerator weaponSetup = new WeaponGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running weapon setup...");
#else
            Console.WriteLine("Spinning up the whetstone...");
#endif
#if SKIP_BEHAVIORS
            Console.WriteLine("WARNING: Skipping weapon behaviors/attacks!");
            weaponSetup.SkipBehaviors = true;
#endif
            weaponSetup.Install();
            Thread.CurrentThread.Join(0);

            ArmorGenerator armorSetup = new ArmorGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running armor setup...");
#else
            Console.WriteLine("Polishing the armor...");
#endif
            armorSetup.Install();
            Thread.CurrentThread.Join(0);

            EnemyGenerator enemySetup = new EnemyGenerator(mod, random, weaponSetup, armorSetup);
#if DEBUG
            Console.WriteLine("Running enemy setup...");
#else
            Console.WriteLine("Opening the bestiary...");
#endif
            enemySetup.Install();
            Thread.CurrentThread.Join(0);

            EnemyAnimationGenerator animSetup = new EnemyAnimationGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Modifying enemy animations...");
#else
            Console.WriteLine("Rousing the rabble...");
#endif
            animSetup.Install();
            Thread.CurrentThread.Join(0);

            MapItemLotsGenerator itemLotsSetup = new MapItemLotsGenerator(mod, weaponSetup, armorSetup, random);
#if DEBUG
            Console.WriteLine("Running item lot setup...");
#else
            Console.WriteLine("Burying the treasures...");
#endif
            itemLotsSetup.Install();
            Thread.CurrentThread.Join(0);

            // Must be run AFTER weapon/armor setup.
            CharacterGenerator chrSetup = new CharacterGenerator(mod, random);
#if DEBUG
            Console.WriteLine("Running character setup...");
#else
            Console.WriteLine("Assembling the party...");
#endif
            chrSetup.Install();
            Thread.CurrentThread.Join(0);

#if DEBUG
            Console.WriteLine("Installing mod...");
#else
            Console.WriteLine("Heading forth...");
#endif
            mod.Install();
            Thread.CurrentThread.Join(0);

            Console.WriteLine("\nInstallation successful! Press ENTER to return to the prompt.");
#if DEBUG
            Console.WriteLine($"Installation time: {(DateTime.Now - startTime).TotalSeconds} seconds");
#endif
            Console.ReadLine();
        }