More sounds added. Warning for edge of grave added, but it's not quite right yet.
This commit is contained in:
		
							
								
								
									
										18
									
								
								src/level.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/level.py
									
									
									
									
									
								
							| @@ -139,23 +139,33 @@ class Level: | ||||
|                         obj.xPos <= attackRange[1] and | ||||
|                         self.player.isJumping):  # Must be jumping to hit floating coffins | ||||
|                      | ||||
|                         if obj.hit(self.player.xPos): | ||||
|                                 self.bouncing_items.append(obj.dropped_item) | ||||
|                                 speak(f"{obj.dropped_item.item_type} falls out!") | ||||
|                             if obj.hit(self.player.xPos): | ||||
|                                     self.bouncing_items.append(obj.dropped_item) | ||||
|                                     speak(f"{obj.dropped_item.item_type} falls out!") | ||||
|  | ||||
|     def handle_collisions(self): | ||||
|         for obj in self.objects: | ||||
|             if not obj.isActive: | ||||
|                 continue | ||||
|              | ||||
|             # Handle grave edge warnings | ||||
|             if obj.isHazard: | ||||
|                 distance = abs(self.player.xPos - obj.xPos) | ||||
|                 # Check if within 1 tile and moving | ||||
|  | ||||
|                 if distance <= 1 and not self.player.isJumping: | ||||
|                     # Play edge warning sound (don't need to track the channel) | ||||
|                     self.sounds['edge'].play() | ||||
|  | ||||
|             if obj.is_in_range(self.player.xPos): | ||||
|                 if obj.isCollectible and self.player.isJumping: | ||||
|                     currentPos = round(self.player.xPos) | ||||
|                     if currentPos not in obj.collectedPositions: | ||||
|                         self.sounds[f'get_{obj.soundName}'].play() | ||||
|                         speak(f"Collected {obj.soundName}") | ||||
|                         obj.collect_at_position(currentPos) | ||||
|                         self.player.collectedItems.append(obj.soundName) | ||||
|                         if obj.soundName == "coin": | ||||
|                             self.player._coins += 1 | ||||
|                 elif obj.isHazard and not self.player.isJumping: | ||||
|                     self.sounds[obj.soundName].play() | ||||
|                     speak("You fell in an open grave!") | ||||
|   | ||||
| @@ -19,7 +19,7 @@ class Player: | ||||
|         # Inventory system | ||||
|         self.inventory = [] | ||||
|         self.collectedItems = [] | ||||
|         self.coins = 0 | ||||
|         self._coins = 0 | ||||
|          | ||||
|         # Combat related attributes | ||||
|         self.weapons = [] | ||||
| @@ -103,6 +103,10 @@ class Player: | ||||
|             if self._lives > 0: | ||||
|                 self._health = 10  # Reset health if we still have lives | ||||
|                  | ||||
|     def get_coins(self): | ||||
|         """Get remaining coins""" | ||||
|         return self._coins | ||||
|              | ||||
|     def get_lives(self): | ||||
|         """Get remaining lives""" | ||||
|         return self._lives | ||||
|   | ||||
		Reference in New Issue
	
	Block a user