Compare commits

..

No commits in common. "09f48c8ae0e309188cf3a6c34301e59f28854328" and "46a4a7fb4a71492547e3e5cb5bd199a241051de8" have entirely different histories.

33 changed files with 72 additions and 475 deletions

View File

@ -33,7 +33,6 @@ SETTINGS_GAME,Game
SETTINGS_GAME_HEADING,"Game Configuration" SETTINGS_GAME_HEADING,"Game Configuration"
SETTINGS_GAME_ACCESSIBILITY_HEADING,Accessibility SETTINGS_GAME_ACCESSIBILITY_HEADING,Accessibility
SETTINGS_GAME_INPUT_HEADING,Input SETTINGS_GAME_INPUT_HEADING,Input
SETTINGS_GAME_TUTORIAL_HEADING,Tutorial
SETTINGS_SCREEN_SHAKE,"Enable Screen Shake" SETTINGS_SCREEN_SHAKE,"Enable Screen Shake"
SETTINGS_HEAD_BOB,"Enable Head Bob" SETTINGS_HEAD_BOB,"Enable Head Bob"
SETTINGS_SENSITIVITY_X,"Sensitivity, Horizontal" SETTINGS_SENSITIVITY_X,"Sensitivity, Horizontal"
@ -43,8 +42,6 @@ SETTINGS_INVERT_PITCH,"Invert Pitch"
SETTINGS_HOLD_TO_SNEAK,"Hold to Sneak" SETTINGS_HOLD_TO_SNEAK,"Hold to Sneak"
SETTINGS_ROTATION_SENSITIVITY_X,"Object Rotation Sensitivity, Horizontal" SETTINGS_ROTATION_SENSITIVITY_X,"Object Rotation Sensitivity, Horizontal"
SETTINGS_ROTATION_SENSITIVITY_Y,"Object Rotation Sensitivity, Vertical" SETTINGS_ROTATION_SENSITIVITY_Y,"Object Rotation Sensitivity, Vertical"
SETTINGS_TUTORIAL_DISABLE,"Disable tutorial messages"
SETTINGS_TUTORIAL_RESET,"Reset tutorial progress (effective on next load)"
SETTINGS_GRAPHICS,Graphics SETTINGS_GRAPHICS,Graphics
SETTINGS_GRAPHICS_HEADING,"Graphics & Display" SETTINGS_GRAPHICS_HEADING,"Graphics & Display"
SETTINGS_GRAPHICS_DISPLAY_HEADING,Display SETTINGS_GRAPHICS_DISPLAY_HEADING,Display
@ -74,7 +71,6 @@ ACTION_select_point_spray,"Select spot spray"
ACTION_select_wide_spray,"Select wide spray" ACTION_select_wide_spray,"Select wide spray"
ACTION_select_brush,"Select toothbrush" ACTION_select_brush,"Select toothbrush"
ACTION_select_mp3_player,"Select MP3 player" ACTION_select_mp3_player,"Select MP3 player"
ACTION_select_stickers,"Select sticker pack"
ACTION_select_manual,"Select manual" ACTION_select_manual,"Select manual"
ACTION_pause,Pause ACTION_pause,Pause
, ,
@ -103,16 +99,15 @@ SWITCH_QUARANTINE_LABEL,"Quarantine Override"
SWITCH_CARGOBAY_LABEL,"Cargo Bay Security Override" SWITCH_CARGOBAY_LABEL,"Cargo Bay Security Override"
SWITCH_CARGO_LIFT_LABEL,"Cargo Lift Control" SWITCH_CARGO_LIFT_LABEL,"Cargo Lift Control"
, ,
TUTORIAL_LOOK,": look around" TUTORIAL_LOOK,": look"
TUTORIAL_MOVE,": move around" TUTORIAL_MOVE,": move around"
TUTORIAL_JUMP,": jump" TUTORIAL_JUMP,": jump"
TUTORIAL_SNEAK,": sneak silently" TUTORIAL_SNEAK,": sneak silently"
TUTORIAL_SPRINT,": run" TUTORIAL_SPRINT,": sprint"
TUTORIAL_FIRE,": use equipped tool" TUTORIAL_FIRE,": use equipped tool"
TUTORIAL_MODE,": switch tool mode" TUTORIAL_MODE,": switch tool mode"
TUTORIAL_INTERACT,": interact" TUTORIAL_INTERACT,": interact"
TUTORIAL_PICK_UP,": pick up objects" TUTORIAL_PICK_UP,": pick up object"
TUTORIAL_THROW,"while holding an object: throw" TUTORIAL_ROTATE,": rotate held object"
TUTORIAL_ROTATE,"while holding an object: rotate"
TUTORIAL_PREV_NEXT_TOOL,": switch to previous/next tool" TUTORIAL_PREV_NEXT_TOOL,": switch to previous/next tool"
TUTORIAL_SWITCH_TOOL,": switch tools" TUTORIAL_SWITCH_TOOL,": switch tools"

