Fixed item crazy sound mismatch. Updated instructions, probably not final version, but at least a place holder.
This commit is contained in:
		| @@ -17,28 +17,43 @@ Control: attack | ||||
| Space: hold to run. | ||||
| f: throw jack O'lantern | ||||
| c: check bone dust | ||||
| e: Check currently wielded weapon. | ||||
| h check health | ||||
| j: check jack O'lanterns | ||||
| l: check lives remaining | ||||
| Alt+PageDown: Master volume decrease | ||||
| Alt+PageUp: Master volume increase | ||||
| Alt+End: Ambience volume decrease | ||||
| Alt+Home: Game volume increase | ||||
| Alt+Delete: Game sounds volume decrease | ||||
| Alt+Insert: Game sounds volume increase | ||||
|  | ||||
| Notes | ||||
|  | ||||
| Each 5 bone dust restores 1 health. | ||||
| Each 100 bone dust gains an extra unlife. | ||||
| Coffins must be broken with your weapon. Jump and attack to shatter them. | ||||
| Just because you leave catapult range doesn't mean you are safe from already fired pumpkins. | ||||
| Spider webs can be passed by ducking as you move by them. | ||||
| Spider web affect lasts even after death. Your speed is reduced to half for 15 seconds. | ||||
| Running and jumping both move you at 1.5 your normal speed. | ||||
|  | ||||
| Enemies | ||||
|  | ||||
| Goblin: Walks back and forth in his area trying to break your bones. | ||||
| Ghoul: Same behavior as goblin, but if you enter his area he will actively chase you, staying close. | ||||
| Boogie man: A stronger goblin. | ||||
| Witch: Like boogie man, but drops broom if you do not have one, else drops her cauldron. | ||||
| Pumpkin Catapult: Fires pumpkins at you in hopes of smashing you into bone dust. | ||||
| Skull Storm: Screaming skulls rain down causing damage if they hit you. | ||||
| Spider: Very dangerous fast enemy. | ||||
| Zombie: Slow moving creatures that have a chance to climb out of the open grave. They are slow moving but deadly. If they hit you you lose a life. | ||||
|  | ||||
| Bonuses and items | ||||
|  | ||||
| Bone dust: Currency of the game. Collect it to gain health and extra lives. | ||||
| Witch's broom: A weapon gained from witches. Stronger than the graver digger's rusty shovel. | ||||
| Coffin: Contains items. Be quick, they try to escape. | ||||
| Guts: Adds 2 health to your maximum unlife. | ||||
| Hand of Glory: Grants invincibility for a short time. | ||||
| Jack O'lantern: Throw these at your enemies to hit them from a distance. | ||||
| Shin bone: Worth 5 bone dust. | ||||
| Skeletal nunchucks: Only a rumer. If it exists, it probably has to be crafted by obtaining the correct items. It is said to be the most powerful weapon in the game. | ||||
|   | ||||
| @@ -231,14 +231,14 @@ class Level: | ||||
|  | ||||
|         # Update bouncing items | ||||
|         for item in self.bouncing_items[:]:  # Copy list to allow removal | ||||
|             if not item.update(currentTime): | ||||
|             if not item.update(currentTime, self.player.xPos): | ||||
|                 self.bouncing_items.remove(item) | ||||
|                 if not item.isActive: | ||||
|                     speak(f"{item.soundName} got away!") | ||||
|                 continue | ||||
|                  | ||||
|             # Check for item collection | ||||
|             if abs(item.xPos - self.player.xPos) < 1 and self.player.isJumping: | ||||
|             if abs(item._currentX - self.player.xPos) < 1 and self.player.isJumping: | ||||
|                 play_sound(self.sounds[f'get_{item.soundName}']) | ||||
|                 item.apply_effect(self.player) | ||||
|                 item.isActive = False | ||||
|   | ||||
| @@ -12,33 +12,38 @@ class PowerUp(Object): | ||||
|         ) | ||||
|         self.sounds = sounds | ||||
|         self.direction = direction | ||||
|         self.speed = 0.05  # Base movement speed | ||||
|         self.speed = 0.055  # Base movement speed | ||||
|         self.item_type = item_type | ||||
|         self.channel = None | ||||
|         self._currentX = x  # Initialize the current x position | ||||
|          | ||||
|     def update(self, current_time): | ||||
|         """Update item position""" | ||||
|     def update(self, current_time, player_pos): | ||||
|         """Update item position | ||||
|      | ||||
|         Args: | ||||
|             current_time: Current game time in milliseconds | ||||
|             player_pos: Current player x position | ||||
|         """ | ||||
|         if not self.isActive: | ||||
|             return False | ||||
|              | ||||
|          | ||||
|         # Update position | ||||
|         self._currentX += self.direction * self.speed | ||||
|          | ||||
|      | ||||
|         # Update positional audio | ||||
|         if self.channel is None or not self.channel.get_busy(): | ||||
|             self.channel = obj_play(self.sounds, "item_bounce", self.xPos, self._currentX) | ||||
|             self.channel = obj_play(self.sounds, "item_bounce", player_pos, self._currentX) | ||||
|         else: | ||||
|             self.channel = obj_update(self.channel, self.xPos, self._currentX) | ||||
|              | ||||
|         # Check if item has gone too far (20 tiles) | ||||
|         if abs(self._currentX - self.xRange[0]) > 20: | ||||
|             self.channel = obj_update(self.channel, player_pos, self._currentX) | ||||
|          | ||||
|         # Check if item has gone too far (12 tiles) | ||||
|         if abs(self._currentX - player_pos) > 12: | ||||
|             self.isActive = False | ||||
|             if self.channel: | ||||
|                 self.channel.stop() | ||||
|                 self.channel = None | ||||
|             return False | ||||
|              | ||||
|          | ||||
|         return True | ||||
|          | ||||
|     def apply_effect(self, player): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user