import time # --- Monkeypatching Setup --- # Set this to True to disable sleep, False to enable it. DEBUG = True # Store the original sleep function in case you need it later original_sleep = time.sleep if DEBUG: print("DEBUG mode is ON. Disabling time.sleep().") # Replace the sleep function with a lambda that does nothing time.sleep = lambda seconds: None # ------------------------------- # Helper function for Game Over # ------------------------------- def game_over(health, courage, inventory): print("\n--- GAME OVER ---") print(f"Courage: {courage}") print(f"Health: {health}") print(f"Inventory: {inventory}") print("Thanks for playing...") time.sleep(2) # ------------------------------- # Intro Scene # ------------------------------- def intro_scene(): begin = input("Shall we begin? (Y/N)? ").lower() if begin == "n": print("You can't delay the inevitable.") time.sleep(2) return True else: print("Wake up...") time.sleep(2) print("\nYou wake up in a small cabin in the woods.") time.sleep(2) print("It's raining outside, and you hear footsteps nearby...") time.sleep(2) return True # ------------------------------- # Cabin Scene # ------------------------------- def cabin_scene(health, courage, inventory): choice1 = input("\nDo you OPEN the door or HIDE under the bed? ").lower() if choice1 == "open": courage += 10 print("\nYou open the door slowly... A lost traveler stands outside asking for help.") time.sleep(2) choice2 = input("Do you INVITE them in or REFUSE? ").lower() if choice2 == "invite": print("\nYou share some soup with the traveler. They thank you and give you a map.") time.sleep(2) inventory.append("map") print("You received a map.") time.sleep(2) else: print("\nYou keep the door shut. The footsteps fade. Loneliness fills the cabin...") time.sleep(2) print("But you aren't alone...") time.sleep(3) print("Game over.") time.sleep(2) health -= 101 game_over(health, courage, inventory) return None, courage, inventory # Stop game here elif choice1 == "hide": courage -= 5 print("\nYou crawl under the bed and hold your breath...") time.sleep(2) print("After a moment, a wolf sneaks in!") time.sleep(2) choice2 = input("Do you STAY quiet or RUN outside? ").lower() if choice2 == "stay": print("\nThe wolf sniffs around but leaves. You survive!") time.sleep(2) print("But now you're all alone...") time.sleep(2) print("Game over.") game_over(health, courage, inventory) return None, courage, inventory else: print("\nYou dash outside but slip on the mud. The wolf bites you.") health -= 100 time.sleep(2) print(f"Your health is now {health}") time.sleep(3) print("...") time.sleep(3) print("You bled out.") time.sleep(3) print("It seems cowardice gets you nowhere.") time.sleep(3) print("Game over.") game_over(health, courage, inventory) return None, courage, inventory else: print("\nYou hesitate too long... the footsteps reach the door.") time.sleep(2) print("...") time.sleep(3) print("Game over!") health -= 101 time.sleep(2) game_over(health, courage, inventory) return None, courage, inventory return health, courage, inventory # Continue game if survived # ------------------------------- # Forest Scene # ------------------------------- def forest_scene(health, inventory): if "map" in inventory: next_scene = input("\nDo you want to FOLLOW the map or STAY in the cabin? ").lower() if next_scene == "follow": print("\nYou pack your things and step into the dark forest...") time.sleep(2) print("After an hour, you reach an old bridge. It looks weak.") time.sleep(2) bridge_choice = input("Do you CROSS it or FIND another way? ").lower() if bridge_choice == "cross": print("\nYou make it halfway... the bridge creaks.") time.sleep(2) print("You run and barely make it across—but you drop your map!") if "map" in inventory: inventory.remove("map") health -= 10 print(f"Health: {health}") time.sleep(2) else: print("\nYou walk along the riverbank and find a safer crossing.") health += 5 print(f"Health: {health}") else: print("\nYou stay in the cabin. It's quiet...") time.sleep(3) print("The world moves on without you. Your story ends here.") time.sleep(2) game_over(health, 0, inventory) return None, inventory else: print("\nYou have no map, so you cannot continue into the forest yet.") return health, inventory return health, inventory # ------------------------------- # Mountain Scene # ------------------------------- def mountain_scene(health, inventory): print("\nYou find yourself at the edge of a colossal mountain.") time.sleep(3) print("The wind howls. There's a narrow path leading up and a dark cave nearby.") time.sleep(3) choicem = input("Do you CLIMB the path or ENTER the cave? ").lower() if choicem == "climb": print("You start climbing carefully...") time.sleep(2) print("Halfway up, rocks crumble under your feet. You barely hang on.") health -= 15 time.sleep(2) print(f"You survive but lose some health. Health: {health}") else: print("You step into the cave. It's cold and dark.") time.sleep(2) print("You find a glowing stone—it feels warm to the touch.") inventory.append("Glowing stone") time.sleep(2) print("You gained: Glowing stone") time.sleep(2) return health, inventory # ------------------------------- # Main Game Loop # ------------------------------- def main(): while True: health = 100 courage = 0 inventory = [] print("\n--- NEW GAME ---") time.sleep(1) # Intro continue_game = intro_scene() if not continue_game: break # Cabin scene result = cabin_scene(health, courage, inventory) if result[0] is None: break # player died else: health, courage, inventory = result # Forest scene result = forest_scene(health, inventory) if result[0] is None: break else: health, inventory = result # Mountain scene health, inventory = mountain_scene(health, inventory) # Show final stats after surviving all scenes game_over(health, courage, inventory) # Replay option play_again = input("\nPlay again? (yes/no) ").lower() if play_again == "no": print("Thanks for playing...") break else: print("If you insist...") time.sleep(1) # ------------------------------- # Run the Game # ------------------------------- if __name__ == "__main__": main()