1 keys en
33 SETTINGS_GAME_HEADING Game Configuration
34 SETTINGS_GAME_ACCESSIBILITY_HEADING Accessibility
35 SETTINGS_GAME_INPUT_HEADING Input
SETTINGS_GAME_TUTORIAL_HEADING Tutorial
36 SETTINGS_SCREEN_SHAKE Enable Screen Shake
37 SETTINGS_HEAD_BOB Enable Head Bob
38 SETTINGS_SENSITIVITY_X Sensitivity, Horizontal
42 SETTINGS_HOLD_TO_SNEAK Hold to Sneak
43 SETTINGS_ROTATION_SENSITIVITY_X Object Rotation Sensitivity, Horizontal
44 SETTINGS_ROTATION_SENSITIVITY_Y Object Rotation Sensitivity, Vertical
SETTINGS_TUTORIAL_DISABLE Disable tutorial messages
SETTINGS_TUTORIAL_RESET Reset tutorial progress (effective on next load)
45 SETTINGS_GRAPHICS Graphics
46 SETTINGS_GRAPHICS_HEADING Graphics & Display
47 SETTINGS_GRAPHICS_DISPLAY_HEADING Display
71 ACTION_select_wide_spray Select wide spray
72 ACTION_select_brush Select toothbrush
73 ACTION_select_mp3_player Select MP3 player
ACTION_select_stickers Select sticker pack
74 ACTION_select_manual Select manual
75 ACTION_pause Pause
76
99 SWITCH_CARGOBAY_LABEL Cargo Bay Security Override
100 SWITCH_CARGO_LIFT_LABEL Cargo Lift Control
101
102 TUTORIAL_LOOK : look around : look
103 TUTORIAL_MOVE : move around
104 TUTORIAL_JUMP : jump
105 TUTORIAL_SNEAK : sneak silently
106 TUTORIAL_SPRINT : run : sprint
107 TUTORIAL_FIRE : use equipped tool
108 TUTORIAL_MODE : switch tool mode
109 TUTORIAL_INTERACT : interact
110 TUTORIAL_PICK_UP : pick up objects : pick up object
111 TUTORIAL_THROW TUTORIAL_ROTATE while holding an object: throw : rotate held object
TUTORIAL_ROTATE while holding an object: rotate
112 TUTORIAL_PREV_NEXT_TOOL : switch to previous/next tool
113 TUTORIAL_SWITCH_TOOL : switch tools

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=67 format=3 uid="uid://cwhmn3w8hoads"] [gd_scene load_steps=63 format=3 uid="uid://cwhmn3w8hoads"]
[ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="1_isxnv"] [ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="1_isxnv"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_si4vj"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_si4vj"]
@ -32,8 +32,6 @@
[ext_resource type="Script" uid="uid://040xta01xqxd" path="res://src/props/physics/holdable.gd" id="28_knpho"] [ext_resource type="Script" uid="uid://040xta01xqxd" path="res://src/props/physics/holdable.gd" id="28_knpho"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="29_ib88w"] [ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="29_ib88w"]
[ext_resource type="Texture2D" uid="uid://c1v1sj6b8rwrl" path="res://levels/ghost_ship/level/airlock/overhead_light_airlock_mask_C.png" id="31_2dnfr"] [ext_resource type="Texture2D" uid="uid://c1v1sj6b8rwrl" path="res://levels/ghost_ship/level/airlock/overhead_light_airlock_mask_C.png" id="31_2dnfr"]
[ext_resource type="Script" uid="uid://c3i315cnqikok" path="res://src/game/tutorial/tutorial_area.gd" id="33_a8g8h"]
[ext_resource type="Script" uid="uid://dg55jdoyctdq6" path="res://src/game/tutorial/tutorial_timer.gd" id="34_cd8k0"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_yvipw"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_yvipw"]
data = PackedVector3Array(4.5, 0, 4.5, -4.5, 0, 4.5, 4.5, 0, -4.5, 4.5, 0, -4.5, -4.5, 0, 4.5, -4.5, 0, -4.5) data = PackedVector3Array(4.5, 0, 4.5, -4.5, 0, 4.5, 4.5, 0, -4.5, 4.5, 0, -4.5, -4.5, 0, 4.5, -4.5, 0, -4.5)
@ -188,12 +186,6 @@ turbulence_noise_strength = 0.1
turbulence_noise_scale = 0.3 turbulence_noise_scale = 0.3
turbulence_influence_min = 0.0 turbulence_influence_min = 0.0
[sub_resource type="BoxShape3D" id="BoxShape3D_2dnfr"]
size = Vector3(9, 3, 8.7)
[sub_resource type="BoxShape3D" id="BoxShape3D_cd8k0"]
size = Vector3(9, 3, 4.2)
[node name="Airlock" type="Node3D"] [node name="Airlock" type="Node3D"]
[node name="Bounds" type="Node3D" parent="."] [node name="Bounds" type="Node3D" parent="."]
@ -409,7 +401,7 @@ shape = SubResource("ConcavePolygonShape3D_isly2")
transform = Transform3D(0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, 3.33603, 0.25, 3.53907) transform = Transform3D(0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, 3.33603, 0.25, 3.53907)
collision_layer = 71 collision_layer = 71
collision_mask = 73 collision_mask = 73
mass = 60.0 mass = 200.0
sleeping = true sleeping = true
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/CrateLong"] [node name="MeshInstance3D" type="MeshInstance3D" parent="Props/CrateLong"]
@ -428,7 +420,7 @@ metadata/_custom_type_script = "uid://040xta01xqxd"
transform = Transform3D(0.612372, 0.612373, 0.5, -0.707107, 0.707106, 1.98952e-13, -0.353553, -0.353553, 0.866025, 3.71304, 0.441942, 2.81688) transform = Transform3D(0.612372, 0.612373, 0.5, -0.707107, 0.707106, 1.98952e-13, -0.353553, -0.353553, 0.866025, 3.71304, 0.441942, 2.81688)
collision_layer = 71 collision_layer = 71
collision_mask = 73 collision_mask = 73
mass = 60.0 mass = 200.0
sleeping = true sleeping = true
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/CrateLong2"] [node name="MeshInstance3D" type="MeshInstance3D" parent="Props/CrateLong2"]
@ -465,34 +457,4 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-4.5, -1.5, -4.5, 9, 3, 9) visibility_aabb = AABB(-4.5, -1.5, -4.5, 9, 3, 9)
process_material = SubResource("ParticleProcessMaterial_otfxe") process_material = SubResource("ParticleProcessMaterial_otfxe")
[node name="FireTutorialArea" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
collision_layer = 0
collision_mask = 8
script = ExtResource("33_a8g8h")
tutorial_key = &"game/tutorial/progress/fire"
[node name="CollisionShape3D" type="CollisionShape3D" parent="FireTutorialArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.15)
shape = SubResource("BoxShape3D_2dnfr")
[node name="ToolSwitchTutorialArea" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
collision_layer = 0
collision_mask = 8
script = ExtResource("33_a8g8h")
tutorial_key = &"game/tutorial/progress/tool_switch"
[node name="CollisionShape3D" type="CollisionShape3D" parent="ToolSwitchTutorialArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.4)
shape = SubResource("BoxShape3D_cd8k0")
[node name="ToolPrevNextTutorialTimer" type="Timer" parent="."]
wait_time = 1.6
one_shot = true
script = ExtResource("34_cd8k0")
tutorial_key = &"game/tutorial/progress/tool_prev_next"
[connection signal="body_entered" from="ToolSwitchTutorialArea" to="ToolPrevNextTutorialTimer" method="start" unbinds=1]
[editable path="Props/EmptySuitChamber"] [editable path="Props/EmptySuitChamber"]

View File

@ -1,11 +1,10 @@
[gd_scene load_steps=37 format=4 uid="uid://ddmgqfhiv3aag"] [gd_scene load_steps=35 format=4 uid="uid://ddmgqfhiv3aag"]
[ext_resource type="ArrayMesh" uid="uid://cqd0a7ousx01n" path="res://assets/level/hallway/hallway_1.mesh" id="1_ckpmb"] [ext_resource type="ArrayMesh" uid="uid://cqd0a7ousx01n" path="res://assets/level/hallway/hallway_1.mesh" id="1_ckpmb"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="3_s4vba"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="3_s4vba"]
[ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="4_vc8nj"] [ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="4_vc8nj"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="5_hwbyh"] [ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="5_hwbyh"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="8_t14hf"] [ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="8_t14hf"]
[ext_resource type="Script" uid="uid://c3i315cnqikok" path="res://src/game/tutorial/tutorial_area.gd" id="9_20ek7"]
[ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="9_vwa0l"] [ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="9_vwa0l"]
[ext_resource type="Material" uid="uid://dmolqtdktqdsl" path="res://levels/ghost_ship/guide_sign/airlock_sign.material" id="10_5qwf5"] [ext_resource type="Material" uid="uid://dmolqtdktqdsl" path="res://levels/ghost_ship/guide_sign/airlock_sign.material" id="10_5qwf5"]
[ext_resource type="Material" uid="uid://dutkfm4ek0ysh" path="res://assets/materials/gunk_bright.material" id="11_i2ry3"] [ext_resource type="Material" uid="uid://dutkfm4ek0ysh" path="res://assets/materials/gunk_bright.material" id="11_i2ry3"]
@ -97,9 +96,6 @@ shadow_mesh = SubResource("ArrayMesh_al0j5")
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ojd88"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ojd88"]
data = PackedVector3Array(-1, 0, 0.2, -1, -0.4, 0, -1, 0, -0.2, -1, 0, -0.2, -1, -0.4, 0, 1, 0, -0.2, 1, 0, -0.2, -1, -0.4, 0, 1, -0.4, 0, 1, 0, -0.2, 1, -0.4, 0, 1, 0, 0.2, 1, 0, 0.2, 1, -0.4, 0, -1, 0, 0.2, -1, 0, 0.2, 1, -0.4, 0, -1, -0.4, 0, -1, 0, -0.2, 1, 0, -0.2, -1, 0, 0.2, -1, 0, 0.2, 1, 0, -0.2, 1, 0, 0.2) data = PackedVector3Array(-1, 0, 0.2, -1, -0.4, 0, -1, 0, -0.2, -1, 0, -0.2, -1, -0.4, 0, 1, 0, -0.2, 1, 0, -0.2, -1, -0.4, 0, 1, -0.4, 0, 1, 0, -0.2, 1, -0.4, 0, 1, 0, 0.2, 1, 0, 0.2, 1, -0.4, 0, -1, 0, 0.2, -1, 0, 0.2, 1, -0.4, 0, -1, -0.4, 0, -1, 0, -0.2, 1, 0, -0.2, -1, 0, 0.2, -1, 0, 0.2, 1, 0, -0.2, 1, 0, 0.2)
[sub_resource type="BoxShape3D" id="BoxShape3D_vc8nj"]
size = Vector3(3, 3, 3)
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_if0c2"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_if0c2"]
data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5) data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5)
@ -131,15 +127,15 @@ mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("5_hwbyh") source_gunk_material = ExtResource("5_hwbyh")
[node name="PhysCrateLong" parent="Hallway1" instance=ExtResource("4_vc8nj")] [node name="PhysCrateLong" parent="Hallway1" instance=ExtResource("4_vc8nj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.25, -2.9) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.25, -5.9)
sleeping = true sleeping = true
[node name="PhysCrateLong2" parent="Hallway1" instance=ExtResource("4_vc8nj")] [node name="PhysCrateLong2" parent="Hallway1" instance=ExtResource("4_vc8nj")]
transform = Transform3D(0.857697, 0, -0.514155, 0, 1, 0, 0.514155, 0, 0.857697, -0.462458, 0.25, -2.85781) transform = Transform3D(0.258819, -0.965926, 0, 0.965926, 0.258819, 0, 0, 0, 1, 1.2, 0.426927, -3.9)
sleeping = true sleeping = true
[node name="PhysCrateLong3" parent="Hallway1" instance=ExtResource("4_vc8nj")] [node name="PhysCrateLong3" parent="Hallway1" instance=ExtResource("4_vc8nj")]
transform = Transform3D(0.999619, 0, 0.0276076, 0, 1, 0, -0.0276076, 0, 0.999619, 0.971434, 0.75, -2.88767) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.75, -5.9)
sleeping = true sleeping = true
[node name="FloatingDust" parent="Hallway1" instance=ExtResource("8_t14hf")] [node name="FloatingDust" parent="Hallway1" instance=ExtResource("8_t14hf")]
@ -168,28 +164,6 @@ body = NodePath("..")
mesh_instance = NodePath("../..") mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("11_i2ry3") source_gunk_material = ExtResource("11_i2ry3")
[node name="JumpTutorialArea" type="Area3D" parent="Hallway1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 3.3)
collision_layer = 0
collision_mask = 8
script = ExtResource("9_20ek7")
tutorial_key = &"game/tutorial/progress/jump"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/JumpTutorialArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.3)
shape = SubResource("BoxShape3D_vc8nj")
[node name="SprintTutorialArea" type="Area3D" parent="Hallway1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -7.2)
collision_layer = 0
collision_mask = 8
script = ExtResource("9_20ek7")
tutorial_key = &"game/tutorial/progress/sprint"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/SprintTutorialArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.3)
shape = SubResource("BoxShape3D_vc8nj")
[node name="T-Junction1" type="MeshInstance3D" parent="."] [node name="T-Junction1" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, -7.5) transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, -7.5)
mesh = ExtResource("12_3ls22") mesh = ExtResource("12_3ls22")

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=50 format=4 uid="uid://6mggsi84ok1n"] [gd_scene load_steps=48 format=4 uid="uid://6mggsi84ok1n"]
[ext_resource type="ArrayMesh" uid="uid://c4klxlj1oop7t" path="res://assets/level/hallway/hallway_4.mesh" id="1_ka7sa"] [ext_resource type="ArrayMesh" uid="uid://c4klxlj1oop7t" path="res://assets/level/hallway/hallway_4.mesh" id="1_ka7sa"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_osdhu"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_osdhu"]
@ -12,7 +12,6 @@
[ext_resource type="Texture2D" uid="uid://cjm8vlxnejx3w" path="res://assets/props/guide_sign/guide_sign_R.png" id="10_ikww0"] [ext_resource type="Texture2D" uid="uid://cjm8vlxnejx3w" path="res://assets/props/guide_sign/guide_sign_R.png" id="10_ikww0"]
[ext_resource type="Material" uid="uid://dutkfm4ek0ysh" path="res://assets/materials/gunk_bright.material" id="11_iefrw"] [ext_resource type="Material" uid="uid://dutkfm4ek0ysh" path="res://assets/materials/gunk_bright.material" id="11_iefrw"]
[ext_resource type="PackedScene" uid="uid://bpsiwx1517pk1" path="res://src/props/tarp_crate/tarp_crate.tscn" id="12_vtfca"] [ext_resource type="PackedScene" uid="uid://bpsiwx1517pk1" path="res://src/props/tarp_crate/tarp_crate.tscn" id="12_vtfca"]
[ext_resource type="Script" uid="uid://c3i315cnqikok" path="res://src/game/tutorial/tutorial_area.gd" id="14_6qtqj"]
[ext_resource type="ArrayMesh" uid="uid://b17naqcl4ie21" path="res://assets/level/floor/floor_1.mesh" id="14_ihtb8"] [ext_resource type="ArrayMesh" uid="uid://b17naqcl4ie21" path="res://assets/level/floor/floor_1.mesh" id="14_ihtb8"]
[ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="14_tgb37"] [ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="14_tgb37"]
[ext_resource type="Material" uid="uid://dt73a25l7h8if" path="res://levels/ghost_ship/guide_sign/crew_quarters_sign.material" id="15_ygcwo"] [ext_resource type="Material" uid="uid://dt73a25l7h8if" path="res://levels/ghost_ship/guide_sign/crew_quarters_sign.material" id="15_ygcwo"]
@ -115,9 +114,6 @@ texture_filter = 4
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_2ft6k"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_2ft6k"]
data = PackedVector3Array(-0.7, 0, 0.14, -0.7, -0.28, 0, -0.7, 0, -0.14, -0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, -0.28, 0, 0.7, 0, 0.14, 0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, -0.28, 0, -0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, 0, -0.14, 0.7, 0, 0.14) data = PackedVector3Array(-0.7, 0, 0.14, -0.7, -0.28, 0, -0.7, 0, -0.14, -0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, -0.28, 0, 0.7, 0, 0.14, 0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, -0.28, 0, -0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, 0, -0.14, 0.7, 0, 0.14)
[sub_resource type="BoxShape3D" id="BoxShape3D_650i1"]
size = Vector3(3, 3, 3)
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_arxka"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_arxka"]
data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5) data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5)
@ -237,17 +233,6 @@ source_gunk_material = ExtResource("11_iefrw")
[node name="TarpCrate" parent="Hallway1" instance=ExtResource("12_vtfca")] [node name="TarpCrate" parent="Hallway1" instance=ExtResource("12_vtfca")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0.8, -0.33) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0.8, -0.33)
[node name="SprintTutorialArea" type="Area3D" parent="Hallway1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.88495e-07, 1.5, -3.9)
collision_layer = 0
collision_mask = 8
script = ExtResource("14_6qtqj")
tutorial_key = &"game/tutorial/progress/sneak"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/SprintTutorialArea"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.3)
shape = SubResource("BoxShape3D_650i1")
[node name="ShortHallway6" type="Node3D" parent="."] [node name="ShortHallway6" type="Node3D" parent="."]
transform = Transform3D(1, 0, 1.06581e-14, 0, 1, 0, -1.06581e-14, 0, 1, 3, 0, -12) transform = Transform3D(1, 0, 1.06581e-14, 0, 1, 0, -1.06581e-14, 0, 1, 3, 0, -12)

View File

@ -29,7 +29,6 @@ BeehaveGlobalDebugger="*res://addons/beehave/debug/global_debugger.gd"
GameRuntime="*res://src/game/game_runtime.gd" GameRuntime="*res://src/game/game_runtime.gd"
ItemCatalog="*res://src/items/item_catalog.tscn" ItemCatalog="*res://src/items/item_catalog.tscn"
GameSettings="*res://src/game/game_settings.gd" GameSettings="*res://src/game/game_settings.gd"
TutorialManager="*res://src/game/tutorial/tutorial_manager/tutorial_manager.tscn"
[debug] [debug]
@ -84,19 +83,6 @@ debug/enable_debug_menu=false
debug/enable_debug_menu.debug=true debug/enable_debug_menu.debug=true
config/input/object_rotation_sensitivity_y=0.5 config/input/object_rotation_sensitivity_y=0.5
config/input/object_rotation_sensitivity_x=0.5 config/input/object_rotation_sensitivity_x=0.5
tutorial/progress/look=false
tutorial/progress/move=false
tutorial/progress/jump=false
tutorial/progress/sneak=false
tutorial/progress/sprint=false
tutorial/progress/fire=false
tutorial/progress/tool_switch=false
tutorial/progress/tool_prev_next=false
tutorial/progress/mode_switch=false
tutorial/progress/interact=false
tutorial/progress/pick_up=false
tutorial/progress/rotate=false
tutorial/progress/throw=false
[global_group] [global_group]

View File

@ -58,7 +58,6 @@ size = Vector3(0.03, 0.03, 0.03)
[node name="GunkDust" type="GPUParticles3D"] [node name="GunkDust" type="GPUParticles3D"]
layers = 4 layers = 4
cast_shadow = 0
lifetime = 0.6 lifetime = 0.6
process_material = SubResource("ParticleProcessMaterial_ykxlg") process_material = SubResource("ParticleProcessMaterial_ykxlg")
draw_pass_1 = SubResource("BoxMesh_smx5b") draw_pass_1 = SubResource("BoxMesh_smx5b")

View File

@ -70,7 +70,3 @@ func _spray() -> void:
func _on_animation_finished(anim_name: StringName) -> void: func _on_animation_finished(anim_name: StringName) -> void:
if anim_name == "rotate": if anim_name == "rotate":
_busy = false _busy = false
func on_equip() -> void:
Tutorial.manager.activate("game/tutorial/progress/mode_switch")

View File

@ -1,45 +0,0 @@
class_name Tutorial extends Control
@export var tutorial_key: StringName
var _displaying := false
@onready var animation_tree: AnimationTree = %AnimationTree
@onready
var animation_state: AnimationNodeStateMachinePlayback = animation_tree["parameters/playback"]
## Handy typed singleton access.
static var manager: TutorialManagerType:
get():
return TutorialManager
func _ready() -> void:
if tutorial_activated():
# We've already been activated -- should disable ourselves
queue_free()
Tutorial.manager.disable_all.connect(_disable)
ProjectSettings.settings_changed.connect(on_settings_changed)
func tutorial_activated() -> bool:
return ProjectSettings.get(tutorial_key)
func fade_in() -> void:
animation_state.travel("fade_in")
func fade_out() -> void:
animation_state.travel("fade_out")
func on_settings_changed() -> void:
if not _displaying and tutorial_activated():
_displaying = true
fade_in()
func _disable() -> void:
ProjectSettings.set_setting(tutorial_key, true)
queue_free()

View File

@ -1,14 +0,0 @@
extends Area3D
@export var tutorial_key: StringName
func _ready() -> void:
body_entered.connect(_on_body_entered)
collision_layer = 0
collision_mask = 0b1000
func _on_body_entered(_body: Node3D) -> void:
Tutorial.manager.activate(tutorial_key)
queue_free()

View File

@ -1 +0,0 @@
uid://c3i315cnqikok

View File

@ -1,7 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://yky8xs8ftm4p"]
[ext_resource type="Script" uid="uid://dnkittj7dgx6y" path="res://src/game/tutorial/tutorial_manager/tutorial_manager_type.gd" id="1_ggtp4"]
[node name="TutorialManager" type="Node"]
script = ExtResource("1_ggtp4")
metadata/_custom_type_script = "uid://dnkittj7dgx6y"

View File

@ -1,50 +0,0 @@
class_name TutorialManagerType extends Node
## Global autoloaded singleton that manages the game's tutorial.
signal disable_all
const TUTORIAL_KEY_PREFIX := "game/tutorial/progress/"
func activate(key: String) -> void:
ProjectSettings.set_setting(key, true)
Game.settings.write()
func is_active(key: String) -> bool:
return ProjectSettings.get_setting(key)
func get_tutorial_keys() -> Array[String]:
# XXX is there a better way to iterate settings keys?
var arr: Array[String] = []
arr.assign(
(
ProjectSettings
. get_property_list()
. map(func(d: Dictionary) -> String: return d["name"])
. filter(func(s: String) -> bool: return s.begins_with(TUTORIAL_KEY_PREFIX))
)
)
return arr
func tutorial_started() -> bool:
return get_tutorial_keys().any(is_active)
func tutorial_finished() -> bool:
return get_tutorial_keys().all(is_active)
func reset_tutorial() -> void:
# XXX is there a better way to iterate settings keys?
for key: String in get_tutorial_keys():
ProjectSettings.set_setting(key, false)
Game.settings.write()
func disable_tutorial() -> void:
disable_all.emit()
# XXX does this ensure the call to write will happen after all signals resolve?
Game.settings.write.call_deferred()

View File

@ -1 +0,0 @@
uid://dnkittj7dgx6y

View File

@ -1,12 +0,0 @@
extends Timer
@export var tutorial_key: StringName
func _ready() -> void:
timeout.connect(_on_timeout)
func _on_timeout() -> void:
Tutorial.manager.activate(tutorial_key)
queue_free()

View File

@ -1 +0,0 @@
uid://dg55jdoyctdq6

View File

@ -5,7 +5,6 @@ signal held
signal dropped signal dropped
const ROTATION_SCALE_FACTOR := 10.0 * TAU const ROTATION_SCALE_FACTOR := 10.0 * TAU
const THROW_TUTORIAL_DELAY := 6.0
## Held object position lerp acceleration. ## Held object position lerp acceleration.
@export var hold_accel := 20.0 @export var hold_accel := 20.0
@ -55,11 +54,6 @@ func attach(prop: RigidBody3D, hold_distance: float) -> void:
held.emit() held.emit()
Tutorial.manager.activate("game/tutorial/progress/rotate")
get_tree().create_timer(THROW_TUTORIAL_DELAY).timeout.connect(
Tutorial.manager.activate.bind("game/tutorial/progress/throw")
)
func drop() -> void: func drop() -> void:
_held_object.linear_damp = _original_damping _held_object.linear_damp = _original_damping

View File

@ -273,5 +273,4 @@ func serialize() -> Dictionary:
func deserialize(state: Dictionary) -> void: func deserialize(state: Dictionary) -> void:
@warning_ignore("unsafe_cast") @warning_ignore("unsafe_cast")
inventory.assign(state["inventory"] as Dictionary) inventory.assign(state["inventory"] as Dictionary)
#endregion #endregion

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=68 format=3 uid="uid://bwe2jdmvinhqd"] [gd_scene load_steps=67 format=3 uid="uid://bwe2jdmvinhqd"]
[ext_resource type="Script" uid="uid://buwh0g1ga2aka" path="res://src/player/player.gd" id="1_npueo"] [ext_resource type="Script" uid="uid://buwh0g1ga2aka" path="res://src/player/player.gd" id="1_npueo"]
[ext_resource type="Script" uid="uid://cx1yt0drthpw3" path="res://src/player/camera_controller.gd" id="2_veeqv"] [ext_resource type="Script" uid="uid://cx1yt0drthpw3" path="res://src/player/camera_controller.gd" id="2_veeqv"]
@ -37,7 +37,6 @@
[ext_resource type="AudioStream" uid="uid://ck86vhmbg3xnj" path="res://assets/sfx/footsteps/plastic/plastic5.wav" id="30_p6grl"] [ext_resource type="AudioStream" uid="uid://ck86vhmbg3xnj" path="res://assets/sfx/footsteps/plastic/plastic5.wav" id="30_p6grl"]
[ext_resource type="Script" uid="uid://c5o1d2shq2qig" path="res://src/world/game_sound/game_sound_emitter.gd" id="31_wcxbk"] [ext_resource type="Script" uid="uid://c5o1d2shq2qig" path="res://src/world/game_sound/game_sound_emitter.gd" id="31_wcxbk"]
[ext_resource type="Script" uid="uid://b5loa2u6s5l5c" path="res://src/player/rigid_body_physics.gd" id="36_phdu6"] [ext_resource type="Script" uid="uid://b5loa2u6s5l5c" path="res://src/player/rigid_body_physics.gd" id="36_phdu6"]
[ext_resource type="Script" uid="uid://dg55jdoyctdq6" path="res://src/game/tutorial/tutorial_timer.gd" id="38_evlgt"]
[sub_resource type="Animation" id="Animation_x42xx"] [sub_resource type="Animation" id="Animation_x42xx"]
length = 0.001 length = 0.001
@ -810,17 +809,3 @@ mesh = SubResource("PlaneMesh_p6grl")
[node name="RigidBodyPhysics" type="Node" parent="."] [node name="RigidBodyPhysics" type="Node" parent="."]
script = ExtResource("36_phdu6") script = ExtResource("36_phdu6")
[node name="LookTutorialTimer" type="Timer" parent="."]
wait_time = 3.0
one_shot = true
autostart = true
script = ExtResource("38_evlgt")
tutorial_key = &"game/tutorial/progress/look"
[node name="MoveTutorialTimer" type="Timer" parent="."]
wait_time = 5.0
one_shot = true
autostart = true
script = ExtResource("38_evlgt")
tutorial_key = &"game/tutorial/progress/move"

