Пример #1
0
        private static void PopulateLocations()
        {
            // Create each location
            Location home = new Location(LOCATION_ID_HOME, "Casa", "O teu quarto está muito desarrumado...");

            Location townSquare  = new Location(LOCATION_ID_TOWN_SQUARE, "Praça da cidade", "Vês uma fonte de água.");
            Vendor   hobbitWares = new Engine.Vendor("Hobbit mercante", 50);

            hobbitWares.AddItemToInventory(ItemByID(ITEM_ID_PIECE_OF_FUR), 5);
            hobbitWares.AddItemToInventory(ItemByID(ITEM_ID_RAT_TAIL), 3);
            hobbitWares.AddItemToInventory(ItemByID(ITEM_ID_CLUB), 1);
            hobbitWares.AddItemToInventory(ItemByID(ITEM_ID_RUSTY_SWORD), 1);

            townSquare.VendorWorkingHere = hobbitWares;

            Location alchemistHut = new Location(LOCATION_ID_ALCHEMIST_HUT, "Cabana do Alquimista", "Tem umas plantas estranhas nas prateleiras.");

            alchemistHut.QuestAvailableHere = QuestByID(QUEST_ID_CLEAR_ALCHEMIST_GARDEN);

            Location alchemistsGarden = new Location(LOCATION_ID_ALCHEMISTS_GARDEN, "Jardim do Alquimista", "Muitas flores e frutos crescem aqui.");

            alchemistsGarden.AddMonster(MONSTER_ID_RAT, 100);

            Location farmhouse = new Location(LOCATION_ID_FARMHOUSE, "Rancho", "Uma casa na quinta. O agricultor parece ocupado.");

            farmhouse.QuestAvailableHere = QuestByID(QUEST_ID_CLEAR_FARMERS_FIELD);

            Location farmersField = new Location(LOCATION_ID_FARM_FIELD, "Campo do Agricultor", "Linhas de vegetais crescem aqui.");

            farmersField.AddMonster(MONSTER_ID_SNAKE_BLACK, 70);
            farmersField.AddMonster(MONSTER_ID_SNAKE_COPPERHEAD, 30);

            Location guardPost = new Location(LOCATION_ID_GUARD_POST, "Posto de Guarda", "O guarda é intimidante.", ItemByID(ITEM_ID_ADVENTURER_PASS));

            Location bridge = new Location(LOCATION_ID_BRIDGE, "Ponte", "Uma ponte de pedra sobre um rio largo.");

            Location spiderField = new Location(LOCATION_ID_SPIDER_FIELD, "Floresta Obscura", "Teias de aranhas cobrem as árvores nesta floresta.");

            spiderField.AddMonster(MONSTER_ID_GIANT_SPIDER, 100);

            // Link the locations together
            home.LocationToNorth = townSquare;

            townSquare.LocationToNorth = alchemistHut;
            townSquare.LocationToSouth = home;
            townSquare.LocationToEast  = guardPost;
            townSquare.LocationToWest  = farmhouse;

            farmhouse.LocationToEast = townSquare;
            farmhouse.LocationToWest = farmersField;

            farmersField.LocationToEast = farmhouse;

            alchemistHut.LocationToSouth = townSquare;
            alchemistHut.LocationToNorth = alchemistsGarden;

            alchemistsGarden.LocationToSouth = alchemistHut;

            guardPost.LocationToEast = bridge;
            guardPost.LocationToWest = townSquare;

            bridge.LocationToWest = guardPost;
            bridge.LocationToEast = spiderField;

            spiderField.LocationToWest = bridge;

            // Add the locations to the static list
            _locations.Add(home);
            _locations.Add(townSquare);
            _locations.Add(guardPost);
            _locations.Add(alchemistHut);
            _locations.Add(alchemistsGarden);
            _locations.Add(farmhouse);
            _locations.Add(farmersField);
            _locations.Add(bridge);
            _locations.Add(spiderField);
        }
Пример #2
0
        private static void PopulateLocations()
        {
            // Create each location
            Location home = new Location(LOCATION_ID_HOME, "Home", "Your house. You really need to clean up the place.");

            Location townSquare = new Location(LOCATION_ID_TOWN_SQUARE, "Town square", "You see a fountain.");

            Vendor bobTheRatCatcher = new Vendor("Bob the Rat-Catcher");

            bobTheRatCatcher.AddItemToInventory(ItemByID(ITEM_ID_RUSTY_SWORD), 1);
            bobTheRatCatcher.AddItemToInventory(ItemByID(ITEM_ID_PIECE_OF_FUR), 5);
            bobTheRatCatcher.AddItemToInventory(ItemByID(ITEM_ID_RAT_TAIL), 3);

            townSquare.VendorWorkingHere = bobTheRatCatcher;

            Location alchemistHut = new Location(LOCATION_ID_ALCHEMIST_HUT, "Alchemist's hut", "There are many strange plants on the shelves.");

            alchemistHut.QuestAvailableHere = QuestByID(QUEST_ID_CLEAR_ALCHEMIST_GARDEN);

            Location alchemistsGarden = new Location(LOCATION_ID_ALCHEMISTS_GARDEN, "Alchemist's garden", "Many plants are growing here.");

            alchemistsGarden.AddMonster(MONSTER_ID_RAT, 100);

            Location farmhouse = new Location(LOCATION_ID_FARMHOUSE, "Farmhouse", "There is a small farmhouse, with a farmer in front.");

            farmhouse.QuestAvailableHere = QuestByID(QUEST_ID_CLEAR_FARMERS_FIELD);

            Location farmersField = new Location(LOCATION_ID_FARM_FIELD, "Farmer's field", "You see rows of vegetables growing here.");

            farmersField.AddMonster(MONSTER_ID_SNAKE, 100);

            Location guardPost = new Location(LOCATION_ID_GUARD_POST, "Guard post", "There is a large, tough-looking guard here.", ItemByID(ITEM_ID_ADVENTURER_PASS));

            Location bridge = new Location(LOCATION_ID_BRIDGE, "Bridge", "A stone bridge crosses a wide river.");

            bridge.AddMonster(MONSTER_ID_BANDIT, 100);

            Location spiderField = new Location(LOCATION_ID_SPIDER_FIELD, "Forest", "You see spider webs covering covering the trees in this forest.");

            spiderField.AddMonster(MONSTER_ID_GIANT_SPIDER, 100);

            // Link the locations together
            home.LocationToNorth = townSquare;

            townSquare.LocationToNorth = alchemistHut;
            townSquare.LocationToSouth = home;
            townSquare.LocationToEast  = guardPost;
            townSquare.LocationToWest  = farmhouse;

            farmhouse.LocationToEast = townSquare;
            farmhouse.LocationToWest = farmersField;

            farmersField.LocationToEast = farmhouse;

            alchemistHut.LocationToSouth = townSquare;
            alchemistHut.LocationToNorth = alchemistsGarden;

            alchemistsGarden.LocationToSouth = alchemistHut;

            guardPost.LocationToEast = bridge;
            guardPost.LocationToWest = townSquare;

            bridge.LocationToWest = guardPost;
            bridge.LocationToEast = spiderField;

            spiderField.LocationToWest = bridge;

            // Add the locations to the static list
            _locations.Add(home);
            _locations.Add(townSquare);
            _locations.Add(guardPost);
            _locations.Add(alchemistHut);
            _locations.Add(alchemistsGarden);
            _locations.Add(farmhouse);
            _locations.Add(farmersField);
            _locations.Add(bridge);
            _locations.Add(spiderField);
        }
