Chelimbalo/scripts/weapon_system/gun/reload_state.gd
2025-11-28 18:03:30 +05:00

23 lines
761 B
GDScript

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)