public void Update(ConsoleKey key, Room room)
        {
            //Make affinity come into play starting at room 10
            if (dungeonLevel >= 10 && affinity != chosenAffinity)
                affinity = chosenAffinity;

            if (key == ConsoleKey.UpArrow)
            {
                y--;

                if (y == 0 || y == room.height - 1)
                    y++;
            }
            else if (key == ConsoleKey.DownArrow)
            {
                y++;

                if (y == 0 || y == room.height - 1)
                    y--;
            }
            else if (key == ConsoleKey.LeftArrow)
            {
                x--;

                if (x == 0 || x == room.width - 1)
                    x++;
            }
            else if (key == ConsoleKey.RightArrow)
            {
                x++;

                if (x == 0 || x == room.width - 1)
                    x--;
            }
            else if (key == ConsoleKey.B)
            {
                CheckInventory();
            }
            else if (key == ConsoleKey.Escape)
            {
                int selectedItem = 0;

                while (true)
                {
                    Console.Clear();
                    Console.WriteLine("###Save Menu###");
                    Console.WriteLine();

                    if (selectedItem == 0)
                    {
                        Console.WriteLine("#Save#");
                        Console.WriteLine("=Save and Quit=");
                        Console.WriteLine("=Quit without Saving=");
                        Console.WriteLine("=Return to game=");
                    }
                    else if (selectedItem == 1)
                    {
                        Console.WriteLine("=Save=");
                        Console.WriteLine("#Save and Quit#");
                        Console.WriteLine("=Quit without Saving=");
                        Console.WriteLine("=Return to game=");
                    }
                    else if (selectedItem == 2)
                    {
                        Console.WriteLine("=Save=");
                        Console.WriteLine("=Save and Quit=");
                        Console.WriteLine("#Quit without Saving#");
                        Console.WriteLine("=Return to game=");
                    }
                    else if (selectedItem == 3)
                    {
                        Console.WriteLine("=Save=");
                        Console.WriteLine("=Save and Quit=");
                        Console.WriteLine("=Quit without Saving=");
                        Console.WriteLine("#Return to game#");
                    }

                    ConsoleKey key2 = Console.ReadKey().Key;

                    if (key2 == ConsoleKey.UpArrow)
                    {
                        if (selectedItem == 0)
                            selectedItem = 3;
                        else selectedItem--;
                    }
                    else if (key2 == ConsoleKey.DownArrow)
                    {
                        if (selectedItem == 3)
                            selectedItem = 0;
                        else selectedItem++;
                    }
                    else if (key2 == ConsoleKey.Enter)
                    {
                        if (selectedItem == 0 || selectedItem == 1)
                        {
                            Console.Clear();
                            Console.WriteLine("Choose a save file.");
                            Console.WriteLine();
                            Console.WriteLine("##Save 1##");
                            Console.WriteLine("==Save 2==");
                            Console.WriteLine("==Save 3==");
                            Console.WriteLine();
                            Console.WriteLine("==Back==");

                            int selectedSave = 0;

                            while (true)
                            {
                                Console.Clear();
                                Console.WriteLine("Choose a save file.");
                                Console.WriteLine();
                                if (selectedSave == 0)
                                {
                                    Console.WriteLine("##Save 1##");
                                    Console.WriteLine("==Save 2==");
                                    Console.WriteLine("==Save 3==");
                                    Console.WriteLine();
                                    Console.WriteLine("==Back==");
                                }
                                else if (selectedSave == 1)
                                {
                                    Console.WriteLine("==Save 1==");
                                    Console.WriteLine("##Save 2##");
                                    Console.WriteLine("==Save 3==");
                                    Console.WriteLine();
                                    Console.WriteLine("==Back==");
                                }
                                else if (selectedSave == 2)
                                {
                                    Console.WriteLine("==Save 1==");
                                    Console.WriteLine("==Save 2==");
                                    Console.WriteLine("##Save 3##");
                                    Console.WriteLine();
                                    Console.WriteLine("==Back==");
                                }
                                else
                                {
                                    Console.WriteLine("==Save 1==");
                                    Console.WriteLine("==Save 2==");
                                    Console.WriteLine("==Save 3==");
                                    Console.WriteLine();
                                    Console.WriteLine("##Back##");
                                }

                                ConsoleKey key3 = Console.ReadKey().Key;

                                if (key3 == ConsoleKey.DownArrow)
                                {
                                    if (selectedSave == 3)
                                        selectedSave = 0;
                                    else selectedSave++;
                                }
                                else if (key3 == ConsoleKey.UpArrow)
                                {
                                    if (selectedSave == 0)
                                        selectedSave = 3;
                                    else selectedSave--;
                                }
                                else if (key3 == ConsoleKey.Enter)
                                {
                                    if (selectedSave == 3)
                                        break;
                                    else
                                    {
                                        SaveGame("Save" + (selectedSave + 1) + ".txt", room);
                                        if (selectedItem == 1)
                                            Environment.Exit(0);
                                        break;
                                    }
                                }
                            }
                        }
                        else if (selectedItem == 2)
                        {
                            System.Environment.Exit(0);
                        }
                        else break;
                    }
                }
            }
        }
        private void SaveGame(string filename, Room room)
        {
            Console.Clear();
            Console.WriteLine("\nSaving...");

            StreamWriter saveFile = File.CreateText(filename);
            saveFile.WriteLine("player:");
            saveFile.WriteLine("name:" + name);
            saveFile.WriteLine("gender:" + gender);
            saveFile.WriteLine("race:" + race);
            saveFile.WriteLine("chosenAffinity:" + chosenAffinity);
            saveFile.WriteLine("affinity:" + affinity);
            saveFile.WriteLine("dungeonLevel:" + dungeonLevel);
            saveFile.WriteLine("x:" + x);
            saveFile.WriteLine("y:" + y);
            saveFile.WriteLine("level:" + level);
            saveFile.WriteLine("exp:" + exp);
            saveFile.WriteLine("expNeeded:" + expNeeded);
            saveFile.WriteLine("gold:" + gold);
            saveFile.WriteLine("weapon:" + weapon.SaveDataAsString());
            saveFile.WriteLine("maxHealth:" + maxHealth);
            saveFile.WriteLine("health:" + health);
            saveFile.WriteLine("attackDamage:" + attackDamage);
            saveFile.WriteLine("magic:" + magic);
            saveFile.WriteLine("defense:" + defense);
            saveFile.WriteLine("resist:" + resist);
            saveFile.WriteLine("status:" + status);
            saveFile.WriteLine("inventory:");
            foreach (GameItem item in inventory)
            {
                saveFile.Write(item.SaveDataAsString());
            }
            saveFile.WriteLine("end:");
            saveFile.WriteLine("end:");
            saveFile.WriteLine("room:");
            saveFile.WriteLine(room.SaveDataAsString());

            saveFile.Close();

            Console.Clear();
            Console.WriteLine("Saving Done!");
            Console.ReadKey();
        }
