mergy merge
This commit is contained in:
commit
791094c0a7
@ -20,6 +20,14 @@ enum BEHAVIOR {
|
||||
}
|
||||
var _curMood # current set behavior
|
||||
|
||||
var _voice_clips = {
|
||||
"go_to_work": preload("res://Resources/Audio/to-work.wav"),
|
||||
"go_home": preload("res://Resources/Audio/go-home.wav"),
|
||||
"take_pills": preload("res://Resources/Audio/take-pills.wav"),
|
||||
"do_job": preload("res://Resources/Audio/do-job.wav"),
|
||||
"stop": preload("res://Resources/Audio/Stop you violated the law.wav")
|
||||
}
|
||||
|
||||
var _visibility: Area
|
||||
var _interactArea: Area
|
||||
var _audioPlayer: AudioStreamPlayer3D
|
||||
@ -99,19 +107,19 @@ func _load_sound ():
|
||||
_audioPlayer.stream = null
|
||||
BEHAVIOR.GO_WORK:
|
||||
Logger.info("say go to work")
|
||||
_audioPlayer.stream = load("res://Resources/Audio/to-work.wav")
|
||||
_audioPlayer.stream = _voice_clips.go_to_work
|
||||
BEHAVIOR.GO_HOME:
|
||||
Logger.info("say go home")
|
||||
_audioPlayer.stream = load("res://Resources/Audio/go-home.wav")
|
||||
_audioPlayer.stream = _voice_clips.go_home
|
||||
BEHAVIOR.TAKE_PILLS:
|
||||
Logger.info("say take your pills")
|
||||
_audioPlayer.stream = load("res://Resources/Audio/take-pills.wav")
|
||||
_audioPlayer.stream = _voice_clips.take_pills
|
||||
BEHAVIOR.DO_JOB:
|
||||
Logger.info("say do your job")
|
||||
_audioPlayer.stream = load("res://Resources/Audio/do-job.wav")
|
||||
_audioPlayer.stream = _voice_clips.do_job
|
||||
BEHAVIOR.ANGRY:
|
||||
Logger.info("say stop!")
|
||||
_audioPlayer.stream = load("res://Resources/Audio/Stop you violated the law.wav")
|
||||
_audioPlayer.stream = _voice_clips.stop
|
||||
|
||||
|
||||
func _set_behavior ():
|
||||
|
File diff suppressed because one or more lines are too long
@ -50,7 +50,7 @@ surfaces/1 = {
|
||||
"vertex_count": 64
|
||||
}
|
||||
|
||||
[sub_resource type="ArrayMesh" id=8]
|
||||
[sub_resource type="ArrayMesh" id=3]
|
||||
resource_name = "Icosphere.001"
|
||||
surfaces/0 = {
|
||||
"aabb": AABB( -0.900067, -2.37322, -1.42373, 2.92229, 3.18117, 2.84745 ),
|
||||
@ -66,7 +66,7 @@ surfaces/0 = {
|
||||
"vertex_count": 324
|
||||
}
|
||||
|
||||
[sub_resource type="ArrayMesh" id=9]
|
||||
[sub_resource type="ArrayMesh" id=4]
|
||||
resource_name = "Icosphere"
|
||||
surfaces/0 = {
|
||||
"aabb": AABB( -0.485413, -0.180175, -0.426281, 0.274474, 0.315836, 0.852562 ),
|
||||
@ -95,9 +95,9 @@ surfaces/1 = {
|
||||
"vertex_count": 54
|
||||
}
|
||||
|
||||
[sub_resource type="CylinderShape" id=6]
|
||||
[sub_resource type="CylinderShape" id=5]
|
||||
|
||||
[sub_resource type="CylinderShape" id=7]
|
||||
[sub_resource type="CylinderShape" id=6]
|
||||
|
||||
[node name="Worker" type="KinematicBody"]
|
||||
script = ExtResource( 1 )
|
||||
@ -105,7 +105,7 @@ script = ExtResource( 1 )
|
||||
[node name="Meshes" type="Spatial" parent="."]
|
||||
|
||||
[node name="True" type="Spatial" parent="Meshes"]
|
||||
transform = Transform( -3.0598e-08, 0, 0.7, 0, 0.7, 0, -0.7, 0, -3.0598e-08, 0, 0, 0 )
|
||||
transform = Transform( -2.18557e-08, 0, 0.5, 0, 0.5, 0, -0.5, 0, -2.18557e-08, 0, 0, 0 )
|
||||
|
||||
[node name="Icosphere001" type="MeshInstance" parent="Meshes/True"]
|
||||
transform = Transform( 0.977618, 0.210386, 2.82673e-08, -0.210386, 0.977618, -3.00718e-09, -2.82673e-08, -3.00718e-09, 1, 0.49744, 2.39071, -8.46234e-09 )
|
||||
@ -121,25 +121,25 @@ material/0 = null
|
||||
material/1 = null
|
||||
|
||||
[node name="Masked" type="Spatial" parent="Meshes"]
|
||||
transform = Transform( -3.0598e-08, 0, 0.7, 0, 0.7, 0, -0.7, 0, -3.0598e-08, 0, 0, 0 )
|
||||
transform = Transform( -2.18557e-08, 0, 0.5, 0, 0.5, 0, -0.5, 0, -2.18557e-08, 0, 0, 0 )
|
||||
|
||||
[node name="Icosphere001" type="MeshInstance" parent="Meshes/Masked"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.4537, 0 )
|
||||
mesh = SubResource( 8 )
|
||||
mesh = SubResource( 3 )
|
||||
material/0 = null
|
||||
|
||||
[node name="Icosphere" type="MeshInstance" parent="Meshes/Masked"]
|
||||
transform = Transform( -2.25, 0, -7.33143e-07, 0, 2.25, 0, 7.33143e-07, 0, -2.25, 0, 4.0631, 0 )
|
||||
mesh = SubResource( 9 )
|
||||
mesh = SubResource( 4 )
|
||||
material/0 = null
|
||||
material/1 = null
|
||||
|
||||
[node name="Collider" type="CollisionShape" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||
shape = SubResource( 6 )
|
||||
shape = SubResource( 5 )
|
||||
|
||||
[node name="InteractArea" type="Area" parent="."]
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="InteractArea"]
|
||||
transform = Transform( 1.2, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 1, 0 )
|
||||
shape = SubResource( 7 )
|
||||
shape = SubResource( 6 )
|
||||
|
54
Global/PillAudioHandler.gd
Normal file
54
Global/PillAudioHandler.gd
Normal file
@ -0,0 +1,54 @@
|
||||
extends Node
|
||||
|
||||
|
||||
export(float) var true_begin_threshold = 0.75
|
||||
export(float) var masked_begin_threshold = 0.4
|
||||
export(float) var max_volume = 0.15
|
||||
export(float) var min_pitch_scale = 0.9 # The pitch won't go down lower than this when the player is sober
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
_update_volumes()
|
||||
|
||||
set_master_db(linear2db(max_volume))
|
||||
|
||||
|
||||
func set_masked_db(db_val):
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Masked"), db_val)
|
||||
|
||||
|
||||
func set_true_db(db_val):
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("True"), db_val)
|
||||
|
||||
|
||||
func set_master_db(db_val):
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), db_val)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
_update_volumes()
|
||||
|
||||
|
||||
func _update_volumes():
|
||||
var level = Pills.get_normalized_level()
|
||||
|
||||
if level < masked_begin_threshold:
|
||||
set_masked_db(linear2db(0.0))
|
||||
set_true_db(linear2db(max_volume))
|
||||
elif level < true_begin_threshold:
|
||||
# Get the distance between the masked and true thresholds as a value between 0 and 1
|
||||
var normalized_distance_within_thresholds = inverse_lerp(masked_begin_threshold, true_begin_threshold, level)
|
||||
|
||||
# Scale volumes accordingly
|
||||
set_masked_db(linear2db(normalized_distance_within_thresholds * max_volume))
|
||||
set_true_db(linear2db((1.0 - normalized_distance_within_thresholds) * max_volume))
|
||||
else:
|
||||
set_masked_db(linear2db(max_volume))
|
||||
set_true_db(linear2db(0.0))
|
||||
|
||||
# Decrease the pitch when the player is sober
|
||||
var pitch = lerp(min_pitch_scale, 1.0, level)
|
||||
|
||||
AudioServer.get_bus_effect(AudioServer.get_bus_index("Master"), 0).pitch_scale = pitch
|
6
Global/PillAudioHandler.tscn
Normal file
6
Global/PillAudioHandler.tscn
Normal file
@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Global/PillAudioHandler.gd" type="Script" id=1]
|
||||
|
||||
[node name="PillAudioHandler" type="Node"]
|
||||
script = ExtResource( 1 )
|
102
Level/World.tscn
102
Level/World.tscn
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=23 format=2]
|
||||
[gd_scene load_steps=25 format=2]
|
||||
|
||||
[ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://Characters/Meldewesen/Meldewesen.tscn" type="PackedScene" id=2]
|
||||
@ -13,7 +13,9 @@
|
||||
[ext_resource path="res://Level/Buildings/DoorWall.tscn" type="PackedScene" id=11]
|
||||
[ext_resource path="res://Util/NodeGroupNotifier.tscn" type="PackedScene" id=12]
|
||||
[ext_resource path="res://Characters/Util/PathNavigatorForNPC.tscn" type="PackedScene" id=13]
|
||||
[ext_resource path="res://Util/AmbiencePlayer.tscn" type="PackedScene" id=14]
|
||||
[ext_resource path="res://Resources/Audio/Ambience/melody.wav" type="AudioStream" id=14]
|
||||
[ext_resource path="res://Resources/Audio/Ambience/true_ambience.wav" type="AudioStream" id=15]
|
||||
[ext_resource path="res://Resources/Audio/Ambience/masked_ambience.wav" type="AudioStream" id=16]
|
||||
|
||||
[sub_resource type="BoxShape" id=1]
|
||||
|
||||
@ -54,29 +56,29 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, 7 )
|
||||
[node name="Enemies" type="Spatial" parent="."]
|
||||
|
||||
[node name="Meldewesen2" parent="Enemies" instance=ExtResource( 2 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -3.88156, 0, 14.5424 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -3.88156, 0, 14.5424 )
|
||||
_visibility_path = NodePath("../../Enemies/Meldewesen2/Visibility")
|
||||
|
||||
[node name="Meldewesen3" parent="Enemies" instance=ExtResource( 2 )]
|
||||
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 58.4396, 0, -200.412 )
|
||||
transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 58.4396, 0, -200.412 )
|
||||
_visibility_path = NodePath("../../Enemies/Meldewesen2/Visibility")
|
||||
|
||||
[node name="Meldewesen4" parent="Enemies" instance=ExtResource( 2 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13.0581, 0, -67.0506 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -13.0581, 0, -67.0506 )
|
||||
_visibility_path = NodePath("../../Enemies/Meldewesen2/Visibility")
|
||||
|
||||
[node name="Collectibles" type="Spatial" parent="."]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 15.0831, 1.63203, 13.0809 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 15.0831, 1.63203, 13.0809 )
|
||||
|
||||
[node name="Keycard" parent="Collectibles" groups=[
|
||||
"Collectibles",
|
||||
] instance=ExtResource( 2 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 203.861, -0.63203, 110.591 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 203.861, -0.63203, 110.591 )
|
||||
|
||||
[node name="Key" parent="Collectibles" groups=[
|
||||
"Collectibles",
|
||||
] instance=ExtResource( 3 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75.0183, 0, -2.86102e-006 )
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75.0183, 0, -2.86102e-06 )
|
||||
|
||||
[node name="Area" type="Area" parent="Collectibles/Key" groups=[
|
||||
"Forbidden",
|
||||
@ -122,7 +124,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.127018, 0, 0.00287628 )
|
||||
curve = SubResource( 2 )
|
||||
|
||||
[node name="PathFollow" type="PathFollow" parent="WorkerSpawner/Path"]
|
||||
transform = Transform( 0.622984, 0.00149738, 0.782233, -0.000182352, 0.999999, -0.00176901, -0.782234, 0.000959413, 0.622983, -15.7672, 0.284373, -190.888 )
|
||||
transform = Transform( 0.407644, 0.00453845, -0.913129, -0.000999918, 0.99999, 0.00452375, 0.91314, -0.000931021, 0.407643, -15.7672, 0.284373, -190.888 )
|
||||
offset = 380.29
|
||||
|
||||
[node name="Worker" parent="WorkerSpawner/Path/PathFollow" instance=ExtResource( 5 )]
|
||||
@ -130,13 +132,13 @@ offset = 380.29
|
||||
[node name="Touchables" type="Spatial" parent="."]
|
||||
|
||||
[node name="Lever" parent="Touchables" instance=ExtResource( 6 )]
|
||||
transform = Transform( 1.19249e-008, 0, -1, 0, 1, 0, 1, 0, 1.19249e-008, 5.94476, 2, 11.731 )
|
||||
transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 5.94476, 2, 11.731 )
|
||||
|
||||
[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."]
|
||||
navmesh = SubResource( 3 )
|
||||
|
||||
[node name="PlayerHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 14 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, 14 )
|
||||
|
||||
[node name="MeldewesenHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )]
|
||||
transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 1, 14.9197, 0, 89.983 )
|
||||
@ -145,46 +147,46 @@ transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 1, 14.9197, 0, 89.983 )
|
||||
editor/display_folded = true
|
||||
|
||||
[node name="BuildingBlock" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -13 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -13 )
|
||||
|
||||
[node name="BuildingBlock2" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -13 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, -13 )
|
||||
|
||||
[node name="BuildingBlock11" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 41 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, 41 )
|
||||
|
||||
[node name="BuildingBlock12" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 14 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, 14 )
|
||||
|
||||
[node name="BuildingBlock13" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 41 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, 41 )
|
||||
|
||||
[node name="BuildingBlock14" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 47 )
|
||||
|
||||
[node name="BuildingBlock15" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 95 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 41, 0, 95 )
|
||||
|
||||
[node name="BuildingBlock21" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 68 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 41, 0, 68 )
|
||||
|
||||
[node name="BuildingBlock16" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 68 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -13, 0, 68 )
|
||||
|
||||
[node name="BuildingBlock20" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 95 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -13, 0, 95 )
|
||||
|
||||
[node name="BuildingBlock17" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 8, 0, 116 )
|
||||
transform = Transform( -1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 8, 0, 116 )
|
||||
|
||||
[node name="BuildingBlock18" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 35, 0, 116 )
|
||||
transform = Transform( -1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 35, 0, 116 )
|
||||
|
||||
[node name="BuildingBlock3" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -40 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, -40 )
|
||||
|
||||
[node name="BuildingBlock4" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -40 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -40 )
|
||||
|
||||
[node name="BuildingBlock5" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -88 )
|
||||
@ -193,10 +195,10 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -88 )
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -46 )
|
||||
|
||||
[node name="BuildingBlock9" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -94 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -94 )
|
||||
|
||||
[node name="BuildingBlock24" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -121 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -121 )
|
||||
|
||||
[node name="BuildingBlock25" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -127 )
|
||||
@ -223,10 +225,10 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 0, -211 )
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 73, 0, -211 )
|
||||
|
||||
[node name="BuildingBlock53" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -201.078 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -201.078 )
|
||||
|
||||
[node name="BuildingBlock54" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 0.6, 0, -1, 0, -4.37114e-008, 79, 4.83048, -181.541 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 0.6, 0, -1, 0, -4.37114e-08, 79, 4.83048, -181.541 )
|
||||
|
||||
[node name="BuildingBlock43" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 46, 0, -211 )
|
||||
@ -241,19 +243,19 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, -211 )
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 0, -211 )
|
||||
|
||||
[node name="BuildingBlock47" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -56, 0, -217 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -56, 0, -217 )
|
||||
|
||||
[node name="BuildingBlock48" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -217 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -71, 0, -217 )
|
||||
|
||||
[node name="BuildingBlock50" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -244 )
|
||||
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -71, 0, -244 )
|
||||
|
||||
[node name="BuildingBlock51" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, -92, 0, -250 )
|
||||
transform = Transform( -1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -92, 0, -250 )
|
||||
|
||||
[node name="BuildingBlock52" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1.31134e-007, 0, 1, 0, 1, 0, -1, 0, 1.31134e-007, -113, 0, -256 )
|
||||
transform = Transform( 1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -113, 0, -256 )
|
||||
|
||||
[node name="BuildingBlock32" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -169 )
|
||||
@ -265,7 +267,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -19, 0, -169 )
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -169 )
|
||||
|
||||
[node name="BuildingBlock35" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -67, 0, -163 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -67, 0, -163 )
|
||||
|
||||
[node name="BuildingBlock36" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -76, 0, -142 )
|
||||
@ -274,24 +276,24 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -76, 0, -142 )
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -103, 0, -142 )
|
||||
|
||||
[node name="BuildingBlock27" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 41, 0, -148 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 41, 0, -148 )
|
||||
|
||||
[node name="BuildingBlock28" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -109 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -109 )
|
||||
|
||||
[node name="BuildingBlock29" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -136 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -136 )
|
||||
|
||||
[node name="BuildingBlock30" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -163 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -163 )
|
||||
|
||||
[node name="BuildingBlock39" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 133, 0, -190 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 133, 0, -190 )
|
||||
|
||||
[node name="MeldewesenHome" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 9 )]
|
||||
|
||||
[node name="BuildingBlock6" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -67 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, -67 )
|
||||
|
||||
[node name="BuildingBlock7" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -88 )
|
||||
@ -322,7 +324,7 @@ collision_mask = 7
|
||||
shape = SubResource( 5 )
|
||||
|
||||
[node name="DoorWall" parent="NavigationMeshInstance/Ground" instance=ExtResource( 11 )]
|
||||
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 156.062, 0, -76.2607 )
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 156.062, 0, -76.2607 )
|
||||
|
||||
[node name="Environment" type="Spatial" parent="."]
|
||||
|
||||
@ -330,7 +332,7 @@ transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 156.0
|
||||
environment = SubResource( 7 )
|
||||
|
||||
[node name="DirectionalLight" type="DirectionalLight" parent="Environment"]
|
||||
transform = Transform( 0.642788, -0.262003, -0.719846, -8.21505e-008, -0.939693, 0.34202, -0.766044, -0.219847, -0.604023, 0, 7, 0 )
|
||||
transform = Transform( 0.642788, -0.262003, -0.719846, -8.21505e-08, -0.939693, 0.34202, -0.766044, -0.219847, -0.604023, 0, 7, 0 )
|
||||
layers = 3
|
||||
shadow_enabled = true
|
||||
|
||||
@ -344,8 +346,16 @@ body_nodepath = NodePath("Meldewesen")
|
||||
|
||||
[node name="Meldewesen" parent="PathNavigatorForNPC" instance=ExtResource( 2 )]
|
||||
|
||||
[node name="AmbiencePlayer" parent="." instance=ExtResource( 14 )]
|
||||
[node name="Melody" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 14 )
|
||||
autoplay = true
|
||||
|
||||
[node name="AmbiencePlayer" parent="." instance=ExtResource( 12 )]
|
||||
group_name = ""
|
||||
node_to_send = NodePath("")
|
||||
[node name="TrueAmbience" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 15 )
|
||||
autoplay = true
|
||||
bus = "True"
|
||||
|
||||
[node name="MaskedAmbience" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 16 )
|
||||
autoplay = true
|
||||
bus = "Masked"
|
||||
|
BIN
Resources/Audio/FactoryMusic/active.wav
Normal file
BIN
Resources/Audio/FactoryMusic/active.wav
Normal file
Binary file not shown.
21
Resources/Audio/FactoryMusic/active.wav.import
Normal file
21
Resources/Audio/FactoryMusic/active.wav.import
Normal file
@ -0,0 +1,21 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/active.wav-4ab4c359a21097fa24ca1d75209d89dc.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Resources/Audio/FactoryMusic/active.wav"
|
||||
dest_files=[ "res://.import/active.wav-4ab4c359a21097fa24ca1d75209d89dc.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
compress/mode=0
|
BIN
Resources/Audio/FactoryMusic/inactive.wav
Normal file
BIN
Resources/Audio/FactoryMusic/inactive.wav
Normal file
Binary file not shown.
21
Resources/Audio/FactoryMusic/inactive.wav.import
Normal file
21
Resources/Audio/FactoryMusic/inactive.wav.import
Normal file
@ -0,0 +1,21 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/inactive.wav-e8c09df3ca5d758dc631b5c90a37fd8c.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Resources/Audio/FactoryMusic/inactive.wav"
|
||||
dest_files=[ "res://.import/inactive.wav-e8c09df3ca5d758dc631b5c90a37fd8c.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
compress/mode=0
|
@ -1,58 +0,0 @@
|
||||
extends Node
|
||||
|
||||
|
||||
export(float) var true_ambience_begin_threshold = 0.75
|
||||
export(float) var masked_ambience_begin_threshold = 0.4
|
||||
export(float) var max_volume = 0.15
|
||||
export(float) var min_pitch_scale = 0.97 # The pitch won't go down lower than this when the player is sober
|
||||
export(float) var sync_threshold = 0.1 # If audio streams are further apart than this (in seconds), they are re-synced
|
||||
|
||||
onready var melody = get_node("Melody") as AudioStreamPlayer
|
||||
onready var true_ambience = get_node("TrueAmbience") as AudioStreamPlayer
|
||||
onready var masked_ambience = get_node("MaskedAmbience") as AudioStreamPlayer
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
_update_volumes()
|
||||
melody.volume_db = linear2db(max_volume) # This one is constant, so it's only set once here
|
||||
|
||||
melody.playing = true
|
||||
true_ambience.playing = true
|
||||
masked_ambience.playing = true
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
_update_volumes()
|
||||
|
||||
|
||||
func _update_volumes():
|
||||
var level = Pills.get_normalized_level()
|
||||
|
||||
if level < masked_ambience_begin_threshold:
|
||||
masked_ambience.volume_db = linear2db(0.0)
|
||||
true_ambience.volume_db = linear2db(max_volume)
|
||||
elif level < true_ambience_begin_threshold:
|
||||
# Get the distance between the masked and true thresholds as a value between 0 and 1
|
||||
var normalized_distance_within_thresholds = inverse_lerp(masked_ambience_begin_threshold, true_ambience_begin_threshold, level)
|
||||
|
||||
# Scale volumes accordingly
|
||||
masked_ambience.volume_db = linear2db(normalized_distance_within_thresholds * max_volume)
|
||||
true_ambience.volume_db = linear2db((1.0 - normalized_distance_within_thresholds) * max_volume)
|
||||
else:
|
||||
masked_ambience.volume_db = linear2db(max_volume)
|
||||
true_ambience.volume_db = linear2db(0.0)
|
||||
|
||||
# Decrease the pitch when the player is sober
|
||||
var pitch = lerp(min_pitch_scale, 1.0, level)
|
||||
|
||||
melody.pitch_scale = pitch
|
||||
masked_ambience.pitch_scale = pitch
|
||||
true_ambience.pitch_scale = pitch
|
||||
|
||||
# Make sure that everything stays in sync - the melody is the leader
|
||||
if abs(true_ambience.get_playback_position() - melody.get_playback_position()) > sync_threshold:
|
||||
true_ambience.seek(melody.get_playback_position())
|
||||
|
||||
if abs(masked_ambience.get_playback_position() - melody.get_playback_position()) > sync_threshold:
|
||||
masked_ambience.seek(melody.get_playback_position())
|
@ -1,18 +0,0 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://Util/AmbiencePlayer.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Resources/Audio/Ambience/melody.wav" type="AudioStream" id=2]
|
||||
[ext_resource path="res://Resources/Audio/Ambience/true_ambience.wav" type="AudioStream" id=3]
|
||||
[ext_resource path="res://Resources/Audio/Ambience/masked_ambience.wav" type="AudioStream" id=4]
|
||||
|
||||
[node name="AmbiencePlayer" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Melody" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 2 )
|
||||
|
||||
[node name="TrueAmbience" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 3 )
|
||||
|
||||
[node name="MaskedAmbience" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 4 )
|
20
default_bus_layout.tres
Normal file
20
default_bus_layout.tres
Normal file
@ -0,0 +1,20 @@
|
||||
[gd_resource type="AudioBusLayout" load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="AudioEffectPitchShift" id=1]
|
||||
resource_name = "PitchShift"
|
||||
|
||||
[resource]
|
||||
bus/0/effect/0/effect = SubResource( 1 )
|
||||
bus/0/effect/0/enabled = true
|
||||
bus/1/name = "Masked"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = "Master"
|
||||
bus/2/name = "True"
|
||||
bus/2/solo = false
|
||||
bus/2/mute = false
|
||||
bus/2/bypass_fx = false
|
||||
bus/2/volume_db = 0.0
|
||||
bus/2/send = "Master"
|
@ -71,6 +71,7 @@ config/icon="res://icon.png"
|
||||
Logger="*res://Util/gs-logger-3.1-R3/gs_logger/logger.gd"
|
||||
Pills="*res://Global/Pills.gd"
|
||||
Daytime="*res://Global/Daytime.gd"
|
||||
PillAudioHandler="*res://Global/PillAudioHandler.tscn"
|
||||
|
||||
[display]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user