This commit is contained in:
Tomasz Boruc 2026-10-10 21:41:01 +02:00
parent a0bce0b710
commit c04e08e406
10 changed files with 89 additions and 25 deletions

47
default_bus_layout.tres Normal file
View File

@ -0,0 +1,47 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://bcxqtqp2rqm5s"]
[sub_resource type="AudioEffectEQ10" id="EQ_plasma"]
resource_name = "Equalizer plazmy"
[sub_resource type="AudioEffectEQ10" id="EQ_machine_gun"]
resource_name = "Equalizer karabinu"
[sub_resource type="AudioEffectEQ10" id="EQ_laser"]
resource_name = "Equalizer lasera"
[sub_resource type="AudioEffectEQ10" id="EQ_missile"]
resource_name = "Equalizer rakiet"
[resource]
bus/1/name = &"Plasma"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = -6.0
bus/1/send = &"Master"
bus/1/effect/0/effect = SubResource("EQ_plasma")
bus/1/effect/0/enabled = true
bus/2/name = &"MachineGun"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = -15.788257
bus/2/send = &"Master"
bus/2/effect/0/effect = SubResource("EQ_machine_gun")
bus/2/effect/0/enabled = true
bus/3/name = &"Laser"
bus/3/solo = false
bus/3/mute = false
bus/3/bypass_fx = false
bus/3/volume_db = -26.605057
bus/3/send = &"Master"
bus/3/effect/0/effect = SubResource("EQ_laser")
bus/3/effect/0/enabled = true
bus/4/name = &"Missile"
bus/4/solo = false
bus/4/mute = false
bus/4/bypass_fx = false
bus/4/volume_db = -6.0
bus/4/send = &"Master"
bus/4/effect/0/effect = SubResource("EQ_missile")
bus/4/effect/0/enabled = true

View File

@ -216,3 +216,13 @@ DODAWANIE NASTĘPNEJ UMIEJĘTNOŚCI
Maska addonów ma teraz sześć kategorii. 63 oznacza wszystkie, 32 tylko aktywne rozszerzenia.
Test integracyjny: tests/abilities/active_abilities_test.tscn.
MIKSER DŹWIĘKÓW BRONI
Układ: res://default_bus_layout.tres (ustawiony jako domyślny w projekcie).
Panel Audio Godota: Plasma, MachineGun, Laser, Missile — każda szyna ma osobny
suwak głośności i własny AudioEffectEQ10. Kliknij efekt, aby edytować pasma equalizera
w Inspectorze. Domyślnie pasma są neutralne (0 dB), szyny mają -6 dB i wysyłają do Master.
WeaponAudio.BUS_NAMES przypisuje rodzaj broni do szyny. Głośność gracza na odtwarzaczu
wynosi 0 dB, plazma wrogów -4 dB względem szyny. Zmiana szyny Plasma obejmuje oba źródła.
Muzyka i inne dźwięki nie przechodzą przez szyny broni.

View File

@ -15,6 +15,10 @@ run/main_scene="res://scenes/ui/main_menu.tscn"
config/features=PackedStringArray("4.7", "Forward Plus")
config/icon="res://icon.svg"
[audio]
buses/default_bus_layout="res://default_bus_layout.tres"
[autoload]
GameState="*res://scripts/game/game_state.gd"

View File

@ -1,17 +1,12 @@
[gd_resource type="Resource" script_class="ItemAffixDefinition" load_steps=2 format=3]
[gd_resource type="Resource" script_class="ItemAffixDefinition" format=3 uid="uid://c2eetdapysts2"]
[ext_resource type="Script" path="res://scripts/items/item_affix_definition.gd" id="1_affix"]
[ext_resource type="Script" uid="uid://cp6ucjqrac8so" path="res://scripts/items/item_affix_definition.gd" id="1_affix"]
[resource]
script = ExtResource("1_affix")
affix_id = "damage_percent"
display_name = "Obrażenia broni"
stat_key = "damage_percent"
unit = "%"
selection_weight = 1.0
category_mask = 63
minimum_value_level_1 = 1
maximum_value_level_1 = 3
minimum_value_level_1000 = 25
maximum_value_level_1000 = 50
allowed_item_ids = null
excluded_item_ids = null
incompatible_affix_ids = null

View File

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="ItemDefinition" load_steps=4 format=3]
[gd_resource type="Resource" script_class="ItemDefinition" format=3 uid="uid://dtdl8fh8nlr0q"]
[ext_resource type="Script" path="res://scripts/items/item_definition.gd" id="1"]
[ext_resource type="Script" path="res://scripts/abilities/afterburner_ability.gd" id="2"]
[ext_resource type="Script" uid="uid://d2fdtd4wjk7d" path="res://scripts/items/item_definition.gd" id="1"]
[ext_resource type="Script" uid="uid://bpaiuqwsxswii" path="res://scripts/abilities/afterburner_ability.gd" id="2"]
[sub_resource type="Resource" id="Ability"]
script = ExtResource("2")

