Example #1
0
        public Location LoadSwampyAreaThree()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Swampy Area Three";
            bool defeatedMobs  = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.SWAMPY_AREA_THREE_MOBS));
            bool activateRuins = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.SWAMPY_AREA_ACTIVATE_RUINS));

            if (!activateRuins)
            {
                returnData.Description = "The edge of the swampland. There are giant stones buzzing with dark energy sitting in the middle of a small creek.";

                List <LocationAction> locationActions = new List <LocationAction>();
                TakeItemAction        itemAction      = new TakeItemAction("Activate", "Ruins on Stones", "You activate the ruins on the stones. They light up and then fade to black. A dark whirl forms then spreads, covering the area in darkness. Slowly the darkness fades, leaving behind several shades");
                locationActions.Add(itemAction);
                itemAction.PostItem += ActivateRuins;
                returnData.Actions   = locationActions;
            }
            if (activateRuins && !defeatedMobs)
            {
                returnData.Description = "The edge of the swampland. There are giant stones sitting in the middle of a small creek. Shades float above the stones.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Shade());
                mobs.Add(new Shade());
                mobs.Add(new Shade());
                mobs.Add(new Shade());
                mobs.Add(new Shade());
                mobs.Add(new Shade());
                CombatAction combatAction = new CombatAction("Shades", mobs);
                combatAction.PostCombat += SwampyAreaThreeMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The edge of the swampland. There are giant stones sitting in the middle of a small creek.";
            }
            //returnData.Description = "The edge of the swampland. Shades float menacingly above the ruins";

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

            //Will need a change
            LocationDefinition locationDefinition = BankenSwampland.GetTownInstance().GetSwampyAreaTwoDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = BankenSwampland.GetTownInstance().GetRuinedCastleDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
        public Location LoadRoomThree()
        {
            Location returnData;
            bool     defeatedNecromancers = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, WatertownForestCabin.KILLED_KITCHEN_NECROMANCERS));

            returnData             = new Location();
            returnData.Name        = "Living Room";
            returnData.Description = "There is a pentagram made of blood in the center of the room. Otherwise the living room is bare and empty.";

            //Actions

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

            // Town Center
            LocationDefinition locationDefinition = WatertownForestCabin.GetTownInstance().GetRoomTwoDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
Example #3
0
        public Location LoadStorageRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Storage Room";
            bool tookJournal = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerMysteriousHouse.STORAGE_ROOM_JOURNAL));

            returnData.Description = "A dark and musty storage room. There are several old pieces of parchment and journals lining the shelves";
            string journal = "- An excerpt from the art of necromancy volume II \nAt this point you need to obtain the blood of a young innocent. It's usually assumed that the sacrifice must be a virgin, and while that is true it is not the only criteria that must be met. The sacrifice must be innocent in all regards. Never stolen anything, never killed anyone, a virgin, etc. This ritual generally works better with females, though a male is acceptable in a pinch. Use your discretion while choosing who you will use.";

            if (!tookJournal)
            {
                List <LocationAction> locationActions = new List <LocationAction>();
                ReadPapersAction      parchmentAction = new ReadPapersAction(journal);
                parchmentAction.PostPaper += Journal;
                locationActions.Add(parchmentAction);
                returnData.Actions = locationActions;
            }


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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerMysteriousHouse.GetTownInstance().GetKitchenDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
Example #4
0
        public Location LoadStorage()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Storage";
            bool openedChest = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouUndergroundHideOut.TOOK_STORAGE_TREASURE));

            returnData.Description = "A small room used for storage. There is a treasure chest in against the back wall of the room.";

            //Actions
            if (!openedChest)
            {
                List <LocationAction> locationActions = new List <LocationAction>();
                TreasureChestAction   itemAction      = new TreasureChestAction(2);
                locationActions.Add(itemAction);
                itemAction.PostItem += StorageChest;
                returnData.Actions   = locationActions;
            }

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

            // Town Center
            LocationDefinition locationDefinition = AnkouUndergroundHideOut.GetTownInstance().GetConferenceRoomDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
