summaryrefslogtreecommitdiff
path: root/Scenes/Transition.gd
blob: 02dee1d9d2eaad6c390291598c8fb7d5e1a1f546 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
extends Spatial

export (Array, NodePath) var dices
onready var camera = get_viewport().get_camera()

onready var prev_stage = 0
onready var next_stage = 0

func _ready():
	prev_stage = Global.current_stage - 1
	next_stage = Global.current_stage
	
	get_node(dices[prev_stage+1]).show()
	
	yield(animate_next_stage(), "completed")
	yield(get_tree().create_timer(2), "timeout")
	get_tree().change_scene("res://Scenes/Dungeon.tscn")

func animate_next_stage():
	var pos0 = $UIController/ArmPivot.rect_position
	var pos1 = camera.unproject_position(get_node(dices[prev_stage+1]).translation)
	var pos2 = camera.unproject_position(get_node(dices[next_stage+1]).translation)
	
	yield(get_tree().create_timer(1), "timeout")
	tween_pos(pos1)
	yield(get_tree().create_timer(1), "timeout")
	get_node(dices[prev_stage+1]).hide()
	tween_pos(pos2)
	yield(get_tree().create_timer(1), "timeout")
	get_node(dices[next_stage+1]).show()
	tween_pos(pos0)

func tween_pos(pos):
	$Tween.interpolate_property(\
		$UIController/ArmPivot,\
		"rect_position",\
		$UIController/ArmPivot.rect_position,\
		pos,\
		1,\
		Tween.TRANS_CUBIC,\
		Tween.EASE_OUT
	)
	$Tween.start()

# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
#	pass