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

◆ CalculateSwayMultiplier()

float DayZPlayerImplementAiming::CalculateSwayMultiplier ( )
inlineprotected

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

309 {
310 float max;
311 float time;
312 float time_clamped;
313 float ret;
314
315 if (m_PlayerPb.IsHoldingBreath())
316 {
318
319 if (time < (PlayerSwayConstants.SWAY_TIME_IN * m_HoldBreathSwayCoef))
320 {
321 UpdateSwayState(eSwayStates.HOLDBREATH_IN);
322 max = PlayerSwayConstants.SWAY_TIME_IN * m_HoldBreathSwayCoef;
323 time_clamped = Math.Clamp((m_TotalTime - m_SwayStateStartTime),0,max);
324 ret = Math.Lerp(m_LastSwayMultiplier,PlayerSwayConstants.SWAY_MULTIPLIER_STABLE,time_clamped/max);
325 }
326 else if (time >= (PlayerSwayConstants.SWAY_TIME_IN * m_HoldBreathSwayCoef) && time < (m_HoldBreathSwayCoef * (PlayerSwayConstants.SWAY_TIME_IN + PlayerSwayConstants.SWAY_TIME_STABLE)))
327 {
328 UpdateSwayState(eSwayStates.HOLDBREATH_STABLE);
329 ret = PlayerSwayConstants.SWAY_MULTIPLIER_STABLE;
330 }
331 else
332 {
333 UpdateSwayState(eSwayStates.HOLDBREATH_EXHAUSTED);
334 max = PlayerSwayConstants.SWAY_TIME_EXHAUSTED * m_HoldBreathSwayCoef;
335 time_clamped = Math.Clamp((m_TotalTime - m_SwayStateStartTime),0,max);
336 ret = Math.Lerp(PlayerSwayConstants.SWAY_MULTIPLIER_STABLE,PlayerSwayConstants.SWAY_MULTIPLIER_EXHAUSTED,(time_clamped/max));
337 }
338 }
339 else
340 {
342 max = PlayerSwayConstants.SWAY_TIME_OUT;
343 time_clamped = Math.Clamp((m_TotalTime - m_SwayStateStartTime),0,max);
344 ret = Math.Lerp(m_LastSwayMultiplier,1,time_clamped/max);
345 }
346 return ret;
347 }
eSwayStates
Определения DayZPlayerImplementAiming.c:11
float m_HoldBreathSwayCoef
stamina percentage at hold breath start
Определения DayZPlayerImplementAiming.c:49
bool UpdateSwayState(int state)
Определения DayZPlayerImplementAiming.c:354
float m_SwayStateStartTime
proportionally shortens de/stabilization process and duration. Also affects stamina consumption (temp...
Определения DayZPlayerImplementAiming.c:50

Перекрестные ссылки Math::Clamp(), Math::Lerp(), m_HoldBreathSwayCoef, m_LastSwayMultiplier, m_PlayerPb, m_ReferenceTime, m_SwayStateStartTime, m_TotalTime и UpdateSwayState().

Используется в ProcessAimFilters().