Пример #3
0
        public bool LoadWorld()
        {
            try
            {
                XmlDocument worldData = new XmlDocument();

                worldData.LoadXml(this._xmlWorld);

                RaiseMessage(MessageTypes.LoadingItems);
                #region Populate Items
                _items = new List <Item>();
                foreach (XmlNode node in worldData.SelectNodes("/World/items/item"))
                {
                    int    Id         = Convert.ToInt32(node.SelectSingleNode("Id").InnerText);
                    string Name       = node.SelectSingleNode("Name").InnerText;
                    string NamePlural = node.SelectSingleNode("NamePlural").InnerText;
                    int    Price      = Convert.ToInt32(node.SelectSingleNode("Price").InnerText);

                    _items.Add(new Item(Id, Name, NamePlural, Price));
                }
                #endregion

                #region Populate Weapons
                foreach (XmlNode node in worldData.SelectNodes("/World/items/weapon"))
                {
                    int    Id            = Convert.ToInt32(node.SelectSingleNode("Id").InnerText);
                    string Name          = node.SelectSingleNode("Name").InnerText;
                    string NamePlural    = node.SelectSingleNode("NamePlural").InnerText;
                    int    Price         = Convert.ToInt32(node.SelectSingleNode("Price").InnerText);
                    int    MinimumDamage = Convert.ToInt32(node.SelectSingleNode("MinimumDamage").InnerText);
                    int    MaximumDamage = Convert.ToInt32(node.SelectSingleNode("MaximumDamage").InnerText);

                    _items.Add(new Weapon(Id, Name, NamePlural, MinimumDamage, MaximumDamage, Price));
                }
                #endregion

                #region Populate Healing Potions
                foreach (XmlNode node in worldData.SelectNodes("/World/items/healingPotion"))
                {
                    int    Id           = Convert.ToInt32(node.SelectSingleNode("Id").InnerText);
                    string Name         = node.SelectSingleNode("Name").InnerText;
                    string NamePlural   = node.SelectSingleNode("NamePlural").InnerText;
                    int    Price        = Convert.ToInt32(node.SelectSingleNode("Price").InnerText);
                    int    AmountToHeal = Convert.ToInt32(node.SelectSingleNode("AmountToHeal").InnerText);

                    _items.Add(new HealingPotion(Id, Name, NamePlural, AmountToHeal, Price));
                }
                #endregion

                RaiseMessage(MessageTypes.LoadingMonsters);
                #region Populate Monsters
                _monsters = new List <Monster>();
                foreach (XmlNode node in worldData.SelectNodes("/World/Monsters/Monster"))
                {
                    int    Id                     = Convert.ToInt32(node.SelectSingleNode("Id").InnerText);
                    string Name                   = node.SelectSingleNode("Name").InnerText;
                    int    MaximumDamage          = Convert.ToInt32(node.SelectSingleNode("MaximumDamage").InnerText);
                    int    RewardExperiencePoints = Convert.ToInt32(node.SelectSingleNode("RewardExperiencePoints").InnerText);
                    int    RewardGold             = Convert.ToInt32(node.SelectSingleNode("RewardGold").InnerText);
                    int    CurrentHitPoints       = Convert.ToInt32(node.SelectSingleNode("CurrentHitPoints").InnerText);
                    int    MaximumHitPoints       = Convert.ToInt32(node.SelectSingleNode("MaximumHitPoints").InnerText);

                    Monster monster = new Monster(Id, Name, MaximumDamage, RewardExperiencePoints, RewardGold, CurrentHitPoints, MaximumHitPoints);

                    foreach (XmlNode nodechild in node.SelectNodes("LootTable/LootItem"))
                    {
                        int  IdItem         = Convert.ToInt32(nodechild.SelectSingleNode("IdItem").InnerText);
                        int  DropPercentage = Convert.ToInt32(nodechild.SelectSingleNode("DropPercentage").InnerText);
                        bool IsDefaultItem  = Convert.ToBoolean(nodechild.SelectSingleNode("IsDefaultItem").InnerText);

                        monster.LootTable.Add(new LootItem(ItemByID(IdItem), DropPercentage, IsDefaultItem));
                    }

                    _monsters.Add(monster);
                }
                #endregion

                RaiseMessage(MessageTypes.LoadingQuests);
                #region Populate Quests
                _quests = new List <Quest>();
                foreach (XmlNode node in worldData.SelectNodes("/World/Quests/Quest"))
                {
                    int    Id                     = Convert.ToInt32(node.SelectSingleNode("Id").InnerText);
                    string Name                   = node.SelectSingleNode("Name").InnerText;
                    string Description            = node.SelectSingleNode("Description").InnerText;
                    int    RewardExperiencePoints = Convert.ToInt32(node.SelectSingleNode("RewardExperiencePoints").InnerText);
                    int    RewardGold             = Convert.ToInt32(node.SelectSingleNode("RewardGold").InnerText);

                    Quest quest = new Quest(Id, Name, Description, RewardExperiencePoints, RewardGold);

                    foreach (XmlNode nodechild in node.SelectNodes("QuestCompletionItems/QuestCompletionItem"))
                    {
                        int IdItem   = Convert.ToInt32(nodechild.SelectSingleNode("IdItem").InnerText);
                        int Quantity = Convert.ToInt32(nodechild.SelectSingleNode("Quantity").InnerText);

                        quest.QuestCompletionItems.Add(new QuestCompletionItem(ItemByID(IdItem), Quantity));
                    }



                    int RewardItemId = Convert.ToInt32(node.SelectSingleNode("RewardItem/IdItem").InnerText);

                    quest.RewardItem = ItemByID(RewardItemId);

                    _quests.Add(quest);
                }
                #endregion

                RaiseMessage(MessageTypes.LoadingVendors);
                #region Populate Vendors
                _vendors = new List <Vendor>();
                foreach (XmlNode node in worldData.SelectNodes("/World/Vendors/Vendor"))
                {
                    int    Id   = Convert.ToInt32(node.SelectSingleNode("Id").InnerText);
                    string Name = node.SelectSingleNode("Name").InnerText;

                    Vendor vendor = new Vendor(Id, Name);

                    foreach (XmlNode nodechild in node.SelectNodes("Inventory/Item"))
                    {
                        int IdItem   = Convert.ToInt32(nodechild.SelectSingleNode("IdItem").InnerText);
                        int Quantity = Convert.ToInt32(nodechild.SelectSingleNode("Quantity").InnerText);

                        vendor.AddItemToInventory(ItemByID(IdItem), Quantity);
                    }

                    _vendors.Add(vendor);
                }
                #endregion

                RaiseMessage(MessageTypes.LoadingLocations);
                #region Populate Locations
                _locations = new List <Location>();
                foreach (XmlNode node in worldData.SelectNodes("/World/Locations/Location"))
                {
                    int    Id          = Convert.ToInt32(node.SelectSingleNode("Id").InnerText);
                    string Name        = node.SelectSingleNode("Name").InnerText;
                    string Description = node.SelectSingleNode("Description").InnerText;

                    Location location = new Location(Id, Name, Description);

                    if (node.SelectSingleNode("Picture") != null)
                    {
                        string Picture = node.SelectSingleNode("Picture").InnerText;
                        location.Picture = Picture;
                    }



                    if (node.SelectSingleNode("ItemRequiredToEnter") != null)
                    {
                        location.ItemRequiredToEnter = ItemByID(Convert.ToInt32(node.SelectSingleNode("ItemRequiredToEnter").InnerText));
                    }

                    if (node.SelectSingleNode("QuestAvailableHere") != null)
                    {
                        location.QuestAvailableHere = QuestByID(Convert.ToInt32(node.SelectSingleNode("QuestAvailableHere").InnerText));
                    }

                    if (node.SelectSingleNode("VendorWorkingHere") != null)
                    {
                        location.VendorWorkingHere = VendorByID(Convert.ToInt32(node.SelectSingleNode("VendorWorkingHere").InnerText));
                    }

                    if (node.SelectSingleNode("Monsters") != null)
                    {
                        foreach (XmlNode nodechild in node.SelectNodes("Monsters/Monster"))
                        {
                            int IdMonster = Convert.ToInt32(nodechild.SelectSingleNode("IdMonster").InnerText);
                            int PercentageOfAppearance = Convert.ToInt32(nodechild.SelectSingleNode("PercentageOfAppearance").InnerText);

                            location.AddMonster(IdMonster, PercentageOfAppearance);
                        }
                    }

                    _locations.Add(location);
                }
                #endregion

                #region Populate Neighborhood
                foreach (XmlNode node in worldData.SelectNodes("/World/Neighborhood/Neighbor"))
                {
                    int      IdLocation = Convert.ToInt32(node.SelectSingleNode("IdLocation").InnerText);
                    Location location   = LocationByID(IdLocation);

                    if (node.SelectSingleNode("North") != null)
                    {
                        location.LocationToNorth = LocationByID(Convert.ToInt32(node.SelectSingleNode("North").InnerText));
                    }

                    if (node.SelectSingleNode("South") != null)
                    {
                        location.LocationToSouth = LocationByID(Convert.ToInt32(node.SelectSingleNode("South").InnerText));
                    }

                    if (node.SelectSingleNode("East") != null)
                    {
                        location.LocationToEast = LocationByID(Convert.ToInt32(node.SelectSingleNode("East").InnerText));
                    }

                    if (node.SelectSingleNode("West") != null)
                    {
                        location.LocationToWest = LocationByID(Convert.ToInt32(node.SelectSingleNode("West").InnerText));
                    }
                }

                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                //throw new Exception("Error mientras se estaba " + pasos, ex);
                return(false);
            }
        }
