12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- class PPERequester_FlashbangEffects extends PPERequester_GameplayBase
- {
- const float VAL_FACTOR = 0.85;
- const float EXPOSURE_MAX = 50;
- protected float m_Exposure;
- protected float m_Intensity;
-
- override protected void OnStart(Param par = null)
- {
- if (!m_IsRunning)
- {
- if (GetGame().GetMission() && GetGame().GetMission().GetEffectWidgets())
- GetGame().GetMission().GetEffectWidgets().AddActiveEffects({EffectWidgetsTypes.COVER_FLASHBANG});
- }
-
- super.OnStart();
- }
-
- override protected void OnStop(Param par = null)
- {
- super.OnStop();
-
- m_Intensity = 0.0;
- m_Exposure = 0.0;
-
- if (GetGame().GetMission() && GetGame().GetMission().GetEffectWidgets())
- GetGame().GetMission().GetEffectWidgets().RemoveActiveEffects({EffectWidgetsTypes.COVER_FLASHBANG});
- }
-
- override protected void OnUpdate(float delta)
- {
- super.OnUpdate(delta);
-
- if (GetGame() && GetGame().GetMission() && GetGame().GetMission().GetEffectWidgets())
- {
- Param1<float> par = new Param1<float>(1 - m_Intensity);
- GetGame().GetMission().GetEffectWidgets().UpdateWidgets(EffectWidgetsTypes.COVER_FLASHBANG,0,par,EffectWidgetHandles.FLASHBANG);
- }
- }
-
- void SetFlashbangIntensity(float intensity, float daytime_toggle)
- {
- m_Intensity = intensity;
- array<float> overlay_color = {1.0, 1.0, 1.0, intensity};
- if (daytime_toggle <= 5.0)
- {
- m_Exposure = Math.Clamp(intensity * daytime_toggle,0.0,EXPOSURE_MAX);
- }
- else
- {
- m_Exposure = Easing.EaseInQuart(intensity);
- m_Exposure = Math.Clamp(EXPOSURE_MAX * m_Exposure,0.0,EXPOSURE_MAX);
- }
- overlay_color[3] = intensity;
-
- //blur
- SetTargetValueFloat(PostProcessEffectType.GaussFilter,PPEGaussFilter.PARAM_INTENSITY,true,intensity,PPEGaussFilter.L_0_FLASHBANG,PPOperators.ADD_RELATIVE);
- //overlay
- SetTargetValueFloat(PostProcessEffectType.Glow,PPEGlow.PARAM_OVERLAYFACTOR,true,intensity,PPEGlow.L_20_FLASHBANG,PPOperators.HIGHEST);
- SetTargetValueColor(PostProcessEffectType.Glow,PPEGlow.PARAM_OVERLAYCOLOR,overlay_color,PPEGlow.L_21_FLASHBANG,PPOperators.SET);
- //exposure
- SetTargetValueFloat(PPEExceptions.EXPOSURE,PPEExposureNative.PARAM_INTENSITY,false,m_Exposure,PPEExposureNative.L_0_FLASHBANG,PPOperators.ADD);
- }
- }
|