diff --git a/assets/audio/units/ding_1.wav b/assets/audio/units/ding_1.wav new file mode 100644 index 0000000..dcc740a --- /dev/null +++ b/assets/audio/units/ding_1.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f24a617a78df38d966868bb795b4c78fe6478c4d65d33fb3a4bb71b747b6f1e +size 52480 diff --git a/assets/audio/units/ding_1.wav.import b/assets/audio/units/ding_1.wav.import new file mode 100644 index 0000000..3b54bfd --- /dev/null +++ b/assets/audio/units/ding_1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bixow8k3qfiw7" +path="res://.godot/imported/ding_1.wav-ff35579f55b7efa80592586302b8f3e1.sample" + +[deps] + +source_file="res://assets/audio/units/ding_1.wav" +dest_files=["res://.godot/imported/ding_1.wav-ff35579f55b7efa80592586302b8f3e1.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=0 diff --git a/assets/audio/units/ding_2.wav b/assets/audio/units/ding_2.wav new file mode 100644 index 0000000..98271d8 --- /dev/null +++ b/assets/audio/units/ding_2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdafe99c69541f94c3ea44ffc69d782c4c54b2f8cb425eba0a99e993c97ab7cd +size 60076 diff --git a/assets/audio/units/ding_2.wav.import b/assets/audio/units/ding_2.wav.import new file mode 100644 index 0000000..e3f4a64 --- /dev/null +++ b/assets/audio/units/ding_2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c48wmi22iwcp2" +path="res://.godot/imported/ding_2.wav-8d6bc773a79855690b5fab197ef04ed4.sample" + +[deps] + +source_file="res://assets/audio/units/ding_2.wav" +dest_files=["res://.godot/imported/ding_2.wav-8d6bc773a79855690b5fab197ef04ed4.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=0 diff --git a/assets/audio/units/ding_3.wav b/assets/audio/units/ding_3.wav new file mode 100644 index 0000000..a3d8c75 --- /dev/null +++ b/assets/audio/units/ding_3.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6e427627c1628708a893351658de62e55526903338f1fd0bc45fc58882f4504 +size 67672 diff --git a/assets/audio/units/ding_3.wav.import b/assets/audio/units/ding_3.wav.import new file mode 100644 index 0000000..144a79e --- /dev/null +++ b/assets/audio/units/ding_3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://n1v1tjhfih05" +path="res://.godot/imported/ding_3.wav-3c7c93b5208033860f71cf63dafc3bcc.sample" + +[deps] + +source_file="res://assets/audio/units/ding_3.wav" +dest_files=["res://.godot/imported/ding_3.wav-3c7c93b5208033860f71cf63dafc3bcc.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=0 diff --git a/assets/audio/units/ding_4.wav b/assets/audio/units/ding_4.wav new file mode 100644 index 0000000..43ecd93 --- /dev/null +++ b/assets/audio/units/ding_4.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a552ff387eb353a24508ed82b7936a5927bc136e539e108fd3a1e94376fc759c +size 54084 diff --git a/assets/audio/units/ding_4.wav.import b/assets/audio/units/ding_4.wav.import new file mode 100644 index 0000000..5b0fd0d --- /dev/null +++ b/assets/audio/units/ding_4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cbi8s225wvd5n" +path="res://.godot/imported/ding_4.wav-05e257aae24ff4b74463526bf5d8b0fb.sample" + +[deps] + +source_file="res://assets/audio/units/ding_4.wav" +dest_files=["res://.godot/imported/ding_4.wav-05e257aae24ff4b74463526bf5d8b0fb.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=0 diff --git a/assets/audio/units/tok_1.wav b/assets/audio/units/tok_1.wav new file mode 100644 index 0000000..573b40d --- /dev/null +++ b/assets/audio/units/tok_1.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9c45792649294f5ec097d17d0026cc45ed269bedc8baf0104e1e9c4ab2014ac +size 5730 diff --git a/assets/audio/units/tok_1.wav.import b/assets/audio/units/tok_1.wav.import new file mode 100644 index 0000000..5cf699f --- /dev/null +++ b/assets/audio/units/tok_1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://0w148wlw3ijd" +path="res://.godot/imported/tok_1.wav-d7dc5bc0c75609062d074858d97d74ee.sample" + +[deps] + +source_file="res://assets/audio/units/tok_1.wav" +dest_files=["res://.godot/imported/tok_1.wav-d7dc5bc0c75609062d074858d97d74ee.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=0 diff --git a/assets/audio/units/tok_2.wav b/assets/audio/units/tok_2.wav new file mode 100644 index 0000000..00a187c --- /dev/null +++ b/assets/audio/units/tok_2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:287e9db4bf3673d3e04a4cf266df00ecc8d66d5122c17360987bd4b179a54c8f +size 3724 diff --git a/assets/audio/units/tok_2.wav.import b/assets/audio/units/tok_2.wav.import new file mode 100644 index 0000000..a2841ed --- /dev/null +++ b/assets/audio/units/tok_2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://noml5xmq138v" +path="res://.godot/imported/tok_2.wav-256222fc5fddde8d01f8294a3651f771.sample" + +[deps] + +source_file="res://assets/audio/units/tok_2.wav" +dest_files=["res://.godot/imported/tok_2.wav-256222fc5fddde8d01f8294a3651f771.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=0 diff --git a/assets/audio/units/tok_3.wav b/assets/audio/units/tok_3.wav new file mode 100644 index 0000000..59d68c5 --- /dev/null +++ b/assets/audio/units/tok_3.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a256d414ac68a68ea7faf6787372d520ceffdba83bc1076c45b1c5644225efa +size 4164 diff --git a/assets/audio/units/tok_3.wav.import b/assets/audio/units/tok_3.wav.import new file mode 100644 index 0000000..65c3986 --- /dev/null +++ b/assets/audio/units/tok_3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dgi63tl2etknk" +path="res://.godot/imported/tok_3.wav-6a49dd41ba2e9f68da396963d08adf9e.sample" + +[deps] + +source_file="res://assets/audio/units/tok_3.wav" +dest_files=["res://.godot/imported/tok_3.wav-6a49dd41ba2e9f68da396963d08adf9e.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=0 diff --git a/assets/audio/units/tok_4.wav b/assets/audio/units/tok_4.wav new file mode 100644 index 0000000..d14c202 --- /dev/null +++ b/assets/audio/units/tok_4.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b166fd76e8319017bd4848a858b160398fe31d06a6f82311c85d997aa217e361 +size 2722 diff --git a/assets/audio/units/tok_4.wav.import b/assets/audio/units/tok_4.wav.import new file mode 100644 index 0000000..ad1a2b7 --- /dev/null +++ b/assets/audio/units/tok_4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bdvojtjbplglp" +path="res://.godot/imported/tok_4.wav-174eb71fab747b51148cb396cd927a34.sample" + +[deps] + +source_file="res://assets/audio/units/tok_4.wav" +dest_files=["res://.godot/imported/tok_4.wav-174eb71fab747b51148cb396cd927a34.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=0 diff --git a/assets/audio/units/tok_5.wav b/assets/audio/units/tok_5.wav new file mode 100644 index 0000000..98b73b0 --- /dev/null +++ b/assets/audio/units/tok_5.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9b28185c857b648d8bb69028b1e233d13789c080cd01b12cbbf6a6ec2f8d505 +size 2908 diff --git a/assets/audio/units/tok_5.wav.import b/assets/audio/units/tok_5.wav.import new file mode 100644 index 0000000..2aff71c --- /dev/null +++ b/assets/audio/units/tok_5.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://csanrqe0h5moc" +path="res://.godot/imported/tok_5.wav-df39aea64152713152324a1236366c20.sample" + +[deps] + +source_file="res://assets/audio/units/tok_5.wav" +dest_files=["res://.godot/imported/tok_5.wav-df39aea64152713152324a1236366c20.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=0 diff --git a/assets/audio/units/tok_6.wav b/assets/audio/units/tok_6.wav new file mode 100644 index 0000000..b87040e --- /dev/null +++ b/assets/audio/units/tok_6.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4e77ff30f7cafec3491a28f99b4e7b6e808157e71055cd8245589e3bd561b05 +size 3850 diff --git a/assets/audio/units/tok_6.wav.import b/assets/audio/units/tok_6.wav.import new file mode 100644 index 0000000..332502f --- /dev/null +++ b/assets/audio/units/tok_6.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://fb4rd6p07ysv" +path="res://.godot/imported/tok_6.wav-46395d9bc11e2ac79ef0829155f8339c.sample" + +[deps] + +source_file="res://assets/audio/units/tok_6.wav" +dest_files=["res://.godot/imported/tok_6.wav-46395d9bc11e2ac79ef0829155f8339c.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=0 diff --git a/scenes/structures/Anthill.tscn b/scenes/structures/Anthill.tscn index 88fe9bf..71c69c2 100644 --- a/scenes/structures/Anthill.tscn +++ b/scenes/structures/Anthill.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=3 uid="uid://clftjlaotf2g2"] +[gd_scene load_steps=7 format=3 uid="uid://clftjlaotf2g2"] [ext_resource type="Script" path="res://scripts/anthill.gd" id="1_8k02d"] [ext_resource type="Material" uid="uid://f0nlf4tdpvbd" path="res://resources/materials/indicators/hover_indicator_mat.tres" id="2_44p2d"] +[ext_resource type="Script" path="res://scripts/audio_stream_player_polyphonic.gd" id="3_vp3nf"] [sub_resource type="CapsuleMesh" id="CapsuleMesh_x8apu"] @@ -33,3 +34,7 @@ mesh = SubResource("QuadMesh_2gykr") [node name="NavigationObstacle3D" type="NavigationObstacle3D" parent="."] radius = 0.57 + +[node name="AudioStreamPlayerPolyphonic" type="AudioStreamPlayer3D" parent="."] +unit_size = 20.0 +script = ExtResource("3_vp3nf") diff --git a/scripts/anthill.gd b/scripts/anthill.gd index d23c7e7..3722761 100644 --- a/scripts/anthill.gd +++ b/scripts/anthill.gd @@ -13,11 +13,16 @@ var ant_gatherer := preload("res://scenes/units/ant_gatherer.tscn") @onready var ui_origin: Node3D = $UiOrigin @onready var nitwits_holder: Node = $/root/World/Units/Nitwits @onready var gatherers_holder: Node = $/root/World/Units/Gatherers +@onready var audio_player: AudioStreamPlayerPolyphonic = ( + $AudioStreamPlayerPolyphonic +) func _ready() -> void: assert(ui_origin != null, "ui_origin missing!") assert(nitwits_holder != null, "nitwits_holder missing!") + assert(gatherers_holder != null, "gatherers_holder missing!") + assert(audio_player != null, "audio_player missing!") super._ready() honeydew += AntNitwit.get_cost() spawn_nitwit() @@ -75,4 +80,5 @@ func _create_unit(unit_scene: PackedScene, cost: int) -> ControlledUnit: new_pos ) ) + audio_player.play_polyphonic(SoundManager.ding()) return new_unit diff --git a/scripts/globals/sound_manager.gd b/scripts/globals/sound_manager.gd index e4210fc..4206f83 100644 --- a/scripts/globals/sound_manager.gd +++ b/scripts/globals/sound_manager.gd @@ -20,10 +20,34 @@ var swoosh_streams: Array[AudioStream] = [ preload("res://assets/audio/units/swoosh_7.wav"), ] +var ding_streams: Array[AudioStream] = [ + preload("res://assets/audio/units/ding_1.wav"), + preload("res://assets/audio/units/ding_2.wav"), + preload("res://assets/audio/units/ding_3.wav"), + preload("res://assets/audio/units/ding_4.wav"), +] + +var tok_streams: Array[AudioStream] = [ + preload("res://assets/audio/units/tok_1.wav"), + preload("res://assets/audio/units/tok_2.wav"), + preload("res://assets/audio/units/tok_3.wav"), + preload("res://assets/audio/units/tok_4.wav"), + preload("res://assets/audio/units/tok_5.wav"), + preload("res://assets/audio/units/tok_6.wav"), +] + func pop() -> AudioStream: - return pop_streams.pick_random() as AudioStream + return pop_streams.pick_random() func swoosh() -> AudioStream: - return swoosh_streams.pick_random() as AudioStream + return swoosh_streams.pick_random() + + +func ding() -> AudioStream: + return ding_streams.pick_random() + + +func tok() -> AudioStream: + return tok_streams.pick_random() diff --git a/scripts/units/components/gathering.gd b/scripts/units/components/gathering.gd index db40de5..481438c 100644 --- a/scripts/units/components/gathering.gd +++ b/scripts/units/components/gathering.gd @@ -188,7 +188,7 @@ func _deposit() -> void: var item := carrying_items.pop_back() as Honeydew audio_player.play_polyphonic(SoundManager.swoosh()) await item.start_moving(anthill.global_position).moved - audio_player.play_polyphonic(SoundManager.pop()) + audio_player.play_polyphonic(SoundManager.tok()) item.remove_from_spawner() _erase_honeydew(item) item.queue_free()