Beispiel #1
0
 private void HandlePowerups(GameTime gameTime)
 {
     _countdownToPowerup -= gameTime.ElapsedGameTime.Milliseconds;
     if ((gameTimer > 60000 && _minCountdownToPowerup == 10000) ||
         (gameTimer > 120000 && _minCountdownToPowerup == 5000))
     {
         _minCountdownToPowerup /= 2;
         _maxCountdownToPowerup /= 2;
     }
     if (_countdownToPowerup <= 0)
     {
         _countdownToPowerup = random.Next(_minCountdownToPowerup, _maxCountdownToPowerup);
         Tile randTile = null;
         bool foundTile = false;
         do
         {
             randTile = _currentMap.GetRandomWalkableTile();
             if (randTile == null)
             {
                 break;
             }
             foundTile = true;
             for (int i = 0; i < _powerups.Count; i++)
             {
                 if (randTile.position == _powerups[i].position)
                 {
                     foundTile = false;
                     break;
                 }
             }
         } while (!foundTile);
         int startRange = GameRules.selectedGameType == GameRules.GameType.CollectToWin ? 0 : 1;
         Powerup newPower = new Powerup((int)randTile.position.X, (int)randTile.position.Y, (Powerup.PowerupType)random.Next(startRange, 3));
         newPower.LoadContent(_contentManager);
         _powerups.Add(newPower);
     }
 }