Example #5
0
        public Location LoadCenterCamp()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "The Camp's Center";
            bool defeatedPirates = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerBeachHead.CENTER_PIRATES));

            //Actions
            if (!defeatedPirates)
            {
                returnData.Description = "In the center of the camp is a clearing with a stone circle in the middle with a fire running in it. There are sevearl pirates mingling about and eating.";

                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> mobs = new List <Mob>();
                mobs.Add(new Pirate());
                mobs.Add(new Pirate());
                mobs.Add(new Pirate());
                mobs.Add(new Pirate());
                mobs.Add(new Pirate());
                mobs.Add(new Pirate());
                mobs.Add(new Pirate());
                mobs.Add(new Pirate());
                CombatAction combatAction = new CombatAction("Pirates", mobs);
                combatAction.PostCombat += CenterPirates;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "In the center of the camp is a clearing with a stone circle in the middle with a fire running in it. There are dead pirate bodies strewn across the ground.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerBeachHead.GetTownInstance().GetNorthTentsDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedPirates)
            {
                locationDefinition = BeachTowerBeachHead.GetTownInstance().GetEastTentsDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

                locationDefinition = BeachTowerBeachHead.GetTownInstance().GetWestTentsDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

                locationDefinition = BeachTowerBeachHead.GetTownInstance().GetSouthTentsDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            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 LoadLockedHouse()
        {
            Location returnData;

            returnData = new Location();
            bool unlockHouse  = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenOldForestRuins.UNLOCK_HOUSE));
            bool escortFamily = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenOldForestRuins.ESCORT_FAMILY));
            bool haveKey      = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenOldForestRuins.TAKE_KEY));

            if (haveKey)
            {
                if (!unlockHouse)
                {
                    returnData.Name        = "Locked House";
                    returnData.Description = "This battered house appears locked with no way in. Try searching for a key somewhere within the ruins.";

                    List <LocationAction> locationActions = new List <LocationAction>();
                    TakeItemAction        itemAction      = new TakeItemAction("Unlock", "House", "You unlock the house");
                    locationActions.Add(itemAction);
                    itemAction.PostItem += UnlockHouse;
                    returnData.Actions   = locationActions;
                }
                else if (!escortFamily)
                {
                    returnData.Name        = "Unlocked House";
                    returnData.Description = "The house has been unlocked. There is a family hiding inside from the bandits. It seems as if they locked themselves in earlier for protection.";

                    List <LocationAction> locationActions = new List <LocationAction>();
                    TakeItemAction        itemAction      = new TakeItemAction("Escort", "Family", "You escort the family out of the house and inform them to head to Banken, so the Rangers can take care of them.");
                    locationActions.Add(itemAction);
                    itemAction.PostItem += EscortFamily;
                    returnData.Actions   = locationActions;
                }
                else
                {
                    returnData.Name        = "Unlocked House";
                    returnData.Description = "This battered house lays barren in the ruins.";
                }
            }
            else
            {
                returnData.Name        = "Locked House";
                returnData.Description = "This battered house appears locked with no way in. Try searching for a key somewhere within the ruins.";
            }

            //ACTIONS:
            // 1) Unlock with key the player recieved from the inn
            // 2) Escort family too safety

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

            LocationDefinition locationDefinition = BankenOldForestRuins.GetTownInstance().GetTownCenterDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
        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);
        }
Example #10
0
        public Location LoadConferenceRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Conference Room";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouUndergroundHideOut.DEFEATED_CONFERENCE_ROOM_MOBS));

            //Actions
            if (!defeatedMobs)
            {
                returnData.Description = "A large conference room with a large round table in the middle of the room. There are several bandits and nobles sitting around it, discussing their strategy for moving forward.";

                List <LocationAction> locationActions = new List <LocationAction>();

                List <Mob> mob = new List <Mob>();
                mob.Add(new Bandit());
                mob.Add(new Noble());
                mob.Add(new Noble());
                mob.Add(new Bandit());
                mob.Add(new Noble());
                mob.Add(new Noble());
                mob.Add(new Bandit());
                mob.Add(new Bandit());
                mob.Add(new Bandit());
                mob.Add(new Noble());
                CombatAction combatAction = new CombatAction("Bandits and Nobles", mob);
                combatAction.PostCombat += ConferenceRoomMobs;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A large conference room with a large round table in the middle of the room. There are several bandits and nobles slaughtered upon the table, whatever strategy they were discussing now worthless.";
            }

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

            // Town Center
            LocationDefinition locationDefinition = AnkouUndergroundHideOut.GetTownInstance().GetSmallPassageWayDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = AnkouUndergroundHideOut.GetTownInstance().GetStorageDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

                locationDefinition = AnkouUndergroundHideOut.GetTownInstance().GetDinningHallDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
