Fixed initial double shot issue; tweaked feel of weapons.
This commit is contained in:
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 |
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue