예제 #1
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);
        }
예제 #2
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);
        }
예제 #3
0
        public static BankenSwampland GetTownInstance()
        {
            if (_Swampland == null)
            {
                _Swampland = new BankenSwampland();
            }

            return(_Swampland);
        }
예제 #4
0
        public Location LoadSwampyAreaTwo()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Swampy Area Two";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.SWAMPY_AREA_TWO_MOBS));

            if (!defeatedMobs)
            {
                returnData.Description = "The pure swampland continues on. The air is thicker and it is harder to breathe. Water Spirits roam the area.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                CombatAction combatAction = new CombatAction("Water Spirits", mobs);
                combatAction.PostCombat += SwampyAreaTwoMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The pure swampland continues on. The air is thicker and it is harder to breathe.";
            }

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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
예제 #5
0
        public Location LoadSwampyAreaOne()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Swampy Area One";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.SWAMPY_AREA_ONE_MOBS));

            if (!defeatedMobs)
            {
                returnData.Description = "The swamp begins with deep murky water. Water Spirits float about above the ponds";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                CombatAction combatAction = new CombatAction("Water Spirits", mobs);
                combatAction.PostCombat += SwampyAreaOneMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The swamp begins with deep murky water.";
            }

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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
예제 #6
0
        public Location LoadFishermansDock()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Fisherman's Dock";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.FISHERMANS_DOCK_MOBS));

            if (!defeatedMobs)
            {
                returnData.Description = "A small dock into a large pond. There is a boat loosely tied to a post. Water Spirits defend the pond.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                mobs.Add(new WaterSpirit());
                CombatAction combatAction = new CombatAction("Water Spirits", mobs);
                combatAction.PostCombat += FishermansDockMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A small dock into a large pond. There is a boat loosely tied to a post.";
            }

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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
예제 #7
0
        public Location LoadSmallGraveyard()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Small Graveyard";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.SMALL_GRAVEYARD_MOBS));

            if (!defeatedMobs)
            {
                returnData.Description = "A small graveyard in the middle of the swamplands for the small population of people that live here. There are a couple tombstones scattered about. Skeletons have risen from the grave and they are accompanied by shades.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Skeleton());
                mobs.Add(new Shade());
                mobs.Add(new Skeleton());
                mobs.Add(new Skeleton());
                mobs.Add(new Shade());
                CombatAction combatAction = new CombatAction("Skeletons and Shades", mobs);
                combatAction.PostCombat += SmallGraveyardMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            returnData.Description = "A small graveyard in the middle of the swamplands for the small population of people that live here. There are a couple tombstones scattered about";

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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
예제 #8
0
        public Location LoadCrumbledBuilding()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Crumbled Building";
            bool defeatedMobs = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.CRUMBLED_BUILDING_MOBS));

            if (!defeatedMobs)
            {
                returnData.Description = "A medium sized building lies in ruins in the middle of the swamp. Moss covers the stones of the former building. Shades roam the area.";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Shade());
                mobs.Add(new Shade());
                CombatAction combatAction = new CombatAction("Shades", mobs);
                combatAction.PostCombat += CrumbledBuildingMobs;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "A medium sized building lies in ruins in the middle of the swamp. Moss covers the stones of the former building.";
            }

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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
예제 #9
0
        public Location LoadEntrance()
        {
            Location returnData;

            returnData             = new Location();
            returnData.Name        = "Swampland";
            returnData.Description = "The swampland is hot and mucky out. It's not a pleasant place to be.";

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

            //Will need a change
            LocationDefinition locationDefinition = BankenAshenForest.GetTownInstance().GetNorthernForestEdgeDefinition();

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            locationDefinition = BankenSwampland.GetTownInstance().GetSwampyAreaOneDefinition();
            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }
예제 #10
0
        public Location LoadRuinedCastle()
        {
            Location returnData;

            returnData      = new Location();
            returnData.Name = "Ruined Castle";
            bool   defeatedShades = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.RUINED_CASTLE_SHADES));
            bool   defeatedNecros = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.RUINED_CASTLE_NECROS));
            bool   defeatedMarzen = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.MARZEN));
            bool   treasure       = Convert.ToBoolean(LocationHandler.GetLocationStateValue(Banken.LOCATION_STATE_KEY, BankenSwampland.TREASURE));
            string beforeShades   = "The shades take notice of you and descend, ready to end your existence.";
            string afterShades    = "The last of the shades has vanished, sending forth a burst of dark energy vaporizing the first section of the ruins.";
            string beforeMarzen   = "As you move toward the inside of the ruins, the chanting suddenly stops. The world grows cold. Slowly, a necromancer in elaborate robes calmly walks out of the ruins. He draws a sword and slings a bolt of dark energy toward you. You leap to the side, dodging it and then draw your weapon.";
            string afterMarzen    = "As Marzen falls to the ground dead, the darkness fades away and warmth once again floods your body.";

            if (!defeatedShades)
            {
                returnData.Description = "The ruins of a once great castle. Shades stand protecting the ruins. You can hear chanting just behind 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());
                mobs.Add(new Shade());
                mobs.Add(new Shade());
                CombatAction combatAction = new CombatAction("Shades", mobs, beforeShades, afterShades);
                combatAction.PostCombat += RuinedCastleShades;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (!defeatedNecros)
            {
                returnData.Description = "The ruins of a once great castle. The necromancers now stand exposed, vulnerable to attack as they frantically continue their ritual";

                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());
                CombatAction combatAction = new CombatAction("Necromancers", mobs, beforeShades, afterShades);
                combatAction.PostCombat += RuinedCastleNecros;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else if (!defeatedMarzen)
            {
                returnData.Description = "The ruins of a once great castle. One necromancer remains, just out of sight. You can feel the darkness swirl as his ritual nears completion";

                List <LocationAction> locationActions = new List <LocationAction>();
                List <Mob>            mobs            = new List <Mob>();
                mobs.Add(new Marzen());
                CombatAction combatAction = new CombatAction("Marzen, High Necromancer", mobs, beforeMarzen, afterMarzen);
                combatAction.PostCombat += Marzen;
                locationActions.Add(combatAction);
                returnData.Actions = locationActions;
            }
            else
            {
                returnData.Description = "The ruins of a once great castle.";
            }

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


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

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

            adjacentLocationDefintions.Add(locationDefinition.LocationKey, locationDefinition);

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

            returnData.AdjacentLocationDefinitions = adjacentLocationDefintions;

            return(returnData);
        }