diff --git a/game/entities/weapons/minelayer/abstract_minelayer_projectile.gd b/game/entities/weapons/minelayer/abstract_minelayer_projectile.gd index 706ef85..3aee516 100644 --- a/game/entities/weapons/minelayer/abstract_minelayer_projectile.gd +++ b/game/entities/weapons/minelayer/abstract_minelayer_projectile.gd @@ -9,7 +9,7 @@ enum SpriteState { } -const OFF_TIMES = [ +const OFF_TIMES : Array[float] = [ 1.0, 1.0, 0.5, 0.25, 0.05, 0.05, 0.05, 0.05, 0.05, ] const ON_TIME = 0.05 @@ -74,8 +74,13 @@ func _on_sprite_on_timer_timeout() -> void: _try_to_damage_by_blast() _process_hit_for_projectile(null) else: + var delay_time := OFF_TIMES[_current_off_time_index] + var stream : AudioStream = SoundManager.sfx_weapon_minelayer_tick_low if delay_time > 0.1 \ + else SoundManager.sfx_weapon_minelayer_tick_high + SoundManager.play_sfx_stream(stream, global_position) + _current_sprite_state = SpriteState.OFF - sprite_off_timer.start(OFF_TIMES[_current_off_time_index]) + sprite_off_timer.start(delay_time) func _on_sprite_off_timer_timeout() -> void: diff --git a/game/entities/weapons/minelayer/abstract_minelayer_weapon.gd b/game/entities/weapons/minelayer/abstract_minelayer_weapon.gd index f8b81f6..8e83aa8 100644 --- a/game/entities/weapons/minelayer/abstract_minelayer_weapon.gd +++ b/game/entities/weapons/minelayer/abstract_minelayer_weapon.gd @@ -12,6 +12,7 @@ func shoot(ship_velocity: Vector2) -> bool: var is_shot := super.shoot(ship_velocity) if is_shot: _can_shoot = false + SoundManager.play_sfx_stream(SoundManager.sfx_weapon_minelayer_shot, global_position) sprite.play(SHOT_ANIMATION) return is_shot diff --git a/game/entities/weapons/minelayer/enemy_minelayer_weapon.tscn b/game/entities/weapons/minelayer/enemy_minelayer_weapon.tscn index 069a650..c34026b 100644 --- a/game/entities/weapons/minelayer/enemy_minelayer_weapon.tscn +++ b/game/entities/weapons/minelayer/enemy_minelayer_weapon.tscn @@ -74,3 +74,6 @@ projectile_scene = ExtResource("3_nkog1") [node name="AnimatedSprite2D" parent="." index="0"] sprite_frames = SubResource("SpriteFrames_nkog1") animation = &"shot" + +[node name="Muzzle" parent="." index="1"] +position = Vector2(-9, 0) diff --git a/game/entities/weapons/minelayer/player_minelayer_weapon.tscn b/game/entities/weapons/minelayer/player_minelayer_weapon.tscn index 2792c29..9fb4be9 100644 --- a/game/entities/weapons/minelayer/player_minelayer_weapon.tscn +++ b/game/entities/weapons/minelayer/player_minelayer_weapon.tscn @@ -72,5 +72,9 @@ script = ExtResource("2_mvhh7") projectile_scene = ExtResource("3_u0als") [node name="AnimatedSprite2D" parent="." index="0"] +position = Vector2(2, 0) sprite_frames = SubResource("SpriteFrames_u0als") animation = &"shot" + +[node name="Muzzle" parent="." index="1"] +position = Vector2(9, 0) diff --git a/game/managers/sound_manager.gd b/game/managers/sound_manager.gd index 03a06f2..918f7dd 100644 --- a/game/managers/sound_manager.gd +++ b/game/managers/sound_manager.gd @@ -28,6 +28,9 @@ const MUSIC_BUS = "Music" @export_subgroup("Weapon", "sfx_weapon") @export var sfx_weapon_gatling_shot : AudioStream @export var sfx_weapon_cannon_shot : AudioStream +@export var sfx_weapon_minelayer_shot : AudioStream +@export var sfx_weapon_minelayer_tick_high : AudioStream +@export var sfx_weapon_minelayer_tick_low : AudioStream @export var sfx_weapon_plasma_shot : AudioStream @export var sfx_weapon_railgun_shot : AudioStream @export var sfx_weapon_sharapnel_shot : AudioStream diff --git a/game/managers/sound_manager.tscn b/game/managers/sound_manager.tscn index cc5b0d1..3282b6e 100644 --- a/game/managers/sound_manager.tscn +++ b/game/managers/sound_manager.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://bc0np3ldfspq4"] +[gd_scene load_steps=14 format=3 uid="uid://bc0np3ldfspq4"] [ext_resource type="Script" uid="uid://cx5qcukr66whc" path="res://game/managers/sound_manager.gd" id="1_cg0sy"] [ext_resource type="AudioStream" uid="uid://bqcqigmj23ub5" path="res://sound/ui/ui_accept.wav" id="2_agyxs"] @@ -10,6 +10,9 @@ [ext_resource type="AudioStream" uid="uid://b4l3ksw7gh8u0" path="res://sound/sfx/weapon/plasma_shot.wav" id="8_6ll5c"] [ext_resource type="AudioStream" uid="uid://bqo2n7jytda3r" path="res://sound/sfx/weapon/shrapnel_shot.wav" id="8_22ptj"] [ext_resource type="AudioStream" uid="uid://cflrm2y3yp371" path="res://sound/sfx/weapon/railgun_shot.wav" id="8_ab171"] +[ext_resource type="AudioStream" uid="uid://dmp6cimf8uy0x" path="res://sound/sfx/weapon/minelayer_shot.wav" id="8_q7cyi"] +[ext_resource type="AudioStream" uid="uid://hv28c6ivh4fx" path="res://sound/sfx/weapon/minelayer_tick_high.wav" id="9_wyfta"] +[ext_resource type="AudioStream" uid="uid://dew2108vd3e1d" path="res://sound/sfx/weapon/minelayer_tick_low.wav" id="10_814q3"] [node name="SoundManager" type="Node"] script = ExtResource("1_cg0sy") @@ -25,6 +28,9 @@ ui_stream_next = ExtResource("4_fpnh3") ui_stream_previous = ExtResource("5_22ptj") sfx_weapon_gatling_shot = ExtResource("6_0i6kl") sfx_weapon_cannon_shot = ExtResource("7_fpnh3") +sfx_weapon_minelayer_shot = ExtResource("8_q7cyi") +sfx_weapon_minelayer_tick_high = ExtResource("9_wyfta") +sfx_weapon_minelayer_tick_low = ExtResource("10_814q3") sfx_weapon_plasma_shot = ExtResource("8_6ll5c") sfx_weapon_railgun_shot = ExtResource("8_ab171") sfx_weapon_sharapnel_shot = ExtResource("8_22ptj") diff --git a/sound/sfx/weapon/minelayer_shot.wav b/sound/sfx/weapon/minelayer_shot.wav new file mode 100644 index 0000000..9c0718f --- /dev/null +++ b/sound/sfx/weapon/minelayer_shot.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b24093f95c10e8fe97aa297811fc61399b658148e00199b4caf4c5d4bec0a99 +size 264756 diff --git a/sound/sfx/weapon/minelayer_shot.wav.import b/sound/sfx/weapon/minelayer_shot.wav.import new file mode 100644 index 0000000..5f6c8d6 --- /dev/null +++ b/sound/sfx/weapon/minelayer_shot.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dmp6cimf8uy0x" +path="res://.godot/imported/minelayer_shot.wav-bb199572a7da9641d3dd82151d4f30bb.sample" + +[deps] + +source_file="res://sound/sfx/weapon/minelayer_shot.wav" +dest_files=["res://.godot/imported/minelayer_shot.wav-bb199572a7da9641d3dd82151d4f30bb.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=2 diff --git a/sound/sfx/weapon/minelayer_tick_high.wav b/sound/sfx/weapon/minelayer_tick_high.wav new file mode 100644 index 0000000..eb09d26 --- /dev/null +++ b/sound/sfx/weapon/minelayer_tick_high.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b85fbfb0e0073096cf7af7282df2f4d002cd953b720856be7ec6d5eb72866232 +size 27924 diff --git a/sound/sfx/weapon/minelayer_tick_high.wav.import b/sound/sfx/weapon/minelayer_tick_high.wav.import new file mode 100644 index 0000000..4ec55a6 --- /dev/null +++ b/sound/sfx/weapon/minelayer_tick_high.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://hv28c6ivh4fx" +path="res://.godot/imported/minelayer_tick_high.wav-93a5149739ed56462dc997cd9c53ed87.sample" + +[deps] + +source_file="res://sound/sfx/weapon/minelayer_tick_high.wav" +dest_files=["res://.godot/imported/minelayer_tick_high.wav-93a5149739ed56462dc997cd9c53ed87.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=2 diff --git a/sound/sfx/weapon/minelayer_tick_low.wav b/sound/sfx/weapon/minelayer_tick_low.wav new file mode 100644 index 0000000..3ed2425 --- /dev/null +++ b/sound/sfx/weapon/minelayer_tick_low.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0597f0b61b9e97b18722aee50713862273903f148b5d4f7c5d437832d1feda0e +size 23780 diff --git a/sound/sfx/weapon/minelayer_tick_low.wav.import b/sound/sfx/weapon/minelayer_tick_low.wav.import new file mode 100644 index 0000000..d1fc759 --- /dev/null +++ b/sound/sfx/weapon/minelayer_tick_low.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dew2108vd3e1d" +path="res://.godot/imported/minelayer_tick_low.wav-cf979bbcb81333a83f156fd0841ce818.sample" + +[deps] + +source_file="res://sound/sfx/weapon/minelayer_tick_low.wav" +dest_files=["res://.godot/imported/minelayer_tick_low.wav-cf979bbcb81333a83f156fd0841ce818.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=2