Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_RegenerationScreenEffect.c
Go to the documentation of this file.
2{
3 // PP constants
4 // Variables connected to a material, need to be static
5 static const int CHROM_ABER_PRIORITY = 9;
6
7 [Attribute(defvalue: "6", uiwidget: UIWidgets.EditBox, desc: "Duration of the regeneration effect in seconds")]
8 protected float m_fRegenEffectDuration;
9
10 [Attribute("0 0 1 1", UIWidgets.CurveDialog, desc: "Trajectory of the intensity of the regenerationEffect")]
11 protected ref Curve m_Curve;
12
13 //Character
16 protected const string CHROMATIC_ABERIATION_EMAT = "{A78A424C3179C706}UI/Materials/ScreenEffects_ChromAberrPP.emat";
17 protected bool m_bRegenerationEffect;
19
20 // Variables connected to a material, need to be static
21 private static bool s_bEnabled;
22 private static float s_fChromAberPower;
23
24 //------------------------------------------------------------------------------------------------
25 override protected void DisplayStartDraw(IEntity owner)
26 {
28 }
29
30 //------------------------------------------------------------------------------------------------
31 override protected void DisplayControlledEntityChanged(IEntity from, IEntity to)
32 {
34
37 return;
38
41 return;
42
43 m_pDamageManager.GetOnDamageEffectAdded().Insert(OnDamageEffectAdded);
44
45 m_pCharacterEntity.GetWorld().SetCameraPostProcessEffect(m_pCharacterEntity.GetWorld().GetCurrentCameraId(), CHROM_ABER_PRIORITY, PostProcessEffectType.ChromAber, CHROMATIC_ABERIATION_EMAT);
46 }
47
48 //------------------------------------------------------------------------------------------------
49 override protected void DisplayOnSuspended()
50 {
51 s_bEnabled = false;
52 }
53
54 //------------------------------------------------------------------------------------------------
55 override protected void DisplayOnResumed()
56 {
57 s_bEnabled = true;
58 }
59
60 //------------------------------------------------------------------------------------------------
61 override void UpdateEffect(float timeSlice)
62 {
64 RegenerationEffect(timeSlice);
65 }
66
67 //------------------------------------------------------------------------------------------------
68 protected void RegenerationEffect(float timeSlice)
69 {
70 m_fRegenEffectTimeRemaining -= timeSlice;
71
72 float chromAberProgress = Math.InverseLerp(m_fRegenEffectDuration, 0, m_fRegenEffectTimeRemaining);
73
74 vector chromAberPowerScaled = LegacyCurve.Curve(ECurveType.CatmullRom, chromAberProgress, m_Curve);
75
76 // The maximum value of the EMAT is 0.05. The chromatic aberiation cannot go over this value
77 s_fChromAberPower = Math.Lerp(0, 0.05, chromAberPowerScaled[1]);
78
80 {
83 s_fChromAberPower = 0;
84 }
85 }
86
87 //------------------------------------------------------------------------------------------------
88 protected void OnDamageEffectAdded(notnull SCR_DamageEffect dmgEffect)
89 {
90 if (dmgEffect.GetDamageType() != EDamageType.HEALING)
91 return;
92
95 }
96
97 //------------------------------------------------------------------------------------------------
98 protected override void ClearEffects()
99 {
101 s_fChromAberPower = 0;
102
104 m_pDamageManager.GetOnDamageEffectAdded().Remove(OnDamageEffectAdded);
105 }
106}
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition Math.c:22
Definition Math.c:13
SCR_CharacterDamageManagerComponent m_pDamageManager
void DisplayControlledEntityChanged(IEntity from, IEntity to)
override void UpdateEffect(float timeSlice)
void OnDamageEffectAdded(notnull SCR_DamageEffect dmgEffect)
SCR_FieldOfViewSettings Attribute
EDamageType
Definition EDamageType.c:13
ECurveType
Definition ECurveType.c:13
PostProcessEffectType
Definition EnWorld.c:20