generated from krampus/template-godot4
Compare commits
9 Commits
f966dc43df
...
e7885d33b9
Author | SHA1 | Date | |
---|---|---|---|
e7885d33b9 | |||
467f0d5216 | |||
599696284b | |||
0d2f785544 | |||
3dc1011c6b | |||
dc6ff96ea0 | |||
12a43946f4 | |||
e79a367277 | |||
8a53349aef |
BIN
asset_dev/sfx/alarm_screech.aup3
Normal file
BIN
asset_dev/sfx/alarm_screech.aup3
Normal file
Binary file not shown.
BIN
asset_dev/sfx/alarm_screech_2.aup3
Normal file
BIN
asset_dev/sfx/alarm_screech_2.aup3
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
asset_dev/sfx/wall_switch.aup3
Normal file
BIN
asset_dev/sfx/wall_switch.aup3
Normal file
Binary file not shown.
BIN
assets/sfx/grunk/alarm_screech.wav
Normal file
BIN
assets/sfx/grunk/alarm_screech.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/alarm_screech.wav.import
Normal file
24
assets/sfx/grunk/alarm_screech.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://ypk1d4adrcs"
|
||||||
|
path="res://.godot/imported/alarm_screech.wav-99f30850091e72de3c561e544b0403c0.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/alarm_screech.wav"
|
||||||
|
dest_files=["res://.godot/imported/alarm_screech.wav-99f30850091e72de3c561e544b0403c0.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/greeble1.wav
Normal file
BIN
assets/sfx/grunk/greeble1.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/greeble1.wav.import
Normal file
24
assets/sfx/grunk/greeble1.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://bb560r2wvjfht"
|
||||||
|
path="res://.godot/imported/greeble1.wav-ea53a62389ed7a5fce08eb109c43dadd.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/greeble1.wav"
|
||||||
|
dest_files=["res://.godot/imported/greeble1.wav-ea53a62389ed7a5fce08eb109c43dadd.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/greeble2.wav
Normal file
BIN
assets/sfx/grunk/greeble2.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/greeble2.wav.import
Normal file
24
assets/sfx/grunk/greeble2.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dunakapj3mb0h"
|
||||||
|
path="res://.godot/imported/greeble2.wav-d90cb4544544b55f5382855b51f585d6.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/greeble2.wav"
|
||||||
|
dest_files=["res://.godot/imported/greeble2.wav-d90cb4544544b55f5382855b51f585d6.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/greeble3.wav
Normal file
BIN
assets/sfx/grunk/greeble3.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/greeble3.wav.import
Normal file
24
assets/sfx/grunk/greeble3.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://6bgyoaclmu8c"
|
||||||
|
path="res://.godot/imported/greeble3.wav-4ec0219b7b9fa19e355078aa1e99b2e0.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/greeble3.wav"
|
||||||
|
dest_files=["res://.godot/imported/greeble3.wav-4ec0219b7b9fa19e355078aa1e99b2e0.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/greeble4.wav
Normal file
BIN
assets/sfx/grunk/greeble4.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/greeble4.wav.import
Normal file
24
assets/sfx/grunk/greeble4.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://7nj6bldnhos3"
|
||||||
|
path="res://.godot/imported/greeble4.wav-9a84416c9d5fe46f4d88789a027646cd.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/greeble4.wav"
|
||||||
|
dest_files=["res://.godot/imported/greeble4.wav-9a84416c9d5fe46f4d88789a027646cd.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/heartbeat.wav
Normal file
BIN
assets/sfx/grunk/heartbeat.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/heartbeat.wav.import
Normal file
24
assets/sfx/grunk/heartbeat.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://0usonf3pjh3o"
|
||||||
|
path="res://.godot/imported/heartbeat.wav-23e070ceda3a2c6b2886e8fd85673555.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/heartbeat.wav"
|
||||||
|
dest_files=["res://.godot/imported/heartbeat.wav-23e070ceda3a2c6b2886e8fd85673555.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/pump.wav
Normal file
BIN
assets/sfx/grunk/pump.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/pump.wav.import
Normal file
24
assets/sfx/grunk/pump.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cimw72d2lexvt"
|
||||||
|
path="res://.godot/imported/pump.wav-3af6b59129486d6bf0a5a519848e701a.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/pump.wav"
|
||||||
|
dest_files=["res://.godot/imported/pump.wav-3af6b59129486d6bf0a5a519848e701a.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/splat1.wav
Normal file
BIN
assets/sfx/grunk/splat1.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/splat1.wav.import
Normal file
24
assets/sfx/grunk/splat1.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://di0j2xhgfc78s"
|
||||||
|
path="res://.godot/imported/splat1.wav-0c184c3612f6e8dc49404de6420bfc5c.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/splat1.wav"
|
||||||
|
dest_files=["res://.godot/imported/splat1.wav-0c184c3612f6e8dc49404de6420bfc5c.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/grunk/splat2.wav
Normal file
BIN
assets/sfx/grunk/splat2.wav
Normal file
Binary file not shown.
24
assets/sfx/grunk/splat2.wav.import
Normal file
24
assets/sfx/grunk/splat2.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://d1w5gfmjj7tjk"
|
||||||
|
path="res://.godot/imported/splat2.wav-d793ff699626551d45adb56e386a2f81.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/grunk/splat2.wav"
|
||||||
|
dest_files=["res://.godot/imported/splat2.wav-d793ff699626551d45adb56e386a2f81.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/space_door.wav
Normal file
BIN
assets/sfx/space_door.wav
Normal file
Binary file not shown.
24
assets/sfx/space_door.wav.import
Normal file
24
assets/sfx/space_door.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://b601aiv71ddra"
|
||||||
|
path="res://.godot/imported/space_door.wav-cfdcf19076b3529fb20c9d5c6a8ba845.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/space_door.wav"
|
||||||
|
dest_files=["res://.godot/imported/space_door.wav-cfdcf19076b3529fb20c9d5c6a8ba845.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/space_door_close.wav
Normal file
BIN
assets/sfx/space_door_close.wav
Normal file
Binary file not shown.
24
assets/sfx/space_door_close.wav.import
Normal file
24
assets/sfx/space_door_close.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://bckqqojs6pcu1"
|
||||||
|
path="res://.godot/imported/space_door_close.wav-b63dd0d5ac81269fa735a415c4610094.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/space_door_close.wav"
|
||||||
|
dest_files=["res://.godot/imported/space_door_close.wav-b63dd0d5ac81269fa735a415c4610094.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
BIN
assets/sfx/wall_switch.wav
Normal file
BIN
assets/sfx/wall_switch.wav
Normal file
Binary file not shown.
24
assets/sfx/wall_switch.wav.import
Normal file
24
assets/sfx/wall_switch.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cnje66wrijwxw"
|
||||||
|
path="res://.godot/imported/wall_switch.wav-e47e5727c2106a3c962a073b6d4d5240.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sfx/wall_switch.wav"
|
||||||
|
dest_files=["res://.godot/imported/wall_switch.wav-e47e5727c2106a3c962a073b6d4d5240.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=18 format=3 uid="uid://bov4ok76woyc"]
|
[gd_scene load_steps=21 format=3 uid="uid://bov4ok76woyc"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://crydi5cjgfwe5" path="res://levels/ghost_ship/ghost_ship_level.tscn" id="1_aj2m7"]
|
[ext_resource type="PackedScene" uid="uid://crydi5cjgfwe5" path="res://levels/ghost_ship/ghost_ship_level.tscn" id="1_aj2m7"]
|
||||||
[ext_resource type="Environment" uid="uid://bkvij3ljl5ox3" path="res://levels/ghost_ship/environment_3.tres" id="1_wwgrl"]
|
[ext_resource type="Environment" uid="uid://bkvij3ljl5ox3" path="res://levels/ghost_ship/environment_3.tres" id="1_wwgrl"]
|
||||||
@ -10,11 +10,14 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://cqh31d5my7fst" path="res://assets/sfx/ambient/metal_creak1.wav" id="8_ihj8k"]
|
[ext_resource type="AudioStream" uid="uid://cqh31d5my7fst" path="res://assets/sfx/ambient/metal_creak1.wav" id="8_ihj8k"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cfvdtl1n42bis" path="res://assets/sfx/ambient/metal_creak2.wav" id="9_d2iql"]
|
[ext_resource type="AudioStream" uid="uid://cfvdtl1n42bis" path="res://assets/sfx/ambient/metal_creak2.wav" id="9_d2iql"]
|
||||||
[ext_resource type="AudioStream" uid="uid://p5uendw5mb3x" path="res://assets/sfx/ambient/metal_creak3.wav" id="10_8h40n"]
|
[ext_resource type="AudioStream" uid="uid://p5uendw5mb3x" path="res://assets/sfx/ambient/metal_creak3.wav" id="10_8h40n"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bvtopyke5d17x" path="res://assets/sfx/grunk/groan3.wav" id="10_h081y"]
|
||||||
[ext_resource type="AudioStream" uid="uid://2qg0vqhygdwu" path="res://assets/sfx/ambient/metal_creak4.wav" id="11_it47q"]
|
[ext_resource type="AudioStream" uid="uid://2qg0vqhygdwu" path="res://assets/sfx/ambient/metal_creak4.wav" id="11_it47q"]
|
||||||
[ext_resource type="AudioStream" uid="uid://ot7sr34qya3j" path="res://assets/sfx/ambient/metal_creak5.wav" id="12_h081y"]
|
[ext_resource type="AudioStream" uid="uid://ot7sr34qya3j" path="res://assets/sfx/ambient/metal_creak5.wav" id="12_h081y"]
|
||||||
[ext_resource type="AudioStream" uid="uid://7w531ufwc8c3" path="res://assets/sfx/ambient/metal_creak6.wav" id="13_law5k"]
|
[ext_resource type="AudioStream" uid="uid://7w531ufwc8c3" path="res://assets/sfx/ambient/metal_creak6.wav" id="13_law5k"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c60m6qlq5cnp2" path="res://assets/sfx/ambient/metal_creak7.wav" id="14_4mbcm"]
|
[ext_resource type="AudioStream" uid="uid://c60m6qlq5cnp2" path="res://assets/sfx/ambient/metal_creak7.wav" id="14_4mbcm"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cvwc2r2cmnaim" path="res://assets/sfx/ambient/metal_creak8.wav" id="15_r4ldl"]
|
[ext_resource type="AudioStream" uid="uid://cvwc2r2cmnaim" path="res://assets/sfx/ambient/metal_creak8.wav" id="15_r4ldl"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://b288km80xeh0" path="res://assets/sfx/grunk/groan1.wav" id="17_law5k"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bujyltdunajj4" path="res://assets/sfx/grunk/groan2.wav" id="18_4mbcm"]
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_o7mxe"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_o7mxe"]
|
||||||
size = Vector3(6, 4, 15)
|
size = Vector3(6, 4, 15)
|
||||||
@ -22,7 +25,7 @@ size = Vector3(6, 4, 15)
|
|||||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_d8fas"]
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_d8fas"]
|
||||||
playback_mode = 1
|
playback_mode = 1
|
||||||
random_pitch = 1.1
|
random_pitch = 1.1
|
||||||
streams_count = 8
|
streams_count = 11
|
||||||
stream_0/stream = ExtResource("8_ihj8k")
|
stream_0/stream = ExtResource("8_ihj8k")
|
||||||
stream_1/stream = ExtResource("9_d2iql")
|
stream_1/stream = ExtResource("9_d2iql")
|
||||||
stream_2/stream = ExtResource("10_8h40n")
|
stream_2/stream = ExtResource("10_8h40n")
|
||||||
@ -31,6 +34,12 @@ stream_4/stream = ExtResource("12_h081y")
|
|||||||
stream_5/stream = ExtResource("13_law5k")
|
stream_5/stream = ExtResource("13_law5k")
|
||||||
stream_6/stream = ExtResource("14_4mbcm")
|
stream_6/stream = ExtResource("14_4mbcm")
|
||||||
stream_7/stream = ExtResource("15_r4ldl")
|
stream_7/stream = ExtResource("15_r4ldl")
|
||||||
|
stream_8/stream = ExtResource("17_law5k")
|
||||||
|
stream_8/weight = 0.2
|
||||||
|
stream_9/stream = ExtResource("18_4mbcm")
|
||||||
|
stream_9/weight = 0.2
|
||||||
|
stream_10/stream = ExtResource("10_h081y")
|
||||||
|
stream_10/weight = 0.2
|
||||||
|
|
||||||
[node name="GhostShip" type="Node3D"]
|
[node name="GhostShip" type="Node3D"]
|
||||||
|
|
||||||
|
15
levels/ghost_ship/player_ship/door_area.gd
Normal file
15
levels/ghost_ship/player_ship/door_area.gd
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
extends Area3D
|
||||||
|
|
||||||
|
@onready var door_animation: AnimationPlayer = %DoorAnimation
|
||||||
|
@onready var open_sfx: AudioStreamPlayer3D = %OpenSFX
|
||||||
|
@onready var close_sfx: AudioStreamPlayer3D = %CloseSFX
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_entered(_body: Node3D) -> void:
|
||||||
|
door_animation.play("open")
|
||||||
|
open_sfx.play()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_exited(_body: Node3D) -> void:
|
||||||
|
door_animation.play_backwards("open")
|
||||||
|
close_sfx.play()
|
1
levels/ghost_ship/player_ship/door_area.gd.uid
Normal file
1
levels/ghost_ship/player_ship/door_area.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://ck3yvtm42i1h4
|
@ -9,6 +9,7 @@ const TANK_FILL_TIME := 1.0
|
|||||||
|
|
||||||
@onready var tank_interactor: Interactive = %TankInteractor
|
@onready var tank_interactor: Interactive = %TankInteractor
|
||||||
@onready var grunk_liquid: MeshInstance3D = %GrunkLiquid
|
@onready var grunk_liquid: MeshInstance3D = %GrunkLiquid
|
||||||
|
@onready var grunk_pump_sfx: AudioStreamPlayer3D = %GrunkPumpSFX
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -27,6 +28,8 @@ func deposit_grunk() -> void:
|
|||||||
|
|
||||||
set_liquid_level(clampf(Game.manager.grunk_vault / MAX_GRUNK, 0.0, 1.0))
|
set_liquid_level(clampf(Game.manager.grunk_vault / MAX_GRUNK, 0.0, 1.0))
|
||||||
|
|
||||||
|
grunk_pump_sfx.play()
|
||||||
|
|
||||||
|
|
||||||
func set_liquid_level(proportion: float) -> void:
|
func set_liquid_level(proportion: float) -> void:
|
||||||
(
|
(
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=29 format=3 uid="uid://oowut88kr2ox"]
|
[gd_scene load_steps=44 format=3 uid="uid://oowut88kr2ox"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://lfd36ps52xgk" path="res://levels/ghost_ship/player_ship/player_ship.gd" id="1_0r2ng"]
|
[ext_resource type="Script" uid="uid://lfd36ps52xgk" path="res://levels/ghost_ship/player_ship/player_ship.gd" id="1_0r2ng"]
|
||||||
[ext_resource type="ArrayMesh" uid="uid://dq4aj5ph31rce" path="res://assets/level/player_ship/player_ship.obj" id="1_nafoa"]
|
[ext_resource type="ArrayMesh" uid="uid://dq4aj5ph31rce" path="res://assets/level/player_ship/player_ship.obj" id="1_nafoa"]
|
||||||
@ -10,11 +10,18 @@
|
|||||||
[ext_resource type="ArrayMesh" uid="uid://djgqnuxrja1mo" path="res://assets/level/player_ship/player_ship_tank_facade.obj" id="8_2mvif"]
|
[ext_resource type="ArrayMesh" uid="uid://djgqnuxrja1mo" path="res://assets/level/player_ship/player_ship_tank_facade.obj" id="8_2mvif"]
|
||||||
[ext_resource type="Shader" uid="uid://ckxc0ngd37rtk" path="res://src/shaders/gunk.gdshader" id="8_al8ma"]
|
[ext_resource type="Shader" uid="uid://ckxc0ngd37rtk" path="res://src/shaders/gunk.gdshader" id="8_al8ma"]
|
||||||
[ext_resource type="ArrayMesh" uid="uid://bc8457r4rxpey" path="res://assets/level/player_ship/grunk_liquid.obj" id="8_xuj2g"]
|
[ext_resource type="ArrayMesh" uid="uid://bc8457r4rxpey" path="res://assets/level/player_ship/grunk_liquid.obj" id="8_xuj2g"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://cimw72d2lexvt" path="res://assets/sfx/grunk/pump.wav" id="9_0e0pl"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cm1jrvx7ftx4c" path="res://assets/black.png" id="9_xuj2g"]
|
[ext_resource type="Texture2D" uid="uid://cm1jrvx7ftx4c" path="res://assets/black.png" id="9_xuj2g"]
|
||||||
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="10_2mvif"]
|
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="10_2mvif"]
|
||||||
[ext_resource type="PackedScene" uid="uid://mgygam1kakb7" path="res://levels/ghost_ship/player_ship/grunk_terminal/grunk_terminal.tscn" id="13_3trrp"]
|
[ext_resource type="PackedScene" uid="uid://mgygam1kakb7" path="res://levels/ghost_ship/player_ship/grunk_terminal/grunk_terminal.tscn" id="13_3trrp"]
|
||||||
[ext_resource type="Script" uid="uid://vewq8h8uulbg" path="res://src/util/translator_path_3d.gd" id="13_i4yi7"]
|
[ext_resource type="Script" uid="uid://vewq8h8uulbg" path="res://src/util/translator_path_3d.gd" id="13_i4yi7"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c838ofbu4bqrn" path="res://assets/sfx/computer_noise.wav" id="14_was05"]
|
[ext_resource type="AudioStream" uid="uid://c838ofbu4bqrn" path="res://assets/sfx/computer_noise.wav" id="14_was05"]
|
||||||
|
[ext_resource type="Script" uid="uid://ck3yvtm42i1h4" path="res://levels/ghost_ship/player_ship/door_area.gd" id="16_kkevb"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://nexcq3xxrebb" path="res://assets/props/bulkhead/bulkhead_door_M.png" id="16_nps14"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dk4sm780p6jfc" path="res://assets/props/bulkhead/bulkhead_door_N.png" id="17_kkevb"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://rjuyd20y2ov1" path="res://assets/props/bulkhead/bulkhead_door_R.png" id="18_3rulp"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://b601aiv71ddra" path="res://assets/sfx/space_door.wav" id="20_3rulp"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bckqqojs6pcu1" path="res://assets/sfx/space_door_close.wav" id="21_bmg36"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xpsdy"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xpsdy"]
|
||||||
transparency = 1
|
transparency = 1
|
||||||
@ -29,6 +36,11 @@ texture_filter = 2
|
|||||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_nafoa"]
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_nafoa"]
|
||||||
data = PackedVector3Array(2.5, 1, 5.5, 2.5, 1, -4.5001, 2.5, 2, 5.5, 2.5, 2, 5.5, 2.5, 1, -4.5001, 2.5, 2, -4.5001, 1.5, 3, 4.4999, 1.5, 3, -4.5001, -1.5, 3, 4.4999, -1.5, 3, 4.4999, 1.5, 3, -4.5001, -1.5, 3, -4.5001, -1.5, 3, -4.5001, 1.5, 3, -4.5001, -0.625, 3, -4.5001, -0.625, 3, -4.5001, 1.5, 3, -4.5001, 0.625, 3, -4.5001, -2.5, 1, -4.5001, -2.5, 1, 5.5, -2.5, 2, -4.5001, -2.5, 2, -4.5001, -2.5, 1, 5.5, -2.5, 2, 5.5, 2.5, 1, -4.5001, 1.5, 0, -4.5001, 2.5, 2, -4.5001, 2.5, 2, -4.5001, 1.5, 0, -4.5001, 1.5, 3, -4.5001, 0.625, 0, -4.5001, 1.5, 3, -4.5001, 1.5, 0, -4.5001, 0.625, 2.5, -4.5001, 1.5, 3, -4.5001, 0.625, 0, -4.5001, 0.625, 3, -4.5001, 1.5, 3, -4.5001, 0.625, 2.5, -4.5001, 0.625, 2.5, -4.5001, -0.625, 2.5, -4.5001, 0.625, 3, -4.5001, 0.625, 3, -4.5001, -0.625, 2.5, -4.5001, -0.625, 3, -4.5001, -0.625, 3, -4.5001, -0.625, 2.5, -4.5001, -1.5, 3, -4.5001, -1.5, 3, -4.5001, -0.625, 2.5, -4.5001, -1.5, 0, -4.5001, -1.5, 0, -4.5001, -0.625, 2.5, -4.5001, -0.625, 0, -4.5001, -1.5, 0, -4.5001, -2.5, 1, -4.5001, -1.5, 3, -4.5001, -1.5, 3, -4.5001, -2.5, 1, -4.5001, -2.5, 2, -4.5001, -2.5, 1, -4.5001, -1.5, 0, -4.5001, -2.5, 1, 5.5, -2.5, 1, 5.5, -1.5, 0, -4.5001, -1.5, 0, 4.4999, -2.5, 2, 5.5, -1.5, 3, 4.4999, -2.5, 2, -4.5001, -2.5, 2, -4.5001, -1.5, 3, 4.4999, -1.5, 3, -4.5001, 2.5, 1, 5.5, 1.5, 0, 4.4999, 2.5, 1, -4.5001, 2.5, 1, -4.5001, 1.5, 0, 4.4999, 1.5, 0, -4.5001, 2.5, 2, -4.5001, 1.5, 3, -4.5001, 2.5, 2, 5.5, 2.5, 2, 5.5, 1.5, 3, -4.5001, 1.5, 3, 4.4999, -1.5, 0, 4.4999, -1.5, 0, -4.5001, 1.5, 0, 4.4999, 1.5, 0, 4.4999, -1.5, 0, -4.5001, 1.5, 0, -4.5001, 1.5, 0, -4.5001, -1.5, 0, -4.5001, 0.625, 0, -4.5001, 0.625, 0, -4.5001, -1.5, 0, -4.5001, -0.625, 0, -4.5001, 0.625, 0, -4.5001, -0.625, 0, -4.5001, 0.625, 0, -4.75, 0.625, 0, -4.75, -0.625, 0, -4.5001, -0.625, 0, -4.75, -0.625, 2.5, -4.5001, 0.625, 2.5, -4.5001, -0.625, 2.5, -4.75, -0.625, 2.5, -4.75, 0.625, 2.5, -4.5001, 0.625, 2.5, -4.75, -0.625, 0, -4.5001, -0.625, 2.5, -4.5001, -0.625, 0, -4.75, -0.625, 0, -4.75, -0.625, 2.5, -4.5001, -0.625, 2.5, -4.75, 0.625, 2.5, -4.5001, 0.625, 0, -4.5001, 0.625, 2.5, -4.75, 0.625, 2.5, -4.75, 0.625, 0, -4.5001, 0.625, 0, -4.75, -1.5, 3, 4.5, -2.5, 2, 5.5, -1.5, 3, 7.5, -1.5, 3, 7.5, -2.5, 2, 5.5, -2.5, 2, 7.5, -1.5, 0, 7.5, 1.5, 0, 7.5, -2.5, 1, 7.5, -2.5, 1, 7.5, 1.5, 0, 7.5, -2.5, 2, 7.5, -2.5, 2, 7.5, 1.5, 0, 7.5, -1.5, 3, 7.5, -1.5, 3, 7.5, 1.5, 0, 7.5, 1.5, 3, 7.5, 1.5, 3, 7.5, 1.5, 0, 7.5, 2.5, 2, 7.5, 2.5, 2, 7.5, 1.5, 0, 7.5, 2.5, 1, 7.5, -2.5, 1, 5.5, -1.5, 0, 4.5, -2.5, 1, 7.5, -2.5, 1, 7.5, -1.5, 0, 4.5, -1.5, 0, 7.5, 2.5, 1, 5.5, 2.5, 2, 5.5, 2.5, 1, 7.5, 2.5, 1, 7.5, 2.5, 2, 5.5, 2.5, 2, 7.5, -2.5, 2, 5.5, -2.5, 1, 5.5, -2.5, 2, 7.5, -2.5, 2, 7.5, -2.5, 1, 5.5, -2.5, 1, 7.5, 2.5, 2, 5.5, 1.5, 3, 4.5, 2.5, 2, 7.5, 2.5, 2, 7.5, 1.5, 3, 4.5, 1.5, 3, 7.5, 1.5, 3, 4.5, -1.5, 3, 4.5, 1.5, 3, 7.5, 1.5, 3, 7.5, -1.5, 3, 4.5, -1.5, 3, 7.5, 1.5, 0, 4.5, 2.5, 1, 5.5, 1.5, 0, 7.5, 1.5, 0, 7.5, 2.5, 1, 5.5, 2.5, 1, 7.5, -1.5, 0, 4.5, 1.5, 0, 4.5, -1.5, 0, 7.5, -1.5, 0, 7.5, 1.5, 0, 4.5, 1.5, 0, 7.5, 1.5, 3, 4.5, 1.5, 0, 4.5, 2.5, 2, 5.5, 2.5, 2, 5.5, 1.5, 0, 4.5, 2.5, 1, 5.5, -2.5, 1, 5.5, -1.5, 0, 4.5, -2.5, 2, 5.5, -2.5, 2, 5.5, -1.5, 0, 4.5, -1.5, 3, 4.5, -1.5, 0, 4.5, 1.5, 0, 4.5, -1.5, 3, 4.5, -1.5, 3, 4.5, 1.5, 0, 4.5, 1.5, 3, 4.5, 1.25, 2.5, -4.75, 1.25, 3, -4.75, 0.625, 2.5, -4.75, 0.625, 2.5, -4.75, 0.625, 0, -4.75, 1.25, 2.5, -4.75, 1.25, 2.5, -4.75, 0.625, 0, -4.75, 1.25, 0, -4.75, 0.625, 2.5, -4.75, 1.25, 3, -4.75, -0.625, 2.5, -4.75, -0.625, 2.5, -4.75, 1.25, 3, -4.75, -1.25, 2.5, -4.75, -1.25, 2.5, -4.75, 1.25, 3, -4.75, -1.25, 3, -4.75, -1.25, 0, -4.75, -0.625, 2.5, -4.75, -1.25, 2.5, -4.75, -0.625, 0, -4.75, -0.625, 2.5, -4.75, -1.25, 0, -4.75, -1.25, 2.5, -4.75, -1.25, 3, -4.75, -1.25, 0, -4.75, -1.25, 0, -4.75, -1.25, 3, -4.75, -1.25, 0, -6.75, -1.25, 0, -6.75, -1.25, 3, -4.75, -1.25, 3, -6.75, -1.25, 3, -4.75, 1.25, 3, -4.75, -1.25, 3, -6.75, -1.25, 3, -6.75, 1.25, 3, -4.75, 1.25, 3, -6.75, 1.25, 0, -4.75, 0.625, 0, -4.75, 1.25, 0, -6.75, 1.25, 0, -6.75, 0.625, 0, -4.75, -1.25, 0, -6.75, -1.25, 0, -6.75, 0.625, 0, -4.75, -1.25, 0, -4.75, -1.25, 0, -4.75, 0.625, 0, -4.75, -0.625, 0, -4.75, 1.25, 2.5, -4.75, 1.25, 0, -4.75, 1.25, 3, -4.75, 1.25, 3, -4.75, 1.25, 0, -4.75, 1.25, 3, -6.75, 1.25, 3, -6.75, 1.25, 0, -4.75, 1.25, 0, -6.75)
|
data = PackedVector3Array(2.5, 1, 5.5, 2.5, 1, -4.5001, 2.5, 2, 5.5, 2.5, 2, 5.5, 2.5, 1, -4.5001, 2.5, 2, -4.5001, 1.5, 3, 4.4999, 1.5, 3, -4.5001, -1.5, 3, 4.4999, -1.5, 3, 4.4999, 1.5, 3, -4.5001, -1.5, 3, -4.5001, -1.5, 3, -4.5001, 1.5, 3, -4.5001, -0.625, 3, -4.5001, -0.625, 3, -4.5001, 1.5, 3, -4.5001, 0.625, 3, -4.5001, -2.5, 1, -4.5001, -2.5, 1, 5.5, -2.5, 2, -4.5001, -2.5, 2, -4.5001, -2.5, 1, 5.5, -2.5, 2, 5.5, 2.5, 1, -4.5001, 1.5, 0, -4.5001, 2.5, 2, -4.5001, 2.5, 2, -4.5001, 1.5, 0, -4.5001, 1.5, 3, -4.5001, 0.625, 0, -4.5001, 1.5, 3, -4.5001, 1.5, 0, -4.5001, 0.625, 2.5, -4.5001, 1.5, 3, -4.5001, 0.625, 0, -4.5001, 0.625, 3, -4.5001, 1.5, 3, -4.5001, 0.625, 2.5, -4.5001, 0.625, 2.5, -4.5001, -0.625, 2.5, -4.5001, 0.625, 3, -4.5001, 0.625, 3, -4.5001, -0.625, 2.5, -4.5001, -0.625, 3, -4.5001, -0.625, 3, -4.5001, -0.625, 2.5, -4.5001, -1.5, 3, -4.5001, -1.5, 3, -4.5001, -0.625, 2.5, -4.5001, -1.5, 0, -4.5001, -1.5, 0, -4.5001, -0.625, 2.5, -4.5001, -0.625, 0, -4.5001, -1.5, 0, -4.5001, -2.5, 1, -4.5001, -1.5, 3, -4.5001, -1.5, 3, -4.5001, -2.5, 1, -4.5001, -2.5, 2, -4.5001, -2.5, 1, -4.5001, -1.5, 0, -4.5001, -2.5, 1, 5.5, -2.5, 1, 5.5, -1.5, 0, -4.5001, -1.5, 0, 4.4999, -2.5, 2, 5.5, -1.5, 3, 4.4999, -2.5, 2, -4.5001, -2.5, 2, -4.5001, -1.5, 3, 4.4999, -1.5, 3, -4.5001, 2.5, 1, 5.5, 1.5, 0, 4.4999, 2.5, 1, -4.5001, 2.5, 1, -4.5001, 1.5, 0, 4.4999, 1.5, 0, -4.5001, 2.5, 2, -4.5001, 1.5, 3, -4.5001, 2.5, 2, 5.5, 2.5, 2, 5.5, 1.5, 3, -4.5001, 1.5, 3, 4.4999, -1.5, 0, 4.4999, -1.5, 0, -4.5001, 1.5, 0, 4.4999, 1.5, 0, 4.4999, -1.5, 0, -4.5001, 1.5, 0, -4.5001, 1.5, 0, -4.5001, -1.5, 0, -4.5001, 0.625, 0, -4.5001, 0.625, 0, -4.5001, -1.5, 0, -4.5001, -0.625, 0, -4.5001, 0.625, 0, -4.5001, -0.625, 0, -4.5001, 0.625, 0, -4.75, 0.625, 0, -4.75, -0.625, 0, -4.5001, -0.625, 0, -4.75, -0.625, 2.5, -4.5001, 0.625, 2.5, -4.5001, -0.625, 2.5, -4.75, -0.625, 2.5, -4.75, 0.625, 2.5, -4.5001, 0.625, 2.5, -4.75, -0.625, 0, -4.5001, -0.625, 2.5, -4.5001, -0.625, 0, -4.75, -0.625, 0, -4.75, -0.625, 2.5, -4.5001, -0.625, 2.5, -4.75, 0.625, 2.5, -4.5001, 0.625, 0, -4.5001, 0.625, 2.5, -4.75, 0.625, 2.5, -4.75, 0.625, 0, -4.5001, 0.625, 0, -4.75, -1.5, 3, 4.5, -2.5, 2, 5.5, -1.5, 3, 7.5, -1.5, 3, 7.5, -2.5, 2, 5.5, -2.5, 2, 7.5, -1.5, 0, 7.5, 1.5, 0, 7.5, -2.5, 1, 7.5, -2.5, 1, 7.5, 1.5, 0, 7.5, -2.5, 2, 7.5, -2.5, 2, 7.5, 1.5, 0, 7.5, -1.5, 3, 7.5, -1.5, 3, 7.5, 1.5, 0, 7.5, 1.5, 3, 7.5, 1.5, 3, 7.5, 1.5, 0, 7.5, 2.5, 2, 7.5, 2.5, 2, 7.5, 1.5, 0, 7.5, 2.5, 1, 7.5, -2.5, 1, 5.5, -1.5, 0, 4.5, -2.5, 1, 7.5, -2.5, 1, 7.5, -1.5, 0, 4.5, -1.5, 0, 7.5, 2.5, 1, 5.5, 2.5, 2, 5.5, 2.5, 1, 7.5, 2.5, 1, 7.5, 2.5, 2, 5.5, 2.5, 2, 7.5, -2.5, 2, 5.5, -2.5, 1, 5.5, -2.5, 2, 7.5, -2.5, 2, 7.5, -2.5, 1, 5.5, -2.5, 1, 7.5, 2.5, 2, 5.5, 1.5, 3, 4.5, 2.5, 2, 7.5, 2.5, 2, 7.5, 1.5, 3, 4.5, 1.5, 3, 7.5, 1.5, 3, 4.5, -1.5, 3, 4.5, 1.5, 3, 7.5, 1.5, 3, 7.5, -1.5, 3, 4.5, -1.5, 3, 7.5, 1.5, 0, 4.5, 2.5, 1, 5.5, 1.5, 0, 7.5, 1.5, 0, 7.5, 2.5, 1, 5.5, 2.5, 1, 7.5, -1.5, 0, 4.5, 1.5, 0, 4.5, -1.5, 0, 7.5, -1.5, 0, 7.5, 1.5, 0, 4.5, 1.5, 0, 7.5, 1.5, 3, 4.5, 1.5, 0, 4.5, 2.5, 2, 5.5, 2.5, 2, 5.5, 1.5, 0, 4.5, 2.5, 1, 5.5, -2.5, 1, 5.5, -1.5, 0, 4.5, -2.5, 2, 5.5, -2.5, 2, 5.5, -1.5, 0, 4.5, -1.5, 3, 4.5, -1.5, 0, 4.5, 1.5, 0, 4.5, -1.5, 3, 4.5, -1.5, 3, 4.5, 1.5, 0, 4.5, 1.5, 3, 4.5, 1.25, 2.5, -4.75, 1.25, 3, -4.75, 0.625, 2.5, -4.75, 0.625, 2.5, -4.75, 0.625, 0, -4.75, 1.25, 2.5, -4.75, 1.25, 2.5, -4.75, 0.625, 0, -4.75, 1.25, 0, -4.75, 0.625, 2.5, -4.75, 1.25, 3, -4.75, -0.625, 2.5, -4.75, -0.625, 2.5, -4.75, 1.25, 3, -4.75, -1.25, 2.5, -4.75, -1.25, 2.5, -4.75, 1.25, 3, -4.75, -1.25, 3, -4.75, -1.25, 0, -4.75, -0.625, 2.5, -4.75, -1.25, 2.5, -4.75, -0.625, 0, -4.75, -0.625, 2.5, -4.75, -1.25, 0, -4.75, -1.25, 2.5, -4.75, -1.25, 3, -4.75, -1.25, 0, -4.75, -1.25, 0, -4.75, -1.25, 3, -4.75, -1.25, 0, -6.75, -1.25, 0, -6.75, -1.25, 3, -4.75, -1.25, 3, -6.75, -1.25, 3, -4.75, 1.25, 3, -4.75, -1.25, 3, -6.75, -1.25, 3, -6.75, 1.25, 3, -4.75, 1.25, 3, -6.75, 1.25, 0, -4.75, 0.625, 0, -4.75, 1.25, 0, -6.75, 1.25, 0, -6.75, 0.625, 0, -4.75, -1.25, 0, -6.75, -1.25, 0, -6.75, 0.625, 0, -4.75, -1.25, 0, -4.75, -1.25, 0, -4.75, 0.625, 0, -4.75, -0.625, 0, -4.75, 1.25, 2.5, -4.75, 1.25, 0, -4.75, 1.25, 3, -4.75, 1.25, 3, -4.75, 1.25, 0, -4.75, 1.25, 3, -6.75, 1.25, 3, -6.75, 1.25, 0, -4.75, 1.25, 0, -6.75)
|
||||||
|
|
||||||
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_53iah"]
|
||||||
|
random_pitch = 1.1
|
||||||
|
streams_count = 1
|
||||||
|
stream_0/stream = ExtResource("9_0e0pl")
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_e4hmc"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_e4hmc"]
|
||||||
radius = 0.3
|
radius = 0.3
|
||||||
|
|
||||||
@ -91,6 +103,66 @@ _data = {
|
|||||||
}
|
}
|
||||||
point_count = 2
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_ta4yu"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "bezier"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Path3D:curve:point_1/position:x")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"handle_modes": PackedInt32Array(0),
|
||||||
|
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||||
|
"times": PackedFloat32Array(0)
|
||||||
|
}
|
||||||
|
tracks/1/type = "bezier"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Path3D:curve:point_1/position:y")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"handle_modes": PackedInt32Array(0),
|
||||||
|
"points": PackedFloat32Array(-1.4, -0.25, 0, 0.25, 0),
|
||||||
|
"times": PackedFloat32Array(0)
|
||||||
|
}
|
||||||
|
tracks/2/type = "bezier"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Path3D:curve:point_1/position:z")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"handle_modes": PackedInt32Array(0),
|
||||||
|
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||||
|
"times": PackedFloat32Array(0)
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("Path3D/GrunkTerminal:rotation")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0.2618, 1.5708, 0)]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("Path3D/GrunkTerminal/AudioStreamPlayer3D:playing")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_i4yi7"]
|
[sub_resource type="Animation" id="Animation_i4yi7"]
|
||||||
resource_name = "jangle"
|
resource_name = "jangle"
|
||||||
length = 3.0
|
length = 3.0
|
||||||
@ -152,72 +224,69 @@ tracks/4/keys = {
|
|||||||
"values": [true]
|
"values": [true]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_ta4yu"]
|
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "bezier"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Path3D:curve:point_1/position:x")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
|
||||||
"times": PackedFloat32Array(0)
|
|
||||||
}
|
|
||||||
tracks/1/type = "bezier"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath("Path3D:curve:point_1/position:y")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0),
|
|
||||||
"points": PackedFloat32Array(-1.4, -0.25, 0, 0.25, 0),
|
|
||||||
"times": PackedFloat32Array(0)
|
|
||||||
}
|
|
||||||
tracks/2/type = "bezier"
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/path = NodePath("Path3D:curve:point_1/position:z")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
|
||||||
"times": PackedFloat32Array(0)
|
|
||||||
}
|
|
||||||
tracks/3/type = "value"
|
|
||||||
tracks/3/imported = false
|
|
||||||
tracks/3/enabled = true
|
|
||||||
tracks/3/path = NodePath("Path3D/GrunkTerminal:rotation")
|
|
||||||
tracks/3/interp = 1
|
|
||||||
tracks/3/loop_wrap = true
|
|
||||||
tracks/3/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(0.2618, 1.5708, 0)]
|
|
||||||
}
|
|
||||||
tracks/4/type = "value"
|
|
||||||
tracks/4/imported = false
|
|
||||||
tracks/4/enabled = true
|
|
||||||
tracks/4/path = NodePath("Path3D/GrunkTerminal/AudioStreamPlayer3D:playing")
|
|
||||||
tracks/4/interp = 1
|
|
||||||
tracks/4/loop_wrap = true
|
|
||||||
tracks/4/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 1,
|
|
||||||
"values": [false]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fw23o"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fw23o"]
|
||||||
_data = {
|
_data = {
|
||||||
&"RESET": SubResource("Animation_ta4yu"),
|
&"RESET": SubResource("Animation_ta4yu"),
|
||||||
&"jangle": SubResource("Animation_i4yi7")
|
&"jangle": SubResource("Animation_i4yi7")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_nps14"]
|
||||||
|
size = Vector3(3, 3, 4)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_kkevb"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Door:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0, -0.3, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_nps14"]
|
||||||
|
resource_name = "open"
|
||||||
|
length = 0.2
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Door:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0, -0.3, 0), Vector3(0, 2.25, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kkevb"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_kkevb"),
|
||||||
|
&"open": SubResource("Animation_nps14")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bmg36"]
|
||||||
|
metallic = 1.0
|
||||||
|
metallic_texture = ExtResource("16_nps14")
|
||||||
|
roughness_texture = ExtResource("18_3rulp")
|
||||||
|
normal_enabled = true
|
||||||
|
normal_texture = ExtResource("17_kkevb")
|
||||||
|
ao_enabled = true
|
||||||
|
uv1_scale = Vector3(3, 2, 1)
|
||||||
|
texture_filter = 2
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_i4yi7"]
|
||||||
|
material = SubResource("StandardMaterial3D_bmg36")
|
||||||
|
size = Vector3(1.25, 2.5, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_0e0pl"]
|
||||||
|
data = PackedVector3Array(-0.625, 1.25, 0.05, 0.625, 1.25, 0.05, -0.625, -1.25, 0.05, 0.625, 1.25, 0.05, 0.625, -1.25, 0.05, -0.625, -1.25, 0.05, 0.625, 1.25, -0.05, -0.625, 1.25, -0.05, 0.625, -1.25, -0.05, -0.625, 1.25, -0.05, -0.625, -1.25, -0.05, 0.625, -1.25, -0.05, 0.625, 1.25, 0.05, 0.625, 1.25, -0.05, 0.625, -1.25, 0.05, 0.625, 1.25, -0.05, 0.625, -1.25, -0.05, 0.625, -1.25, 0.05, -0.625, 1.25, -0.05, -0.625, 1.25, 0.05, -0.625, -1.25, -0.05, -0.625, 1.25, 0.05, -0.625, -1.25, 0.05, -0.625, -1.25, -0.05, 0.625, 1.25, 0.05, -0.625, 1.25, 0.05, 0.625, 1.25, -0.05, -0.625, 1.25, 0.05, -0.625, 1.25, -0.05, 0.625, 1.25, -0.05, -0.625, -1.25, 0.05, 0.625, -1.25, 0.05, -0.625, -1.25, -0.05, 0.625, -1.25, 0.05, 0.625, -1.25, -0.05, -0.625, -1.25, -0.05)
|
||||||
|
|
||||||
[node name="PlayerShip" type="Node3D"]
|
[node name="PlayerShip" type="Node3D"]
|
||||||
script = ExtResource("1_0r2ng")
|
script = ExtResource("1_0r2ng")
|
||||||
|
|
||||||
@ -238,6 +307,7 @@ shape = SubResource("ConcavePolygonShape3D_nafoa")
|
|||||||
|
|
||||||
[node name="TankInteractor" type="StaticBody3D" parent="."]
|
[node name="TankInteractor" type="StaticBody3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.85, 1.35, 4.5)
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
script = ExtResource("6_e4hmc")
|
script = ExtResource("6_e4hmc")
|
||||||
@ -245,8 +315,15 @@ label = "GRUNK TANK"
|
|||||||
verb = "deposit"
|
verb = "deposit"
|
||||||
metadata/_custom_type_script = "uid://deg5xd87cy8rg"
|
metadata/_custom_type_script = "uid://deg5xd87cy8rg"
|
||||||
|
|
||||||
|
[node name="GrunkPumpSFX" type="AudioStreamPlayer3D" parent="TankInteractor"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.6)
|
||||||
|
stream = SubResource("AudioStreamRandomizer_53iah")
|
||||||
|
volume_db = -4.0
|
||||||
|
unit_size = 3.0
|
||||||
|
pitch_scale = 0.7
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="TankInteractor"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="TankInteractor"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.85, 1.35, 4.5)
|
|
||||||
shape = SubResource("SphereShape3D_e4hmc")
|
shape = SubResource("SphereShape3D_e4hmc")
|
||||||
|
|
||||||
[node name="LiquidOffset" type="Node3D" parent="."]
|
[node name="LiquidOffset" type="Node3D" parent="."]
|
||||||
@ -286,7 +363,7 @@ curve = SubResource("Curve3D_ta4yu")
|
|||||||
script = ExtResource("13_i4yi7")
|
script = ExtResource("13_i4yi7")
|
||||||
|
|
||||||
[node name="GrunkTerminal" parent="TerminalCable/Path3D" instance=ExtResource("13_3trrp")]
|
[node name="GrunkTerminal" parent="TerminalCable/Path3D" instance=ExtResource("13_3trrp")]
|
||||||
transform = Transform3D(-4.37114e-08, 0.258819, 0.965926, 0, 0.965926, -0.258819, -1, -1.13134e-08, -4.2222e-08, 0, -1.4, 0)
|
transform = Transform3D(-3.61999e-06, 0.25882, 0.965926, 0, 0.965926, -0.25882, -1, -9.36925e-07, -3.49664e-06, 0, -1.4, 0)
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="TerminalCable/Path3D/GrunkTerminal"]
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="TerminalCable/Path3D/GrunkTerminal"]
|
||||||
stream = ExtResource("14_was05")
|
stream = ExtResource("14_was05")
|
||||||
@ -299,4 +376,48 @@ libraries = {
|
|||||||
&"": SubResource("AnimationLibrary_fw23o")
|
&"": SubResource("AnimationLibrary_fw23o")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="DoorArea" type="Area3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55, -4.625)
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 8
|
||||||
|
script = ExtResource("16_kkevb")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DoorArea"]
|
||||||
|
shape = SubResource("BoxShape3D_nps14")
|
||||||
|
|
||||||
|
[node name="DoorAnimation" type="AnimationPlayer" parent="DoorArea"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_kkevb")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Door" type="MeshInstance3D" parent="DoorArea"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.3, 0)
|
||||||
|
mesh = SubResource("BoxMesh_i4yi7")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="DoorArea/Door"]
|
||||||
|
collision_layer = 5
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DoorArea/Door/StaticBody3D"]
|
||||||
|
shape = SubResource("ConcavePolygonShape3D_0e0pl")
|
||||||
|
|
||||||
|
[node name="OpenSFX" type="AudioStreamPlayer3D" parent="DoorArea/Door"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.2, 0)
|
||||||
|
stream = ExtResource("20_3rulp")
|
||||||
|
volume_db = -20.0
|
||||||
|
unit_size = 3.0
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="CloseSFX" type="AudioStreamPlayer3D" parent="DoorArea/Door"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.2, 0)
|
||||||
|
stream = ExtResource("21_bmg36")
|
||||||
|
volume_db = -16.0
|
||||||
|
unit_size = 4.0
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
[connection signal="activated" from="TankInteractor" to="." method="deposit_grunk"]
|
[connection signal="activated" from="TankInteractor" to="." method="deposit_grunk"]
|
||||||
|
[connection signal="body_entered" from="DoorArea" to="DoorArea" method="_on_body_entered"]
|
||||||
|
[connection signal="body_exited" from="DoorArea" to="DoorArea" method="_on_body_exited"]
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
[gd_scene load_steps=17 format=3 uid="uid://xlt78xc1tmkl"]
|
[gd_scene load_steps=20 format=3 uid="uid://xlt78xc1tmkl"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://cgwgmxwjgwbwr" path="res://assets/particles/splatter_2.png" id="1_5xu2x"]
|
[ext_resource type="Texture2D" uid="uid://cgwgmxwjgwbwr" path="res://assets/particles/splatter_2.png" id="1_5xu2x"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bhoai6xv53tqm" path="res://assets/particles/splatter_1.png" id="2_bt63p"]
|
[ext_resource type="Texture2D" uid="uid://bhoai6xv53tqm" path="res://assets/particles/splatter_1.png" id="2_bt63p"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://di0j2xhgfc78s" path="res://assets/sfx/grunk/splat1.wav" id="3_t00bd"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://d1w5gfmjj7tjk" path="res://assets/sfx/grunk/splat2.wav" id="4_2iem1"]
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_5xu2x"]
|
[sub_resource type="Gradient" id="Gradient_5xu2x"]
|
||||||
offsets = PackedFloat32Array(0, 0.291304, 0.526087, 1)
|
offsets = PackedFloat32Array(0, 0.291304, 0.526087, 1)
|
||||||
@ -90,6 +92,13 @@ particles_anim_loop = false
|
|||||||
material = SubResource("StandardMaterial3D_ckw5w")
|
material = SubResource("StandardMaterial3D_ckw5w")
|
||||||
size = Vector2(2, 2)
|
size = Vector2(2, 2)
|
||||||
|
|
||||||
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_6adkd"]
|
||||||
|
playback_mode = 1
|
||||||
|
random_pitch = 1.2
|
||||||
|
streams_count = 2
|
||||||
|
stream_0/stream = ExtResource("3_t00bd")
|
||||||
|
stream_1/stream = ExtResource("4_2iem1")
|
||||||
|
|
||||||
[node name="GrunkSplatter" type="GPUParticles3D"]
|
[node name="GrunkSplatter" type="GPUParticles3D"]
|
||||||
sorting_offset = 9.0
|
sorting_offset = 9.0
|
||||||
amount = 64
|
amount = 64
|
||||||
@ -113,4 +122,11 @@ wait_time = 0.3
|
|||||||
one_shot = true
|
one_shot = true
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
|
[node name="SplatterSFX" type="AudioStreamPlayer3D" parent="."]
|
||||||
|
stream = SubResource("AudioStreamRandomizer_6adkd")
|
||||||
|
volume_db = -20.0
|
||||||
|
unit_size = 6.0
|
||||||
|
autoplay = true
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
[connection signal="timeout" from="FreeTimer" to="." method="queue_free"]
|
[connection signal="timeout" from="FreeTimer" to="." method="queue_free"]
|
||||||
|
@ -12,6 +12,8 @@ const CLEAN_THRESHOLD := 1400
|
|||||||
@onready var light_animation: AnimationPlayer = %LightAnimation
|
@onready var light_animation: AnimationPlayer = %LightAnimation
|
||||||
@onready var gunk_body: GunkBody = %GunkBody
|
@onready var gunk_body: GunkBody = %GunkBody
|
||||||
@onready var interactive: Interactive = %Interactive
|
@onready var interactive: Interactive = %Interactive
|
||||||
|
@onready var action_sfx: AudioStreamPlayer3D = %ActionSFX
|
||||||
|
@onready var action_delay: Timer = %ActionDelay
|
||||||
|
|
||||||
# XXX I must have been smoking crack when I wrote this logic. Why so complicated?
|
# XXX I must have been smoking crack when I wrote this logic. Why so complicated?
|
||||||
|
|
||||||
@ -62,7 +64,8 @@ func _on_clean() -> void:
|
|||||||
|
|
||||||
func _activate() -> void:
|
func _activate() -> void:
|
||||||
animation_player.play("activate")
|
animation_player.play("activate")
|
||||||
activated.emit()
|
action_sfx.play()
|
||||||
|
action_delay.start()
|
||||||
# Disable while animation is playing
|
# Disable while animation is playing
|
||||||
interactive.enabled = false
|
interactive.enabled = false
|
||||||
|
|
||||||
@ -75,3 +78,7 @@ func _animation_finished(anim_name: StringName) -> void:
|
|||||||
func _on_gunk_body_clear_total_updated(clear_total: float) -> void:
|
func _on_gunk_body_clear_total_updated(clear_total: float) -> void:
|
||||||
if not clean and clear_total >= CLEAN_THRESHOLD:
|
if not clean and clear_total >= CLEAN_THRESHOLD:
|
||||||
_on_clean()
|
_on_clean()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_action_delay_timeout() -> void:
|
||||||
|
activated.emit()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=29 format=4 uid="uid://b6eg8t04rkh0c"]
|
[gd_scene load_steps=30 format=4 uid="uid://b6eg8t04rkh0c"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bkmn5m47mt1gh" path="res://src/props/wall_switch/wall_switch.gd" id="2_kfvqd"]
|
[ext_resource type="Script" uid="uid://bkmn5m47mt1gh" path="res://src/props/wall_switch/wall_switch.gd" id="2_kfvqd"]
|
||||||
[ext_resource type="Texture2D" uid="uid://1wjcyqynwlb6" path="res://assets/props/wall_switch/wall_switch_C.png" id="2_vufqs"]
|
[ext_resource type="Texture2D" uid="uid://1wjcyqynwlb6" path="res://assets/props/wall_switch/wall_switch_C.png" id="2_vufqs"]
|
||||||
@ -11,6 +11,7 @@
|
|||||||
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="9_7shuc"]
|
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="9_7shuc"]
|
||||||
[ext_resource type="Script" uid="uid://deg5xd87cy8rg" path="res://src/props/interactive.gd" id="10_qw6jt"]
|
[ext_resource type="Script" uid="uid://deg5xd87cy8rg" path="res://src/props/interactive.gd" id="10_qw6jt"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bgayfws34lg7q" path="res://assets/sfx/click_electronic_04.wav" id="11_7shuc"]
|
[ext_resource type="AudioStream" uid="uid://bgayfws34lg7q" path="res://assets/sfx/click_electronic_04.wav" id="11_7shuc"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://cnje66wrijwxw" path="res://assets/sfx/wall_switch.wav" id="12_2qpft"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jtkkw"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jtkkw"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
@ -300,6 +301,19 @@ script = ExtResource("10_qw6jt")
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Interactive" index="0"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Interactive" index="0"]
|
||||||
shape = SubResource("BoxShape3D_6maql")
|
shape = SubResource("BoxShape3D_6maql")
|
||||||
|
|
||||||
|
[node name="ActionSFX" type="AudioStreamPlayer3D" parent="." index="5"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
stream = ExtResource("12_2qpft")
|
||||||
|
volume_db = -12.0
|
||||||
|
unit_size = 3.0
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="ActionDelay" type="Timer" parent="." index="6"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
wait_time = 2.8
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_animation_finished"]
|
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_animation_finished"]
|
||||||
[connection signal="clear_total_updated" from="GunkBody" to="." method="_on_gunk_body_clear_total_updated"]
|
[connection signal="clear_total_updated" from="GunkBody" to="." method="_on_gunk_body_clear_total_updated"]
|
||||||
[connection signal="activated" from="Interactive" to="." method="_activate"]
|
[connection signal="activated" from="Interactive" to="." method="_activate"]
|
||||||
|
[connection signal="timeout" from="ActionDelay" to="." method="_on_action_delay_timeout"]
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
[gd_scene load_steps=11 format=4 uid="uid://2yqi5u5eo025"]
|
[gd_scene load_steps=12 format=4 uid="uid://2yqi5u5eo025"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://07t7yhijru8f" path="res://src/world/gunk_node/grunk_nodule.gd" id="1_iyr82"]
|
[ext_resource type="Script" uid="uid://07t7yhijru8f" path="res://src/world/gunk_node/grunk_nodule.gd" id="1_iyr82"]
|
||||||
[ext_resource type="PackedScene" uid="uid://xlt78xc1tmkl" path="res://src/effects/grunk_splatter.tscn" id="2_m8r0a"]
|
[ext_resource type="PackedScene" uid="uid://xlt78xc1tmkl" path="res://src/effects/grunk_splatter.tscn" id="2_m8r0a"]
|
||||||
[ext_resource type="Material" uid="uid://bmab6i16v748m" path="res://assets/materials/grunk_jittery.material" id="3_eu6j6"]
|
[ext_resource type="Material" uid="uid://bmab6i16v748m" path="res://assets/materials/grunk_jittery.material" id="3_eu6j6"]
|
||||||
[ext_resource type="AudioStream" uid="uid://b288km80xeh0" path="res://assets/sfx/grunk/groan1.wav" id="4_ri4uq"]
|
[ext_resource type="AudioStream" uid="uid://bb560r2wvjfht" path="res://assets/sfx/grunk/greeble1.wav" id="4_7fplw"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bujyltdunajj4" path="res://assets/sfx/grunk/groan2.wav" id="5_7fplw"]
|
[ext_resource type="AudioStream" uid="uid://dunakapj3mb0h" path="res://assets/sfx/grunk/greeble2.wav" id="5_omayi"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bvtopyke5d17x" path="res://assets/sfx/grunk/groan3.wav" id="6_omayi"]
|
[ext_resource type="AudioStream" uid="uid://6bgyoaclmu8c" path="res://assets/sfx/grunk/greeble3.wav" id="6_yg8lg"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://7nj6bldnhos3" path="res://assets/sfx/grunk/greeble4.wav" id="7_4kci5"]
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_24j8i"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_24j8i"]
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
@ -44,10 +45,11 @@ data = PackedVector3Array(0.7236, -0.4472, 0.5257, 0, -1, 0, -0.2764, -0.4472, 0
|
|||||||
|
|
||||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_yg8lg"]
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_yg8lg"]
|
||||||
random_pitch = 1.1
|
random_pitch = 1.1
|
||||||
streams_count = 3
|
streams_count = 4
|
||||||
stream_0/stream = ExtResource("4_ri4uq")
|
stream_0/stream = ExtResource("4_7fplw")
|
||||||
stream_1/stream = ExtResource("5_7fplw")
|
stream_1/stream = ExtResource("5_omayi")
|
||||||
stream_2/stream = ExtResource("6_omayi")
|
stream_2/stream = ExtResource("6_yg8lg")
|
||||||
|
stream_3/stream = ExtResource("7_4kci5")
|
||||||
|
|
||||||
[node name="GrunkNodule" type="StaticBody3D"]
|
[node name="GrunkNodule" type="StaticBody3D"]
|
||||||
collision_layer = 5
|
collision_layer = 5
|
||||||
@ -66,7 +68,9 @@ shape = SubResource("ConcavePolygonShape3D_530fq")
|
|||||||
[node name="ChitterSFX" type="AudioStreamPlayer3D" parent="."]
|
[node name="ChitterSFX" type="AudioStreamPlayer3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
stream = SubResource("AudioStreamRandomizer_yg8lg")
|
stream = SubResource("AudioStreamRandomizer_yg8lg")
|
||||||
volume_db = -20.0
|
volume_db = -14.0
|
||||||
|
unit_size = 4.0
|
||||||
|
panning_strength = 3.0
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
[node name="ChitterTimer" type="Timer" parent="."]
|
[node name="ChitterTimer" type="Timer" parent="."]
|
||||||
|
@ -15,6 +15,7 @@ var _busy := false
|
|||||||
@onready var pulse_listener_timer: Timer = %PulseListenerTimer
|
@onready var pulse_listener_timer: Timer = %PulseListenerTimer
|
||||||
@onready var animation_player: AnimationPlayer = $FrameSkipper/AlarmMesh/AnimationPlayer
|
@onready var animation_player: AnimationPlayer = $FrameSkipper/AlarmMesh/AnimationPlayer
|
||||||
@onready var bud: MeshInstance3D = $FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud
|
@onready var bud: MeshInstance3D = $FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud
|
||||||
|
@onready var alarm_sfx: AudioStreamPlayer3D = %AlarmSFX
|
||||||
|
|
||||||
|
|
||||||
## Trigger this alarm.
|
## Trigger this alarm.
|
||||||
@ -25,6 +26,7 @@ func trigger() -> void:
|
|||||||
_busy = true
|
_busy = true
|
||||||
Game.manager.raise_alert(ALERT_DELTA)
|
Game.manager.raise_alert(ALERT_DELTA)
|
||||||
animation_player.play("trigger")
|
animation_player.play("trigger")
|
||||||
|
alarm_sfx.play()
|
||||||
|
|
||||||
|
|
||||||
## Pulse this alarm, resetting the pulse countdown until triggering.
|
## Pulse this alarm, resetting the pulse countdown until triggering.
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
[gd_scene load_steps=9 format=4 uid="uid://dgeg3kkogm71m"]
|
[gd_scene load_steps=10 format=4 uid="uid://dgeg3kkogm71m"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://djb5tabjcvwkt" path="res://src/world/mechanics/alarm/gunk_alarm.gd" id="1_piaxx"]
|
[ext_resource type="Script" uid="uid://djb5tabjcvwkt" path="res://src/world/mechanics/alarm/gunk_alarm.gd" id="1_piaxx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://60ks4l42qxia" path="res://assets/grunk/alarm/alarm.gltf" id="2_6vdvf"]
|
[ext_resource type="PackedScene" uid="uid://60ks4l42qxia" path="res://assets/grunk/alarm/alarm.gltf" id="2_6vdvf"]
|
||||||
[ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_gujky"]
|
[ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_gujky"]
|
||||||
[ext_resource type="Material" uid="uid://bmab6i16v748m" path="res://assets/materials/grunk_jittery.material" id="3_g4yos"]
|
[ext_resource type="Material" uid="uid://bmab6i16v748m" path="res://assets/materials/grunk_jittery.material" id="3_g4yos"]
|
||||||
[ext_resource type="Material" uid="uid://cdpvcruywnp4x" path="res://src/world/mechanics/alarm/alarm_core.material" id="4_c5y52"]
|
[ext_resource type="Material" uid="uid://cdpvcruywnp4x" path="res://src/world/mechanics/alarm/alarm_core.material" id="4_c5y52"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://ypk1d4adrcs" path="res://assets/sfx/grunk/alarm_screech.wav" id="6_6vdvf"]
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_c5y52"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_c5y52"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
@ -99,7 +100,7 @@ bones/28/rotation = Quaternion(0.362943, -7.93195e-08, 1.03952e-07, 0.931811)
|
|||||||
mesh = SubResource("ArrayMesh_c5y52")
|
mesh = SubResource("ArrayMesh_c5y52")
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="FrameSkipper/AlarmMesh" index="1"]
|
[node name="AnimationPlayer" parent="FrameSkipper/AlarmMesh" index="1"]
|
||||||
speed_scale = 4.0
|
speed_scale = 7.4
|
||||||
|
|
||||||
[node name="CollisionMesh" type="MeshInstance3D" parent="."]
|
[node name="CollisionMesh" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D(0.906308, 0, -0.422618, 0, 1, 0, 0.422618, 0, 0.906308, 0, 0.2, 0)
|
transform = Transform3D(0.906308, 0, -0.422618, 0, 1, 0, 0.422618, 0, 0.906308, 0, 0.2, 0)
|
||||||
@ -114,6 +115,11 @@ shape = SubResource("ConcavePolygonShape3D_bxx3m")
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="AlarmSFX" type="AudioStreamPlayer3D" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
stream = ExtResource("6_6vdvf")
|
||||||
|
pitch_scale = 1.1
|
||||||
|
|
||||||
[connection signal="timeout" from="PulseListenerTimer" to="." method="trigger"]
|
[connection signal="timeout" from="PulseListenerTimer" to="." method="trigger"]
|
||||||
|
|
||||||
[editable path="FrameSkipper/AlarmMesh"]
|
[editable path="FrameSkipper/AlarmMesh"]
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=10 format=4 uid="uid://d0j20q65wnqsr"]
|
[gd_scene load_steps=11 format=4 uid="uid://d0j20q65wnqsr"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://d2k75cyykkk0s" path="res://src/world/mechanics/heart/gunk_heart.gd" id="1_ftym0"]
|
[ext_resource type="Script" uid="uid://d2k75cyykkk0s" path="res://src/world/mechanics/heart/gunk_heart.gd" id="1_ftym0"]
|
||||||
[ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_xgyvt"]
|
[ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_xgyvt"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://0usonf3pjh3o" path="res://assets/sfx/grunk/heartbeat.wav" id="3_eu6st"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xgyvt"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xgyvt"]
|
||||||
albedo_color = Color(0, 0.0313726, 0.101961, 1)
|
albedo_color = Color(0, 0.0313726, 0.101961, 1)
|
||||||
@ -69,6 +70,18 @@ tracks/1/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.0]
|
"values": [0.0]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("HeartbeatSFX:playing")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_eu6st"]
|
[sub_resource type="Animation" id="Animation_eu6st"]
|
||||||
resource_name = "pulse"
|
resource_name = "pulse"
|
||||||
@ -97,6 +110,18 @@ tracks/1/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.0, 2.0, 0.0]
|
"values": [0.0, 2.0, 0.0]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("HeartbeatSFX:playing")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kv3oi"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kv3oi"]
|
||||||
_data = {
|
_data = {
|
||||||
@ -134,4 +159,9 @@ libraries = {
|
|||||||
}
|
}
|
||||||
speed_scale = 4.0
|
speed_scale = 4.0
|
||||||
|
|
||||||
|
[node name="HeartbeatSFX" type="AudioStreamPlayer3D" parent="."]
|
||||||
|
stream = ExtResource("3_eu6st")
|
||||||
|
unit_size = 0.4
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
[connection signal="timeout" from="PulseTimer" to="." method="pulse"]
|
[connection signal="timeout" from="PulseTimer" to="." method="pulse"]
|
||||||
|
@ -49,8 +49,8 @@
|
|||||||
- [ ] ui bonk
|
- [ ] ui bonk
|
||||||
- [ ] prop clear glitter
|
- [ ] prop clear glitter
|
||||||
- [x] computer bleep on reload
|
- [x] computer bleep on reload
|
||||||
- [ ] grunk tank deposit schlorp
|
- [x] grunk tank deposit schlorp
|
||||||
- [ ] player ship door
|
- [x] player ship door
|
||||||
- [x] metal footsteps
|
- [x] metal footsteps
|
||||||
- [x] plastic footsteps
|
- [x] plastic footsteps
|
||||||
- [x] grunk footsteps
|
- [x] grunk footsteps
|
||||||
@ -58,11 +58,13 @@
|
|||||||
- [x] spray noises
|
- [x] spray noises
|
||||||
- [ ] switch klaxon
|
- [ ] switch klaxon
|
||||||
- [x] switch OK
|
- [x] switch OK
|
||||||
- [ ] switch activation
|
- [x] switch activation
|
||||||
- [x] bulkhead opening
|
- [x] bulkhead opening
|
||||||
- [ ] grunk alarm shriek
|
- [x] grunk nodule splatter
|
||||||
- [ ] grunk relay chitter
|
- [x] grunk alarm shriek
|
||||||
- [ ] grunk chittering
|
- [ ] grunk relay pulse
|
||||||
|
- [x] grunk heartbeat
|
||||||
|
- [x] grunk chittering
|
||||||
- [ ] grunkbeast???
|
- [ ] grunkbeast???
|
||||||
- [x] grunk ambiance
|
- [x] grunk ambiance
|
||||||
- [x] spaceship ambiance
|
- [x] spaceship ambiance
|
||||||
|
@ -52,3 +52,49 @@
|
|||||||
- retrieved from https://freesound.org/people/Clagnar/sounds/547256/
|
- retrieved from https://freesound.org/people/Clagnar/sounds/547256/
|
||||||
- assets/sfx/computer_noise.wav
|
- assets/sfx/computer_noise.wav
|
||||||
- modified
|
- modified
|
||||||
|
- "door future open.wav"
|
||||||
|
- author: speakingmusic
|
||||||
|
- CC0
|
||||||
|
- retrieved from https://freesound.org/people/speakingmusic/sounds/386073/
|
||||||
|
- assets/sfx/space_door*.wav
|
||||||
|
- modified
|
||||||
|
- "Slime Creature Movement (large and messy)"
|
||||||
|
- author: SilverIllusionist
|
||||||
|
- CC BY 4.0
|
||||||
|
- retrieved from https://freesound.org/people/SilverIllusionist/sounds/671112/
|
||||||
|
- assets/sfx/grunk/pump.wav
|
||||||
|
- modified
|
||||||
|
- "Alien_Monster_Scream.wav"
|
||||||
|
- author: audione
|
||||||
|
- CC0
|
||||||
|
- retrieved from https://freesound.org/people/audione/sounds/161404/
|
||||||
|
- assets/sfx/grunk/alarm_screech.wav
|
||||||
|
- modified
|
||||||
|
- "Breaker-1.wav"
|
||||||
|
- author: Deathscyp
|
||||||
|
- CC0
|
||||||
|
- retrieved from https://freesound.org/people/Deathscyp/sounds/404049/
|
||||||
|
- assets/sfx/wall_switch.wav
|
||||||
|
- modified
|
||||||
|
- "Pulling a lever.mp3"
|
||||||
|
- author: A_Kuha
|
||||||
|
- CC0
|
||||||
|
- retrieved from https://freesound.org/people/A_Kuha/sounds/676412/
|
||||||
|
- assets/sfx/wall_switch.wav
|
||||||
|
- modified
|
||||||
|
- "pulse tone echo" pack
|
||||||
|
- author: martian
|
||||||
|
- CC0
|
||||||
|
- retrieved from https://freesound.org/people/martian/packs/1173/
|
||||||
|
- assets/sfx/grunk/greeble*.wav
|
||||||
|
- modified
|
||||||
|
- "HeartBeatNEW.aif"
|
||||||
|
- author: Woodingp
|
||||||
|
- CC0
|
||||||
|
- retrieved from https://freesound.org/people/Woodingp/sounds/116642/
|
||||||
|
- assets/sfx/grunk/heartbeat.wav
|
||||||
|
- "splat.wav"
|
||||||
|
- author: zolopher
|
||||||
|
- CC0
|
||||||
|
- retrieved from https://freesound.org/people/zolopher/sounds/44203/
|
||||||
|
- assets/sfx/grunk/splat*.wav
|
Loading…
x
Reference in New Issue
Block a user