72 lines
2.3 KiB
GDScript3
72 lines
2.3 KiB
GDScript3
extends Spatial
|
|
|
|
# Declare member variables here. Examples:
|
|
# var a = 2
|
|
# var b = "text"
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
var frame_tf: Transform = Transform()
|
|
|
|
func master_control(pos):
|
|
$master.walkto(pos)
|
|
|
|
func update_quests():
|
|
for q in world.quests:
|
|
if q.is_active():
|
|
$info/task/task.text = q.get_cur_task_text()
|
|
break
|
|
for q in world.quests:
|
|
if q.is_active():
|
|
q.update()
|
|
func start_quest(quest: Quest):
|
|
$start_quest_notification.start_notification(quest.get_title(), quest.get_description())
|
|
|
|
func _ready():
|
|
$master.add_to_group("master")
|
|
controls.master_node = $master
|
|
world.master_node = $master
|
|
world.init_data()
|
|
world.nav = $nav
|
|
controls.camera = $Camera
|
|
controls.connect("user_click", self, "master_control")
|
|
for k in world.line.keys():
|
|
var cd = world.line[k]
|
|
if cd.type == 0:
|
|
var char_sc = characters.characters[0].instance()
|
|
cd.scene = char_sc
|
|
get_tree().get_root().add_child(char_sc)
|
|
var nav: Navigation2D = get_node("nav")
|
|
var p = nav.get_closest_point(get_node("line_spawn").global_transform.origin + Vector3(randf() * 20.0 - 10.0, 0.0, randf() * 20 - 10.0))
|
|
char_sc.translation = p
|
|
char_sc.set_meta("data", cd)
|
|
# world.team[newkey] = cd
|
|
# world.line.erase(k)
|
|
else:
|
|
var char_sc = characters.characters[1].instance()
|
|
cd.scene = char_sc
|
|
get_tree().get_root().add_child(char_sc)
|
|
var nav: Navigation2D = get_node("nav")
|
|
var p = nav.get_closest_point(get_node("line_spawn").global_transform.origin + Vector3(randf() * 20.0 - 10.0, 0.0, randf() * 20 - 10.0))
|
|
char_sc.translation = p
|
|
char_sc.set_meta("data", cd)
|
|
# world.team[newkey] = cd
|
|
# cd.scene.set_meta("data", cd)
|
|
var tut_quest = Quest.new("Tutorial", "This quest shortly introduces to a game")
|
|
tut_quest.connect("started", self, "start_quest")
|
|
world.quests.push_back(tut_quest)
|
|
tut_quest.start()
|
|
update_quests()
|
|
var quest_timer : = Timer.new()
|
|
quest_timer.wait_time = 2.0
|
|
add_child(quest_timer)
|
|
quest_timer.connect("timeout", self, "update_quests")
|
|
quest_timer.start()
|
|
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta):
|
|
var pos = $master.global_transform.origin
|
|
pos.y = $Camera.global_transform.origin.y
|
|
$Camera.global_transform.origin = $Camera.global_transform.origin.linear_interpolate(pos, 0.8 * delta)
|