A few minor cleanups. Added game over sound to survival mode. Not sure how I missed that for this long lol.

This commit is contained in:
Storm Dragon
2025-09-09 18:12:51 -04:00
parent dc1557e71d
commit 949c12f193
3 changed files with 39 additions and 9 deletions

View File

@@ -16,8 +16,9 @@ from src.skull_storm import SkullStorm
class Level:
def __init__(self, levelData, sounds, player):
def __init__(self, levelData, sounds, player, levelPackName=None):
self.sounds = sounds
self.levelPackName = levelPackName
self.objects = []
self.enemies = []
self.bouncing_items = []
@@ -52,11 +53,22 @@ class Level:
try:
pygame.mixer.music.stop()
if "ambience" in levelData:
try:
pygame.mixer.music.load(f"sounds/ambience/{levelData['ambience']}")
pygame.mixer.music.play(-1) # Loop indefinitely
except:
pass
ambientFile = levelData['ambience']
# Build list of paths to try (pack-specific first, then generic)
ambiencePaths = []
if self.levelPackName:
ambiencePaths.append(f"sounds/{self.levelPackName}/ambience/{ambientFile}")
ambiencePaths.append(f"sounds/ambience/{ambientFile}")
# Try each path until one works
for ambiencePath in ambiencePaths:
try:
pygame.mixer.music.load(ambiencePath)
pygame.mixer.music.play(-1) # Loop indefinitely
break
except:
continue
except:
pass

View File

@@ -86,6 +86,23 @@ class PowerUp(Object):
player.get_health() + 1,
player.get_max_health()
))
# Check for 100 coin bonus after adding shin bone coins
if player._coins >= 100:
# Only give extra lives in story mode, not survival mode (level_id 999)
if level.levelId != 999:
# Extra life
player._coins = 0
player._lives += 1
level.levelScore += 1000
play_sound(self.sounds['get_extra_life'])
else:
# In survival mode, reset coin counter but give bonus score instead
player._coins = 0
level.levelScore += 2000 # Double score bonus instead of extra life
speak("100 bone dust collected! Bonus score!")
play_sound(self.sounds.get('survivor_bonus', 'bone_dust')) # Use survivor_bonus sound if available, fallback to bone_dust
self.check_for_nunchucks(player)
elif self.item_type == 'witch_broom':
broomWeapon = Weapon.create_witch_broom()

View File

@@ -79,7 +79,7 @@ class WickedQuest:
# Pass existing player to new level
pygame.event.clear()
self.currentLevel = Level(levelData, self.get_sounds(), self.player)
self.currentLevel = Level(levelData, self.get_sounds(), self.player, self.currentGame)
return True
except FileNotFoundError:
@@ -356,6 +356,7 @@ class WickedQuest:
pygame.event.clear()
self.currentLevel.player.scoreboard.add_high_score()
cut_scene(self.get_sounds(), "game_over")
display_text(report)
def game_loop(self, startingLevelNum=1):
@@ -546,7 +547,7 @@ class WickedQuest:
# Generate first survival segment
levelData = self.survivalGenerator.generate_survival_level(self.survivalWave, 300)
self.currentLevel = Level(levelData, self.get_sounds(), self.player)
self.currentLevel = Level(levelData, self.get_sounds(), self.player, self.currentGame)
self.survival_loop()
@@ -660,7 +661,7 @@ class WickedQuest:
self.player.xPos = playerX
# Create new level
self.currentLevel = Level(levelData, self.get_sounds(), self.player)
self.currentLevel = Level(levelData, self.get_sounds(), self.player, self.currentGame)
def game_mode_menu(sounds):