From a19a5eeb80b78ca761b82526b43326359731c467 Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Sun, 7 Dec 2025 23:51:00 +0300 Subject: [PATCH] Some code style fixes. Fixed enemy spawning --- game/controllers/enemy_controller.gd | 10 +++---- game/controllers/enemy_swamp_controller.gd | 6 ++--- game/controllers/player_controller.gd | 1 + game/entities/other/blast.gd | 6 ++--- game/entities/other/explosion_particles.gd | 11 ++++---- game/entities/ships/abstract_ship.gd | 17 ++++++------ .../ships/enemies/abstract_enemy_ship.gd | 6 ++--- game/entities/ships/player/player_ship.gd | 6 ++--- game/entities/weapons/abstract_projectile.gd | 8 +++--- game/entities/weapons/abstract_weapon.gd | 19 +++++++------- .../weapons/launcher/launcher_projectile.gd | 5 ++-- .../weapons/launcher/launcher_weapon.gd | 7 +++-- .../weapons/minelayer/minelayer_projectile.gd | 26 +++++++++---------- .../weapons/tesla/tesla_projectile.gd | 6 ++--- game/health_system/health.gd | 8 +++--- .../health_bar/health_bar_part.gd | 15 ++++++----- game/passage.gd | 4 +-- game/world/generators/area_generator.gd | 8 +++--- game/world/generators/passage_generator.gd | 6 ++--- game/world/generators/stage_generator.gd | 6 ++--- game/world/generators/world_generator.gd | 6 ++--- managers/settings_manager.gd | 3 +-- menu/pause_menu.gd | 8 +++--- 23 files changed, 100 insertions(+), 98 deletions(-) diff --git a/game/controllers/enemy_controller.gd b/game/controllers/enemy_controller.gd index 563b681..813108d 100644 --- a/game/controllers/enemy_controller.gd +++ b/game/controllers/enemy_controller.gd @@ -6,12 +6,12 @@ signal accelerate(direction: Vector2, delta: float) signal shoot() -@export var ship: AbstractEnemyShip - - const FREE_FLIGHT_DIST = 50 +@export var ship: AbstractEnemyShip + + var target_position : Vector2 var direction : Vector2 @@ -23,10 +23,10 @@ func _physics_process(delta: float) -> void: func _on_direction_timer_timeout() -> void: - direction = get_acceleration_direction() + direction = _get_acceleration_direction() -func get_acceleration_direction() -> Vector2: +func _get_acceleration_direction() -> Vector2: var distance := ship.position.distance_to(target_position) if distance < FREE_FLIGHT_DIST: diff --git a/game/controllers/enemy_swamp_controller.gd b/game/controllers/enemy_swamp_controller.gd index 4da0cba..92f4035 100644 --- a/game/controllers/enemy_swamp_controller.gd +++ b/game/controllers/enemy_swamp_controller.gd @@ -2,9 +2,6 @@ class_name EnemySwampController extends Node -@export var passage : Passage - - const SMALL_ENEMY = preload("res://game/entities/ships/enemies/small/small_enemy_ship.tscn") const MEDIUM_ENEMY = preload("res://game/entities/ships/enemies/medium/medium_enemy_ship.tscn") const HEAVY_ENEMY = preload("res://game/entities/ships/enemies/heavy/heavy_enemy_ship.tscn") @@ -21,6 +18,9 @@ const MIN_POSITION = Vector2(300, 30) const MAX_POSITION = Vector2(600, 330) +@export var passage : Passage + + @onready var enemy_update_timer : Timer = $EnemyUpdateTimer diff --git a/game/controllers/player_controller.gd b/game/controllers/player_controller.gd index 9281ab0..b175f58 100644 --- a/game/controllers/player_controller.gd +++ b/game/controllers/player_controller.gd @@ -21,5 +21,6 @@ func _input(event: InputEvent) -> void: if not input_direction.is_zero_approx(): blink.emit(input_direction) + func _get_input_direction() -> Vector2: return Input.get_vector("move_left", "move_right", "move_up", "move_down") diff --git a/game/entities/other/blast.gd b/game/entities/other/blast.gd index a9cd8d6..d2af3e8 100644 --- a/game/entities/other/blast.gd +++ b/game/entities/other/blast.gd @@ -2,13 +2,13 @@ class_name Blast extends Area2D +const FALLOFF_FACTOR = 3 + + @export var damage : AbstractDamage @export var shape : CircleShape2D -const FALLOFF_FACTOR = 3 - - @onready var collision : CollisionShape2D = $CollisionShape2D diff --git a/game/entities/other/explosion_particles.gd b/game/entities/other/explosion_particles.gd index 535b64e..6809ab0 100644 --- a/game/entities/other/explosion_particles.gd +++ b/game/entities/other/explosion_particles.gd @@ -9,14 +9,8 @@ signal finished @export_range(0, 1) var amount_ratio: float = 1 -@onready var particles_huge : GPUParticles2D = $ParticlesHuge -@onready var particles_large : GPUParticles2D = $ParticlesLarge -@onready var particles_medium : GPUParticles2D = $ParticlesMedium - - var _emiting_count := 0 - var emitting : bool = false: set(value): emitting = value @@ -25,6 +19,11 @@ var emitting : bool = false: if particles_medium: particles_medium.emitting = emitting; _emiting_count += 1 +@onready var particles_huge : GPUParticles2D = $ParticlesHuge +@onready var particles_large : GPUParticles2D = $ParticlesLarge +@onready var particles_medium : GPUParticles2D = $ParticlesMedium + + func _ready() -> void: particles_huge.amount_ratio = amount_ratio particles_large.amount_ratio = amount_ratio diff --git a/game/entities/ships/abstract_ship.gd b/game/entities/ships/abstract_ship.gd index 0dd4571..1b8e7fe 100644 --- a/game/entities/ships/abstract_ship.gd +++ b/game/entities/ships/abstract_ship.gd @@ -2,6 +2,9 @@ class_name AbstractShip extends CharacterBody2D +signal destroyed + + const CANNON = preload("res://game/entities/weapons/cannon/cannon_weapon.tscn") const GATLING = preload("res://game/entities/weapons/gatling/gatling_weapon.tscn") const LASER = preload("res://game/entities/weapons/laser/laser_weapon.tscn") @@ -19,9 +22,6 @@ const WEAPONS := [ ] -signal destroyed - - @export_range(0, 250) var acceleration : int = 0 @export_range(0, 250) var deceleration : int = 0 @export_range(0, 250) var max_speed : int = 0 @@ -30,6 +30,11 @@ signal destroyed @export_range(0, 360) var weapon_rotation : int = 0 +var weapon_positions: Array[Vector2] + +var _weapons : Array[AbstractWeapon] + + @onready var ship_sprite : Sprite2D = $ShipSprite @onready var armor_sprite : Sprite2D = $ArmorSprite @onready var shield_sprite : Sprite2D = $ShieldSprite @@ -37,12 +42,6 @@ signal destroyed @onready var health : Health = $Health -var weapon_positions: Array[Vector2] - - -var _weapons : Array[AbstractWeapon] - - func _ready() -> void: shield_sprite.visible = health.shield != 0 armor_sprite.visible = health.armor != 0 diff --git a/game/entities/ships/enemies/abstract_enemy_ship.gd b/game/entities/ships/enemies/abstract_enemy_ship.gd index aa95652..63fcbac 100644 --- a/game/entities/ships/enemies/abstract_enemy_ship.gd +++ b/game/entities/ships/enemies/abstract_enemy_ship.gd @@ -2,13 +2,13 @@ class_name AbstractEnemyShip extends AbstractShip -@onready var controller : EnemyController = $EnemyController - - var is_on_screen : bool = false var weapon_type : AbstractWeapon.Type = AbstractWeapon.Type.NONE +@onready var controller : EnemyController = $EnemyController + + func _ready() -> void: super._ready() diff --git a/game/entities/ships/player/player_ship.gd b/game/entities/ships/player/player_ship.gd index d4d6660..1b70be7 100644 --- a/game/entities/ships/player/player_ship.gd +++ b/game/entities/ships/player/player_ship.gd @@ -2,12 +2,12 @@ class_name PlayerShip extends AbstractShip -@export_range(0, 200) var blink_range := 0 - - const ENEMY_LAYER = 4 +@export_range(0, 200) var blink_range := 0 + + @onready var blink_timer : Timer = $BlinkTimer @onready var blink_shadow : GPUParticles2D = $BlinkShadow diff --git a/game/entities/weapons/abstract_projectile.gd b/game/entities/weapons/abstract_projectile.gd index 7a647b2..e15cbca 100644 --- a/game/entities/weapons/abstract_projectile.gd +++ b/game/entities/weapons/abstract_projectile.gd @@ -11,10 +11,6 @@ const ENEMY_PROJECTILE_LAYER = 16 @export_range(0, 1000) var speed : int = 0 -@onready var collision : CollisionShape2D = $CollisionShape2D -@onready var out_of_screen_timer : Timer = $OutOfScreenTimer - - var direction : Vector2 var ship_velocity: Vector2 @@ -32,6 +28,10 @@ var collide_enemies: bool: var _velocity: Vector2 +@onready var collision : CollisionShape2D = $CollisionShape2D +@onready var out_of_screen_timer : Timer = $OutOfScreenTimer + + func _ready() -> void: _velocity = direction.normalized() * speed + ship_velocity _update_collision_rotation(_velocity) diff --git a/game/entities/weapons/abstract_weapon.gd b/game/entities/weapons/abstract_weapon.gd index 95f45c2..7ed7401 100644 --- a/game/entities/weapons/abstract_weapon.gd +++ b/game/entities/weapons/abstract_weapon.gd @@ -6,16 +6,6 @@ enum Belonging { PLAYER, ENEMY } enum Type { NONE, SHORT_RANGE, MEDIUM_RANGE, LONG_RANGE, HOMING, MINES } -@export_range(1, 100) var bullet_per_shot : int = 1 -@export_range(0, 360) var sector_angle : int = 0 - -@export var Projectile : PackedScene -@export var type := Type.NONE - - -@onready var muzzle : Node2D = $Muzzle - - const PREFIXES := { Belonging.PLAYER: "player", Belonging.ENEMY: "enemy", @@ -26,10 +16,19 @@ const IDLE_POSTFIX = "_idle" const RELOAD_POSTFIX = "_reloading" +@export_range(1, 100) var bullet_per_shot : int = 1 +@export_range(0, 360) var sector_angle : int = 0 + +@export var Projectile : PackedScene +@export var type := Type.NONE + + var _belonging: Belonging var _can_shoot := true +@onready var muzzle : Node2D = $Muzzle + func set_belonging(belonging: Belonging) -> void: _belonging = belonging diff --git a/game/entities/weapons/launcher/launcher_projectile.gd b/game/entities/weapons/launcher/launcher_projectile.gd index 266a512..a121472 100644 --- a/game/entities/weapons/launcher/launcher_projectile.gd +++ b/game/entities/weapons/launcher/launcher_projectile.gd @@ -5,14 +5,15 @@ extends BlastProjectile @export_range(0, 360) var rotation_speed: int +var target : AbstractShip = null + + @onready var sprites : Array[Sprite2D] = [ $Sprite2D_E, $Sprite2D_SE, $Sprite2D_S, $Sprite2D_SW, $Sprite2D_W, $Sprite2D_NW, $Sprite2D_N, $Sprite2D_NE, ] @onready var explosion_particles : ExplosionParticles = $ExplosionParticles -var target : AbstractShip = null - func _ready() -> void: _acquire_target() diff --git a/game/entities/weapons/launcher/launcher_weapon.gd b/game/entities/weapons/launcher/launcher_weapon.gd index 2b5b08c..184a4d0 100644 --- a/game/entities/weapons/launcher/launcher_weapon.gd +++ b/game/entities/weapons/launcher/launcher_weapon.gd @@ -5,15 +5,18 @@ extends AbstractWeapon @onready var enemy_sprite : Sprite2D = $EnemySprite @onready var cooldown_timer : Timer = $CooldownTimer + +var _particles_index := 0 +var _muzzle_index := 0 + + @onready var particles : Array[GPUParticles2D] = [ $LeftParticles, $RightParticles, ] -var _particles_index := 0 @onready var muzzles : Array[Node2D] = [ $Muzzle, $SecondMuzzle, ] -var _muzzle_index := 0 func set_belonging(belonging: Belonging) -> void: diff --git a/game/entities/weapons/minelayer/minelayer_projectile.gd b/game/entities/weapons/minelayer/minelayer_projectile.gd index 8c2a6f0..6a85971 100644 --- a/game/entities/weapons/minelayer/minelayer_projectile.gd +++ b/game/entities/weapons/minelayer/minelayer_projectile.gd @@ -2,14 +2,11 @@ class_name MinelayerProjectile extends BlastProjectile -@export var deceleration : int - - -@onready var sprite_on := $Sprite2D_On -@onready var sprite_off := $Sprite2D_Off -@onready var sprite_on_timer := $SpriteOnTimer -@onready var sprite_off_timer := $SpriteOffTimer -@onready var explosion_particles : ExplosionParticles = $ExplosionParticles +enum SpriteState { + ON, + OFF, + Disabled, +} const OFF_TIMES = [ @@ -20,11 +17,7 @@ const ON_TIME = 0.05 const SCROLL_VELOCITY = Vector2(-50, 0) -enum SpriteState { - ON, - OFF, - Disabled, -} +@export var deceleration : int var _bodies_inside: Array[Node2D] = [] @@ -33,6 +26,13 @@ var _current_sprite_state : SpriteState: set = _switch_sprite +@onready var sprite_on := $Sprite2D_On +@onready var sprite_off := $Sprite2D_Off +@onready var sprite_on_timer := $SpriteOnTimer +@onready var sprite_off_timer := $SpriteOffTimer +@onready var explosion_particles : ExplosionParticles = $ExplosionParticles + + func _ready() -> void: _current_sprite_state = SpriteState.OFF super._ready() diff --git a/game/entities/weapons/tesla/tesla_projectile.gd b/game/entities/weapons/tesla/tesla_projectile.gd index ae758fa..6b8a12d 100644 --- a/game/entities/weapons/tesla/tesla_projectile.gd +++ b/game/entities/weapons/tesla/tesla_projectile.gd @@ -8,6 +8,9 @@ extends DirectHitProjectile @export_range(0, 1000) var no_deviation_distance: int = 0 +var _collided_foes : Array[AbstractShip] = [] + + @onready var jinkTimer : Timer = $JinkTimer @onready var particles_huge : GPUParticles2D = $ParticlesHuge @@ -16,9 +19,6 @@ extends DirectHitProjectile @onready var particles_small : GPUParticles2D = $ParticlesSmall -var _collided_foes : Array[AbstractShip] = [] - - func _ready() -> void: super._ready() _start_jink_timer() diff --git a/game/health_system/health.gd b/game/health_system/health.gd index 10e6375..00f6979 100644 --- a/game/health_system/health.gd +++ b/game/health_system/health.gd @@ -25,10 +25,6 @@ signal depleted hull_updated.emit(_hull, max_hull) -@onready var shield_regen_delay_timer : Timer = $ShieldRegenDelayTimer -@onready var shield_regen_tick_timer : Timer = $ShieldRegenTickTimer - - var shield: int: get: return _shield set(value): pass @@ -40,6 +36,10 @@ var hull: int: set(value): pass +@onready var shield_regen_delay_timer : Timer = $ShieldRegenDelayTimer +@onready var shield_regen_tick_timer : Timer = $ShieldRegenTickTimer + + @onready var _shield := max_shield: set(value): _shield = value diff --git a/game/health_system/health_bar/health_bar_part.gd b/game/health_system/health_bar/health_bar_part.gd index 9628084..09a79e3 100644 --- a/game/health_system/health_bar/health_bar_part.gd +++ b/game/health_system/health_bar/health_bar_part.gd @@ -1,10 +1,18 @@ class_name HealthBarPart extends Control + +const TICK_COUNT = 5 + + @export var texture_value : Texture2D @export var texture_shade : Texture2D +var _tick_size : int = 0 +var _target_value: float = 0 + + @onready var value_bar : TextureProgressBar = $ValueBar @onready var shade_bar : TextureProgressBar = $ShadeBar @@ -12,13 +20,6 @@ extends Control @onready var shade_tick_timer : Timer = $ShadeTickTimer -const TICK_COUNT = 5 - - -var _tick_size : int = 0 -var _target_value: float = 0 - - func _ready() -> void: value_bar.texture_progress = texture_value shade_bar.texture_progress = texture_shade diff --git a/game/passage.gd b/game/passage.gd index a9f621f..4de4444 100644 --- a/game/passage.gd +++ b/game/passage.gd @@ -11,12 +11,12 @@ signal player_died func _on_enemy_timer_timeout() -> void: var enemies := get_tree().get_nodes_in_group("enemies") - if enemies.size() < 1: + if enemies.size() < 25: enemy_swamp_controller.create_enemy() var factor := maxi(enemies.size(), 1) * 0.5 - enemy_timer.start(randf_range(1 * factor, 3 * factor)) + enemy_timer.start(randf_range(1 * factor, 2 * factor)) func _on_player_ship_destroyed() -> void: diff --git a/game/world/generators/area_generator.gd b/game/world/generators/area_generator.gd index 181bb30..47e67d5 100644 --- a/game/world/generators/area_generator.gd +++ b/game/world/generators/area_generator.gd @@ -2,10 +2,6 @@ class_name AreaGenerator extends Node -@onready var stage_generator : StageGenerator = $StageGenerator -@onready var passage_generator : PassageGenerator = $PassageGenerator - - const STAGE_COUNT = 9 const EXTRA_PASSAGE_CHANCE = 20 @@ -18,6 +14,10 @@ var passage_chance_rng : RandomNumberGenerator = RandomNumberGenerator.new() var passage_direction_rng : RandomNumberGenerator = RandomNumberGenerator.new() +@onready var stage_generator : StageGenerator = $StageGenerator +@onready var passage_generator : PassageGenerator = $PassageGenerator + + func generate(seed_value: int) -> AreaData: local_seed_rng.seed = seed_value stage_seed_rng.seed = local_seed_rng.randi() diff --git a/game/world/generators/passage_generator.gd b/game/world/generators/passage_generator.gd index 9f1a63b..b268d5b 100644 --- a/game/world/generators/passage_generator.gd +++ b/game/world/generators/passage_generator.gd @@ -5,13 +5,13 @@ extends Node const ENEMY_COUNT = 10 -@onready var enemy_generator : EnemyGenerator = $EnemyGenerator - - var local_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() var enemy_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() +@onready var enemy_generator : EnemyGenerator = $EnemyGenerator + + func generate(seed_value: int) -> PassageData: local_seed_rng.seed = seed_value enemy_seed_rng.seed = local_seed_rng.randi() diff --git a/game/world/generators/stage_generator.gd b/game/world/generators/stage_generator.gd index d7c8904..92816fb 100644 --- a/game/world/generators/stage_generator.gd +++ b/game/world/generators/stage_generator.gd @@ -9,14 +9,14 @@ const CHANSES_BY_SECTOR_COUNT : Dictionary[int, int] = { } -@onready var sector_generator : SectorGenerator = $SectorGenerator - - var local_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() var sector_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() var sector_count_rng : RandomNumberGenerator = RandomNumberGenerator.new() +@onready var sector_generator : SectorGenerator = $SectorGenerator + + func generate(seed_value: int, is_endpoint: bool = false) -> StageData: local_seed_rng.seed = seed_value sector_seed_rng.seed = local_seed_rng.randi() diff --git a/game/world/generators/world_generator.gd b/game/world/generators/world_generator.gd index 9b665b6..3ad0704 100644 --- a/game/world/generators/world_generator.gd +++ b/game/world/generators/world_generator.gd @@ -2,9 +2,6 @@ class_name WorldGenerator extends Node -@onready var area_generator : AreaGenerator = $AreaGenerator - - const AREA_COUNT = 3 @@ -12,6 +9,9 @@ var local_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() var area_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() +@onready var area_generator : AreaGenerator = $AreaGenerator + + func generate(seed_value: int) -> WorldData: local_seed_rng.seed = seed_value area_seed_rng.seed = local_seed_rng.randi() diff --git a/managers/settings_manager.gd b/managers/settings_manager.gd index 944bdfc..8afa493 100644 --- a/managers/settings_manager.gd +++ b/managers/settings_manager.gd @@ -7,8 +7,8 @@ const CATEGORY_VIDEO = "video" const SETTING_FULLSCREEN = "fullscreen" const SETTING_WINDOW_FACTOR = "window_factor" -var _config: ConfigFile +var _config: ConfigFile var _fullscreen := false var fullscreen : bool: @@ -19,7 +19,6 @@ var fullscreen : bool: _apply_video_settings() _save_settings() - var _window_factor := 0 var window_factor : int: get: diff --git a/menu/pause_menu.gd b/menu/pause_menu.gd index 904d725..acf636c 100644 --- a/menu/pause_menu.gd +++ b/menu/pause_menu.gd @@ -1,15 +1,15 @@ extends Control -@onready var continue_button := $%ContinueButton -@onready var main_menu_button := $%MainMenuButton - - signal continue_game signal show_main_menu signal show_options +@onready var continue_button := $%ContinueButton +@onready var main_menu_button := $%MainMenuButton + + func _ready() -> void: _init_focus() _setup_neighbors()