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"
|
||||
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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue