35 lines
596 B
C#
35 lines
596 B
C#
using Godot;
|
|
|
|
namespace AceField.Scripts;
|
|
|
|
public partial class Bullet : Area2D
|
|
{
|
|
[Export] public int PlayerId = 1;
|
|
|
|
[Export] public float Speed = 1500;
|
|
[Export] public double Damage = 8;
|
|
|
|
[Export] public Timer FreeTimer;
|
|
|
|
public override void _Ready()
|
|
{
|
|
FreeTimer.Timeout += QueueFree;
|
|
|
|
BodyEntered += body =>
|
|
{
|
|
if (body is not Player player || player.PlayerId == PlayerId) return;
|
|
if (body is Player p)
|
|
{
|
|
p.TakeDamage(Damage);
|
|
}
|
|
|
|
QueueFree();
|
|
};
|
|
}
|
|
|
|
public override void _PhysicsProcess(double delta)
|
|
{
|
|
Position += -Transform.Y * Speed * (float)delta;
|
|
}
|
|
}
|