public Location LoadStorageRoom() { Location returnData; returnData = new Location(); returnData.Name = "Storage Room"; returnData.Description = "A small room full of boxes and loose supplies."; string itemName = "Rope"; _takeRope = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.TAKE_ROPE_KEY)); // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); if (!_takeRope) { TakeItemAction itemAction = new TakeItemAction(itemName); locationActions.Add(itemAction); itemAction.PostItem += RopeResults; returnData.Actions = locationActions; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetJailCellDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadBanditHideOut() { Location returnData; returnData = new Location(); returnData.Name = "Hideout"; string itemName = "Wood"; _takeWood = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.TAKE_WOOD_KEY)); bool defeatedBandits = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.DEFEATED_HIDEOUT_BANDITS_KEY)); // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); if (!defeatedBandits) { returnData.Description = "A small room with four bandits sitting at a table."; List <Mob> bandits = new List <Mob>(); bandits.Add(new Bandit()); bandits.Add(new Bandit()); bandits.Add(new Bandit()); bandits.Add(new Bandit()); CombatAction combatAction = new CombatAction("Bandits", bandits); combatAction.PostCombat += HideoutBanditResults; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedBandits) { returnData.Description = "A small room with a empty table. Bandits lay dead on the ground."; if (!_takeWood) { TakeItemAction itemAction = new TakeItemAction(itemName); locationActions.Add(itemAction); itemAction.PostItem += WoodResult; returnData.Actions = locationActions; } } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetJailCellDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (defeatedBandits) { locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetHallwayDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public static WatertownBanditCaveDeeper GetTownInstance() { if (_WatertownBanditCaveDeeper == null) { _WatertownBanditCaveDeeper = new WatertownBanditCaveDeeper(); } return(_WatertownBanditCaveDeeper); }
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 LoadFoodRoom() { Location returnData; returnData = new Location(); returnData.Name = "Food Room"; string itemName = "Saw"; _takeSaw = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.TAKE_SAW_KEY)); bool defeatedBandits = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.DEFEATED_BANDIT_SUPPLY_CAPTAIN_KEY)); // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); if (!defeatedBandits) { returnData.Description = "A large room filled with boxes of food. A bandit in elaborate clothes is inspecting the boxes."; List <Mob> supplyCaptain = new List <Mob>(); supplyCaptain.Add(new BanditSupplyCaptain()); CombatAction combatAction = new CombatAction("Bandit Supply Captain", supplyCaptain); combatAction.PostCombat += SupplyCaptainResult; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedBandits) { returnData.Description = "A large room filled with boxes of food. The bandit supply captain's body lays pushed against a corner of the room."; if (!_takeSaw) { TakeItemAction itemAction = new TakeItemAction(itemName); locationActions.Add(itemAction); itemAction.PostItem += SawResult; returnData.Actions = locationActions; } } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetHallwayDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadHallway() { Location returnData; returnData = new Location(); returnData.Name = "Hallway"; bool defeatedBandits = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.DEFEATED_HALLWAY_BANDITS_KEY)); // Location Actions List <LocationAction> locationActions = new List <LocationAction>(); if (!defeatedBandits) { returnData.Description = "A narrow hallway with bandits walking down from the supply room"; List <Mob> bandits = new List <Mob>(); bandits.Add(new Bandit()); bandits.Add(new Bandit()); CombatAction combatAction = new CombatAction("Bandits", bandits); combatAction.PostCombat += HallwayBanditResults; locationActions.Add(combatAction); returnData.Actions = locationActions; } if (defeatedBandits) { returnData.Description = "A narrow hallway. Two bandits lay slaughtered on the ground."; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetHideoutDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (defeatedBandits) { locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetFoodRoomDefiniton(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }
public Location LoadJailCell() { Location returnData; returnData = new Location(); returnData.Name = "Jail Cell"; returnData.Description = "A small and dirty jail cell. It stinks of decaying flesh. And something horrid and rotten."; bool ladder = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownBanditCaveDeeper.BUILD_LADDER_KEY)); if (_takeRope && _takeSaw && _takeWood && !ladder) { List <LocationAction> locationActions = new List <LocationAction>(); TakeItemAction itemAction = new TakeItemAction("Build Ladder"); locationActions.Add(itemAction); itemAction.PostItem += LadderResult; returnData.Actions = locationActions; } // Adjacent Locations Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>(); LocationDefinition locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetStorageRoomDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetHideoutDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); if (ladder) { locationDefinition = WatertownBanditCaveDeeper.GetTownInstance().GetStartingLocationDefinition(); adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition); } returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions; return(returnData); }