added simulated drop to arrows

This commit is contained in:
derek
2025-06-27 14:02:22 -05:00
parent 24e531faca
commit adbec01a63
6 changed files with 32 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ class_name Arrow
var follow_target
var spawn_out = false
const SPEED_DRAIN_RATE : float = 10.0
func _ready() -> void:
pickup_collision.monitorable = false
@@ -23,14 +24,19 @@ func _physics_process(delta: float) -> void:
reparent(body_hit)
var stick_point = hit_ray.get_collision_point()
if land_depth.global_position.distance_to(stick_point) > .2:
global_position += global_transform.basis * Vector3(0,0,-speed) * delta
arrow_move(delta)
else:
global_position += global_transform.basis * Vector3(0,0,-speed) * delta
arrow_move(delta)
else:
pickup_collision.monitorable = true
pickup_follow(delta)
func arrow_move(delta):
current_speed = clamp(current_speed - (delta * SPEED_DRAIN_RATE),0,1000)
var applied_gravity = -9.8 * ((start_speed - current_speed) / current_speed)
global_position += global_transform.basis * Vector3(0,applied_gravity,-current_speed) * delta
func pickup_follow(delta):
if follow_target != null:
follow_target.arrows += 1