Levels and ambience updated.
This commit is contained in:
@@ -33,7 +33,8 @@ class WickedQuest:
|
||||
levelData["player_start"]["y"],
|
||||
self.sounds)
|
||||
else:
|
||||
# Just update player position for new level
|
||||
# Reset player for new level.
|
||||
self.player.isDucking = False
|
||||
self.player.xPos = levelData["player_start"]["x"]
|
||||
self.player.yPos = levelData["player_start"]["y"]
|
||||
|
||||
@@ -41,10 +42,6 @@ class WickedQuest:
|
||||
pygame.event.pump()
|
||||
self.currentLevel = Level(levelData, self.sounds, self.player)
|
||||
|
||||
# Announce level details
|
||||
levelIntro = f"Level {levelData['level_id']}, {levelData['name']}. {levelData['description']}"
|
||||
messagebox(levelIntro)
|
||||
|
||||
return True
|
||||
except FileNotFoundError:
|
||||
speak("Level not found")
|
||||
@@ -141,7 +138,13 @@ class WickedQuest:
|
||||
if key != 'Total time': # Skip time since we already displayed it
|
||||
report.append(f"{key}: {self.currentLevel.player.stats.get_level_stat(key)}")
|
||||
|
||||
# Stop all sounds and music
|
||||
pygame.mixer.stop()
|
||||
try:
|
||||
pygame.mixer.music.stop()
|
||||
except:
|
||||
pass
|
||||
|
||||
display_text(report)
|
||||
self.currentLevel.player.stats.reset_level()
|
||||
|
||||
@@ -179,6 +182,10 @@ class WickedQuest:
|
||||
altPressed = mods & pygame.KMOD_ALT
|
||||
|
||||
if event.key == pygame.K_ESCAPE:
|
||||
try:
|
||||
pygame.mixer.music.stop()
|
||||
except:
|
||||
pass
|
||||
return
|
||||
# Volume controls (require Alt)
|
||||
elif altPressed:
|
||||
@@ -232,7 +239,9 @@ class WickedQuest:
|
||||
else:
|
||||
# Game complete - use gameStartTime for total
|
||||
totalTime = pygame.time.get_ticks() - self.gameStartTime
|
||||
messagebox("Congratulations! You've completed all available levels!")
|
||||
if self.player.xPos >= self.currentLevel.rightBoundary:
|
||||
messagebox("Congratulations! You've completed all available levels!")
|
||||
|
||||
self.display_game_over(totalTime)
|
||||
return
|
||||
|
||||
@@ -240,6 +249,12 @@ class WickedQuest:
|
||||
|
||||
def run(self):
|
||||
"""Main game loop with menu system."""
|
||||
# make sure no music is playing when the menu loads.
|
||||
try:
|
||||
pygame.mixer.music.stop()
|
||||
except:
|
||||
pass
|
||||
|
||||
while True:
|
||||
choice = game_menu(self.sounds, "play", "instructions", "learn_sounds",
|
||||
"credits", "donate", "exit")
|
||||
|
Reference in New Issue
Block a user