View File

@ -26,7 +26,6 @@ func _ready() -> void:
func select() -> void: func select() -> void:
Tutorial.manager.activate("game/tutorial/progress/interact")
Player.instance.hud.interact_hud.set_interactive(self) Player.instance.hud.interact_hud.set_interactive(self)

View File

@ -23,7 +23,6 @@ func _default_controller() -> RigidBody3D:
func select() -> void: func select() -> void:
Tutorial.manager.activate("game/tutorial/progress/pick_up")
Player.instance.hud.hold_hud.select_prop() Player.instance.hud.hold_hud.select_prop()

View File

@ -3,7 +3,7 @@ extends Label
## A prompt with the input symbol bound to the given action. ## A prompt with the input symbol bound to the given action.
const PROMPT_FORMAT := "{0} - {1}" const PROMPT_FORMAT := "{0} - {1}"
const HOLD_FORMAT := "{1} {0}" const HOLD_FORMAT := "{0} {1}"
const UNKNOWN_LABEL_SYM := "[unknown]" const UNKNOWN_LABEL_SYM := "[unknown]"

View File

@ -0,0 +1,13 @@
class_name TutorialMessage extends Control
@onready var animation_tree: AnimationTree = %AnimationTree
@onready
var animation_state: AnimationNodeStateMachinePlayback = animation_tree["parameters/playback"]
func fade_in() -> void:
animation_state.travel("fade_in")
func fade_out() -> void:
animation_state.travel("fade_out")

