private void Configuring()
        {
            Receive <SetupComplete>(msg => Become(Filesystem));

            Receive <CreateTestFolder>(msg =>
            {
                var location = new LocationDefinition(msg.Path);
                var root     = this.drives.GetOrAdd(location.Drive, name => new Folder(name));
                root.CreateFolder(location.Folders);
            });

            Receive <CreateTestFile>(msg =>
            {
                var location = new LocationDefinition(msg.Path);
                var root     = this.drives.GetOrAdd(location.Drive, name => new Folder(name));
                root.CreateFile(location.Folders, location.Filename);
            });

            Receive <LockTestFile>(msg =>
            {
            });

            Receive <UnlockTestFile>(msg =>
            {
            });
        }
        public Location LoadNecroCampHiddenEntrance()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Necromancer's Camp Hidden Entrance";
            returnData.Description = "This entrance was hidden by bushes. There are several skulls on pikes placed as a warning to any that stumble upon the entrance accidentally.";

            //Actions

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

            // Town Center
            LocationDefinition locationDefinition = AnkouForest.GetTownInstance().GetLeftThreeDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouNecromancerCamp.GetTownInstance().GetTentClusterDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#3
0
        public Location LoadEntrance()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Underground Hideout";
            returnData.Description = "A small trap door opens to an underground hideout. The entrance to the hideout feels like an underground cave, with everything dirt. There are torches lining the walls to give light to the entrance.";

            //Actions

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#4
0
        public Location LoadEasternForestEdge()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Ashen Forest Eastern Forest Edge";
            returnData.Description = "The Ashen Forest has ended. There are mountains a little further East. The road continues on, leading through the mountains toward Asku's east coast.";

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            Accomplishment banditCamp = Banken.GetBankenAccomplishments().Find(x => x.Name.Contains("Bandit Camp"));

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

            returnData             = new Location();
            returnData.Name        = "Ankou Forest Straight Path Four";
            returnData.Description = "The long path of the forest continues. Light does not penetrate the trees here, the darkness is all encompassing, and the air is crushing.";

            //Actions

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

            LocationDefinition locationDefinition = AnkouForest.GetTownInstance().GetStraightThreeDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            Accomplishment rescuePeasants = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Rescue Peasants"));

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

            locationDefinition = AnkouForest.GetTownInstance().GetStraightFiveDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

            returnData             = new Location();
            returnData.Name        = "Beach Side Village";
            returnData.Description = "A small village located a few miles to the south of the Beach Tower. The village is overrun with bandits who have set several of the buildings ablaze. The smoke rises into the air and can be seen for miles off.";

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = BeachTowerCapturedVillage.GetTownInstance().GetTownCenterDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            Accomplishment trackBandit = BeachTower.GetBeachTowerAccomplishments().Find(x => x.Name.Contains("Tracked Down Masked Bandit"));

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#8
0
        public Location LoadNorthernForestEdge()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Ashen Forest Northern Forest Edge";
            returnData.Description = "The Northen Edge of the Ashen Forest. The air is light and clean, far away from ancient evils now.";

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            Accomplishment swampland = Banken.GetBankenAccomplishments().Find(x => x.Name.Contains("Swampland"));

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#9
0
        public Location LoadStairs()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Stairs";
            returnData.Description = "A small narrow stair case. There are individual stairs that are either missing or that have holes in them.";

            //Actions

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouSeedyInn.GetTownInstance().GetBasementLandingDefinition();
            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);
        }
