Added override capabilities for lots of items, weapons, and hazards.
This commit is contained in:
@@ -525,7 +525,7 @@ class WickedQuest:
|
||||
continue
|
||||
if self.currentGame:
|
||||
# Ask player to choose game mode
|
||||
mode_choice = game_mode_menu(self.get_sounds())
|
||||
mode_choice = game_mode_menu(self.get_sounds(), self.currentGame)
|
||||
if mode_choice == "story":
|
||||
self.player = None # Reset player for new game
|
||||
self.gameStartTime = pygame.time.get_ticks()
|
||||
@@ -686,23 +686,96 @@ class WickedQuest:
|
||||
self.currentLevel = Level(levelData, self.get_sounds(), self.player, self.currentGame)
|
||||
|
||||
|
||||
def game_mode_menu(sounds):
|
||||
def game_mode_menu(sounds, game_dir=None):
|
||||
"""Display game mode selection menu using instruction_menu.
|
||||
|
||||
|
||||
Args:
|
||||
sounds (dict): Dictionary of loaded sound effects
|
||||
|
||||
game_dir (str): Current game directory to check for instructions/credits
|
||||
|
||||
Returns:
|
||||
str: Selected game mode or None if cancelled
|
||||
"""
|
||||
choice = instruction_menu(sounds, "Select game mode:", "Story", "Survival Mode")
|
||||
|
||||
if choice == "Story":
|
||||
return "story"
|
||||
elif choice == "Survival Mode":
|
||||
return "survival"
|
||||
else:
|
||||
return None
|
||||
from src.game_selection import get_game_dir_path
|
||||
import os
|
||||
|
||||
# Build base menu options
|
||||
menu_options = ["Story", "Survival Mode"]
|
||||
|
||||
# Check for level pack specific files if game directory is provided
|
||||
if game_dir:
|
||||
try:
|
||||
game_path = get_game_dir_path(game_dir)
|
||||
|
||||
# Check for instructions.txt
|
||||
instructions_path = os.path.join(game_path, "instructions.txt")
|
||||
if os.path.exists(instructions_path):
|
||||
menu_options.append("Instructions")
|
||||
|
||||
# Check for credits.txt
|
||||
credits_path = os.path.join(game_path, "credits.txt")
|
||||
if os.path.exists(credits_path):
|
||||
menu_options.append("Credits")
|
||||
|
||||
except Exception:
|
||||
# If there's any error checking files, just continue with basic menu
|
||||
pass
|
||||
|
||||
while True:
|
||||
choice = instruction_menu(sounds, "Select game mode:", *menu_options)
|
||||
|
||||
if choice == "Story":
|
||||
return "story"
|
||||
elif choice == "Survival Mode":
|
||||
return "survival"
|
||||
elif choice == "Instructions" and game_dir:
|
||||
# Display instructions file
|
||||
try:
|
||||
game_path = get_game_dir_path(game_dir)
|
||||
instructions_path = os.path.join(game_path, "instructions.txt")
|
||||
print(f"DEBUG: Looking for instructions at: {instructions_path}")
|
||||
if os.path.exists(instructions_path):
|
||||
print("DEBUG: Instructions file found, loading content...")
|
||||
with open(instructions_path, 'r', encoding='utf-8') as f:
|
||||
instructions_content = f.read()
|
||||
print(f"DEBUG: Content length: {len(instructions_content)} characters")
|
||||
print("DEBUG: Calling display_text...")
|
||||
# Convert string to list of lines for display_text
|
||||
content_lines = instructions_content.split('\n')
|
||||
print(f"DEBUG: Split into {len(content_lines)} lines")
|
||||
display_text(content_lines)
|
||||
print("DEBUG: display_text returned")
|
||||
else:
|
||||
print("DEBUG: Instructions file not found at expected path")
|
||||
speak("Instructions file not found")
|
||||
except Exception as e:
|
||||
print(f"DEBUG: Error loading instructions: {str(e)}")
|
||||
speak(f"Error loading instructions: {str(e)}")
|
||||
elif choice == "Credits" and game_dir:
|
||||
# Display credits file
|
||||
try:
|
||||
game_path = get_game_dir_path(game_dir)
|
||||
credits_path = os.path.join(game_path, "credits.txt")
|
||||
print(f"DEBUG: Looking for credits at: {credits_path}")
|
||||
if os.path.exists(credits_path):
|
||||
print("DEBUG: Credits file found, loading content...")
|
||||
with open(credits_path, 'r', encoding='utf-8') as f:
|
||||
credits_content = f.read()
|
||||
print(f"DEBUG: Content length: {len(credits_content)} characters")
|
||||
print("DEBUG: Calling display_text...")
|
||||
# Convert string to list of lines for display_text
|
||||
content_lines = credits_content.split('\n')
|
||||
print(f"DEBUG: Split into {len(content_lines)} lines")
|
||||
display_text(content_lines)
|
||||
print("DEBUG: display_text returned")
|
||||
else:
|
||||
print("DEBUG: Credits file not found at expected path")
|
||||
speak("Credits file not found")
|
||||
except Exception as e:
|
||||
print(f"DEBUG: Error loading credits: {str(e)}")
|
||||
speak(f"Error loading credits: {str(e)}")
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
Reference in New Issue
Block a user