public override void Update(GameTime gameTime, InputManager input, InventoryManager im) { _mousePos = input.MouseLocation; input.SetCameraOffset(_camera.Position); handleInput(input); _camera.Update(gameTime, _player.Position); //if player is outside static area rectangle, call update on camera to update position of camera until //the player is in the static area rectangle or the camera reaches the _levelbounds, in which case, //the camera does not move in that direction (locks) /* * if ((_player.HitRect.Bottom > _cameraLock.Bottom && _player.HitRect.Top < _cameraLock.Top && * _player.HitRect.Right < _cameraLock.Right && _player.HitRect.Left > _cameraLock.Left) && (player is in level bounds) * { * _camera.Update(gameTime); * _cameraLock.X = (int)(_camera.position.X + (_camera.getViewportWidth() * 0.2)); * _cameraLock.Y = (int)(_camera.position.Y + (_camera.getViewportHeight() * 0.2)); * * }*/ if (_timeSlowed) { gameTime = new GameTime(gameTime.TotalGameTime, TimeSpan.FromSeconds((float)gameTime.ElapsedGameTime.TotalSeconds / 2)); } if (_blackHole.State == BlackHole.BlackHoleState.Pulling) { _blackHole.ApplyToUnit(_player, gameTime); } _player.Update(gameTime, _levelBounds); _primaryGadget.Update(gameTime); _blackHole.Update(gameTime); if (_blackHole.State == BlackHole.BlackHoleState.Overdrive) { foreach (Wave w in _waves) { w.SpawnEnable = false; } foreach (Unicorn u in _unicorns) { u.SpawnEnable = false; } } for (int i = 0; i < _waves.Length; i++) { _waves[i].Update(gameTime, _player, _blackHole, _primaryWeapon, _secondaryWeapon, _unicorns); //check cross-wave collisions if (_waves[i].Active) { for (int j = i + 1; j < _waves.Length; j++) { _waves[i].CheckAndApplyCollisions(_waves[j]); } } } for (int i = 0; i < _unicorns.Length; i++) { _unicorns[i].Update(gameTime, _levelBounds, _blackHole.Position, _player.Position, _player.HitRect); _unicorns[i].CheckAndApplyCollision(_player, gameTime); _blackHole.TryEatUnicorn(_unicorns[i], gameTime); for (int j = 0; j < _foodCarts.Length; j++) { _unicorns[i].CheckAndApplyCollision(_foodCarts[j], gameTime); } } for (int i = 0; i < _foodCarts.Length; i++) { _foodCarts[i].Update(gameTime, _levelBounds, _blackHole.Position); _primaryWeapon.CheckAndApplyCollision(_foodCarts[i], gameTime.ElapsedGameTime); _secondaryWeapon.CheckAndApplyCollision(_foodCarts[i], gameTime.ElapsedGameTime); _blackHole.ApplyToUnit(_foodCarts[i], gameTime); } //Update Weapon Choice _primaryWeapon.Update(gameTime); _secondaryWeapon.Update(gameTime); }