public Location LoadTowerEntrance()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Bandit Tower Entrance";
            returnData.Description = "A room lined with skulls along the wall.";

            //Actions

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Clearing on the outside of this tower.
            LocationDefinition locationDefinition = WatertownForestClearingBeforeTower.GetTownInstance().GetClearingDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Large Hall
            locationDefinition = WatertownForestTower.GetTownInstance().GetLargeHallDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
Beispiel #2
0
        public Location LoadTowerFloorTwoEntrance()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Bandit Tower Floor Two Entrance";
            bool defeatedSkeletons = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTowerFloorTwo.DEFEATED_ENTRANCE_SKELETONS));

            //Actions
            if (!defeatedSkeletons)
            {
                returnData.Description = "A room with dead bodies strewn about the floor and skeletons wondering around";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> skeletons = new List <Mob>();
                skeletons.Add(new Skeleton());
                skeletons.Add(new Skeleton());
                skeletons.Add(new Skeleton());
                skeletons.Add(new Skeleton());
                skeletons.Add(new Skeleton());
                CombatAction combatAction = new CombatAction("Skeletons", skeletons);
                combatAction.PostCombat += EntranceSkeletons;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A room with dead bodies strewn about the floor.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The floor below
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetLargeHallDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Room One
            if (defeatedSkeletons)
            {
                locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomOneDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadEastWingRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "East Wing Room";
            bool defeatedOutlaws = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_EAST_WING_OUTLAWS));

            if (!defeatedOutlaws)
            {
                returnData.Description = "A small room with four crazed outlaws running around within";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> crazedOutlaws = new List <Mob>();
                crazedOutlaws.Add(new CrazedOutlaw());
                crazedOutlaws.Add(new CrazedOutlaw());
                crazedOutlaws.Add(new CrazedOutlaw());
                crazedOutlaws.Add(new CrazedOutlaw());
                CombatAction combatAction = new CombatAction("Crazed Outlaws", crazedOutlaws);
                combatAction.PostCombat += EastWingCrazedOutlaws;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A small room overcrowded by the dead outlaw bodies on the floor.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Large Hall
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetLargeHallDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Bandit Study here
            if (defeatedOutlaws)
            {
                locationDefinition = WatertownForestTower.GetTownInstance().GetCushionedRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadWestWingRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "West Wing Room";
            bool defeatedSkeletons = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_WEST_WING_ROOM_SKELETONS));

            if (!defeatedSkeletons)
            {
                returnData.Description = "A medium sized room with three skeletons wondering about it.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> skeletons = new List <Mob>();
                skeletons.Add(new Skeleton());
                skeletons.Add(new Skeleton());
                skeletons.Add(new Skeleton());
                CombatAction combatAction = new CombatAction("Skeletons", skeletons);
                combatAction.PostCombat += WestWingSkeletons;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The hall is now empty except for the bandit bodies strewn across it.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Clearing on the outside of this tower.
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetLargeHallDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Large Room here
            if (defeatedSkeletons)
            {
                locationDefinition = WatertownForestTower.GetTownInstance().GetLargeRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadCenterWingRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Center Wing Room";
            bool defeatedBandits = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_CENTER_WING_BANDITS));

            if (!defeatedBandits)
            {
                returnData.Description = "A medium sized room with two bandits roaming about it";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> bandits = new List <Mob>();
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                CombatAction combatAction = new CombatAction("Bandits", bandits);
                combatAction.PostCombat += CenterWingBandits;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A medium sized room with two dead bandit bodies strewn across the floor.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Large Hall
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetLargeHallDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Bandit Study here
            if (defeatedBandits)
            {
                locationDefinition = WatertownForestTower.GetTownInstance().GetBanditStudyDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadCushionedRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Cushioned Room";
            bool defeatedCrazedOutlawLeader = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_CRAZED_OUTLAW_LEADER));

            if (!defeatedCrazedOutlawLeader)
            {
                returnData.Description = "A small room that's completely cushioned. There is a man jumping around laughing with a crazed look inside.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> crazedOutlawLeasder = new List <Mob>();
                crazedOutlawLeasder.Add(new CrazedOutlawLeader());
                CombatAction combatAction = new CombatAction("Crazed Outlaw Leader", crazedOutlawLeasder);
                combatAction.PostCombat += CrazedOutlawLeader;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A small room that's completely cushioned.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Clearing on the outside of this tower.
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetEastWingRoomDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadBanditStudy()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Large Room";
            bool defeatedBanditScholar = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_BANDIT_SCHOLAR));

            if (!defeatedBanditScholar)
            {
                returnData.Description = "A small room lined with bookshelves and a desk overflowing with parchments. A scholar is sitting in a chair pouring over various documents.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> banditScholar = new List <Mob>();
                banditScholar.Add(new BanditScholar());
                CombatAction combatAction = new CombatAction("Bandit Scholar", banditScholar);
                combatAction.PostCombat += BanditScholar;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A small room lined with bookshelves and a desk overflowing with parchments.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Clearing on the outside of this tower.
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetCenterWingRoomDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadLargeRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Large Room";
            bool defeatedNecroEnvoy = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_NECRO_ENVOY));

            if (!defeatedNecroEnvoy)
            {
                returnData.Description = "A large room with the necromancer's envoy standing in the middle of it.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> necroEnvoy = new List <Mob>();
                necroEnvoy.Add(new NecroEnvoy());
                CombatAction combatAction = new CombatAction("Necromancer Envoy", necroEnvoy);
                combatAction.PostCombat += NecroEnvoy;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The room is blackened with dark magic from some great struggle.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Clearing on the outside of this tower.
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetWestWingRoomDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadLargeHall()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Large Hall";
            bool defeatedBanditsOne         = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_LARGE_HALL_BANDITS_ONE));
            bool defeatedBanditsTwo         = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_LARGE_HALL_BANDITS_TWO));
            bool defeatedNecroEnvoy         = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_NECRO_ENVOY));
            bool defeatedBanditScholar      = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_BANDIT_SCHOLAR));
            bool defeatedCrazedOutlawLeader = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTower.DEFEATED_CRAZED_OUTLAW_LEADER));

            if (!defeatedBanditsOne)
            {
                returnData.Description = "A large hall with two groups of bandits wondering about.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> bandits = new List <Mob>();
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                CombatAction combatAction = new CombatAction("Bandits", bandits);
                combatAction.PostCombat += LargeHallBanditsOne;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (!defeatedBanditsTwo && defeatedBanditsOne)
            {
                returnData.Description = "A large hall with one group of bandits wondering about.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> bandits = new List <Mob>();
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                CombatAction combatAction = new CombatAction("Bandits", bandits);
                combatAction.PostCombat += LargeHallBanditsTwo;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (defeatedBanditsTwo && defeatedBanditsOne)
            {
                returnData.Description = "The hall is now empty except for the bandit bodies strewn across it.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // The Clearing on the outside of this tower.
            LocationDefinition locationDefinition = WatertownForestTower.GetTownInstance().GetEntranceDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Different wings here
            if (defeatedBanditsOne && defeatedBanditsTwo)
            {
                //West Wing
                locationDefinition = WatertownForestTower.GetTownInstance().GetWestWingRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

                //Center Wing
                locationDefinition = WatertownForestTower.GetTownInstance().GetCenterWingRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

                //East Wing
                locationDefinition = WatertownForestTower.GetTownInstance().GetEastWingRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            if (defeatedBanditScholar && defeatedCrazedOutlawLeader && defeatedNecroEnvoy)
            {
                //Floor two
                locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetEntranceDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            //Floor Two Entrance here.... Need to also check to make sure the player has all of the keys


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
        public Location LoadClearing()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Large Circular Clearing";
            bool defeatedBanditsOne = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestClearingBeforeTower.DEFEATED_CLEARING_SKELETONS_GROUP_ONE));
            bool defeatedBanditsTwo = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestClearingBeforeTower.DEFEATED_CLEARING_SKELETONS_GROUP_TWO));

            //Actions

            if (!defeatedBanditsOne)
            {
                returnData.Description = "The clearing is rather large with two groups of bandits roaming about. There is a tower in the middle of the clearing.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> bandits = new List <Mob>();
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                CombatAction combatAction = new CombatAction("Bandits", bandits);
                combatAction.PostCombat += ClearingBanditsOne;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (!defeatedBanditsTwo && defeatedBanditsOne)
            {
                returnData.Description = "The clearing is rather large with one group of bandits roaming about. There is a tower in the middle of the clearing.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> bandits = new List <Mob>();
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                bandits.Add(new Bandit());
                CombatAction combatAction = new CombatAction("Bandits", bandits);
                combatAction.PostCombat += ClearingBanditsTwo;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (defeatedBanditsTwo && defeatedBanditsOne)
            {
                returnData.Description = "The clearing is rather large with several dead bodies of bandits strewn across the ground. There is a tower in the middle of the clearing.";
            }

            // Adjacent Locations
            Dictionary <string, LocationDefinition> adjacentLocationDefinitions = new Dictionary <string, LocationDefinition>();

            // Town Center
            LocationDefinition locationDefinition = WatertownForestClearingBeforeTower.GetTownInstance().GetEntranceDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Add the tower here
            if (defeatedBanditsTwo && defeatedBanditsOne)
            {
                locationDefinition = WatertownForestTower.GetTownInstance().GetEntranceDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }