diff --git a/assets/materials/grunk_jittery.material b/assets/materials/grunk_jittery.material index e4450f6..36f6706 100644 Binary files a/assets/materials/grunk_jittery.material and b/assets/materials/grunk_jittery.material differ diff --git a/levels/ghost_ship/environment_3.tres b/levels/ghost_ship/environment_3.tres index 7b96bd8..d665354 100644 --- a/levels/ghost_ship/environment_3.tres +++ b/levels/ghost_ship/environment_3.tres @@ -28,10 +28,19 @@ ssao_enabled = true ssao_intensity = 2.5 ssil_enabled = true ssil_radius = 0.4 +ssil_intensity = 2.5 +ssil_normal_rejection = 0.73 sdfgi_enabled = true sdfgi_cascades = 7 glow_enabled = true +glow_levels/1 = 16.0 +glow_levels/2 = 6.0 +glow_levels/3 = 2.0 +glow_levels/4 = 1.0 +glow_levels/6 = 2.0 +glow_levels/7 = 2.0 glow_strength = 0.7 +glow_bloom = 0.01 glow_blend_mode = 0 fog_light_color = Color(0, 0, 0, 1) fog_density = 0.2 diff --git a/levels/ghost_ship/ghost_ship_level.tscn b/levels/ghost_ship/ghost_ship_level.tscn index 4da4b47..7b7afa2 100644 --- a/levels/ghost_ship/ghost_ship_level.tscn +++ b/levels/ghost_ship/ghost_ship_level.tscn @@ -1665,6 +1665,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5) [node name="AirlockSign" type="MeshInstance3D" parent="BeastNav/Corridor1/Hallway1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5) +gi_mode = 2 mesh = SubResource("ArrayMesh_anoak") [node name="GunkBody" parent="BeastNav/Corridor1/Hallway1/AirlockSign" instance=ExtResource("2_2egij")] @@ -1813,6 +1814,7 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 3, [node name="MessHallSign" type="MeshInstance3D" parent="BeastNav/Corridor1/Hallway4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5) +gi_mode = 2 mesh = SubResource("ArrayMesh_sux6n") [node name="GunkBody" parent="BeastNav/Corridor1/Hallway4/MessHallSign" instance=ExtResource("2_2egij")] @@ -2328,6 +2330,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.2) [node name="MessHallSign" type="MeshInstance3D" parent="BeastNav/Corridor2/Hallway1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4.5) +gi_mode = 2 mesh = SubResource("ArrayMesh_w13dd") [node name="GunkBody" parent="BeastNav/Corridor2/Hallway1/MessHallSign" instance=ExtResource("2_2egij")] @@ -2364,6 +2367,7 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 3, [node name="CrewQuartersSign" type="MeshInstance3D" parent="BeastNav/Corridor2/Hallway2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4.5) +gi_mode = 2 mesh = SubResource("ArrayMesh_f0psm") [node name="GunkBody" parent="BeastNav/Corridor2/Hallway2/CrewQuartersSign" instance=ExtResource("2_2egij")] @@ -3171,6 +3175,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5) [node name="CrewQuartersSign" type="MeshInstance3D" parent="BeastNav/Corridor3/Hallway"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5) +gi_mode = 2 mesh = SubResource("ArrayMesh_v4tkv") [node name="GunkBody" parent="BeastNav/Corridor3/Hallway/CrewQuartersSign" instance=ExtResource("2_2egij")] @@ -3203,6 +3208,7 @@ transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -1.4, [node name="OpsSign" type="MeshInstance3D" parent="BeastNav/Corridor3/Hallway2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5) +gi_mode = 2 mesh = SubResource("ArrayMesh_v0ki8") [node name="GunkBody" parent="BeastNav/Corridor3/Hallway2/OpsSign" instance=ExtResource("2_2egij")] @@ -3465,6 +3471,7 @@ label = "SWITCH_BULKHEAD_LABEL" [node name="MedbaySign" type="MeshInstance3D" parent="BeastNav/Corridor3/ShortHallway3"] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 3, 0) +gi_mode = 2 mesh = SubResource("ArrayMesh_dspic") [node name="GunkBody" parent="BeastNav/Corridor3/ShortHallway3/MedbaySign" instance=ExtResource("2_2egij")] @@ -3627,6 +3634,7 @@ shape = SubResource("ConcavePolygonShape3D_ncghj") [node name="CargoBaySign" type="MeshInstance3D" parent="BeastNav/Corridor3/ShortHallway6"] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 3, 0) +gi_mode = 2 mesh = SubResource("ArrayMesh_rigxx") [node name="GunkBody" parent="BeastNav/Corridor3/ShortHallway6/CargoBaySign" instance=ExtResource("2_2egij")] diff --git a/src/effects/grunk_splatter.tscn b/src/effects/grunk_splatter.tscn index d8453d2..f1d7ec3 100644 --- a/src/effects/grunk_splatter.tscn +++ b/src/effects/grunk_splatter.tscn @@ -132,7 +132,7 @@ autostart = true [node name="SplatterSFX" type="AudioStreamPlayer3D" parent="."] stream = SubResource("AudioStreamRandomizer_6adkd") -volume_db = -10.0 +volume_db = -16.0 unit_size = 6.0 autoplay = true bus = &"SFX" diff --git a/src/game/game_manager.gd b/src/game/game_manager.gd index 2feb98e..70c7808 100644 --- a/src/game/game_manager.gd +++ b/src/game/game_manager.gd @@ -151,3 +151,9 @@ func _on_milestone(milestone: Milestone) -> void: func on_player_death() -> void: player_dead.emit() # TODO reload from save? + + # REMOVEME + # workaround until saving & loading is implemented + grunk_tank_limit = BASE_TANK_LIMIT + grunk_tank = 0.0 + grunk_vault = 0.0 diff --git a/src/player/player.tscn b/src/player/player.tscn index 225f258..3a0226f 100644 --- a/src/player/player.tscn +++ b/src/player/player.tscn @@ -622,7 +622,6 @@ unique_name_in_owner = true visible = false [node name="TransformedPosition" type="Node3D" parent="CameraPosition/CameraPivot"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="CamRumbler" type="Node3D" parent="CameraPosition/CameraPivot/TransformedPosition"] unique_name_in_owner = true @@ -647,6 +646,7 @@ omni_attenuation = 0.0 [node name="NearLight" type="OmniLight3D" parent="CameraPosition/CameraPivot/TransformedPosition/CamRumbler/Camera3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1) +light_energy = 0.2 light_specular = 0.01 light_cull_mask = 4294967293 omni_range = 2.0 diff --git a/src/props/overhead_light/overhead_light.tscn b/src/props/overhead_light/overhead_light.tscn index f87230c..832c8fd 100644 --- a/src/props/overhead_light/overhead_light.tscn +++ b/src/props/overhead_light/overhead_light.tscn @@ -136,6 +136,7 @@ spot_angle = 98.0 spot_angle_attenuation = 1.55871 [node name="MeshInstance3D" type="MeshInstance3D" parent="."] +gi_mode = 2 mesh = SubResource("ArrayMesh_jdrpd") [node name="FluorescentFlicker" type="AnimationPlayer" parent="MeshInstance3D"] diff --git a/src/props/text_terminal/text_terminal.tscn b/src/props/text_terminal/text_terminal.tscn index 8334df7..e3f4d03 100644 --- a/src/props/text_terminal/text_terminal.tscn +++ b/src/props/text_terminal/text_terminal.tscn @@ -5,6 +5,7 @@ [sub_resource type="SystemFont" id="SystemFont_twqjh"] font_names = PackedStringArray("Monospace") +subpixel_positioning = 0 [node name="TextTerminal" type="Node3D"] transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0) diff --git a/src/props/wall_switch/wall_switch.tscn b/src/props/wall_switch/wall_switch.tscn index 126c514..44787e1 100644 --- a/src/props/wall_switch/wall_switch.tscn +++ b/src/props/wall_switch/wall_switch.tscn @@ -233,10 +233,12 @@ shape = SubResource("ConcavePolygonShape3D_1xqlp") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.17, 0.24, 0.1) [node name="DangerLight" type="MeshInstance3D" parent="Lights" index="0"] +gi_mode = 2 mesh = SubResource("BoxMesh_g24yf") [node name="SuccessLight" type="MeshInstance3D" parent="Lights" index="1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.06, 0) +gi_mode = 2 mesh = SubResource("BoxMesh_a6hjm") [node name="SuccessSFX" type="AudioStreamPlayer3D" parent="Lights/SuccessLight" index="0"] diff --git a/src/world/grunk_beast/grunk_beast.tscn b/src/world/grunk_beast/grunk_beast.tscn index 416a075..3efc685 100644 --- a/src/world/grunk_beast/grunk_beast.tscn +++ b/src/world/grunk_beast/grunk_beast.tscn @@ -218,7 +218,7 @@ metadata/_custom_type_script = "uid://om57w2acvgb7" script = ExtResource("11_mbqcc") mean_time = 4.0 st_dev_time = 0.6 -wait_time = 3.52038 +wait_time = 3.57092 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="RandomStalkingBehavior" type="Node" parent="GrunkBeastBehavior/StateSelector/StalkingSequence/RandomDelay"] @@ -264,7 +264,7 @@ metadata/_custom_type_script = "uid://cg016dbe7gs1x" script = ExtResource("11_mbqcc") mean_time = 5.0 st_dev_time = 1.0 -wait_time = 5.84132 +wait_time = 4.97651 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="PickRandomLurkTarget" type="Node" parent="GrunkBeastBehavior/StateSelector/LurkSequence/RandomDelay"] diff --git a/src/world/grunk_beast/slutch_beast/slutch_beast.tscn b/src/world/grunk_beast/slutch_beast/slutch_beast.tscn index a764572..d01efd8 100644 --- a/src/world/grunk_beast/slutch_beast/slutch_beast.tscn +++ b/src/world/grunk_beast/slutch_beast/slutch_beast.tscn @@ -14,6 +14,7 @@ theta_acceleration = 8.0 surface_material_override/0 = ExtResource("3_htnl6") [node name="FaceNodule" parent="." index="1"] +gi_mode = 2 surface_material_override/0 = ExtResource("4_r4p65") [node name="Nodule_001" parent="." index="2"] diff --git a/src/world/mechanics/alarm/gunk_alarm.tscn b/src/world/mechanics/alarm/gunk_alarm.tscn index 5aa3474..7bd39f5 100644 --- a/src/world/mechanics/alarm/gunk_alarm.tscn +++ b/src/world/mechanics/alarm/gunk_alarm.tscn @@ -43,34 +43,6 @@ _surfaces = [{ }] blend_shape_mode = 0 -[sub_resource type="Animation" id="Animation_6vdvf"] -resource_name = "trigger" -length = 6.0 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_color") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.333333, 5.3, 6), -"transitions": PackedFloat32Array(1, 1, 1, 1), -"update": 0, -"values": [Color(0.25, 0.88, 1, 1), Color(1, 0.25, 0.2625, 1), Color(1, 0.25, 0.2625, 1), Color(0.25, 0.88, 1, 1)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_strength") -tracks/1/interp = 2 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.333333, 0.9, 3.96667, 5.3, 6), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), -"update": 0, -"values": [0.02, 0.05, 10.0, 10.0, 0.05, 0.02] -} - [sub_resource type="Animation" id="Animation_g4yos"] length = 0.001 tracks/0/type = "value" @@ -98,6 +70,34 @@ tracks/1/keys = { "values": [0.02] } +[sub_resource type="Animation" id="Animation_6vdvf"] +resource_name = "trigger" +length = 10.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.333333, 9, 10), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Color(0.25, 0.88, 1, 1), Color(1, 0.25, 0.2625, 1), Color(1, 0.25, 0.2625, 1), Color(0.25, 0.88, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_strength") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.9, 3.96667, 10), +"transitions": PackedFloat32Array(1, 1, 1, 0.618, 1), +"update": 0, +"values": [0.02, 0.05, 10.0, 10.0, 0.02] +} + [sub_resource type="AnimationLibrary" id="AnimationLibrary_vokcn"] _data = { &"RESET": SubResource("Animation_g4yos"), @@ -132,7 +132,7 @@ transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0.0 bones/1/rotation = Quaternion(0.615412, 8.96411e-08, 6.99896e-08, 0.788205) bones/2/rotation = Quaternion(6.23537e-08, 0.911935, -0.410335, 6.88492e-08) bones/3/rotation = Quaternion(0.388328, -7.55108e-08, -2.12852e-09, 0.921521) -bones/4/rotation = Quaternion(0.362943, -6.23644e-15, -3.17295e-08, 0.931811) +bones/4/rotation = Quaternion(0.362943, -7.06405e-15, -3.17295e-08, 0.931811) bones/5/rotation = Quaternion(0.554467, 0.341989, -0.267017, 0.710149) bones/6/rotation = Quaternion(1.87911e-08, 0.911935, -0.410335, -6.13774e-08) bones/7/rotation = Quaternion(0.388328, -7.54773e-08, -5.17987e-08, 0.921521) @@ -143,8 +143,7 @@ bones/11/rotation = Quaternion(0.388328, 4.03898e-08, -9.63879e-08, 0.921521) bones/12/rotation = Quaternion(0.362943, -2.72222e-08, 1.68537e-09, 0.931811) bones/14/rotation = Quaternion(1.04239e-08, 0.911935, -0.410335, 5.30153e-08) bones/15/rotation = Quaternion(0.388328, 1.98981e-07, -6.10131e-08, 0.921521) -bones/16/rotation = Quaternion(0.362943, -7.47069e-08, 7.94897e-09, 0.931811) -bones/17/rotation = Quaternion(-0.136942, 0.768444, -0.599983, -0.175392) +bones/16/rotation = Quaternion(0.362943, -7.47069e-08, 7.94898e-09, 0.931811) bones/18/rotation = Quaternion(7.03342e-08, 0.911935, -0.410335, 5.90948e-08) bones/19/rotation = Quaternion(0.388329, 2.02752e-07, -7.27092e-08, 0.921521) bones/20/rotation = Quaternion(0.362943, -2.24031e-07, 5.70885e-08, 0.931811) @@ -158,6 +157,7 @@ bones/27/rotation = Quaternion(0.388328, 2.1633e-07, -1.09183e-07, 0.921521) bones/28/rotation = Quaternion(0.362943, -7.93195e-08, 1.03952e-07, 0.931811) [node name="Bud" parent="FrameSkipper/AlarmMesh/Armature/Skeleton3D" index="0"] +gi_mode = 2 mesh = SubResource("ArrayMesh_c5y52") [node name="AnimationPlayer" parent="FrameSkipper/AlarmMesh" index="1"]