generated from krampus/template-godot4
Compare commits
No commits in common. "09f48c8ae0e309188cf3a6c34301e59f28854328" and "46a4a7fb4a71492547e3e5cb5bd199a241051de8" have entirely different histories.
09f48c8ae0
...
46a4a7fb4a
@ -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,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"]
|
||||||
|
@ -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")
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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]
|
||||||
|
|
||||||
|
@ -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")
|
||||||
|
@ -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")
|
|
||||||
|
@ -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()
|
|
@ -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()
|
|
@ -1 +0,0 @@
|
|||||||
uid://c3i315cnqikok
|
|
@ -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"
|
|
@ -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()
|
|
@ -1 +0,0 @@
|
|||||||
uid://dnkittj7dgx6y
|
|
@ -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()
|
|
@ -1 +0,0 @@
|
|||||||
uid://dg55jdoyctdq6
|
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
@ -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]"
|
||||||
|
|
||||||
|
13
src/ui/elements/tutorial/tutorial_message.gd
Normal file
13
src/ui/elements/tutorial/tutorial_message.gd
Normal 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")
|
@ -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"]
|
|
@ -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"]
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
extends Button
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
disabled = Tutorial.manager.tutorial_finished()
|
|
||||||
|
|
||||||
|
|
||||||
func _on_pressed() -> void:
|
|
||||||
Tutorial.manager.disable_tutorial()
|
|
||||||
disabled = true
|
|
@ -1 +0,0 @@
|
|||||||
uid://c3a127y0x8qod
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||||||
uid://cchqp66wig3wa
|
|
@ -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"]
|
||||||
|
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
extends Node
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
print("PROJECT SETTINGS")
|
|
||||||
print(ProjectSettings.get_property_list())
|
|
@ -1 +0,0 @@
|
|||||||
uid://duegbpkukv4e
|
|
@ -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")
|
|
Loading…
x
Reference in New Issue
Block a user