void Modify_RCF(string path) { string path_extr = basePath + @"cml_extr\"; RCF_Manager.Extract(basePath + path, path_extr); ModCrates.InstallLayerMods(EnabledModCrates, path_extr, 1); CTTR_Settings.ParseSettings(path_extr); if (Option_RandCharacters.Enabled) { CTTR_Randomizers.Randomize_Characters(path_extr, randChars); } /* * if (GetOption(RandomizeHubs)) * { * CTTR_Randomizers.Randomize_Hubs(path_extr, randHubs, randGems); * } */ if (Option_RandTrackEntrances.Enabled) { CTTR_Randomizers.Randomize_Tracks(path_extr, randTracks); } if (Option_RandMinigames.Enabled) { CTTR_Randomizers.Randomize_Minigames(path_extr, randMinigames); } if (Option_RandRaceLaps.Enabled) { CTTR_Randomizers.Randomize_Race_Laps(path_extr, randLaps); } /* * if (GetOption(RandomizeBattleKOs)) * { * CTTR_Randomizers.Randomize_Battle_KOs(path_extr, randKOs); * } */ if (Option_NoSequenceBreaks.Enabled) { CTTR_Mods.Mod_PreventSequenceBreaks(path_extr); } CTTR_Mods.Mod_EditCredits(basePath); RCF_Manager.Pack(basePath + path, path_extr); }
public override void StartModProcess() { Random rand = new Random(ModLoaderGlobals.RandomizerSeed); string path_RCF_frontend = "DEFAULT.RCF"; basePath = ConsolePipeline.ExtractedPath; RCF_Manager.cachedRCF = null; if (ConsolePipeline.Metadata.Console == ConsoleMode.WII) { path_RCF_frontend = "default.rcf"; } else if (ConsolePipeline.Metadata.Console == ConsoleMode.PSP) { path_RCF_frontend = "default.rcf"; } else if (ConsolePipeline.Metadata.Console == ConsoleMode.XBOX360) { path_RCF_frontend = "default.rcf"; } string path_extr = basePath + @"cml_extr\"; RCF_Manager.Extract(basePath + path_RCF_frontend, path_extr); ModCrates.InstallLayerMods(EnabledModCrates, path_extr, 1); if (Option_TestMod.Enabled) { // Proof of concept mod increasing gameplay FOV in Episode 1 string[] frontend_lines = File.ReadAllLines(path_extr + @"levels\L1_E1\cameraoverrides.blua"); frontend_lines[6] = "cameraManager:SetCameraVolumeFOV( 0, 90.000000 )"; frontend_lines[11] = "cameraManager:SetCameraVolumeFOV( 2, 90.000000 )"; frontend_lines[14] = "cameraManager:SetCameraVolumeFOV( 3, 90.000000 )"; frontend_lines[68] = "cameraManager:SetCameraVolumeFOV( 78, 90.000000 )"; frontend_lines[71] = "cameraManager:SetCameraVolumeFOV( 79, 90.000000 )"; frontend_lines[73] = "cameraManager:SetCameraVolumeFOV( 80, 90.000000 )"; frontend_lines[76] = "cameraManager:SetCameraVolumeFOV( 81, 90.000000 )"; frontend_lines[79] = "cameraManager:SetCameraVolumeFOV( 82, 90.000000 )"; frontend_lines[81] = "cameraManager:SetCameraVolumeFOV( 83, 90.000000 )"; frontend_lines[83] = "cameraManager:SetCameraVolumeFOV( 84, 90.000000 )"; frontend_lines[85] = "cameraManager:SetCameraVolumeFOV( 85, 90.000000 )"; frontend_lines[87] = "cameraManager:SetCameraVolumeFOV( 86, 90.000000 )"; frontend_lines[89] = "cameraManager:SetCameraVolumeFOV( 87, 90.000000 )"; frontend_lines[91] = "cameraManager:SetCameraVolumeFOV( 88, 90.000000 )"; frontend_lines[94] = "cameraManager:SetCameraVolumeFOV( 89, 90.000000 )"; frontend_lines[97] = "cameraManager:SetCameraVolumeFOV( 90, 90.000000 )"; File.WriteAllLines(path_extr + @"levels\L1_E1\cameraoverrides.blua", frontend_lines); } if (Option_RandEpisodeOrder.Enabled) { List <int> LevelsToRand = new List <int>(); for (int i = 0; i < EpisodeFolderNames.Count; i++) { LevelsToRand.Add(i); Directory.Move(path_extr + @"levels\" + EpisodeFolderNames[i], path_extr + @"levels\" + "level" + i); } List <int> LevelsRand = new List <int>(); for (int i = 0; i < EpisodeFolderNames.Count; i++) { int r = rand.Next(LevelsToRand.Count); LevelsRand.Add(LevelsToRand[r]); LevelsToRand.RemoveAt(r); } for (int i = 0; i < EpisodeFolderNames.Count; i++) { Directory.Move(path_extr + @"levels\" + "level" + i, path_extr + @"levels\" + EpisodeFolderNames[LevelsRand[i]]); } } RCF_Manager.Pack(basePath + path_RCF_frontend, path_extr); }
void EditDefaultAndCommon() { randChars = new List <int>(); if (Option_RandCharacters.Enabled) { int maxPlayableCharacters = 2; List <int> possibleChars = new List <int>(); for (int i = 0; i < 8; i++) { possibleChars.Add(i); } for (int i = 0; i < maxPlayableCharacters; i++) { int targetChar = possibleChars[randState.Next(0, possibleChars.Count)]; randChars.Add(targetChar); possibleChars.Remove(targetChar); } } randHubs = new List <int>(); randGems = new List <int>(); /* * if (GetOption(RandomizeHubs)) * { * List<int> possibleHubs = new List<int>(); * * for (int i = 1; i < 6; i++) * { * possibleHubs.Add(i); * } * * for (int i = 0; i < 5; i++) * { * int targetHub = possibleHubs[randState.Next(0, possibleHubs.Count)]; * randHubs.Add(targetHub); * possibleHubs.Remove(targetHub); * } * List<int> possibleGems = new List<int>(); * * possibleGems.Add(0); * possibleGems.Add(1); * possibleGems.Add(2); * possibleGems.Add(4); * possibleGems.Add(5); * for (int i = 0; i < 5; i++) * { * int targetGem = possibleGems[randState.Next(0, possibleGems.Count)]; * randGems.Add(targetGem); * possibleGems.Remove(targetGem); * if (i == 2) * { * randGems.Add(3); * } * } * } */ randTracks = new List <int>(); randMinigames = new List <int>(); if (Option_RandTrackEntrances.Enabled) { List <int> possibleTracks = new List <int>(); for (int i = 0; i < 15; i++) { possibleTracks.Add(i); } for (int i = 0; i < 15; i++) { int targetTrack = possibleTracks[randState.Next(0, possibleTracks.Count)]; randTracks.Add(targetTrack); possibleTracks.Remove(targetTrack); } List <int> possibleMinigames = new List <int>(); for (int i = 0; i < 8; i++) { possibleMinigames.Add(i); } for (int i = 0; i < 8; i++) { int targetMinigame = possibleMinigames[randState.Next(0, possibleMinigames.Count)]; randMinigames.Add(targetMinigame); possibleMinigames.Remove(targetMinigame); } } randLaps = new List <int>(); if (Option_RandRaceLaps.Enabled) { for (int i = 0; i < 15; i++) { if (i == 12) // Rings of Uranus { randLaps.Add(randState.Next(3, 13)); } else { randLaps.Add(randState.Next(1, 7)); } } } randKOs = new List <int>(); /* * if (GetOption(RandomizeBattleKOs)) * { * for (int i = 0; i < 5; i++) * { * randKOs.Add(randState.Next(5, 20)); * } * } */ List <string> all_RCF = new List <string> { path_RCF_default, path_RCF_common, path_RCF_frontend, path_RCF_onfoot0, path_RCF_onfoot1, path_RCF_onfoot2, path_RCF_onfoot3, path_RCF_onfoot4, path_RCF_onfoot5, path_RCF_onfoot6, path_RCF_onfoot7, path_RCF_advent1, path_RCF_advent2, path_RCF_advent3, path_RCF_adventa, path_RCF_dino1, path_RCF_dino2, path_RCF_dino3, path_RCF_dinoa, path_RCF_egypt1, path_RCF_egypt2, path_RCF_egypt3, path_RCF_egypta, path_RCF_fairy1, path_RCF_fairy2, path_RCF_fairy3, path_RCF_fairys, path_RCF_solar1, path_RCF_solar2, path_RCF_solar3, path_RCF_solars, path_RCF_0, path_RCF_1, path_RCF_2, path_RCF_3, path_RCF_4, path_RCF_5, path_RCF_6, //path_RCF_sound, //path_RCF_english, //path_RCF_movies, }; if (ModCrates.HasLayerModsActive(EnabledModCrates, 1)) // these take forever, so only if they're needed { all_RCF.Add(path_RCF_movies); all_RCF.Add(path_RCF_english); all_RCF.Add(path_RCF_sound); } for (int i = 0; i < all_RCF.Count; i++) { if (all_RCF[i] != "") { Modify_RCF(all_RCF[i]); } } }
void ModProcess() { Random rand = new Random(ModLoaderGlobals.RandomizerSeed); string path_extr = ConsolePipeline.ExtractedPath + @"BIGFILE\"; ModCrates.InstallLayerMods(EnabledModCrates, path_extr, 1); if ((Option_RandTracks.Enabled || Option_RandTracks101.Enabled) && Directory.Exists(path_extr + @"levels\tracks\island1")) { List <int> LevelInd = new List <int>(); List <int> LevelRand = new List <int>(); int maxLevel = TrackFolderNames.Count; if (Option_RandTracks101.Enabled) { maxLevel -= 2; } for (int i = 0; i < maxLevel; i++) { Directory.Move(path_extr + @"levels\tracks\" + TrackFolderNames[i], path_extr + @"levels\tracks\level" + i); LevelInd.Add(i); } while (LevelInd.Count > 0) { int r = rand.Next(LevelInd.Count); LevelRand.Add(LevelInd[r]); LevelInd.RemoveAt(r); } for (int i = 0; i < LevelRand.Count; i++) { Directory.Move(path_extr + @"levels\tracks\level" + i, path_extr + @"levels\tracks\" + TrackFolderNames[LevelRand[i]]); } } LNG lng = new LNG(path_extr + @"lang\en.lng"); string[] lang_lines = File.ReadAllLines(path_extr + @"lang\en.txt", System.Text.Encoding.Default); for (int i = 0; i < lang_lines.Length; i++) { if (lang_lines[i].Contains("LOADING..")) { lang_lines[i] = "CML " + ModLoaderGlobals.ProgramVersion + "|" + "SEED: " + ModLoaderGlobals.RandomizerSeed; } } File.WriteAllLines(path_extr + @"lang\en.txt", lang_lines, System.Text.Encoding.Default); lng.ConvertTXT(path_extr + @"lang\en.txt"); File.Delete(path_extr + @"lang\en.txt"); if (File.Exists(path_extr + @"lang\en2.lng")) { LNG lng1 = new LNG(path_extr + @"lang\en2.lng"); string[] lang_lines1 = File.ReadAllLines(path_extr + @"lang\en2.txt", System.Text.Encoding.Default); for (int i = 0; i < lang_lines1.Length; i++) { if (lang_lines[i].Contains("LOADING..")) { lang_lines[i] = "CML " + ModLoaderGlobals.ProgramVersion + "|" + "SEED: " + ModLoaderGlobals.RandomizerSeed; } } File.WriteAllLines(path_extr + @"lang\en2.txt", lang_lines1, System.Text.Encoding.Default); lng1.ConvertTXT(path_extr + @"lang\en2.txt"); File.Delete(path_extr + @"lang\en2.txt"); } EndModProcess(); }