示例#1
0
        public Location LoadRoomTwo()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Eating Room";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTowerFloorTwo.DEFEATED_ROOM_TWO_GROUP));

            //Actions
            if (!defeatedMobs)
            {
                returnData.Description = "A room filled with tables for eating. There is a group of necromancers and bandits eating";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> mobs = new List <Mob>();
                mobs.Add(new Bandit());
                mobs.Add(new Bandit());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                CombatAction combatAction = new CombatAction("Bandits and Necromancers", mobs);
                combatAction.PostCombat += RoomTwoGroup;

                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 = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomOneDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Room Two
            if (defeatedMobs)
            {
                locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomThreeDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

                locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomFourDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

                locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomFiveDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#2
0
        public static WatertownForestTowerFloorTwo GetTownInstance()
        {
            if (_WaterForestCabin == null)
            {
                _WaterForestCabin = new WatertownForestTowerFloorTwo();
            }

            return(_WaterForestCabin);
        }
示例#3
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);
        }
示例#4
0
        public Location LoadRoomFour()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Guard Room";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTowerFloorTwo.DEFEATED_ROOM_FOUR_BANDITS));

            //Actions
            if (!defeatedMobs)
            {
                returnData.Description = "A guard room. There is a door on the other signed guarded by four very grim men.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> mobs = new List <Mob>();
                mobs.Add(new Guard());
                mobs.Add(new Guard());
                mobs.Add(new Guard());
                mobs.Add(new Guard());
                CombatAction combatAction = new CombatAction("Guards", mobs);
                combatAction.PostCombat += RoomFourGuards;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A guard room with four failures of guards laying dead on the ground";
            }

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

            // The floor below
            LocationDefinition locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomTwoDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Room Two
            if (defeatedMobs)
            {
                locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetGrandRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#5
0
        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);
        }
示例#6
0
        public Location LoadRoomFive()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Necromancer Lounge";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestTowerFloorTwo.DEFEATED_ROOM_FIVE_NECRO));

            //Actions
            if (!defeatedMobs)
            {
                returnData.Description = "A small lounge area for necromancers. There are two necromancers sitting on a couch relaxing.";
                // Location Actions
                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> mobs = new List <Mob>();
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                CombatAction combatAction = new CombatAction("Necromancers", mobs);
                combatAction.PostCombat += RoomFiveNecro;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A small lounge area for necromancers.";
            }

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

            // The floor below
            LocationDefinition locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomTwoDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#7
0
        public Location LoadRoomThree()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Empty Room";
            returnData.Description = "A bare and empty room.";

            //Actions

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

            // The floor below
            LocationDefinition locationDefinition = WatertownForestTowerFloorTwo.GetTownInstance().GetRoomTwoDefinition();

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