extends Position2D
# Represents a weapon that spawns and shoots bullets.
# The Cooldown timer controls the cooldown duration between shots.


const BULLET_VELOCITY = 350
const Bullet = preload("res://src/Projectile.tscn")

#onready var sound_shoot = $Shoot
onready var timer = $Cooldown
onready var offset_position = Vector2(transform.origin.x, transform.origin.y)

# This method is only called by Player.gd.
func shoot(direction = 1):
	#self.set_position(Vector2(position.x * direction, position.y))
	#transform.x = transform.x * direction
	#Transform2D.FLIP_Y
	#transform.origin.x = transform.origin.x * direction
#	if direction < 0:
#		var t = Transform2D()
#		# Translation
#		t.origin = Vector2(position.x * -1, position.y)
#		transform = t
#	elif direction > 0:
#		var t = Transform2D()
#		# Translation
#		t.origin = Vector2(position.x, position.y)
#		transform = t
		
	print("Fire Debug: ", direction, " Gun position: ", position, transform.origin)
#	position.x = position.x * direction  #shifting position before fire was unreliable
	if not timer.is_stopped():
		return false
	var bullet = Bullet.instance()
#	if (direction > 0):
#		bullet.global_position = global_position
#	else:
#		bullet.global_position = global_position - Vector2(position.x * 2, 0)
	bullet.global_position = global_position
	bullet.linear_velocity = Vector2(direction * BULLET_VELOCITY, 0)

	bullet.set_as_toplevel(true)
	add_child(bullet)
#	sound_shoot.play()
	timer.start()
	return true