Пример #4
0
        private static void PopulateLocations()
        {
            // Create each location
            var home = new Location(LOCATION_ID_HOME, "Дом", "Ваш дом. Вы сожалеете, что снова оказались здесь.");

            var shepherdsHouse = new Location(LOCATION_ID_SHEPHERDS_HOUSE, "Лачуга пастуха",
                                              "Вы видите пастуха. У него беспокойный вид.");

            shepherdsHouse.QuestsAvailableHere.Add(QuestByID(QUEST_ID_BRING_A_SHOVEL));
            shepherdsHouse.QuestsAvailableHere.Add(QuestByID(QUEST_ID_HELP_WITH_SNAKES));

            var skiff = new Location(LOCATION_ID_SKIFF, "Предлесок",
                                     "Пугающий вой пронизывает вас насквозь. Кровь застывает в жилах. Вы чувствуете, что вы попали в окружение волков.");

            skiff.AddMonster(MONSTER_ID_WOLF, 85);
            skiff.AddMonster(MONSTER_ID_BEAR, 15);

            var forestersHut = new Location(LOCATION_ID_FORESTERS_HUT, "Хата лесника",
                                            "Вы видите необычного лесника. У вас складывается ощущение, что он сыграет важную роль в вашем приключении.");

            forestersHut.QuestsAvailableHere.Add(QuestByID(QUEST_ID_PURGE_THE_WOLVES));
            forestersHut.QuestsAvailableHere.Add(QuestByID(QUEST_ID_PURGE_THE_BEARS));
            forestersHut.QuestsAvailableHere.Add(QuestByID(QUEST_ID_PURGE_THE_DANGER_OF_THE_ANCIENT_FOREST));

            var village = new Location(LOCATION_ID_VILLAGE, "Деревня",
                                       "Вы приходите в деревню. Лица жители максимально отстранены. Кажется вам есть чем тут заняться.");

            village.QuestsAvailableHere.Add(QuestByID(QUEST_ID_HELP_SHEPHERD_WITH_SNAKES));

            var field = new Location(LOCATION_ID_FIELD, "Поле",
                                     "Вы пришли на заросшее поле, похоже этот год тоже будет голодным...");

            var forest = new Location(LOCATION_ID_FOREST, "Лес",
                                      "По мере вашего приближения количество окружающих Вас ягод и пчелиных ульев увеличивалось. Вы уже поняли кого вы здесь встретите.");

            forest.AddMonster(MONSTER_ID_WOLF, 10);
            forest.AddMonster(MONSTER_ID_BEAR, 85);
            forest.AddMonster(MONSTER_ID_TRENT, 5);

            var ancientForest = new Location(LOCATION_ID_ANCIENT_FOREST, "Древний лес",
                                             "Вы входите в глубокий лес, деревья здесь совершенно необычайной формы. Похоже, что именно здесь и началось заражение леса. Пора остановить порчу.");

            ancientForest.AddMonster(MONSTER_ID_WOLF, 5);
            ancientForest.AddMonster(MONSTER_ID_BEAR, 10);
            ancientForest.AddMonster(MONSTER_ID_TRENT, 85);

            var roadToTheCity = new Location(LOCATION_ID_ROAD_TO_THE_CITY, "Дорога в город",
                                             "Сельские стражники согласны пускать селян в город только по письменному заверению старосты.");

            var swarmOfPoisonousSnakes = new Location(LOCATION_ID_SWARM_OF_POISONOUS_SNAKES,
                                                      "Рой ядовитых змей", "Шипение множествав змей застилает ужасом ваш разум.");

            swarmOfPoisonousSnakes.AddMonster(MONSTER_ID_SNAKE, 95);
            swarmOfPoisonousSnakes.AddMonster(MONSTER_ID_GIANT_SNAKE, 5);

            var scaryCave = new Location(LOCATION_ID_SCARY_CAVE, "Страшная пещера",
                                         "Вы чувствуете, что что-то смотрит на Вас.\"Движение - смерть\" - слышите Вы в своей голове");

            scaryCave.AddMonster(MONSTER_ID_SNAKE, 30);
            scaryCave.AddMonster(MONSTER_ID_GIANT_SNAKE, 70);

            var hydrasLair = new Location(LOCATION_ID_HYDRAS_LAIR, "Логово гидры",
                                          "Отсюда можно выйти либо победителем, либо фаршем.");

            hydrasLair.AddMonster(MONSTER_ID_HYDRA, 90);
            hydrasLair.AddMonster(MONSTER_ID_GIANT_SNAKE, 10);

            var outskirts = new Location(LOCATION_ID_OUTSKIRTS, "Окраины города",
                                         "Бедное население бродит вдоль улочек. Незнакомцы поздываю к себе.", ItemByID(ITEM_ID_HEADMAN_PERMISSION_PASS));

            outskirts.AddMonster(MONSTER_ID_ROUGE, 75);
            outskirts.AddMonster(MONSTER_ID_ROUGE_LEADER, 25);

            var prison = new Location(LOCATION_ID_PRISON, "Тюрьма",
                                      "Вы проходите в тюрьму. Здесь стоит всего несколько стражников на бесконечные залы клеток с заключёнными. Похоже здесь действительно безопасно гулять.");

            prison.QuestsAvailableHere.Add(QuestByID(QUEST_ID_SEARCH_FOR_A_BEST_FRIEND));

            var sewage = new Location(LOCATION_ID_SEWAGE, "Канализационные стоки", "Миф Голливуда стоит перед вами.", ItemByID(ITEM_ID_SEWAGE_KEY));

            sewage.AddMonster(MONSTER_ID_CROCODILE, 100);

            var trollCave = new Location(LOCATION_ID_TROLL_CAVE, "Пещера троллей",
                                         "Куча разбросанных ботинок привела вас в пещеру трёх троллей. Их зовут ОГГ, ПОГГ И РОГГ.");

            trollCave.AddMonster(MONSTER_ID_TROLL, 100);

            var townSquare = new Location(LOCATION_ID_TOWN_SQUARE, "Городская площадь",
                                          "На площади достаточно людно. Сложно представить почему центр настолько разительно отличается от закоулок, в которых Вы недавно были.");

            var gate = new Location(LOCATION_ID_GATE, "Ворота",
                                    "Похоже здесь стоит почти вся стража города. Стражники отчётливо дают вам понять, что для того чтобы пройти дальше, вам нужно личное разрешение Короля Давида Сказачного.");

            var hordeOfZombies = new Location(LOCATION_ID_HORDE_OF_ZOMBIES, "Орда зомби",
                                              "Похоже, что всё былое население мира предстало здесь перед вами в виде оживших мертвецов, пройти куда-то дальше получится только смекалкой.");

            hordeOfZombies.AddMonster(MONSTER_ID_ZOMBIE, 100);

            var graveyardOfBones = new Location(LOCATION_ID_GRAVEYARD_OF_BONES, "Кладбище костей",
                                                "Вам в детстве говорили, что живых драконов не бывает. Это оказалось правдой лишь отчасти. Находящийся здесь дракон жив, хотя и состоит лишь из костей. Вам очень повезло, что мимо него можно тихо пройти.");

            graveyardOfBones.AddMonster(MONSTER_ID_BONE_DRAGON, 100);

            var kingsPalace = new Location(LOCATION_ID_KINGS_PALACE, "Дворец короля",
                                           "Двроец Давида Сказачного. Смотря на него Вам становится не по себе.");

            kingsPalace.QuestsAvailableHere.Add(QuestByID(QUEST_ID_REMOVE_THE_CURSE_FROM_THE_KING));
            kingsPalace.QuestsAvailableHere.Add(QuestByID(QUEST_ID_BRING_BACK_THE_HOLY_CORE));
            kingsPalace.QuestsAvailableHere.Add(QuestByID(QUEST_ID_PUNISH_THE_TROLLS));
            kingsPalace.QuestsAvailableHere.Add(QuestByID(QUEST_ID_DISASSEMBLE_THE_DRAGON_ON_THE_BONES));
            kingsPalace.QuestsAvailableHere.Add(QuestByID(QUEST_ID_FINISH_THIS_STORY));
            kingsPalace.QuestsAvailableHere.Add(QuestByID(QUEST_ID_TAKE_YOUR_DESTINY));

            var familyCrypt = new Location(LOCATION_ID_FAMILY_CRYPT, "Семейный склеп",
                                           "Семейный склеп Давида Сказачного. Пора успокоить взбунтовавшихся призраков.");

            familyCrypt.AddMonster(MONSTER_ID_GHOST, 100);

            var moundOfDeath = new Location(LOCATION_ID_MOUND_OF_DEATH, "Курган смерти",
                                            "Пора остановить производство зомби. Проблему с существующими это хоть и не решит, но новым лучше всё-таки не появляться.", ItemByID(ITEM_ID_QUINTESSENCE_OF_PURITY));

            moundOfDeath.AddMonster(MONSTER_ID_ZOMBIE, 75);
            moundOfDeath.AddMonster(MONSTER_ID_FLESH_GATHERER, 25);

            var scaryNecromancerCastle = new Location(LOCATION_ID_SCARY_NECROMANCER_CASTLE, "Замок страшного некроманта",
                                                      "Все Ваши десткие и студенческие страхи воплотились перед Вами. \n ПОБЕДА ИЛИ СМЕРТЬ! \n ЛОК'ТАР ОГАР, ДРУГ!");

            scaryNecromancerCastle.AddMonster(MONSTER_ID_NECROMANCER, 100);

            // Vendors, working in locations
            var bigBob = new Vendor("Большой Боб");

            bigBob.AddItemToInventory(ItemByID(ITEM_ID_SHOVEL), 5);
            bigBob.AddItemToInventory(ItemByID(ITEM_ID_SIMPLE_HEALING_POTION), 50);
            bigBob.AddItemToInventory(ItemByID(ITEM_ID_HEALING_POTION), 10);
            village.VendorWorkingHere = bigBob;

            var traderJim = new Vendor("Торговец Джим");

            traderJim.AddItemToInventory(ItemByID(ITEM_ID_HEALING_POTION), 5);
            traderJim.AddItemToInventory(ItemByID(ITEM_ID_BIG_HEALING_POTION), 50);
            traderJim.AddItemToInventory(ItemByID(ITEM_ID_GREAT_HEALING_POTION), 10);
            traderJim.AddItemToInventory(ItemByID(ITEM_ID_POISON_DAGGER), 10);
            traderJim.AddItemToInventory(ItemByID(ITEM_ID_POTION_OF_ETERNAL_LIFE), 10);
            townSquare.VendorWorkingHere = traderJim;


            // Link the locations together
            home.LocationToSouth = shepherdsHouse;
            home.LocationToEast  = village;

            shepherdsHouse.LocationToNorth = home;
            shepherdsHouse.LocationToEast  = field;
            shepherdsHouse.LocationToSouth = skiff;

            skiff.LocationToNorth = shepherdsHouse;
            skiff.LocationToEast  = forest;
            skiff.LocationToSouth = forestersHut;

            forestersHut.LocationToNorth = skiff;

            village.LocationToWest  = home;
            village.LocationToEast  = roadToTheCity;
            village.LocationToSouth = field;

            field.LocationToNorth = village;
            field.LocationToEast  = swarmOfPoisonousSnakes;
            field.LocationToSouth = forest;
            field.LocationToWest  = shepherdsHouse;

            forest.LocationToNorth = field;
            forest.LocationToSouth = ancientForest;
            forest.LocationToWest  = skiff;

            ancientForest.LocationToNorth = forest;

            roadToTheCity.LocationToEast = outskirts;
            roadToTheCity.LocationToWest = village;

            swarmOfPoisonousSnakes.LocationToSouth = scaryCave;
            swarmOfPoisonousSnakes.LocationToWest  = field;

            scaryCave.LocationToNorth = swarmOfPoisonousSnakes;
            scaryCave.LocationToSouth = hydrasLair;

            hydrasLair.LocationToNorth = scaryCave;

            outskirts.LocationToEast  = townSquare;
            outskirts.LocationToSouth = prison;
            outskirts.LocationToWest  = roadToTheCity;

            prison.LocationToNorth = outskirts;
            prison.LocationToSouth = sewage;

            sewage.LocationToNorth = prison;

            trollCave.LocationToEast = graveyardOfBones;

            townSquare.LocationToEast  = kingsPalace;
            townSquare.LocationToSouth = gate;
            townSquare.LocationToWest  = outskirts;

            gate.LocationToNorth = townSquare;
            gate.LocationToSouth = hordeOfZombies;

            hordeOfZombies.LocationToNorth = gate;
            hordeOfZombies.LocationToEast  = moundOfDeath;
            hordeOfZombies.LocationToSouth = graveyardOfBones;

            graveyardOfBones.LocationToNorth = hordeOfZombies;
            graveyardOfBones.LocationToEast  = scaryNecromancerCastle;
            graveyardOfBones.LocationToWest  = trollCave;

            kingsPalace.LocationToSouth = familyCrypt;
            kingsPalace.LocationToWest  = townSquare;

            familyCrypt.LocationToNorth = kingsPalace;

            moundOfDeath.LocationToWest = hordeOfZombies;

            scaryNecromancerCastle.LocationToWest = graveyardOfBones;

            // Add the locations to the static list
            _locations.Add(home);
            _locations.Add(shepherdsHouse);
            _locations.Add(skiff);
            _locations.Add(forestersHut);
            _locations.Add(village);
            _locations.Add(field);
            _locations.Add(forest);
            _locations.Add(ancientForest);
            _locations.Add(roadToTheCity);
            _locations.Add(swarmOfPoisonousSnakes);
            _locations.Add(scaryCave);
            _locations.Add(hydrasLair);
            _locations.Add(outskirts);
            _locations.Add(prison);
            _locations.Add(sewage);
            _locations.Add(trollCave);
            _locations.Add(townSquare);
            _locations.Add(gate);
            _locations.Add(hordeOfZombies);
            _locations.Add(graveyardOfBones);
            _locations.Add(kingsPalace);
            _locations.Add(familyCrypt);
            _locations.Add(moundOfDeath);
            _locations.Add(scaryNecromancerCastle);
        }
