//well this was a failure. I am very glad we have a public reference to charge
        //at least the spin calculation wasn't a similarly colossal failure

        // god f****n dammit now i need this to work so I can calculate the overcharge
        private float pseudoCalculateCharge(Run.FixedTimeStamp now, LaserTurbineController self)
        {
            float num  = now - _pseudoSnapshotTime;
            float num2 = self.minSpin * num;
            float num3 = _pseudoInitialSpin - self.minSpin;
            float t    = Mathf.Min(Trajectory.CalculateFlightDuration(num3, -self.spinDecayRate) * 0.5f, num);
            float num4 = Trajectory.CalculatePositionYAtTime(0f, num3, t, -self.spinDecayRate);

            return(Mathf.Min(_pseudoInitialCharge + num2 + num4, 1f));
        }