1234567891011121314151617181920212223242526272829303132333435363738394041 |
- class PPERequester_Drowning extends PPERequester_GameplayBase
- {
- private float m_EffectPhase = 0;
- private float m_Magnitude = 0;
- private float m_MinMagnitude = 0.3;
- private float m_MaxMagnitude = 0.3; // Actual Maximum is Min+Max
- private float m_Frequency = 5;
- private float m_Stamina01;
-
- override protected void OnStart(Param par = null)
- {
- super.OnStart(par);
-
- m_EffectPhase = 0;
- m_Magnitude = 0;
- }
-
- override protected void OnUpdate(float delta)
- {
- super.OnUpdate(delta);
-
- if (!m_IsRunning)
- return;
-
- m_EffectPhase += delta * m_Frequency / (m_Stamina01 + 1); // Start with lower frequency and increase it as it gets closer to danger
-
- float currentVal = (Math.Sin(m_EffectPhase) +1)/2; // Makes current val oscillate between 0 and 1 (normlization)
- currentVal = Easing.EaseInExpo(currentVal); // Ease it to tweak the effect
- currentVal *= currentVal * m_MaxMagnitude; // Scale the normalized value to make it proportional to the Max Magnitude
- currentVal += m_MinMagnitude;
- m_Magnitude = Math.Lerp(m_Magnitude, currentVal, delta * m_Frequency); // Learp to smooth the changes
-
- SetTargetValueFloat(PostProcessEffectType.Glow,PPEGlow.PARAM_VIGNETTE,true, m_Magnitude,PPEGodRays.L_0_GLASSES,PPOperators.ADD);
- SetTargetValueColor(PostProcessEffectType.Glow,PPEGlow.PARAM_VIGNETTECOLOR,{0.0,0.025,0.04, 0.0},PPEGlow.L_23_GLASSES,PPOperators.ADD);
- }
-
- void SetStamina01(float stamina01)
- {
- m_Stamina01 = stamina01;
- }
- }
|