2557 {
2559 float progressDelta = 1;
2560
2561 if (deltaHeat > 0)
2562 progressDelta = -1;
2563
2565 progressDelta = (-deltaHeat / GameConstants.TEMPERATURE_RATE_AVERAGE_ABS) * GameConstants.TEMPERATURE_FREEZETHAW_LEGACY_COEF;
2566 else
2568
2569 if (progressDelta == 0)
2570 return;
2571
2572 float changeTimeDefault;
2573 float changeTimeMin;
2574 float changeTime;
2575
2577 {
2579 changeTimeMin = GameConstants.TEMPERATURE_TIME_FREEZE_MIN;
2580 }
2581 else
2582 {
2584 changeTimeMin = GameConstants.TEMPERATURE_TIME_THAW_MIN;
2585 }
2586
2588 if (deltaHeat < 0)
2589 coef = GameConstants.TEMP_COEF_COOLING_GLOBAL;
2590
2591 if (coef != 0)
2592 changeTimeDefault *= 1/coef;
2593
2594 changeTime = Math.Lerp(Math.Max(changeTimeDefault,changeTimeMin),changeTimeMin,data.
m_InterpolatedFraction);
2595 progressVal = progressVal + progressDelta / changeTime;
2596
2597 float remnantTemp = 0;
2599 {
2601 if (progressVal > 1.0)
2602 {
2604 remnantTemp = (progressVal - 1) * changeTime * GameConstants.TEMPERATURE_RATE_AVERAGE_ABS * -1;
2605 else
2606 remnantTemp = (((progressVal - 1) * changeTime) / progressDelta) * deltaHeat;
2607 }
2608 }
2610 {
2612 if (progressVal < 0.0)
2613 {
2615 remnantTemp = -progressVal * changeTime * GameConstants.TEMPERATURE_RATE_AVERAGE_ABS;
2616 else
2617 remnantTemp = ((-progressVal * changeTime) / progressDelta) * deltaHeat;
2618 }
2619 }
2620 else
2621 {
2623 progressVal = (progressDelta * GameConstants.TEMPERATURE_FREEZETHAW_ACCELERATION_COEF) / changeTime +
m_FreezeThawProgress;
2624
2626 }
2627
2628 if (remnantTemp >= GameConstants.TEMPERATURE_SENSITIVITY_THRESHOLD)
2630
2631 #ifdef DEVELOPER
2632 if (progressVal > 0 && progressVal < 1)
2633 {
2634 m_LastFTChangeTime = changeTime;
2636 m_PresumedTimeRemaining = (1 - progressVal) * changeTime;
2637 else
2638 m_PresumedTimeRemaining = progressVal * changeTime;
2639 }
2640 #endif
2641 }
float GetTemperatureFreezeTime()
void SetFrozen(bool frozen)
void SetFreezeThawProgress(float val)
0->1 when freezing, 1->0 when thawing
float GetTemperatureThawTime()
float m_FreezeThawProgress
void SetTemperatureDirect(float value, bool allow_client=false)
float m_InterpolatedFraction