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;
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        /// <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;
                }
            }
        }