From fa882502b468ea89e67c6bf69a31a5eaf790d242 Mon Sep 17 00:00:00 2001 From: henry Date: Sun, 28 Jun 2026 18:27:47 +0100 Subject: [PATCH 1/2] Updated comments for clarity. --- scripts/weapon_shot.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/weapon_shot.gd b/scripts/weapon_shot.gd index 7d641f8..3bd9e3e 100644 --- a/scripts/weapon_shot.gd +++ b/scripts/weapon_shot.gd @@ -29,8 +29,8 @@ extends Resource # When enabled, adjusts spawn vertical offsets so the geometric line # from the center bullet to each outer bullet matches their velocity # direction. Eliminates the optical illusion where the spread appears -# wider than the actual bullet trajectories (e.g. spread.tres flies at -# half the angle it visually appears to fan). +# wider than the actual bullet trajectories (e.g. vanguard+). See the +# Debugging Checklist for the vertical offset pitfall on standard shots. ## WARNING: This flag uses a trigonometric formula (horizontal_offset / tan(angle)) that evaluates independently-tuned horizontal and spread angles in grouped shots ONLY! @export var compensate_spawn_geometry: bool = false From 1ac71cc104ff04ef23bcc5844fbc850edac89f81 Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 29 Jun 2026 14:59:40 +0100 Subject: [PATCH 2/2] Updated exported weapon variables for cleaner organization in the Godot inspector. --- scripts/weapon_shot.gd | 77 +++++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 19 deletions(-) diff --git a/scripts/weapon_shot.gd b/scripts/weapon_shot.gd index 3bd9e3e..8abc83d 100644 --- a/scripts/weapon_shot.gd +++ b/scripts/weapon_shot.gd @@ -1,45 +1,84 @@ class_name WeaponShot extends Resource -@export_category("Parameters") + +@export_group("Weapon") + + +# Human-readable name for reference in UI and logs. @export var shot_name: String -@export var bullet_scene: PackedScene = null -@export var damage: int = 1 -@export var speed: int = 135 -@export var projectiles: int = 2 + +# PackedScene reference to the bullet / projectile scene instantiated on fire. +@export var bullet_scene: PackedScene + + +@export_subgroup("Launch") + + +# Damage dealt by a single projectile instance. +@export_range(1, 100, 1) var damage: int = 1 + +# Travel speed of projectiles in pixels per second. +@export_range(50, 2000, 10) var speed: int = 135 + +# Number of projectiles fired in a burst pattern. +@export_range(1, 20, 1) var projectiles: int = 2 + + +@export_subgroup("Spawn Geometry") + + # Vertical spacing between projectiles in a burst (used by WeaponFireHelper to compute the ^ pattern). # This parameter has a dual role: spatial (computing the ^ burst geometry) and temporal # (serving as the burst-gating threshold in ShootComponent.shoot()). When compensate_spawn_geometry # is enabled, this parameter is overridden by geometric compensation for spatial calculations; # temporal behavior remains unchanged and continues to use this value. -@export var projectile_vertical_spacing: float = 35 +@export_range(10, 200, 0.5) var projectile_vertical_spacing: float = 35 + # Vertical offset from the top of the player's sprite where bullets spawn. # Measured in pixels; negative values fire in front of (above) the ship, # positive values fire behind (below) it. The default of -25 places the # burst 25 pixels above the sprite's top edge. -@export var origin: float = -25.0 +@export_range(-200, 200, 0.5) var origin: float = -25.0 + + +@export_subgroup("Spread") + + +# Horizontal distance between adjacent projectiles in a burst. +@export_range(0, 100, 0.25) var horizontal_offset: float = 6.5 + +# Total spread angle in degrees (only applied when projectiles >= 3). +@export_range(0, 360, 0.5) var spread_angle: float = 0.0 + +# Time delay per projectile index in a burst. +@export_range(0.01, 5.0, 0.05) var stagger_offset: float = 0.25 -@export_category("Spread") -# Horizontal distance between projectiles -@export var horizontal_offset: float = 6.5 -# Total spread angle in degrees (only applied when projectiles >= 3) -@export var spread_angle: float = 0.0 -# Time delay per projectile index -@export var stagger_offset: float = 0.25 # When enabled, adjusts spawn vertical offsets so the geometric line # from the center bullet to each outer bullet matches their velocity # direction. Eliminates the optical illusion where the spread appears # wider than the actual bullet trajectories (e.g. vanguard+). See the # Debugging Checklist for the vertical offset pitfall on standard shots. - ## WARNING: This flag uses a trigonometric formula (horizontal_offset / tan(angle)) that evaluates independently-tuned horizontal and spread angles in grouped shots ONLY! @export var compensate_spawn_geometry: bool = false -@export_category("Effects") -# Offset animation playback per projectile index + +@export_subgroup("Timing") + + +# Offset animation playback per projectile index. @export var stagger_animation: bool = false -# Rotate projectiles to point along their travel direction (requires >2 projectiles and spread_angle > 0) + + +@export_subgroup("Effects") + + +# Rotate projectiles to point along their travel direction (requires >2 projectiles and spread_angle > 0). @export var follow_angle: bool = false -@export_category("Grouped Projectiles") + +@export_subgroup("Groups") + + +# Array of projectile groups defining layered, multi-directional fire patterns. @export var groups: Array[WeaponProjectileGroup] = []