示例#1
0
 protected override void Initialize()
 {
     keyboard                   = new KeyboardController();
     gamepad                    = new GamepadController(this);
     camera                     = new Camera(UtilityClass.cameraHeight, UtilityClass.cameraWidth, new Vector2(UtilityClass.zero, UtilityClass.zero));
     pipeTransition             = new PipeTransition();
     skytransition              = new SkyWorldTransition();
     gameover                   = new GameOver(this);
     loader                     = new LevelLoader(UtilityClass.levelFile, camera);
     levelStore                 = new LevelStorage(camera);
     keyNotPressed              = new KeyNotPressed(this);
     fireBallCount              = UtilityClass.fireballLimit;
     iceBallCount               = UtilityClass.iceballLimit;
     pause                      = false;
     canPause                   = true;
     marioPause                 = false;
     stateTransistionPauseTimer = UtilityClass.stateTransistionTimer;
     time = new TimeStat(UtilityClass.LevelStartTime);
     gui  = new GUI();
     StatePuaseAlterationCall.setGame(this);
     AchievementPause.setGame(this);
     achievementManager = new AchievementManager();
     AchievementEventTracker.setManager(achievementManager);
     base.Initialize();
     tester = new TestingClass(this, levelStore);
     tester.runTests();
     AchievementEventTracker.endRunningTesting();
     pole                   = new Pole();
     flag                   = new Flag();
     hitFlagpole            = false;
     levelWon               = false;
     vine_box_hit           = false;
     VineClimbBeginLocation = new Vector2(30, 0);
 }
示例#2
0
        public static void handleProjectileCollision(IProjectile projectile, LevelStorage storage)
        {
            CollisionDetector collisionDetector = new CollisionDetector();
            ICollision        side;
            Rectangle         floorCheck;

            floorCheck = projectile.returnCollisionRectangle();
            floorCheck.Y++;
            projectile.RigidBody().Floored = false;
            foreach (IBlock block in storage.blocksList)
            {
                if (block.checkForCollisionTestFlag())
                {
                    side = collisionDetector.getCollision(projectile.returnCollisionRectangle(), block.returnCollisionRectangle());
                    ProjectileBlockCollisionHandler.handleCollision(projectile, block, side);
                }
                if (collisionDetector.getCollision(floorCheck, block.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top))
                {
                    projectile.RigidBody().Floored = true;
                }
            }
            foreach (IEnviromental enviromental in storage.enviromentalObjectsList)
            {
                side = collisionDetector.getCollision(projectile.returnCollisionRectangle(), enviromental.returnCollisionRectangle());
                ProjectileEnviromentalCollisionHandler.handleCollision(projectile, enviromental, side);
                if (collisionDetector.getCollision(floorCheck, enviromental.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top))
                {
                    projectile.RigidBody().Floored = true;
                }
            }
        }
示例#3
0
        public static void handleItemCollision(IItemObjects item, LevelStorage storage)
        {
            CollisionDetector collisionDetector = new CollisionDetector();
            ICollision        side;
            Rectangle         floorCheck;

            floorCheck = item.returnCollisionRectangle();
            floorCheck.Y++;
            item.RigidBody().Floored = false;
            foreach (IBlock block in storage.blocksList)
            {
                if (block.checkForCollisionTestFlag())
                {
                    side = collisionDetector.getCollision(item.returnCollisionRectangle(), block.returnCollisionRectangle());
                    ItemBlockCollisionHandler.handleCollision(item, block, side);
                }
                if (collisionDetector.getCollision(floorCheck, block.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top))
                {
                    item.RigidBody().Floored = true;
                }
            }
            foreach (IEnviromental enviromental in storage.enviromentalObjectsList)
            {
                side = collisionDetector.getCollision(item.returnCollisionRectangle(), enviromental.returnCollisionRectangle());
                ItemEnvriomentalCollisionHandler.handleCollision(item, enviromental, side);
            }
        }
示例#4
0
        public static void handleMarioCollision(IPlayer mario, Game1 game, LevelStorage storage)
        {
            CollisionDetector collisionDetector = new CollisionDetector();
            ICollision        side;
            Rectangle         floorCheck;

            floorCheck = mario.returnCollisionRectangle();
            floorCheck.Y++;
            ((Mario)mario).rigidbody.Floored = false;
            foreach (IBlock block in storage.blocksList)
            {
                if (block.checkForCollisionTestFlag())
                {
                    side = collisionDetector.getCollision(mario.returnCollisionRectangle(), block.returnCollisionRectangle());
                    MarioBlockCollisionHandler.handleCollision((Mario)mario, block, side, game);
                    if (collisionDetector.getCollision(floorCheck, block.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top))
                    {
                        ((Mario)mario).rigidbody.Floored = true;
                    }
                }
            }
            foreach (IEnemyObject enemy in storage.enemiesList)
            {
                side = collisionDetector.getCollision(mario.returnCollisionRectangle(), enemy.returnCollisionRectangle());
                MarioEnemyCollisionHandler.handleCollision((Mario)mario, enemy, side, storage);
            }
            foreach (IItemObjects item in storage.itemList)
            {
                if (item.checkForCollisionTestFlag())
                {
                    side = collisionDetector.getCollision(mario.returnCollisionRectangle(), item.returnCollisionRectangle());
                    MarioItemCollisionHandler.handleCollision((Mario)mario, item, side);
                }
            }
            foreach (IEnviromental enviromental in storage.enviromentalObjectsList)
            {
                side = collisionDetector.getCollision(mario.returnCollisionRectangle(), enviromental.returnCollisionRectangle());
                MarioPipeCollisionHandler.handleCollision((Mario)mario, enviromental, side);
                if (collisionDetector.getCollision(floorCheck, enviromental.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top))
                {
                    ((Mario)mario).rigidbody.Floored = true;
                }
            }
        }
