Some code style fixes. Fixed enemy spawning
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+2
-2
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user