revo-jailbreak/objects/hud/hud.gd
2023-09-19 10:16:07 -04:00

88 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
onready var start_time = Time.get_ticks_msec()
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)
#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
Game.time = Time.get_ticks_msec() - start_time
time_counter.text = Game.timeify(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