DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnTick()

override void HeatComfortMdfr::OnTick ( PlayerBase player,
float deltaT )
inlineprivate

См. определение в файле HeatComfortMdfr.c строка 38

39 {
40 float heat_comfort = player.GetStatHeatComfort().Get();
41 float health_loss;
42 float value_normalized;
43
44 if( heat_comfort > PlayerConstants.WATER_LOSS_THRESHOLD_HC_PLUS_LOW )
45 {
46 value_normalized = Math.Lerp(PlayerConstants.WATER_LOSS_THRESHOLD_HC_PLUS_LOW, PlayerConstants.WATER_LOSS_THRESHOLD_HC_PLUS_HIGH, heat_comfort);
47 value_normalized = Math.Clamp(value_normalized, 0, 1);
48 float water_loss = deltaT * Math.Lerp(PlayerConstants.WATER_LOSS_HC_PLUS_LOW, PlayerConstants.WATER_LOSS_HC_PLUS_HIGH, value_normalized);
49 player.GetStatWater().Add(-water_loss);
50
51 if( heat_comfort > PlayerConstants.WATER_LOSS_THRESHOLD_HC_PLUS_HIGH )
52 {
53 value_normalized = Math.Lerp(PlayerConstants.WATER_LOSS_THRESHOLD_HC_PLUS_HIGH, 1.0, heat_comfort);
54 value_normalized = Math.Clamp(value_normalized, 0, 1);
55 health_loss = deltaT * Math.Lerp(PlayerConstants.HEALTH_LOSS_HC_PLUS_LOW, PlayerConstants.HEALTH_LOSS_HC_PLUS_HIGH, Easing.EaseInQuad(value_normalized));
56 }
57 }
58 if( heat_comfort < PlayerConstants.ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW )
59 {
60 value_normalized = Math.InverseLerp(PlayerConstants.ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW, PlayerConstants.ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH, heat_comfort);
61 value_normalized = Math.Clamp(value_normalized, 0, 1);
62 float energy_loss = deltaT * Math.Lerp(PlayerConstants.ENERGY_LOSS_HC_MINUS_LOW, PlayerConstants.ENERGY_LOSS_HC_MINUS_HIGH, value_normalized);
63 player.GetStatEnergy().Add(-energy_loss);
64
65 if( heat_comfort < PlayerConstants.ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH )
66 {
67 value_normalized = Math.InverseLerp(PlayerConstants.ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH, -1.0, heat_comfort);
68 value_normalized = Math.Clamp(value_normalized, 0, 1);
69 health_loss = deltaT * Math.Lerp(PlayerConstants.HEALTH_LOSS_HC_MINUS_LOW, PlayerConstants.HEALTH_LOSS_HC_MINUS_HIGH, Easing.EaseInQuad(value_normalized));
70 }
71 }
72
73 if( health_loss != 0 )
74 {
75 player.AddHealth("","",-health_loss);
76 }
77 }

Перекрестные ссылки Math::Clamp(), Easing::EaseInQuad(), PlayerConstants::ENERGY_LOSS_HC_MINUS_HIGH, PlayerConstants::ENERGY_LOSS_HC_MINUS_LOW, PlayerConstants::ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH, PlayerConstants::ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW, PlayerConstants::HEALTH_LOSS_HC_MINUS_HIGH, PlayerConstants::HEALTH_LOSS_HC_MINUS_LOW, PlayerConstants::HEALTH_LOSS_HC_PLUS_HIGH, PlayerConstants::HEALTH_LOSS_HC_PLUS_LOW, Math::InverseLerp(), Math::Lerp(), PlayerConstants::WATER_LOSS_HC_PLUS_HIGH, PlayerConstants::WATER_LOSS_HC_PLUS_LOW, PlayerConstants::WATER_LOSS_THRESHOLD_HC_PLUS_HIGH и PlayerConstants::WATER_LOSS_THRESHOLD_HC_PLUS_LOW.