View File

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="ItemDefinition" load_steps=4 format=3]
[gd_resource type="Resource" script_class="ItemDefinition" format=3 uid="uid://cdctway64tj3m"]
[ext_resource type="Script" path="res://scripts/items/item_definition.gd" id="1"]
[ext_resource type="Script" path="res://scripts/abilities/repair_drones_ability.gd" id="2"]
[ext_resource type="Script" uid="uid://d2fdtd4wjk7d" path="res://scripts/items/item_definition.gd" id="1"]
[ext_resource type="Script" uid="uid://bgofku10gduus" path="res://scripts/abilities/repair_drones_ability.gd" id="2"]
[sub_resource type="Resource" id="Ability"]
script = ExtResource("2")

View File

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="ItemDefinition" load_steps=4 format=3]
[gd_resource type="Resource" script_class="ItemDefinition" format=3 uid="uid://cacthg4s2nnxi"]
[ext_resource type="Script" path="res://scripts/items/item_definition.gd" id="1"]
[ext_resource type="Script" path="res://scripts/abilities/shield_charge_ability.gd" id="2"]
[ext_resource type="Script" uid="uid://d2fdtd4wjk7d" path="res://scripts/items/item_definition.gd" id="1"]
[ext_resource type="Script" uid="uid://bwka1dwxq64sl" path="res://scripts/abilities/shield_charge_ability.gd" id="2"]
[sub_resource type="Resource" id="Ability"]
script = ExtResource("2")

View File

@ -6,7 +6,7 @@
[ext_resource type="Script" uid="uid://bcfvflaqnmfa5" path="res://scripts/game/flight_hud.gd" id="4_hud"]
[ext_resource type="PackedScene" path="res://scenes/ui/ship_equipment_panel.tscn" id="5_equipment"]
[ext_resource type="PackedScene" path="res://scenes/ui/ship_inventory_panel.tscn" id="6_inventory"]
[ext_resource type="Script" path="res://scripts/game/scene_music_player.gd" id="8_scene_music"]
[ext_resource type="Script" uid="uid://dvokq8qdccw37" path="res://scripts/game/scene_music_player.gd" id="8_scene_music"]
[ext_resource type="PackedScene" path="res://scenes/ui/captain_panel.tscn" id="9_captain"]
[sub_resource type="RectangleShape2D" id="TopWall"]
@ -99,7 +99,7 @@ offset_top = 224.0
offset_right = -10.0
offset_bottom = 504.0
grow_horizontal = 0
grow_vertical = 0
grow_vertical = 1
[node name="ShipInventoryPanel" parent="HUD/HUDRoot" unique_id=1116676462 instance=ExtResource("6_inventory")]
layout_mode = 0
@ -115,9 +115,8 @@ offset_bottom = 128.0
grow_horizontal = 2
grow_vertical = 2
[node name="CaptainPanel" parent="HUD/HUDRoot" instance=ExtResource("9_captain")]
[node name="CaptainPanel" parent="HUD/HUDRoot" unique_id=424797965 instance=ExtResource("9_captain")]
layout_mode = 0
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -270.0

View File

@ -85,7 +85,8 @@ func _fire_plasma(direction: Vector2) -> void:
var projectile := PLASMA_PROJECTILE_SCENE.instantiate() as Area2D
projectile.call("configure", global_position + direction * 28.0, direction, weapon_damage)
get_parent().add_child(projectile)
WEAPON_AUDIO_SCRIPT.play(get_parent(), global_position, ItemDefinition.WeaponKind.PLASMA, -10.0)
# Relative to the Plasma bus: enemy shots are 4 dB quieter than player shots.
WEAPON_AUDIO_SCRIPT.play(get_parent(), global_position, ItemDefinition.WeaponKind.PLASMA, -4.0)
func take_weapon_hit(amount: float, critical: bool) -> void:
take_damage(amount, critical)

View File

@ -10,7 +10,14 @@ const SOUND_PATHS := {
static var _streams: Dictionary = {}
static func play(parent: Node, source_position: Vector2, weapon_kind: int, volume_db: float = -6.0) -> void:
const BUS_NAMES := {
ItemDefinition.WeaponKind.PLASMA: &"Plasma",
ItemDefinition.WeaponKind.MACHINE_GUN: &"MachineGun",
ItemDefinition.WeaponKind.LASER: &"Laser",
ItemDefinition.WeaponKind.MISSILE: &"Missile",
}
static func play(parent: Node, source_position: Vector2, weapon_kind: int, volume_db: float = 0.0) -> void:
if not is_instance_valid(parent):
return
@ -25,6 +32,7 @@ static func play(parent: Node, source_position: Vector2, weapon_kind: int, volum
var player := AudioStreamPlayer2D.new()
player.stream = stream
player.bus = BUS_NAMES[weapon_kind]
player.volume_db = volume_db
player.max_distance = 1500.0
player.attenuation = 1.0