Fixed initial double shot issue; tweaked feel of weapons.

This commit is contained in:
Henry Faber 2026-06-25 11:35:42 +01:00
parent 4f3839448b
commit 30619bc7c1
5 changed files with 9 additions and 9 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 259 B

Before After
Before After

View file

@ -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"

View file

@ -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"

View file

@ -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

View file

@ -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