Files
DailyDungeon/Scripts/player.gd

44 lines
1014 B
GDScript

extends CharacterBody3D
class_name Player
var dodge_direction
@onready var body: MeshInstance3D = $Body
@onready var anim_player: AnimationPlayer = $AnimationPlayer
@onready var sword_hit_area: Area3D = $SwordHit
var gold_to_vacuum = []
var gold = 0
const MAX_HEALTH : float = 100
var health = MAX_HEALTH
var arrows = 10
const MAX_STAMINA : float = 100
var stamina = MAX_STAMINA
## Gameplay Settings
const STAMINA_REGEN_RATE = 10.0
const DODGE_STAMINA_COST = 30.0
const ATTACK_STAMINA_COST = 10.0
func _ready() -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
func _physics_process(delta: float) -> void:
stamina_regen(delta)
move_and_slide()
func stamina_regen(delta):
if stamina < MAX_STAMINA:
stamina = clamp(stamina + delta * STAMINA_REGEN_RATE,0,MAX_STAMINA)
func _on_area_3d_body_entered(body: Node3D) -> void:
if body is Gold:
body.follow_target = self
func _on_area_3d_area_entered(area: Area3D) -> void:
if area.get_parent() is Arrow:
area.get_parent().follow_target = self