hero-mark-2/maps/map.gd

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