示例#5
0
        public static void handleEnemyCollision(IEnemyObject enemy, LevelStorage storage)
        {
            CollisionDetector collisionDetector = new CollisionDetector();
            ICollision        side;
            Rectangle         floorCheck;

            floorCheck = enemy.returnCollisionRectangle();
            floorCheck.Y++;
            enemy.GetRigidBody().Floored = false;
            foreach (IBlock block in storage.blocksList)
            {
                if (block.checkForCollisionTestFlag())
                {
                    side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), block.returnCollisionRectangle());
                    EnemyBlockCollisionHandler.handleCollision(enemy, block, side);
                }
                if (collisionDetector.getCollision(floorCheck, block.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top))
                {
                    enemy.GetRigidBody().Floored = true;
                }
            }
            foreach (IEnviromental enviromental in storage.enviromentalObjectsList)
            {
                side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), enviromental.returnCollisionRectangle());
                EnemyEnviromentalCollisionHandler.handleCollision(enemy, enviromental, side);
            }
            foreach (IEnemyObject secondEnemy in storage.enemiesList)
            {
                if (!enemy.Equals(secondEnemy))
                {
                    side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), secondEnemy.returnCollisionRectangle());
                    EnemyEnemyCollisionHandler.handleCollision(enemy, secondEnemy, side);
                }
            }
            foreach (IProjectile projectile in storage.projectileList)
            {
                if (projectile.Active())
                {
                    side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), projectile.returnCollisionRectangle());
                    EnemyProjectileCollisionHandler.handleCollision(enemy, projectile, side);
                }
            }
        }
