Fix capricorn projectile bug
This commit is contained in:
@@ -25,9 +25,9 @@ public partial class CapricornControls : Character
|
||||
GetTree().Quit();
|
||||
|
||||
if (Input.IsActionJustPressed(OwnerPlayer.PlayerInput.Fire()) && CanShoot)
|
||||
Fire(_fireProjectile);
|
||||
Fire();
|
||||
if (Input.IsActionJustPressed(OwnerPlayer.PlayerInput.AltFire()) && CanShoot)
|
||||
Fire(_altFireProjectile);
|
||||
AltFire();
|
||||
}
|
||||
|
||||
private Vector3 CalculateCharacterMovement(double delta)
|
||||
@@ -81,13 +81,24 @@ public partial class CapricornControls : Character
|
||||
_sprite.Play("WalkBack");
|
||||
}
|
||||
|
||||
private async void Fire(PackedScene projectileScene)
|
||||
private async void Fire()
|
||||
{
|
||||
IsShooting = true;
|
||||
CanShoot = false;
|
||||
var projectile = projectileScene.Instantiate<Node3D>();
|
||||
var projectileCooldown = projectile.GetChildren().OfType<Projectile>().First();
|
||||
await ToSignal(GetTree().CreateTimer(projectileCooldown.Cooldown), "timeout");
|
||||
await ToSignal(GetTree().CreateTimer(1.0f), "timeout");
|
||||
var projectile = _fireProjectile.Instantiate<Node3D>();
|
||||
projectile.Position = Position;
|
||||
GetParent().AddChild(projectile);
|
||||
CanShoot = true;
|
||||
IsShooting = false;
|
||||
}
|
||||
|
||||
private async void AltFire()
|
||||
{
|
||||
IsShooting = true;
|
||||
CanShoot = false;
|
||||
await ToSignal(GetTree().CreateTimer(1.0f), "timeout");
|
||||
var projectile = _altFireProjectile.Instantiate<Node3D>();
|
||||
projectile.Position = Position;
|
||||
GetParent().AddChild(projectile);
|
||||
CanShoot = true;
|
||||
|
||||
Reference in New Issue
Block a user