Finally remembered to remove some debug statements. Added a finish level fanfare for the skeleton, complete with wicked laugh. Work on level 8, it used to be a tiny level, now it's better and has a ghost boss.

This commit is contained in:
Storm Dragon
2025-02-14 03:12:05 -05:00
parent 5953369440
commit c17d19fb6b
6 changed files with 94 additions and 8 deletions

View File

@@ -239,6 +239,87 @@
"collectible": true,
"static": true
},
{
"x_range": [60, 85],
"y": 15,
"type": "skull_storm",
"damage": 4,
"maximum_skulls": 3,
"frequency": {
"min": 1,
"max": 3
}
},
{
"x_range": [335, 345],
"y": 0,
"enemy_type": "ghoul",
"health": 6,
"damage": 3,
"attack_range": 2,
"attack_pattern": {
"type": "hunter",
"turn_threshold": 4
}
},
{
"x_range": [335, 395],
"y": 15,
"type": "skull_storm",
"damage": 4,
"maximum_skulls": 5,
"frequency": {
"min": 2,
"max": 4
}
},
{
"x_range": [350, 360],
"y": 0,
"enemy_type": "ghoul",
"health": 6,
"damage": 3,
"attack_range": 2,
"attack_pattern": {
"type": "hunter",
"turn_threshold": 4
}
},
{
"x": 355,
"y": 0,
"type": "grave",
"sound": "grave",
"static": true,
"zombie_spawn_chance": 20,
"item": "guts"
},
{
"x_range": [365, 375],
"y": 0,
"enemy_type": "ghoul",
"health": 6,
"damage": 3,
"attack_range": 2,
"attack_pattern": {
"type": "hunter",
"turn_threshold": 4
}
},
{
"x_range": [393, 397],
"y": 3,
"sound": "coin",
"collectible": true,
"static": true
},
{
"x": 395,
"y": 3,
"sound": "coffin",
"type": "coffin",
"item": "jack_o_lantern"
},
{
"x_range": [400, 415],
"y": 0,

BIN
sounds/_finish_level.ogg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -28,6 +28,7 @@ class Level:
self.rightBoundary = levelData["boundaries"]["right"]
self.isLocked = levelData.get("locked", False) # Default to False if not specified
self.levelId = levelData["level_id"]
self.levelName = levelData.get("name", "Unnamed Level")
# Get footstep sound for this level, default to 'footstep' if not specified
self.footstepSound = levelData.get("footstep_sound", "footstep")

View File

@@ -133,8 +133,11 @@ class Player:
self._jack_o_lantern_count += 1
def add_guts(self):
"""Apply guts, increase max_health by 2"""
self._maxHealth += 2
"""Apply guts, increase max_health by 2 if less than 20 else restore health"""
if self._maxHealth < 20:
self._maxHealth += 2
else:
self._health = self._maxHealth
def throw_projectile(self):
"""Throw a jack o'lantern if we have any"""

View File

@@ -102,8 +102,6 @@ class PowerUp(Object):
def check_for_nunchucks(self, player):
"""Check if player has materials for nunchucks and create if conditions are met"""
print("Checking for nunchucks.")
print(f"Player has {player.shinBoneCount} shin bones and {player.collectedItems}.")
if (player.shinBoneCount >= 2 and
'guts' in player.collectedItems and
not any(weapon.name == "nunchucks" for weapon in player.weapons)):

View File

@@ -141,18 +141,18 @@ class WickedQuest:
# Update time in stats
self.currentLevel.player.stats.update_stat('Total time', timeTaken, levelOnly=True)
report = [f"Level {self.currentLevel.levelId} Complete!"]
report.append(f"Time taken: {minutes} minutes and {seconds} seconds")
report = [f"Time taken: {minutes} minutes and {seconds} seconds"]
# Add all level stats
for key in self.currentLevel.player.stats.level:
if key != 'Total time': # Skip time since we already displayed it
report.append(f"{key}: {self.currentLevel.player.stats.get_level_stat(key)}")
# Stop all sounds and music
pygame.mixer.stop()
# Stop all sounds and music then play fanfare
try:
speak(f"Level {self.currentLevel.levelId}, {self.currentLevel.levelName}, complete!")
pygame.mixer.music.stop()
cut_scene(self.sounds, '_finish_level')
except:
pass