2025-06-17 14:45:45 +00:00
|
|
|
@tool
|
|
|
|
extends Node2D
|
|
|
|
|
|
|
|
@export var key := "":
|
|
|
|
set(val):
|
|
|
|
key = val
|
|
|
|
if is_node_ready():
|
|
|
|
_update_text()
|
|
|
|
@export var label_rotation := 0.0:
|
|
|
|
set(val):
|
|
|
|
label_rotation = val
|
|
|
|
if is_node_ready():
|
|
|
|
label.rotation = val
|
|
|
|
|
|
|
|
@onready var label := $RichTextLabel as RichTextLabel
|
|
|
|
@onready var area2d := $Area2D as Area2D
|
|
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
label.rotation = label_rotation
|
|
|
|
_update_text()
|
|
|
|
if not Engine.is_editor_hint():
|
|
|
|
label.visible = false
|
|
|
|
area2d.body_entered.connect(_on_area_entered)
|
|
|
|
|
|
|
|
|
|
|
|
func _on_area_entered(_body):
|
|
|
|
if not _body is MainPlayer:
|
|
|
|
return
|
|
|
|
label.visible = true
|
|
|
|
await get_tree().create_timer(randf()).timeout
|
|
|
|
var tween = create_tween()
|
2025-06-18 13:02:36 +00:00
|
|
|
tween.tween_property(label, "position:y", 3.0, 0.6).set_trans(Tween.TRANS_BOUNCE)
|
|
|
|
tween.tween_property(label, "position:y", 0.0, 0.6).set_trans(Tween.TRANS_BOUNCE)
|
|
|
|
tween.set_loops(10)
|
|
|
|
create_tween().tween_property(label, "modulate:a", 0.0, 8.0)
|
2025-06-17 14:45:45 +00:00
|
|
|
|
|
|
|
func _update_text():
|
|
|
|
label.text = "[pulse ease=2.0 freq=2 color=#000000cf] " + tr(key)
|