/// <summary> /// Create and spawn the projectile(s) from a firing from this weapon. /// </summary> /// <param name="direction">The direction that the projectile will move.</param> protected override void CreateProjectiles(Vector2 direction) { // calculate the direction vectors for the second and third projectiles float rotation = (float)Math.Acos(Vector2.Dot(new Vector2(0f, -1f), direction)); rotation *= (Vector2.Dot(new Vector2(0f, -1f), new Vector2(direction.Y, -direction.X)) > 0f) ? 1f : -1f; Vector2 direction2 = new Vector2( (float)Math.Sin(rotation - laserSpreadRadians), -(float)Math.Cos(rotation - laserSpreadRadians)); Vector2 direction3 = new Vector2( (float)Math.Sin(rotation + laserSpreadRadians), -(float)Math.Cos(rotation + laserSpreadRadians)); // create the first projectile HydrogenBoostProjectile projectile = new HydrogenBoostProjectile(owner.World, owner, direction); // spawn the projectile projectile.Spawn(false); // create the second projectile projectile = new HydrogenBoostProjectile(owner.World, owner, direction2); // spawn the projectile projectile.Spawn(false); // create the third projectile projectile = new HydrogenBoostProjectile(owner.World, owner, direction3); // spawn the projectile projectile.Spawn(false); }
/// <summary> /// Create and spawn the projectile(s) from a firing from this weapon. /// </summary> /// <param name="direction">The direction that the projectile will move.</param> protected override void CreateProjectiles(Vector2 direction) { // create the new projectile HydrogenBoostProjectile projectile = new HydrogenBoostProjectile(owner.World, owner, direction); // spawn the projectile projectile.Spawn(false); }