From f4b3fe79ae1bbe79a6856a7a2c6ce8000f2366fb Mon Sep 17 00:00:00 2001 From: Tomasz Boruc Date: Sat, 17 Oct 2026 18:37:56 +0200 Subject: [PATCH] Dzwiek broni --- artifacts/radiation_import.log | 46 +++++++++++++++++++++ artifacts/radiation_import_errors.log | 0 assets/sounds/effects/radiation.mp3 | Bin 0 -> 22272 bytes assets/sounds/effects/radiation.mp3.import | 19 +++++++++ resources/items/gamma_cannon.tres | 2 +- scripts/game/weapon_audio.gd | 2 +- scripts/levels/level_balance.gd | 2 +- tests/levels/enemy_tiers_test.gd | 4 ++ tests/levels/system_generation_test.gd | 3 +- 9 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 artifacts/radiation_import.log create mode 100644 artifacts/radiation_import_errors.log create mode 100644 assets/sounds/effects/radiation.mp3 create mode 100644 assets/sounds/effects/radiation.mp3.import diff --git a/artifacts/radiation_import.log b/artifacts/radiation_import.log new file mode 100644 index 0000000..8f6fa1a --- /dev/null +++ b/artifacts/radiation_import.log @@ -0,0 +1,46 @@ +Godot Engine v4.7.2.stable.official.ed1daf0bf - https://godotengine.org + +[ 0% ] first_scan_filesystem | Started Project initialization (5 steps) +[ 0% ] first_scan_filesystem | Scanning file structure... +[ 16% ] first_scan_filesystem | Loading global class names... +[ 33% ] first_scan_filesystem | Verifying GDExtensions... +[ 50% ] first_scan_filesystem | Creating autoload scripts... +[ 66% ] first_scan_filesystem | Initializing plugins... +Godot MCP Toolkit v1.0.3 — by NPGameDev · npgamedev.com +[MCPExtensions] Hot-reload watcher active +[MCPServer] port: scanning 6550-6560 (default) +[MCPServer] session token written to user://addons/godot_mcp_toolkit/project_instance_32cc2271ac67/mcp_token +[MCPServer] listening on 127.0.0.1:6551 +[MCPRegistry] registered c:/users/tomek/documents/godot/randoloot on port 6551 +[ 83% ] first_scan_filesystem | Starting file scan... +[ DONE ] first_scan_filesystem + +[ 0% ] update_scripts_classes | Started Registering global classes... (4 steps) +[ 0% ] update_scripts_classes | WeaponAudio +[ 20% ] update_scripts_classes |  +[ 40% ] update_scripts_classes |  +[ 60% ] update_scripts_classes |  +[ DONE ] update_scripts_classes + +[ 0% ] reimport | Started (Re)Importing Assets (1 steps) +[ 0% ] reimport | Preparing files to reimport... +[ 0% ] reimport | Executing pre-reimport operations... +[ 0% ] reimport | radiation.mp3 +[ 50% ] reimport | Finalizing Asset Import... +[ DONE ] reimport + +[ 0% ] reimport | Started (Re)Importing Assets (1 steps) +[ 0% ] reimport | Executing post-reimport operations... +[ DONE ] reimport + +[ 0% ] loading_editor_layout | Started Loading editor (5 steps) +[ 0% ] loading_editor_layout | Loading editor layout... +[ 16% ] loading_editor_layout | Loading docks... +[ 33% ] loading_editor_layout | Reopening scenes... +[ 50% ] loading_editor_layout | Loading central editor layout... +[ 66% ] loading_editor_layout | Loading plugin window layout... +[ 83% ] loading_editor_layout | Editor layout ready. +[ DONE ] loading_editor_layout + +[MCPServer] stopped +[MCPRegistry] deregistered c:/users/tomek/documents/godot/randoloot diff --git a/artifacts/radiation_import_errors.log b/artifacts/radiation_import_errors.log new file mode 100644 index 0000000..e69de29 diff --git a/assets/sounds/effects/radiation.mp3 b/assets/sounds/effects/radiation.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..32eef034bab22ccb82db7e09a3653423217907ff GIT binary patch literal 22272 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 F{{pkLwpRcE literal 0 HcmV?d00001 diff --git a/assets/sounds/effects/radiation.mp3.import b/assets/sounds/effects/radiation.mp3.import new file mode 100644 index 0000000..f5a2e08 --- /dev/null +++ b/assets/sounds/effects/radiation.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://xvk4gbt3m8jk" +path="res://.godot/imported/radiation.mp3-702854fbc0298ea0549de8d1ea05ab90.mp3str" + +[deps] + +source_file="res://assets/sounds/effects/radiation.mp3" +dest_files=["res://.godot/imported/radiation.mp3-702854fbc0298ea0549de8d1ea05ab90.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/resources/items/gamma_cannon.tres b/resources/items/gamma_cannon.tres index 7e72f5c..389adca 100644 --- a/resources/items/gamma_cannon.tres +++ b/resources/items/gamma_cannon.tres @@ -14,7 +14,7 @@ stat_suffix = " DMG" weapon_kind = 4 fire_interval = 0.8 projectile_speed = 430.0 -weapon_range = 400.0 +weapon_range = 300.0 damage_lower_roll_min = 10 damage_lower_roll_max = 14 damage_spread_roll_min = 4 diff --git a/scripts/game/weapon_audio.gd b/scripts/game/weapon_audio.gd index e24326f..e655115 100644 --- a/scripts/game/weapon_audio.gd +++ b/scripts/game/weapon_audio.gd @@ -2,7 +2,7 @@ extends RefCounted class_name WeaponAudio const SOUND_PATHS := { - ItemDefinition.WeaponKind.GAMMA: "res://assets/sounds/effects/plasma.mp3", + ItemDefinition.WeaponKind.GAMMA: "res://assets/sounds/effects/radiation.mp3", ItemDefinition.WeaponKind.PLASMA: "res://assets/sounds/effects/plasma.mp3", ItemDefinition.WeaponKind.MACHINE_GUN: "res://assets/sounds/effects/machine_gun.mp3", ItemDefinition.WeaponKind.LASER: "res://assets/sounds/effects/laser.mp3", diff --git a/scripts/levels/level_balance.gd b/scripts/levels/level_balance.gd index 8b7a8d0..dc5494b 100644 --- a/scripts/levels/level_balance.gd +++ b/scripts/levels/level_balance.gd @@ -1,7 +1,7 @@ extends RefCounted const MAX_LEVEL := 1000 -const COUNT_POINTS := [Vector2(1, 5), Vector2(10, 10), Vector2(50, 18), Vector2(100, 23), Vector2(250, 29), Vector2(500, 34), Vector2(1000, 40)] +const COUNT_POINTS := [Vector2(1, 11), Vector2(10, 11), Vector2(15, 11), Vector2(50, 18), Vector2(100, 23), Vector2(250, 29), Vector2(500, 34), Vector2(1000, 40)] const ELITES_PER_LEVEL := 2 static func enemy_count(level: int) -> int: diff --git a/tests/levels/enemy_tiers_test.gd b/tests/levels/enemy_tiers_test.gd index ab98f1a..a9fb11b 100644 --- a/tests/levels/enemy_tiers_test.gd +++ b/tests/levels/enemy_tiers_test.gd @@ -5,6 +5,10 @@ const GENERATOR := preload("res://scripts/levels/system_generator.gd") const ENEMY := preload("res://scenes/game/enemy_ship.tscn") func _ready() -> void: + assert(BALANCE.enemy_tiers(1).count(0) == 8) + assert(preload("res://resources/items/gamma_cannon.tres").weapon_range == 300.0) + for level in range(2, 1001): + assert(BALANCE.enemy_count(level) >= BALANCE.enemy_count(level - 1)) for level in range(1, 1001): var tiers := BALANCE.enemy_tiers(level) assert(tiers.count(1) == 2 and tiers.count(2) == 1) diff --git a/tests/levels/system_generation_test.gd b/tests/levels/system_generation_test.gd index 1d06472..a203db1 100644 --- a/tests/levels/system_generation_test.gd +++ b/tests/levels/system_generation_test.gd @@ -59,8 +59,7 @@ func _ready() -> void: assert(absf(position.x) <= 2380 and absf(position.y) <= 1580) for other_index in range(index + 1, enemies.size()): assert(position.distance_to(enemies[other_index]["position"]) >= GENERATOR.ENEMY_MIN_SEPARATION) - if level <= 10: - assert(enemies[index]["tier"] == (2 if index == 0 else 0)) + assert(enemies[index]["tier"] == BALANCE.enemy_tiers(level)[index]) assert(observed_counts.size() == 5) assert(observed_ship_types.size() == GENERATOR.ALIEN_SHIPS.TEXTURES.size()) print("SYSTEM_GENERATION_TEST: PASS (420 layouts, deterministic retries, planets, safe spawn and level balance 1–1000)")