Fix capricorn projectile bug

This commit is contained in:
2023-09-08 12:46:23 -07:00
parent 9256c0a09e
commit f7008b40ff
21 changed files with 161 additions and 279 deletions

View File

@@ -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;