public Location LoadForestCabinEntrance() { Location returnData; returnData = new Location(); returnData.Name = "Bandit House Entrance"; returnData.Description = "The room is full of uncomfortable looking furniture. The chair in the corner looks like it has a large blood stain on it."; //Actions // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // Town Center LocationDefinition locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = WatertownBanditHouse.GetTownInstance().GetRoomTwoDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadSideArea() { Location returnData; returnData = new Location(); returnData.Name = "Watertown Forest Side Area"; Accomplishment banditCaveAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Bandit Cave")); if (!(GameState.Hero.Accomplishments.Contains(banditCaveAccomplishment))) { returnData.Description = "You move off to a little side area you saw. There is nothing here but more trees."; } else { returnData.Description = "Now that you were told of the cave's existence, you can spot it hiding behind some trees."; } //Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownForest.GetTownInstance().GetStartingLocationDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; if (GameState.Hero.Accomplishments.Contains(banditCaveAccomplishment)) { locationDefinition = WatertownBanditCave.GetTownInstance().GetStartingLocationDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadForestEntrance() { Location returnData; returnData = new Location(); returnData.Name = "Watertown Forest Entrance"; returnData.Description = "A dense yet surprisingly bright forest. You can hear the laughter of the bandits off in the distance"; // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = WatertownForest.GetTownInstance().GetSideAreaDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = WatertownForest.GetTownInstance().GetStraightDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadClearing() { Location returnData = new Location(); returnData.Name = "Forest Clearing"; bool defeatedBanditCaptain = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForest.DEFEATED_BANDIT_CAPTAIN_KEY)); Accomplishment murderRoomAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Bandit Spy")); if (!defeatedBanditCaptain) { returnData.Description = "The Bandit Captain stands in the clearing and stares at you, daring you to challenge him."; } else if (defeatedBanditCaptain && !GameState.Hero.Accomplishments.Contains(murderRoomAccomplishment)) { returnData.Description = "The Bandit Captain lays dead in the clearing."; } else if (GameState.Hero.Accomplishments.Contains(murderRoomAccomplishment)) { returnData.Description = "A medium sized clearing. Now that you've been told to search for the tower you can see a covered up entrance to a narrow path. It also looks like the Bandit Captain's body has been removed."; } // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); if (!defeatedBanditCaptain) { List <Mob> banditCaptain = new List <Mob>(); banditCaptain.Add(new BanditCaptain()); CombatAction combatAction = new CombatAction("Bandit Captain", banditCaptain); combatAction.PostCombat += BanditCaptainResults; locationActions.Add(combatAction); returnData.Actions = locationActions; } Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownForest.GetTownInstance().GetStraightDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (defeatedBanditCaptain) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); LocationHandler.SetLocationStateValue(Watertown.LOCATION_STATE_KEY, DEFEATED_CAPTAIN_STATE, true); LocationHandler.ResetLocation(Watertown.INN_KEY); // Need to reload Inn so that new conversation can be set. } if (GameState.Hero.Accomplishments.Contains(murderRoomAccomplishment)) { locationDefinition = WatertownForestClearingBeforeTower.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadSewerEntrance() { Location returnData; returnData = new Location(); returnData.Name = "Watertown Sewer Entrance"; returnData.Description = "Mud and slime and poopoo. What a nasty place."; // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // Town Center LocationDefinition locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); // Entrance Corridor locationDefinition = GetSewerEntranceCorridorDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; LocationHandler.SetLocationStateValue(Watertown.LOCATION_STATE_KEY, VISITED_SEWER_STATE, true); LocationHandler.ResetLocation(Watertown.INN_KEY); // Need to reload Inn so that new conversation can be set. return(returnData); }
public void HeardBanditKingRumor() { Accomplishment accomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Bandit God King")); GameState.Hero.Accomplishments.Add(accomplishment); // Reload the TownCenter so it will open up the hidden room LocationHandler.ResetLocation(TOWN_CENTER_KEY); }
public static Watertown GetTownInstance() { if (_Watertown == null) { _Watertown = new Watertown(); } return(_Watertown); }
public void HeardBanditCaptainRumor() { // TODO: Need to keep duplicate accomplishments from happening (SEE ABOVE METHOD) Accomplishment accomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Bandit Captain")); GameState.Hero.Accomplishments.Add(accomplishment); // Reload the TownCenter so it will open up the forest LocationHandler.ResetLocation(TOWN_CENTER_KEY); }
public void HeardSewerKingRumor() { // TODO: need to keep duplicate accomplishments from happening. Accomplishment accomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Sewer King")); GameState.Hero.Accomplishments.Add(accomplishment); // Reload the TownCenter so it will open up the sewer LocationHandler.ResetLocation(TOWN_CENTER_KEY); }
public Location LoadCaveDeeperEntrance() { Location returnData; returnData = new Location(); returnData.Name = "Bandit Cave Hidden Room"; string paperText = "To whomever it may concern, \nWe were supposed to get a shipment of supplies a week ago! Find out what went wrong! I'll be in \ncontact again if this isn't sorted out...\n"; bool readPaper = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.READ_PAPER_KEY)); // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); if (!readPaper) { returnData.Description = "A study lined with bookshelves with a desk in the middle of the room. There are papers scattered about the desk."; ReadPapersAction paperReadAction = new ReadPapersAction(paperText); locationActions.Add(paperReadAction); paperReadAction.PostPaper += PaperResults; returnData.Actions = locationActions; } if (_takeSaw && _takeRope && _takeWood) { returnData.Description = "A study lined with bookshelves. A desk was pushed up against the wall with paper scattered across the floor. There is a pool of blood where the desk used to be."; } else { returnData.Description = "A study lined with bookshelves with a desk in the middle of the room. There are papers scattered about the desk."; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownBanditCave.GetTownInstance().GetLairDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (readPaper) { locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetJailCellDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } if (_takeWood && _takeRope && _takeSaw) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); LocationHandler.SetLocationStateValue(Watertown.LOCATION_STATE_KEY, DEFEATED_BANDIT_SUPPLY_CAPTAIN_KEY, true); LocationHandler.ResetLocation(Watertown.INN_KEY); // Need to reload Inn so that new conversation can be set. } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location Lair() { Location returnData; bool defeatedLieutenant = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCave.DEFEATED_LIEUTENANT_KEY)); returnData = new Location(); returnData.Name = "Lieutenant's Lair"; Accomplishment hiddenRoomAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Hidden Room")); if (!defeatedLieutenant) { returnData.Description = "A large room, furnished with expensive decorations. The Lieutenant stands in the middle of the room"; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); List <Mob> bandits = new List <Mob>(); bandits.Add(new BanditLieutenant()); CombatAction combatAction = new CombatAction("Bandit Lieutenant", bandits); combatAction.PostCombat += LairResults; locationActions.Add(combatAction); returnData.Actions = locationActions; } else { returnData.Description = "A large ornate room. The Bandit Lieutenant lays dead in the middle of the room. There's a book shelf against the left hand wall that seems out of place. You wonder why it's there..."; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownBanditCave.GetTownInstance().GetCaveHallwayDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (GameState.Hero.Accomplishments.Contains(hiddenRoomAccomplishment)) { locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetStartingLocationDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } if (defeatedLieutenant) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); LocationHandler.SetLocationStateValue(Watertown.LOCATION_STATE_KEY, DEFEATED_LIEUTENANT_KEY, true); LocationHandler.ResetLocation(Watertown.INN_KEY); // Need to reload Inn so that new conversation can be set. } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadRoomFour() { Location returnData; bool defeatedOutlawBoss = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownSewerLeft.DEFEATED_OUTLAW_BOSS)); returnData = new Location(); returnData.Name = "Giant Room"; //Actions if (defeatedOutlawBoss == false) { returnData.Description = "Mud and slime and poopoo. What a nasty place. The Outlaw Boss stands in the middle of the room"; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); List <Mob> outlawBoss = new List <Mob>(); outlawBoss.Add(new OutlawBoss()); CombatAction combatAction = new CombatAction("Outlaw Boss", outlawBoss); combatAction.PostCombat += OutlawBattle; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedOutlawBoss) { returnData.Description = "Mud and slime and poopoo. What a nasty place. The Outlaw Boss's dead body decomposes on the ground."; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // Town Center LocationDefinition locationDefinition = WatertownSewerLeft.GetTownInstance().GetHallwayDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (defeatedOutlawBoss) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadGrandRoom() { Location returnData; returnData = new Location(); returnData.Name = "Grand Room"; bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTowerFloorTwo.DEFEATED_BANDIT_KING)); //Actions if (!defeatedMobs) { returnData.Description = "A large grand room. The Bandit King is sitting on his throne."; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); List <Mob> mobs = new List <Mob>(); mobs.Add(new BanditKing()); CombatAction combatAction = new CombatAction("Bandit King", mobs); combatAction.PostCombat += BanditKing; locationActions.Add(combatAction); returnData.Actions = locationActions; } else { returnData.Description = "A large grand room. The Bandit King lays dead at the foot of his throne."; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // The floor below LocationDefinition locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomFourDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (defeatedMobs) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadEnclosedClearing() { Location returnData; bool defeatedSkeletonKing = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestAfterSewer.DEFEATED_POSSESED_GUARD)); bool openedChest = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestAfterSewer.OPENED_BOSS_CHEST_ENCLOSED_CLEARING)); returnData = new Location(); returnData.Name = "Enclosed Clearing"; //Actions if (defeatedSkeletonKing == false) { returnData.Description = "A small enclosed clearing. A cabin sits in the back of it, with a small walkway leading up to its front door. The walk way is lined in skulls and candles. A possesed village guard blocks the door."; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); List <Mob> guard = new List <Mob>(); guard.Add(new PossesedGuardBoss()); CombatAction combatAction = new CombatAction("Possesed Guard", guard); combatAction.PostCombat += GuardBossBattle; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedSkeletonKing) { if (openedChest == false) { returnData.Description = "A small enclosed clearing. A cabin sits in the back of it, with a small walkway leading up to its front door. The walk way is lined in skulls and candles. The possesed guard lays to rest to the side of the path. His unopened chest appears off to the side."; List <LocationAction> locationActions = new List <LocationAction>(); TreasureChestAction itemAction = new TreasureChestAction(3); locationActions.Add(itemAction); itemAction.PostItem += GuardChest; returnData.Actions = locationActions; } else if (openedChest) { returnData.Description = "A small enclosed clearing. A cabin sits in the back of it, with a small walkway leading up to its front door. The walk way is lined in skulls and candles. The possesed guard lays to rest to the side of the path. His opened chest sits off to the side."; } } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // Town Center LocationDefinition locationDefinition = WatertownForestAfterSewer.GetTownInstance().GetMeetingGroundsDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (defeatedSkeletonKing) { locationDefinition = WatertownForestCabin.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadRoomFour() { Location returnData; bool defeatedNecromancerLeader = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestCabin.DEFEATED_NECROMANCER_LEADER)); bool openedChest = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestCabin.OPENED_BOSS_CHEST_ROOM_SIX)); bool takeLetter = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestCabin.TOOK_LETTER)); returnData = new Location(); returnData.Name = "Bedroom"; //Actions if (defeatedNecromancerLeader == false) { returnData.Description = "A small bedroom. The necromancer leader sits in the middle of the room with his legs crossed, dark energy swirling around him."; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); List <Mob> necro = new List <Mob>(); necro.Add(new NecromancerLeader()); CombatAction combatAction = new CombatAction("Necromancer Leader", necro); combatAction.PostCombat += NecromancerLeaderBattle; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedNecromancerLeader) { if (openedChest == false) { if (!takeLetter) { returnData.Description = "A small bedroom. The necromancer leader lays dead and broken on the ground. His unopened chest is against the far wall. A letter fell out of his pocket."; } else { returnData.Description = "A small bedroom. The necromancer leader lays dead and broken on the ground. His unopened chest is against the far wall."; } List <LocationAction> locationActions = new List <LocationAction>(); TreasureChestAction itemAction = new TreasureChestAction(3); locationActions.Add(itemAction); itemAction.PostItem += NecroChest; returnData.Actions = locationActions; } if (openedChest && takeLetter) { returnData.Description = "A small bedroom. The necromancer leader lays dead and broken on the ground. His opened chest is against the far wall."; } if (!takeLetter && openedChest) { returnData.Description = "A small bedroom. The necromancer leader lays dead and broken on the ground. His opened chest is against the far wall. A letter fell out of his pocket."; List <LocationAction> locationActions = new List <LocationAction>(); TakeItemAction letterAction = new TakeItemAction("Letter"); letterAction.PostItem += NecroLetter; locationActions.Add(letterAction); returnData.Actions = locationActions; } } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // Town Center LocationDefinition locationDefinition = WatertownForestCabin.GetTownInstance().GetRoomThreeDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (takeLetter) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadRoomSix() { Location returnData; bool defeatedNecromancerLeader = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditHouse.DEFATED_BANDIT_SPY)); bool openedChest = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditHouse.OPENED_SPY_CHEST)); bool takeLetter = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditHouse.TOOK_SPY_LETTER)); returnData = new Location(); returnData.Name = "Bedroom"; //Actions if (defeatedNecromancerLeader == false) { returnData.Description = "A large luxurious bedroom with a large comfortable bed against the back wall. A bandit spy is sitting on the bed playing with one of his knives.."; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); List <Mob> spy = new List <Mob>(); spy.Add(new BanditSpy()); CombatAction combatAction = new CombatAction("Bandit Spy", spy); combatAction.PostCombat += BanditSpyBattle; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedNecromancerLeader) { if (openedChest == false) { if (!takeLetter) { returnData.Description = "A large luxurious bedroom with a large comfortable bed against the back wall. The bandit spy lays dead on his bed with a letter on his night stand and a chest under his bed"; } else { returnData.Description = "A large luxurious bedroom with a large comfortable bed against the back wall. The bandit spy lays dead on his bed with a chest under his bed"; } List <LocationAction> locationActions = new List <LocationAction>(); TreasureChestAction itemAction = new TreasureChestAction(3); locationActions.Add(itemAction); itemAction.PostItem += SpyChest; returnData.Actions = locationActions; } if (openedChest && takeLetter) { returnData.Description = "A large luxurious bedroom with a large comfortable bed against the back wall. The bandit spy lays dead on his bed with a chest under his bed"; } if (!takeLetter && openedChest) { returnData.Description = "A large luxurious bedroom with a large comfortable bed against the back wall. The bandit spy lays dead on his bed with a letter on his night stand and a chest under his bed"; List <LocationAction> locationActions = new List <LocationAction>(); TakeItemAction letterAction = new TakeItemAction("Letter"); letterAction.PostItem += SpyLetter; locationActions.Add(letterAction); returnData.Actions = locationActions; } } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // Town Center LocationDefinition locationDefinition = WatertownBanditHouse.GetTownInstance().GetRoomFiveDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (takeLetter) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadTownCenter() { Location returnData; LocationAction locationAction; returnData = new Location(); returnData.Name = "Watertown Town Center"; returnData.Description = "Welcome to the cozy Watertown Town Center."; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); locationAction = new DisplayStatsAction(); locationActions.Add(locationAction); locationAction = new DisplayInventoryAction(); locationActions.Add(locationAction); locationAction = new DisplayPotionBagAction(); locationActions.Add(locationAction); locationAction = new DisplayEquippedAction(); locationActions.Add(locationAction); locationAction = new AffixSwapperAction(); locationActions.Add(locationAction); locationAction = new StoreAction(); locationActions.Add(locationAction); locationAction = new MainMenuAction(); locationActions.Add(locationAction); locationAction = new ExitGame(); locationActions.Add(locationAction); returnData.Actions = locationActions; // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = GetArenaDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = GetInnDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = GetConstableOfficeDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); Accomplishment sewerKingAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Sewer King")); if (GameState.Hero.Accomplishments.Contains(sewerKingAccomplishment)) { locationDefinition = WatertownSewer.GetTownInstance().GetSewerEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment banditCaptainAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Bandit Captain")); if (GameState.Hero.Accomplishments.Contains(banditCaptainAccomplishment)) { locationDefinition = WatertownForest.GetTownInstance().GetForestEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment murderRoomAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Bandit Murder")); if (GameState.Hero.Accomplishments.Contains(murderRoomAccomplishment)) { locationDefinition = WatertownBanditHouse.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment banditKingAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Bandit God King")); if (GameState.Hero.Accomplishments.Contains(banditKingAccomplishment)) { locationDefinition = Ankou.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadTownCenter() { Location returnData; LocationAction locationAction; returnData = new Location(); returnData.Name = "Ankou Town Center"; returnData.Description = "Welcome to the cozy Ankou Town Center."; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); locationAction = new DisplayStatsAction(); locationActions.Add(locationAction); locationAction = new DisplayInventoryAction(); locationActions.Add(locationAction); locationAction = new DisplayPotionBagAction(); locationActions.Add(locationAction); locationAction = new DisplayEquippedAction(); locationActions.Add(locationAction); locationAction = new AffixSwapperAction(); locationActions.Add(locationAction); locationAction = new StoreAction(); locationActions.Add(locationAction); locationAction = new MainMenuAction(); locationActions.Add(locationAction); locationAction = new ExitGame(); locationActions.Add(locationAction); returnData.Actions = locationActions; // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = GetArenaDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = GetInnDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = GetConstableOfficeDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); Accomplishment scummyMurdererMission = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Scummy Murderer")); if (GameState.Hero.Accomplishments.Contains(scummyMurdererMission)) { locationDefinition = AnkouMurderShack.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment locateNecroMission = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Locate Necromancers")); if (GameState.Hero.Accomplishments.Contains(locateNecroMission)) { locationDefinition = AnkouForest.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment silenceAriean = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Silence Ariean")); if (GameState.Hero.Accomplishments.Contains(silenceAriean)) { locationDefinition = AnkouArieansEstate.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment killBanditTorturer = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Kill Bandit Torturer")); if (GameState.Hero.Accomplishments.Contains(killBanditTorturer)) { locationDefinition = AnkouSeedyInn.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment investigateTunnels = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Investigate Tunnels")); if (GameState.Hero.Accomplishments.Contains(investigateTunnels)) { locationDefinition = AnkouUndergroundTunnel.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment battleOfAnkou = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Battle of Ankou")); if (GameState.Hero.Accomplishments.Contains(battleOfAnkou)) { locationDefinition = AnkouBattle.GetTownInstance().GetEntranceDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } Accomplishment travelToTower = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Travel to the Tower")); if (GameState.Hero.Accomplishments.Contains(travelToTower)) { locationDefinition = BeachTower.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadRoomSix() { Location returnData; bool defeatedSkeletonKing = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownSewerRight.DEFEATED_SKELETON_KING)); bool openedChest = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownSewerRight.OPENED_SKELETON_KING_CHEST)); Accomplishment forestExplorationAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Explore the Forest")); returnData = new Location(); returnData.Name = "Room of Death"; //Actions if (defeatedSkeletonKing == false) { returnData.Description = "Mud and slime and poopoo. What a nasty place. Bones come from the corners of the room to form the Skeleton King."; // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); List <Mob> skeletons = new List <Mob>(); skeletons.Add(new SkeletonKing()); CombatAction combatAction = new CombatAction("Skeleton King", skeletons); combatAction.PostCombat += SkeletonKingBattle; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedSkeletonKing) { if (openedChest == false) { returnData.Description = "Mud and slime and poopoo. What a nasty place. The Skeleton King rest in pieces on the ground. His unopened chest appears in the middle of the room."; List <LocationAction> locationActions = new List <LocationAction>(); TreasureChestAction itemAction = new TreasureChestAction(3); locationActions.Add(itemAction); itemAction.PostItem += SkeletonKingChest; returnData.Actions = locationActions; } else if (openedChest) { returnData.Description = "Mud and slime and poopoo. What a nasty place. The Skeleton King rest in pieces on the ground. His opened chest sits in the middle of the room."; } } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); // Town Center LocationDefinition locationDefinition = WatertownSewerRight.GetTownInstance().GetRoomFiveDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (GameState.Hero.Accomplishments.Contains(forestExplorationAccomplishment)) { locationDefinition = WatertownForestAfterSewer.GetTownInstance().GetStartingLocationDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } if (defeatedSkeletonKing) { locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadSewerEntranceFinal() { Location returnData; bool defeatedSewerKing = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownSewer.DEFEATED_SEWER_KING)); returnData = new Location(); returnData.Name = "Sewer Entrance Corridor Final"; Accomplishment exploredAccomplishment = Watertown.GetWatertownAccomplishments().Find(x => x.Name.Contains("Defeated Sewer King")); if (defeatedSewerKing) { returnData.Description = "The corridor ends here but the mud and slime and poopoo continues (yuck!)."; //There is a door to the right and left (add back in later) } // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); if (!defeatedSewerKing) { returnData.Description = "The corridor ends here but the mud and slime and poopoo continues (yuck!). The Sewer King stands in the middle of the room"; List <Mob> sewerKing = new List <Mob>(); sewerKing.Add(new SewerKing()); CombatAction combatAction = new CombatAction("Sewer King", sewerKing); combatAction.PostCombat += SewerKingResults; locationActions.Add(combatAction); returnData.Actions = locationActions; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = GetSewerEntranceCorridorDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (GameState.Hero.Accomplishments.Contains(exploredAccomplishment)) { //Sewer Left locationDefinition = WatertownSewerLeft.GetTownInstance().GetStartingLocationDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); //Sewer Right locationDefinition = WatertownSewerRight.GetTownInstance().GetStartingLocationDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } if (defeatedSewerKing) { //Town locationDefinition = Watertown.GetTownInstance().GetTownCenterDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); LocationHandler.SetLocationStateValue(Watertown.LOCATION_STATE_KEY, DEFEATED_SEWER_KING, true); LocationHandler.ResetLocation(Watertown.INN_KEY); // Need to reload Inn so that new conversation can be set. } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }