Added speech history in the game bound to f1 previous, f2 current, f3 next. I may expand this later.
This commit is contained in:
@@ -35,6 +35,9 @@ Alt+Home: Ambience volume increase.
|
||||
Alt+Delete: Game sounds volume decrease.
|
||||
Alt+Insert: Game sounds volume increase.
|
||||
Backspace: Pause or resume the game.
|
||||
F1: Navigate to previous speech message in history.
|
||||
F2: Repeat current speech message.
|
||||
F3: Navigate to next speech message in history.
|
||||
|
||||
Notes
|
||||
|
||||
|
||||
Submodule libstormgames updated: 5444ec4047...c257128948
@@ -231,6 +231,8 @@ class Player:
|
||||
self._lives -= 1
|
||||
# Mark that player died this frame to prevent revival
|
||||
self.diedThisFrame = True
|
||||
# Record death time for delay before respawn/game over
|
||||
self.deathTimestamp = pygame.time.get_ticks()
|
||||
# Stop all current sounds before playing death sound
|
||||
pygame.mixer.stop()
|
||||
try:
|
||||
|
||||
@@ -400,6 +400,13 @@ class WickedQuest:
|
||||
speak("Run lock " + ("enabled." if self.runLock else "disabled."))
|
||||
elif event.key == pygame.K_BACKSPACE:
|
||||
pause_game()
|
||||
# Speech history controls
|
||||
elif event.key == pygame.K_F1:
|
||||
speak_previous()
|
||||
elif event.key == pygame.K_F2:
|
||||
speak_current()
|
||||
elif event.key == pygame.K_F3:
|
||||
speak_next()
|
||||
# Volume controls (require Alt)
|
||||
elif altPressed:
|
||||
if event.key == pygame.K_PAGEUP:
|
||||
@@ -426,6 +433,16 @@ class WickedQuest:
|
||||
|
||||
# Check for death first
|
||||
if self.currentLevel.player.get_health() <= 0:
|
||||
# Check if we need to wait for death delay (2.5 seconds)
|
||||
if hasattr(self.currentLevel.player, 'deathTimestamp'):
|
||||
deathDelay = 2500 # 2.5 seconds
|
||||
if currentTime - self.currentLevel.player.deathTimestamp < deathDelay:
|
||||
# Still waiting for death delay to complete
|
||||
clock.tick(60)
|
||||
continue
|
||||
# Death delay completed, remove timestamp
|
||||
del self.currentLevel.player.deathTimestamp
|
||||
|
||||
if self.currentLevel.player.get_lives() <= 0:
|
||||
# Game over - use gameStartTime for total time
|
||||
pygame.mixer.stop()
|
||||
@@ -591,6 +608,13 @@ class WickedQuest:
|
||||
speak("Run lock " + ("enabled." if self.runLock else "disabled."))
|
||||
elif event.key == pygame.K_BACKSPACE:
|
||||
pause_game()
|
||||
# Speech history controls
|
||||
elif event.key == pygame.K_F1:
|
||||
speak_previous()
|
||||
elif event.key == pygame.K_F2:
|
||||
speak_current()
|
||||
elif event.key == pygame.K_F3:
|
||||
speak_next()
|
||||
# Volume controls (require Alt)
|
||||
elif altPressed:
|
||||
if event.key == pygame.K_PAGEUP:
|
||||
@@ -633,6 +657,16 @@ class WickedQuest:
|
||||
|
||||
# Check for death first (following main game loop pattern)
|
||||
if self.currentLevel.player.get_health() <= 0:
|
||||
# Check if we need to wait for death delay (2.5 seconds)
|
||||
if hasattr(self.currentLevel.player, 'deathTimestamp'):
|
||||
deathDelay = 2500 # 2.5 seconds
|
||||
if currentTime - self.currentLevel.player.deathTimestamp < deathDelay:
|
||||
# Still waiting for death delay to complete
|
||||
clock.tick(60)
|
||||
continue
|
||||
# Death delay completed, remove timestamp
|
||||
del self.currentLevel.player.deathTimestamp
|
||||
|
||||
if self.currentLevel.player.get_lives() <= 0:
|
||||
# Game over - stop all sounds
|
||||
pygame.mixer.stop()
|
||||
|
||||
Reference in New Issue
Block a user