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+Delete: Game sounds volume decrease.
|
||||||
Alt+Insert: Game sounds volume increase.
|
Alt+Insert: Game sounds volume increase.
|
||||||
Backspace: Pause or resume the game.
|
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
|
Notes
|
||||||
|
|
||||||
|
|||||||
Submodule libstormgames updated: 5444ec4047...c257128948
@@ -231,6 +231,8 @@ class Player:
|
|||||||
self._lives -= 1
|
self._lives -= 1
|
||||||
# Mark that player died this frame to prevent revival
|
# Mark that player died this frame to prevent revival
|
||||||
self.diedThisFrame = True
|
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
|
# Stop all current sounds before playing death sound
|
||||||
pygame.mixer.stop()
|
pygame.mixer.stop()
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -400,6 +400,13 @@ class WickedQuest:
|
|||||||
speak("Run lock " + ("enabled." if self.runLock else "disabled."))
|
speak("Run lock " + ("enabled." if self.runLock else "disabled."))
|
||||||
elif event.key == pygame.K_BACKSPACE:
|
elif event.key == pygame.K_BACKSPACE:
|
||||||
pause_game()
|
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)
|
# Volume controls (require Alt)
|
||||||
elif altPressed:
|
elif altPressed:
|
||||||
if event.key == pygame.K_PAGEUP:
|
if event.key == pygame.K_PAGEUP:
|
||||||
@@ -426,6 +433,16 @@ class WickedQuest:
|
|||||||
|
|
||||||
# Check for death first
|
# Check for death first
|
||||||
if self.currentLevel.player.get_health() <= 0:
|
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:
|
if self.currentLevel.player.get_lives() <= 0:
|
||||||
# Game over - use gameStartTime for total time
|
# Game over - use gameStartTime for total time
|
||||||
pygame.mixer.stop()
|
pygame.mixer.stop()
|
||||||
@@ -591,6 +608,13 @@ class WickedQuest:
|
|||||||
speak("Run lock " + ("enabled." if self.runLock else "disabled."))
|
speak("Run lock " + ("enabled." if self.runLock else "disabled."))
|
||||||
elif event.key == pygame.K_BACKSPACE:
|
elif event.key == pygame.K_BACKSPACE:
|
||||||
pause_game()
|
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)
|
# Volume controls (require Alt)
|
||||||
elif altPressed:
|
elif altPressed:
|
||||||
if event.key == pygame.K_PAGEUP:
|
if event.key == pygame.K_PAGEUP:
|
||||||
@@ -633,6 +657,16 @@ class WickedQuest:
|
|||||||
|
|
||||||
# Check for death first (following main game loop pattern)
|
# Check for death first (following main game loop pattern)
|
||||||
if self.currentLevel.player.get_health() <= 0:
|
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:
|
if self.currentLevel.player.get_lives() <= 0:
|
||||||
# Game over - stop all sounds
|
# Game over - stop all sounds
|
||||||
pygame.mixer.stop()
|
pygame.mixer.stop()
|
||||||
|
|||||||
Reference in New Issue
Block a user