60 lines
1.7 KiB
GDScript
60 lines
1.7 KiB
GDScript
extends Node2D
|
|
|
|
const PauseScreen := preload("res://objects/hud/pause_screen.tscn")
|
|
|
|
export var target_time_any = 0
|
|
export var target_time_100 = 0
|
|
export (AudioStream) var music
|
|
export (Array, PackedScene) var lore_entries = []
|
|
|
|
#Bonuses
|
|
var time_bonus = true
|
|
var life_bonus = true
|
|
var collectible_bonus = false
|
|
|
|
func _notification(what: int) -> void:
|
|
match what:
|
|
NOTIFICATION_WM_FOCUS_OUT:
|
|
if Debug.entry == false and Game.can_pause and not get_tree().paused:
|
|
var pause = PauseScreen.instance()
|
|
pause.lore_entries = lore_entries
|
|
get_parent().call_deferred("add_child", pause)
|
|
|
|
func _ready():
|
|
get_tree().paused = true
|
|
Game.can_pause = false
|
|
Fade.fade_in(Options.transition_speed_secs)
|
|
Fade.connect("fade_finished", get_tree(), "set_pause", [false], CONNECT_ONESHOT)
|
|
Fade.connect("fade_finished", Game, "set", ["can_pause", true], CONNECT_ONESHOT)
|
|
Audio.play_music(music)
|
|
Game.time = 0.0
|
|
Game.still_playing = true
|
|
if Debug.reset_is_cheating: Debug.is_cheating = false
|
|
|
|
func _physics_process(delta):
|
|
if Game.still_playing:
|
|
Game.time += delta
|
|
if Debug.entry == false && Game.can_pause:
|
|
#Pause
|
|
if Input.is_action_just_pressed("pause") && !get_tree().paused:
|
|
var pause = PauseScreen.instance()
|
|
pause.lore_entries = lore_entries
|
|
get_parent().add_child(pause)
|
|
# restart level
|
|
if Input.is_action_just_pressed("restart") and not Game.marathon_mode:
|
|
Game.call_deferred("restart_level")
|
|
|
|
if Game.keys == 50 && Game.shards == 5:
|
|
#Time bonus
|
|
collectible_bonus = true
|
|
#Time bonus
|
|
if Game.time <= target_time_100:
|
|
time_bonus = true
|
|
else:
|
|
time_bonus = false
|
|
else:
|
|
if Game.time <= target_time_any:
|
|
time_bonus = true
|
|
else:
|
|
time_bonus = false
|
|
|