diff --git a/game/area_map/area_map.gd b/game/area_map/area_map.gd index d3b9887..78a59a6 100644 --- a/game/area_map/area_map.gd +++ b/game/area_map/area_map.gd @@ -101,6 +101,7 @@ func _input(event: InputEvent) -> void: if event.is_action_pressed("ui_accept"): var selected_passage := _get_passage_to_sector(selected_sector) if selected_passage != null: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) passage_selected.emit(selected_passage) diff --git a/game/entities/world/game.gd b/game/entities/world/game.gd index dfb733f..03021db 100644 --- a/game/entities/world/game.gd +++ b/game/entities/world/game.gd @@ -37,6 +37,7 @@ func _input(event: InputEvent) -> void: var is_game_over := victory_screen.visible or game_over_screen.visible var use_pause := is_game_starded and not is_game_over if event.is_action_pressed("pause") and use_pause: + SoundManager.play_ui_stream.call_deferred(SoundManager.ui_stream_decline) pause_screen.show() get_tree().paused = true diff --git a/game/entities/world/passage.gd b/game/entities/world/passage.gd index 68c3407..5798f23 100644 --- a/game/entities/world/passage.gd +++ b/game/entities/world/passage.gd @@ -16,7 +16,7 @@ signal completed var _current_progress := 0.0 var _timer_time_elapsed := 0.0 var _current_enemy_index := 0 -var _player_is_alive = true +var _player_is_alive := true @onready var player : PlayerShip = $PlayerShip diff --git a/game/managers/sound_manager.gd b/game/managers/sound_manager.gd index da7cbe6..0e2173a 100644 --- a/game/managers/sound_manager.gd +++ b/game/managers/sound_manager.gd @@ -9,10 +9,10 @@ const MUSIC_BUS = "Music" @export_group("Pitch settings", "pitch") -@export_range(0.5, 1.5, 0.05) var putch_ui_min := 1.0 -@export_range(0.5, 1.5, 0.05) var putch_ui_max := 1.0 -@export_range(0.5, 1.5, 0.05) var putch_sfx_min := 1.0 -@export_range(0.5, 1.5, 0.05) var putch_sfx_max := 1.0 +@export_range(0.9, 1.1, 0.01) var putch_ui_min := 1.0 +@export_range(0.9, 1.1, 0.01) var putch_ui_max := 1.0 +@export_range(0.9, 1.1, 0.01) var putch_sfx_min := 1.0 +@export_range(0.9, 1.1, 0.01) var putch_sfx_max := 1.0 @export_group("Number of players", "player_count") @export_range(1, 10) var player_count_ui := 1 @@ -36,23 +36,27 @@ func _ready() -> void: _create_music_player() -func play_ui_stream(stream: AudioStream) -> void: +func play_ui_stream(stream: AudioStream) -> AudioStreamPlayer: var player := _get_free_player(_ui_players) player.stream = stream player.pitch_scale = randf_range(putch_ui_min, putch_ui_max) player.play() + return player -func play_sfx_stream(stream: AudioStream) -> void: +func play_sfx_stream(stream: AudioStream, position: Vector2) -> AudioStreamPlayer2D: var player := _get_free_2d_player(_sfx_players) player.stream = stream player.pitch_scale = randf_range(putch_ui_min, putch_ui_max) + player.position = position player.play() + return player -func play_music_stream(stream: AudioStream) -> void: +func play_music_stream(stream: AudioStream) -> AudioStreamPlayer: _music_player.stream = stream _music_player.play() + return _music_player func _create_ui_players() -> void: diff --git a/game/menu/common/credits.gd b/game/menu/common/credits.gd index 4a38a94..bd9cea3 100644 --- a/game/menu/common/credits.gd +++ b/game/menu/common/credits.gd @@ -41,6 +41,7 @@ func _on_back_button_pressed() -> void: if tween: tween.kill() + SoundManager.play_ui_stream(SoundManager.ui_stream_decline) back.emit() diff --git a/game/menu/common/options.gd b/game/menu/common/options.gd index c2706c1..68f72ce 100644 --- a/game/menu/common/options.gd +++ b/game/menu/common/options.gd @@ -71,31 +71,49 @@ func _update_window_factor_disabled() -> void: func _on_fullscreen_check_button_toggled(toggled: bool) -> void: + if visible: SoundManager.play_ui_stream(SoundManager.ui_stream_accept) SettingsManager.fullscreen = toggled _update_window_factor_disabled() func _on_back_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_decline) back.emit() func _on_window_factor_button_pressed(button: Button) -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) var window_factor : int = button.get_meta(WINDOW_FACTOR, 0) if window_factor > 0: SettingsManager.window_factor = window_factor func _on_master_volume_changed(value: float) -> void: + var stream := _get_slider_sound(SettingsManager.master_volume, value) + SoundManager.play_ui_stream(stream) SettingsManager.master_volume = floor(value) func _on_ui_volume_changed(value: float) -> void: + var stream := _get_slider_sound(SettingsManager.master_volume, value) + SoundManager.play_ui_stream(stream) SettingsManager.ui_volume = floor(value) func _on_sfx_volume_changed(value: float) -> void: + var stream := _get_slider_sound(SettingsManager.master_volume, value) + SoundManager.play_sfx_stream(stream, SettingsManager.window_base_size/2) SettingsManager.sfx_volume = floor(value) func _on_music_volume_changed(value: float) -> void: + var stream := _get_slider_sound(SettingsManager.master_volume, value) + SoundManager.play_music_stream(stream) SettingsManager.music_volume = floor(value) + + +func _get_slider_sound(old_value: float, new_value: float) -> AudioStream: + if old_value < new_value: + return SoundManager.ui_stream_next + else: + return SoundManager.ui_stream_previous diff --git a/game/menu/ingame/game_over_screen.gd b/game/menu/ingame/game_over_screen.gd index 76ff42d..80a90f5 100644 --- a/game/menu/ingame/game_over_screen.gd +++ b/game/menu/ingame/game_over_screen.gd @@ -13,6 +13,7 @@ func _on_timer_timeout() -> void: func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) show_main_menu.emit() diff --git a/game/menu/ingame/pause_menu.gd b/game/menu/ingame/pause_menu.gd index acf636c..a7a287b 100644 --- a/game/menu/ingame/pause_menu.gd +++ b/game/menu/ingame/pause_menu.gd @@ -33,12 +33,15 @@ func _setup_neighbors() -> void: func _on_continue_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) continue_game.emit() func _on_options_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) show_options.emit() func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) show_main_menu.emit() diff --git a/game/menu/ingame/pause_menu.tscn b/game/menu/ingame/pause_menu.tscn index d20d8a3..98927f4 100644 --- a/game/menu/ingame/pause_menu.tscn +++ b/game/menu/ingame/pause_menu.tscn @@ -5,19 +5,19 @@ [sub_resource type="Shortcut" id="Shortcut_lgp46"] -[node name="PauseMenu" type="Control"] +[node name="PauseMenu" type="CenterContainer"] process_mode = 2 -layout_mode = 3 -anchors_preset = 0 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 6 +size_flags_vertical = 6 script = ExtResource("1_inj1j") [node name="VBoxContainer" type="VBoxContainer" parent="."] -top_level = true -layout_mode = 0 -offset_left = 100.0 -offset_top = 100.0 -offset_right = 196.0 -offset_bottom = 166.0 +layout_mode = 2 [node name="ContinueButton" type="Button" parent="VBoxContainer"] unique_name_in_owner = true diff --git a/game/menu/ingame/pause_screen.gd b/game/menu/ingame/pause_screen.gd index bc7dee5..87dc885 100644 --- a/game/menu/ingame/pause_screen.gd +++ b/game/menu/ingame/pause_screen.gd @@ -15,6 +15,7 @@ func _ready() -> void: func _input(event: InputEvent) -> void: if event.is_action_pressed("pause") or event.is_action_pressed("ui_cancel"): + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) _on_pause_menu_continue_game.call_deferred() diff --git a/game/menu/ingame/pause_screen.tscn b/game/menu/ingame/pause_screen.tscn index 3893559..6a038db 100644 --- a/game/menu/ingame/pause_screen.tscn +++ b/game/menu/ingame/pause_screen.tscn @@ -1,27 +1,21 @@ -[gd_scene load_steps=4 format=3 uid="uid://d34nh3lc1gpb"] +[gd_scene load_steps=5 format=3 uid="uid://d34nh3lc1gpb"] +[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="1_cked2"] [ext_resource type="Script" uid="uid://c5d2t2o53wkmt" path="res://game/menu/ingame/pause_screen.gd" id="1_fe1q8"] [ext_resource type="PackedScene" uid="uid://bclo2wl8ibrcg" path="res://game/menu/ingame/pause_menu.tscn" id="2_4r6ly"] [ext_resource type="PackedScene" uid="uid://btr60idiit4y7" path="res://game/menu/common/options.tscn" id="3_3gwb3"] -[node name="PauseScreen" type="Control"] -layout_mode = 3 -anchors_preset = 0 +[node name="PauseScreen" type="MarginContainer"] +offset_right = 640.0 +offset_bottom = 360.0 +theme = ExtResource("1_cked2") script = ExtResource("1_fe1q8") [node name="PauseMenu" parent="." instance=ExtResource("2_4r6ly")] -layout_mode = 0 +layout_mode = 2 [node name="Options" parent="." instance=ExtResource("3_3gwb3")] -custom_minimum_size = Vector2(640, 360) -layout_mode = 0 -anchors_preset = 0 -anchor_right = 0.0 -anchor_bottom = 0.0 -offset_right = 0.0 -offset_bottom = 0.0 -grow_horizontal = 1 -grow_vertical = 1 +layout_mode = 2 [connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"] [connection signal="continue_game" from="PauseMenu" to="." method="_on_pause_menu_continue_game"] diff --git a/game/menu/ingame/victory_screen.gd b/game/menu/ingame/victory_screen.gd index 76ff42d..80a90f5 100644 --- a/game/menu/ingame/victory_screen.gd +++ b/game/menu/ingame/victory_screen.gd @@ -13,6 +13,7 @@ func _on_timer_timeout() -> void: func _on_main_menu_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) show_main_menu.emit() diff --git a/game/menu/ingame/weapon_selector.gd b/game/menu/ingame/weapon_selector.gd index eddb0a6..092679c 100644 --- a/game/menu/ingame/weapon_selector.gd +++ b/game/menu/ingame/weapon_selector.gd @@ -24,4 +24,5 @@ func _set_weapon_data(data: WeaponData) -> void: func _on_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) weapon_selected.emit(weapon_data) diff --git a/game/menu/main/main_menu.gd b/game/menu/main/main_menu.gd index 03b0789..75ed96c 100644 --- a/game/menu/main/main_menu.gd +++ b/game/menu/main/main_menu.gd @@ -71,5 +71,6 @@ func _on_credits_button_pressed() -> void: func _on_quit_button_pressed() -> void: - SoundManager.play_ui_stream(SoundManager.ui_stream_decline) + var player := SoundManager.play_ui_stream(SoundManager.ui_stream_decline) + await player.finished quit_game.emit() diff --git a/game/menu/main/seed_selection_menu.gd b/game/menu/main/seed_selection_menu.gd index 2ca58c7..d0e4b3c 100644 --- a/game/menu/main/seed_selection_menu.gd +++ b/game/menu/main/seed_selection_menu.gd @@ -72,6 +72,7 @@ func _on_seed_edit_text_submitted(new_text: String) -> void: func _on_back_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_decline) back.emit() @@ -86,8 +87,10 @@ func _on_visibility_changed() -> void: func _on_use_random_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) _start_game(random_edit.text) func _on_use_custom_button_pressed() -> void: + SoundManager.play_ui_stream(SoundManager.ui_stream_accept) _start_game(custom_edit.text) diff --git a/game/menu/main/title_screen.tscn b/game/menu/main/title_screen.tscn index 50f9c45..1a97412 100644 --- a/game/menu/main/title_screen.tscn +++ b/game/menu/main/title_screen.tscn @@ -33,6 +33,7 @@ size_flags_horizontal = 4 [node name="Options" parent="MarginContainer" instance=ExtResource("3_88gnj")] unique_name_in_owner = true +visible = false layout_mode = 2 [node name="Credits" parent="MarginContainer" instance=ExtResource("4_w1y3c")]