internal void Fire(double gameTime) { if (gameTime < lastFire + fireCooldownTime) { return; } BodyReference body = Body(); Vector3 position = body.Pose.Position.ToVector3(); Quaternion laserOrientation = PhysicUtils.DirectionsToQuaternion(TGCGame.camera.MouseDirection(position), upDirection); World.InstantiateLaser(position, -forward, laserOrientation, emitter, laserVolume); lastFire = gameTime; }
protected void Fire(BodyReference body, GameTime gameTime) { double totalTime = gameTime.TotalGameTime.TotalMilliseconds; if (totalTime < LastFire + FireCooldownTime) { return; } Vector3 position = body.Pose.Position.ToVector3(); Quaternion rotation = body.Pose.Orientation.ToQuaternion(); Vector3 forward = PhysicUtils.Forward(rotation); Quaternion laserOrientation = PhysicUtils.DirectionsToQuaternion(forward, Vector3.Up); World.InstantiateLaser(position, -forward, laserOrientation, Emitter, LaserVolume); LastFire = totalTime; FireCounter++; }
internal void SecondaryFire(double gameTime, Vector2 mousePosition) { if (gameTime < lastFire + fireCooldownTime) { return; } BodyReference body = Body(); Vector3 position = body.Pose.Position.ToVector3(); Quaternion laserOrientation = PhysicUtils.DirectionsToQuaternion(TGCGame.camera.MouseDirection(position), upDirection); Vector3 up = PhysicUtils.Up(laserOrientation); Vector3 left = PhysicUtils.Left(laserOrientation); World.InstantiateLaser(position + up * 1.0f + left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4); World.InstantiateLaser(position + up * 1.0f - left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4); World.InstantiateLaser(position - up * 1.7f + left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4); World.InstantiateLaser(position - up * 1.7f - left * 4.75459f, -forward, laserOrientation, emitter, laserVolume / 4); lastFire = gameTime; }