Пример #5
0
        private static void PopulateLocations()
        {
            // Create each location
            Location home = new Location(LOCATION_ID_HOME, "Home", "Your eyes shoot open as mutter to yourself.... Damn that was strange.....");

            Location pathToTown = new Location(LOCATION_ID_PATH_TO_TOWN, "Path to town", "You step out of your door and see the path heading north toward town");

            Location townSquare = new Location(LOCATION_ID_TOWN_SQUARE, "Town square", "Circling the fountian as you enter, you see paths leading in all directions.");

            Location alchemistHut = new Location(LOCATION_ID_ALCHEMIST_HUT, "Alchemist's hut", "There are many strange plants on the shelves.");

            alchemistHut.QuestAvailableHere = QuestByID(QUEST_ID_CLEAR_ALCHEMIST_GARDEN);

            Location alchemistsGarden = new Location(LOCATION_ID_ALCHEMISTS_GARDEN, "Alchemist's garden", "Many plants are growing here.");

            alchemistsGarden.AddMonster(MONSTER_ID_RAT, 80);
            alchemistsGarden.AddMonster(MONSTER_ID_SNAKE, 20);

            Location farmhouse = new Location(LOCATION_ID_FARMHOUSE, "Farmhouse", "There is a small farmhouse, with a farmer in front.");

            farmhouse.QuestAvailableHere = QuestByID(QUEST_ID_CLEAR_FARMERS_FIELD);

            Location farmersField = new Location(LOCATION_ID_FARM_FIELD, "Farmer's field", "You see rows of vegetables growing here.");

            farmersField.AddMonster(MONSTER_ID_SNAKE, 100);

            Location guardPost = new Location(LOCATION_ID_GUARD_POST, "Guard post", "There is a large, tough-looking guard here.", ItemByID(ITEM_ID_ADVENTURER_PASS));

            Location bridge = new Location(LOCATION_ID_BRIDGE, "Bridge", "A stone bridge crosses a wide river.");

            Location spiderField = new Location(LOCATION_ID_SPIDER_FIELD, "Forest", "You see spider webs covering covering the trees in this forest.");

            spiderField.AddMonster(MONSTER_ID_GIANT_SPIDER, 100);

            Vendor townMerchant = new Vendor("Alwyin: General Goods");

            townMerchant.AddItemToInventory(ItemByID(ITEM_ID_PIECE_OF_FUR), 5);
            townMerchant.AddItemToInventory(ItemByID(ITEM_ID_RAT_TAIL), 3);
            townMerchant.AddItemToInventory(ItemByID(ITEM_ID_SPIDER_KILLER), 1);

            townSquare.VendorWorkingHere = townMerchant;

            // Link the locations together
            home.LocationToNorth = pathToTown;

            pathToTown.LocationToNorth = townSquare;
            pathToTown.LocationToSouth = home;

            townSquare.LocationToNorth = alchemistHut;
            townSquare.LocationToSouth = pathToTown;
            townSquare.LocationToEast  = guardPost;
            townSquare.LocationToWest  = farmhouse;

            farmhouse.LocationToEast = townSquare;
            farmhouse.LocationToWest = farmersField;

            farmersField.LocationToEast = farmhouse;

            alchemistHut.LocationToSouth = townSquare;
            alchemistHut.LocationToNorth = alchemistsGarden;

            alchemistsGarden.LocationToSouth = alchemistHut;

            guardPost.LocationToEast = bridge;
            guardPost.LocationToWest = townSquare;

            bridge.LocationToWest = guardPost;
            bridge.LocationToEast = spiderField;

            spiderField.LocationToWest = bridge;

            // Add the locations to the static list
            _locations.Add(home);
            _locations.Add(pathToTown);
            _locations.Add(townSquare);
            _locations.Add(guardPost);
            _locations.Add(alchemistHut);
            _locations.Add(alchemistsGarden);
            _locations.Add(farmhouse);
            _locations.Add(farmersField);
            _locations.Add(bridge);
            _locations.Add(spiderField);
        }
