diff --git a/autoloads/game.gd b/autoloads/game.gd index 01bd7b4..27398ff 100644 --- a/autoloads/game.gd +++ b/autoloads/game.gd @@ -46,6 +46,7 @@ var enemy_speed_factor: float = 1.0 # multiplier of enemy speed var is_easy_mode: bool = false # whether to do easy-specific behaviors var use_lives: bool = false var can_pause: bool = true +var can_restart: bool = true var current_palette: String = "default" var still_playing: bool = false @@ -225,14 +226,15 @@ func format_time(seconds: float) -> String: #Restart level func restart_level(): - clear_collectibles() - Audio.ac_climb.stop() - Audio.ac_die.stop() - Engine.time_scale = 1.0 - for tween in get_tree().get_processed_tweens(): - tween.kill() - change_map(load(get_map().filename)) - Audio.ac_music.stream_paused = false + if can_restart: + clear_collectibles() + Audio.ac_climb.stop() + Audio.ac_die.stop() + Engine.time_scale = 1.0 + for tween in get_tree().get_processed_tweens(): + tween.kill() + change_map(load(get_map().filename)) + Audio.ac_music.stream_paused = false #Freeze frame func freeze_frame(time): @@ -248,7 +250,8 @@ func has_collection_bonus(): # called when player dies func _on_player_died() -> void: deaths += 1 - if lives <= 0 and use_lives: + if use_lives and lives <= 0: + can_restart = false Audio.play_sound(Audio.a_game_over, Audio.ac_die) get_tree().get_nodes_in_group("player")[0].queue_free() var time_tween = create_tween() @@ -262,6 +265,7 @@ func _on_player_died() -> void: var map = get_map() var gover = load("res://menus/game_over.tscn").instance() map.add_child(gover) + can_restart = true else: # count death lives -= 1