using Cirno.Scripts.Components; using Godot; namespace Cirno.Scripts.Weapons; public interface IBullet { public float Speed { get; set; } public BulletOwner BulletOwner { get; } public float Damage { get; } public DamageType DamageType { get; } public BulletInfo BulletInfo { get; } public bool IsGrazed { get; } public bool IsFrozen { get; } public bool Enabled { get; } public delegate void OnDestroyEventHandler(); public void Initialize(BulletInfo bulletInfo); public void Enable(); public void Disable(bool hideSprite = true); public void Graze(); public void RotateBullet(float degrees); public void RotateSpriteDegrees(float degrees); public void RotateSprite(float radians); public void FacePlayer(); public void SetDirection(Vector2 direction); public bool CanHit(BulletOwner bulletOwner, BulletOwner targetGroup); public void RequestCollisionDestruction(); public void Freeze(); public void AddToGroup(StringName group, bool persistent = false); public void RemoveFromGroup(StringName group); }