Пример #6
0
        private static void PopulateLocation()
        { //odds y<0 evens y>0
            Location Camp = new Location(Location_ID_Camp, "Camp", "The makeshift place you call home... cozy", false);
            //
            Location Forest = new Location(Location_ID_Forst, "Forest", "The entrance to the forest from the pasture of your camp.", false);

            Forest.NewInstanceOfMonsterLivingHere();
            Forest.AddMonster(Monster_ID_Bandit, 20);
            Forest.AddMonster(Monster_ID_Arcobot, 20);
            Forest.AddMonster(Monster_ID_Ent, 1);
            Forest.MonsterAppearanceChance = 50;
            Location f1 = new Location(Location_ID_Forst, "Forest", "The entrance to the forest from the pasture of your camp.", false);//0,1

            f1.NewInstanceOfMonsterLivingHere();
            f1.AddMonster(Monster_ID_Bandit, 20);
            f1.AddMonster(Monster_ID_Arcobot, 20);
            f1.AddMonster(Monster_ID_Ent, 1);
            f1.MonsterAppearanceChance = 50;
            Location f2 = new Location(Location_ID_Forst, "Forest", "The entrance to the forest from the pasture of your camp.", false);

            f2.NewInstanceOfMonsterLivingHere();
            f2.AddMonster(Monster_ID_Bandit, 20);
            f2.AddMonster(Monster_ID_Arcobot, 20);
            f2.AddMonster(Monster_ID_Ent, 1);
            f2.MonsterAppearanceChance = 50;
            Location f3 = new Location(Location_ID_Forst, "Forest", "You notice a clearing of the trees, and see a cave; also seeing something enter the cave.", false);

            f3.NewInstanceOfMonsterLivingHere();
            f3.AddMonster(Monster_ID_Bandit, 20);
            f3.AddMonster(Monster_ID_Arcobot, 20);
            f3.AddMonster(Monster_ID_Ent, 5);
            f3.MonsterAppearanceChance = 50;
            Location f4 = new Location(Location_ID_Forst, "Forest", "seems like some of the trees, are gone.", false);

            f4.NewInstanceOfMonsterLivingHere();
            f4.AddMonster(Monster_ID_Bandit, 20);
            f4.AddMonster(Monster_ID_Arcobot, 20);
            f4.AddMonster(Monster_ID_Ent, 5);
            f4.MonsterAppearanceChance = 50;
            Location f5 = new Location(Location_ID_Forst, "Forest", "The plant life is more alive than usual.", false);

            f5.NewInstanceOfMonsterLivingHere();
            f5.AddMonster(Monster_ID_Bandit, 20);
            f5.AddMonster(Monster_ID_Arcobot, 20);
            f5.AddMonster(Monster_ID_Ent, 5);
            f5.MonsterAppearanceChance = 50;
            Location f6 = new Location(Location_ID_Forst, "Forest", "Tall trees stand in your way, These trees are so big a weagon can fit though one.", false);

            f6.NewInstanceOfMonsterLivingHere();
            f6.AddMonster(Monster_ID_Bandit, 20);
            f6.AddMonster(Monster_ID_Arcobot, 20);
            f6.MonsterAppearanceChance = 50;
            Location f7 = new Location(Location_ID_Forst, "Forest", "Tall trees stand in your way, These trees are so big a weagon can fit though one.", false);

            f7.NewInstanceOfMonsterLivingHere();
            f7.AddMonster(Monster_ID_Bandit, 20);
            f7.AddMonster(Monster_ID_Arcobot, 20);
            f7.AddMonster(Monster_ID_Ent, 10);
            f7.MonsterAppearanceChance = 50;
            Location f8 = new Location(Location_ID_Forst, "Forest", "There are hunting traps around the area, noting humans are around this area; hopfully friendly.", false);

            f8.NewInstanceOfMonsterLivingHere();
            f8.AddMonster(Monster_ID_Bandit, 20);
            f8.AddMonster(Monster_ID_Arcobot, 20);
            f8.MonsterAppearanceChance = 50;
            Location f10 = new Location(Location_ID_Forst, "Forest", "There are hunting traps around the area, noting humans are around this area; hopfully friendly.", false);

            f10.NewInstanceOfMonsterLivingHere();
            f10.AddMonster(Monster_ID_Bandit, 20);
            f10.AddMonster(Monster_ID_Arcobot, 20);
            f10.MonsterAppearanceChance = 50;
            Location f10a = new Location(Location_ID_Forst, "Forest", "Tall trees stand in your way, These trees are so big a weagon can fit though one.", false);

            f10a.NewInstanceOfMonsterLivingHere();
            f10a.AddMonster(Monster_ID_Bandit, 20);
            f10a.AddMonster(Monster_ID_Arcobot, 20);
            f10a.MonsterAppearanceChance = 50;
            Location f6a = new Location(Location_ID_Forst, "Forest", "There are hunting traps around the area, noting humans are around this area; hopfully friendly.", false);

            f6a.NewInstanceOfMonsterLivingHere();
            f6a.AddMonster(Monster_ID_Bandit, 20);
            f6a.AddMonster(Monster_ID_Arcobot, 20);
            f6a.MonsterAppearanceChance = 50;
            Location f01 = new Location(Location_ID_Forst, "Forest", "Tall trees stand in your way, These trees are so big a weagon can fit though one.", false);

            f01.NewInstanceOfMonsterLivingHere();
            f01.AddMonster(Monster_ID_Bandit, 20);
            f01.AddMonster(Monster_ID_Arcobot, 20);
            f01.MonsterAppearanceChance = 50;
            Location f02 = new Location(Location_ID_Forst, "Forest", "Tall trees stand in your way, These trees are so big a weagon can fit though one.", false);

            f02.NewInstanceOfMonsterLivingHere();
            f02.AddMonster(Monster_ID_Bandit, 20);
            f02.AddMonster(Monster_ID_Arcobot, 20);
            f02.MonsterAppearanceChance = 50;
            Location f03 = new Location(Location_ID_Forst, "Forest", "Tall trees stand, but also large plants; noticing more bones around the forest", false);

            f03.NewInstanceOfMonsterLivingHere();
            f03.AddMonster(Monster_ID_Bandit, 20);
            f03.AddMonster(Monster_ID_Arcobot, 20);
            f03.AddMonster(Monster_ID_Ent, 10);
            f03.AddMonster(Monster_ID_Man_Eater, 5);
            f03.MonsterAppearanceChance = 50;
            //
            Location Jungle = new Location(Location_ID_Jungle, "Jungle", "Vines hang from the tree tops, barely little light come from the canopy; don't travel at night here.", false);
            //
            Location Mountain = new Location(Location_ID_Mountain, "Mountain", "Far pass the town and jungle is mountains it going to take a while to get their; and it looks cold bring a coat.", false);
            //

            Location Town = new Location(Location_ID_Town, "Lost Town", "Before the Jungle stand a small hut town, peaceful and calm without bandits atleast.", false);

            Location t8a = new Location(Location_ID_Town, "Lost Town", "The Town seems pleasant, with its stalls for its little shops", false);

            Location t8b = new Location(Location_ID_Town, "Lost Town", "More people are going around the place, going from to where.", false);

            Location t8c = new Location(Location_ID_Town, "Lost Town", "Before you stands a large building, probally a court house.", false);

            Location Jail = new Location(Location_ID_Town, "Jail", "No one seems to be locked up yet.", false);

            Jail.MonsterAppearanceChance = 1;
            Jail.AddMonster(Monster_ID_BORIS, 1);
            Location GuildHall = new Location(Location_ID_Town, "Guild Hall", "Looks like some random jobs can be found here, look like you'll need more gold.", false);

            GuildHall.QuestAvailableHere = QuestByID(Quest_ID_Clear_retreive_5_Chucks_of_lether);

            Location Med = new Location(Location_ID_Town, "Clinic", "Rest here, if you feeling a bit down", false);

            Med.QuestAvailableHere = QuestByID(Quest_ID_Clear_Kill_5_arcobot);
            Location       Shop  = new Location(Location_ID_LostsSHOP, "Shop", "Welecome to the Shop", false); // Change later
            Vendortron9000 Vendy = new Vendortron9000("Vendy");

            Vendy.Additemtoinventory(ItemByID(Item_ID_Chunks_of_leather), 999);
            Vendy.Additemtoinventory(ItemByID(Item_ID_hedgeapple), 999);
            Vendy.Additemtoinventory(ItemByID(Item_ID_Sword), 99);
            Vendy.Additemtoinventory(ItemByID(Item_ID_Staff), 99);
            Vendy.Additemtoinventory(ItemByID(Item_ID_arcobot_Fang), 99);
            Vendy.Additemtoinventory(ItemByID(Item_ID_Bow), 99);

            Shop.Vending = Vendy;

            Location Bar = new Location(Location_ID_LostsBar, "Bar", "You Enter the Bar, a few people are sitting down drink their booze.", false);
            //
            Location BanditEncampment = new Location(Location_ID_Bandit_Encampment, "Bandit Encampment", "Bandits stand gaurd, The wall that surrounds them makes it only one way in one way out.", false);
            //
            Location Pasture = new Location(Location_ID_Pasture, "Pasture", "You stand in the pasture, where your camps lays.", false);
            Location p1      = new Location(Location_ID_Pasture, "Pasture", "The open green field stands before you.", false);
            Location p2      = new Location(Location_ID_Pasture, "Pasture", "The open green field stands before you.", false);
            //
            Location Cave = new Location(Location_ID_Cave, "Cave Entrance", "There seems to be a cave wonders of what could be in the bellows of it.", false);

            //
            Cave.NewInstanceOfMonsterLivingHere();
            Cave.AddMonster(Monster_ID_2BearsHighFiving, 20);
            Cave.MonsterAppearanceChance = 80;
            Location DeepCave = new Location(Location_ID_DeepCave, "Deep Cave", "The further you go the darker it gets.", false);
            //
            Location Beach = new Location(Location_ID_Beach, "Beach", "Pearly white sand on a sunny day, to bad theres creatures here.", false);
            //
            Location Water = new Location(Location_ID_Water, "Water", "The water is cool and deep, if you enter it might just rip you ashreds.", false);

            //

            Camp.LocationToNorth = Pasture;

            Pasture.LocationToEast  = p1;
            Pasture.LocationToWest  = p2; //OG LINE
            Pasture.LocationToNorth = Forest;
            Pasture.LocationToSouth = Camp;

            p2.LocationToEast  = Pasture; //0,1 TOP ROW
            p2.LocationToNorth = f2;

            p1.LocationToWest  = Pasture;
            p1.LocationToNorth = f1;      //0,-1 BOTTOM ROW
            //FOREST AREA
            Forest.LocationToNorth = f01; //1,0 OG LINE
            Forest.LocationToEast  = f1;
            Forest.LocationToWest  = f2;
            Forest.LocationToSouth = Pasture;

            f2.LocationToEast  = Forest;//1,1 // top
            f2.LocationToNorth = f4;
            f2.LocationToSouth = p2;

            f1.LocationToNorth = f3;//1,-1
            f1.LocationToSouth = p1;
            f1.LocationToWest  = Forest;

            f01.LocationToNorth = f02;//2,0 OG LINE
            f01.LocationToEast  = f3;
            f01.LocationToSouth = Forest;
            f01.LocationToWest  = f4;

            f4.LocationToNorth = f6;//2,1
            f4.LocationToEast  = f01;
            f4.LocationToSouth = f2;

            f3.LocationToNorth = f5;//2.-1
            f3.LocationToWest  = f01;
            f3.LocationToSouth = f1;
            f3.LocationToEast  = Cave;

            f02.LocationToNorth = f03; //3,0
            f02.LocationToEast  = f5;
            f02.LocationToWest  = f6;
            f02.LocationToSouth = f01;

            f6.LocationToNorth = f8; //3,1
            f6.LocationToWest  = f6a;
            f6.LocationToSouth = f4;
            f6.LocationToEast  = f02;

            f5.LocationToNorth = f7; //3,-1
            f5.LocationToSouth = f3;
            f5.LocationToWest  = f02;

            f6a.LocationToNorth = Town;//3,2
            f6a.LocationToEast  = f6;

            f03.LocationToEast  = f7; //4,0
            f03.LocationToSouth = f02;
            f03.LocationToWest  = f8;

            f7.LocationToWest  = f03; //4,-1
            f7.LocationToSouth = f5;

            f8.LocationToWest  = Town; //4,1
            f8.LocationToEast  = f03;
            f8.LocationToNorth = f10;
            f8.LocationToSouth = f6;

            f10.LocationToSouth = f8;//5,1
            f10.LocationToWest  = f10a;

            f10a.LocationToEast  = f10;//5,2
            f10a.LocationToSouth = Town;
            //Town
            Town.LocationToSouth = f6a; //4,2 OR ENTRANCE OF TOWN
            Town.LocationToNorth = f10a;
            Town.LocationToEast  = f8;
            Town.LocationToWest  = t8a;

            t8a.LocationToWest  = t8b;       //4,3
            t8a.LocationToEast  = Town;
            t8a.LocationToSouth = Jail;      // Jailhouse at 3,3

            t8b.LocationToEast  = t8a;       // 4,4
            t8b.LocationToNorth = Bar;       //Bar
            t8b.LocationToSouth = GuildHall; //Guild Hall
            t8b.LocationToWest  = t8c;

            t8c.LocationToEast  = t8b;       //4,5
            t8c.LocationToSouth = Med;       //Med
            t8c.LocationToNorth = Shop;      //Shop

            Med.LocationToNorth = t8c;       //Med 3,5

            Shop.LocationToSouth = t8c;      //Shop 5,5

            GuildHall.LocationToNorth = t8b; //Guild Hall 3,4

            Bar.LocationToSouth = t8b;       //Bar 5,4

            Jail.LocationToNorth = t8a;      //Jail 3,3

            //Cave
            Cave.LocationToWest = f3;
            //BREAKER
            _locations.Add(Camp);
            _locations.Add(Town);
            _locations.Add(Forest);
            _locations.Add(Cave);
            _locations.Add(Pasture);
            _locations.Add(Shop);
        }
