public Beam(Vector2 srcCenter, Vector2 destination, int Thickness, Projectile Owner, GameplayObject target) { this.Target = target; this.DamageToggleSound = AudioManager.GetCue("sd_shield_static_1"); if (Owner.isInDeepSpace || Owner.GetSystem() == null) { UniverseScreen.DeepSpaceManager.BeamList.Add(this); } else { this.system = Owner.GetSystem(); this.system.spatialManager.BeamList.Add(this); } this.Source = srcCenter; this.BeamOffsetAngle = 0f; this.ActualHitDestination = destination; this.Vertices = new VertexPositionNormalTexture[4]; this.Indexes = new int[6]; this.BeamZ = RandomMath2.RandomBetween(-1f, 1f); Vector3[] points = HelperFunctions.BeamPoints(srcCenter, destination, (float)Thickness, new Vector2[4], 0, this.BeamZ); this.UpperLeft = points[0]; this.UpperRight = points[1]; this.LowerLeft = points[2]; this.LowerRight = points[3]; this.FillVertices(); }