View File

@ -2,7 +2,7 @@
[ext_resource type="Theme" uid="uid://b07fevr214mmr" path="res://src/ui/hud/hud_theme.tres" id="1_b0qfw"] [ext_resource type="Theme" uid="uid://b07fevr214mmr" path="res://src/ui/hud/hud_theme.tres" id="1_b0qfw"]
[ext_resource type="FontFile" uid="uid://qadtckvw0t3l" path="res://assets/fonts/fontawesome-free-6.7.2-desktop/otfs/Font Awesome 6 Free-Solid-900.otf" id="2_81007"] [ext_resource type="FontFile" uid="uid://qadtckvw0t3l" path="res://assets/fonts/fontawesome-free-6.7.2-desktop/otfs/Font Awesome 6 Free-Solid-900.otf" id="2_81007"]
[ext_resource type="Script" uid="uid://cy8mquhxkqgmd" path="res://src/game/tutorial/tutorial.gd" id="2_ipu78"] [ext_resource type="Script" uid="uid://cy8mquhxkqgmd" path="res://src/ui/elements/tutorial/tutorial_message.gd" id="2_ipu78"]
[sub_resource type="Animation" id="Animation_81007"] [sub_resource type="Animation" id="Animation_81007"]
length = 0.001 length = 0.001
@ -33,7 +33,7 @@ tracks/1/keys = {
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("HBoxContainer/Control/CanvasGroup:self_modulate") tracks/2/path = NodePath("HBoxContainer/InfoIcon:modulate")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
@ -96,7 +96,7 @@ tracks/1/keys = {
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("HBoxContainer/Control/CanvasGroup:self_modulate") tracks/2/path = NodePath("HBoxContainer/InfoIcon:modulate")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
@ -117,49 +117,34 @@ tracks/3/keys = {
"update": 1, "update": 1,
"values": [false, true] "values": [false, true]
} }
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("FadeOutTimer")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [-1],
"method": &"start"
}]
}
[sub_resource type="Animation" id="Animation_xxgh3"] [sub_resource type="Animation" id="Animation_ipu78"]
resource_name = "fade_out" resource_name = "idle"
length = 0.4 length = 1.6
loop_mode = 1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate") tracks/0/path = NodePath("HBoxContainer/InfoIcon:modulate")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.4), "times": PackedFloat32Array(0, 0.8, 1.6),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1.618, 0.618, 1.618),
"update": 0, "update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
} }
tracks/1/type = "method" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath(".") tracks/1/path = NodePath(".:modulate")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0.4), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "update": 0,
"args": [], "values": [Color(1, 1, 1, 1)]
"method": &"queue_free"
}]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
@ -198,33 +183,34 @@ tracks/4/keys = {
"values": [true] "values": [true]
} }
[sub_resource type="Animation" id="Animation_ipu78"] [sub_resource type="Animation" id="Animation_xxgh3"]
resource_name = "idle" resource_name = "fade_out"
length = 1.6 length = 0.4
loop_mode = 1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("HBoxContainer/Control/CanvasGroup:self_modulate") tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.8, 1.6), "times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1.618, 0.618, 1.618), "transitions": PackedFloat32Array(1, 1),
"update": 0, "update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 1)] "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
} }
tracks/1/type = "value" tracks/1/type = "method"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath(".:modulate") tracks/1/path = NodePath(".")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "values": [{
"values": [Color(1, 1, 1, 1)] "args": [],
"method": &"queue_free"
}]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
@ -305,20 +291,10 @@ states/idle/position = Vector2(510, 100)
transitions = ["Start", "fade_in", SubResource("AnimationNodeStateMachineTransition_xxgh3"), "fade_in", "idle", SubResource("AnimationNodeStateMachineTransition_qt0bd"), "idle", "fade_out", SubResource("AnimationNodeStateMachineTransition_trep3"), "fade_out", "End", SubResource("AnimationNodeStateMachineTransition_cheth")] transitions = ["Start", "fade_in", SubResource("AnimationNodeStateMachineTransition_xxgh3"), "fade_in", "idle", SubResource("AnimationNodeStateMachineTransition_qt0bd"), "idle", "fade_out", SubResource("AnimationNodeStateMachineTransition_trep3"), "fade_out", "End", SubResource("AnimationNodeStateMachineTransition_cheth")]
graph_offset = Vector2(-527, -79) graph_offset = Vector2(-527, -79)
[node name="Tutorial" type="Control"] [node name="TutorialMessage" type="Control"]
visible = false visible = false
custom_minimum_size = Vector2(0, 48)
layout_mode = 3 layout_mode = 3
anchors_preset = 8 anchors_preset = 0
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_top = -24.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
theme = ExtResource("1_b0qfw") theme = ExtResource("1_b0qfw")
script = ExtResource("2_ipu78") script = ExtResource("2_ipu78")
@ -337,18 +313,9 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
theme_override_constants/separation = 16 theme_override_constants/separation = 16
[node name="Control" type="Control" parent="HBoxContainer"] [node name="InfoIcon" type="Label" parent="HBoxContainer"]
custom_minimum_size = Vector2(74, 43)
layout_mode = 2 layout_mode = 2
[node name="CanvasGroup" type="CanvasGroup" parent="HBoxContainer/Control"]
[node name="InfoIcon" type="Label" parent="HBoxContainer/Control/CanvasGroup"]
offset_right = 74.0
offset_bottom = 43.0
theme = ExtResource("1_b0qfw")
theme_override_colors/font_color = Color(0.223529, 0.627451, 0.929412, 1) theme_override_colors/font_color = Color(0.223529, 0.627451, 0.929412, 1)
theme_override_constants/outline_size = 10
theme_override_fonts/font = ExtResource("2_81007") theme_override_fonts/font = ExtResource("2_81007")
theme_override_font_sizes/font_size = 42 theme_override_font_sizes/font_size = 42
text = "  " text = "  "
@ -356,8 +323,6 @@ text = "  "
[node name="MessageContainer" type="HBoxContainer" parent="HBoxContainer"] [node name="MessageContainer" type="HBoxContainer" parent="HBoxContainer"]
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 16
alignment = 1
[node name="Message" type="Label" parent="HBoxContainer/MessageContainer"] [node name="Message" type="Label" parent="HBoxContainer/MessageContainer"]
layout_mode = 2 layout_mode = 2
@ -373,8 +338,3 @@ unique_name_in_owner = true
root_node = NodePath("%AnimationTree/../..") root_node = NodePath("%AnimationTree/../..")
tree_root = SubResource("AnimationNodeStateMachine_o3pjn") tree_root = SubResource("AnimationNodeStateMachine_o3pjn")
anim_player = NodePath("..") anim_player = NodePath("..")
[node name="FadeOutTimer" type="Timer" parent="."]
wait_time = 7.0
[connection signal="timeout" from="FadeOutTimer" to="." method="fade_out"]

