class_name ShootComponent extends Node @onready var weapon_component: Node = %WeaponComponent @onready var player: Player = $".." func shoot(): # Shorten variable for accessing weapon_component for clarity var weapon_system = weapon_component.data if player.travel > weapon_system.spacing: for b in range(weapon_system.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_system.projectiles - 1) / 2.0) * round(round((weapon_system.projectiles + weapon_system.spacing / 2)) / 2), weapon_system.origin) print(b, bullet.position.x) # Print which weapon is firing prints(bullet.shot_data.shot_name, "weapon fired") # Subtract projectile spacing from current Player travel for next player.travel -= weapon_system.spacing else: return