示例#6
0
        public LevelStorage LoadLevel()
        {
            LevelStorage storage = new LevelStorage(camera);

            using (var levelfile = TitleContainer.OpenStream(@"Content\" + LevelName))
            {
                using (var sr = new StreamReader(levelfile))
                {
                    var ObjectType = sr.ReadLine();
                    ObjectType.Trim();
                    while (ObjectType != "<!-- END -->")
                    {
                        if (ObjectType == "<BrickBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new BrickBlock(XVal, YVal, BlockType.Brick);
                            storage.blocksList.Add(GameObject);
                            BreakableBlockStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType.Trim();
                        }
                        else if (ObjectType == "<BoxCoin>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IItemObjects GameObject;
                            GameObject = new BoxCoin(XVal, YVal);
                            storage.itemList.Add(GameObject);
                            CoinStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<FireFlower>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IItemObjects GameObject;
                            GameObject = new FireFlower(XVal, YVal);
                            storage.itemList.Add(GameObject);
                            FireFlowerStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<IceFlower>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IItemObjects GameObject;
                            GameObject = new IceFlower(XVal, YVal);
                            storage.itemList.Add(GameObject);
                            //FireFlowerStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<Goomba>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnemyObject GameObject;
                            GameObject = new Goomba(XVal, YVal);
                            storage.enemiesList.Add(GameObject);
                            GoombaStats.TotalAvailable++;
                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }

                        else if (ObjectType == "<GroundBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new Blocks(XVal, YVal, BlockType.Ground);
                            storage.blocksList.Add(GameObject);
                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<HiddenBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new HiddenBlock(XVal, YVal, BlockType.Hidden);
                            storage.blocksList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<CoinDispenserBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new BrickBlockCoinDispenser(XVal, YVal, BlockType.BrickCoin);
                            storage.blocksList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<Koopa>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnemyObject GameObject;
                            GameObject = new Koopa(XVal, YVal);
                            storage.enemiesList.Add(GameObject);
                            KoopaStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<OneUpMushroom>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IItemObjects GameObject;
                            GameObject = new OneUpMushroom(XVal, YVal);
                            storage.itemList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<Pipe>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject;
                            GameObject = new Pipe(XVal, YVal);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<PlatformingBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new Blocks(XVal, YVal, BlockType.Platforming);
                            storage.blocksList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<QuestionStarBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new QuestionStarBlock(XVal, YVal, BlockType.QuestionStar);
                            storage.blocksList.Add(GameObject);
                            SuperStarStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<QuestionCoinBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new QuestionCoinBlock(XVal, YVal, BlockType.QuestionCoin);
                            storage.blocksList.Add(GameObject);
                            CoinStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<QuestionSuperMushroomFireFlowerBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new QuestionSuperMushroomFireFlower(XVal, YVal, BlockType.QuestionSuperMushroomFireFlower);
                            storage.blocksList.Add(GameObject);
                            FireFlowerStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<QuestionIceFlowerBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new QuestionIceFlower(XVal, YVal, BlockType.QuestionIceFlower);
                            storage.blocksList.Add(GameObject);
                            //FireFlowerStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<SuperMushroom>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IItemObjects GameObject;
                            GameObject = new SuperMushroom(XVal, YVal);
                            storage.itemList.Add(GameObject);
                            SuperMushroomStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<SuperStar>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IItemObjects GameObject;
                            GameObject = new SuperStar(XVal, YVal);
                            storage.itemList.Add(GameObject);
                            SuperStarStats.TotalAvailable++;
                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<Mario>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IPlayer GameObject;
                            GameObject     = new Mario(XVal, YVal);
                            storage.player = GameObject;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<BlueBrickBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new BlueBrickBlock(XVal, YVal, BlockType.BlueBrick);
                            storage.blocksList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<BlueGroundBlock>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IBlock GameObject;
                            GameObject = new BlueGroundBlock(XVal, YVal, BlockType.BlueGround);
                            storage.blocksList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<UndergroundPipe>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new Pipe(XVal, YVal);
                            ((Pipe)GameObject).setUnderground();
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<RightFacingPipeEdge>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new RightFacingPipeEdge(XVal, YVal);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<RightFacingPipe>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new RightFacingPipe(XVal, YVal);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<StaticCoin>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IItemObjects GameObject = new StaticCoin(XVal, YVal);
                            storage.itemList.Add(GameObject);
                            CoinStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<GoombaEnemySpawner>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new EnemySpawner(XVal, YVal, true);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<KoopaEnemySpawner>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new EnemySpawner(XVal, YVal, false);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<SkyBridge>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new SkyWorldBridge(XVal, YVal);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<IcePipe>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new IcePipe(XVal, YVal);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<IceCloud>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new StandingCloud(XVal, YVal);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<SmileyCloud>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            IEnviromental GameObject = new IceSmileyCloud(XVal, YVal);
                            storage.enviromentalObjectsList.Add(GameObject);

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else if (ObjectType == "<VineCoinBox>")
                        {
                            var      xstring           = sr.ReadLine();
                            string[] xstringSeparators = new string[] { " ", "<x>", "</x>", "\n" };
                            string   xtrimmed          = xstring.Trim();
                            var      xsplit            = xtrimmed.Split(xstringSeparators, StringSplitOptions.None);
                            int      XVal = Int32.Parse(xsplit[1]);

                            var      ystring           = sr.ReadLine();
                            string[] ystringSeparators = new string[] { " ", "<y>", "</y>", "\n" };
                            string   ytrimmed          = ystring.Trim();
                            var      ysplit            = ytrimmed.Split(ystringSeparators, StringSplitOptions.None);
                            int      YVal = Int32.Parse(ysplit[1]);

                            QuestionCoinBlock GameObject;
                            GameObject = new QuestionCoinBlock(XVal, YVal, BlockType.QuestionCoin);
                            GameObject.setVineBox(true);
                            storage.blocksList.Add(GameObject);
                            CoinStats.TotalAvailable++;

                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                        else
                        {
                            ObjectType = sr.ReadLine();
                            ObjectType = ObjectType.Trim();
                        }
                    }
                }
            }
            return(storage);
        }
 public TestingClass(Game1 game, LevelStorage storage)
 {
     this.game = game;
     StatePuaseAlterationCall.setGame(game);
     levelStorage = storage;
 }
示例#8
0
        public static void handleCollision(Mario mario, IEnemyObject enemy, ICollision side, LevelStorage levelStorage)
        {
            ICommand command;

            if (!(side.returnCollisionSide().Equals(CollisionSide.None)))
            {
                handleMarioMovement(mario, enemy, side);
            }

            if (side.returnCollisionSide().Equals(CollisionSide.Top) && enemy.canHurtMario())
            {
                command = new MarioHitsEnemyCollision(enemy, mario);
                command.Execute();
                levelStorage.decreaseEnemyCount();
            }
            else if (!(side.returnCollisionSide().Equals(CollisionSide.None)) && enemy.canHurtMario())
            {
                command = new EnemyHitsMarioCollision(mario, enemy);
                command.Execute();
                if (!mario.Star)
                {
                    StatePuaseAlterationCall.Execute();
                }
            }
            if (enemy.canHurtOtherEnemies() && !(side.returnCollisionSide().Equals(CollisionSide.None)) && !enemy.canHurtMario())
            {
                handleMarioMovement(mario, enemy, side);
                handleEnemyMovement(enemy, side);
            }
            handleAchievement(enemy, side);
        }