Diffstat (limited to 'bullets/scripts/Laser.gd')
| -rw-r--r-- | bullets/scripts/Laser.gd | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/bullets/scripts/Laser.gd b/bullets/scripts/Laser.gd index de0c1c1..8006ea9 100644 --- a/bullets/scripts/Laser.gd +++ b/bullets/scripts/Laser.gd @@ -22,46 +22,54 @@ const HitEffect = preload("res://effects/HitEffect.tscn") const Trail = preload("res://effects/Trail.tscn") var choosing = 0 +onready var light = $"%Light" +onready var anims: AnimatedSprite = $"%Laser" +onready var laser_sound: AudioStreamPlayer = $"%LaserSound" + func _ready(): - yield(get_tree().create_timer(.1), "timeout") + set_lights(ProjectSettings.get_setting("global/bullet_lights")) + yield(get_tree(), "idle_frame") visible = true var direction = Vector2(initial_velocity, rand_range(spreadmaxneg, spreadmaxpos)) apply_impulse(Vector2.ZERO, direction) rotation = direction.angle() - $LaserSound.pitch_scale = randf() + 0.4 - $LaserSound.play() - $Laser.playing = true randomize() - var rand = rand_range(minscalingrand, maxscalingrand) + laser_sound.pitch_scale = randf() + 0.4 + #warning-ignore: narrowing_conversion + anims.frame = rand_range(0, 13) + + laser_sound.play() + anims.play() if powered_up: scalingrand = true if scalingrand: + var rand = rand_range(minscalingrand, maxscalingrand) var to_scale = Vector2(rand, rand) if powered_up: to_scale += Vector2(1.5, 1.5) - $Laser.scale = to_scale + anims.scale = to_scale $Collision.scale = to_scale if scale_glow: - $Light.texture_scale += to_scale.x / 3 - var animatedSprite = $Laser - animatedSprite.frame = rand_range(0, 13) + light.texture_scale += to_scale.x / 3 if trail: if trail_rare: var chance = rand_range(rarity_min, rarity_max) chance = round(chance) if chance == 1: var trailinstance = Trail.instance() - self.add_child(trailinstance) + add_child(trailinstance) if powered_up: + var rand = rand_range(minscalingrand, maxscalingrand) trailinstance.THICKNESS = rand * 2 else: var trailinstance = Trail.instance() - self.add_child(trailinstance) + add_child(trailinstance) if powered_up: + var rand = rand_range(minscalingrand, maxscalingrand) trailinstance.THICKNESS = rand * 2 @@ -74,5 +82,12 @@ func _on_VisibilityNotifier2D_screen_exited(): func _physics_process(delta): - if modulate_glow: - $Light.colors.a -= modulate_amount * delta + if light.enabled: + light.color.a -= modulate_amount * delta + if light.color.a < 0: + light.enabled = false + set_physics_process(false) + + +func set_lights(enabled: bool) -> void: + light.enabled = enabled |