Пример #7
0
        private static void PopulateLocations()
        {
            //vendors
            Vendor bobTheRatCatcher = new Vendor("Bob the Rat-Catcher");

            bobTheRatCatcher.AddItemToInventory(ItemByID(ITEM_ID_PIECE_OF_FUR), 5);
            bobTheRatCatcher.AddItemToInventory(ItemByID(ITEM_ID_RAT_TAIL), 3);
            bobTheRatCatcher.AddItemToInventory(ItemByID(ITEM_ID_HEALING_POTION), 1);

            //Creats each location
            Location home = new Location(LOCATION_ID_HOME, "Home:", narrative.HomeDetail);

            Location townSquare = new Location(LOCATION_ID_TOWN_SQUARE, "Town square:", narrative.TownSqrDetail);

            Location alchemistHut = new Location(LOCATION_ID_ALCHEMIST_HUT, "Alchemist's hut:", narrative.AlchemistHutDetail);

            Location alchemistsGarden = new Location(LOCATION_ID_ALCHEMISTS_GARDEN, "Alchemist's garden:", narrative.AlchemistGardenDetail);

            Location farmhouse = new Location(LOCATION_ID_FARMHOUSE, "Farmhouse:", narrative.FarmhouseDetail);

            Location farmersField = new Location(LOCATION_ID_FARM_FIELD, "Farmer's field:", narrative.FarmerFieldDetail);

            Location guardPost = new Location(LOCATION_ID_GUARD_POST, "Guard post:", narrative.GaurdPostDetail, ItemByID(ITEM_ID_ADVENTURER_PASS));

            Location bridge = new Location(LOCATION_ID_BRIDGE, "Bridge:", narrative.BridgeDetail);

            Location spiderField = new Location(LOCATION_ID_SPIDER_FIELD, "Forest:", narrative.ForrestDetail);


            //Adds Quests to loactaions
            alchemistHut.QuestAvailableHere = QuestByID(QUEST_ID_CLEAR_ALCHEMIST_GARDEN);
            farmhouse.QuestAvailableHere    = QuestByID(QUEST_ID_CLEAR_FARMERS_FIELD);


            //Adds Monsters (NAME, % chance of appearing)
            alchemistsGarden.AddMonster(MONSTER_ID_RAT, 34);
            alchemistsGarden.AddMonster(MONSTER_ID_SNAKE, 33);
            alchemistsGarden.AddMonster(MONSTER_ID_GIANT_SPIDER, 33);

            farmersField.AddMonster(MONSTER_ID_SNAKE, 75);

            spiderField.AddMonster(MONSTER_ID_GIANT_SPIDER, 75);

            // Link the locations together
            home.LocationToNorth = townSquare;

            townSquare.LocationToNorth   = alchemistHut;
            townSquare.LocationToSouth   = home;
            townSquare.LocationToEast    = guardPost;
            townSquare.LocationToWest    = farmhouse;
            townSquare.VendorWorkingHere = bobTheRatCatcher; //vendor

            farmhouse.LocationToEast = townSquare;
            farmhouse.LocationToWest = farmersField;

            farmersField.LocationToEast = farmhouse;

            alchemistHut.LocationToSouth = townSquare;
            alchemistHut.LocationToNorth = alchemistsGarden;

            alchemistsGarden.LocationToSouth = alchemistHut;

            guardPost.LocationToEast = bridge;
            guardPost.LocationToWest = townSquare;

            bridge.LocationToWest    = guardPost;
            bridge.LocationToEast    = spiderField;
            bridge.VendorWorkingHere = bobTheRatCatcher; //vendor

            spiderField.LocationToWest = bridge;

            // Add the locations to the list
            _locations.Add(home);
            _locations.Add(townSquare);
            _locations.Add(guardPost);
            _locations.Add(alchemistHut);
            _locations.Add(alchemistsGarden);
            _locations.Add(farmhouse);
            _locations.Add(farmersField);
            _locations.Add(bridge);
            _locations.Add(spiderField);
        }