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:
@@ -239,6 +239,87 @@
|
|||||||
"collectible": true,
|
"collectible": true,
|
||||||
"static": 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],
|
"x_range": [400, 415],
|
||||||
"y": 0,
|
"y": 0,
|
||||||
|
|||||||
BIN
sounds/_finish_level.ogg
LFS
Normal file
BIN
sounds/_finish_level.ogg
LFS
Normal file
Binary file not shown.
@@ -28,6 +28,7 @@ class Level:
|
|||||||
self.rightBoundary = levelData["boundaries"]["right"]
|
self.rightBoundary = levelData["boundaries"]["right"]
|
||||||
self.isLocked = levelData.get("locked", False) # Default to False if not specified
|
self.isLocked = levelData.get("locked", False) # Default to False if not specified
|
||||||
self.levelId = levelData["level_id"]
|
self.levelId = levelData["level_id"]
|
||||||
|
self.levelName = levelData.get("name", "Unnamed Level")
|
||||||
|
|
||||||
# Get footstep sound for this level, default to 'footstep' if not specified
|
# Get footstep sound for this level, default to 'footstep' if not specified
|
||||||
self.footstepSound = levelData.get("footstep_sound", "footstep")
|
self.footstepSound = levelData.get("footstep_sound", "footstep")
|
||||||
|
|||||||
@@ -133,8 +133,11 @@ class Player:
|
|||||||
self._jack_o_lantern_count += 1
|
self._jack_o_lantern_count += 1
|
||||||
|
|
||||||
def add_guts(self):
|
def add_guts(self):
|
||||||
"""Apply guts, increase max_health by 2"""
|
"""Apply guts, increase max_health by 2 if less than 20 else restore health"""
|
||||||
self._maxHealth += 2
|
if self._maxHealth < 20:
|
||||||
|
self._maxHealth += 2
|
||||||
|
else:
|
||||||
|
self._health = self._maxHealth
|
||||||
|
|
||||||
def throw_projectile(self):
|
def throw_projectile(self):
|
||||||
"""Throw a jack o'lantern if we have any"""
|
"""Throw a jack o'lantern if we have any"""
|
||||||
|
|||||||
@@ -102,8 +102,6 @@ class PowerUp(Object):
|
|||||||
|
|
||||||
def check_for_nunchucks(self, player):
|
def check_for_nunchucks(self, player):
|
||||||
"""Check if player has materials for nunchucks and create if conditions are met"""
|
"""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
|
if (player.shinBoneCount >= 2 and
|
||||||
'guts' in player.collectedItems and
|
'guts' in player.collectedItems and
|
||||||
not any(weapon.name == "nunchucks" for weapon in player.weapons)):
|
not any(weapon.name == "nunchucks" for weapon in player.weapons)):
|
||||||
|
|||||||
@@ -141,18 +141,18 @@ class WickedQuest:
|
|||||||
# Update time in stats
|
# Update time in stats
|
||||||
self.currentLevel.player.stats.update_stat('Total time', timeTaken, levelOnly=True)
|
self.currentLevel.player.stats.update_stat('Total time', timeTaken, levelOnly=True)
|
||||||
|
|
||||||
report = [f"Level {self.currentLevel.levelId} Complete!"]
|
report = [f"Time taken: {minutes} minutes and {seconds} seconds"]
|
||||||
report.append(f"Time taken: {minutes} minutes and {seconds} seconds")
|
|
||||||
|
|
||||||
# Add all level stats
|
# Add all level stats
|
||||||
for key in self.currentLevel.player.stats.level:
|
for key in self.currentLevel.player.stats.level:
|
||||||
if key != 'Total time': # Skip time since we already displayed it
|
if key != 'Total time': # Skip time since we already displayed it
|
||||||
report.append(f"{key}: {self.currentLevel.player.stats.get_level_stat(key)}")
|
report.append(f"{key}: {self.currentLevel.player.stats.get_level_stat(key)}")
|
||||||
|
|
||||||
# Stop all sounds and music
|
# Stop all sounds and music then play fanfare
|
||||||
pygame.mixer.stop()
|
|
||||||
try:
|
try:
|
||||||
|
speak(f"Level {self.currentLevel.levelId}, {self.currentLevel.levelName}, complete!")
|
||||||
pygame.mixer.music.stop()
|
pygame.mixer.music.stop()
|
||||||
|
cut_scene(self.sounds, '_finish_level')
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user