public AbstractProjectile Get() { if (_queue.Count > 0) { return(_queue.Dequeue()); } var projectileScene = ProjectileFactory.CreateBullet(); return(projectileScene.Instance() as AbstractProjectile); }
/// <summary> /// Sets all instance variables to standard values. /// </summary> private void InitStandardValues() { Projectile = ProjectileFactory.CreateBullet(); _timer = GetNode("Timer") as Timer; _timer.Autostart = false; _timer.OneShot = true; SecondsBetweenShots = 0.4f; MagSize = 20; Ammo = MagSize; ProjectilesPerShot = 8; ProjectileShooterName = "Abstract Projectile Shooter"; MaxOffsetAngle = 3; _knockbackForce = 50; }