add lore feedback
This commit is contained in:
parent
0d012766af
commit
7bc780ebc2
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://bywmf3patoe56"
|
||||||
|
path="res://.godot/imported/board_completed.wav-5729ec7ec6afa4c9611784f034fcb0d1.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://base-environments/youth_room/audio/board_completed.wav"
|
||||||
|
dest_files=["res://.godot/imported/board_completed.wav-5729ec7ec6afa4c9611784f034fcb0d1.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dj8fpajqhj4k7"
|
||||||
|
path="res://.godot/imported/board_incomplete.wav-49b228daaa12eb0be66520e1d2f3a349.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://base-environments/youth_room/audio/board_incomplete.wav"
|
||||||
|
dest_files=["res://.godot/imported/board_incomplete.wav-49b228daaa12eb0be66520e1d2f3a349.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://brolrc3lhaeid"
|
||||||
|
path="res://.godot/imported/board_unfitting.wav-afbf1c6abdc3ac1e4cd8ff645b647e50.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://base-environments/youth_room/audio/board_unfitting.wav"
|
||||||
|
dest_files=["res://.godot/imported/board_unfitting.wav-afbf1c6abdc3ac1e4cd8ff645b647e50.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=112 format=4 uid="uid://b3b0gyvklqn50"]
|
[gd_scene load_steps=113 format=4 uid="uid://b3b0gyvklqn50"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://belkrno67sft0" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
|
[ext_resource type="Script" uid="uid://belkrno67sft0" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"]
|
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"]
|
||||||
|
|
@ -901,6 +901,9 @@ radius = 0.469631
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_hdmps"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_hdmps"]
|
||||||
viewport_path = NodePath("logic/MindBoard/UiWrapper/UiSprite/SubViewport")
|
viewport_path = NodePath("logic/MindBoard/UiWrapper/UiSprite/SubViewport")
|
||||||
|
|
||||||
|
[sub_resource type="ViewportTexture" id="ViewportTexture_v3447"]
|
||||||
|
viewport_path = NodePath("logic/Door/UiWrapper/UiSprite/SubViewport")
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_xum02"]
|
[sub_resource type="Animation" id="Animation_xum02"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
|
|
@ -1781,6 +1784,7 @@ size = Vector2i(400, 350)
|
||||||
render_target_update_mode = 4
|
render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="CollectableUi" parent="logic/MaskMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
[node name="CollectableUi" parent="logic/MaskMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||||
|
is_exit = null
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/MaskMemento"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/MaskMemento"]
|
||||||
shape = SubResource("CapsuleShape3D_72g2i")
|
shape = SubResource("CapsuleShape3D_72g2i")
|
||||||
|
|
@ -1818,6 +1822,7 @@ render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="CollectableUi" parent="logic/ClothesMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
[node name="CollectableUi" parent="logic/ClothesMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||||
scene = 3
|
scene = 3
|
||||||
|
is_exit = null
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/ClothesMemento"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/ClothesMemento"]
|
||||||
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
||||||
|
|
@ -1856,6 +1861,7 @@ render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="CollectableUi" parent="logic/ComicMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
[node name="CollectableUi" parent="logic/ComicMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||||
scene = 2
|
scene = 2
|
||||||
|
is_exit = null
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/ComicMemento"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/ComicMemento"]
|
||||||
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
||||||
|
|
@ -1895,6 +1901,7 @@ render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="CollectableUi" parent="logic/CeilingMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
[node name="CollectableUi" parent="logic/CeilingMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||||
scene = 0
|
scene = 0
|
||||||
|
is_exit = null
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/CeilingMemento"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/CeilingMemento"]
|
||||||
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
||||||
|
|
@ -1933,11 +1940,50 @@ render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="CollectableUi" parent="logic/MindBoard/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
[node name="CollectableUi" parent="logic/MindBoard/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||||
is_board = true
|
is_board = true
|
||||||
|
is_exit = null
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/MindBoard"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/MindBoard"]
|
||||||
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||||
shape = SubResource("CapsuleShape3D_72g2i")
|
shape = SubResource("CapsuleShape3D_72g2i")
|
||||||
|
|
||||||
|
[node name="Door" type="Area3D" parent="logic" groups=["interactables"]]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(0.999999, 0, 4.9738e-14, 0, 1, 0, -4.9738e-14, 0, 0.999999, 0.115203, 1.3931, -0.954428)
|
||||||
|
collision_layer = 16
|
||||||
|
script = ExtResource("11_6fwv8")
|
||||||
|
|
||||||
|
[node name="collectable_particles" parent="logic/Door" instance=ExtResource("12_qxx2k")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="UiWrapper" type="Area3D" parent="logic/Door"]
|
||||||
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||||
|
script = ExtResource("11_7uxd8")
|
||||||
|
billboard = false
|
||||||
|
|
||||||
|
[node name="UI_click_collider" type="CollisionShape3D" parent="logic/Door/UiWrapper"]
|
||||||
|
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
|
||||||
|
shape = SubResource("BoxShape3D_cb3g8")
|
||||||
|
|
||||||
|
[node name="UiSprite" type="Sprite3D" parent="logic/Door/UiWrapper"]
|
||||||
|
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, -1.0693e-14, 0, 0.180784)
|
||||||
|
modulate = Color(0.941183, 0.904347, 0.886647, 1)
|
||||||
|
pixel_size = 0.015
|
||||||
|
texture = SubResource("ViewportTexture_v3447")
|
||||||
|
|
||||||
|
[node name="SubViewport" type="SubViewport" parent="logic/Door/UiWrapper/UiSprite"]
|
||||||
|
transparent_bg = true
|
||||||
|
use_hdr_2d = true
|
||||||
|
size = Vector2i(400, 350)
|
||||||
|
render_target_update_mode = 4
|
||||||
|
|
||||||
|
[node name="CollectableUi" parent="logic/Door/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||||
|
is_exit = true
|
||||||
|
|
||||||
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/Door"]
|
||||||
|
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||||
|
shape = SubResource("CapsuleShape3D_72g2i")
|
||||||
|
|
||||||
[node name="DoorTrigger" type="Area3D" parent="logic" groups=["interactables"]]
|
[node name="DoorTrigger" type="Area3D" parent="logic" groups=["interactables"]]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
process_mode = 4
|
process_mode = 4
|
||||||
|
|
@ -1971,6 +2017,7 @@ size = Vector2i(400, 350)
|
||||||
render_target_update_mode = 4
|
render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="CollectableUi" parent="logic/DoorTrigger/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
[node name="CollectableUi" parent="logic/DoorTrigger/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||||
|
is_exit = null
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/DoorTrigger"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/DoorTrigger"]
|
||||||
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||||
|
|
@ -2293,7 +2340,6 @@ light_array = Array[Vector3]([Vector3(-0.545, 0.915, 1.035), Vector3(-0.47, 0.85
|
||||||
[connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"]
|
[connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"]
|
||||||
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending_button" method="hide"]
|
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending_button" method="hide"]
|
||||||
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending" method="show"]
|
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending" method="show"]
|
||||||
[connection signal="board_completed" from="logic/UI/Board" to="logic/UI/ending_button" method="show"]
|
|
||||||
[connection signal="emit_thunder" from="logic/ScenePlayer/JuiJutsu" to="AnimationPlayer" method="play" binds= ["lighting_and_thunder"]]
|
[connection signal="emit_thunder" from="logic/ScenePlayer/JuiJutsu" to="AnimationPlayer" method="play" binds= ["lighting_and_thunder"]]
|
||||||
[connection signal="finished" from="logic/ScenePlayer/draven" to="logic/ScenePlayer" method="on_draeven_done"]
|
[connection signal="finished" from="logic/ScenePlayer/draven" to="logic/ScenePlayer" method="on_draeven_done"]
|
||||||
[connection signal="input_event" from="logic/MaskMemento/UiWrapper" to="logic/MaskMemento/UiWrapper" method="_on_input_event"]
|
[connection signal="input_event" from="logic/MaskMemento/UiWrapper" to="logic/MaskMemento/UiWrapper" method="_on_input_event"]
|
||||||
|
|
@ -2306,4 +2352,7 @@ light_array = Array[Vector3]([Vector3(-0.545, 0.915, 1.035), Vector3(-0.47, 0.85
|
||||||
[connection signal="scene_skipped" from="logic/CeilingMemento/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="on_scene_skipped"]
|
[connection signal="scene_skipped" from="logic/CeilingMemento/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="on_scene_skipped"]
|
||||||
[connection signal="input_event" from="logic/MindBoard/UiWrapper" to="logic/MindBoard/UiWrapper" method="_on_input_event"]
|
[connection signal="input_event" from="logic/MindBoard/UiWrapper" to="logic/MindBoard/UiWrapper" method="_on_input_event"]
|
||||||
[connection signal="open_board" from="logic/MindBoard/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="claim_focus"]
|
[connection signal="open_board" from="logic/MindBoard/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="claim_focus"]
|
||||||
|
[connection signal="input_event" from="logic/Door/UiWrapper" to="logic/Door/UiWrapper" method="_on_input_event"]
|
||||||
|
[connection signal="open_board" from="logic/Door/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="claim_focus"]
|
||||||
[connection signal="input_event" from="logic/DoorTrigger/UiWrapper" to="logic/DoorTrigger/UiWrapper" method="_on_input_event"]
|
[connection signal="input_event" from="logic/DoorTrigger/UiWrapper" to="logic/DoorTrigger/UiWrapper" method="_on_input_event"]
|
||||||
|
[connection signal="exit_room" from="logic/DoorTrigger/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/ending" method="show"]
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ func _ready() -> void:
|
||||||
update_mix_target()
|
update_mix_target()
|
||||||
|
|
||||||
func update_mix_target():
|
func update_mix_target():
|
||||||
if State.force_stereo:
|
if State.force_stereo or true:
|
||||||
mix_target = AudioStreamPlayer.MIX_TARGET_STEREO
|
mix_target = AudioStreamPlayer.MIX_TARGET_STEREO
|
||||||
else:
|
else:
|
||||||
mix_target = AudioStreamPlayer.MIX_TARGET_CENTER
|
mix_target = AudioStreamPlayer.MIX_TARGET_CENTER
|
||||||
|
|
|
||||||
|
|
@ -129,11 +129,10 @@ func _ready():
|
||||||
dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + size_reference.minimum_size.x, dropzone_padding)
|
dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + size_reference.minimum_size.x, dropzone_padding)
|
||||||
|
|
||||||
if get_parent() == get_tree().root:
|
if get_parent() == get_tree().root:
|
||||||
populate_board(["c_void", 'c_joy', "p_wet", "p_effort"])
|
populate_board(["c_void", 'c_joy', "p_wet", "p_worried_mother"])
|
||||||
populate_board(["c_jui_jutsu", 'c_hit', "p_girly", "p_vent"])
|
populate_board(["c_jui_jutsu", 'c_hit', "p_girly", "p_vent"])
|
||||||
populate_board(["c_comic_heroes", 'c_teasing', "p_agent_q", "p_good_intended"])
|
populate_board(["c_comic_heroes", 'c_teasing', "p_agent_q", "p_good_intended"])
|
||||||
populate_board(["c_out_of_world", 'c_confusion', "p_outer_conflict", "p_unique"])
|
populate_board(["c_out_of_world", 'c_confusion', "p_outer_conflict", "p_unique"])
|
||||||
mementos_collected = 2
|
|
||||||
|
|
||||||
has_stage = has_stage
|
has_stage = has_stage
|
||||||
|
|
||||||
|
|
@ -238,7 +237,7 @@ func handle_mouse_button(input: InputEventMouseButton, to_handle = currently_act
|
||||||
if sticky_note_container.get_child_count() > 0:
|
if sticky_note_container.get_child_count() > 0:
|
||||||
sticky_note_container.get_child(current_sticky_note_id).clear_if_empty()
|
sticky_note_container.get_child(current_sticky_note_id).clear_if_empty()
|
||||||
current_context = NAVIGATE
|
current_context = NAVIGATE
|
||||||
if is_board_complete(): board_completed.emit()
|
check_board_comnpletion()
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
var i: int = 0
|
var i: int = 0
|
||||||
|
|
@ -281,7 +280,18 @@ func _return_sticky_notes_to_panels():
|
||||||
if node is StickyNote:
|
if node is StickyNote:
|
||||||
node.is_dragable = true
|
node.is_dragable = true
|
||||||
|
|
||||||
func is_board_complete() -> bool:
|
var board_was_completed: bool = false
|
||||||
|
func check_board_comnpletion():
|
||||||
|
if is_board_complete():
|
||||||
|
for child:StickyNotePanel in sticky_note_container.get_children():
|
||||||
|
child.clear_if_empty()
|
||||||
|
if not board_was_completed:
|
||||||
|
board_was_completed = true
|
||||||
|
board_completed.emit()
|
||||||
|
if board_was_completed:
|
||||||
|
give_lore_feedback()
|
||||||
|
|
||||||
|
func is_board_complete():
|
||||||
if mementos_collected == 4:
|
if mementos_collected == 4:
|
||||||
for card in dropzone.get_children():
|
for card in dropzone.get_children():
|
||||||
if card is Card:
|
if card is Card:
|
||||||
|
|
@ -290,6 +300,35 @@ func is_board_complete() -> bool:
|
||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
var unfitting: bool = false
|
||||||
|
var incomplete: bool = false
|
||||||
|
var complete: bool = false
|
||||||
|
func give_lore_feedback():
|
||||||
|
var fitting_card_count: int = 0
|
||||||
|
var total_card_count: int = 0
|
||||||
|
|
||||||
|
for child in dropzone.get_children():
|
||||||
|
if child is Card:
|
||||||
|
if child.has_sticky_note_attached():
|
||||||
|
fitting_card_count += int(child.card_id == child.get_attached_sticky_note().parent_id)
|
||||||
|
total_card_count += 1
|
||||||
|
|
||||||
|
if float(fitting_card_count) / float(total_card_count) < 0.2:
|
||||||
|
instructions.text = "You can move on, but you may not have understood Lisa."
|
||||||
|
if not unfitting:
|
||||||
|
$AnimationPlayer.play("unfitting")
|
||||||
|
unfitting = true
|
||||||
|
elif fitting_card_count != total_card_count or total_card_count != dropzone.get_child_count() or sticky_note_container.get_child_count() != 0:
|
||||||
|
instructions.text = TranslationServer.translate("You may leave the room, but Lisa only agrees with %d of the %d connections.") % [fitting_card_count, total_card_count]
|
||||||
|
if not incomplete:
|
||||||
|
$AnimationPlayer.play("incomplete")
|
||||||
|
incomplete = true
|
||||||
|
else:
|
||||||
|
instructions.text = "Lisa would like you to leave her room and move on."
|
||||||
|
if not complete:
|
||||||
|
$AnimationPlayer.play("complete")
|
||||||
|
complete = true
|
||||||
|
|
||||||
func is_board_lore() -> bool:
|
func is_board_lore() -> bool:
|
||||||
for card in dropzone.get_children():
|
for card in dropzone.get_children():
|
||||||
if card is Card:
|
if card is Card:
|
||||||
|
|
@ -392,7 +431,7 @@ func _input(event):
|
||||||
current_context = NAVIGATE
|
current_context = NAVIGATE
|
||||||
current_sticky_note_id += 1
|
current_sticky_note_id += 1
|
||||||
current_dropzone_id = find_first_free_card()
|
current_dropzone_id = find_first_free_card()
|
||||||
if is_board_complete(): emit_signal("board_completed")
|
check_board_comnpletion()
|
||||||
else:
|
else:
|
||||||
if !focus_stickies and card.has_sticky_note_attached():
|
if !focus_stickies and card.has_sticky_note_attached():
|
||||||
currently_active_node = card.remove_sticky_note()
|
currently_active_node = card.remove_sticky_note()
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://bnskiyx1sksww"]
|
[gd_scene load_steps=18 format=3 uid="uid://bnskiyx1sksww"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bi3xqdknw5tpe" path="res://logic-scenes/board/board-texture/Cork002_2K_Color.png" id="1_8brxc"]
|
[ext_resource type="Texture2D" uid="uid://bi3xqdknw5tpe" path="res://logic-scenes/board/board-texture/Cork002_2K_Color.png" id="1_8brxc"]
|
||||||
[ext_resource type="Shader" uid="uid://kyd37e0s6fdu" path="res://logic-scenes/board/physics-board.gdshader" id="1_ggnth"]
|
[ext_resource type="Shader" uid="uid://kyd37e0s6fdu" path="res://logic-scenes/board/physics-board.gdshader" id="1_ggnth"]
|
||||||
[ext_resource type="Script" uid="uid://cqsor57nvowni" path="res://logic-scenes/board/card-board.gd" id="3_8v4c4"]
|
[ext_resource type="Script" uid="uid://cqsor57nvowni" path="res://logic-scenes/board/card-board.gd" id="3_8v4c4"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bywmf3patoe56" path="res://base-environments/youth_room/audio/board_completed.wav" id="5_qjqy3"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dj8fpajqhj4k7" path="res://base-environments/youth_room/audio/board_incomplete.wav" id="6_vtvtf"]
|
||||||
[ext_resource type="Script" uid="uid://ddy8kb2hjvgss" path="res://logic-scenes/board/card collider.gd" id="6_wpxls"]
|
[ext_resource type="Script" uid="uid://ddy8kb2hjvgss" path="res://logic-scenes/board/card collider.gd" id="6_wpxls"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://brolrc3lhaeid" path="res://base-environments/youth_room/audio/board_unfitting.wav" id="7_0phgc"]
|
||||||
|
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="8_ni75f"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ttqei"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ttqei"]
|
||||||
shader = ExtResource("1_ggnth")
|
shader = ExtResource("1_ggnth")
|
||||||
|
|
@ -18,6 +22,74 @@ size = Vector2(4262, 766.5)
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ivo5o"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ivo5o"]
|
||||||
size = Vector2(4249, 766.5)
|
size = Vector2(4249, 766.5)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_2qppy"]
|
||||||
|
resource_name = "complete"
|
||||||
|
length = 14.5
|
||||||
|
tracks/0/type = "audio"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"clips": [{
|
||||||
|
"end_offset": 0.0,
|
||||||
|
"start_offset": 0.42,
|
||||||
|
"stream": ExtResource("5_qjqy3")
|
||||||
|
}],
|
||||||
|
"times": PackedFloat32Array(0.1)
|
||||||
|
}
|
||||||
|
tracks/0/use_blend = true
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_kvxnu"]
|
||||||
|
resource_name = "incomplete"
|
||||||
|
length = 12.0
|
||||||
|
tracks/0/type = "audio"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"clips": [{
|
||||||
|
"end_offset": 0.0,
|
||||||
|
"start_offset": 0.36,
|
||||||
|
"stream": ExtResource("6_vtvtf")
|
||||||
|
}],
|
||||||
|
"times": PackedFloat32Array(0.1)
|
||||||
|
}
|
||||||
|
tracks/0/use_blend = true
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_k5h0q"]
|
||||||
|
resource_name = "unfitting"
|
||||||
|
length = 9.0
|
||||||
|
tracks/0/type = "audio"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"clips": [{
|
||||||
|
"end_offset": 1.06,
|
||||||
|
"start_offset": 0.59,
|
||||||
|
"stream": ExtResource("7_0phgc")
|
||||||
|
}],
|
||||||
|
"times": PackedFloat32Array(0.333333)
|
||||||
|
}
|
||||||
|
tracks/0/use_blend = true
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_qjqy3"]
|
||||||
|
length = 0.001
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_htay1"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_qjqy3"),
|
||||||
|
&"complete": SubResource("Animation_2qppy"),
|
||||||
|
&"incomplete": SubResource("Animation_kvxnu"),
|
||||||
|
&"unfitting": SubResource("Animation_k5h0q")
|
||||||
|
}
|
||||||
|
|
||||||
[node name="board" type="PanelContainer"]
|
[node name="board" type="PanelContainer"]
|
||||||
material = SubResource("ShaderMaterial_ttqei")
|
material = SubResource("ShaderMaterial_ttqei")
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
|
|
@ -128,3 +200,13 @@ custom_minimum_size = Vector2(15, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Timer" type="Timer" parent="."]
|
[node name="Timer" type="Timer" parent="."]
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_htay1")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LisaFeedback" type="AudioStreamPlayer" parent="AnimationPlayer"]
|
||||||
|
mix_target = 2
|
||||||
|
bus = &"text"
|
||||||
|
script = ExtResource("8_ni75f")
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,8 @@ var on_board: bool = false
|
||||||
func _init(sticky_name: String = "sticky_note", card_id: StringName = "-1") -> void:
|
func _init(sticky_name: String = "sticky_note", card_id: StringName = "-1") -> void:
|
||||||
name = sticky_name
|
name = sticky_name
|
||||||
text = sticky_name
|
text = sticky_name
|
||||||
parent_id = card_id
|
parent_id = StringName(card_id.rsplit(".", false, 1)[0])
|
||||||
sticky_id = StringName( "%s.%s" % [parent_id, sticky_name] )
|
sticky_id = card_id
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if get_child_count() == 0:
|
if get_child_count() == 0:
|
||||||
|
|
|
||||||
|
|
@ -125,8 +125,20 @@ class_name CollectableUi extends CenterContainer
|
||||||
else:
|
else:
|
||||||
scene = scene
|
scene = scene
|
||||||
collected_box.show()
|
collected_box.show()
|
||||||
|
@export var is_exit:bool = false:
|
||||||
|
set(exit):
|
||||||
|
is_exit = exit
|
||||||
|
if is_inside_tree():
|
||||||
|
if exit:
|
||||||
|
if title_override == "": title_label.text = "Move on"
|
||||||
|
collected_box.hide()
|
||||||
|
else:
|
||||||
|
scene = scene
|
||||||
|
collected_box.show()
|
||||||
|
|
||||||
|
|
||||||
signal open_board
|
signal open_board
|
||||||
|
signal exit_room
|
||||||
|
|
||||||
#TODO implement proper scene skipping
|
#TODO implement proper scene skipping
|
||||||
signal scene_skipped(i: int)
|
signal scene_skipped(i: int)
|
||||||
|
|
@ -149,6 +161,7 @@ func _on_context_updated():
|
||||||
func update_state():
|
func update_state():
|
||||||
scene = scene
|
scene = scene
|
||||||
is_board = is_board
|
is_board = is_board
|
||||||
|
is_exit = is_exit
|
||||||
_on_context_updated()
|
_on_context_updated()
|
||||||
|
|
||||||
func reveal():
|
func reveal():
|
||||||
|
|
@ -172,11 +185,14 @@ func _input(event: InputEvent) -> void:
|
||||||
print("handle input")
|
print("handle input")
|
||||||
if not visible: return
|
if not visible: return
|
||||||
if event.is_action_pressed("collect_memento_ui"):
|
if event.is_action_pressed("collect_memento_ui"):
|
||||||
if not is_board:
|
if not (is_board or is_exit):
|
||||||
collect_memento()
|
collect_memento()
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
else:
|
else:
|
||||||
|
if is_board:
|
||||||
open_board.emit()
|
open_board.emit()
|
||||||
|
if is_exit:
|
||||||
|
exit_room.emit()
|
||||||
elif event.is_action_pressed("option_memento_ui"):
|
elif event.is_action_pressed("option_memento_ui"):
|
||||||
is_expanded = true
|
is_expanded = true
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue