If wielding witch broom instantly land when jumping by pressing down.
This commit is contained in:
		| @@ -28,6 +28,7 @@ class WickedQuest: | ||||
|         self.runLock = False  # Toggle behavior of the run keys | ||||
|         self.saveManager = SaveManager() | ||||
|         self.survivalGenerator = None | ||||
|         self.lastBroomLandingTime = 0  # Timestamp to prevent ducking after broom landing | ||||
|         self.survivalWave = 1 | ||||
|         self.survivalScore = 0 | ||||
|  | ||||
| @@ -161,10 +162,17 @@ class WickedQuest: | ||||
|         currentTime = pygame.time.get_ticks() | ||||
|  | ||||
|         # Update running and ducking states | ||||
|         if (keys[pygame.K_s] or keys[pygame.K_DOWN]) and not player.isDucking: | ||||
|             player.duck() | ||||
|         elif (not keys[pygame.K_s] and not keys[pygame.K_DOWN]) and player.isDucking: | ||||
|             player.stand() | ||||
|         # Don't handle ducking if jumping (down key is used for instant landing with broom) | ||||
|         # Also prevent ducking for 250ms after broom landing to avoid conflict | ||||
|         broomLandingGracePeriod = 250  # milliseconds | ||||
|         recentBroomLanding = (hasattr(self, 'lastBroomLandingTime') and  | ||||
|                              currentTime - self.lastBroomLandingTime < broomLandingGracePeriod) | ||||
|          | ||||
|         if not player.isJumping and not recentBroomLanding: | ||||
|             if (keys[pygame.K_s] or keys[pygame.K_DOWN]) and not player.isDucking: | ||||
|                 player.duck() | ||||
|             elif (not keys[pygame.K_s] and not keys[pygame.K_DOWN]) and player.isDucking: | ||||
|                 player.stand() | ||||
|  | ||||
|         if self.runLock: | ||||
|             player.isRunning = not (keys[pygame.K_SPACE] or keys[pygame.K_LSHIFT] or keys[pygame.K_RSHIFT]) | ||||
| @@ -241,7 +249,18 @@ class WickedQuest: | ||||
|             player.jumpStartTime = currentTime | ||||
|             play_sound(self.sounds['jump']) | ||||
|  | ||||
|         # Check if jump should end | ||||
|         # Handle instant landing with broom (press down while jumping) | ||||
|         if (player.isJumping and (keys[pygame.K_s] or keys[pygame.K_DOWN]) and  | ||||
|             player.currentWeapon and player.currentWeapon.name == "witch_broom"): | ||||
|             player.isJumping = False | ||||
|             play_sound(self.sounds[player.footstepSound])  # Landing sound | ||||
|             # Reset step distance tracking after landing | ||||
|             player.distanceSinceLastStep = 0 | ||||
|             player.lastStepTime = currentTime | ||||
|             # Set timestamp to prevent immediate ducking after broom landing | ||||
|             self.lastBroomLandingTime = currentTime | ||||
|  | ||||
|         # Check if jump should end naturally | ||||
|         if player.isJumping and currentTime - player.jumpStartTime >= player.get_current_jump_duration(): | ||||
|             player.isJumping = False | ||||
|             play_sound(self.sounds[player.footstepSound])  # Landing sound | ||||
|   | ||||
		Reference in New Issue
	
	Block a user