diff --git a/ai/tasks/calc_distance_to_location.gd b/ai/tasks/calc_distance_to_location.gd new file mode 100644 index 0000000..0a8aa8f --- /dev/null +++ b/ai/tasks/calc_distance_to_location.gd @@ -0,0 +1,19 @@ +@tool +extends BTAction + +@export var target_location_var: StringName = &"target_location" +@export var output_var: StringName = &"location_distance" + +func _generate_name() -> String: + return "CalcDistanceToLocation \"%s\" -> %s" % [ + target_location_var, + output_var + ] + +func _tick(_delta: float) -> Status: + var target_location:Vector3 = blackboard.get_var(target_location_var) + + var distance:float = (target_location - agent.global_position).length() + blackboard.set_var(output_var, distance) + + return SUCCESS diff --git a/ai/tasks/get_target_location.gd b/ai/tasks/get_target_location.gd new file mode 100644 index 0000000..a9befcb --- /dev/null +++ b/ai/tasks/get_target_location.gd @@ -0,0 +1,23 @@ +@tool +extends BTAction + +@export var max_distance:float = 1.0 +@export var target_var: StringName = &"target" +@export var output_var: StringName = &"target_location" + +func _generate_name() -> String: + return "GetTargetLocation \"%s\" ➜%s" % [ + target_var, + LimboUtility.decorate_var(target_var) + ] + +func _tick(_delta: float) -> Status: + var target_node:Node3D = blackboard.get_var(target_var) + + if not is_instance_valid(target_node): + push_error("Cannot check distance to target: invalid target node!") + return FAILURE + + blackboard.set_var(output_var, target_node.global_position) + + return SUCCESS diff --git a/ai/trees/look_around.tres b/ai/trees/look_around.tres index 6b90d1b..9e341e2 100644 --- a/ai/trees/look_around.tres +++ b/ai/trees/look_around.tres @@ -1,4 +1,4 @@ -[gd_resource type="BehaviorTree" load_steps=9 format=3 uid="uid://2v14hwp2gtg"] +[gd_resource type="BehaviorTree" load_steps=8 format=3 uid="uid://2v14hwp2gtg"] [ext_resource type="Script" path="res://ai/tasks/look_at_location.gd" id="1_1lumv"] [ext_resource type="Script" path="res://ai/tasks/find_nearby_random_location.gd" id="2_jrbpg"] @@ -16,16 +16,11 @@ stay_in_radius = true script = ExtResource("1_1lumv") target_location_var = &"target_location" -[sub_resource type="BTWait" id="BTWait_jmtj2"] -duration = 2.0 +[sub_resource type="BTRandomWait" id="BTRandomWait_d2kpo"] [sub_resource type="BTSequence" id="BTSequence_ouv1e"] -children = [SubResource("BTAction_ba1hn"), SubResource("BTAction_d7u7l"), SubResource("BTWait_jmtj2")] - -[sub_resource type="BTRepeat" id="BTRepeat_nqqvt"] -forever = true -children = [SubResource("BTSequence_ouv1e")] +children = [SubResource("BTAction_ba1hn"), SubResource("BTAction_d7u7l"), SubResource("BTRandomWait_d2kpo")] [resource] blackboard_plan = SubResource("BlackboardPlan_sdda8") -root_task = SubResource("BTRepeat_nqqvt") +root_task = SubResource("BTSequence_ouv1e") diff --git a/ai/trees/look_around_or_focus_player.tres b/ai/trees/look_around_or_focus_player.tres new file mode 100644 index 0000000..4ba97d5 --- /dev/null +++ b/ai/trees/look_around_or_focus_player.tres @@ -0,0 +1,67 @@ +[gd_resource type="BehaviorTree" load_steps=19 format=3 uid="uid://ci1dpjqvsq0ax"] + +[ext_resource type="Script" path="res://ai/tasks/find_target_by_name.gd" id="1_crjnn"] +[ext_resource type="Script" path="res://ai/tasks/get_target_location.gd" id="2_a4moq"] +[ext_resource type="Script" path="res://ai/tasks/calc_distance_to_location.gd" id="3_21rvk"] +[ext_resource type="Script" path="res://ai/tasks/look_at_location.gd" id="4_0f2uh"] +[ext_resource type="BehaviorTree" uid="uid://2v14hwp2gtg" path="res://ai/trees/look_around.tres" id="5_n3u5i"] + +[sub_resource type="BlackboardPlan" id="BlackboardPlan_rxiwf"] +var/target_distance/name = &"target_distance" +var/target_distance/type = 3 +var/target_distance/value = 0.0 +var/target_distance/hint = 0 +var/target_distance/hint_string = "" + +[sub_resource type="BTAction" id="BTAction_rgjhs"] +script = ExtResource("1_crjnn") +target_name = "Player" +output_var = &"target" + +[sub_resource type="BTAction" id="BTAction_2cqtn"] +script = ExtResource("2_a4moq") +max_distance = 1.0 +target_var = &"target" +output_var = &"target_location" + +[sub_resource type="BTAction" id="BTAction_rp83o"] +script = ExtResource("3_21rvk") +target_location_var = &"target_location" +output_var = &"target_distance" + +[sub_resource type="BBVariant" id="BBVariant_4v4ud"] +type = 3 +saved_value = 2.0 +resource_name = "2" + +[sub_resource type="BTCheckVar" id="BTCheckVar_0itqd"] +variable = &"target_distance" +check_type = 2 +value = SubResource("BBVariant_4v4ud") + +[sub_resource type="BTAction" id="BTAction_4e23b"] +script = ExtResource("4_0f2uh") +target_location_var = &"target_location" + +[sub_resource type="BTSequence" id="BTSequence_ytwco"] +children = [SubResource("BTCheckVar_0itqd"), SubResource("BTAction_4e23b")] + +[sub_resource type="BlackboardPlan" id="BlackboardPlan_02yjb"] + +[sub_resource type="BTSubtree" id="BTSubtree_dnwew"] +subtree = ExtResource("5_n3u5i") +blackboard_plan = SubResource("BlackboardPlan_02yjb") + +[sub_resource type="BTSelector" id="BTSelector_cu7cu"] +children = [SubResource("BTSequence_ytwco"), SubResource("BTSubtree_dnwew")] + +[sub_resource type="BTSequence" id="BTSequence_yk8po"] +children = [SubResource("BTAction_rgjhs"), SubResource("BTAction_2cqtn"), SubResource("BTAction_rp83o"), SubResource("BTSelector_cu7cu")] + +[sub_resource type="BTRepeat" id="BTRepeat_713a6"] +forever = true +children = [SubResource("BTSequence_yk8po")] + +[resource] +blackboard_plan = SubResource("BlackboardPlan_rxiwf") +root_task = SubResource("BTRepeat_713a6") diff --git a/ai/trees/pug.tres b/ai/trees/pug.tres index 080810a..98e47df 100644 --- a/ai/trees/pug.tres +++ b/ai/trees/pug.tres @@ -1,40 +1,19 @@ -[gd_resource type="BehaviorTree" load_steps=12 format=3 uid="uid://blccr23qjixws"] +[gd_resource type="BehaviorTree" load_steps=6 format=3 uid="uid://blccr23qjixws"] -[ext_resource type="Script" path="res://ai/tasks/find_target_by_name.gd" id="1_v4edy"] -[ext_resource type="Script" path="res://ai/tasks/navigate_to_location.gd" id="2_k36i0"] +[ext_resource type="BehaviorTree" uid="uid://caxmpcyhpt6em" path="res://ai/trees/wander.tres" id="1_rsg0c"] [sub_resource type="BlackboardPlan" id="BlackboardPlan_yg732"] -[sub_resource type="BTAction" id="BTAction_7a1kv"] -script = ExtResource("1_v4edy") -target_name = "Player" -output_var = &"target" +[sub_resource type="BlackboardPlan" id="BlackboardPlan_x4gxn"] -[sub_resource type="BTWait" id="BTWait_8cgex"] -duration = 2.0 +[sub_resource type="BTSubtree" id="BTSubtree_krik0"] +subtree = ExtResource("1_rsg0c") +blackboard_plan = SubResource("BlackboardPlan_x4gxn") -[sub_resource type="BTAction" id="BTAction_qfrs5"] -script = ExtResource("1_v4edy") -target_name = "Bone" -output_var = &"target" - -[sub_resource type="BTSequence" id="BTSequence_u84lc"] -children = [SubResource("BTAction_7a1kv"), SubResource("BTWait_8cgex"), SubResource("BTAction_qfrs5")] - -[sub_resource type="BTAction" id="BTAction_l2eti"] -script = ExtResource("2_k36i0") -target_var = &"target" - -[sub_resource type="BTRepeat" id="BTRepeat_dam0f"] +[sub_resource type="BTRepeat" id="BTRepeat_i5p3p"] forever = true -children = [SubResource("BTAction_l2eti")] - -[sub_resource type="BTParallel" id="BTParallel_l5msj"] -children = [SubResource("BTSequence_u84lc"), SubResource("BTRepeat_dam0f")] - -[sub_resource type="BTSequence" id="BTSequence_77owj"] -children = [SubResource("BTParallel_l5msj")] +children = [SubResource("BTSubtree_krik0")] [resource] blackboard_plan = SubResource("BlackboardPlan_yg732") -root_task = SubResource("BTSequence_77owj") +root_task = SubResource("BTRepeat_i5p3p") diff --git a/ai/trees/wander.tres b/ai/trees/wander.tres index 63cb9fd..16ac9ce 100644 --- a/ai/trees/wander.tres +++ b/ai/trees/wander.tres @@ -1,4 +1,4 @@ -[gd_resource type="BehaviorTree" load_steps=11 format=3 uid="uid://caxmpcyhpt6em"] +[gd_resource type="BehaviorTree" load_steps=10 format=3 uid="uid://caxmpcyhpt6em"] [ext_resource type="Script" path="res://ai/tasks/find_nearby_random_location.gd" id="1_5wpmm"] [ext_resource type="Script" path="res://ai/tasks/look_at_location.gd" id="2_d6sgo"] @@ -21,16 +21,12 @@ target_location_var = &"target_location" script = ExtResource("3_ch0o3") target_var = &"target_location" -[sub_resource type="BTWait" id="BTWait_yneys"] -duration = 3.0 +[sub_resource type="BTRandomWait" id="BTRandomWait_gert2"] +max_duration = 3.0 [sub_resource type="BTSequence" id="BTSequence_o4qno"] -children = [SubResource("BTAction_s4a8v"), SubResource("BTAction_lschq"), SubResource("BTAction_onf00"), SubResource("BTWait_yneys")] - -[sub_resource type="BTRepeat" id="BTRepeat_o23de"] -forever = true -children = [SubResource("BTSequence_o4qno")] +children = [SubResource("BTAction_s4a8v"), SubResource("BTAction_lschq"), SubResource("BTAction_onf00"), SubResource("BTRandomWait_gert2")] [resource] blackboard_plan = SubResource("BlackboardPlan_yo8p7") -root_task = SubResource("BTRepeat_o23de") +root_task = SubResource("BTSequence_o4qno") diff --git a/game_ui.gd b/game_ui.gd index 8c5c1a7..6a84c43 100644 --- a/game_ui.gd +++ b/game_ui.gd @@ -16,8 +16,6 @@ signal quit_game_scene var _game_scene:Game var _player:Player var _all_recipes:Array[RecipeResource] = [] -var _debug_npc_name = "PugNPC" -var _debug_npc:NonPlayerCharacter = null func _ready(): for file in DirAccess.get_files_at("res://data/recipes"): @@ -28,8 +26,6 @@ func _ready(): tool_container.connect("item_selected", _on_tool_select) func reset(): - _debug_npc = null - if _player != null: disconnect_player_signals() @@ -51,9 +47,6 @@ func activate_game_scene(game_scene:Node3D) -> void: tool_slots.show() tool_container.displayStacks(_player.inventory.get_tool_item_stacks()) - if _debug_npc_name != "": - _debug_npc = _game_scene.find_child(_debug_npc_name, true, false) as NonPlayerCharacter - game_menu_ui.hide() func _process(_delta): @@ -82,15 +75,6 @@ func _process(_delta): else: _game_scene.build_system.is_active = false - if _debug_npc: - var _btplayer = _debug_npc.find_child("BTPlayer") as BTPlayer - if _btplayer: - var instance: BTInstance = _btplayer.get_bt_instance() - var data: BehaviorTreeData = BehaviorTreeData.create_from_bt_instance(instance) - behavior_debug_view.update_tree(data) - else: - behavior_debug_view.clear() - func _on_message_timer_timeout(): %MessagesContainer.visible = false diff --git a/root_ui.tscn b/root_ui.tscn index f6a3380..4390bd0 100644 --- a/root_ui.tscn +++ b/root_ui.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=39 format=3 uid="uid://c73t0nbuqp68e"] +[gd_scene load_steps=40 format=3 uid="uid://c73t0nbuqp68e"] [ext_resource type="Script" path="res://root_ui.gd" id="1_7fnkg"] [ext_resource type="PackedScene" uid="uid://bo788o53t4rbq" path="res://scenes/startup_scene.tscn" id="2_1untt"] @@ -22,6 +22,7 @@ [ext_resource type="Script" path="res://ui/build_dialog.gd" id="15_x7ovi"] [ext_resource type="Theme" uid="uid://c1m2rpljepv4t" path="res://ui/ui_theme_debug.tres" id="21_nsciq"] [ext_resource type="Script" path="res://ui/debug/build_system.gd" id="22_g4j6a"] +[ext_resource type="Script" path="res://ui/debug/behaviour.gd" id="23_mv0pi"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1ume3"] content_margin_left = 4.0 @@ -895,7 +896,6 @@ text = "⚙️" [node name="DebugTabContainer" type="TabContainer" parent="DebugUi"] unique_name_in_owner = true -visible = false layout_mode = 2 tab_alignment = 2 current_tab = 1 @@ -951,6 +951,7 @@ layout_mode = 2 theme_override_constants/margin_left = 8 theme_override_constants/margin_top = 8 theme_override_constants/margin_right = 8 +script = ExtResource("23_mv0pi") metadata/_tab_index = 1 [node name="Panel" type="Panel" parent="DebugUi/DebugTabContainer/Behaviour"] @@ -969,6 +970,23 @@ layout_mode = 2 text = "Behavior" horizontal_alignment = 1 +[node name="HBoxContainer" type="HBoxContainer" parent="DebugUi/DebugTabContainer/Behaviour/Panel/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="DebugUi/DebugTabContainer/Behaviour/Panel/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Name" + +[node name="NPCNameEdit" type="LineEdit" parent="DebugUi/DebugTabContainer/Behaviour/Panel/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +placeholder_text = "NPC Name" + +[node name="SearchButton" type="Button" parent="DebugUi/DebugTabContainer/Behaviour/Panel/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Search" + [node name="BehaviorDebugView" type="BehaviorTreeView" parent="DebugUi/DebugTabContainer/Behaviour/Panel/VBoxContainer"] unique_name_in_owner = true custom_minimum_size = Vector2(0, 300) @@ -1067,3 +1085,5 @@ unique_name_in_owner = true [connection signal="gui_input" from="GameUI/BuildDialog/Panel/MarginContainer/VBoxContainer/BuildItemResourcesContainer/@Panel@354713" to="GameUI/BuildDialog/Panel/MarginContainer/VBoxContainer/BuildItemResourcesContainer/@Panel@354713" method="_on_gui_input"] [connection signal="mouse_entered" from="GameUI/BuildDialog/Panel/MarginContainer/VBoxContainer/BuildItemResourcesContainer/@Panel@354713" to="GameUI/BuildDialog/Panel/MarginContainer/VBoxContainer/BuildItemResourcesContainer/@Panel@354713" method="_on_mouse_entered"] [connection signal="toggled" from="DebugUi/ToggleDebugButton" to="." method="_on_toggle_debug_button_toggled"] +[connection signal="text_submitted" from="DebugUi/DebugTabContainer/Behaviour/Panel/VBoxContainer/HBoxContainer/NPCNameEdit" to="DebugUi/DebugTabContainer/Behaviour" method="_on_npc_name_edit_text_submitted"] +[connection signal="pressed" from="DebugUi/DebugTabContainer/Behaviour/Panel/VBoxContainer/HBoxContainer/SearchButton" to="DebugUi/DebugTabContainer/Behaviour" method="_on_search_button_pressed"] diff --git a/ui/debug/behaviour.gd b/ui/debug/behaviour.gd new file mode 100644 index 0000000..c524681 --- /dev/null +++ b/ui/debug/behaviour.gd @@ -0,0 +1,31 @@ +extends MarginContainer + +@onready var npc_name_edit: LineEdit = %NPCNameEdit +@onready var behavior_debug_view: BehaviorTreeView = %BehaviorDebugView + +var _debug_bt_player:BTPlayer = null + +func _process(_delta: float) -> void: + if _debug_bt_player == null: + return + + var instance: BTInstance = _debug_bt_player.get_bt_instance() + var data: BehaviorTreeData = BehaviorTreeData.create_from_bt_instance(instance) + behavior_debug_view.update_tree(data) + +func _on_search_button_pressed() -> void: + _on_npc_name_edit_text_submitted(npc_name_edit.text) + +func _on_npc_name_edit_text_submitted(new_text: String) -> void: + npc_name_edit.release_focus() + + var npc_node:NonPlayerCharacter = get_tree().root.find_child(new_text, true, false) as NonPlayerCharacter + + if not is_instance_valid(npc_node): + push_error("Cannot show npc behavior: could not find node with name '%s'." % new_text) + return + + _debug_bt_player = npc_node.find_child("BTPlayer") as BTPlayer + if _debug_bt_player == null: + behavior_debug_view.clear() + push_error("Cannot show npc behavior: no BTPlayer found.") diff --git a/world/level.tscn b/world/level.tscn index 1b5eb51..7b27cf9 100644 --- a/world/level.tscn +++ b/world/level.tscn @@ -1,9 +1,9 @@ -[gd_scene load_steps=39 format=3 uid="uid://dmagdl5pi6jdj"] +[gd_scene load_steps=40 format=3 uid="uid://dmagdl5pi6jdj"] [ext_resource type="MeshLibrary" uid="uid://dcpuitbu16j1a" path="res://assets/mesh_library.tres" id="1_q0eym"] [ext_resource type="PackedScene" uid="uid://da5r82nvypfk4" path="res://objects/pickup_item.tscn" id="2_ccr0r"] [ext_resource type="Resource" uid="uid://mkj3oeaxvltq" path="res://data/items/shovel.tres" id="3_pdr1o"] -[ext_resource type="BehaviorTree" uid="uid://2v14hwp2gtg" path="res://ai/trees/look_around.tres" id="5_psje8"] +[ext_resource type="BehaviorTree" uid="uid://blccr23qjixws" path="res://ai/trees/pug.tres" id="5_2yc6b"] [ext_resource type="Resource" uid="uid://bn5j38jbwlj1f" path="res://data/items/stick.tres" id="5_uqakj"] [ext_resource type="Resource" uid="uid://c1ll2snhgv3m1" path="res://data/items/treelog.tres" id="6_l0uqq"] [ext_resource type="Resource" uid="uid://det51k1t422rq" path="res://data/items/pickaxe.tres" id="7_3sab5"] @@ -30,6 +30,7 @@ [ext_resource type="Resource" uid="uid://mn4emvkkv3v4" path="res://dialogue/mage_missing_seeds.dialogue" id="25_5oc06"] [ext_resource type="PackedScene" uid="uid://bipsmw4v7oegd" path="res://objects/chest.tscn" id="25_fhfiw"] [ext_resource type="PackedScene" uid="uid://c56dnyb36mvit" path="res://assets/3rdparty/Quaternius/LowPoly Animated Animals/gltf/Pug.glb" id="29_mexqd"] +[ext_resource type="BehaviorTree" uid="uid://ci1dpjqvsq0ax" path="res://ai/trees/look_around_or_focus_player.tres" id="30_7tuqh"] [sub_resource type="NavigationMesh" id="NavigationMesh_1u13k"] vertices = PackedVector3Array(17.5089, 0.01999, -7.99106, 19.0089, 0.01999, -7.89106, 19.2089, 0.01999, -8.49106, 17.5089, 0.01999, -9.59106, 7.80894, 0.01999, -15.7911, 14.2089, 0.01999, -9.89106, 17.3089, 0.01999, -9.89106, 21.7089, 0.01999, -8.49106, 1.30894, 0.01999, -15.6911, 1.30894, 0.01999, -15.3911, 4.40894, 0.01999, -15.2911, 5.60894, 0.01999, -6.79106, 8.10894, 0.01999, -7.29106, 8.20894, 0.01999, -8.89106, 4.40894, 0.01999, -11.2911, 3.90894, 0.01999, -11.0911, 3.90894, 0.01999, -6.79106, 21.8089, 0.01999, -32.1911, 7.80894, 0.01999, -32.1911, 10.3089, 0.01999, -8.89106, 10.4089, 0.01999, -8.29106, 14.0089, 0.01999, -8.29106, 14.0089, 0.01999, -9.59106, 22.3089, 0.01999, -8.49106, 22.5089, 0.01999, -8.29106, 48.7089, 0.01999, -7.49106, 48.6089, 0.01999, -32.1911, 22.5089, 0.01999, -7.49106, -18.2911, 1.51999, -16.7911, -18.0911, 1.51999, -16.2911, -17.2911, 1.51999, -16.2911, -13.3911, 1.51999, -19.1911, -14.6911, 1.51999, -19.1911, -14.7911, 1.51999, -18.6911, -14.2911, 1.51999, -17.8911, -13.1911, 1.51999, -18.6911, -20.1911, 1.51999, -18.6911, -20.0911, 1.51999, -16.7911, -11.2911, 1.51999, -17.8911, -11.3911, 1.51999, -18.6911, -14.4911, 1.51999, -15.7911, -14.4911, 1.51999, -17.5911, -17.0911, 1.51999, -15.7911, -11.0911, 1.01999, -17.8911, -8.79106, 1.01999, -17.8911, -8.89106, 1.01999, -18.1911, -11.0911, 1.01999, -18.1911, -6.69106, 2.01999, -17.1911, -6.89106, 2.01999, -17.6911, -7.29106, 2.01999, -17.7911, -7.39106, 2.01999, -18.1911, -8.19106, 2.01999, -18.1911, -8.19106, 2.01999, -17.7911, -7.09106, 2.01999, -15.7911, -5.39106, 2.01999, -15.7911, -5.19106, 2.01999, -16.2911, -7.29106, 2.01999, -16.2911, -8.49106, 2.01999, -17.6911, -8.49106, 2.01999, -16.2911, -4.79106, 2.01999, -16.2911, -4.59106, 2.01999, -15.7911, -3.69106, 2.01999, -15.6911, -3.09106, 2.01999, -16.6911, -3.39106, 2.01999, -17.1911, -5.29106, 1.01999, -17.6911, -6.59106, 1.01999, -17.6911, -6.59106, 1.01999, -17.3911, -3.29106, 1.01999, -17.3911, -3.39106, 1.01999, -18.1911, -5.19106, 1.01999, -18.1911, -12.2911, 2.01999, -15.7911, -11.8911, 2.01999, -15.7911, -11.8911, 2.01999, -17.1911, -12.6911, 2.01999, -17.1911, -12.8911, 2.01999, -17.6911, -14.1911, 2.01999, -17.6911, -14.0911, 2.01999, -15.2911, -12.3911, 2.01999, -15.2911, -11.2911, 2.01999, -17.1911, -8.89106, 2.01999, -15.7911, -8.79106, 2.01999, -16.1911, -11.1911, 2.01999, -17.6911, -12.5911, 1.01999, -17.5911, -12.5911, 1.01999, -17.3911, -11.4911, 1.01999, -17.3911, -11.4911, 1.01999, -17.5911, -3.59106, 2.01999, -14.7911, -2.79106, 2.01999, -14.7911, -1.69106, 2.01999, -16.1911, -1.89106, 2.01999, -16.6911, -0.291061, 2.01999, -15.7911, -0.391062, 2.01999, -16.1911, -2.59106, 2.01999, -14.2911, -1.29106, 2.01999, -14.2911, -0.291061, 2.01999, -12.7911, 0.308939, 2.01999, -14.1911, 0.108938, 2.01999, -14.2911, -1.19106, 2.01999, -12.8911, 0.208939, 2.01999, -15.5911, -17.0911, 0.51999, -13.7911, -16.2911, 0.51999, -13.7911, -16.1911, 0.51999, -14.2911, -17.1911, 0.51999, -15.1911, -17.2911, 0.51999, -15.5911, -17.3911, 0.51999, -16.0911, -18.2911, 0.51999, -16.0911, -18.3911, 0.51999, -16.5911, -19.6911, 0.51999, -16.5911, -19.5911, 0.51999, -15.7911, -18.7911, 0.51999, -15.7911, -15.2911, 0.51999, -14.0911, -15.4911, 0.51999, -14.4911, -15.7911, 0.51999, -14.2911, -15.6911, 0.51999, -13.7911, -14.2911, 0.51999, -13.7911, -14.1911, 0.51999, -12.2911, -13.2911, 0.51999, -12.2911, -13.2911, 0.51999, -14.0911, -14.2244, 0.51999, -12.7911, -18.5911, 0.51999, -15.2911, -15.4911, 0.51999, -15.5911, -15.2244, 0.51999, -13.7911, -4.79106, 1.01999, -15.5911, -4.89106, 1.01999, -16.0911, -5.09106, 1.01999, -16.0911, -5.29106, 1.01999, -15.5911, -6.29106, 1.01999, -15.2911, -7.29106, 1.01999, -15.5911, -11.7911, 1.01999, -14.6911, -11.3911, 1.01999, -14.7911, -11.1911, 1.01999, -15.2911, -12.0911, 1.01999, -15.5911, -12.2911, 1.01999, -15.0911, -4.79106, 1.01999, -14.8911, -4.69106, 1.01999, -14.6911, -3.89106, 1.01999, -15.1911, -3.89106, 1.01999, -15.5911, -14.2911, 1.01999, -15.0911, -15.1911, 1.01999, -14.2911, -11.8911, 1.01999, -14.2911, -14.8911, 1.01999, -14.5577, -14.6411, 1.01999, -14.2911, -8.79106, 1.01999, -15.5911, -6.09106, 1.01999, -14.7911, -14.4911, 1.01999, -15.5911, -15.1911, 1.01999, -15.5911, -15.1911, 1.01999, -14.7244, -7.39106, 1.01999, -16.0911, -8.59106, 1.01999, -16.0911, -3.89106, 1.01999, -14.6911, -2.79106, 1.01999, -14.0911, -2.89106, 1.01999, -14.5911, -4.59106, 1.01999, -13.2911, -3.29106, 1.01999, -13.2911, -3.09106, 1.01999, -12.7911, -1.39106, 1.01999, -12.7911, -1.39106, 1.01999, -14.0911, 1.30894, 1.01999, -15.1911, 1.30894, 1.01999, -14.3911, 1.90894, 1.01999, -14.2911, 3.30894, 1.01999, -12.3911, 3.40894, 1.01999, -11.3911, 4.20894, 1.01999, -11.3911, 1.90894, 1.01999, -12.3911, 4.20894, 1.01999, -15.0911, -11.0911, 0.01999, -14.7911, -11.5911, 0.01999, -14.5911, -11.7911, 0.01999, -14.0911, -9.99106, 0.01999, -15.0911, -11.0911, 0.01999, -15.0911, -9.99106, 0.01999, -14.4911, -13.0911, 0.01999, -14.0911, -13.0911, 0.01999, -12.3911, -9.69106, 0.01999, -14.0911, -11.7911, 0.01999, -11.8911, -9.69106, 0.01999, -11.8911, -9.59106, 0.51999, -14.2911, -8.79106, 0.51999, -14.3911, -8.79106, 0.51999, -15.0911, -9.69106, 0.51999, -15.0911, -6.19106, 0.01999, -13.3911, -6.09106, 0.01999, -13.1911, -5.29106, 0.01999, -13.5911, -5.39106, 0.01999, -14.5911, -6.29106, 0.01999, -14.5911, -9.19106, 0.01999, -11.8911, -9.09106, 0.01999, -11.6911, -7.89106, 0.01999, -12.2911, -7.79106, 0.01999, -13.3911, -8.79106, 0.01999, -14.0911, -8.59106, 0.01999, -14.2911, -6.39106, 0.01999, -15.0911, -8.59106, 0.01999, -15.0911, -5.19106, 0.51999, -14.5911, -5.19106, 0.51999, -13.7911, -4.89106, 0.51999, -13.7911, -4.89106, 0.51999, -14.5911, 0.208939, 2.01999, -11.2911, 0.308939, 2.01999, -10.8911, 0.708939, 2.01999, -10.7911, -0.191061, 2.01999, -11.3911, 1.70894, 2.01999, -12.2911, 1.70894, 2.01999, -14.0911, 0.908939, 2.01999, -10.2911, 2.20894, 2.01999, -10.2911, 3.20894, 2.01999, -11.2911, 2.30894, 2.01999, -9.79106, 3.70894, 2.01999, -9.79106, 3.70894, 2.01999, -11.0911, 2.77561, 2.01999, -9.79106, 3.20894, 2.01999, -12.0911, -15.7911, 0.01999, -13.5911, -16.0911, 0.01999, -14.0911, -16.2911, 0.01999, -13.5911, -16.6911, 0.01999, -13.5911, -16.6911, 0.01999, -12.8911, -16.1911, 0.01999, -12.6911, -16.1911, 0.01999, -11.8911, -15.2911, 0.01999, -11.7911, -14.4911, 0.01999, -12.4911, -14.4911, 0.01999, -13.5911, -15.0911, 0.01999, -11.2911, -14.3911, 0.01999, -11.2911, -14.1911, 0.01999, -12.0911, 1.20894, 0.01999, -7.79106, 1.30894, 0.01999, -7.39106, 1.60894, 0.01999, -7.29106, 0.108938, 0.01999, -9.69106, 0.108938, 0.01999, -10.0911, -0.391062, 0.01999, -10.1911, -0.391062, 0.01999, -10.5911, -0.891062, 0.01999, -10.6911, -1.29106, 0.01999, -7.79106, -4.79106, 0.01999, -13.0911, -4.89106, 0.01999, -13.5911, -6.09106, 0.01999, -12.2911, 0.708939, 0.01999, -9.09106, 0.608938, 0.01999, -9.59106, -0.891062, 0.01999, -11.5911, -1.39106, 0.01999, -11.6911, 1.60894, 0.01999, -9.09106, -3.29106, 0.01999, -12.5911, -6.39106, 0.01999, -12.0911, -5.19106, 0.01999, -9.89106, -3.39106, 0.01999, -7.79106, -6.39106, 0.01999, -9.89106, -3.39106, 0.01999, -13.0911, -5.09106, 0.01999, -8.89106, -4.09106, 0.01999, -7.79106, -3.29106, -0.02001, -7.19106, -1.39106, -0.02001, -7.19106, -3.34106, -0.02001, -7.49106, -1.34106, -0.02001, -7.49106, -1.39106, 0.01999, -12.5911, -7.59106, 1.01999, -12.2911, -6.29106, 1.01999, -12.3911, -6.39106, 1.01999, -13.1911, -7.69106, 1.01999, -13.1911, -0.291061, 1.01999, -10.7911, -0.191061, 1.01999, -10.3911, 0.208939, 1.01999, -10.2911, 0.108938, 1.01999, -10.6911, 0.108938, 1.01999, -11.0911, -0.391062, 1.01999, -11.1911, 0.708939, 1.01999, -10.0911, 0.608938, 1.01999, -10.5911, 0.408939, 1.01999, -9.79106, -0.691061, 1.01999, -11.6911, -0.691061, 1.01999, -10.8911, -1.19106, 1.01999, -12.5911, -1.19106, 1.01999, -11.8911, -0.391062, 1.01999, -12.5911, 1.80894, 1.01999, -9.69106, 2.10894, 1.01999, -10.0911, 2.10894, 1.01999, -8.69106, 1.80894, 1.01999, -7.39106, 3.70894, 1.01999, -7.39106, 3.70894, 1.01999, -7.59106, 2.60894, 1.01999, -7.69106, 3.23394, 1.01999, -7.39106, 2.60894, 1.01999, -8.59106, -14.1911, 0.01999, -11.1911, -14.1911, 0.01999, -10.3911, -13.6911, 0.01999, -10.1911, -13.2911, 0.01999, -12.0911, -11.9911, 0.01999, -9.59106, -11.9911, 0.01999, -11.5911, -13.6911, 0.01999, -9.49106, -7.79106, 0.01999, -12.0911, -9.09106, 0.01999, -10.7911, -8.29106, 0.01999, -9.89106, -10.6911, 1.01999, -10.7911, -9.29106, 1.01999, -10.8911, -9.39106, 1.01999, -11.6911, -11.6911, 1.01999, -11.6911, -11.5911, 1.01999, -8.79106, -10.7911, 1.01999, -8.89106, -10.8911, 0.01999, -8.59106, -10.3911, 0.01999, -7.69106, -10.2911, 0.01999, -7.89106, -10.5911, 0.01999, -8.79106, -9.19106, 0.01999, -7.89106, -9.29106, 0.01999, -10.5911, -10.0911, 0.01999, -10.5911, -10.2911, 0.01999, -10.0911, -9.09106, 0.01999, -7.69106, -8.29106, 0.01999, -8.59106, -8.49106, 0.01999, -9.59106, -10.5911, 0.01999, -10.0911, -10.5911, 0.51999, -10.5911, -10.5911, 0.51999, -10.2911, -10.2911, 0.51999, -10.2911, -10.2911, 0.51999, -10.5911, -8.09106, 1.01999, -8.79106, -5.29106, 1.01999, -8.89106, -5.39106, 1.01999, -9.69106, -8.19106, 1.01999, -9.69106, 15.2089, 1.01999, -7.49106, 15.2089, 1.01999, -7.69106, 14.3089, 1.01999, -7.79106, 14.2089, 1.01999, -7.49106, 17.2089, 1.01999, -7.79106, 17.3089, 1.01999, -7.49106, 17.2089, 1.01999, -9.69106, 17.1089, 1.01999, -9.49106, 16.3089, 1.01999, -7.69106, 16.3089, 1.01999, -7.49106, 14.4089, 1.01999, -9.49106, 14.2089, 1.01999, -9.59106, -11.2911, 0.01999, -6.89106, -10.4911, 0.01999, -6.89106, -11.7911, 0.01999, -8.59106, -13.0911, 0.01999, -5.79106, -13.0911, 0.01999, -4.89106, -11.7911, 0.01999, -4.89106, -11.3911, 0.01999, -5.69106, -11.4911, 0.01999, -6.59106, -13.6911, 0.01999, -7.79106, -13.8911, 0.01999, -7.69106, -13.8911, 0.01999, -5.89106, 0.908939, 0.51999, -9.29106, 1.60894, 0.51999, -9.29106, 1.60894, 0.51999, -9.59106, 0.808939, 0.51999, -9.59106, 2.30894, 1.51999, -9.59106, 2.30894, 1.51999, -8.89106, 2.80894, 1.51999, -8.69106, 2.80894, 1.51999, -7.89106, 3.70894, 1.51999, -7.89106, 3.70894, 1.51999, -9.59106, 14.5089, 0.01999, -9.29106, 14.5089, 0.01999, -7.89106, 15.3089, 0.01999, -7.89106, 16.1089, 0.01999, -7.79106, 17.0089, 0.01999, -7.89106, 17.0089, 0.01999, -9.29106, 16.7089, 0.01999, -4.59106, 16.2089, 0.01999, -7.29106, 14.3089, 0.01999, -7.29106, 10.9089, 0.01999, -4.29106, 10.9089, 0.01999, -2.89106, 16.7089, 0.01999, -2.89106, 10.7089, 0.01999, -4.39106, 15.4089, 0.01999, -7.39106, 16.7089, 0.01999, -7.29106, -5.69106, 0.01999, -6.39106, -5.59106, 0.01999, -5.89106, -5.09106, 0.01999, -5.79106, -5.29106, 0.01999, -8.59106, -5.59106, 0.01999, -8.59106, -5.59106, 0.01999, -7.79106, -5.09106, 0.01999, -5.29106, -4.29106, 0.01999, -5.29106, -4.29106, 0.01999, -7.69106, -5.79106, 0.01999, -7.59106, -6.29106, 0.01999, -7.59106, -6.29106, 0.01999, -6.39106, 8.40894, 1.01999, -7.29106, 9.10894, 1.01999, -7.29106, 9.30894, 1.01999, -7.79106, 10.2089, 1.01999, -7.89106, 10.1089, 1.01999, -8.69106, 8.30894, 1.01999, -8.69106, -9.09106, 0.01999, -7.39106, -8.59106, 0.01999, -7.29106, -6.69106, 0.01999, -6.39106, -6.89106, 0.01999, -7.69106, -8.59106, 0.01999, -6.49106, -6.89106, 0.01999, -8.59106, -6.69106, 0.51999, -8.59106, -6.69106, 0.51999, -7.79106, -5.79106, 0.51999, -7.79106, -5.79106, 0.51999, -8.59106, 10.2089, 0.01999, -7.59106, 9.40894, 0.01999, -7.59106, 9.40894, 0.01999, -7.29106, 9.00894, 0.01999, -7.09106, 9.00894, 0.01999, -5.89106, 9.80894, 0.01999, -5.89106, 10.4089, 0.01999, -7.79106, 14.0089, 0.01999, -7.49106, 9.90894, 0.01999, -4.39106, 19.2089, 1.01999, -6.19106, 20.2089, 1.01999, -6.19106, 19.3089, 1.01999, -6.39106, 22.2089, 1.01999, -6.39106, 21.3089, 1.01999, -6.19106, 22.3089, 1.01999, -6.19106, 19.2089, 1.01999, -8.29106, 19.4089, 1.01999, -8.19106, 22.1089, 1.01999, -8.19106, 22.3089, 1.01999, -8.29106, 19.6089, 0.01999, -4.79106, 19.6089, 0.01999, -5.99106, 19.0089, 0.01999, -6.19106, 17.5089, 0.01999, -7.49106, 17.3089, 0.01999, -7.29106, 16.9089, 0.01999, -4.79106, 20.3089, 0.01999, -5.99106, 20.3089, 0.01999, -4.59106, 20.2089, 0.01999, -2.39106, 12.7089, 0.01999, 1.40894, 7.90894, 0.01999, 16.7089, 48.6089, 0.01999, 16.7089, 48.7089, 0.01999, -6.99106, 17.3089, 0.01999, -4.29106, 17.3089, 0.01999, -2.79106, 18.0089, 0.01999, -2.79106, 18.9089, 0.01999, -2.79106, 19.7089, 0.01999, -2.79106, 19.7089, 0.01999, -4.29106, 21.2089, 0.01999, -6.49106, 22.0089, 0.01999, -6.49106, 22.0089, 0.01999, -7.99106, 20.4089, 0.01999, -6.39106, 21.2089, 0.01999, -5.99106, 19.5089, 0.01999, -7.99106, 19.5089, 0.01999, -6.49106, 11.7089, 0.01999, 1.40894, 18.8089, 0.01999, -2.39106, 18.1089, 0.01999, -2.39106, 17.0089, 0.01999, -2.29106, 12.9089, 0.01999, 1.20894, 12.9089, 0.01999, 0.308941, 22.5089, 0.01999, -6.99106, 22.5089, 0.01999, -6.19106, 11.6089, 0.01999, 0.808941, 7.80894, 0.01999, 0.808941, 22.3089, 0.01999, -5.99106, -15.1911, 0.01999, -6.79106, -15.6911, 0.01999, -6.69106, -15.7911, 0.01999, -6.19106, -14.4911, 0.01999, -5.39106, -14.2911, 0.01999, -5.89106, -16.5911, 0.01999, -6.19106, -16.5911, 0.01999, -5.39106, -15.1911, 0.01999, -7.69106, -10.1911, 1.01999, -5.89106, -9.29106, 1.01999, -5.89106, -9.29106, 1.01999, -7.59106, -10.1911, 1.01999, -7.69106, 8.10894, 0.01999, -4.79106, 8.60894, 0.01999, -4.89106, 8.60894, 0.01999, -5.79106, 8.20894, 0.01999, -7.09106, 5.80894, 0.01999, -6.69106, 5.80894, 0.01999, -4.19106, 8.10894, 0.01999, -4.19106, -9.09106, 0.51999, -7.19106, -9.09106, 0.51999, -6.29106, -8.79106, 0.51999, -6.29106, -8.79106, 0.51999, -7.19106, -1.39106, 0.01999, -6.79106, -1.86606, -0.02001, -6.89106, -1.19106, 0.01999, -6.69106, -3.19106, 0.01999, -4.39106, -2.19106, 0.01999, -4.39106, -3.27106, 0.01999, -6.63106, -2.09106, 0.01999, -4.19106, 1.90894, 0.51999, -6.79106, 3.70894, 0.51999, -6.89106, 3.70894, 0.51999, -7.09106, 1.80894, 0.51999, -7.09106, 3.25894, 0.51999, -6.86606, -11.1911, 0.51999, -5.79106, -10.3911, 0.51999, -5.79106, -10.4911, 0.51999, -6.69106, -11.1911, 0.51999, -6.69106, -2.09106, 0.01999, -3.79106, -1.59106, 0.01999, -3.79106, 1.60894, 0.01999, -4.89106, 1.60894, 0.01999, -5.69106, 0.708939, 0.01999, -5.79106, 0.608938, 0.01999, -4.79106, -1.39106, 0.01999, -3.39106, 0.608938, 0.01999, -3.69106, 0.608938, 0.01999, -6.69106, -6.29106, 0.01999, -4.59106, -6.39106, 0.01999, -5.09106, -6.89106, 0.01999, -5.19106, -7.19106, 0.01999, -4.89106, -7.09106, 0.01999, -3.89106, -5.09106, 0.01999, -4.79106, -4.29106, 0.01999, -3.89106, -5.29106, 0.01999, -4.59106, -6.89106, 0.01999, -6.29106, -8.79106, 0.01999, -6.09106, -8.19106, 0.01999, -4.89106, -13.7911, 0.51999, -4.89106, -13.2911, 0.51999, -4.89106, -13.3911, 0.51999, -5.69106, -14.1911, 0.51999, -5.69106, -14.2911, 0.51999, -5.19106, -17.7911, 0.51999, -5.19106, -18.2911, 0.51999, -4.89106, -17.1911, 0.51999, -4.89106, -18.7911, 0.51999, -4.69106, -18.3911, 0.51999, -4.39106, -13.9911, 0.51999, -4.39106, -16.6911, 0.51999, -5.19106, -17.0911, 0.51999, -4.39106, -18.6911, 0.51999, -5.19106, -16.8911, 0.51999, -6.19106, -17.6911, 0.51999, -6.19106, -20.1911, 0.51999, -4.69106, -20.1911, 0.51999, -4.39106, -6.29106, 0.51999, -5.89106, -5.79106, 0.51999, -5.89106, -5.79106, 0.51999, -6.19106, -6.69106, 0.51999, -6.19106, -6.69106, 0.51999, -5.29106, -6.39106, 0.51999, -5.29106, -9.09106, 0.01999, -6.09106, -9.29106, 0.01999, -5.59106, -8.49106, 0.01999, -4.59106, -11.5911, 0.01999, -4.79106, -11.5911, 0.01999, -3.89106, -8.49106, 0.01999, -3.89106, -6.09106, 1.01999, -4.79106, -5.29106, 1.01999, -4.89106, -5.39106, 1.01999, -5.69106, -6.19106, 1.01999, -5.69106, 3.70894, 0.01999, -3.59106, 2.30894, 0.01999, -3.59106, 2.40894, 0.01999, -2.79106, 2.10894, 0.01999, -2.59106, 3.60894, 0.01999, -0.191059, 3.70894, 0.01999, -0.391062, 3.90894, 0.01999, -4.79106, 4.70894, 0.01999, -5.59106, 4.70894, 0.01999, -0.391062, 3.90894, 0.01999, -3.79106, 8.80894, 1.01999, -4.79106, 8.30894, 1.01999, -4.69106, 8.30894, 1.01999, -3.89106, 8.80894, 1.01999, -3.69106, 9.70894, 1.01999, -4.29106, 8.90894, 1.01999, -2.79106, 10.7089, 1.01999, -2.89106, 10.7089, 1.01999, -4.09106, 9.60894, 1.01999, -5.69106, 8.80894, 1.01999, -5.69106, -17.1911, 1.01999, -4.19106, -17.2911, 1.01999, -4.69106, -18.1911, 1.01999, -4.69106, -18.2911, 1.01999, -4.19106, -20.0911, 1.01999, -3.29106, -11.8911, 1.01999, -4.69106, -13.6911, 1.01999, -4.69106, -13.7911, 1.01999, -4.19106, -11.7911, 1.01999, -3.29106, -20.1911, 1.01999, -4.19106, -8.19106, 1.01999, -3.29106, -7.29106, 1.01999, -3.29106, -7.29106, 1.01999, -4.59106, -8.19106, 1.01999, -4.69106, -8.19106, 1.01999, -3.75773, 1.50894, 1.01999, -3.49106, 2.00894, 1.01999, -3.49106, 2.10894, 1.01999, -3.79106, 1.30894, 1.01999, -3.79106, 0.808939, 1.01999, -4.69106, 0.808939, 1.01999, -3.89106, 3.70894, 1.01999, -3.89106, 3.60894, 1.01999, -4.69106, 19.9089, 0.51999, -2.69106, 19.0089, 0.51999, -2.49106, 20.1089, 0.51999, -2.59106, 16.9089, 0.51999, -2.49106, 17.9089, 0.51999, -2.49106, 17.1089, 0.51999, -2.69106, 20.0089, 0.51999, -4.59106, 19.8089, 0.51999, -4.49106, 17.2089, 0.51999, -4.49106, 16.9089, 0.51999, -4.59106, -20.6911, 0.51999, -3.39106, -20.3911, 0.51999, -3.29106, -20.3911, 0.51999, -4.19106, -20.6911, 0.51999, -4.19106, -2.29106, 1.01999, 1.10894, -1.99106, 1.01999, 1.00894, -1.99106, 1.01999, 0.508938, -2.29106, 1.01999, 0.10894, -1.99106, 1.01999, 0.00893784, -1.99106, 1.01999, -0.49106, -2.29106, 1.01999, -0.891062, -3.09106, 1.01999, 3.20894, 4.70894, 1.01999, 3.10894, 3.70894, 1.01999, 2.30894, -2.19106, 1.01999, 2.30894, -3.19106, 1.01999, -4.19106, -1.99106, 1.01999, -0.99106, -1.99106, 1.01999, -1.99106, -2.29106, 1.01999, -2.19106, -2.29106, 1.01999, -4.09106, 4.60894, 1.01999, -0.191059, 3.80894, 1.01999, -0.191059, 8.60894, 0.01999, -2.69106, 8.60894, 0.01999, -3.59106, 8.10894, 0.01999, -3.69106, 7.70894, 0.01999, 0.208939, 7.80894, 0.01999, 0.408939, 8.80894, 0.01999, -2.59106, 5.80894, 0.01999, 0.10894, -11.7911, 0.51999, -3.09106, -12.1911, 0.51999, -3.09106, -12.0911, 0.51999, -2.79106, -4.29106, 0.51999, -2.89106, -4.39106, 0.51999, -3.69106, -7.09106, 0.51999, -3.69106, -7.29106, 0.51999, -3.09106, -8.29106, 0.51999, -3.09106, -8.49106, 0.51999, -3.69106, -11.5911, 0.51999, -3.69106, -1.69106, 0.01999, -0.49106, -1.69106, 0.01999, -0.191059, -1.49106, 0.01999, -0.391062, -1.69106, 0.01999, -0.99106, -1.99106, 0.01999, -0.691061, -0.99106, 0.01999, -0.391062, -1.69106, 0.01999, 0.00893784, -1.99106, 0.01999, 0.208939, -1.69106, 0.01999, 0.508938, -1.49106, 0.01999, 0.408939, -1.59106, 0.01999, -2.99106, -1.69106, 0.01999, -1.99106, 1.60894, 0.01999, -2.79106, -1.69106, 0.01999, 1.00894, -0.99106, 0.01999, 0.408939, -2.09106, 0.01999, -2.99106, -2.09106, 0.01999, -2.29106, 1.60894, 0.01999, -3.19106, 1.20894, 0.01999, -3.59106, -0.791061, 0.01999, 0.10894, -2.09106, 0.01999, 2.10894, -2.09106, 0.01999, 1.30894, 3.60894, 0.01999, 2.10894, -2.09106, 1.74999, -3.19106, -1.59106, 1.74999, -3.29106, -1.69106, 1.76999, -3.59106, -2.09106, 1.73999, -3.59106, -1.99106, 0.01999, -3.49106, -1.99106, 0.01999, -3.29106, -1.79106, 0.01999, -3.29106, -1.79106, 0.01999, -3.49106, 1.80894, 2.03999, -3.19106, 1.90894, 1.99999, -2.79106, 2.20894, 2.02999, -2.89106, 2.10894, 2.02999, -3.29106, 10.7089, 0.01999, -2.59106, 11.8089, 0.01999, 0.10894, 12.8089, 0.01999, 0.10894, 16.7089, 0.01999, -2.49106, 11.6089, 0.01999, 0.208939, -1.49106, 1.73999, 0.208939, -0.99106, 1.73999, 0.10894, -1.09106, 1.76999, -0.191059, -1.49106, 1.74999, -0.191059, -1.39106, 0.01999, -0.0910606, -1.39106, 0.01999, 0.10894, -1.19106, 0.01999, 0.10894, -1.19106, 0.01999, -0.0910606, 11.9089, 0.51999, 1.20894, 12.7089, 0.51999, 1.10894, 12.6089, 0.51999, 0.308941, 11.8089, 0.51999, 0.308941, -8.09106, 0.01999, 24.7089, 0.708939, 0.01999, 24.6089, 0.608938, 0.01999, 15.8089, -8.19106, 0.01999, 15.8089, 2.20894, 0.01999, 19.3089, 2.70894, 0.01999, 19.1089, 2.70894, 0.01999, 18.7089, 2.30894, 0.01999, 18.2089, 1.30894, 0.01999, 18.3089, 3.30894, 0.01999, 17.3089, 3.10894, 0.01999, 16.8089, 2.70894, 0.01999, 16.7089, 2.60894, 0.01999, 16.3089, 1.80894, 0.01999, 16.3089, 2.60894, 0.01999, 20.7089, 2.70894, 0.01999, 19.9089, 2.20894, 0.01999, 19.7089, 1.30894, 0.01999, 20.6089, 4.70894, 0.01999, 18.3089, 5.20894, 0.01999, 18.1089, 5.10894, 0.01999, 17.3089, 1.80894, 0.01999, 17.6089, 2.30894, 0.01999, 17.8089, 4.60894, 0.01999, 18.7089) @@ -231,7 +232,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.400034, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.398493, 0.670723) [node name="LogCabin2" parent="NavigationRegion3D/Structures" instance=ExtResource("16_dbaly")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.2431, -0.500005, -8.08048) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.7431, -0.500005, -8.08048) [node name="LogCabin3" parent="NavigationRegion3D/Structures" instance=ExtResource("16_dbaly")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.9914, -1.00001, -3.03097) @@ -481,12 +482,6 @@ transform = Transform3D(1, 0, -1.74846e-07, 0, 1, 0, 1.74846e-07, 0, 1, 31.6818, [node name="Grass77" parent="NavigationRegion3D/Vegetation" instance=ExtResource("24_4cd0f")] transform = Transform3D(1, 0, -1.74846e-07, 0, 1, 0, 1.74846e-07, 0, 1, 32.1818, 0, -7.07575) -[node name="PugNPC" parent="." instance=ExtResource("23_fjbgv")] -behaviour = ExtResource("5_psje8") - -[node name="Geometry" parent="PugNPC" instance=ExtResource("29_mexqd")] -transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0) - [node name="Objects" type="Node3D" parent="."] [node name="Item" parent="Objects" instance=ExtResource("2_ccr0r")] @@ -569,6 +564,7 @@ unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.64783, 0, -1.58598) collision_layer = 0 collision_mask = 0 +behaviour = ExtResource("30_7tuqh") [node name="CollisionShape3D2" type="CollisionShape3D" parent="Quests/BuilderMissingTool/Merchant"] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0.310637, 0) @@ -600,6 +596,7 @@ script = ExtResource("24_5bs33") [node name="NonPlayerCharacter" parent="Quests/NeedSomeSeeds" instance=ExtResource("23_fjbgv")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, -3.5) +behaviour = ExtResource("30_7tuqh") [node name="Geometry" parent="Quests/NeedSomeSeeds/NonPlayerCharacter" instance=ExtResource("24_jxnq6")] transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0, 0) @@ -618,6 +615,19 @@ shape = SubResource("SphereShape3D_ugkqa") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21, 0, -7.5) item = ExtResource("7_pt3bs") +[node name="MissingPet" type="Node" parent="Quests"] + +[node name="PugNPC" parent="Quests/MissingPet" instance=ExtResource("23_fjbgv")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -12.5) +behaviour = ExtResource("5_2yc6b") + +[node name="Geometry" parent="Quests/MissingPet/PugNPC" instance=ExtResource("29_mexqd")] +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0) + +[node name="Timmy" parent="Quests/MissingPet" instance=ExtResource("23_fjbgv")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0, -7) +behaviour = ExtResource("30_7tuqh") + [node name="Water" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.239327, 0) visible = false