class_name ShootComponent extends Node @onready var weapon_component: Node = %WeaponComponent @onready var player: Player = $".." var travel: float = 0 var weapon_spacing: float = 0.1 func shoot(): if player.travel > weapon_component.bullet_data.projectile_spacing: print("Travel is greater!") for b in range(weapon_component.bullet_data.projectiles): # Instantiate the bullets var bullet = weapon_component.weapon_current.instantiate() get_tree().root.add_child(bullet) # Adjust bullet spacing before firing bullet.position = player.position + Vector2((b - (weapon_component.bullet_data.projectiles - 1) / 2.0) * weapon_component.bullet_data.projectile_spacing, weapon_component.bullet_data.projectile_origin) ## Get weapon speed and spacing for equidistant calculations #weapon_rate = bullet.weapon_component.bullet_data.rate #weapon_component.bullet_data.projectile_spacing = bullet.weapon_component.bullet_data.projectile_spacing #weapon_component.bullet_data.speed = bullet.weapon_component.bullet_data.speed # Print which weapon is firing prints(bullet.shot_data.shot_name, "weapon fired") player.travel -= weapon_component.bullet_data.projectile_spacing else: return