public static void ShiftRoamingPokemon(int worldID) { Logger.Debug("Shift Roaming Pokémon for world ID: " + worldID); string newData = ""; foreach (string line in Core.Player.RoamingPokemonData.SplitAtNewline()) { if (!string.IsNullOrEmpty(line) && line.CountSeperators("|") >= 5) { string[] data = line.Split(Convert.ToChar("|")); if (!string.IsNullOrEmpty(newData)) { newData += Environment.NewLine; } if (Convert.ToInt32(data[2]) == worldID || worldID == -1) { var regionsFile = GameModeManager.GetScriptFile(Path.Combine("worldmap", "roaming_regions.dat")); Security.FileValidation.CheckFileValid(regionsFile, false, "RoamingPokemon.vb"); var worldList = regionsFile.ReadAllLines(); var levelList = new List <string>(); foreach (var worldLine in worldList) { if (worldLine.StartsWith(Convert.ToInt32(data[2]) + "|")) { levelList = worldLine.Remove(0, worldLine.IndexOf("|", StringComparison.Ordinal) + 1).Split(Convert.ToChar(",")).ToList(); } } int currentIndex = levelList.IndexOf(data[3]); int nextIndex = currentIndex + 1; if (nextIndex > levelList.Count - 1) { nextIndex = 0; } //PokémonID,Level,regionID,startLevelFile,MusicLoop,PokemonData newData += data[0] + "|" + data[1] + "|" + Convert.ToInt32(data[2]) + "|" + levelList[nextIndex] + "|" + data[4] + "|" + data[5]; } else { newData += line; } } } Core.Player.RoamingPokemonData = newData; }
public BaseTrainer(string TrainerFile) { this.TrainerFile = TrainerFile; var file = GameModeManager.GetScriptFile(Path.Combine("Trainer", TrainerFile + ".trainer")); // TODO: //FileValidation.CheckFileValid(path, false, "Trainer.vb"); string[] Data = file.ReadAllLines(); if (Data[0] == "[TRAINER FORMAT]") { LoadTrainer(Data); } else { LoadTrainerLegacy(Data); } }
/// <summary> /// Starts a script /// </summary> /// <param name="Input">The input string</param> /// <param name="InputType">Type of information; 0: Script path, 1: Text, 2: Direct input</param> public void StartScript(string Input, int InputType, bool CheckDelay = true, bool ResetInsight = true) { ScriptLevelIndex += 1; TempSpin = false; bool[] arr = new bool[100]; ScriptLevels[ScriptLevelIndex] = new ScriptLevel { IfIndex = 0, WhenIndex = 0, ScriptVersion = 1, WaitingEndIf = arr.ToList(), WaitingEndWhen = arr.ToList(), CurrentLine = 0, ScriptName = "No script running", CanTriggerElse = arr.ToList(), Switched = arr.ToList() }; ScriptLevel l = ScriptLevels[ScriptLevelIndex]; if (ResetInsight) { IsInsightScript = false; } if (reDelay == 0f | !CheckDelay) { switch (InputType) { case 0: { //Start script from file Logger.Debug("Start script (ID: " + Input + ")"); l.ScriptName = "Type: Script; Input: " + Input; var file = GameModeManager.GetScriptFile(Input + ".dat"); Security.FileValidation.CheckFileValid(file, false, "ActionScript.vb"); // TODO: //if (System.IO.File.Exists(path) == true) //{ string Data = file.ReadAllText(); Data = Data.Replace(Environment.NewLine, "^"); string[] ScriptData = Data.Split(Convert.ToChar("^")); AddScriptLines(ScriptData); //} //else //{ // Logger.Log(Logger.LogTypes.ErrorMessage, "ActionScript.vb: The script file \"" + path + "\" doesn't exist!"); //} } break; case 1: { //Display text Logger.Debug("Start Script (Text: " + Input + ")"); l.ScriptName = "Type: Text; Input: " + Input; string Data = "version=2^@text.show(" + Input + ")^" + ":end"; string[] ScriptData = Data.Split(Convert.ToChar("^")); AddScriptLines(ScriptData); } break; case 2: { //Start script from direct input string activator = Environment.StackTrace.Split(new [] { Environment.NewLine }, StringSplitOptions.None)[3]; activator = activator.Remove(activator.IndexOf("(", StringComparison.Ordinal)); Logger.Debug("Start Script (DirectInput; " + activator + ")"); l.ScriptName = "Type: Direct; Input: " + Input; string Data = Input.Replace(Environment.NewLine, "^"); string[] ScriptData = Data.Split(Convert.ToChar("^")); AddScriptLines(ScriptData); } break; } } }