public void RefreshExposure() { if (mDispersing | mIsDispersed) { return; } if (mLastExposureUpdate < 0) { mLastExposureUpdate = WorldClock.AdjustedRealTime - WorldClock.ARTDeltaTime; } LightManager.CalculateExposure(this, (float)(WorldClock.AdjustedRealTime - mLastExposureUpdate)); float dissipation = 1f - ((LightExposure + HeatExposure) / Globals.DarkrotMaxLightAndHeatExposure); SmokeEmitter.maxSize = mMaxEmissionSize * dissipation; SmokeEmitter.maxEnergy = mMaxEnergy * dissipation; SmokeEmitter.minSize = mMinEmissionSize * dissipation; mLastExposureUpdate = WorldClock.AdjustedRealTime; }