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" shot_name = "spread"
bullet_scene = ExtResource("1_pn64g") bullet_scene = ExtResource("1_pn64g")
damage = 5 damage = 5
speed = 500 speed = 720
projectiles = 5 projectiles = 4
spacing = 30.0 spacing = 30.0
origin = -15 origin = -15
horizontal_offset = 8.25 horizontal_offset = 8.25
spread_angle = 15.0 spread_angle = 7.5
stagger_offset = 0.5 stagger_offset = 0.5
stagger_animation = true stagger_animation = true
metadata/_custom_type_script = "uid://7n1itonn35fm" metadata/_custom_type_script = "uid://7n1itonn35fm"

View file

@ -12,5 +12,5 @@ speed = 300
spacing = 25.0 spacing = 25.0
origin = -15 origin = -15
horizontal_offset = 10.0 horizontal_offset = 10.0
stagger_offset = 0.35 stagger_offset = 0.0
metadata/_custom_type_script = "uid://7n1itonn35fm" metadata/_custom_type_script = "uid://7n1itonn35fm"

View file

@ -23,7 +23,7 @@ func _process(delta):
if !is_active and current_time >= fire_time: if !is_active and current_time >= fire_time:
activate() 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 var velocity = Vector2.UP.rotated(deg_to_rad(angle)) * shot_data.speed
position += velocity * delta position += velocity * delta

View file

@ -21,8 +21,8 @@ func shoot():
# Calculate index relative to center (0 = center, -1/+1 = first from center) # Calculate index relative to center (0 = center, -1/+1 = first from center)
var index_from_center: float = b - center_index var index_from_center: float = b - center_index
# Calculate timing offset for staggered firing # Calculate timing offset for staggered firing (center-first, pairs outward)
var time_offset: float = index_from_center * weapon_data.stagger_offset var time_offset: float = abs(index_from_center) * weapon_data.stagger_offset
# Calculate horizontal offset for this bullet (symmetrical: left=-ve, right=+ve) # Calculate horizontal offset for this bullet (symmetrical: left=-ve, right=+ve)
var bullet_horizontal_offset: float = index_from_center * weapon_data.horizontal_offset var bullet_horizontal_offset: float = index_from_center * weapon_data.horizontal_offset
@ -51,5 +51,5 @@ func shoot():
if weapon_data.stagger_animation: if weapon_data.stagger_animation:
bullet.set_animation_offset(index_from_center * weapon_data.stagger_offset) bullet.set_animation_offset(index_from_center * weapon_data.stagger_offset)
# Subtract projectile spacing from current Player travel for next shot # Reset travel after firing to prevent multiple bursts per tap
player.travel -= weapon_data.spacing player.travel = 0.0