// remove internal void SetLocationForHunterAt(int v, LocationDetail location) { Hunters[v].CurrentLocation = location; Logger.WriteToDebugLog(Hunters[v].Name + " started in " + location.Name); Logger.WriteToGameLog(Hunters[v].Name + " started in " + location.Name); }
// remove public bool LocationIsInCatacombs(LocationDetail location) { return Dracula.Catacombs.Contains(location); }
internal void MoveHunterToLocationAtHunterIndex(int hunterIndex, LocationDetail locationToMoveTo, UserInterface ui) { foreach (int ind in Hunters[hunterIndex].HuntersInGroup) { Logger.WriteToDebugLog("Moved " + Hunters[ind].Name + " to " + locationToMoveTo.Name); Logger.WriteToGameLog(Hunters[ind].Name + " moved from " + Hunters[ind].CurrentLocation.Name + " to " + locationToMoveTo.Name); ui.TellUser(Hunters[ind].Name + " moved from " + Hunters[ind].CurrentLocation.Name + " to " + locationToMoveTo.Name); Hunters[ind].CurrentLocation = locationToMoveTo; } }
// remove internal int IndexOfHunterAtLocation(LocationDetail location) { for (int i = 0; i < 4; i++) { if (Hunters[i].CurrentLocation == location) { return i; } } return -1; }
public LocationDetail GetLocationFromName(string locationName) { for (int i = 0; i < 71; i++) { if ((Map[i].Name.ToLower().StartsWith(locationName.ToLower())) || (Map[i].Abbreviation.ToLower() == locationName.ToLower())) { string tempName = Map[i].Name; Map[i].Name = ""; for (int j = i; j < 71; j++) { if (Map[j].Name.ToLower().StartsWith(locationName.ToLower())) { LocationDetail multipleLocations = new LocationDetail(); multipleLocations.Name = "Multiple locations"; Map[i].Name = tempName; return multipleLocations; } } Map[i].Name = tempName; return Map[i]; } } LocationDetail unknownLocation = new LocationDetail(); unknownLocation.Name = "Unknown location"; return unknownLocation; }
// done internal LocationDetail DecideWhichPortToGoToAfterStormySeas(GameState g, LocationDetail locationStormed) { Logger.WriteToDebugLog("Deciding which port to go to after having Stormy Seas played on current location"); LocationDetail port; do { port = locationStormed.BySea[new Random().Next(0, locationStormed.BySea.Count())]; } while (port.Type != LocationType.City && port.Type != LocationType.Town); Logger.WriteToDebugLog("Returning " + port.Name); return port; }
// done internal LocationDetail DecideMove(GameState g, Dracula dracula, out string powerName) { Logger.WriteToDebugLog("Starting to decide what move to make"); LocationDetail goingTo; if (dracula.AdvanceMovePower != null || dracula.AdvanceMoveDestination != null) { powerName = dracula.AdvanceMovePower; goingTo = dracula.AdvanceMoveDestination; dracula.AdvanceMovePower = null; dracula.AdvanceMoveDestination = null; } int chosenActionIndex = new Random().Next(0, dracula.PossibleMoves.Count() + dracula.PossiblePowers.Count()); if (chosenActionIndex > dracula.PossibleMoves.Count() - 1) { // choosing a power chosenActionIndex -= dracula.PossibleMoves.Count(); powerName = dracula.PossiblePowers[chosenActionIndex].name; if (powerName == "Dark Call" || powerName == "Feed" || powerName == "Hide") { goingTo = new LocationDetail(); goingTo.Name = "Nowhere"; } else if (powerName == "Double Back") { goingTo = dracula.PossibleDoubleBackMoves[new Random().Next(0, dracula.PossibleDoubleBackMoves.Count())]; } else if (powerName == "Wolf Form") { dracula.DeterminePossibleWolfFormLocations(); goingTo = dracula.PossibleMoves[new Random().Next(0, dracula.PossibleMoves.Count())]; } else { goingTo = new LocationDetail(); goingTo.Name = "Unknown location"; } } else { powerName = "no power"; goingTo = dracula.PossibleMoves[chosenActionIndex]; } Logger.WriteToDebugLog("Returning " + powerName + " and " + goingTo == null ? "null" : goingTo.Name); return goingTo; }
public void PlaceEncounterIfLegal(GameState g, LocationDetail location) { if (location.Type == LocationType.Castle) { Logger.WriteToDebugLog("Not placing an encounter here as this is Castle Dracula"); return; } if (location.Type == LocationType.Sea) { Logger.WriteToDebugLog("Not placing an encounter here as it is a sea location"); return; } Logger.WriteToDebugLog("Checking if Dracula used a power at this location"); int locationIndex = LocationTrail.FindIndex(loc => loc == location); if (locationIndex > -1) { Logger.WriteToDebugLog("This location is in the trail, checking if a power was used here"); if (LocationTrail[locationIndex].Name == "Dark Call") { Logger.WriteToDebugLog("Not placing an encounter here as Dracula used Dark Call"); return; } if (LocationTrail[locationIndex].Name == "Feed") { Logger.WriteToDebugLog("Not placing an encounter here as Dracula used Feed"); return; } for (int i = 0; i < Powers.Count(); i++) { if (Powers[i].name == "Double Back" && Powers[i].positionInTrail == locationIndex) { Logger.WriteToDebugLog("Not placing an encounter here as Dracula used Double Back"); return; } } Logger.WriteToDebugLog("Checking if this location already has an encounter"); if (LocationTrail[locationIndex].Encounters.Count() > 0) { Logger.WriteToDebugLog("THIS LOCATION ALREADY HAS AN ENCOUNTER. THIS SHOULD NOT BE POSSIBLE. INVESTIGATE."); return; } } else { Logger.WriteToDebugLog("This location isn't in the trail, not checking any further"); } EncounterDetail chosenEncounter = logic.DecideWhichEncounterToPlace(g, this); Logger.WriteToDebugLog("Placing encounter " + chosenEncounter.name); Logger.WriteToGameLog("Dracula placed encounter " + chosenEncounter.name); location.Encounters.Add(chosenEncounter); EncounterHand.Remove(chosenEncounter); }
// done internal EncounterDetail DecideWhichCatacombsEncounterToDiscard(GameState g, LocationDetail goingTo, UserInterface ui) { Logger.WriteToDebugLog("Deciding which encounter to discard off a location previously in the catacombs"); if (goingTo.Encounters.Count() > 1) { int random = new Random().Next(0, 2); ui.TellUser("Dracula discarded the encounter in slot " + random); Logger.WriteToDebugLog("Returning " + goingTo.Encounters[random]); return goingTo.Encounters[random]; } else { Logger.WriteToDebugLog("Returning " + goingTo.Encounters.First().name); return goingTo.Encounters.First(); } }
public void DoWolfFormMove(GameState g, LocationDetail destination, UserInterface ui) { // determine possible locations for wolf form (road only, up to two moves away) DeterminePossibleWolfFormLocations(); // carry out move MoveByRoadOrSea(g, destination, ui); Logger.WriteToGameLog("Dracula used Wolf Form to move to " + CurrentLocation.Name); }
public void MoveByRoadOrSea(GameState g, LocationDetail goingTo, UserInterface ui) { Logger.WriteToDebugLog("Moving Dracula to a new location"); Logger.WriteToDebugLog("Remembering that Dracula is moving from a location of type " + CurrentLocation.Type); LocationType previousLocationType = CurrentLocation.Type; if (PossibleMoves.Count() == 0) { Logger.WriteToDebugLog("SOMEHOW DRACULA IS TRYING TO MOVE WHEN HE HAS NO POSSIBLE MOVES"); } try { Logger.WriteToDebugLog("Dracula is moving from " + CurrentLocation.Name + " to " + goingTo.Name); CurrentLocation = goingTo; } catch (ArgumentOutOfRangeException) { ui.TellUser("Dracula tried to do something illegal"); Logger.WriteToDebugLog("DRACULA TRIED TO DO SOMETHING ILLEGAL"); } Logger.WriteToDebugLog("Adding " + CurrentLocation.Name + " to the head of the trail"); LocationTrail.Insert(0, CurrentLocation); MovePowersAlongTrail(); CheckBloodLossAtSea(previousLocationType, g.NameOfHunterAlly()); Logger.WriteToDebugLog("Checking if Dracula is in Castle Dracula"); if (CurrentLocation.Type == LocationType.Castle) { Logger.WriteToDebugLog("Revealing Castle Dracula"); CurrentLocation.IsRevealed = true; if (LocationWhereHideWasUsed != null) { if (LocationWhereHideWasUsed.Type == LocationType.Castle) { Logger.WriteToDebugLog("Also revealing Hide as it was used at Castle Dracula"); RevealHide(ui); } } } }
public void DoDoubleBackMove(GameState g, LocationDetail goingTo, UserInterface ui) { Logger.WriteToDebugLog("Remembering that Dracula is moving from a location of type " + CurrentLocation.Type); LocationType previousLocationType = CurrentLocation.Type; bool doublingBackToCatacombs = false; int doubleBackIndex = LocationTrail.FindIndex(location => location == goingTo); if (doubleBackIndex > -1) { Logger.WriteToDebugLog("Doubling back to a location in the trail"); if (doubleBackIndex > 0) { if (LocationTrail[doubleBackIndex - 1].Name == "Hide") { Logger.WriteToDebugLog("Dracula Doubled Back to " + goingTo + " and Hide is the next card in the trail"); ui.TellUser("Dracula Doubled Back to a location where he previously used Hide (position " + (doubleBackIndex - 1) + ")"); RevealHide(doubleBackIndex - 1, ui); } else if (doubleBackIndex > 1) { if (LocationTrail[doubleBackIndex - 1].Type == LocationType.Power && LocationTrail[doubleBackIndex - 2].Name == "Hide") { Logger.WriteToDebugLog("Dracula Doubled Back to " + goingTo + " and Hide is the next card in the trail, after " + LocationTrail[doubleBackIndex - 1].Name); ui.TellUser("Dracula Doubled Back to a location where he previously used Hide (position " + (doubleBackIndex - 1) + ")"); RevealHide(doubleBackIndex - 2, ui); } else if (doubleBackIndex > 2) { if (LocationTrail[doubleBackIndex - 1].Type == LocationType.Power && LocationTrail[doubleBackIndex - 2].Type == LocationType.Power && LocationTrail[doubleBackIndex - 3].Name == "Hide") { Logger.WriteToDebugLog("Dracula Doubled Back to " + goingTo + " and Hide is the next card in the trail, after " + LocationTrail[doubleBackIndex - 1].Name + " and " + LocationTrail[doubleBackIndex - 2].Name); ui.TellUser("Dracula Doubled Back to a location where he previously used Hide (position " + (doubleBackIndex - 1) + ")"); RevealHide(doubleBackIndex - 3, ui); } } } } else { Logger.WriteToDebugLog("TRIED TO DOUBLE BACK TO A LOCATION WHEN THERE ARE NONE IN THE LIST"); } } else { Logger.WriteToDebugLog("Doubling back to a location in the Catacombs"); doublingBackToCatacombs = true; } int doubleBackLocation = LocationTrail.FindIndex(loc => loc == goingTo); // move location to the front of the trail Logger.WriteToDebugLog("Temporarily holding " + goingTo.Name); if (doublingBackToCatacombs) { Logger.WriteToDebugLog("Removing " + goingTo.Name + " from the Catacombs"); Catacombs[Array.IndexOf(Catacombs, goingTo)] = null; EncounterDetail encounterToDiscard = logic.DecideWhichCatacombsEncounterToDiscard(g, goingTo, ui); goingTo.Encounters.Remove(encounterToDiscard); g.AddEncounterToEncounterPool(encounterToDiscard); } else { Logger.WriteToDebugLog("Removing " + goingTo.Name + " from the trail"); LocationTrail.Remove(goingTo); } Logger.WriteToDebugLog("Putting " + goingTo.Name + " back at the head of the trail"); LocationTrail.Insert(0, goingTo); Logger.WriteToDebugLog("Dracula's current location is now " + CurrentLocation.Name); CurrentLocation = LocationTrail[0]; Logger.WriteToGameLog("Dracula Doubled Back to " + CurrentLocation.Name + " from " + (doublingBackToCatacombs ? " the Catacombs" : " his trail")); // move the power cards that are in the trail for (int i = 0; i < Powers.Count(); i++) { if (Powers[i].positionInTrail == doubleBackLocation) { Logger.WriteToDebugLog("Moving Double Back power position to the head of the trail"); Powers[i].positionInTrail = 0; } else if (Powers[i].positionInTrail < doubleBackLocation) { Logger.WriteToDebugLog("Moving power " + Powers[i].name + " position further along the trail"); Powers[i].positionInTrail++; } } CheckBloodLossAtSea(previousLocationType, g.NameOfHunterAlly()); }
public void AddDummyPowerCardToTrail(string powerName) { // add the power card to the location trail by using a dummy "location" LocationDetail powerCard = new LocationDetail(); powerCard.Name = powerName; powerCard.Abbreviation = powerName.Substring(0, 3).ToUpper(); if (powerCard.Name != "Hide") { Logger.WriteToDebugLog("Power card is not Hide, so it is added to the trail revealed"); powerCard.IsRevealed = true; powerCard.Type = LocationType.Power; } Logger.WriteToDebugLog("Adding the power card " + powerCard.Name + " to the head of trail"); LocationTrail.Insert(0, powerCard); MovePowersAlongTrail(); }
internal void OrderEncounters(Hunter hunter, LocationDetail location) { logic.DecideOrderOfEncountersAtLocation(hunter, location); }
internal LocationDetail DecideWhichPortToGoToAfterStormySeas(GameState g, LocationDetail locationStormed) { return logic.DecideWhichPortToGoToAfterStormySeas(g, locationStormed); }
private LocationDetail[] CreateNetwork() { LocationDetail[] tempMap = new LocationDetail[72]; LocationDetail nowhere = new LocationDetail(); LocationDetail galway = new LocationDetail(); LocationDetail dublin = new LocationDetail(); LocationDetail liverpool = new LocationDetail(); LocationDetail edinburgh = new LocationDetail(); LocationDetail manchester = new LocationDetail(); LocationDetail swansea = new LocationDetail(); LocationDetail plymouth = new LocationDetail(); LocationDetail nantes = new LocationDetail(); LocationDetail lehavre = new LocationDetail(); LocationDetail london = new LocationDetail(); LocationDetail paris = new LocationDetail(); LocationDetail brussels = new LocationDetail(); LocationDetail amsterdam = new LocationDetail(); LocationDetail strasbourg = new LocationDetail(); LocationDetail cologne = new LocationDetail(); LocationDetail hamburg = new LocationDetail(); LocationDetail frankfurt = new LocationDetail(); LocationDetail nuremburg = new LocationDetail(); LocationDetail leipzig = new LocationDetail(); LocationDetail berlin = new LocationDetail(); LocationDetail prague = new LocationDetail(); LocationDetail castledracula = new LocationDetail(); LocationDetail santander = new LocationDetail(); LocationDetail saragossa = new LocationDetail(); LocationDetail bordeaux = new LocationDetail(); LocationDetail toulouse = new LocationDetail(); LocationDetail barcelona = new LocationDetail(); LocationDetail clermontferrand = new LocationDetail(); LocationDetail marseilles = new LocationDetail(); LocationDetail geneva = new LocationDetail(); LocationDetail genoa = new LocationDetail(); LocationDetail milan = new LocationDetail(); LocationDetail zurich = new LocationDetail(); LocationDetail florence = new LocationDetail(); LocationDetail venice = new LocationDetail(); LocationDetail munich = new LocationDetail(); LocationDetail zagreb = new LocationDetail(); LocationDetail vienna = new LocationDetail(); LocationDetail stjosephandstmary = new LocationDetail(); LocationDetail sarajevo = new LocationDetail(); LocationDetail szeged = new LocationDetail(); LocationDetail budapest = new LocationDetail(); LocationDetail belgrade = new LocationDetail(); LocationDetail klausenburg = new LocationDetail(); LocationDetail sofia = new LocationDetail(); LocationDetail bucharest = new LocationDetail(); LocationDetail galatz = new LocationDetail(); LocationDetail varna = new LocationDetail(); LocationDetail constanta = new LocationDetail(); LocationDetail lisbon = new LocationDetail(); LocationDetail cadiz = new LocationDetail(); LocationDetail madrid = new LocationDetail(); LocationDetail granada = new LocationDetail(); LocationDetail alicante = new LocationDetail(); LocationDetail cagliari = new LocationDetail(); LocationDetail rome = new LocationDetail(); LocationDetail naples = new LocationDetail(); LocationDetail bari = new LocationDetail(); LocationDetail valona = new LocationDetail(); LocationDetail salonica = new LocationDetail(); LocationDetail athens = new LocationDetail(); LocationDetail atlanticocean = new LocationDetail(); LocationDetail irishsea = new LocationDetail(); LocationDetail englishchannel = new LocationDetail(); LocationDetail northsea = new LocationDetail(); LocationDetail bayofbiscay = new LocationDetail(); LocationDetail mediterraneansea = new LocationDetail(); LocationDetail tyrrheniansea = new LocationDetail(); LocationDetail adriaticsea = new LocationDetail(); LocationDetail ioniansea = new LocationDetail(); LocationDetail blacksea = new LocationDetail(); nowhere.Name = "Nowhere"; nowhere.Abbreviation = "NOW"; tempMap[(int)Location.Nowhere] = nowhere; galway.Name = "Galway"; galway.Abbreviation = "GAW"; galway.Type = LocationType.Town; galway.IsEastern = false; galway.ByRoad.Add(Location.Dublin); galway.BySea.Add(Location.AtlanticOcean); tempMap[(int)Location.Galway] = galway; dublin.Name = "Dublin"; dublin.Abbreviation = "DUB"; dublin.Type = LocationType.Town; dublin.IsEastern = false; dublin.ByRoad.Add(Location.Galway); dublin.BySea.Add(Location.IrishSea); tempMap[(int)Location.Dublin] = dublin; liverpool.Name = "Liverpool"; liverpool.Abbreviation = "LIV"; liverpool.Type = LocationType.City; liverpool.IsEastern = false; liverpool.ByRoad.Add(Location.Manchester); liverpool.ByRoad.Add(Location.Swansea); liverpool.ByTrain.Add(Location.Manchester); liverpool.BySea.Add(Location.IrishSea); tempMap[(int)Location.Liverpool] = liverpool; edinburgh.Name = "Edinburgh"; edinburgh.Abbreviation = "EDI"; edinburgh.Type = LocationType.City; edinburgh.IsEastern = false; edinburgh.ByRoad.Add(Location.Manchester); edinburgh.ByTrain.Add(Location.Manchester); edinburgh.BySea.Add(Location.NorthSea); tempMap[(int)Location.Edinburgh] = edinburgh; manchester.Name = "Manchester"; manchester.Abbreviation = "MAN"; manchester.Type = LocationType.City; manchester.IsEastern = false; manchester.ByRoad.Add(Location.Edinburgh); manchester.ByRoad.Add(Location.Liverpool); manchester.ByRoad.Add(Location.London); manchester.ByTrain.Add(Location.Edinburgh); manchester.ByTrain.Add(Location.Liverpool); manchester.ByTrain.Add(Location.London); tempMap[(int)Location.Manchester] = manchester; swansea.Name = "Swansea"; swansea.Abbreviation = "SWA"; swansea.Type = LocationType.Town; swansea.IsEastern = false; swansea.ByRoad.Add(Location.Liverpool); swansea.ByRoad.Add(Location.London); swansea.ByTrain.Add(Location.London); swansea.BySea.Add(Location.IrishSea); tempMap[(int)Location.Swansea] = swansea; plymouth.Name = "Plymouth"; plymouth.Abbreviation = "PLY"; plymouth.Type = LocationType.Town; plymouth.IsEastern = false; plymouth.ByRoad.Add(Location.London); plymouth.BySea.Add(Location.EnglishChannel); tempMap[(int)Location.Plymouth] = plymouth; nantes.Name = "Nantes"; nantes.Abbreviation = "NAN"; nantes.Type = LocationType.City; nantes.IsEastern = false; nantes.ByRoad.Add(Location.LeHavre); nantes.ByRoad.Add(Location.Paris); nantes.ByRoad.Add(Location.ClermontFerrand); nantes.ByRoad.Add(Location.Bordeaux); nantes.BySea.Add(Location.BayOfBiscay); tempMap[(int)Location.Nantes] = nantes; lehavre.Name = "Le Havre"; lehavre.Abbreviation = "LEH"; lehavre.Type = LocationType.Town; lehavre.IsEastern = false; lehavre.ByRoad.Add(Location.Nantes); lehavre.ByRoad.Add(Location.Paris); lehavre.ByRoad.Add(Location.Brussels); lehavre.ByTrain.Add(Location.Paris); lehavre.BySea.Add(Location.EnglishChannel); tempMap[(int)Location.LeHavre] = lehavre; london.Name = "London"; london.Abbreviation = "LON"; london.Type = LocationType.City; london.IsEastern = false; london.ByRoad.Add(Location.Manchester); london.ByRoad.Add(Location.Swansea); london.ByRoad.Add(Location.Plymouth); london.ByTrain.Add(Location.Manchester); london.ByTrain.Add(Location.Swansea); london.BySea.Add(Location.EnglishChannel); tempMap[(int)Location.London] = london; paris.Name = "Paris"; paris.Abbreviation = "PAR"; paris.Type = LocationType.City; paris.IsEastern = false; paris.ByRoad.Add(Location.Nantes); paris.ByRoad.Add(Location.LeHavre); paris.ByRoad.Add(Location.Brussels); paris.ByRoad.Add(Location.Strasbourg); paris.ByRoad.Add(Location.Geneva); paris.ByRoad.Add(Location.ClermontFerrand); paris.ByTrain.Add(Location.LeHavre); paris.ByTrain.Add(Location.Brussels); paris.ByTrain.Add(Location.Marseilles); paris.ByTrain.Add(Location.Bordeaux); tempMap[(int)Location.Paris] = paris; brussels.Name = "Brussels"; brussels.Abbreviation = "BRU"; brussels.Type = LocationType.City; brussels.IsEastern = false; brussels.ByRoad.Add(Location.LeHavre); brussels.ByRoad.Add(Location.Amsterdam); brussels.ByRoad.Add(Location.Cologne); brussels.ByRoad.Add(Location.Strasbourg); brussels.ByRoad.Add(Location.Paris); brussels.ByTrain.Add(Location.Cologne); brussels.ByTrain.Add(Location.Paris); tempMap[(int)Location.Brussels] = brussels; amsterdam.Name = "Amsterdam"; amsterdam.Abbreviation = "AMS"; amsterdam.Type = LocationType.City; amsterdam.IsEastern = false; amsterdam.ByRoad.Add(Location.Brussels); amsterdam.ByRoad.Add(Location.Cologne); amsterdam.BySea.Add(Location.NorthSea); tempMap[(int)Location.Amsterdam] = amsterdam; strasbourg.Name = "Strasbourg"; strasbourg.Abbreviation = "STR"; strasbourg.Type = LocationType.Town; strasbourg.IsEastern = false; strasbourg.ByRoad.Add(Location.Paris); strasbourg.ByRoad.Add(Location.Brussels); strasbourg.ByRoad.Add(Location.Cologne); strasbourg.ByRoad.Add(Location.Frankfurt); strasbourg.ByRoad.Add(Location.Nuremburg); strasbourg.ByRoad.Add(Location.Munich); strasbourg.ByRoad.Add(Location.Zurich); strasbourg.ByRoad.Add(Location.Geneva); strasbourg.ByTrain.Add(Location.Frankfurt); strasbourg.ByTrain.Add(Location.Zurich); tempMap[(int)Location.Strasbourg] = strasbourg; cologne.Name = "Cologne"; cologne.Abbreviation = "COL"; cologne.Type = LocationType.City; cologne.IsEastern = false; cologne.ByRoad.Add(Location.Brussels); cologne.ByRoad.Add(Location.Amsterdam); cologne.ByRoad.Add(Location.Hamburg); cologne.ByRoad.Add(Location.Leipzig); cologne.ByRoad.Add(Location.Frankfurt); cologne.ByRoad.Add(Location.Strasbourg); cologne.ByTrain.Add(Location.Brussels); cologne.ByTrain.Add(Location.Frankfurt); tempMap[(int)Location.Cologne] = cologne; hamburg.Name = "Hamburg"; hamburg.Abbreviation = "HAM"; hamburg.Type = LocationType.City; hamburg.IsEastern = false; hamburg.ByRoad.Add(Location.Cologne); hamburg.ByRoad.Add(Location.Berlin); hamburg.ByRoad.Add(Location.Leipzig); hamburg.ByTrain.Add(Location.Berlin); hamburg.BySea.Add(Location.NorthSea); tempMap[(int)Location.Hamburg] = hamburg; frankfurt.Name = "Frankfurt"; frankfurt.Abbreviation = "FRA"; frankfurt.Type = LocationType.Town; frankfurt.IsEastern = false; frankfurt.ByRoad.Add(Location.Strasbourg); frankfurt.ByRoad.Add(Location.Cologne); frankfurt.ByRoad.Add(Location.Leipzig); frankfurt.ByRoad.Add(Location.Nuremburg); frankfurt.ByTrain.Add(Location.Strasbourg); frankfurt.ByTrain.Add(Location.Cologne); frankfurt.ByTrain.Add(Location.Leipzig); tempMap[(int)Location.Frankfurt] = frankfurt; nuremburg.Name = "Nuremburg"; nuremburg.Abbreviation = "NUR"; nuremburg.Type = LocationType.Town; nuremburg.IsEastern = false; nuremburg.ByRoad.Add(Location.Strasbourg); nuremburg.ByRoad.Add(Location.Frankfurt); nuremburg.ByRoad.Add(Location.Leipzig); nuremburg.ByRoad.Add(Location.Prague); nuremburg.ByRoad.Add(Location.Munich); nuremburg.ByTrain.Add(Location.Leipzig); nuremburg.ByTrain.Add(Location.Munich); tempMap[(int)Location.Nuremburg] = nuremburg; leipzig.Name = "Leipzig"; leipzig.Abbreviation = "LEI"; leipzig.Type = LocationType.City; leipzig.IsEastern = false; leipzig.ByRoad.Add(Location.Cologne); leipzig.ByRoad.Add(Location.Hamburg); leipzig.ByRoad.Add(Location.Berlin); leipzig.ByRoad.Add(Location.Nuremburg); leipzig.ByRoad.Add(Location.Frankfurt); leipzig.ByTrain.Add(Location.Frankfurt); leipzig.ByTrain.Add(Location.Berlin); leipzig.ByTrain.Add(Location.Nuremburg); tempMap[(int)Location.Leipzig] = leipzig; berlin.Name = "Berlin"; berlin.Abbreviation = "BER"; berlin.Type = LocationType.City; berlin.IsEastern = false; berlin.ByRoad.Add(Location.Hamburg); berlin.ByRoad.Add(Location.Prague); berlin.ByRoad.Add(Location.Leipzig); berlin.ByTrain.Add(Location.Hamburg); berlin.ByTrain.Add(Location.Leipzig); berlin.ByTrain.Add(Location.Prague); tempMap[(int)Location.Berlin] = berlin; prague.Name = "Prague"; prague.Abbreviation = "PRA"; prague.Type = LocationType.City; prague.IsEastern = true; prague.ByRoad.Add(Location.Berlin); prague.ByRoad.Add(Location.Vienna); prague.ByRoad.Add(Location.Nuremburg); prague.ByTrain.Add(Location.Berlin); prague.ByTrain.Add(Location.Vienna); tempMap[(int)Location.Prague] = prague; castledracula.Name = "Castle Dracula"; castledracula.Abbreviation = "CAS"; castledracula.Type = LocationType.Castle; castledracula.IsEastern = true; castledracula.ByRoad.Add(Location.Klausenburg); castledracula.ByRoad.Add(Location.Galatz); tempMap[(int)Location.CastleDracula] = castledracula; santander.Name = "Santander"; santander.Abbreviation = "SAN"; santander.Type = LocationType.Town; santander.IsEastern = false; santander.ByRoad.Add(Location.Lisbon); santander.ByRoad.Add(Location.Madrid); santander.ByRoad.Add(Location.Saragossa); santander.ByTrain.Add(Location.Madrid); santander.BySea.Add(Location.BayOfBiscay); tempMap[(int)Location.Santander] = santander; saragossa.Name = "Saragossa"; saragossa.Abbreviation = "SAG"; saragossa.Type = LocationType.Town; saragossa.IsEastern = false; saragossa.ByRoad.Add(Location.Madrid); saragossa.ByRoad.Add(Location.Santander); saragossa.ByRoad.Add(Location.Bordeaux); saragossa.ByRoad.Add(Location.Toulouse); saragossa.ByRoad.Add(Location.Barcelona); saragossa.ByRoad.Add(Location.Alicante); saragossa.ByTrain.Add(Location.Madrid); saragossa.ByTrain.Add(Location.Bordeaux); saragossa.ByTrain.Add(Location.Barcelona); tempMap[(int)Location.Saragossa] = saragossa; bordeaux.Name = "Bordeaux"; bordeaux.Abbreviation = "BOR"; bordeaux.Type = LocationType.City; bordeaux.IsEastern = false; bordeaux.ByRoad.Add(Location.Saragossa); bordeaux.ByRoad.Add(Location.Nantes); bordeaux.ByRoad.Add(Location.ClermontFerrand); bordeaux.ByRoad.Add(Location.Toulouse); bordeaux.ByTrain.Add(Location.Paris); bordeaux.ByTrain.Add(Location.Saragossa); bordeaux.BySea.Add(Location.BayOfBiscay); tempMap[(int)Location.Bordeaux] = bordeaux; toulouse.Name = "Toulouse"; toulouse.Abbreviation = "TOU"; toulouse.Type = LocationType.Town; toulouse.IsEastern = false; toulouse.ByRoad.Add(Location.Saragossa); toulouse.ByRoad.Add(Location.Bordeaux); toulouse.ByRoad.Add(Location.ClermontFerrand); toulouse.ByRoad.Add(Location.Marseilles); toulouse.ByRoad.Add(Location.Barcelona); tempMap[(int)Location.Toulouse] = toulouse; barcelona.Name = "Barcelona"; barcelona.Abbreviation = "BAC"; barcelona.Type = LocationType.City; barcelona.IsEastern = false; barcelona.ByRoad.Add(Location.Saragossa); barcelona.ByRoad.Add(Location.Toulouse); barcelona.ByTrain.Add(Location.Saragossa); barcelona.ByTrain.Add(Location.Alicante); barcelona.BySea.Add(Location.MediterraneanSea); tempMap[(int)Location.Barcelona] = barcelona; clermontferrand.Name = "Clermont Ferrand"; clermontferrand.Abbreviation = "CLE"; clermontferrand.Type = LocationType.Town; clermontferrand.IsEastern = false; clermontferrand.ByRoad.Add(Location.Bordeaux); clermontferrand.ByRoad.Add(Location.Nantes); clermontferrand.ByRoad.Add(Location.Paris); clermontferrand.ByRoad.Add(Location.Geneva); clermontferrand.ByRoad.Add(Location.Marseilles); clermontferrand.ByRoad.Add(Location.Toulouse); tempMap[(int)Location.ClermontFerrand] = clermontferrand; marseilles.Name = "Marseilles"; marseilles.Abbreviation = "MAR"; marseilles.Type = LocationType.City; marseilles.IsEastern = false; marseilles.ByRoad.Add(Location.Toulouse); marseilles.ByRoad.Add(Location.ClermontFerrand); marseilles.ByRoad.Add(Location.Geneva); marseilles.ByRoad.Add(Location.Zurich); marseilles.ByRoad.Add(Location.Milan); marseilles.ByRoad.Add(Location.Genoa); marseilles.ByTrain.Add(Location.Paris); marseilles.BySea.Add(Location.MediterraneanSea); tempMap[(int)Location.Marseilles] = marseilles); geneva.Name = "Geneva"; geneva.Abbreviation = "GEV"; geneva.Type = LocationType.Town; geneva.IsEastern = false; geneva.ByRoad.Add(Location.Marseilles); geneva.ByRoad.Add(Location.ClermontFerrand); geneva.ByRoad.Add(Location.Paris); geneva.ByRoad.Add(Location.Strasbourg); geneva.ByRoad.Add(Location.Zurich); geneva.ByTrain.Add(Location.Milan); tempMap[(int)Location.Geneva] = geneva; genoa.Name = "Genoa"; genoa.Abbreviation = "GEO"; genoa.Type = LocationType.City; genoa.IsEastern = true; genoa.ByRoad.Add(Location.Marseilles); genoa.ByRoad.Add(Location.Milan); genoa.ByRoad.Add(Location.Venice); genoa.ByRoad.Add(Location.Florence); genoa.ByTrain.Add(Location.Milan); genoa.BySea.Add(Location.TyrrhenianSea); tempMap[(int)Location.Genoa = genoa;