extends WeaponState @export var emptyable: bool func enter() -> void: machine.animation_player.play(with_morphems("reload")) machine.animation_player.animation_finished.connect(on_animation_finished) func exit() -> void: machine.animation_player.animation_finished.disconnect(on_animation_finished) func on_animation_finished(animation): if animation == with_morphems("reload"): if machine.remaining_ammo > machine.max_ammo: machine.ammo = machine.max_ammo machine.remaining_ammo -= machine.max_ammo else: machine.ammo = machine.remaining_ammo machine.remaining_ammo = 0 transition.emit("Idle") func with_morphems(animation): return machine.animation_prefix + ((animation+"_empty") if emptyable and machine.ammo == 0 else animation)