Пример #3
0
        private static void LoadGame(string filename, out Player player, out Room room)
        {
            StreamReader file;

            try
            {
                file = File.OpenText(filename);

                player = new Player("none", "Human", "Male", 0, new Weapon("Fists", 0, 0));
                room = new Room(1, 1, new Boss());

                while (!file.EndOfStream)
                {
                    string text = file.ReadLine();

                    //Get Player Data
                    if (text == "player:")
                    {
                        string name = "none";
                        string gender = "Male";
                        string race = "Human";
                        int chosenAffinity = 0;
                        int affinity = 0;
                        int dungeonLevel = 0;
                        int x = 0;
                        int y = 0;
                        int level = 1;
                        int exp = 0;
                        int expNeeded = 10;
                        int gold = 0;
                        Weapon weapon = new Weapon("Fists", 0, 0);
                        int maxHealth = 0;
                        int health = 0;
                        int attackDamage = 0;
                        int magic = 0;
                        int defense = 0;
                        int resist = 0;
                        StatusEffect status = StatusEffect.none;
                        List<GameItem> inventory = new List<GameItem>();

                        while (true)
                        {
                            text = file.ReadLine();
                            string[] subTexts = text.Split(new string[] { ":" }, StringSplitOptions.None);

                            if (subTexts[0] == "name")
                                name = subTexts[1];
                            else if (subTexts[0] == "gender")
                                gender = subTexts[1];
                            else if (subTexts[0] == "race")
                                race = subTexts[1];
                            else if (subTexts[0] == "chosenAffinity")
                                chosenAffinity = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "afinity")
                                affinity = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "dungeonLevel")
                                dungeonLevel = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "x")
                                x = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "y")
                                y = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "level")
                                level = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "exp")
                                exp = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "expNeeded")
                                expNeeded = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "gold")
                                gold = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "weapon")
                            {
                                string weaponName = "none";
                                int cost = 0;
                                int damage = 0;
                                WeaponEffect effect = WeaponEffect.none;
                                int wx = 0, wy = 0;

                                for (int i = 1; i < subTexts.Count(); i += 2)
                                {
                                    if (subTexts[i] == "name")
                                        weaponName = subTexts[i + 1];
                                    else if (subTexts[i] == "cost")
                                        cost = Convert.ToInt32(subTexts[i + 1]);
                                    else if (subTexts[i] == "damage")
                                        damage = Convert.ToInt32(subTexts[i + 1]);
                                    else if (subTexts[i] == "effect")
                                    {
                                        if (subTexts[i + 1] == "burn")
                                            effect = WeaponEffect.burn;
                                        else if (subTexts[i + 1] == "penetrate")
                                            effect = WeaponEffect.penetrate;
                                        else if (subTexts[i + 1] == "curse")
                                            effect = WeaponEffect.curse;
                                        else if (subTexts[i + 1] == "midas")
                                            effect = WeaponEffect.midas;
                                        else if (subTexts[i + 1] == "wisdom")
                                            effect = WeaponEffect.wisdom;
                                        else effect = WeaponEffect.none;
                                    }
                                    else if (subTexts[i] == "x")
                                        wx = Convert.ToInt32(subTexts[i + 1]);
                                    else if (subTexts[i] == "y")
                                        wy = Convert.ToInt32(subTexts[i + 1]);
                                }

                                weapon = new Weapon(weaponName, damage, cost, effect);
                            }
                            else if (subTexts[0] == "maxHealth")
                                maxHealth = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "health")
                                health = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "attackDamage")
                                attackDamage = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "magic")
                                magic = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "defense")
                                defense = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "resist")
                                resist = Convert.ToInt32(subTexts[1]);
                            else if (subTexts[0] == "status")
                            {
                                if (subTexts[1] == "burned")
                                    status = StatusEffect.burned;
                                else if (subTexts[1] == "cursed")
                                    status = StatusEffect.cursed;
                                else status = StatusEffect.none;
                            }
                            else if (subTexts[0] == "inventory")
                            {
                                string invText = file.ReadLine();
                                string[] subInvTexts = invText.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                                int sPos = 0;

                                inventory = new List<GameItem>();

                                while (true)
                                {
                                    if (subInvTexts[sPos] == "type")
                                    {
                                        sPos++;
                                        if (subInvTexts[sPos] == "weapon")
                                        {
                                            string weaponName = "none";
                                            int cost = 0;
                                            int damage = 0;
                                            WeaponEffect effect = WeaponEffect.none;
                                            int wx = 0, wy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subInvTexts[sPos] == "name")
                                                {
                                                    sPos++;
                                                    weaponName = subInvTexts[sPos];
                                                }
                                                else if (subInvTexts[sPos] == "cost")
                                                {
                                                    sPos++;
                                                    cost = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "damage")
                                                {
                                                    sPos++;
                                                    damage = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    wx = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    wy = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "effect")
                                                {
                                                    sPos++;

                                                    if (subInvTexts[sPos] == "burn")
                                                        effect = WeaponEffect.burn;
                                                    else if (subInvTexts[sPos] == "penetrate")
                                                        effect = WeaponEffect.penetrate;
                                                    else if (subInvTexts[sPos] == "curse")
                                                        effect = WeaponEffect.curse;
                                                    else if (subInvTexts[sPos] == "midas")
                                                        effect = WeaponEffect.midas;
                                                    else if (subInvTexts[sPos] == "wisdom")
                                                        effect = WeaponEffect.wisdom;
                                                    else effect = WeaponEffect.none;
                                                }
                                                else if (subInvTexts[sPos] == "end")
                                                {
                                                    sPos++;
                                                    inventory.Add(new Weapon(weaponName, damage, cost, wx, wy, effect));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subInvTexts[sPos] == "magicWeapon")
                                        {
                                            string weaponName = "none";
                                            int cost = 0;
                                            int magicDamage = 0;
                                            WeaponEffect effect = WeaponEffect.none;
                                            int wx = 0, wy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subInvTexts[sPos] == "name")
                                                {
                                                    sPos++;
                                                    weaponName = subInvTexts[sPos];
                                                }
                                                else if (subInvTexts[sPos] == "cost")
                                                {
                                                    sPos++;
                                                    cost = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "magicDamage")
                                                {
                                                    sPos++;
                                                    magicDamage = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    wx = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    wy = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "effect")
                                                {
                                                    sPos++;
                                                    if (subInvTexts[sPos] == "burn")
                                                        effect = WeaponEffect.burn;
                                                    else if (subInvTexts[sPos] == "penetrate")
                                                        effect = WeaponEffect.penetrate;
                                                    else if (subInvTexts[sPos] == "curse")
                                                        effect = WeaponEffect.curse;
                                                    else if (subInvTexts[sPos] == "midas")
                                                        effect = WeaponEffect.midas;
                                                    else if (subInvTexts[sPos] == "wisdom")
                                                        effect = WeaponEffect.wisdom;
                                                    else effect = WeaponEffect.none;
                                                }
                                                else if (subInvTexts[sPos] == "end")
                                                {
                                                    sPos++;
                                                    inventory.Add(new MagicWeapon(magicDamage, weaponName, cost, wx, wy, effect));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subInvTexts[sPos] == "noviceFireTome")
                                        {
                                            int wx = 0, wy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subInvTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    wx = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    wy = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "end")
                                                {
                                                    sPos++;
                                                    inventory.Add(new NoviceFireTome(wx, wy));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subInvTexts[sPos] == "statbooster")
                                        {
                                            int ix = 0, iy = 0;
                                            int statLevel = 1;
                                            string stat = "Health";

                                            while (true)
                                            {
                                                sPos++;

                                                if (subInvTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ix = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    iy = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "level")
                                                {
                                                    sPos++;
                                                    statLevel = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "stat")
                                                {
                                                    sPos++;
                                                    stat = subInvTexts[sPos];
                                                }
                                                else if (subInvTexts[sPos] == "end")
                                                {
                                                    sPos++;
                                                    inventory.Add(new Statbooster(stat, statLevel, ix, iy));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subInvTexts[sPos] == "statusHealer")
                                        {
                                            int ix = 0, iy = 0;
                                            StatusEffect itemStatus = StatusEffect.none;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subInvTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ix = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    iy = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "status")
                                                {
                                                    sPos++;
                                                    if (subInvTexts[sPos] == "burned")
                                                        itemStatus = StatusEffect.burned;
                                                    else if (subInvTexts[sPos] == "cursed")
                                                        itemStatus = StatusEffect.cursed;
                                                    else itemStatus = StatusEffect.none;
                                                }
                                                else if (subInvTexts[sPos] == "end")
                                                {
                                                    sPos++;
                                                    inventory.Add(new StatusHealer(itemStatus, ix, iy));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subInvTexts[sPos] == "healthTonicBasic")
                                        {
                                            int hx = 0, hy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subInvTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    hx = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    hy = Convert.ToInt32(subInvTexts[sPos]);
                                                }
                                                else if (subInvTexts[sPos] == "end")
                                                {
                                                    sPos++;
                                                    inventory.Add(new HealthTonicBasic(hx, hy));
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    else if (subInvTexts[sPos] == "end")
                                        break;
                                    else if (subInvTexts[sPos] == "gameItem")
                                    {
                                        string itemName = "none";
                                        int cost = 0;
                                        string info = "none";
                                        int ix = 0, iy = 0;

                                        while (true)
                                        {
                                            sPos++;

                                            if (subInvTexts[sPos] == "name")
                                            {
                                                sPos++;
                                                itemName = subInvTexts[sPos];
                                            }
                                            else if (subInvTexts[sPos] == "info")
                                            {
                                                sPos++;
                                                info = subInvTexts[sPos];
                                            }
                                            else if (subInvTexts[sPos] == "cost")
                                            {
                                                sPos++;
                                                cost = Convert.ToInt32(subInvTexts[sPos]);
                                            }
                                            else if (subInvTexts[sPos] == "x")
                                            {
                                                sPos++;
                                                ix = Convert.ToInt32(subInvTexts[sPos]);
                                            }
                                            else if (subInvTexts[sPos] == "y")
                                            {
                                                sPos++;
                                                iy = Convert.ToInt32(subInvTexts[sPos]);
                                            }
                                            else if (subInvTexts[sPos] == "end")
                                            {
                                                sPos++;
                                                inventory.Add(new GameItem(itemName, cost, ix, iy, info));
                                                break;
                                            }
                                        }
                                    }
                                }
                            }
                            else if (subTexts[0] == "end")
                            {
                                player = new Player(name, gender, race, chosenAffinity, affinity, dungeonLevel, x, y,
                                    level, exp, expNeeded, gold, weapon, maxHealth, health, attackDamage, magic, defense,
                                    resist, status, inventory);
                                break;
                            }
                        }
                    }
                    else if (text == "room:")
                    {
                        text = file.ReadLine();
                        string[] subTexts = text.Split(new string[] { ":" }, StringSplitOptions.None);
                        int sPos = 0;

                        int width = 0, height = 0;
                        int[] exitPos = new int[] { 0, 0 };
                        bool exitOpen = true;
                        int coinCount = 0;
                        int[,] coinPos = new int[coinCount, 2];
                        int enemyCount = 0;
                        List<Enemy> enemies = new List<Enemy>();
                        List<GameItem> items = new List<GameItem>();
                        Boss boss = null;
                        Shopkeeper shopkeeper = null;

                        while (true)
                        {
                            if (subTexts[sPos] == "width")
                            {
                                sPos++;
                                width = Convert.ToInt32(subTexts[sPos]);
                            }
                            else if (subTexts[sPos] == "height")
                            {
                                sPos++;
                                height = Convert.ToInt32(subTexts[sPos]);
                            }
                            else if (subTexts[sPos] == "exitPos")
                            {
                                sPos++;

                                string[] exitPosStrings = subTexts[sPos].Split(new string[] { "," }, StringSplitOptions.None);
                                exitPos[0] = Convert.ToInt32(exitPosStrings[0]);
                                exitPos[1] = Convert.ToInt32(exitPosStrings[1]);
                            }
                            else if (subTexts[sPos] == "exitOpen")
                            {
                                sPos++;
                                exitOpen = Convert.ToBoolean(subTexts[sPos]);
                            }
                            else if (subTexts[sPos] == "coinCount")
                            {
                                sPos++;
                                coinCount = Convert.ToInt32(subTexts[sPos]);
                            }
                            else if (subTexts[sPos] == "coinPos")
                            {
                                sPos++;
                                coinPos = new int[coinCount, 2];
                                int coinNum = 0;

                                while (true)
                                {
                                    if (subTexts[sPos] == "end")
                                    {
                                        break;
                                    }
                                    else
                                    {
                                        string[] stringCoinPos = subTexts[sPos].Split(new string[] { "," }, StringSplitOptions.None);
                                        sPos++;

                                        coinPos[coinNum, 0] = Convert.ToInt32(stringCoinPos[0]);
                                        coinPos[coinNum, 1] = Convert.ToInt32(stringCoinPos[1]);

                                        coinNum++;
                                    }
                                }
                            }
                            else if (subTexts[sPos] == "enemycount")
                            {
                                sPos++;
                                enemyCount = Convert.ToInt32(subTexts[sPos]);
                            }
                            else if (subTexts[sPos] == "enemies")
                            {
                                sPos++;

                                while (true)
                                {
                                    if (subTexts[sPos] == "type")
                                    {
                                        sPos++;

                                        if (subTexts[sPos] == "rat")
                                        {
                                            sPos++;

                                            int ex = 0, ey = 0, level = 1;

                                            while (true)
                                            {
                                                if (subTexts[sPos] == "level")
                                                {
                                                    sPos++;
                                                    level = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ex = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    ey = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    enemies.Add(new Rat(ex, ey, level));
                                                    break;
                                                }

                                                sPos++;
                                            }
                                        }
                                        else if (subTexts[sPos] == "weakZombie")
                                        {
                                            sPos++;

                                            int ex = 0, ey = 0, level = 1;

                                            while (true)
                                            {
                                                if (subTexts[sPos] == "level")
                                                {
                                                    sPos++;
                                                    level = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ex = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    ey = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    enemies.Add(new WeakZombie(ex, ey, level));
                                                    break;
                                                }

                                                sPos++;
                                            }
                                        }
                                        else if (subTexts[sPos] == "boneman")
                                        {
                                            sPos++;

                                            int ex = 0, ey = 0, level = 1;

                                            while (true)
                                            {
                                                if (subTexts[sPos] == "level")
                                                {
                                                    sPos++;
                                                    level = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ex = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    ey = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    enemies.Add(new Boneman(ex, ey, level));
                                                    break;
                                                }

                                                sPos++;
                                            }
                                        }
                                        else
                                        {
                                            sPos++;

                                            int ex = 0, ey = 0, level = 1;
                                            string name = "none";
                                            int maxHealth = 0;
                                            int health = 0;
                                            int attackDamage = 0;
                                            int magic = 0;
                                            int defense = 0;
                                            int resist = 0;
                                            WeaponEffect effect = WeaponEffect.none;
                                            int expDropped = 0;
                                            int goldDropped = 0;
                                            int baseHealth = 0;
                                            int baseAttack = 0;
                                            int baseMagic = 0;
                                            int baseDefense = 0;
                                            int baseResist = 0;
                                            int expDropBase = 0;
                                            int goldDropBase = 0;
                                            float healthModifier = 1;
                                            float attackModifier = 1;
                                            float magicModifier = 1;
                                            float defenseModifier = 1;
                                            float resistModifier = 1;
                                            float expModifier = 1;
                                            float goldModifier = 1;

                                            while (true)
                                            {
                                                if (subTexts[sPos] == "level")
                                                {
                                                    sPos++;
                                                    level = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ex = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    ey = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "name")
                                                {
                                                    sPos++;
                                                    name = subTexts[sPos];
                                                }
                                                else if (subTexts[sPos] == "maxHealth")
                                                {
                                                    sPos++;
                                                    maxHealth = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "health")
                                                {
                                                    sPos++;
                                                    health = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "attackDamage")
                                                {
                                                    sPos++;
                                                    attackDamage = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "magic")
                                                {
                                                    sPos++;
                                                    magic = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "defense")
                                                {
                                                    sPos++;
                                                    defense = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "resist")
                                                {
                                                    sPos++;
                                                    resist = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "effect")
                                                {
                                                    sPos++;

                                                    if (subTexts[sPos] == "burn")
                                                        effect = WeaponEffect.burn;
                                                    else if (subTexts[sPos] == "penetrate")
                                                        effect = WeaponEffect.penetrate;
                                                    else if (subTexts[sPos] == "curse")
                                                        effect = WeaponEffect.curse;
                                                    else if (subTexts[sPos] == "midas")
                                                        effect = WeaponEffect.midas;
                                                    else if (subTexts[sPos] == "wisdom")
                                                        effect = WeaponEffect.wisdom;
                                                    else effect = WeaponEffect.none;
                                                }
                                                else if (subTexts[sPos] == "expDropped")
                                                {
                                                    sPos++;
                                                    expDropped = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "goldDropped")
                                                {
                                                    sPos++;
                                                    goldDropped = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "baseHealth")
                                                {
                                                    sPos++;
                                                    baseHealth = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "baseAttack")
                                                {
                                                    sPos++;
                                                    baseAttack = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "baseMagic")
                                                {
                                                    sPos++;
                                                    baseMagic = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "baseDefense")
                                                {
                                                    sPos++;
                                                    baseDefense = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "baseResist")
                                                {
                                                    sPos++;
                                                    baseResist = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "expDropBase")
                                                {
                                                    sPos++;
                                                    expDropBase = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "goldDropBase")
                                                {
                                                    sPos++;
                                                    goldDropBase = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "healthModifier")
                                                {
                                                    sPos++;
                                                    healthModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "attackModifier")
                                                {
                                                    sPos++;
                                                    attackModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "magicModifier")
                                                {
                                                    sPos++;
                                                    magicModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "defenseModifier")
                                                {
                                                    sPos++;
                                                    defenseModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "reistModifier")
                                                {
                                                    sPos++;
                                                    resistModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "expModifier")
                                                {
                                                    sPos++;
                                                    expModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "goldModifier")
                                                {
                                                    sPos++;
                                                    goldModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    enemies.Add(new Enemy(name, ex, ey, level, effect, maxHealth, health,
                                                        attackDamage, magic, defense, resist, expDropped, goldDropped,
                                                        baseHealth, baseAttack, baseMagic, baseDefense, baseResist, expDropBase,
                                                        goldDropBase, healthModifier, attackModifier, magicModifier, defenseModifier,
                                                        resistModifier, expModifier, goldModifier));
                                                    break;
                                                }

                                                sPos++;
                                            }
                                        }

                                        sPos++;
                                    }
                                    else if (subTexts[sPos] == "end")
                                        break;
                                }
                            }
                            else if (subTexts[sPos] == "items")
                            {
                                sPos++;

                                while (true)
                                {
                                    if (subTexts[sPos] == "type")
                                    {
                                        sPos++;

                                        if (subTexts[sPos] == "weapon")
                                        {
                                            string weaponName = "none";
                                            int cost = 0;
                                            int damage = 0;
                                            WeaponEffect effect = WeaponEffect.none;
                                            int wx = 0, wy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subTexts[sPos] == "name")
                                                {
                                                    sPos++;
                                                    weaponName = subTexts[sPos];
                                                }
                                                else if (subTexts[sPos] == "cost")
                                                {
                                                    sPos++;
                                                    cost = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "damage")
                                                {
                                                    sPos++;
                                                    damage = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    wx = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    wy = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "effect")
                                                {
                                                    sPos++;

                                                    if (subTexts[sPos] == "burn")
                                                        effect = WeaponEffect.burn;
                                                    else if (subTexts[sPos] == "penetrate")
                                                        effect = WeaponEffect.penetrate;
                                                    else if (subTexts[sPos] == "curse")
                                                        effect = WeaponEffect.curse;
                                                    else if (subTexts[sPos] == "midas")
                                                        effect = WeaponEffect.midas;
                                                    else if (subTexts[sPos] == "wisdom")
                                                        effect = WeaponEffect.wisdom;
                                                    else effect = WeaponEffect.none;

                                                    sPos++;
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    items.Add(new Weapon(weaponName, damage, cost, wx, wy, effect));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subTexts[sPos] == "magicWeapon")
                                        {
                                            string weaponName = "none";
                                            int cost = 0;
                                            int magicDamage = 0;
                                            WeaponEffect effect = WeaponEffect.none;
                                            int wx = 0, wy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subTexts[sPos] == "name")
                                                {
                                                    sPos++;
                                                    weaponName = subTexts[sPos];
                                                }
                                                else if (subTexts[sPos] == "cost")
                                                {
                                                    sPos++;
                                                    cost = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "magicDamage")
                                                {
                                                    sPos++;
                                                    magicDamage = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    wx = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    wy = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "effect")
                                                {
                                                    sPos++;

                                                    if (subTexts[sPos] == "burn")
                                                        effect = WeaponEffect.burn;
                                                    else if (subTexts[sPos] == "penetrate")
                                                        effect = WeaponEffect.penetrate;
                                                    else if (subTexts[sPos] == "curse")
                                                        effect = WeaponEffect.curse;
                                                    else if (subTexts[sPos] == "midas")
                                                        effect = WeaponEffect.midas;
                                                    else if (subTexts[sPos] == "wisdom")
                                                        effect = WeaponEffect.wisdom;
                                                    else effect = WeaponEffect.none;

                                                    sPos++;
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    items.Add(new MagicWeapon(magicDamage, weaponName, cost, wx, wy, effect));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subTexts[sPos] == "noviceFireTome")
                                        {
                                            int wx = 0, wy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    wx = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    wy = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    items.Add(new NoviceFireTome(wx, wy));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subTexts[sPos] == "statbooster")
                                        {
                                            int ix = 0, iy = 0;
                                            int statLevel = 1;
                                            string stat = "Health";

                                            while (true)
                                            {
                                                sPos++;

                                                if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ix = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    iy = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "level")
                                                {
                                                    sPos++;
                                                    statLevel = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "stat")
                                                {
                                                    sPos++;
                                                    stat = subTexts[sPos];
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    items.Add(new Statbooster(stat, statLevel, ix, iy));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subTexts[sPos] == "statusHealer")
                                        {
                                            int ix = 0, iy = 0;
                                            StatusEffect itemStatus = StatusEffect.none;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    ix = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    iy = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "status")
                                                {
                                                    sPos++;

                                                    if (subTexts[sPos] == "burned")
                                                        itemStatus = StatusEffect.burned;
                                                    else if (subTexts[sPos] == "cursed")
                                                        itemStatus = StatusEffect.cursed;
                                                    else itemStatus = StatusEffect.none;

                                                    sPos++;
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    items.Add(new StatusHealer(itemStatus, ix, iy));
                                                    break;
                                                }
                                            }
                                        }
                                        else if (subTexts[sPos] == "healthTonicBasic")
                                        {
                                            int hx = 0, hy = 0;

                                            while (true)
                                            {
                                                sPos++;

                                                if (subTexts[sPos] == "x")
                                                {
                                                    sPos++;
                                                    hx = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "y")
                                                {
                                                    sPos++;
                                                    hy = Convert.ToInt32(subTexts[sPos]);
                                                }
                                                else if (subTexts[sPos] == "end")
                                                {
                                                    items.Add(new HealthTonicBasic(hx, hy));
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    else if (subTexts[sPos] == "end")
                                        break;
                                    else
                                    {
                                        string itemName = "none";
                                        int cost = 0;
                                        string info = "none";
                                        int ix = 0, iy = 0;

                                        while (true)
                                        {
                                            sPos++;

                                            if (subTexts[sPos] == "name")
                                            {
                                                sPos++;
                                                itemName = subTexts[sPos];
                                            }
                                            else if (subTexts[sPos] == "info")
                                            {
                                                sPos++;
                                                info = subTexts[sPos];
                                            }
                                            else if (subTexts[sPos] == "cost")
                                            {
                                                sPos++;
                                                cost = Convert.ToInt32(subTexts[sPos]);
                                            }
                                            else if (subTexts[sPos] == "x")
                                            {
                                                sPos++;
                                                ix = Convert.ToInt32(subTexts[sPos]);
                                            }
                                            else if (subTexts[sPos] == "y")
                                            {
                                                sPos++;
                                                iy = Convert.ToInt32(subTexts[sPos]);
                                            }
                                            else if (subTexts[sPos] == "end")
                                            {
                                                items.Add(new GameItem(itemName, cost, ix, iy, info));
                                                break;
                                            }
                                        }
                                    }

                                    sPos++;
                                }
                            }
                            else if (subTexts[sPos] == "Boss")
                            {
                                sPos++;

                                if (subTexts[sPos] == "type")
                                {
                                    sPos++;

                                    if (subTexts[sPos] == "revenant")
                                    {
                                        sPos++;
                                        boss = new Revenant();
                                    }
                                }
                                else
                                {
                                    sPos++;

                                    int ex = 0, ey = 0, level = 1;
                                    string name = "none";
                                    int maxHealth = 0;
                                    int health = 0;
                                    int attackDamage = 0;
                                    int magic = 0;
                                    int defense = 0;
                                    int resist = 0;
                                    WeaponEffect effect = WeaponEffect.none;
                                    int expDropped = 0;
                                    int goldDropped = 0;
                                    int baseHealth = 0;
                                    int baseAttack = 0;
                                    int baseMagic = 0;
                                    int baseDefense = 0;
                                    int baseResist = 0;
                                    int expDropBase = 0;
                                    int goldDropBase = 0;
                                    float healthModifier = 1;
                                    float attackModifier = 1;
                                    float magicModifier = 1;
                                    float defenseModifier = 1;
                                    float resistModifier = 1;
                                    float expModifier = 1;
                                    float goldModifier = 1;

                                    while (true)
                                    {
                                        if (subTexts[sPos] == "level")
                                        {
                                            sPos++;
                                            level = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "x")
                                        {
                                            sPos++;
                                            ex = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "y")
                                        {
                                            sPos++;
                                            ey = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "name")
                                        {
                                            sPos++;
                                            name = subTexts[sPos];
                                        }
                                        else if (subTexts[sPos] == "maxHealth")
                                        {
                                            sPos++;
                                            maxHealth = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "health")
                                        {
                                            sPos++;
                                            health = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "attackDamage")
                                        {
                                            sPos++;
                                            attackDamage = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "magic")
                                        {
                                            sPos++;
                                            magic = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "defense")
                                        {
                                            sPos++;
                                            defense = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "resist")
                                        {
                                            sPos++;
                                            resist = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "effect")
                                        {
                                            sPos++;

                                            if (subTexts[sPos] == "burn")
                                                effect = WeaponEffect.burn;
                                            else if (subTexts[sPos] == "penetrate")
                                                effect = WeaponEffect.penetrate;
                                            else if (subTexts[sPos] == "curse")
                                                effect = WeaponEffect.curse;
                                            else if (subTexts[sPos] == "midas")
                                                effect = WeaponEffect.midas;
                                            else if (subTexts[sPos] == "wisdom")
                                                effect = WeaponEffect.wisdom;
                                            else effect = WeaponEffect.none;
                                        }
                                        else if (subTexts[sPos] == "expDropped")
                                        {
                                            sPos++;
                                            expDropped = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "goldDropped")
                                        {
                                            sPos++;
                                            goldDropped = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "baseHealth")
                                        {
                                            sPos++;
                                            baseHealth = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "baseAttack")
                                        {
                                            sPos++;
                                            baseAttack = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "baseMagic")
                                        {
                                            sPos++;
                                            baseMagic = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "baseDefense")
                                        {
                                            sPos++;
                                            baseDefense = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "baseResist")
                                        {
                                            sPos++;
                                            baseResist = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "expDropBase")
                                        {
                                            sPos++;
                                            expDropBase = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "goldDropBase")
                                        {
                                            sPos++;
                                            goldDropBase = Convert.ToInt32(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "healthModifier")
                                        {
                                            sPos++;
                                            healthModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "attackModifier")
                                        {
                                            sPos++;
                                            attackModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "magicModifier")
                                        {
                                            sPos++;
                                            magicModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "defenseModifier")
                                        {
                                            sPos++;
                                            defenseModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "reistModifier")
                                        {
                                            sPos++;
                                            resistModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "expModifier")
                                        {
                                            sPos++;
                                            expModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "goldModifier")
                                        {
                                            sPos++;
                                            goldModifier = (float)Convert.ToDouble(subTexts[sPos]);
                                        }
                                        else if (subTexts[sPos] == "end")
                                        {
                                            sPos++;
                                            enemies.Add(new Enemy(name, ex, ey, level, effect, maxHealth, health,
                                                attackDamage, magic, defense, resist, expDropped, goldDropped,
                                                baseHealth, baseAttack, baseMagic, baseDefense, baseResist, expDropBase,
                                                goldDropBase, healthModifier, attackModifier, magicModifier, defenseModifier,
                                                resistModifier, expModifier, goldModifier));
                                            break;
                                        }
                                    }
                                }
                            }
                            else if (subTexts[sPos] == "Shopkeeper")
                            {
                                sPos++;

                                int level = 1;

                                while (true)
                                {
                                    if (subTexts[sPos] == "level")
                                    {
                                        sPos++;
                                        level = Convert.ToInt32(subTexts[sPos]);
                                    }
                                    else if (subTexts[sPos] == "end")
                                    {
                                        shopkeeper = new Shopkeeper(level);
                                        break;
                                    }

                                    sPos++;
                                }
                            }
                            else if (subTexts[sPos] == "end")
                            {
                                sPos++;
                                room = new Room(width, height, exitPos, exitOpen, coinCount, coinPos, enemyCount,
                                    enemies, items, boss, shopkeeper);
                                break;
                            }

                            sPos++;
                        }
                    }
                }

                file.Close();
            }
            catch (FileNotFoundException e)
            {
                Console.Clear();
                Console.WriteLine("Error encountered during loading sequence!");
                Console.ReadKey();
                Environment.Exit(1);

                //So the compiler won't complain
                player = null;
                room = null;
            }
        }