Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
pperdrowningeffect.c
Go to the documentation of this file.
1 class PPERequester_Drowning extends PPERequester_GameplayBase
2 {
3  private float m_EffectPhase = 0;
4  private float m_Magnitude = 0;
5  private float m_MinMagnitude = 0.3;
6  private float m_MaxMagnitude = 0.3; // Actual Maximum is Min+Max
7  private float m_Frequency = 5;
8  private float m_Stamina01;
9 
10  override protected void OnStart(Param par = null)
11  {
12  super.OnStart(par);
13 
14  m_EffectPhase = 0;
15  m_Magnitude = 0;
16  }
17 
18  override protected void OnUpdate(float delta)
19  {
20  super.OnUpdate(delta);
21 
22  if (!m_IsRunning)
23  return;
24 
25  m_EffectPhase += delta * m_Frequency / (m_Stamina01 + 1); // Start with lower frequency and increase it as it gets closer to danger
26 
27  float currentVal = (Math.Sin(m_EffectPhase) +1)/2; // Makes current val oscillate between 0 and 1 (normlization)
28  currentVal = Easing.EaseInExpo(currentVal); // Ease it to tweak the effect
29  currentVal *= currentVal * m_MaxMagnitude; // Scale the normalized value to make it proportional to the Max Magnitude
30  currentVal += m_MinMagnitude;
31  m_Magnitude = Math.Lerp(m_Magnitude, currentVal, delta * m_Frequency); // Learp to smooth the changes
32 
33  SetTargetValueFloat(PostProcessEffectType.Glow,PPEGlow.PARAM_VIGNETTE,true, m_Magnitude,PPEGodRays.L_0_GLASSES,PPOperators.ADD);
34  SetTargetValueColor(PostProcessEffectType.Glow,PPEGlow.PARAM_VIGNETTECOLOR,{0.0,0.025,0.04, 0.0},PPEGlow.L_23_GLASSES,PPOperators.ADD);
35  }
36 
37  void SetStamina01(float stamina01)
38  {
39  m_Stamina01 = stamina01;
40  }
41 }
PostProcessEffectType
PostProcessEffectType
Post-process effect type.
Definition: enworld.c:71
Param
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Definition: param.c:11
SetTargetValueColor
protected void SetTargetValueColor(int mat_id, int param_idx, ref array< float > val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Definition: pperequestplatformsbase.c:195
PPEGodRays
GodRays - PostProcessEffectType.GodRays.
Definition: ppegodrays.c:2
Easing
Input value between 0 and 1, returns value adjusted by easing, no automatic clamping of input(do your...
Definition: easing.c:2
OnUpdate
proto native void OnUpdate()
Definition: tools.c:349
PPEGlow
Glow - PostProcessEffectType.Glow.
Definition: ppeglow.c:7
PPERequester_GameplayBase
base, not to be used directly, would lead to layering collisions!
Definition: pperbloodloss.c:1
SetTargetValueFloat
protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Definition: pperequestplatformsbase.c:153
m_IsRunning
protected bool m_IsRunning
Definition: pperequestplatformsbase.c:2
PPOperators
PPOperators
PP operators, specify operation between subsequent layers.
Definition: ppeconstants.c:51
Math
Definition: enmath.c:6
OnStart
enum EAchievementError OnStart
Definition: pperglasses.c:2