Example #11
0
        public Location LoadTwistingPath()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Twisting Path";
            bool moveBoulder  = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenAshenForestWorshipRegion.TWISTING_PATH_ROCK_BLOCKADE));
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenAshenForestWorshipRegion.TWISTING_PATH_SPIDERS));

            if (!moveBoulder)
            {
                returnData.Description = "A narrow twisting path that goes deep within the forest. The air is heavy and the skies dark. There are faint cries in the distance, and mist forms on the ground. There is a boulder blocking your way further.";

                List <LocationAction> locationActions = new List <LocationAction>();
                TakeItemAction        itemAction      = new TakeItemAction("Move", "boulder", "You walk up to the boulder and push with all your might to get it off the path and into the dense trees. It gives way with surprising ease and you topple over to the ground, face first. As you stand back up and wipe dirt from your face, you see giant spiders descending from the trees. This is not good.");
                locationActions.Add(itemAction);
                itemAction.PostItem += MoveBoulder;
                returnData.Actions   = locationActions;
            }
            else if (!defeatedMobs)
            {
                returnData.Description = "A narrow twisting path that goes deep within the forest. The air is heavy and the skies dark. There are faint cries in the distance, and mist forms on the ground. Giant spiders are descending down threateningly toward you.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                CombatAction combatAction = new CombatAction("Giant Spiders", mobs);
                combatAction.PostCombat += TwistingPathSpiders;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A narrow twisting path that goes deep within the forest. The air is heavy and the skies dark. There are faint cries in the distance, and mist forms on the ground. With the spiders dead and boulder moved, the air here feels somewhat lighter. But the menacing presence in the distance grows even darker. It's almost as if the very forest is plotting against you.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BankenAshenForestWorshipRegion.GetTownInstance().GetStatueClearingDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = BankenAshenForestWorshipRegion.GetTownInstance().GetReligiousShrineClearingDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
Example #12
0
        public Location LoadBufferRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Buffer Room";
            bool defeatedBandits = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouBanditShack.DEFEATED_BUFFER_ROOM_BANDITS));

            //Actions
            if (!defeatedBandits)
            {
                returnData.Description = "A small room that separates the kitchen from the holding room. Three bandits are guarding the holding room.";

                List <LocationAction> locationActions = new List <LocationAction>();

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

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A small room that separates the kitchen from the holding room. Three bandits lay vanquished before the door.";
            }

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

            // Town Center
            LocationDefinition locationDefinition = AnkouBanditShack.GetTownInstance().GetKitchenDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedBandits)
            {
                locationDefinition = AnkouBanditShack.GetTownInstance().GetHoldingRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            Accomplishment scoutUndergroundHideout = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Scouted Underground Hideout"));

            if (GameState.Hero.Accomplishments.Contains(scoutUndergroundHideout))
            {
                locationDefinition = AnkouUndergroundHideOut.GetTownInstance().GetEntranceDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
Example #13
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);
        }