示例#11
0
        // TODO: Probably should change the design of the GetTownCenter, etc..
        // to public Get properties as this is exactly how they are operating.
        public LocationDefinition GetTownCenterDefinition()
        {
            LocationDefinition returnData  = new LocationDefinition();
            string             locationKey = TOWN_CENTER_KEY;

            if (LocationHandler.LocationExists(locationKey))
            {
                returnData = LocationHandler.GetLocation(locationKey);
            }
            else
            {
                returnData.LocationKey    = locationKey;
                returnData.Name           = "Beach Tower Main Floor";
                returnData.DoLoadLocation = LoadTownCenter;

                LocationHandler.AddLocation(returnData);
            }

            if (GameState.Hero.startingLocation != "Beach Tower")
            {
                GameState.Hero.startingLocation = "Beach Tower";
                LocationHandler.ResetLocation(TOWN_CENTER_KEY);
            }

            return(returnData);
        }
示例#12
0
        public Location LoadRightThree()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Ankou Forest Right Path Three";
            returnData.Description = "The long path of the forest ends here. There are rocks placed on the path to prevent further travel in this direction. Light does not penetrate the trees here, the darkness is all ecompassing, and the air is crushing.";

            //Actions

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

            // Town Center
            LocationDefinition locationDefinition = AnkouForest.GetTownInstance().GetRightTwoDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            Accomplishment killNecroContractor = Ankou.GetAnkouAccomplishments().Find(x => x.Name.Contains("Kill Necromancer Contractor"));

            if (GameState.Hero.Accomplishments.Contains(killNecroContractor))
            {
                locationDefinition = AnkouBanditAndNecroCave.GetTownInstance().GetStartingLocationDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#13
0
        public Location LoadMurderShackEntrance()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Murderer's Shack";
            returnData.Description = "The room appears as if it is falling aprt. The walls are coming undone and there are giant holes in the ceiling.";

            //Actions

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouMurderShack.GetTownInstance().GetStorageRoomDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#14
0
        public Location LoadConstableOffice()
        {
            Location returnData;


            returnData             = new Location();
            returnData.Name        = "Constable Office";
            returnData.Description = "A stuffed and busy office of the town's finest.";

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

            //Adding rumors from constable in the Constable Office
            LocationAction constableLocationAction = new RumorAction("Krea - Head Investigator", this.ConstableRumors);

            locationActions.Add(constableLocationAction);

            returnData.Actions = locationActions;

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

            LocationDefinition locationDefinition = GetTownCenterDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            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);
        }
示例#16
0
        public Location LoadSmallHallway()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Small Hallway";
            returnData.Description = "A small hallway in the bottom of the catacomb. There are rooms to the right and left filled with tombs.";

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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = BeachTowerCatacomb.GetTownInstance().GetLeftTombsDefinition();
            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = BeachTowerCatacomb.GetTownInstance().GetRightTombsDefinition();
            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);


            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
示例#17
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);
        }
示例#18
0
        public Location LoadLeftThree()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Ankou Forest Left Path Three";
            returnData.Description = "The long path of the forest ends here. There are fallen trees blocking the path. To the side, there are bushes that seems to be blocking a dirt road. Light does not penetrate the trees here, the darkness is all encompassing, and the air is crushing.";

            //Actions

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

            LocationDefinition locationDefinition = AnkouForest.GetTownInstance().GetLeftTwoDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouNecromancerCamp.GetTownInstance().GetEntranceDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#19
0
        public Location LoadCaptainOffice()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Captain's Office";
            returnData.Description = "A small cramped office on the top floor of the tower. The walls are lined with maps that have several markings on them and what looks like troop movements documented. Several areas surrounding the tower are circled in different colors.";

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

            //Adding rumors from Captain in the Captain Office
            LocationAction CaptainRumorAction = new RumorAction("Mike - Captain of the Guard", this.CaptainRumors);

            locationActions.Add(CaptainRumorAction);
            returnData.Actions = locationActions;

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#20
0
        public Location LoadRightTwo()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Ankou Forest Right Path Two";
            returnData.Description = "The long path of the forest continues. There is now a three way fork in the road. The road splits to the Right, right, and continues on Right. Light does not penetrate the trees here, the darkness is all ecompassing, and the air is crushing.";

            //Actions

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

            LocationDefinition locationDefinition = AnkouForest.GetTownInstance().GetRightOneDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouForest.GetTownInstance().GetRightThreeDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#21
