extends Node3D class_name Weapon @export var stats : CardText @export var animator : AnimationPlayer var damage_particle_scene = preload("res://Scenes/damage_particle.tscn") var hero : Hero var trigger_held := false var second_trigger_held := false var time_since_firing := 0.0 var time_between_shots := 0.0 var damage := 0.0 func _ready() -> void: time_between_shots = stats.get_attribute("Fire Delay") damage = stats.get_attribute("Damage") func set_hero(value): hero = value func _process(delta: float) -> void: if time_since_firing < time_between_shots: time_since_firing += delta func _physics_process(_delta: float) -> void: if trigger_held and time_since_firing >= time_between_shots: time_since_firing -= time_between_shots shoot() networked_shoot.rpc() func hold_trigger(): trigger_held = true func release_trigger(): trigger_held = false func hold_second_trigger(): second_trigger_held = true func release_second_trigger(): second_trigger_held = false func spawn_damage_indicator(pos): if damage > 0: var marker = damage_particle_scene.instantiate() get_tree().root.add_child(marker) marker.set_number(damage) marker.position = pos func shoot(): animator.play("shoot") @rpc func networked_shoot(): animator.play("shoot")