From 0f317362dceb7613722584443e8af43a99639d71 Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Thu, 11 Dec 2025 16:42:31 +0300 Subject: [PATCH] Added passage length. Minor fixes --- game/entities/ships/abstract_ship.gd | 9 +++++++-- game/entities/ships/abstract_ship.tscn | 2 +- game/passage.tscn | 2 +- game/world/data/passage_data.gd | 2 ++ game/world/generators/passage_generator.gd | 9 +++++++++ 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/game/entities/ships/abstract_ship.gd b/game/entities/ships/abstract_ship.gd index 1b8e7fe..8aca41c 100644 --- a/game/entities/ships/abstract_ship.gd +++ b/game/entities/ships/abstract_ship.gd @@ -21,6 +21,8 @@ const WEAPONS := [ RAILGUN, SHRAPNEL, TESLA, ] +const SHADER_INTENSITY = "shader_parameter/intensity" + @export_range(0, 250) var acceleration : int = 0 @export_range(0, 250) var deceleration : int = 0 @@ -49,6 +51,9 @@ func _ready() -> void: for slot in $WeaponSlots.get_children(): if slot is Node2D: weapon_positions.append(slot.global_position - global_position) + + armor_sprite.material.set(SHADER_INTENSITY, health.armor/float(health.max_armor)) + shield_sprite.material.set(SHADER_INTENSITY, health.shield/float(health.max_shield)) func _physics_process(_delta: float) -> void: @@ -109,12 +114,12 @@ func _add_weapon(weapon: AbstractWeapon, weapon_position: Vector2) -> void: func _on_shield_updated(value: int, max_value: int) -> void: shield_sprite.visible = value != 0 - shield_sprite.material.set("shader_parameter/intensity", value/float(max_value)) + shield_sprite.material.set(SHADER_INTENSITY, value/float(max_value)) func _on_armor_updated(value: int, max_value: int) -> void: armor_sprite.visible = value != 0 - armor_sprite.material.set("shader_parameter/intensity", value/float(max_value)) + armor_sprite.material.set(SHADER_INTENSITY, value/float(max_value)) func _on_hull_updated(_value: int, _max_value: int) -> void: diff --git a/game/entities/ships/abstract_ship.tscn b/game/entities/ships/abstract_ship.tscn index a5d8350..f551641 100644 --- a/game/entities/ships/abstract_ship.tscn +++ b/game/entities/ships/abstract_ship.tscn @@ -36,7 +36,7 @@ material = SubResource("ShaderMaterial_bkxo4") [node name="Health" parent="." instance=ExtResource("2_xxtvk")] [node name="HeathBar" parent="." node_paths=PackedStringArray("health") instance=ExtResource("3_l62e5")] -z_index = 101 +z_index = 51 health = NodePath("../Health") [node name="WeaponSlots" type="Node2D" parent="."] diff --git a/game/passage.tscn b/game/passage.tscn index f01cb5d..fd13114 100644 --- a/game/passage.tscn +++ b/game/passage.tscn @@ -59,7 +59,7 @@ autostart = true [node name="Background" parent="." instance=ExtResource("4_cuj01")] [node name="TextureProgressBar" type="TextureProgressBar" parent="."] -z_index = 100 +z_index = 50 anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 diff --git a/game/world/data/passage_data.gd b/game/world/data/passage_data.gd index 8da5c9f..33bf958 100644 --- a/game/world/data/passage_data.gd +++ b/game/world/data/passage_data.gd @@ -20,6 +20,8 @@ enum PassageType { @export var seed_value : int = 0 +@export var length : float = 0 + @export var type : PassageType = PassageType.ZeroGrad diff --git a/game/world/generators/passage_generator.gd b/game/world/generators/passage_generator.gd index b268d5b..4df7838 100644 --- a/game/world/generators/passage_generator.gd +++ b/game/world/generators/passage_generator.gd @@ -3,10 +3,13 @@ extends Node const ENEMY_COUNT = 10 +const MIN_LENGTH = 250.0 +const MAX_LENGTH = 350.0 var local_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() var enemy_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() +var length_rng : RandomNumberGenerator = RandomNumberGenerator.new() @onready var enemy_generator : EnemyGenerator = $EnemyGenerator @@ -15,11 +18,13 @@ var enemy_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() func generate(seed_value: int) -> PassageData: local_seed_rng.seed = seed_value enemy_seed_rng.seed = local_seed_rng.randi() + length_rng.seed = local_seed_rng.randi() var data : PassageData = PassageData.new() data.seed_value = seed_value _fill_enemies(data) + _fill_length(data) return data @@ -29,3 +34,7 @@ func _fill_enemies(data: PassageData) -> void: var seed_value := enemy_seed_rng.randi() var enemy := enemy_generator.generate(seed_value) data.enemies.append(enemy) + + +func _fill_length(data: PassageData) -> void: + data.length = length_rng.randf_range(MIN_LENGTH, MAX_LENGTH)