89 lines
3 KiB
GDScript
89 lines
3 KiB
GDScript
extends CanvasLayer
|
|
|
|
onready var gold_counter = $GoldCounter
|
|
onready var shard_counter = $ShardCounter
|
|
onready var red_star = $RedStar
|
|
onready var yellow_star = $YellowStar
|
|
onready var green_star = $GreenStar
|
|
onready var blue_star = $BlueStar
|
|
onready var magenta_star = $MagentaStar
|
|
onready var score_counter = $ScoreCounter
|
|
onready var arrow_counter = $ArrowCounter
|
|
onready var lives_counter = $LivesCounter
|
|
onready var high_counter = $HighCounter
|
|
onready var time_counter = $TimeCounter
|
|
onready var oxygen = $Oxygen
|
|
onready var oxygen_meter = $Oxygen/OxygenMeter
|
|
|
|
export var song_name = "♫Music"
|
|
export (Color) var bonus_color
|
|
|
|
func _ready():
|
|
#Change graphics depending on if lives are on
|
|
if Game.use_lives:
|
|
$LivesHead.visible = true
|
|
else:
|
|
$DeathsHead.visible = true
|
|
#Change text to song name
|
|
var music = $Music
|
|
music.text = song_name
|
|
yield(get_tree(), "idle_frame")
|
|
var tween = create_tween()
|
|
tween.tween_property(music, "rect_position:x", 254.0 - music.rect_size.x, 1.0)
|
|
tween.tween_interval(3.0)
|
|
tween.tween_property(music, "rect_position:x", 256.0, 1.0)
|
|
#Fixes frame 1 2 deaths counter
|
|
if Game.use_lives == false:
|
|
lives_counter.text = str(Game.deaths)
|
|
#Show oxygen meter when underwater
|
|
# var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
# if player.underwater == true: oxygen.visible = true
|
|
|
|
func shard_popup(shard_number):
|
|
#Change text to song name
|
|
var shard_title = $ShardTitle
|
|
var level = LevelData.levels[Game.current_level]
|
|
shard_title.text = "§" + str(level.shard_titles[shard_number])
|
|
yield(get_tree(), "idle_frame")
|
|
var tween = create_tween()
|
|
tween.tween_property(shard_title, "rect_position:x", 254.0 - shard_title.rect_size.x, 1.0)
|
|
tween.tween_interval(3.0)
|
|
tween.tween_property(shard_title, "rect_position:x", 256.0, 1.0)
|
|
|
|
func _physics_process(delta):
|
|
#Gold Counter
|
|
gold_counter.text = "%02d" % Game.keys
|
|
#Shard Counter
|
|
shard_counter.text = str(Game.shards)
|
|
#Star Counter
|
|
red_star.visible = Game.stars_collected[0]
|
|
yellow_star.visible = Game.stars_collected[1]
|
|
green_star.visible = Game.stars_collected[2]
|
|
blue_star.visible = Game.stars_collected[3]
|
|
magenta_star.visible = Game.stars_collected[4]
|
|
#Score Counter
|
|
score_counter.text = "%05d" % Game.score
|
|
#Arrow Counter
|
|
arrow_counter.text = str(Game.arrows)
|
|
##TOUCH UP LATER
|
|
#Lives counter
|
|
if Game.use_lives:
|
|
lives_counter.text = str(Game.lives)
|
|
else:
|
|
lives_counter.text = str(Game.deaths)
|
|
#Life bonus color
|
|
if Game.lives == 2:
|
|
lives_counter.modulate = bonus_color
|
|
else:
|
|
lives_counter.modulate = Color.white
|
|
##Timer
|
|
time_counter.text = Game.format_time(Game.time)
|
|
#Time bonus counter
|
|
if (Game.has_collection_bonus() && Game.time <= Game.get_map().target_time_100) or (!Game.has_collection_bonus() && Game.time <= Game.get_map().target_time_any):
|
|
time_counter.modulate = bonus_color
|
|
else:
|
|
time_counter.modulate = Color.white
|
|
# #Oxygen meter
|
|
# var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
# oxygen_meter.scale.x = player.oxygen_timer.time_left
|
|
#if oxygen_meter.scale.x > 15: oxygen_meter.scale.x = 15
|