fix restart+game over crash
This commit is contained in:
parent
8b5b68b338
commit
3cfcc4eef7
1 changed files with 13 additions and 9 deletions
|
@ -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 is_easy_mode: bool = false # whether to do easy-specific behaviors
|
||||||
var use_lives: bool = false
|
var use_lives: bool = false
|
||||||
var can_pause: bool = true
|
var can_pause: bool = true
|
||||||
|
var can_restart: bool = true
|
||||||
var current_palette: String = "default"
|
var current_palette: String = "default"
|
||||||
var still_playing: bool = false
|
var still_playing: bool = false
|
||||||
|
|
||||||
|
@ -225,14 +226,15 @@ func format_time(seconds: float) -> String:
|
||||||
|
|
||||||
#Restart level
|
#Restart level
|
||||||
func restart_level():
|
func restart_level():
|
||||||
clear_collectibles()
|
if can_restart:
|
||||||
Audio.ac_climb.stop()
|
clear_collectibles()
|
||||||
Audio.ac_die.stop()
|
Audio.ac_climb.stop()
|
||||||
Engine.time_scale = 1.0
|
Audio.ac_die.stop()
|
||||||
for tween in get_tree().get_processed_tweens():
|
Engine.time_scale = 1.0
|
||||||
tween.kill()
|
for tween in get_tree().get_processed_tweens():
|
||||||
change_map(load(get_map().filename))
|
tween.kill()
|
||||||
Audio.ac_music.stream_paused = false
|
change_map(load(get_map().filename))
|
||||||
|
Audio.ac_music.stream_paused = false
|
||||||
|
|
||||||
#Freeze frame
|
#Freeze frame
|
||||||
func freeze_frame(time):
|
func freeze_frame(time):
|
||||||
|
@ -248,7 +250,8 @@ func has_collection_bonus():
|
||||||
# called when player dies
|
# called when player dies
|
||||||
func _on_player_died() -> void:
|
func _on_player_died() -> void:
|
||||||
deaths += 1
|
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)
|
Audio.play_sound(Audio.a_game_over, Audio.ac_die)
|
||||||
get_tree().get_nodes_in_group("player")[0].queue_free()
|
get_tree().get_nodes_in_group("player")[0].queue_free()
|
||||||
var time_tween = create_tween()
|
var time_tween = create_tween()
|
||||||
|
@ -262,6 +265,7 @@ func _on_player_died() -> void:
|
||||||
var map = get_map()
|
var map = get_map()
|
||||||
var gover = load("res://menus/game_over.tscn").instance()
|
var gover = load("res://menus/game_over.tscn").instance()
|
||||||
map.add_child(gover)
|
map.add_child(gover)
|
||||||
|
can_restart = true
|
||||||
else:
|
else:
|
||||||
# count death
|
# count death
|
||||||
lives -= 1
|
lives -= 1
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue