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 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 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 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); }