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);
        }
Пример #2
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);
        }
        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);
        }
        public static AnkouNecromancerCamp GetTownInstance()
        {
            if (_AnkouNecromancerCamp == null)
            {
                _AnkouNecromancerCamp = new AnkouNecromancerCamp();
            }

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

            returnData      = new Location();
            returnData.Name = "Tent Cluster";
            bool defeatedNecros = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouNecromancerCamp.DEFEATED_CLUSTER_TENT_NECRO));

            if (!defeatedNecros)
            {
                returnData.Description = "A large cluster of tents. There are several necromancers mingling about.";

                //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());
                CombatAction combatAction = new CombatAction("Necromancers", necro);
                combatAction.PostCombat += ClusterTentNecros;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (defeatedNecros)
            {
                returnData.Description = "A large cluster of tents. There are several dead necromancer bodies laying bloodied and beaten on the floor.";
            }

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

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

            if (!defeatedNecros)
            {
                returnData.Description = "A large cooking area for the necromancers. There are three necromancers and three slaves working on the night's dinner";

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

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

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (defeatedNecros)
            {
                returnData.Description = "A large cooking area for the necromancers. The blood of the dead is now staining the food and drink.";
            }

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

            returnData      = new Location();
            returnData.Name = "Large Clearing";
            bool defeatedNecros = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouNecromancerCamp.DEFEATED_CLEARING_ELITE_NECRO_GUARD));

            if (!defeatedNecros)
            {
                returnData.Description = "A large clearing, with grotesque displays of hanging bodies off the sides of the path. There is a rather large tent on the back end of the clearing. Four necromancers in elite guard robes stand at the entrance to the tent, blocking all progress forward.";

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

                List <Mob> necro = new List <Mob>();
                necro.Add(new NecromancerEliteGuard());
                necro.Add(new NecromancerEliteGuard());
                necro.Add(new NecromancerEliteGuard());
                necro.Add(new NecromancerEliteGuard());
                CombatAction combatAction = new CombatAction("Necromancer Elite Guard", necro);
                combatAction.PostCombat += ClearingGuards;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (defeatedNecros)
            {
                returnData.Description = "A large clearing, with grotesque displays of hanging bodies off the sides of the path. There is a rather large tent on the back end of the clearing. The crumpled bodies of the necromancer guards are scattered across the clearing. There is no more resistance to the entrance of the tent.";
            }

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

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

            returnData      = new Location();
            returnData.Name = "Necromancer Leader's Tent";
            bool defeatedNecros = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouNecromancerCamp.DEFEATED_NECRO_LEADER));
            bool openedChest    = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouNecromancerCamp.OPENED_CHEST));
            bool takeJournal    = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Ankou.LOCATION_STATE_KEY, AnkouNecromancerCamp.TOOK_JOURNAL));

            if (!defeatedNecros)
            {
                returnData.Description = "A large tent, full of many dark items. The necromancer leader sits at his desk, twirling a long, sharp knife in his hand.";

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

                List <Mob> necro = new List <Mob>();
                necro.Add(new AnkouNecroLeader());
                CombatAction combatAction = new CombatAction("Necromancer Leader", necro);
                combatAction.PostCombat += NecroLeader;

                locationActions.Add(combatAction);

                returnData.Actions = locationActions;
            }
            if (defeatedNecros)
            {
                if (!openedChest)
                {
                    if (!takeJournal)
                    {
                        returnData.Description = "A large tent, full of many dark items. The necromancer leader is dead on the ground. There is a journal on his desk and an unopened treasure chest.";
                    }
                    else
                    {
                        returnData.Description = "A large tent, full of many dark items. The necromancer leader is dead on the ground. There is an unopened treasure chest.";
                    }

                    List <LocationAction> locationActions = new List <LocationAction>();
                    TreasureChestAction   itemAction      = new TreasureChestAction(3);
                    locationActions.Add(itemAction);
                    itemAction.PostItem += Chest;
                    returnData.Actions   = locationActions;
                }
                if (openedChest && takeJournal)
                {
                    returnData.Description = "A large tent, full of many dark items. The necromancer leader is dead on the ground. There is a opened treasure chest.";
                }
                if (!takeJournal && openedChest)
                {
                    returnData.Description = "A large tent, full of many dark items. The necromancer leader is dead on the ground. There is a journal on his desk and an opened treasure chest.";
                    List <LocationAction> locationActions = new List <LocationAction>();
                    TakeItemAction        letterAction    = new TakeItemAction("Necromancer Leader's Journal");
                    letterAction.PostItem += LeaderJournal;
                    locationActions.Add(letterAction);
                    returnData.Actions = locationActions;
                }
            }

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

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

            adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);

            if (defeatedNecros && takeJournal)
            {
                locationDefinition = Ankou.GetTownInstance().GetTownCenterDefinition();
                adjacentLocationDefinitions.Add(locationDefinition.LocationKey, locationDefinition);
            }

            returnData.AdjacentLocationDefinitions = adjacentLocationDefinitions;

            return(returnData);
        }