diff --git a/graphics/spread.png b/graphics/spread.png index b653e7c..a45b2ec 100644 Binary files a/graphics/spread.png and b/graphics/spread.png differ diff --git a/resources/player_weapon_resources/spread.tres b/resources/player_weapon_resources/spread.tres index e8b930b..5ccfbb5 100644 --- a/resources/player_weapon_resources/spread.tres +++ b/resources/player_weapon_resources/spread.tres @@ -8,12 +8,12 @@ script = ExtResource("2_4b7mw") shot_name = "spread" bullet_scene = ExtResource("1_pn64g") damage = 5 -speed = 500 -projectiles = 5 +speed = 720 +projectiles = 4 spacing = 30.0 origin = -15 horizontal_offset = 8.25 -spread_angle = 15.0 +spread_angle = 7.5 stagger_offset = 0.5 stagger_animation = true metadata/_custom_type_script = "uid://7n1itonn35fm" diff --git a/resources/player_weapon_resources/stock.tres b/resources/player_weapon_resources/stock.tres index 184daab..94afc1b 100644 --- a/resources/player_weapon_resources/stock.tres +++ b/resources/player_weapon_resources/stock.tres @@ -12,5 +12,5 @@ speed = 300 spacing = 25.0 origin = -15 horizontal_offset = 10.0 -stagger_offset = 0.35 +stagger_offset = 0.0 metadata/_custom_type_script = "uid://7n1itonn35fm" diff --git a/scenes/player_weapons/weapon_stock.gd b/scenes/player_weapons/weapon_stock.gd index 6c2f9e6..5f18b6a 100644 --- a/scenes/player_weapons/weapon_stock.gd +++ b/scenes/player_weapons/weapon_stock.gd @@ -23,7 +23,7 @@ func _process(delta): if !is_active and current_time >= fire_time: activate() - # Move the bullet, factoring in spread angle + # Move the bullet every frame; stagger controls visibility, not movement var velocity = Vector2.UP.rotated(deg_to_rad(angle)) * shot_data.speed position += velocity * delta diff --git a/scripts/shoot_component.gd b/scripts/shoot_component.gd index 48cc0e7..5ed160b 100644 --- a/scripts/shoot_component.gd +++ b/scripts/shoot_component.gd @@ -21,8 +21,8 @@ func shoot(): # Calculate index relative to center (0 = center, -1/+1 = first from center) var index_from_center: float = b - center_index - # Calculate timing offset for staggered firing - var time_offset: float = index_from_center * weapon_data.stagger_offset + # Calculate timing offset for staggered firing (center-first, pairs outward) + var time_offset: float = abs(index_from_center) * weapon_data.stagger_offset # Calculate horizontal offset for this bullet (symmetrical: left=-ve, right=+ve) var bullet_horizontal_offset: float = index_from_center * weapon_data.horizontal_offset @@ -51,5 +51,5 @@ func shoot(): if weapon_data.stagger_animation: bullet.set_animation_offset(index_from_center * weapon_data.stagger_offset) - # Subtract projectile spacing from current Player travel for next shot - player.travel -= weapon_data.spacing + # Reset travel after firing to prevent multiple bursts per tap + player.travel = 0.0