extends Node
class_name weapon
export var firerate = 0.5
export var clipsize = 5
export var reload_rate = 1
onready var raycast = $"./Head/Camera/RayCast"
var currentammo = clipsize
var can_fire = true
var reloading = false
func process(delta):
if Input.isactionjustpressed("primaryfire") and canfire:
if currentammo > 0 and not reloading:
print("Fired weapon")
canfire = false
currentammo -= 1
checkcollision()
yield(gettree().createtimer(fire_rate), "timeout")
can_fire = true
elif not reloading:
print("Reloading")
reloading = true
yield(get_tree().create_timer(reload_rate), "timeout")
current_ammo = clip_size
reloading = false
print("Reload complete")
func checkcollision():
if raycast.iscolliding():
var collider = raycast.getcollider()
if collider.isingroup("Enemies"):
collider.queuefree()
print("Killed" + collider.name)