65 lines
2.1 KiB
GDScript

extends Control
const SCROLL_SPEED = 25
var scroll_timer : Timer
const SCROLL_TIP_DELAY = 5
const SCROLL_FADE_RATE = 0.05
const SCROLL_SHOW_RATE = 5
func _ready():
$"/root/MusicManager".play_music("Dystopian/The Story Continues", false)
if not scroll_timer:
scroll_timer = Timer.new()
add_child(scroll_timer)
$Tip.modulate.a = 0
scroll_timer.connect("timeout", self, "display_tip")
scroll_timer.start(SCROLL_TIP_DELAY)
set_completed()
func _process(delta):
if Input.is_action_pressed("ui_accept"):
$Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED * 10
else:
$Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED
if abs($Scolling.rect_position.y) > $Scolling.rect_size.y + 100:
get_tree().change_scene("res://Scenes/Title.scn")
func display_tip():
$Tip.modulate.a = 0
$Tip.text = "Press SPACE to speed up."
$Tip.show()
scroll_timer.disconnect("timeout", self, "display_tip")
scroll_timer.disconnect("timeout", self, "fade_tip_out")
scroll_timer.disconnect("timeout", self, "start_fade_tip_out")
scroll_timer.connect("timeout", self, "fade_tip_in")
scroll_timer.start(SCROLL_FADE_RATE)
func start_fade_tip_out():
scroll_timer.disconnect("timeout", self, "display_tip")
scroll_timer.disconnect("timeout", self, "fade_tip_in")
scroll_timer.disconnect("timeout", self, "start_fade_tip_out")
scroll_timer.connect("timeout", self, "fade_tip_out")
scroll_timer.start(SCROLL_FADE_RATE)
func fade_tip_in():
$Tip.modulate.a = clamp($Tip.modulate.a + 0.1, 0, 1)
if $Tip.modulate.a == 1:
scroll_timer.disconnect("timeout", self, "display_tip")
scroll_timer.disconnect("timeout", self, "fade_tip_out")
scroll_timer.disconnect("timeout", self, "fade_tip_in")
scroll_timer.connect("timeout", self, "start_fade_tip_out")
scroll_timer.start(SCROLL_SHOW_RATE)
func fade_tip_out():
$Tip.modulate.a = clamp($Tip.modulate.a - 0.1, 0, 1)
if $Tip.modulate.a == 0:
scroll_timer.stop()
func set_completed():
var file = File.new()
file.open("user://progress.json", File.WRITE)
file.store_string(to_json({"completed":"true"}))
file.close()