Files
Station-0/scripts/enemies/currency_orb.gd
T

28 lines
924 B
GDScript

extends Area2D
var value: int = 1
func _ready() -> void:
body_entered.connect(_on_body_entered)
# Placeholder visual — gold circle
func _draw() -> void:
draw_circle(Vector2.ZERO, 5.0, Color(1.0, 0.8, 0.1))
draw_arc(Vector2.ZERO, 5.0, 0, TAU, 16, Color(1.0, 1.0, 0.4), 1.0)
func _physics_process(delta: float) -> void:
var player: Node2D = get_tree().get_first_node_in_group("player") as Node2D
if player == null:
return
var pstats: Node = player.get_node_or_null("Stats")
if pstats == null or not pstats.get("scrap_magnet"):
return
var dist: float = global_position.distance_to(player.global_position)
if dist <= float(pstats.get("magnet_radius")) and dist > 1.0:
var dir: Vector2 = (player.global_position - global_position).normalized()
global_position += dir * 240.0 * delta
func _on_body_entered(body: Node) -> void:
if body.is_in_group("player"):
RunManager.earn_credits(value)
queue_free()