2025-06-17 11:57:59 +02:00
|
|
|
|
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();
|
|
|
|
|
|
|
2025-06-19 17:55:23 +02:00
|
|
|
|
public void Initialize(BulletInfo bulletInfo);
|
2025-06-17 11:57:59 +02:00
|
|
|
|
|
|
|
|
|
|
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();
|
2025-07-01 13:55:30 +02:00
|
|
|
|
|
|
|
|
|
|
public void AddToGroup(StringName group, bool persistent = false);
|
|
|
|
|
|
public void RemoveFromGroup(StringName group);
|
2025-06-17 11:57:59 +02:00
|
|
|
|
}
|