cave-of-dreams/scripts/projectiles/bullet.gd

37 lines
895 B
GDScript3
Raw Normal View History

extends Node3D
# Called when the node enters the scene tree for the first time.
func pow() -> void:
var going = true
while going:
$Hit.force_raycast_update()
var hit = $Hit.get_collider()
if hit and hit.name == "Player":
pass
elif not hit:
print("hit nothing")
break
elif "health" in hit:
hit.health -= 100
if "on_knockback" in hit: hit.on_knockback()
print(hit.name, hit.health)
else:
print("no health in hit: ", hit.name)
break
$Hit.add_exception(hit)
$Hit.force_raycast_update()
var final_point = $Hit.get_collision_point()
$Line.position.x = -(final_point - global_position).length() / 2.0
$Line.height = (final_point - global_position).length()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
$Line.radius -= delta * 0.2
if $Line.radius <= 0.001: queue_free()