diff --git a/Audio/frog_sound.wav b/Audio/frog_sound.wav new file mode 100644 index 0000000..75c2364 Binary files /dev/null and b/Audio/frog_sound.wav differ diff --git a/Audio/frog_sound.wav.import b/Audio/frog_sound.wav.import new file mode 100644 index 0000000..1897c89 --- /dev/null +++ b/Audio/frog_sound.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/frog_sound.wav-7b3422836f30107969b2eff5469093eb.sample" + +[deps] + +source_file="res://Audio/frog_sound.wav" +dest_files=[ "res://.import/frog_sound.wav-7b3422836f30107969b2eff5469093eb.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=false +compress/mode=0 diff --git a/Audio/punch_sound.wav b/Audio/punch_sound.wav new file mode 100644 index 0000000..cbc6b39 Binary files /dev/null and b/Audio/punch_sound.wav differ diff --git a/Audio/punch_sound.wav.import b/Audio/punch_sound.wav.import new file mode 100644 index 0000000..98e0f85 --- /dev/null +++ b/Audio/punch_sound.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/punch_sound.wav-0f9d6ab352205acf0b589f4a1f454cc5.sample" + +[deps] + +source_file="res://Audio/punch_sound.wav" +dest_files=[ "res://.import/punch_sound.wav-0f9d6ab352205acf0b589f4a1f454cc5.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=false +compress/mode=0 diff --git a/BodyParts/BodyBase/AttachmentPoint.gd b/BodyParts/BodyBase/AttachmentPoint.gd index 84c5802..3311ebe 100644 --- a/BodyParts/BodyBase/AttachmentPoint.gd +++ b/BodyParts/BodyBase/AttachmentPoint.gd @@ -16,7 +16,7 @@ func _unhandled_input(event): if event is InputEventKey: if event.pressed and event.scancode == key: if limb.get_child_count() > 0: - limb.get_child(0).action() + limb.get_child(0).action_wrapper() # Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/BodyParts/BodyPart.gd b/BodyParts/BodyPart.gd index abd0197..e5bf4f7 100644 --- a/BodyParts/BodyPart.gd +++ b/BodyParts/BodyPart.gd @@ -6,6 +6,7 @@ class_name BodyPart onready var base = get_parent().get_parent().get_parent() onready var physics_shape = get_node("PartCollider") +onready var action_sound = get_node("ActionSound") var setup_done = false @@ -34,6 +35,13 @@ func _process(delta: float) -> void: setup_done = true +func action_wrapper(): + if not action_sound.playing: + action_sound.play() + + action() + + # Do something with the base func action(): pass diff --git a/BodyParts/BodyPart.tscn b/BodyParts/BodyPart.tscn index ec58519..c0e7513 100644 --- a/BodyParts/BodyPart.tscn +++ b/BodyParts/BodyPart.tscn @@ -6,3 +6,6 @@ script = ExtResource( 1 ) [node name="PartCollider" type="CollisionShape" parent="."] + +[node name="ActionSound" type="AudioStreamPlayer3D" parent="."] +attenuation_model = 3 diff --git a/BodyParts/FrogLeg.tscn b/BodyParts/FrogLeg.tscn index c024d86..10193db 100644 --- a/BodyParts/FrogLeg.tscn +++ b/BodyParts/FrogLeg.tscn @@ -1,17 +1,18 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://BodyParts/PushingBodyPart.tscn" type="PackedScene" id=1] [ext_resource path="res://BodyParts/FrogLeg.gd" type="Script" id=2] [ext_resource path="res://3D Input/Fertige GLBs/Bein_Frosch.glb" type="PackedScene" id=3] [ext_resource path="res://3D Input/froschtexture.png" type="Texture" id=4] +[ext_resource path="res://Audio/frog_sound.wav" type="AudioStream" id=5] -[sub_resource type="BoxShape" id=2] +[sub_resource type="BoxShape" id=1] extents = Vector3( 0.649825, 2.07811, 1.64282 ) -[sub_resource type="SphereShape" id=3] +[sub_resource type="SphereShape" id=2] radius = 0.115004 -[sub_resource type="SpatialMaterial" id=1] +[sub_resource type="SpatialMaterial" id=3] albedo_texture = ExtResource( 4 ) roughness = 0.3 @@ -22,26 +23,23 @@ cost = 30.0 [node name="PartCollider" parent="." index="0"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.21377, -0.911304, -3.94992 ) -shape = SubResource( 2 ) +shape = SubResource( 1 ) [node name="TouchArea" parent="." index="1"] -transform = Transform( 2.2019, -0.624093, -2.57245, 1.35866, 3.13817, 0.40161, 2.27179, -1.27191, 2.25313, 0.307055, -2.49965, -4.98782 ) +transform = Transform( 2.20191, -0.624093, -2.57245, 1.26297, 3.18837, 0.307522, 2.32635, -1.14024, 2.26789, 0.307056, -2.38919, -4.91366 ) [node name="CollisionShape" type="CollisionShape" parent="TouchArea" index="0"] -shape = SubResource( 3 ) +shape = SubResource( 2 ) [node name="Mesh" parent="." index="2" instance=ExtResource( 3 )] transform = Transform( -1.13133e-08, 4.2222e-08, 1, 0.965926, 0.258819, 0, -0.258819, 0.965926, -4.37114e-08, 0.734499, -2.94707, -2.68774 ) -[node name="Skeleton" parent="Mesh/Armature" index="0"] -bones/3/bound_children = [ NodePath("BoneAttachment") ] - [node name="froschbein" parent="Mesh/Armature/Skeleton" index="0"] transform = Transform( 1, -1.49012e-08, 0, 0, 1, -5.96046e-08, 0, 2.98023e-08, 1, 0, 0, 0 ) -material/0 = SubResource( 1 ) +material/0 = SubResource( 3 ) [node name="BoneAttachment" type="BoneAttachment" parent="Mesh/Armature/Skeleton" index="1"] -transform = Transform( -0.207654, -0.97489, 0.0804374, -0.106263, -0.059262, -0.99257, 0.972414, -0.214658, -0.091288, 0.208948, 1.33566, -0.895561 ) +transform = Transform( -0.176573, -0.978358, 0.107882, -0.111435, -0.0890297, -0.989776, 0.97796, -0.186789, -0.0933024, 0.184057, 1.31383, -0.875628 ) bone_name = "bone_3" [node name="RemoteTransform" type="RemoteTransform" parent="Mesh/Armature/Skeleton/BoneAttachment" index="0"] @@ -50,4 +48,8 @@ remote_path = NodePath("../../../../../TouchArea") [node name="AnimationPlayer" parent="Mesh" index="2"] playback_speed = 2.0 +[node name="ActionSound" parent="." index="3"] +stream = ExtResource( 5 ) +unit_db = 0.0 + [editable path="Mesh"] diff --git a/BodyParts/GorillaArm.tscn b/BodyParts/GorillaArm.tscn index 731ca9a..cf5321a 100644 --- a/BodyParts/GorillaArm.tscn +++ b/BodyParts/GorillaArm.tscn @@ -1,17 +1,18 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://BodyParts/PushingBodyPart.tscn" type="PackedScene" id=1] [ext_resource path="res://BodyParts/GorillaArm.gd" type="Script" id=2] [ext_resource path="res://3D Input/Fertige GLBs/Arm_Gorilla.glb" type="PackedScene" id=3] [ext_resource path="res://3D Input/gorillaarmtexture.png" type="Texture" id=4] +[ext_resource path="res://Audio/punch_sound.wav" type="AudioStream" id=5] -[sub_resource type="BoxShape" id=2] +[sub_resource type="BoxShape" id=1] extents = Vector3( 1.21214, 1, 2.81197 ) -[sub_resource type="SphereShape" id=3] +[sub_resource type="SphereShape" id=2] radius = 0.175235 -[sub_resource type="SpatialMaterial" id=1] +[sub_resource type="SpatialMaterial" id=3] albedo_texture = ExtResource( 4 ) [node name="GorillaArm" instance=ExtResource( 1 )] @@ -22,22 +23,19 @@ damage = 15.0 [node name="PartCollider" parent="." index="0"] transform = Transform( 1, 0, 0, 0, 0.534515, -0.845159, 0, 0.845159, 0.534515, -0.0701199, -4.33779, -2.5341 ) -shape = SubResource( 2 ) +shape = SubResource( 1 ) [node name="TouchArea" parent="." index="1"] -transform = Transform( 0.00565114, -1.25635, 4.34486, 2.47947, -3.63292, -1.05371, 3.78264, 2.38321, 0.684203, -0.142621, -4.9139, -2.02559 ) +transform = Transform( 0.00565114, -1.25635, 4.34486, 2.47947, -3.63292, -1.05371, 3.78264, 2.38321, 0.684204, -0.142622, -4.9139, -2.02559 ) [node name="CollisionShape" type="CollisionShape" parent="TouchArea" index="0"] -shape = SubResource( 3 ) +shape = SubResource( 2 ) [node name="Mesh" parent="." index="2" instance=ExtResource( 3 )] transform = Transform( -1.74846e-08, 0.4, 0, -0.4, -1.74846e-08, 0, 0, -2.66454e-15, 0.4, -9.43966, -0.0575844, 0.086014 ) -[node name="Skeleton" parent="Mesh/Armature" index="0"] -bones/14/bound_children = [ NodePath("BoneAttachment") ] - [node name="Cube" parent="Mesh/Armature/Skeleton" index="0"] -material/0 = SubResource( 1 ) +material/0 = SubResource( 3 ) [node name="BoneAttachment" type="BoneAttachment" parent="Mesh/Armature/Skeleton" index="1"] transform = Transform( 0.000982332, 0.274505, -0.961585, -0.54821, 0.80436, 0.229062, 0.83634, 0.526926, 0.151277, -0.00334232, 1.11071, -0.466874 ) @@ -46,4 +44,7 @@ bone_name = "bone_6" [node name="RemoteTransform" type="RemoteTransform" parent="Mesh/Armature/Skeleton/BoneAttachment" index="0"] remote_path = NodePath("../../../../../TouchArea") +[node name="PushSound" parent="." index="4"] +stream = ExtResource( 5 ) + [editable path="Mesh"] diff --git a/BodyParts/HumanArm.tscn b/BodyParts/HumanArm.tscn index aee1d4a..997b781 100644 --- a/BodyParts/HumanArm.tscn +++ b/BodyParts/HumanArm.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://BodyParts/PushingBodyPart.tscn" type="PackedScene" id=1] [ext_resource path="res://BodyParts/HumanArm.gd" type="Script" id=2] +[ext_resource path="res://Audio/punch_sound.wav" type="AudioStream" id=3] [ext_resource path="res://3D Input/Fertige GLBs/Arm_Mensch.glb" type="PackedScene" id=4] [sub_resource type="BoxShape" id=1] @@ -29,9 +30,6 @@ shape = SubResource( 2 ) [node name="Mesh" parent="." index="2" instance=ExtResource( 4 )] transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, -0.357728, -8.51476, 0 ) -[node name="Skeleton" parent="Mesh/Armature" index="0"] -bones/7/bound_children = [ NodePath("BoneAttachment") ] - [node name="BoneAttachment" type="BoneAttachment" parent="Mesh/Armature/Skeleton" index="1"] transform = Transform( 0.0646207, -0.736312, -0.673549, -0.240426, 0.64359, -0.726627, 0.968514, 0.208894, -0.135439, 0.054756, 1.13784, 0.129916 ) bone_name = "bone_6" @@ -42,4 +40,10 @@ remote_path = NodePath("../../../../../TouchArea") [node name="AnimationPlayer" parent="Mesh" index="2"] playback_speed = 3.0 +[node name="ActionSound" parent="." index="3"] +unit_db = 0.0 + +[node name="PushSound" parent="." index="4"] +stream = ExtResource( 3 ) + [editable path="Mesh"] diff --git a/BodyParts/HumanLeg.tscn b/BodyParts/HumanLeg.tscn index cfe7bc2..79c5193 100644 --- a/BodyParts/HumanLeg.tscn +++ b/BodyParts/HumanLeg.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://BodyParts/PushingBodyPart.tscn" type="PackedScene" id=1] [ext_resource path="res://BodyParts/HumanLeg.gd" type="Script" id=2] [ext_resource path="res://3D Input/Fertige GLBs/Bein_Mensch.glb" type="PackedScene" id=3] [ext_resource path="res://3D Input/beinimage.png" type="Texture" id=4] +[ext_resource path="res://Audio/punch_sound.wav" type="AudioStream" id=5] [sub_resource type="BoxShape" id=1] extents = Vector3( 0.666, 2.41488, 1.555 ) @@ -36,9 +37,6 @@ transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, -2.84217e-14, -4.37555, -0.049 [node name="Armature" parent="Mesh" index="2"] transform = Transform( 1.97878, 0, 0, 0, -1.97636, 0.0978612, 8.47033e-22, -0.0978612, -1.97636, -1.33227e-14, 2.34477, 0.0119585 ) -[node name="Skeleton" parent="Mesh/Armature" index="0"] -bones/2/bound_children = [ NodePath("BoneAttachment") ] - [node name="Cube" parent="Mesh/Armature/Skeleton" index="0"] transform = Transform( 1, 0, -8.88178e-16, -1.42109e-14, 1, -2.23517e-08, 4.44089e-16, 2.23517e-08, 1, 0, 0, 0 ) material/0 = SubResource( 3 ) @@ -50,4 +48,10 @@ bone_name = "bone_2" [node name="RemoteTransform" type="RemoteTransform" parent="Mesh/Armature/Skeleton/BoneAttachment" index="0"] remote_path = NodePath("../../../../../TouchArea") +[node name="ActionSound" parent="." index="3"] +unit_db = 0.0 + +[node name="PushSound" parent="." index="4"] +stream = ExtResource( 5 ) + [editable path="Mesh"] diff --git a/BodyParts/PushingBodyPart.gd b/BodyParts/PushingBodyPart.gd index 32c6df6..2410d46 100644 --- a/BodyParts/PushingBodyPart.gd +++ b/BodyParts/PushingBodyPart.gd @@ -2,6 +2,7 @@ extends BodyPart class_name PushingBodyPart onready var touch_area = get_node("TouchArea") +onready var push_sound = get_node("PushSound") export(float) var damage = 10.0 @@ -19,10 +20,16 @@ func _is_animation_playing(): func _on_touch_area_entered(body): if body.name != base.name and _is_animation_playing(): if body.is_in_group("Terrain"): - push(body) + push_wrapper(body) elif body.is_in_group("Player"): InGameState.subtract_player_health(body.player_id, damage) +func push_wrapper(body): + push_sound.play(0.0) + + push(body) + + func push(body): pass diff --git a/BodyParts/PushingBodyPart.tscn b/BodyParts/PushingBodyPart.tscn index 9812a88..382beb2 100644 --- a/BodyParts/PushingBodyPart.tscn +++ b/BodyParts/PushingBodyPart.tscn @@ -3,8 +3,10 @@ [ext_resource path="res://BodyParts/BodyPart.tscn" type="PackedScene" id=1] [ext_resource path="res://BodyParts/PushingBodyPart.gd" type="Script" id=2] - -[node name="PushingBodyPart" index="0" instance=ExtResource( 1 )] +[node name="PushingBodyPart" instance=ExtResource( 1 )] script = ExtResource( 2 ) [node name="TouchArea" type="Area" parent="." index="1"] + +[node name="PushSound" type="AudioStreamPlayer3D" parent="." index="3"] +attenuation_model = 3 diff --git a/Ingame/Arena.tscn b/Ingame/Arena.tscn index c7207d8..3837ad2 100644 --- a/Ingame/Arena.tscn +++ b/Ingame/Arena.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://Ingame/Level/Torch.tscn" type="PackedScene" id=1] [ext_resource path="res://Ingame/Level/Ground.tscn" type="PackedScene" id=2] [ext_resource path="res://default_env.tres" type="Environment" id=3] +[ext_resource path="res://3D Input/Fertige GLBs/Kopf_Mensch.glb" type="PackedScene" id=4] [ext_resource path="res://Ingame/Level/Fence.tscn" type="PackedScene" id=5] [sub_resource type="Curve3D" id=1] @@ -29,13 +30,19 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -55.8087, 0, 76.6803 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 52.7943, 0, 76.6803 ) [node name="Torch6" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.293457, 0, 5.53332 ) +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 27.8085, 0, 49.812 ) + +[node name="Torch7" parent="." instance=ExtResource( 1 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -35.1849, 0, -15.9355 ) [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = ExtResource( 3 ) [node name="ground" parent="." instance=ExtResource( 2 )] +[node name="Kopf_Mensch" parent="." instance=ExtResource( 4 )] +transform = Transform( 3.58646, 0.324361, 1.74129, -1.09151, 3.50169, 1.59586, -1.39495, -1.90603, 3.22817, -62.8568, 12.0891, -17.4997 ) + [node name="Path" type="Path" parent="."] curve = SubResource( 1 )