diff --git a/resources/player_weapon_resources/spread.tres b/resources/player_weapon_resources/spread.tres index 9a91eaa..4f3d629 100644 --- a/resources/player_weapon_resources/spread.tres +++ b/resources/player_weapon_resources/spread.tres @@ -16,4 +16,5 @@ horizontal_offset = 8.25 spread_angle = 7.5 stagger_offset = 0.5 stagger_animation = true +follow_angle = true metadata/_custom_type_script = "uid://7n1itonn35fm" diff --git a/scenes/player_weapons/weapon_stock.gd b/scenes/player_weapons/weapon_stock.gd index 5f18b6a..95077ca 100644 --- a/scenes/player_weapons/weapon_stock.gd +++ b/scenes/player_weapons/weapon_stock.gd @@ -27,6 +27,10 @@ func _process(delta): var velocity = Vector2.UP.rotated(deg_to_rad(angle)) * shot_data.speed position += velocity * delta + # Rotate sprite to face travel direction when conditions are met + if shot_data.follow_angle and shot_data.projectiles > 2 and shot_data.spread_angle > 0: + $AnimatedSprite2D.rotation = deg_to_rad(angle) + func activate(): is_active = true visible = true diff --git a/scripts/weapon_shot.gd b/scripts/weapon_shot.gd index 7b1190a..c4d9bd7 100644 --- a/scripts/weapon_shot.gd +++ b/scripts/weapon_shot.gd @@ -23,3 +23,5 @@ extends Resource @export_category("Effects") # Offset animation playback per projectile index @export var stagger_animation: bool = false +# Rotate projectiles to point along their travel direction (requires >2 projectiles and spread_angle > 0) +@export var follow_angle: bool = false