Audio voiceover and fun !

This commit is contained in:
Daydreel 2025-09-07 14:09:58 +02:00
parent 7aac67b765
commit e6e1221ba5
52 changed files with 419 additions and 36 deletions

View file

@ -3,12 +3,12 @@
importer="mp3"
type="AudioStreamMP3"
uid="uid://bm7v511v8168b"
path="res://.godot/imported/action-energetic-rock-music-321583.mp3-d929a3d31f102b3750305253b3f7dcfe.mp3str"
path="res://.godot/imported/action-energetic-rock-music-321583.mp3-6bba9131dd27c7c91f60fc2f183b7fd9.mp3str"
[deps]
source_file="res://Assets/Audio/action-energetic-rock-music-321583.mp3"
dest_files=["res://.godot/imported/action-energetic-rock-music-321583.mp3-d929a3d31f102b3750305253b3f7dcfe.mp3str"]
source_file="res://Assets/Audio/BackgroundMusic/action-energetic-rock-music-321583.mp3"
dest_files=["res://.godot/imported/action-energetic-rock-music-321583.mp3-6bba9131dd27c7c91f60fc2f183b7fd9.mp3str"]
[params]

View file

@ -3,12 +3,12 @@
importer="mp3"
type="AudioStreamMP3"
uid="uid://bhw3f6kmbvxje"
path="res://.godot/imported/comedy-cartoon-funny-background-music-370265.mp3-89d0b1af2ae8f15c1d6f67e3edccab03.mp3str"
path="res://.godot/imported/comedy-cartoon-funny-background-music-370265.mp3-26a8959c330099a849529643e6560f55.mp3str"
[deps]
source_file="res://Assets/Audio/comedy-cartoon-funny-background-music-370265.mp3"
dest_files=["res://.godot/imported/comedy-cartoon-funny-background-music-370265.mp3-89d0b1af2ae8f15c1d6f67e3edccab03.mp3str"]
source_file="res://Assets/Audio/BackgroundMusic/comedy-cartoon-funny-background-music-370265.mp3"
dest_files=["res://.godot/imported/comedy-cartoon-funny-background-music-370265.mp3-26a8959c330099a849529643e6560f55.mp3str"]
[params]

View file

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://cdax5mi6ega74"
path="res://.godot/imported/funny-punk-rock-203366.mp3-42c7d8df76cc1ed201dded1e55cad29a.mp3str"
[deps]
source_file="res://Assets/Audio/BackgroundMusic/funny-punk-rock-203366.mp3"
dest_files=["res://.godot/imported/funny-punk-rock-203366.mp3-42c7d8df76cc1ed201dded1e55cad29a.mp3str"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://b3jylbxs58ehy"
path="res://.godot/imported/1.ogg-6e8965901f3d07325263aece2cf68c3e.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/1.ogg"
dest_files=["res://.godot/imported/1.ogg-6e8965901f3d07325263aece2cf68c3e.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://q86sd5tq7257"
path="res://.godot/imported/10.ogg-a3a9d647bc372c9379710331163c9735.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/10.ogg"
dest_files=["res://.godot/imported/10.ogg-a3a9d647bc372c9379710331163c9735.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://c0hh5ab0gdx1p"
path="res://.godot/imported/2.ogg-43ca41d3898a2ebaaf4cf7b13fb9414f.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/2.ogg"
dest_files=["res://.godot/imported/2.ogg-43ca41d3898a2ebaaf4cf7b13fb9414f.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cakgn0jbnobsx"
path="res://.godot/imported/3.ogg-7765d18457fe30366597a8efd0aa9673.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/3.ogg"
dest_files=["res://.godot/imported/3.ogg-7765d18457fe30366597a8efd0aa9673.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://d1sdypr88dail"
path="res://.godot/imported/4.ogg-a472db5131c97d7532a1858fce05d923.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/4.ogg"
dest_files=["res://.godot/imported/4.ogg-a472db5131c97d7532a1858fce05d923.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://c10qvk2q0hcfp"
path="res://.godot/imported/5.ogg-e9003d0e2559c5f2929953d448650c56.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/5.ogg"
dest_files=["res://.godot/imported/5.ogg-e9003d0e2559c5f2929953d448650c56.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://n7wc65yfarwo"
path="res://.godot/imported/6.ogg-0acb1478cf0415e87d04b4504bc08e64.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/6.ogg"
dest_files=["res://.godot/imported/6.ogg-0acb1478cf0415e87d04b4504bc08e64.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dggo4rh5mg402"
path="res://.godot/imported/7.ogg-60cf56faf3a8c2fe2f69eb17dc7b8119.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/7.ogg"
dest_files=["res://.godot/imported/7.ogg-60cf56faf3a8c2fe2f69eb17dc7b8119.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://beuuxyng43s8l"
path="res://.godot/imported/8.ogg-6db532dd60b33618e7ffdbb024fd54db.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/8.ogg"
dest_files=["res://.godot/imported/8.ogg-6db532dd60b33618e7ffdbb024fd54db.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bdvd372f4moba"
path="res://.godot/imported/9.ogg-bf59ba02c448e57f97db017898aae290.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/9.ogg"
dest_files=["res://.godot/imported/9.ogg-bf59ba02c448e57f97db017898aae290.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dda05xiq04lt3"
path="res://.godot/imported/fight.ogg-7360fc3c980657939c9733c5bcb2c168.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/fight.ogg"
dest_files=["res://.godot/imported/fight.ogg-7360fc3c980657939c9733c5bcb2c168.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bdcq7jxg08sih"
path="res://.godot/imported/final_round.ogg-ac931ac16faf1f3d1867ab8428b7cef9.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/final_round.ogg"
dest_files=["res://.godot/imported/final_round.ogg-ac931ac16faf1f3d1867ab8428b7cef9.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cb568hyhs1eco"
path="res://.godot/imported/flawless_victory.ogg-60ce1330d6168d7ca23ec90f79a763e7.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/flawless_victory.ogg"
dest_files=["res://.godot/imported/flawless_victory.ogg-60ce1330d6168d7ca23ec90f79a763e7.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://coilxjmvol3k3"
path="res://.godot/imported/game_over.ogg-a8eb412b9928e216148aa5532d2a9766.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/game_over.ogg"
dest_files=["res://.godot/imported/game_over.ogg-a8eb412b9928e216148aa5532d2a9766.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://c3x3krwcm4bbu"
path="res://.godot/imported/prepare_yourself.ogg-8497f511da3f46b5e1509a9dc368425f.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/prepare_yourself.ogg"
dest_files=["res://.godot/imported/prepare_yourself.ogg-8497f511da3f46b5e1509a9dc368425f.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bsa3w7qdafyc"
path="res://.godot/imported/ready.ogg-55ef8becbf69da247758dd1ff6223d96.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/ready.ogg"
dest_files=["res://.godot/imported/ready.ogg-55ef8becbf69da247758dd1ff6223d96.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cxyju8u1m4t2p"
path="res://.godot/imported/winner.ogg-1f9130dc9cf9b88fc949954881c09f9b.oggvorbisstr"
[deps]
source_file="res://Assets/Audio/SFX/Voiceover/winner.ogg"
dest_files=["res://.godot/imported/winner.ogg-1f9130dc9cf9b88fc949954881c09f9b.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View file

@ -0,0 +1,15 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://002ihjl36jqn"]
[resource]
bus/1/name = &"Background Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = -5.04224
bus/1/send = &"Master"
bus/2/name = &"SFX"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 4.03797
bus/2/send = &"Master"

View file

@ -1,19 +0,0 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://cdax5mi6ega74"
path="res://.godot/imported/funny-punk-rock-203366.mp3-ea0ab66d6da4955ac47afa7f4775cfcd.mp3str"
[deps]
source_file="res://Assets/Audio/funny-punk-rock-203366.mp3"
dest_files=["res://.godot/imported/funny-punk-rock-203366.mp3-ea0ab66d6da4955ac47afa7f4775cfcd.mp3str"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View file

@ -1,11 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://5ln4smir05s2"]
[ext_resource type="Script" uid="uid://dapftcckmasj5" path="res://Globals/AudioManager.gd" id="1_gbvha"]
[ext_resource type="AudioStream" uid="uid://bhw3f6kmbvxje" path="res://Assets/Audio/comedy-cartoon-funny-background-music-370265.mp3" id="2_rpwd6"]
[ext_resource type="AudioStream" uid="uid://bhw3f6kmbvxje" path="res://Assets/Audio/BackgroundMusic/comedy-cartoon-funny-background-music-370265.mp3" id="2_rpwd6"]
[node name="AudioManager" type="Node"]
script = ExtResource("1_gbvha")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
[node name="BackgroundMusic" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_rpwd6")
autoplay = true
bus = &"Background Music"
[node name="SFX" type="AudioStreamPlayer" parent="."]

View file

@ -17,6 +17,7 @@ var enemiesAlive : int = 0
func _ready() -> void:
$SFX/SFXPrepareYourself.play()
EventBus.projectile_shooted.connect(onProjectileShooted)
EventBus.lauch_next_wave.connect(changeState.bind(STATE.SPAWN))
troopTimer.timeout.connect(spawnTroop)
@ -38,6 +39,7 @@ func _process(_delta: float) -> void:
STATE.SPAWNING when troopTimer.is_stopped():
state = STATE.FIGHT
STATE.FIGHT when enemiesAlive == 0:
$SFX/SFXWinner.play()
state = STATE.WAVE_END
STATE.WAVE_END when wave == level.waves.size():
EventBus.player_has_won.emit()
@ -55,6 +57,10 @@ func changeState(newState: STATE) -> void:
func spawnNextWave() -> void:
currentTroopIdx = 0
wave += 1
if wave == level.waves.size():
$SFX/SFXFinalRound.play()
else:
$SFX/SFXFight.play()
EventBus.wave_has_change.emit(wave, level.waves[wave - 1].troops[0].spawn_delay)
spawnNextTroop()

View file

@ -1,10 +1,14 @@
[gd_scene load_steps=11 format=3 uid="uid://bph5gpic1arod"]
[gd_scene load_steps=15 format=3 uid="uid://bph5gpic1arod"]
[ext_resource type="Script" uid="uid://qqid42jkpkmv" path="res://Levels/Scripts/WorldManager.gd" id="1_tk0a6"]
[ext_resource type="Script" uid="uid://caf3yamufmhd4" path="res://Towers/TowerManager.gd" id="2_7pixp"]
[ext_resource type="Script" uid="uid://wdyg06i1eb6b" path="res://Levels/Scripts/Camera.gd" id="2_c1rgm"]
[ext_resource type="Texture2D" uid="uid://o83munu8dibp" path="res://Assets/Icones/kenney_game_icons_vector.svg" id="3_6dp1o"]
[ext_resource type="PackedScene" uid="uid://p6a6rb7sgeqd" path="res://UI/gui.tscn" id="6_ebgat"]
[ext_resource type="AudioStream" uid="uid://bdcq7jxg08sih" path="res://Assets/Audio/SFX/Voiceover/final_round.ogg" id="6_ul70d"]
[ext_resource type="AudioStream" uid="uid://c3x3krwcm4bbu" path="res://Assets/Audio/SFX/Voiceover/prepare_yourself.ogg" id="7_6yqi7"]
[ext_resource type="AudioStream" uid="uid://dda05xiq04lt3" path="res://Assets/Audio/SFX/Voiceover/fight.ogg" id="8_jh6jd"]
[ext_resource type="AudioStream" uid="uid://cxyju8u1m4t2p" path="res://Assets/Audio/SFX/Voiceover/winner.ogg" id="9_u6dkh"]
[sub_resource type="Curve" id="Curve_c1rgm"]
_limits = [-70.0, -20.0, 2.0, 10.0]
@ -109,3 +113,20 @@ light_energy = 0.0
[node name="TroopTimer" type="Timer" parent="."]
one_shot = true
[node name="SFX" type="Node" parent="."]
[node name="SFXFinalRound" type="AudioStreamPlayer" parent="SFX"]
stream = ExtResource("6_ul70d")
bus = &"SFX"
[node name="SFXPrepareYourself" type="AudioStreamPlayer" parent="SFX"]
stream = ExtResource("7_6yqi7")
bus = &"SFX"
[node name="SFXFight" type="AudioStreamPlayer" parent="SFX"]
stream = ExtResource("8_jh6jd")
bus = &"SFX"
[node name="SFXWinner" type="AudioStreamPlayer" parent="SFX"]
stream = ExtResource("9_u6dkh")

View file

@ -158,9 +158,7 @@ func handleTowerShortCuts(event: InputEventKey) -> void:
func onMouseEnteredGui() -> void:
is_on_gui = true
print(is_on_gui)
func onMouseExitedGui() -> void:
is_on_gui = false
print(is_on_gui)

View file

@ -1,5 +1,8 @@
extends Control
class_name DefeatScreen
func _ready() -> void:
$SFXGameOver.play()
func _on_timer_timeout() -> void:
Transition.goto("res://UI/start_menu.tscn")

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://yonrrq1fbs3b"]
[gd_scene load_steps=4 format=3 uid="uid://yonrrq1fbs3b"]
[ext_resource type="Script" uid="uid://vjlwfv5wjs1n" path="res://UI/defeat_screen.gd" id="1_g253y"]
[ext_resource type="AudioStream" uid="uid://coilxjmvol3k3" path="res://Assets/Audio/SFX/Voiceover/game_over.ogg" id="2_vnp5o"]
[sub_resource type="LabelSettings" id="LabelSettings_i0rmf"]
font_size = 70
@ -42,4 +43,8 @@ label_settings = SubResource("LabelSettings_i0rmf")
wait_time = 3.0
autostart = true
[node name="SFXGameOver" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_vnp5o")
bus = &"SFX"
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]

View file

@ -154,28 +154,25 @@ columns = 4
[node name="CubeBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
layout_mode = 2
mouse_filter = 1
texture = ExtResource("7_fffne")
[node name="QuitLevelBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 1
texture = ExtResource("8_decjp")
[node name="QuitGameBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 1
texture = ExtResource("9_reygo")
[node name="NextWaveBtn" parent="TowerButtonPanel/ControlPanelBase/MarginContainer/ButtonContainer" instance=ExtResource("7_parkk")]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 1
texture = ExtResource("8_ay13l")
[node name="TowerInfoPanel" type="HBoxContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0

View file

@ -1,5 +1,8 @@
extends Control
class_name WinScreen
func _ready() -> void:
$SFXFlawlessVictory.play()
func _on_timer_timeout() -> void:
Transition.goto("res://UI/start_menu.tscn")

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://c4ipdjq2xej6j"]
[gd_scene load_steps=4 format=3 uid="uid://c4ipdjq2xej6j"]
[ext_resource type="Script" uid="uid://camwpkoj31gvn" path="res://UI/win_screen.gd" id="1_t25dr"]
[ext_resource type="AudioStream" uid="uid://cb568hyhs1eco" path="res://Assets/Audio/SFX/Voiceover/flawless_victory.ogg" id="2_7c84e"]
[sub_resource type="LabelSettings" id="LabelSettings_i0rmf"]
font_size = 70
@ -42,4 +43,8 @@ label_settings = SubResource("LabelSettings_i0rmf")
wait_time = 3.0
autostart = true
[node name="SFXFlawlessVictory" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_7c84e")
bus = &"SFX"
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]

View file

@ -28,6 +28,10 @@ run/main_scene="uid://2xw1yn1tmlcy"
config/features=PackedStringArray("4.4")
config/icon="res://icon.svg"
[audio]
buses/default_bus_layout="uid://002ihjl36jqn"
[autoload]
EventBus="*res://Globals/EventBus.gd"