extends CharacterBody3D class_name Player var dodge_direction @onready var body: MeshInstance3D = $Body @onready var anim_player: AnimationPlayer = $AnimationPlayer var gold_to_vacuum = [] var current_gold const MAX_STAMINA : float = 100 var stamina = MAX_STAMINA const STAMINA_REGEN_RATE = 10.0 ## Gameplay Settings const DODGE_STAMINA_COST = 30.0 func _physics_process(delta: float) -> void: stamina_regen(delta) move_and_slide() vacuum_found_gold() func stamina_regen(delta): if stamina < MAX_STAMINA: print("STAMINA : ", stamina) stamina = clamp(stamina + delta * STAMINA_REGEN_RATE,0,MAX_STAMINA) func vacuum_found_gold(): if gold_to_vacuum.size() > 0: for i in range(0,gold_to_vacuum.size()): #var magnet_target #if i == 0: #magnet_target = self.global_position #else: #magnet_target = gold_to_vacuum[i-1].global_position var direction_to_player = gold_to_vacuum[i].global_position.direction_to(self.global_position) var distance_to_player = gold_to_vacuum[i].global_position.distance_to(self.global_position) gold_to_vacuum[i].linear_velocity = direction_to_player * (5 + distance_to_player) func _on_area_3d_body_entered(body: Node3D) -> void: if body is Gold: gold_to_vacuum.append(body)