View File

@ -8,7 +8,7 @@
[ext_resource type="Script" uid="uid://cjs2fen6jo0g0" path="res://src/ui/rumbler.gd" id="4_ud8na"] [ext_resource type="Script" uid="uid://cjs2fen6jo0g0" path="res://src/ui/rumbler.gd" id="4_ud8na"]
[ext_resource type="Script" uid="uid://ctvu31jkk1un2" path="res://src/ui/hud/hold_hud.gd" id="5_65kmv"] [ext_resource type="Script" uid="uid://ctvu31jkk1un2" path="res://src/ui/hud/hold_hud.gd" id="5_65kmv"]
[ext_resource type="FontFile" uid="uid://oq8ue2qrfijg" path="res://assets/fonts/Silkscreen/Silkscreen-Regular.ttf" id="7_iwjh7"] [ext_resource type="FontFile" uid="uid://oq8ue2qrfijg" path="res://assets/fonts/Silkscreen/Silkscreen-Regular.ttf" id="7_iwjh7"]
[ext_resource type="PackedScene" uid="uid://bce8b2erx64vg" path="res://src/game/tutorial/tutorial.tscn" id="9_8np55"] [ext_resource type="PackedScene" uid="uid://bce8b2erx64vg" path="res://src/ui/elements/tutorial/tutorial_message.tscn" id="9_8np55"]
[ext_resource type="Theme" uid="uid://doq7ay6f7dgfo" path="res://src/ui/menus/menu.theme" id="10_c1hvd"] [ext_resource type="Theme" uid="uid://doq7ay6f7dgfo" path="res://src/ui/menus/menu.theme" id="10_c1hvd"]
[sub_resource type="Animation" id="Animation_iwjh7"] [sub_resource type="Animation" id="Animation_iwjh7"]
@ -429,10 +429,10 @@ anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 0.5 anchor_bottom = 0.5
offset_left = -19.7154 offset_left = -19.0897
offset_top = -19.6578 offset_top = -18.6342
offset_right = -19.7154 offset_right = -19.0897
offset_bottom = -19.6578 offset_bottom = -18.6342
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("4_ud8na") script = ExtResource("4_ud8na")
@ -565,11 +565,9 @@ grow_vertical = 2
[node name="LookTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="LookTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/look"
[node name="Mouse" type="Label" parent="TutorialContainer/VBoxContainer/LookTutorial/HBoxContainer/MessageContainer" index="0"] [node name="Mouse" type="Label" parent="TutorialContainer/VBoxContainer/LookTutorial/HBoxContainer/MessageContainer" index="0"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
theme = ExtResource("10_c1hvd") theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt" theme_type_variation = &"InputPrompt"
text = "⟼" text = "⟼"
@ -579,11 +577,9 @@ text = "TUTORIAL_LOOK"
[node name="MoveTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="MoveTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/move"
[node name="WASD" type="Label" parent="TutorialContainer/VBoxContainer/MoveTutorial/HBoxContainer/MessageContainer" index="0"] [node name="WASD" type="Label" parent="TutorialContainer/VBoxContainer/MoveTutorial/HBoxContainer/MessageContainer" index="0"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
theme = ExtResource("10_c1hvd") theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt" theme_type_variation = &"InputPrompt"
text = "␣" text = "␣"
@ -593,11 +589,9 @@ text = "TUTORIAL_MOVE"
[node name="JumpTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="JumpTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/jump"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/JumpTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/JumpTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"jump" action = &"jump"
show_name = false show_name = false
@ -607,11 +601,9 @@ text = "TUTORIAL_JUMP"
[node name="SneakTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="SneakTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/sneak"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/SneakTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/SneakTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓ ACTION_HOLD_MODIFIER" text = "❓ ACTION_HOLD_MODIFIER"
action = &"sneak" action = &"sneak"
hold = true hold = true
@ -622,11 +614,9 @@ text = "TUTORIAL_SNEAK"
[node name="SprintTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="SprintTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/sprint"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/SprintTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/SprintTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓ ACTION_HOLD_MODIFIER" text = "❓ ACTION_HOLD_MODIFIER"
action = &"sprint" action = &"sprint"
hold = true hold = true
@ -637,11 +627,9 @@ text = "TUTORIAL_SPRINT"
[node name="FireTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="FireTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/fire"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/FireTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/FireTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓ ACTION_HOLD_MODIFIER" text = "❓ ACTION_HOLD_MODIFIER"
action = &"fire" action = &"fire"
hold = true hold = true
@ -652,25 +640,21 @@ text = "TUTORIAL_FIRE"
[node name="ToolSwitchTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="ToolSwitchTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/tool_switch"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"select_point_spray" action = &"select_point_spray"
show_name = false show_name = false
[node name="InputPrompt2" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="1" instance=ExtResource("4_iwjh7")] [node name="InputPrompt2" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="1" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"select_wide_spray" action = &"select_wide_spray"
show_name = false show_name = false
[node name="etc" type="Label" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="2"] [node name="etc" type="Label" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="2"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
theme = ExtResource("10_c1hvd") theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt" theme_type_variation = &"InputPrompt"
text = "UI_ETC" text = "UI_ETC"
@ -678,41 +662,35 @@ text = "UI_ETC"
[node name="Message" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="3"] [node name="Message" parent="TutorialContainer/VBoxContainer/ToolSwitchTutorial/HBoxContainer/MessageContainer" index="3"]
text = "TUTORIAL_SWITCH_TOOL" text = "TUTORIAL_SWITCH_TOOL"
[node name="ToolPrevNextTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="PrevNextToolTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/tool_prev_next"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ToolPrevNextTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"select_prev_tool" action = &"select_prev_tool"
show_name = false show_name = false
[node name="slash" type="Label" parent="TutorialContainer/VBoxContainer/ToolPrevNextTutorial/HBoxContainer/MessageContainer" index="1"] [node name="slash" type="Label" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="1"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
theme = ExtResource("10_c1hvd") theme = ExtResource("10_c1hvd")
theme_type_variation = &"InputPrompt" theme_type_variation = &"InputPrompt"
text = "/" text = "/"
[node name="InputPrompt2" parent="TutorialContainer/VBoxContainer/ToolPrevNextTutorial/HBoxContainer/MessageContainer" index="2" instance=ExtResource("4_iwjh7")] [node name="InputPrompt2" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="2" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"select_next_tool" action = &"select_next_tool"
show_name = false show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/ToolPrevNextTutorial/HBoxContainer/MessageContainer" index="3"] [node name="Message" parent="TutorialContainer/VBoxContainer/PrevNextToolTutorial/HBoxContainer/MessageContainer" index="3"]
text = "TUTORIAL_PREV_NEXT_TOOL" text = "TUTORIAL_PREV_NEXT_TOOL"
[node name="ModeSwitchTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="ModeSwitchTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/mode_switch"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ModeSwitchTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ModeSwitchTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"switch_mode" action = &"switch_mode"
show_name = false show_name = false
@ -722,11 +700,9 @@ text = "TUTORIAL_MODE"
[node name="InteractTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="InteractTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/interact"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/InteractTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/InteractTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"interact" action = &"interact"
show_name = false show_name = false
@ -736,11 +712,9 @@ text = "TUTORIAL_INTERACT"
[node name="PickUpTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="PickUpTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/pick_up"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/PickUpTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/PickUpTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓" text = "❓"
action = &"interact" action = &"interact"
show_name = false show_name = false
@ -750,11 +724,9 @@ text = "TUTORIAL_PICK_UP"
[node name="RotateTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")] [node name="RotateTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2 layout_mode = 2
tutorial_key = &"game/tutorial/progress/rotate"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/RotateTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")] [node name="InputPrompt" parent="TutorialContainer/VBoxContainer/RotateTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 8
text = "❓ ACTION_HOLD_MODIFIER" text = "❓ ACTION_HOLD_MODIFIER"
action = &"rotate_object" action = &"rotate_object"
hold = true hold = true
@ -763,20 +735,6 @@ show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/RotateTutorial/HBoxContainer/MessageContainer" index="1"] [node name="Message" parent="TutorialContainer/VBoxContainer/RotateTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_ROTATE" text = "TUTORIAL_ROTATE"
[node name="ThrowTutorial" parent="TutorialContainer/VBoxContainer" instance=ExtResource("9_8np55")]
layout_mode = 2
tutorial_key = &"game/tutorial/progress/throw"
[node name="InputPrompt" parent="TutorialContainer/VBoxContainer/ThrowTutorial/HBoxContainer/MessageContainer" index="0" instance=ExtResource("4_iwjh7")]
layout_mode = 2
size_flags_vertical = 8
text = "❓"
action = &"fire"
show_name = false
[node name="Message" parent="TutorialContainer/VBoxContainer/ThrowTutorial/HBoxContainer/MessageContainer" index="1"]
text = "TUTORIAL_THROW"
[editable path="TutorialContainer/VBoxContainer/LookTutorial"] [editable path="TutorialContainer/VBoxContainer/LookTutorial"]
[editable path="TutorialContainer/VBoxContainer/MoveTutorial"] [editable path="TutorialContainer/VBoxContainer/MoveTutorial"]
[editable path="TutorialContainer/VBoxContainer/JumpTutorial"] [editable path="TutorialContainer/VBoxContainer/JumpTutorial"]
@ -784,9 +742,8 @@ text = "TUTORIAL_THROW"
[editable path="TutorialContainer/VBoxContainer/SprintTutorial"] [editable path="TutorialContainer/VBoxContainer/SprintTutorial"]
[editable path="TutorialContainer/VBoxContainer/FireTutorial"] [editable path="TutorialContainer/VBoxContainer/FireTutorial"]
[editable path="TutorialContainer/VBoxContainer/ToolSwitchTutorial"] [editable path="TutorialContainer/VBoxContainer/ToolSwitchTutorial"]
[editable path="TutorialContainer/VBoxContainer/ToolPrevNextTutorial"] [editable path="TutorialContainer/VBoxContainer/PrevNextToolTutorial"]
[editable path="TutorialContainer/VBoxContainer/ModeSwitchTutorial"] [editable path="TutorialContainer/VBoxContainer/ModeSwitchTutorial"]
[editable path="TutorialContainer/VBoxContainer/InteractTutorial"] [editable path="TutorialContainer/VBoxContainer/InteractTutorial"]
[editable path="TutorialContainer/VBoxContainer/PickUpTutorial"] [editable path="TutorialContainer/VBoxContainer/PickUpTutorial"]
[editable path="TutorialContainer/VBoxContainer/RotateTutorial"] [editable path="TutorialContainer/VBoxContainer/RotateTutorial"]
[editable path="TutorialContainer/VBoxContainer/ThrowTutorial"]

View File

@ -1,10 +0,0 @@
extends Button
func _ready() -> void:
disabled = Tutorial.manager.tutorial_finished()
func _on_pressed() -> void:
Tutorial.manager.disable_tutorial()
disabled = true

View File

@ -1 +0,0 @@
uid://c3a127y0x8qod

View File

@ -1,10 +0,0 @@
extends Button
func _ready() -> void:
disabled = not Tutorial.manager.tutorial_started()
func _on_pressed() -> void:
Tutorial.manager.reset_tutorial()
disabled = true

View File

@ -1 +0,0 @@
uid://cchqp66wig3wa

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://d3eaqw2rdurct"] [gd_scene load_steps=8 format=3 uid="uid://d3eaqw2rdurct"]
[ext_resource type="Script" uid="uid://dyb8cwai3cyw2" path="res://src/ui/menus/settings_menu/settings_menu.gd" id="1_lbcn7"] [ext_resource type="Script" uid="uid://dyb8cwai3cyw2" path="res://src/ui/menus/settings_menu/settings_menu.gd" id="1_lbcn7"]
[ext_resource type="Theme" uid="uid://doq7ay6f7dgfo" path="res://src/ui/menus/menu.theme" id="1_vuur6"] [ext_resource type="Theme" uid="uid://doq7ay6f7dgfo" path="res://src/ui/menus/menu.theme" id="1_vuur6"]
@ -7,8 +7,6 @@
[ext_resource type="PackedScene" uid="uid://d2ya6ly01724l" path="res://src/ui/menus/settings_menu/volume_slider/volume_slider.tscn" id="3_vuur6"] [ext_resource type="PackedScene" uid="uid://d2ya6ly01724l" path="res://src/ui/menus/settings_menu/volume_slider/volume_slider.tscn" id="3_vuur6"]
[ext_resource type="PackedScene" uid="uid://dwvpddd7id1h" path="res://src/ui/menus/settings_menu/control_binding/control_binding.tscn" id="4_6bmd3"] [ext_resource type="PackedScene" uid="uid://dwvpddd7id1h" path="res://src/ui/menus/settings_menu/control_binding/control_binding.tscn" id="4_6bmd3"]
[ext_resource type="Script" uid="uid://wlo8hxahp1x7" path="res://src/ui/menus/settings_menu/settings/checkbox_setting/fullscreen_setting.gd" id="4_ug1id"] [ext_resource type="Script" uid="uid://wlo8hxahp1x7" path="res://src/ui/menus/settings_menu/settings/checkbox_setting/fullscreen_setting.gd" id="4_ug1id"]
[ext_resource type="Script" uid="uid://cchqp66wig3wa" path="res://src/ui/menus/settings_menu/reset_tutorial_button.gd" id="7_ftg2j"]
[ext_resource type="Script" uid="uid://c3a127y0x8qod" path="res://src/ui/menus/settings_menu/disable_tutorial_button.gd" id="8_stv84"]
[node name="SettingsMenu" type="MarginContainer"] [node name="SettingsMenu" type="MarginContainer"]
anchors_preset = 15 anchors_preset = 15
@ -184,42 +182,6 @@ physics_interpolation_mode = 0
max_value = 1.0 max_value = 1.0
step = 0.01 step = 0.01
[node name="TutorialHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
layout_mode = 2
[node name="Label" type="Label" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/TutorialHeading"]
layout_mode = 2
theme_type_variation = &"HeaderMedium"
text = "SETTINGS_TUTORIAL_HEADING"
[node name="HSeparator" type="HSeparator" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/TutorialHeading"]
layout_mode = 2
size_flags_horizontal = 3
[node name="ResetTutorial" type="HBoxContainer" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
layout_mode = 2
[node name="Spacer" type="HSeparator" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ResetTutorial"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
[node name="ResetTutorialButton" type="Button" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ResetTutorial"]
layout_mode = 2
text = "SETTINGS_TUTORIAL_RESET"
script = ExtResource("7_ftg2j")
[node name="DisableTutorial" type="HBoxContainer" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
layout_mode = 2
[node name="Spacer" type="HSeparator" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DisableTutorial"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
[node name="DisableTutorialButton" type="Button" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DisableTutorial"]
layout_mode = 2
text = "SETTINGS_TUTORIAL_DISABLE"
script = ExtResource("8_stv84")
[node name="SETTINGS_GRAPHICS" type="MarginContainer" parent="TabContainer"] [node name="SETTINGS_GRAPHICS" type="MarginContainer" parent="TabContainer"]
visible = false visible = false
layout_mode = 2 layout_mode = 2
@ -395,8 +357,6 @@ layout_mode = 2
theme_type_variation = &"AlertButton" theme_type_variation = &"AlertButton"
text = "UI_ACCEPT" text = "UI_ACCEPT"
[connection signal="pressed" from="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ResetTutorial/ResetTutorialButton" to="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ResetTutorial/ResetTutorialButton" method="_on_pressed"]
[connection signal="pressed" from="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DisableTutorial/DisableTutorialButton" to="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DisableTutorial/DisableTutorialButton" method="_on_pressed"]
[connection signal="pressed" from="SouthEast/HBoxContainer/CancelButton" to="." method="cancel"] [connection signal="pressed" from="SouthEast/HBoxContainer/CancelButton" to="." method="cancel"]
[connection signal="pressed" from="SouthEast/HBoxContainer/AcceptButton" to="." method="accept"] [connection signal="pressed" from="SouthEast/HBoxContainer/AcceptButton" to="." method="accept"]

View File

@ -1,6 +0,0 @@
extends Node
func _ready() -> void:
print("PROJECT SETTINGS")
print(ProjectSettings.get_property_list())

View File

@ -1 +0,0 @@
uid://duegbpkukv4e

View File

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://db8w8eljku535"]
[ext_resource type="Script" uid="uid://duegbpkukv4e" path="res://utilities/sandbox/sandbox.gd" id="1_mxso2"]
[node name="Sandbox" type="Node"]
script = ExtResource("1_mxso2")