0
        public Location LoadArena()
        {
            Location       returnData;
            LocationAction locationAction;

            returnData             = new Location();
            returnData.Name        = "Beach Tower Arena";
            returnData.Description = "Prepare to Die!";

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

            locationAction = new ArenaAction();
            locationActions.Add(locationAction);

            returnData.Actions = locationActions;

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

            LocationDefinition locationDefinition = GetTownCenterDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#22
0
        public Location LoadStraightOne()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Ankou Forest Straight Path One";
            returnData.Description = "The long path of the forest continues. Light does not penetrate the trees here, the darkness is all encompassing, and the air is crushing.";

            //Actions

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouForest.GetTownInstance().GetStraightTwoDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#23
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);
        }
示例#24
0
        public Location LoadEntrance()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Seedy Inn";
            returnData.Description = "A run down dirty inn used by the scum of society for black market trade and backdoor dealings. The place gives off a very bad vibe and is avoided by decent people. The entrance is falling apart and smells of old dried blood.";

            //Actions

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouSeedyInn.GetTownInstance().GetLoungingRoomDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

            returnData             = new Location();
            returnData.Name        = "Narrow Stairs";
            returnData.Description = "A long, but narrow stone stair set leading up to a clearing with a very large tent at the back of it. The stairs are lined with skulls on both borders of the stairs.";

            //Actions

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouNecromancerCamp.GetTownInstance().GetLargeClearingDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#26
0
        public override LocationDefinition DoAction()
        {
            LocationDefinition returnData = GameState.CurrentLocation;

            this.ClearScreen(false);

            if (GameState.Hero.gold < GameState.Hero.maxGold)
            {
                GameState.Hero.gold += this._gold;
                if (GameState.Hero.gold > GameState.Hero.maxGold)
                {
                    GameState.Hero.gold = GameState.Hero.maxGold;
                }
            }

            Console.WriteLine("You take {0} gold and now have {1} gold.", this._gold, GameState.Hero.gold);

            _GoldResults = PickUpGoldResults.Taken;

            PickUpGoldEventArgs goldEventArgs = new PickUpGoldEventArgs();

            goldEventArgs.GoldResults = _GoldResults;

            OnPostTake(goldEventArgs);

            this.ClearScreen();

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

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

            //Actions

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

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


            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#28
0
        public Location LoadForestWilderness()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Ashen Forest Wilderness";
            returnData.Description = "The path forks off, the left side leading to the wilderness. The area is thick with trees both dead and alive. There is an eviling feeling in the air. You should turn back now.";

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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            Accomplishment shadeLord = Banken.GetBankenAccomplishments().Find(x => x.Name.Contains("Shade Lord"));

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
示例#29
0
        public Location LoadEntrance()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Bandit and Necromancer Cave";
            returnData.Description = "A small cave entrance that is hidden from view but noticable if you know to look for it. On the inside is an empty space that makes it look like the cave is really small. However, you know that there is more to the cave and can notice the door that leads to the next room.";

            //Actions

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

            // Town Center
            LocationDefinition locationDefinition = AnkouForest.GetTownInstance().GetRightThreeDefinition();

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = AnkouBanditAndNecroCave.GetTownInstance().GetDirtyRoomDefinition();
            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }
示例#30
0
        public Location LoadForestPathOne()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Forest Path One";
            returnData.Description = "A long dark natural path that leads deep within the forest. It stretches on for as far as eyes can see.";


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


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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = BeachTowerGloomyForest.GetTownInstance().GetForestPathTwoDefinition();
            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
示例#31
0
 /// <summary>
 /// Gets objects in defined location.
 /// </summary>
 /// <param name="sqm">The SQM Location.</param>
 /// <returns></returns>
 public TileObject[] GetTileObjectsArray(LocationDefinition sqm)
 {
     return Reader.GetTileObjects(sqm);
 }