extends Module

class_name Cannon

enum STATE {INACTIVE, RELOADING, SHOOTING}
enum AMMO {NORMAL, HEAVY, LIGHT}
var currentAmmo: AMMO
var CAN_ENGAGE = true
var DAMAGE = 5
@onready var train = get_parent() as Train

#------------Methods-------------#
func _ready():
	maxStashValue = 1
	currentStashValue = 1
	currentState = STATE.INACTIVE
#TODO: FINISH
func interact(player):
	
	if currentState == STATE.INACTIVE:
		#TODO: RELOADING
		if currentStashValue < maxStashValue:
			currentState = STATE.RELOADING
			currentStashValue += 1
		return
	return

func shoot():
	if not CAN_ENGAGE:
		return false
	CAN_ENGAGE = false
	create_tween().tween_callback(func(): CAN_ENGAGE = true).set_delay(2)
	
	if currentStashValue >= 1 and currentState == STATE.INACTIVE:
		currentState = STATE.SHOOTING
		currentStashValue -= 1
		currentState = STATE.INACTIVE
		return true
	return false
