using Godot; using System; // // Projectile that travels from left to right // public partial class LinearProjectile : Area2D, IProjectile { [Export(hintString: "suffix:tile/sec")] private float _speed; [Export] private int _damage; private int _line; public int Line { get => _line; set { _line = value; } } public override void _PhysicsProcess(double delta) { Translate(Vector2.Right * _speed * (float)delta * Utility.TileWidth); } public void OnAreaEntered(Area2D area) { var entity = area.GetParent(); if (entity != null && entity.Line == _line) { entity.TakeDamage(_damage); QueueFree(); } } }