diff options
Diffstat (limited to 'client/player')
23 files changed, 324 insertions, 5 deletions
diff --git a/client/player/angry.svg.import b/client/player/angry.svg.import new file mode 100644 index 00000000..4f1afd25 --- /dev/null +++ b/client/player/angry.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dk36vvlrg0t15" +path="res://.godot/imported/angry.svg-20686ccd97ba20a3d660573cae3108bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://player/angry.svg" +dest_files=["res://.godot/imported/angry.svg-20686ccd97ba20a3d660573cae3108bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/client/player/angry.tscn b/client/player/angry.tscn new file mode 100644 index 00000000..56fa4d05 --- /dev/null +++ b/client/player/angry.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=6 format=3 uid="uid://cvty1rwt52anq"] + +[ext_resource type="Texture2D" uid="uid://unjbxplj845n" path="res://player/angry.webp" id="1_5op6v"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ysmnk"] +transparency = 1 +shading_mode = 0 +vertex_color_use_as_albedo = true +albedo_texture = ExtResource("1_5op6v") +billboard_mode = 2 +billboard_keep_scale = true + +[sub_resource type="QuadMesh" id="QuadMesh_5nim7"] +material = SubResource("StandardMaterial3D_ysmnk") + +[sub_resource type="Curve" id="Curve_0rju1"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.51927, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="Gradient" id="Gradient_lmymu"] +offsets = PackedFloat32Array(0, 0.711828, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) + +[node name="Angry" type="CPUParticles3D"] +emitting = false +amount = 5 +lifetime = 2.0 +one_shot = true +explosiveness = 1.0 +mesh = SubResource("QuadMesh_5nim7") +direction = Vector3(0, 1, 0) +spread = 30.0 +gravity = Vector3(0, 0, 0) +initial_velocity_min = 1.0 +initial_velocity_max = 1.5 +scale_amount_curve = SubResource("Curve_0rju1") +color_ramp = SubResource("Gradient_lmymu") diff --git a/client/player/angry.webp b/client/player/angry.webp Binary files differnew file mode 100644 index 00000000..866ba92c --- /dev/null +++ b/client/player/angry.webp diff --git a/client/player/angry.webp.import b/client/player/angry.webp.import new file mode 100644 index 00000000..989ff542 --- /dev/null +++ b/client/player/angry.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://unjbxplj845n" +path.s3tc="res://.godot/imported/angry.webp-0f7d45c1cfc32a18650521cc19587d16.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://player/angry.webp" +dest_files=["res://.godot/imported/angry.webp-0f7d45c1cfc32a18650521cc19587d16.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/client/player/character/character.gd b/client/player/character/character.gd index 36ff1323..11db638f 100644 --- a/client/player/character/character.gd +++ b/client/player/character/character.gd @@ -39,6 +39,9 @@ var current_animation := "idle" "E. Parsley": $Main/Head/Hair3 } +@onready var step_sounds: PlayRandom = $Steps +@onready var boost_sounds: PlayRandom = $Boosts + func _ready(): play_animation("idle") @@ -61,7 +64,11 @@ func _process(delta): next_animation = "idle" walking_particles.emitting = walking - boosting_particles.emitting = boosting and walking and not was_boosting + if boosting and walking and not was_boosting: + boosting_particles.emitting = true + boost_sounds.play_random() + else: + boosting_particles.emitting = false was_boosting = boosting and walking if current_animation != next_animation: @@ -81,6 +88,11 @@ func select_hairstyle(id: int): func play_animation(name_: String): current_animation = name_ hand_animations.play(name_) + + if name_ == "walk": + step_sounds.start_autoplay() + else: + step_sounds.stop_autoplay() func _on_hand_animations_animation_finished(_name): hand_animations.play(current_animation) diff --git a/client/player/character/character.tscn b/client/player/character/character.tscn index e4a2af66..f09ec2cf 100644 --- a/client/player/character/character.tscn +++ b/client/player/character/character.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=3 uid="uid://b3hhir2fvnunu"] +[gd_scene load_steps=24 format=3 uid="uid://b3hhir2fvnunu"] [ext_resource type="Script" path="res://player/character/character.gd" id="1_12lbh"] [ext_resource type="ArrayMesh" uid="uid://bnmm01yjwultj" path="res://player/character/main.res" id="2_lxdbd"] @@ -9,6 +9,12 @@ [ext_resource type="ArrayMesh" uid="uid://dx7jswwaesok4" path="res://player/character/hair_2.res" id="7_0551e"] [ext_resource type="ArrayMesh" uid="uid://c2qnwt44x8ujl" path="res://player/character/tie.res" id="7_knv6q"] [ext_resource type="ArrayMesh" uid="uid://c5qsthvtf3cta" path="res://player/character/hair_3.res" id="8_2bc5u"] +[ext_resource type="AudioStream" uid="uid://bxiorkb4xb8t1" path="res://player/sounds/step1.ogg" id="10_qpd6x"] +[ext_resource type="AudioStream" uid="uid://l2fd8u7rq3cq" path="res://player/sounds/step2.ogg" id="11_2dmo8"] +[ext_resource type="AudioStream" uid="uid://d353uwy83crca" path="res://player/sounds/step3.ogg" id="12_bj5ue"] +[ext_resource type="Script" path="res://audio/play_random.gd" id="14_3rb6x"] +[ext_resource type="AudioStream" uid="uid://1jsqpnk3igj3" path="res://player/sounds/woosh1.ogg" id="14_ikcec"] +[ext_resource type="AudioStream" uid="uid://cwme7eatip0jc" path="res://player/sounds/woosh2.ogg" id="15_iv4wu"] [sub_resource type="Animation" id="Animation_tdhvg"] length = 0.001 @@ -655,4 +661,29 @@ scale_amount_min = 0.5 scale_amount_max = 0.75 scale_amount_curve = SubResource("Curve_7ml8g") +[node name="Steps" type="Node3D" parent="."] +script = ExtResource("14_3rb6x") +volume_db = -12.0 +enable_attenuations = false + +[node name="Step1" type="AudioStreamPlayer3D" parent="Steps"] +stream = ExtResource("10_qpd6x") + +[node name="Step2" type="AudioStreamPlayer3D" parent="Steps"] +stream = ExtResource("11_2dmo8") + +[node name="Step3" type="AudioStreamPlayer3D" parent="Steps"] +stream = ExtResource("12_bj5ue") + +[node name="Boosts" type="Node3D" parent="."] +script = ExtResource("14_3rb6x") +volume_db = -12.0 +enable_attenuations = false + +[node name="Woosh1" type="AudioStreamPlayer3D" parent="Boosts"] +stream = ExtResource("14_ikcec") + +[node name="Woosh2" type="AudioStreamPlayer3D" parent="Boosts"] +stream = ExtResource("15_iv4wu") + [connection signal="animation_finished" from="HandAnimations" to="." method="_on_hand_animations_animation_finished"] diff --git a/client/player/effect.gd b/client/player/effect.gd index ae6a6756..8371d99d 100644 --- a/client/player/effect.gd +++ b/client/player/effect.gd @@ -1,5 +1,5 @@ # Undercooked - a game about cooking -# Copyright 2024 nokoe +# Copyright 2024 nokoe, tpart # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -17,13 +17,22 @@ class_name Effect extends Node3D @onready var success = $Success +@onready var failure = $Failure +@onready var angry_grunt: PlayRandom = $AngryGrunt +@onready var stars = $Stars +@onready var angry = $Angry + func set_effect(e: String): clear_effect() match e: "satisfied": - $Stars.emitting = true + stars.emitting = true success.play() + "angry": + angry.emitting = true + angry_grunt.play_random() + failure.play() _: push_warning("effect %s unknown" % e) diff --git a/client/player/effect.tscn b/client/player/effect.tscn index fec019c2..748aa20e 100644 --- a/client/player/effect.tscn +++ b/client/player/effect.tscn @@ -1,8 +1,13 @@ -[gd_scene load_steps=4 format=3 uid="uid://dn2ne30t81ame"] +[gd_scene load_steps=9 format=3 uid="uid://dn2ne30t81ame"] [ext_resource type="Script" path="res://player/effect.gd" id="1_aqsk6"] [ext_resource type="PackedScene" uid="uid://yaed1vnhd0aa" path="res://player/stars.tscn" id="2_shb5l"] [ext_resource type="AudioStream" uid="uid://camy77x26mmpv" path="res://menu/sounds/success.ogg" id="3_favyn"] +[ext_resource type="AudioStream" uid="uid://cv4isy6po6pqd" path="res://menu/sounds/failure.ogg" id="4_j38qf"] +[ext_resource type="PackedScene" uid="uid://cvty1rwt52anq" path="res://player/angry.tscn" id="4_uxxex"] +[ext_resource type="Script" path="res://audio/play_random.gd" id="5_t2upj"] +[ext_resource type="AudioStream" uid="uid://c3gatgrsb0npf" path="res://player/sounds/angry1.ogg" id="6_ou7uy"] +[ext_resource type="AudioStream" uid="uid://cty282m6ckt62" path="res://player/sounds/angry2.ogg" id="7_r21iy"] [node name="Effect" type="Node3D"] script = ExtResource("1_aqsk6") @@ -12,3 +17,21 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) [node name="Success" type="AudioStreamPlayer" parent="."] stream = ExtResource("3_favyn") + +[node name="Failure" type="AudioStreamPlayer" parent="."] +stream = ExtResource("4_j38qf") +volume_db = -8.0 + +[node name="Angry" parent="." instance=ExtResource("4_uxxex")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) + +[node name="AngryGrunt" type="Node3D" parent="."] +script = ExtResource("5_t2upj") +volume_db = -8.0 +enable_attenuations = false + +[node name="Angry1" type="AudioStreamPlayer3D" parent="AngryGrunt"] +stream = ExtResource("6_ou7uy") + +[node name="Angry2" type="AudioStreamPlayer3D" parent="AngryGrunt"] +stream = ExtResource("7_r21iy") diff --git a/client/player/player.gd b/client/player/player.gd index 33606bc4..1df80d94 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -91,10 +91,12 @@ func take_item(tile: Tile): if hand != null: push_error("already holding an item") var i = tile.take_item() + i.take() set_item(i) func put_item(tile: Tile): var i = remove_item() + i.put() tile.put_item(i) func _process(delta): diff --git a/client/player/sounds/angry1.ogg b/client/player/sounds/angry1.ogg Binary files differnew file mode 100644 index 00000000..9876f3da --- /dev/null +++ b/client/player/sounds/angry1.ogg diff --git a/client/player/sounds/angry1.ogg.import b/client/player/sounds/angry1.ogg.import new file mode 100644 index 00000000..1fbbfb2e --- /dev/null +++ b/client/player/sounds/angry1.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c3gatgrsb0npf" +path="res://.godot/imported/angry1.ogg-89dfe7562e07a5f538e60fe56615fd53.oggvorbisstr" + +[deps] + +source_file="res://player/sounds/angry1.ogg" +dest_files=["res://.godot/imported/angry1.ogg-89dfe7562e07a5f538e60fe56615fd53.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/sounds/angry2.ogg b/client/player/sounds/angry2.ogg Binary files differnew file mode 100644 index 00000000..805b6c48 --- /dev/null +++ b/client/player/sounds/angry2.ogg diff --git a/client/player/sounds/angry2.ogg.import b/client/player/sounds/angry2.ogg.import new file mode 100644 index 00000000..fb529c5c --- /dev/null +++ b/client/player/sounds/angry2.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cty282m6ckt62" +path="res://.godot/imported/angry2.ogg-cc281b5bbc23e0a935c56ccbfcbd60a0.oggvorbisstr" + +[deps] + +source_file="res://player/sounds/angry2.ogg" +dest_files=["res://.godot/imported/angry2.ogg-cc281b5bbc23e0a935c56ccbfcbd60a0.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/sounds/step1.ogg b/client/player/sounds/step1.ogg Binary files differnew file mode 100644 index 00000000..563d6444 --- /dev/null +++ b/client/player/sounds/step1.ogg diff --git a/client/player/sounds/step1.ogg.import b/client/player/sounds/step1.ogg.import new file mode 100644 index 00000000..409919f6 --- /dev/null +++ b/client/player/sounds/step1.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bxiorkb4xb8t1" +path="res://.godot/imported/step1.ogg-fb18c712af8c20437bc3716795beb323.oggvorbisstr" + +[deps] + +source_file="res://player/sounds/step1.ogg" +dest_files=["res://.godot/imported/step1.ogg-fb18c712af8c20437bc3716795beb323.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/sounds/step2.ogg b/client/player/sounds/step2.ogg Binary files differnew file mode 100644 index 00000000..a6ec7103 --- /dev/null +++ b/client/player/sounds/step2.ogg diff --git a/client/player/sounds/step2.ogg.import b/client/player/sounds/step2.ogg.import new file mode 100644 index 00000000..2a6f9789 --- /dev/null +++ b/client/player/sounds/step2.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://l2fd8u7rq3cq" +path="res://.godot/imported/step2.ogg-cac7b3cbd2fc698c0ac3ca59fb818e5d.oggvorbisstr" + +[deps] + +source_file="res://player/sounds/step2.ogg" +dest_files=["res://.godot/imported/step2.ogg-cac7b3cbd2fc698c0ac3ca59fb818e5d.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/sounds/step3.ogg b/client/player/sounds/step3.ogg Binary files differnew file mode 100644 index 00000000..27dfa368 --- /dev/null +++ b/client/player/sounds/step3.ogg diff --git a/client/player/sounds/step3.ogg.import b/client/player/sounds/step3.ogg.import new file mode 100644 index 00000000..c01a5b7d --- /dev/null +++ b/client/player/sounds/step3.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://d353uwy83crca" +path="res://.godot/imported/step3.ogg-2d825d8675e6dad3253d34dfcabf3b0e.oggvorbisstr" + +[deps] + +source_file="res://player/sounds/step3.ogg" +dest_files=["res://.godot/imported/step3.ogg-2d825d8675e6dad3253d34dfcabf3b0e.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/sounds/woosh1.ogg b/client/player/sounds/woosh1.ogg Binary files differnew file mode 100644 index 00000000..284fc480 --- /dev/null +++ b/client/player/sounds/woosh1.ogg diff --git a/client/player/sounds/woosh1.ogg.import b/client/player/sounds/woosh1.ogg.import new file mode 100644 index 00000000..38b1c435 --- /dev/null +++ b/client/player/sounds/woosh1.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://1jsqpnk3igj3" +path="res://.godot/imported/woosh1.ogg-1f4b2fe1be72c87cf944d6c0761e71c8.oggvorbisstr" + +[deps] + +source_file="res://player/sounds/woosh1.ogg" +dest_files=["res://.godot/imported/woosh1.ogg-1f4b2fe1be72c87cf944d6c0761e71c8.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/sounds/woosh2.ogg b/client/player/sounds/woosh2.ogg Binary files differnew file mode 100644 index 00000000..0a94ec9a --- /dev/null +++ b/client/player/sounds/woosh2.ogg diff --git a/client/player/sounds/woosh2.ogg.import b/client/player/sounds/woosh2.ogg.import new file mode 100644 index 00000000..c38bf1fe --- /dev/null +++ b/client/player/sounds/woosh2.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cwme7eatip0jc" +path="res://.godot/imported/woosh2.ogg-adc164c3f2035f82c8c508e981753d03.oggvorbisstr" + +[deps] + +source_file="res://player/sounds/woosh2.ogg" +dest_files=["res://.godot/imported/woosh2.ogg-adc164c3f2035f82c8c508e981753d03.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 |