stormy day

This commit is contained in:
Haze Weathers 2024-12-27 12:00:57 -05:00
parent 72761e3de7
commit 6c211c364c
14 changed files with 266 additions and 28 deletions

34
objects/gfx/lightning.gd Normal file
View file

@ -0,0 +1,34 @@
extends Node2D
export var color: Color
export var width: float = 1.5
export var segments: int
export var segment_length: float
export var angle_min: float
export var angle_max: float
export var branch_chance: float
export var fade_time: float
func _ready() -> void:
var tween = create_tween()
tween.tween_property(self, "modulate:a", 0.0, fade_time).set_trans(Tween.TRANS_EXPO)
tween.tween_callback(self, "queue_free")
func _draw() -> void:
var pos := Vector2.ZERO
var dir := Vector2.DOWN * segment_length
var offset = randi() % 2
for i in range(offset, segments + offset):
var angle = rand_range(angle_min, angle_max)
if i % 2 == 0:
angle *= -1.0
dir = dir.rotated(deg2rad(angle))
var new_pos = pos + dir
draw_line(pos, new_pos, color, width, false)
if randf() <= branch_chance:
dir = dir.rotated(deg2rad(angle) * -2.0)
draw_line(pos, pos + dir, color, width, false)
pos = new_pos