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:
+18
-6
@@ -16,8 +16,9 @@ from src.skull_storm import SkullStorm
|
|||||||
|
|
||||||
|
|
||||||
class Level:
|
class Level:
|
||||||
def __init__(self, levelData, sounds, player):
|
def __init__(self, levelData, sounds, player, levelPackName=None):
|
||||||
self.sounds = sounds
|
self.sounds = sounds
|
||||||
|
self.levelPackName = levelPackName
|
||||||
self.objects = []
|
self.objects = []
|
||||||
self.enemies = []
|
self.enemies = []
|
||||||
self.bouncing_items = []
|
self.bouncing_items = []
|
||||||
@@ -52,11 +53,22 @@ class Level:
|
|||||||
try:
|
try:
|
||||||
pygame.mixer.music.stop()
|
pygame.mixer.music.stop()
|
||||||
if "ambience" in levelData:
|
if "ambience" in levelData:
|
||||||
try:
|
ambientFile = levelData['ambience']
|
||||||
pygame.mixer.music.load(f"sounds/ambience/{levelData['ambience']}")
|
|
||||||
pygame.mixer.music.play(-1) # Loop indefinitely
|
# Build list of paths to try (pack-specific first, then generic)
|
||||||
except:
|
ambiencePaths = []
|
||||||
pass
|
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:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -86,6 +86,23 @@ class PowerUp(Object):
|
|||||||
player.get_health() + 1,
|
player.get_health() + 1,
|
||||||
player.get_max_health()
|
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)
|
self.check_for_nunchucks(player)
|
||||||
elif self.item_type == 'witch_broom':
|
elif self.item_type == 'witch_broom':
|
||||||
broomWeapon = Weapon.create_witch_broom()
|
broomWeapon = Weapon.create_witch_broom()
|
||||||
|
|||||||
+4
-3
@@ -79,7 +79,7 @@ class WickedQuest:
|
|||||||
|
|
||||||
# Pass existing player to new level
|
# Pass existing player to new level
|
||||||
pygame.event.clear()
|
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
|
return True
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
@@ -356,6 +356,7 @@ class WickedQuest:
|
|||||||
pygame.event.clear()
|
pygame.event.clear()
|
||||||
self.currentLevel.player.scoreboard.add_high_score()
|
self.currentLevel.player.scoreboard.add_high_score()
|
||||||
|
|
||||||
|
cut_scene(self.get_sounds(), "game_over")
|
||||||
display_text(report)
|
display_text(report)
|
||||||
|
|
||||||
def game_loop(self, startingLevelNum=1):
|
def game_loop(self, startingLevelNum=1):
|
||||||
@@ -546,7 +547,7 @@ class WickedQuest:
|
|||||||
|
|
||||||
# Generate first survival segment
|
# Generate first survival segment
|
||||||
levelData = self.survivalGenerator.generate_survival_level(self.survivalWave, 300)
|
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()
|
self.survival_loop()
|
||||||
|
|
||||||
@@ -660,7 +661,7 @@ class WickedQuest:
|
|||||||
self.player.xPos = playerX
|
self.player.xPos = playerX
|
||||||
|
|
||||||
# Create new level
|
# 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):
|
def game_mode_menu(sounds):
|
||||||
|
|||||||
Reference in New Issue
Block a user