Пример #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
 private static void handleAchievement(IEnemyObject enemy, ICollision side)
 {
     if (side.returnCollisionSide().Equals(CollisionSide.Top) && enemy.canHurtMario())
     {
         AchievementEventTracker.killingEnemyAcievement();
     }
 }
Пример #3
0
 public MarioDying(Mario mario)
 {
     AchievementEventTracker.dyingAcievement();
     this.mario = mario;
     sprite     = new AnimatedSprite(MarioSpriteFactory.CreateMarioDyingSprite(), UtilityClass.one, UtilityClass.one, mario.Location, UtilityClass.generalTotalFramesAndSpecializedRows);
     mario.LoseLife();
 }
 private void sendUnderground(IPlayer mario, float elapsedtime)
 {
     if (((Mario)mario).StateStatus().Equals(MarioState.Duck) || hasbeguntransition == true)
     {
         AchievementEventTracker.undergroundAcievement();
         if (hasbeguntransition == false)
         {
             SoundEffectFactory.Pipe();
         }
         hasbeguntransition = true;
         sendUndergroundAnimation(mario, elapsedtime);
     }
 }
        private static void handleAchievements(IBlock block, Mario mario)
        {
            BlockType type = block.returnBlockType();

            if (type.Equals(BlockType.BrickCoin))
            {
                AchievementEventTracker.hiddenDispenserAcievement();
            }
            else if (type.Equals(BlockType.Brick) && ((!mario.Small) || (mario.Star)))
            {
                AchievementEventTracker.brickSmashedAcievement();
            }
            else if (type.Equals(BlockType.QuestionCoin))
            {
                AchievementEventTracker.questionCoinAcievement();
            }
        }
 private static void handleAchievements(IItemObjects item)
 {
     if (item.returnItemType().Equals(ItemType.FireFlower))
     {
         AchievementEventTracker.fireFlowerAcievement();
     }
     else if (item.returnItemType().Equals(ItemType.OneUpMushroom))
     {
         AchievementEventTracker.oneUpAcievement();
     }
     else if (item.returnItemType().Equals(ItemType.Star))
     {
         AchievementEventTracker.starAcievement();
     }
     else if (item.returnItemType().Equals(ItemType.SuperMushroom))
     {
         AchievementEventTracker.superMushAcievement();
     }
 }
Пример #7
0
        protected override void Update(GameTime gameTime)
        {
            if (!hitFlagpole)
            {
                keyboard.Update();
                gamepad.Update();
            }

            foreach (IBlock block in levelStore.blocksList)
            {
                if (block.returnBlockType() == BlockType.QuestionCoin)
                {
                    if (((QuestionCoinBlock)block).returnVineDispense() && !vine_box_hit)
                    {
                        vine_box_hit = true;
                        skytransition.seVineBoxHit(true);
                    }
                }
            }

            float elapsedtime = (float)gameTime.ElapsedGameTime.TotalSeconds;

            levelWon = (mario.GetLocation().X >= UtilityClass.flagpoleLocation && mario.GetLocation().X < UtilityClass.aboveGroundEndLocation);

            if (!pause && !marioPause)
            {
                keyNotPressed.Execute();
                if (!levelWon)
                {
                    mario.Update(gameTime);
                }
                levelStore.Update();
                levelStore.handleCollision(mario, this);
                cameraController.Update();
                pipeTransition.Update((Mario)mario, elapsedtime, camera);
                skytransition.Update((Mario)mario, elapsedtime, this);
                gameover.Update((Mario)mario, elapsedtime, this);
                gui.Update();
                if (time.UpdateTime(gameTime))
                {
                    resetCommand.Execute();
                }
                base.Update(gameTime);
            }

            else if (marioPause && !pause)
            {
                if (!levelWon)
                {
                    mario.Update(gameTime);
                }
                levelStore.handleCollision(mario, this);
                stateTransistionPauseTimer--;
            }

            if (stateTransistionPauseTimer == UtilityClass.zero)
            {
                StatePuaseAlterationCall.Execute();
            }

            pole.Update();
            flag.Update();
            if (levelWon)
            {
                AchievementEventTracker.levelFinishAcievement();
                if (!hitFlagpole)
                {
                    endMario    = new EndingSequenceMario(((Mario)mario), ((Mario)mario).Small, ((Mario)mario).Fire, ((Mario)mario).Ice, time);
                    hitFlagpole = true;
                }
                flag.MoveDown();
                endMario.FlagAtBottom = flag.FlagAtBottom();
                endMario.Update();
                if (endMario.EndSequenceFinished && Keyboard.GetState().GetPressedKeys().Length > 0)
                {
                    resetCommand.Execute();
                }
            }
        }
 public void Execute()
 {
     AchievementEventTracker.writeAchievements();
     game.Exit();
 }