Example #14
0
        public Location LoadNorthernPathThree()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Ashen Forest Northern Path Three";
            bool lookForBurialGrounds = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenAshenForest.LOOK_FOR_BURIAL_GROUNDS));

            returnData.Description = "The path leads north, deep into the forest. The air feels at its foulest here. The Ancient Burial Grounds must be near.";

            if (!lookForBurialGrounds)
            {
                List <LocationAction> locationActions = new List <LocationAction>();
                locationActions = new List <LocationAction>();
                TakeItemAction lookActiopn = new TakeItemAction("Look for ", "the Ancient Burial Grounds", "You search desparately for the Ancient Burial Grounds. The darkness closes in around your heart the further north you go. Eventually you stumble upon their location");
                locationActions.Add(lookActiopn);
                lookActiopn.PostItem += LookForBurialGrounds;
                returnData.Actions    = locationActions;
            }

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

            //Town Center
            LocationDefinition locationDefinition = BankenAshenForest.GetTownInstance().GetNorthernPathTwoDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            if (lookForBurialGrounds)
            {
                locationDefinition = BankenAncientBurialGrounds.GetTownInstance().GetEntranceDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            Accomplishment oldForestRuins = Banken.GetBankenAccomplishments().Find(x => x.Name.Contains("Old Forest Ruins"));

            if (GameState.Hero.Accomplishments.Contains(oldForestRuins))
            {
                locationDefinition = BankenOldForestRuins.GetTownInstance().GetEntranceDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            Accomplishment inconspiciousCave = Banken.GetBankenAccomplishments().Find(x => x.Name.Contains("Inconspicious Cave"));

            if (GameState.Hero.Accomplishments.Contains(inconspiciousCave))
            {
                locationDefinition = BankenInconspicousCave.GetTownInstance().GetEntranceDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            locationDefinition = BankenAshenForest.GetTownInstance().GetNorthernPathFourDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
Example #15
0
        public Location LoadDarkMastersOffice()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Dark Master's Office";
            bool   defeatedMobs           = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerMysteriousHouse.DARK_MASTER));
            bool   openedChest            = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerMysteriousHouse.DARK_MASTER_TREASURE));
            string darkMasterSpeechBefore = "''Hello, " + GameState.Hero.Identifier + ". '' A deep voice sounds from behind the hood of the cloack. It lacks all compasion and warmth, and instead feels cold and evil sending chills running down your spine.\n''I have to bring myself to wonder, why have you come here and disturbed the clouds that we enjoy so much? I have lived my life hidden in shadows, and I will not let you change that.''";
            string darkMasterSpeechAfter  = "The Dark Master gasp for breath as his hood falls from his face. You can see that his eyes are a pale red, which were most likely a darker shade of red before the fight you just had. He looks up at you, both hatred and resignation seen in his eyes. He gasp out, ''I didn't want to be involved. He made me. I heard stories about,'' *coughs* ''you. Didn't want to fight. But he made me. Make him pay. Spies in the tower. They can... '' *coughs up blood* ''lead you to him. Go. Make him pay.''";

            if (!defeatedMobs)
            {
                returnData.Description = "The office is lit only by a small lamp sitting on the desk in the center of the room. The flames flicker on the walls, briefly illuminating skeletons hanging from them. The flames show a man in a dark cloak sitting at the desk, his face clouded by the darkness.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new DarkMaster());
                CombatAction combatAction = new CombatAction("Dark Master", mobs, darkMasterSpeechBefore, darkMasterSpeechAfter);
                combatAction.PostCombat += DarkMaster;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The office is lit only by a small lamp sitting on the desk in the center of the room. The flames flicker on the walls, briefly illuminating skeletons hanging from them. The Dark Master's body lays collapsed upon his desk.";
            }

            if (defeatedMobs && !openedChest)
            {
                List <LocationAction> locationActions = new List <LocationAction>();
                TreasureChestAction   itemAction      = new TreasureChestAction(5);
                locationActions.Add(itemAction);
                itemAction.PostItem += DarkMasterChest;
                returnData.Actions   = locationActions;
            }


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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerMysteriousHouse.GetTownInstance().GetKitchenDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);


            if (defeatedMobs)
            {
                locationDefinition = BeachTower.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
Example #16
0
        public Location LoadKitchen()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Kitchen";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerMysteriousHouse.KITCHEN_NECRO));

            if (!defeatedMobs)
            {
                returnData.Description = "The kitchen is dark much like the rest of the house. The air smells a tad better in here due to the smells of fresh cooking food. There are two necromancers moving about the kitchen preparing meals for the rest in the house.";

                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 += KitchenNecro;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The kitchen is dark much like the rest of the house. The air smells a tad better in here due to the smells of fresh cooking food. Two necromancers lay dead on the ground, their blood pouring at your feet.";
            }


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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerMysteriousHouse.GetTownInstance().GetLivingRoomDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);


            if (defeatedMobs)
            {
                locationDefinition = BeachTowerMysteriousHouse.GetTownInstance().GetStorageRoomDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

                locationDefinition = BeachTowerMysteriousHouse.GetTownInstance().GetDarkMastersOfficeDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            Accomplishment report = BeachTower.GetBeachTowerAccomplishments().Find(x => x.Name.Contains("Investigate Report"));

            if (GameState.Hero.Accomplishments.Contains(report))
            {
                locationDefinition = BeachTowerGloomyForest.GetTownInstance().GetEntranceDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

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

            returnData      = new Location();
            returnData.Name = "Eating Area";
            bool defeatedNecros = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouNecromancerCamp.DEFEATED_EATING_AREA_MOBS));

            if (!defeatedNecros)
            {
                returnData.Description = "A large area for the necromancers to eat their meals. There are make shift tables, crudely cut from wood. Also, there are several logs that haven been evened off for seats placed in several places. There are ten necromancers eating in the area.";

                //Actions
                List <LocationAction> locationActions = new List <LocationAction>();

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

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (defeatedNecros)
            {
                returnData.Description = "A large area for the necromancers to eat their meals. There are make shift tables, crudely cut from wood. Also, there are several logs that haven been evened off for seats placed in several places. The necromancers lay dead with their food growing cold due to no one being there to eat it.";
            }

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

            // Town Center
            LocationDefinition locationDefinition = AnkouNecromancerCamp.GetTownInstance().GetCookingAreaDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedNecros)
            {
                locationDefinition = AnkouNecromancerCamp.GetTownInstance().GetNarrowStairsDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

            returnData      = new Location();
            returnData.Name = "Main Road";
            bool defeatedMobs  = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenOldForestRuins.MAIN_ROAD_MOBS));
            bool clearBlockade = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenOldForestRuins.CLEAR_ROAD_BLOCK));


            if (!defeatedMobs)
            {
                returnData.Description = "This is the main run that used to connect the city to the outside world. Now the stones are covered in overgrown moss and several are broken. Bandits walk this road. They have set up a blockade preventing further access to the ruins. Probably to enforce a tarrif on traveling through the ruins.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Bandit());
                mobs.Add(new Bandit());
                mobs.Add(new Bandit());
                CombatAction combatAction = new CombatAction("Bandits", mobs);
                combatAction.PostCombat += MainRoadMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (!clearBlockade)
            {
                returnData.Description = "This is the main run that used to connect the city to the outside world. Now the stones are covered in overgrown moss and several are broken. The road is littered with bandit corpses. They have set up a blockade preventing further access to the ruins. Probably to enforce a tarrif on traveling through the ruins.";

                List <LocationAction> locationActions = new List <LocationAction>();
                TakeItemAction        itemAction      = new TakeItemAction("Clear", "Blockade", "You painstacking clear the blockade that the bandits. Hopefully no one else will fall victim to their evil ways");
                locationActions.Add(itemAction);
                itemAction.PostItem += ClearBlockade;
                returnData.Actions   = locationActions;
            }
            else
            {
                returnData.Description = "This is the main run that used to connect the city to the outside world. Now the stones are covered in overgrown moss and several are broken. The road is littered with bandit corpses. The rocks that blocked the road have been pushed to the side.";
            }

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

            LocationDefinition locationDefinition = BankenOldForestRuins.GetTownInstance().GetEntranceDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs && clearBlockade)
            {
                locationDefinition = BankenOldForestRuins.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
Example #19
0
        public Location LoadLargeRoom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Large Room";
            bool defeatedNecro = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouBanditAndNecroCave.DEFEATED_LARGE_ROOM_NECROS));

            //Actions
            if (!defeatedNecro)
            {
                returnData.Description = "A large room that has ten necromancers mingling about and discussing various things.";

                List <LocationAction> locationActions = new List <LocationAction>();

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

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A large room with ten necromancers slaughtered about the ground.";
            }

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

            // Town Center
            LocationDefinition locationDefinition = AnkouBanditAndNecroCave.GetTownInstance().GetSmallHovelDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedNecro)
            {
                locationDefinition = AnkouBanditAndNecroCave.GetTownInstance().GetDarkRoomDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

            returnData      = new Location();
            returnData.Name = "Scout Leader's Tent";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerScoutingParty.SCOUT_LEADER));
            bool tookTreasure = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerScoutingParty.TREASURE));

            string before = "The Scout Leader looks up from his maps and smiles evily at you. He walks up to you saying, ''Well, well, well. If it isn't, " + GameState.Hero.Identifier + ". You think you're going to stop the invasion? You're a fool, " + GameState.Hero.Identifier + ". There is no way you are going to stop the storm that is to come. Blood will fall in Asku. And there is nothing you can do to stop it.''";
            string after  = "The Scout Leader collapses to the ground, coughing up blood. With his last breath he looks up to you and gasp out, ''You think... This changes things? We sail toward Asku now. The Beach Head will fall first. Then the whole country. Beware the dawn.''";

            if (!defeatedMobs)
            {
                returnData.Description = "The scout leaders tent is located at the eastern edge of the tent cluster. The Scout Leader is inside pouring over maps of Asku.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new ScoutLeader());
                CombatAction combatAction = new CombatAction("Scout Leader", mobs, before, after);
                combatAction.PostCombat += ScoutLeader;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (!tookTreasure)
            {
                returnData.Description = "The scout leaders tent is located at the eastern edge of the tent cluster. The Scout Leader lies dead in the middle of his tent. There is an unopened treasure chest on the side of the tent.";
                List <LocationAction> locationActions = new List <LocationAction>();
                TreasureChestAction   itemAction      = new TreasureChestAction(5);
                locationActions.Add(itemAction);
                itemAction.PostItem += TreasureChest;
                returnData.Actions   = locationActions;
            }
            else
            {
                returnData.Description = "The scout leaders tent is located at the eastern edge of the tent cluster. The Scout Leader lies dead in the middle of his tent.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerScoutingParty.GetTownInstance().GetTentClusterDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = BeachTower.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

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

            returnData      = new Location();
            returnData.Name = "Deserted Ritual Grounds";
            bool   defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenAncientBurialGrounds.ACKHAN));
            bool   tookTreasure = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenAncientBurialGrounds.TREASURE));
            string before       = "You walk into the circular and Ackhan's eyes darken as he fixates on you. He raises his right and and sends a blast of shadow energy straight at you. You dodge and draw your weapon. Prepare to fight!";
            string after        = "Ackhan gasp out, blood splurtting out of his mouth. You draw a hidden dagger and put it up to his throught. You growl down at him, 'Tell me what I want to know and I'll end this quickly for you. Tell me what happened to those rangers?' \nAckhan coughs on his blood and says, 'Gone... tombs... You'll never find them.' \nIn frustration you slice his throat and his dead body crumbles to the ground. There is an explosion of dark energy from the center of his body, sending you flying backwards. You slowly stand up to find his dead body missing and a giant black scorch mark where it used to lay.";

            if (!defeatedMobs)
            {
                returnData.Description = "On the other side of the dense fog is a circular arrea that used to be used as ritual grounds. The grounds have long since been abandoned. However, a new resident has taken up home here and is spewing dark magic into the lands. An evil necromancer, Ackhan, whom is part of the Necromancer Council stands in the middle of the circle chanting in some unknown tongue. Dark wisps leave his body and fly into the forest.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Ackhan());
                CombatAction combatAction = new CombatAction("Ackhan", mobs, before, after);
                combatAction.PostCombat += Ackhan;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (!tookTreasure)
            {
                returnData.Description = "On the other side of the dense fog is a circular arrea that used to be used as ritual grounds. The grounds have long since been abandoned. However, a new resident has taken up home here and is spewing dark magic into the lands. There is a black scorch mark where Ackhan used to be. There is an unopened treasure chest on the edge of the circle.";

                List <LocationAction> locationActions = new List <LocationAction>();
                TreasureChestAction   itemAction      = new TreasureChestAction(5);
                locationActions.Add(itemAction);
                itemAction.PostItem += TreasureChest;
                returnData.Actions   = locationActions;
            }
            else
            {
                returnData.Description = "On the other side of the dense fog is a circular arrea that used to be used as ritual grounds. The grounds have long since been abandoned. There is a black scorch mark where Ackhan used to be.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BankenAncientBurialGrounds.GetTownInstance().GetDenseFogDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = Banken.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

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

            returnData      = new Location();
            returnData.Name = "Dense Woods";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenForestWilderness.DENSE_WOODS_MOBS));

            _collectedWood = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Watertown.LOCATION_STATE_KEY, BankenForestWilderness.COLLECT_WOOD_KEY));
            string action     = "Collect";
            string itemName   = "Wood";
            string actionText = "You chop down several trees to collect wood.";

            List <LocationAction> locationActions = new List <LocationAction>();

            if (!defeatedMobs)
            {
                returnData.Description = "The trees just off the path are very dense and could be used to collect wood...\nThere are several spiders roaming about the trees.";

                List <Mob> mobs = new List <Mob>();
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                mobs.Add(new GiantSpider());
                CombatAction combatAction = new CombatAction("Giant Spiders", mobs);
                combatAction.PostCombat += DenseWoodMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The trees just off the path are very dense and could be used to collect wood...";
            }

            // Location Actions

            if (!_collectedWood && defeatedMobs)
            {
                TakeItemAction itemAction = new TakeItemAction(action, itemName, actionText);
                locationActions.Add(itemAction);
                itemAction.PostItem += WoodResults;
                returnData.Actions   = locationActions;
            }

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

            //Town Center
            LocationDefinition locationDefinition = BankenForestWilderness.GetTownInstance().GetTrecherousPathTwoDefinintion();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

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

            returnData      = new Location();
            returnData.Name = "Narrow Creek";
            bool   defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenAshenForestRangerPaths.GIANT_SHADOW_DEMON));
            bool   tookTreasure = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenAshenForestRangerPaths.TREASURE_CHEST));
            string before       = "You walk onto the island and the Giant Shadow Demon fixes its gaze upon you. Dread seeps into your body as you clench you weapon tighter, ready for whatever horror you're about to face.";
            string after        = "The shadows seep quickly away from the demon. You walk up to it and ask, 'Where are the rangers? What did you do with them?' \nThe Giant Shadow Demon fixes you with a cold and hateful stare and growls, 'Puppets for my master.' You raise your weapon to strike in anger but the demon slips into the void before you can land a strike.";

            if (!defeatedMobs)
            {
                returnData.Description = "A tiny island resides in the forest. The trees have lost all leaves and the bark is blackened as if burnt. The ground is void of grass and is instead blackened as if scorched. Hovering in the middle of the island is a giant shadow demon. He must be behind the corruption of this part of the forest.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new GiantShadowDemon());
                CombatAction combatAction = new CombatAction("Giant Shadow Demon", mobs, before, after);
                combatAction.PostCombat += TinyIslandGiantShadowDemon;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (!tookTreasure)
            {
                returnData.Description = "There is a narrow creek separating the forest paths from a tiny island. The Water Spirits have been laid to rest and the creek is once again peaceful. There is a treasure chest in the middle of the island";

                List <LocationAction> locationActions = new List <LocationAction>();
                TreasureChestAction   itemAction      = new TreasureChestAction(5);
                locationActions.Add(itemAction);
                itemAction.PostItem += TreasureChest;
                returnData.Actions   = locationActions;
            }
            else
            {
                returnData.Description = "There is a narrow creek separating the forest paths from a tiny island. The Water Spirits have been laid to rest and the creek is once again peaceful.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BankenAshenForestRangerPaths.GetTownInstance().GetNarrowCreekDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs && tookTreasure)
            {
                locationDefinition = Banken.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

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

            returnData      = new Location();
            returnData.Name = "House District";
            bool defeatedMobs   = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerCapturedVillage.HOUSE_DISTRICT_MOBS));
            bool freedVillagers = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerCapturedVillage.HOUSE_DISTRICT_VILLAGERS));

            if (!defeatedMobs)
            {
                returnData.Description = "The house district showcases the true nature of the locals. The houses are all large but simple, reflecting their life style philosophy. Bandits are rounding up some of the villagers and tying them to a wooden post to burn alive.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Bandit());
                mobs.Add(new Bandit());
                mobs.Add(new Bandit());
                mobs.Add(new Bandit());
                mobs.Add(new Bandit());
                CombatAction combatAction = new CombatAction("Bandits", mobs);
                combatAction.PostCombat += HouseDistrictMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (defeatedMobs && !freedVillagers)
            {
                returnData.Description = "The house district showcases the true nature of the locals. The houses are all large but simple, reflecting their life style philosophy. There are a lot of villagers tied up to a post.";
                List <LocationAction> locationActions = new List <LocationAction>();
                TakeItemAction        itemAction      = new TakeItemAction("Free", "Villagers", "You free the villagers, and inform them to head to the Beach Tower so they can seek medical attention. They thank you and run off in the distance.");
                itemAction.PostItem += HouseDistrictVillagers;
                locationActions.Add(itemAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The house district showcases the true nature of the locals. The houses are all large but simple, reflecting their life style philosophy.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerCapturedVillage.GetTownInstance().GetTownCenterDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            //Player must defeat bandits and free villagers to advance
            locationDefinition = BeachTowerCapturedVillage.GetTownInstance().GetMayorsHouseDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
Example #25
0
        public Location LoadBedroom()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Bedroom";
            bool   defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenMagesRetreatHouse.PSYCHOTIC_BANDIT));
            bool   tookTreasure = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenMagesRetreatHouse.TREASURE));
            string before       = "The Psychotic Bandit hears your foot steps and spins around, a crazed look gleaming in his eyes. \nHe laughs hysterically and says, ''Hah! You're too late! We've already captured that puny mage. She fought  but she could not withstand us!''";
            string after        = "You put a knife up to the Psychotic Bandit's throat and growl out, ''Where is the mage? Where is she?''\nHe laughs and coughs up blood. He looks you in the eyes and replies, ''In hell.'' \nThe Psychotic Bandit coughs up blood one last time and then goes limp on the floor";

            List <LocationAction> locationActions = new List <LocationAction>();

            if (!defeatedMobs)
            {
                returnData.Description = "A small bedroom with a bed against the back wall and a desk against a side wall. A Pyschotic Bandit is going through the mage's desk and is throwing papers about everywhere.";

                List <Mob> mobs = new List <Mob>();
                mobs.Add(new PsychoticBandit());
                CombatAction combatAction = new CombatAction("Pyschotic Bandit", mobs, before, after);
                combatAction.PostCombat += PsychoticBandit;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (!tookTreasure)
            {
                returnData.Description = "A small bedroom with a bed against the back wall and a desk against a side wall. A treasue chest is sitting under the mage's desk.";
                TreasureChestAction itemAction = new TreasureChestAction(5);
                locationActions.Add(itemAction);
                itemAction.PostItem += TreasureChest;
                returnData.Actions   = locationActions;
            }
            else
            {
                returnData.Description = "A small bedroom with a bed against the back wall and a desk against a side wall.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BankenMagesRetreatHouse.GetTownInstance().GetLivingRoomDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = Banken.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

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

            returnData      = new Location();
            returnData.Name = "Ornate Room";
            bool   defeatedMobs          = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerSpies.SPY_MASTER));
            bool   openedChest           = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerSpies.SPY_MASTER_TREASURE));
            string spyMasterSpeechBefore = "''So, " + GameState.Hero.Identifier + "... You have come at last. I must admit, I was curious how long it would take for my little operation here to become compromised. Though this was a little sooner than expected. No matter, I will deal with you and can make my escape then before those idiot guards realize anything has gone wrong. Yes, that should do it. Any last words?'' \nWithout waiting for a reply for a reply he swiftly draws two swords and lunges at you. You narrowly dodge the attack and brace yourself for a fight.";
            string spyMasterSpeechAfter  = "You stand over the Spy Master as the life force leaves his body. He looks up at you and says, ''You'll... pay... you... bastard. This... is... not... the... end... My... masters... have... plans. A... darkness... rises... in... the... east.'' He gasp out the last word and then chokes on the air as he struggles to breathe. After a few seconds he succumbs to his wounds and departs this life.";

            if (!defeatedMobs)
            {
                returnData.Description = "A large ornate room furnished with the best that nobles could afford when they commissioned the building of the tower. A spy master is pacing back and forth in the middle of it, his forhead creased in concentration.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new SpyMaster());
                CombatAction combatAction = new CombatAction("Spy Master", mobs, spyMasterSpeechBefore, spyMasterSpeechAfter);
                combatAction.PostCombat += SpyMaster;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A large ornate room furnished with the best that nobles could afford when they commissioned the building of the tower. The spy master lies dead in the center of it.";
            }

            if (defeatedMobs && !openedChest)
            {
                List <LocationAction> locationActions = new List <LocationAction>();
                TreasureChestAction   itemAction      = new TreasureChestAction(5);
                locationActions.Add(itemAction);
                itemAction.PostItem += SpyMasterChest;
                returnData.Actions   = locationActions;
            }

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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerSpies.GetTownInstance().GetHallwayDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = BeachTower.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
        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 LoadTentCluster()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Tent Cluster";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerScoutingParty.TENT_CLUSTER_MOBS));

            if (!defeatedMobs)
            {
                returnData.Description = "The main group of tents is loosely clustered together. There are scouts mingling about, preparing for whatever activity they have planned.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                mobs.Add(new Scout());
                CombatAction combatAction = new CombatAction("Scouts", mobs);
                combatAction.PostCombat += TentClusterMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The main group of tents is loosely clustered together. There are dead scouts all over the camp.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerScoutingParty.GetTownInstance().GetTentEntranceDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = BeachTowerScoutingParty.GetTownInstance().GetScoutLeaderTentDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
Example #29
0
        public Location LoadNecroLivingArea()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Necromancer Living Area";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerHiddenCamp.NECRO_AREA_MOBS));

            if (!defeatedMobs)
            {
                returnData.Description = "This part of the camp is densly populated with tents. There are necromancers wondering about, preparing for whatever nefarious activities they have planned.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                mobs.Add(new Necromancer());
                CombatAction combatAction = new CombatAction("Necromancer", mobs);
                combatAction.PostCombat += NecroAreaMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "This part of the camp is densly populated with tents. The necromancers lay dead with their remains splattered against the tents they used to call home. You feel better knowing you rid the world of whatever evil they were planning to commit.";
            }

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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerHiddenCamp.GetTownInstance().GetCooksTentsDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = BeachTowerHiddenCamp.GetTownInstance().GetLargeClearingDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

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

            returnData      = new Location();
            returnData.Name = "Pirate Fleet Master's Ship";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerPirateShips.FLEET_MASTER));
            bool openedChest  = Convert.ToBoolean(LocationHandler.GetLocationStateValue(BeachTower.LOCATION_STATE_KEY, BeachTowerPirateShips.FLEET_MASTER_CHEST));

            if (!defeatedMobs)
            {
                returnData.Description = "A large ship belonging to the pirate fleet master. He is standing at the bridge of the ship with one hand on the wheel, observing the shore.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new PirateFleetMaster());
                CombatAction combatAction = new CombatAction("Pirate Fleet Master", mobs);
                combatAction.PostCombat += FleetMaster;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A large ship belonging to the pirate fleet master. He is standing in the middle of the ship, dead as the victims of Davy Jones.";
            }

            if (defeatedMobs && !openedChest)
            {
                List <LocationAction> locationActions = new List <LocationAction>();
                TreasureChestAction   itemAction      = new TreasureChestAction(5);
                locationActions.Add(itemAction);
                itemAction.PostItem += FleetMasterChest;
                returnData.Actions   = locationActions;
            }


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

            //Town Center
            LocationDefinition locationDefinition = BeachTowerPirateShips.GetTownInstance().GetShipFourDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedMobs)
            {
                locationDefinition = BeachTower.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }