Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_RegenerationScreenEffect.c
Go to the documentation of this file.
1
class
SCR_RegenerationScreenEffect
:
SCR_BaseScreenEffect
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
14
protected
ChimeraCharacter
m_pCharacterEntity
;
15
protected
SCR_CharacterDamageManagerComponent
m_pDamageManager
;
16
protected
const
string
CHROMATIC_ABERIATION_EMAT
=
"{A78A424C3179C706}UI/Materials/ScreenEffects_ChromAberrPP.emat"
;
17
protected
bool
m_bRegenerationEffect
;
18
protected
float
m_fRegenEffectTimeRemaining
;
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
{
27
m_pCharacterEntity
=
ChimeraCharacter
.Cast(owner);
28
}
29
30
//------------------------------------------------------------------------------------------------
31
override
protected
void
DisplayControlledEntityChanged
(
IEntity
from,
IEntity
to)
32
{
33
ClearEffects
();
34
35
m_pCharacterEntity
=
ChimeraCharacter
.Cast(to);
36
if
(!
m_pCharacterEntity
)
37
return
;
38
39
m_pDamageManager
=
SCR_CharacterDamageManagerComponent
.Cast(
m_pCharacterEntity
.GetDamageManager());
40
if
(!
m_pDamageManager
)
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
{
63
if
(
m_bRegenerationEffect
)
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
79
if
(
m_fRegenEffectTimeRemaining
<= 0)
80
{
81
m_bRegenerationEffect
=
false
;
82
m_fRegenEffectTimeRemaining
= 0;
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
93
m_fRegenEffectTimeRemaining
=
m_fRegenEffectDuration
;
94
m_bRegenerationEffect
=
true
;
95
}
96
97
//------------------------------------------------------------------------------------------------
98
protected
override
void
ClearEffects
()
99
{
100
m_fRegenEffectTimeRemaining
= 0;
101
s_fChromAberPower = 0;
102
103
if
(
m_pDamageManager
)
104
m_pDamageManager
.GetOnDamageEffectAdded().Remove(
OnDamageEffectAdded
);
105
}
106
}
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
ChimeraCharacter
Definition
ChimeraCharacter.c:13
Curve
Definition
Math.c:22
IEntity
Definition
IEntity.c:13
LegacyCurve
Definition
LegacyCurve.c:13
Math
Definition
Math.c:13
SCR_BaseScreenEffect
Definition
SCR_BaseScreenEffect.c:2
SCR_CharacterDamageManagerComponent
Definition
SCR_CharacterDamageManagerComponent.c:19
SCR_DamageEffect
Definition
SCR_DamageEffect.c:7
SCR_RegenerationScreenEffect
Definition
SCR_RegenerationScreenEffect.c:2
SCR_RegenerationScreenEffect::m_fRegenEffectTimeRemaining
float m_fRegenEffectTimeRemaining
Definition
SCR_RegenerationScreenEffect.c:18
SCR_RegenerationScreenEffect::m_pDamageManager
SCR_CharacterDamageManagerComponent m_pDamageManager
Definition
SCR_RegenerationScreenEffect.c:15
SCR_RegenerationScreenEffect::m_bRegenerationEffect
bool m_bRegenerationEffect
Definition
SCR_RegenerationScreenEffect.c:17
SCR_RegenerationScreenEffect::DisplayOnSuspended
void DisplayOnSuspended()
Definition
SCR_RegenerationScreenEffect.c:49
SCR_RegenerationScreenEffect::DisplayControlledEntityChanged
void DisplayControlledEntityChanged(IEntity from, IEntity to)
Definition
SCR_RegenerationScreenEffect.c:31
SCR_RegenerationScreenEffect::m_pCharacterEntity
ChimeraCharacter m_pCharacterEntity
Definition
SCR_RegenerationScreenEffect.c:14
SCR_RegenerationScreenEffect::m_Curve
ref Curve m_Curve
Definition
SCR_RegenerationScreenEffect.c:11
SCR_RegenerationScreenEffect::ClearEffects
override void ClearEffects()
Definition
SCR_RegenerationScreenEffect.c:98
SCR_RegenerationScreenEffect::UpdateEffect
override void UpdateEffect(float timeSlice)
Definition
SCR_RegenerationScreenEffect.c:61
SCR_RegenerationScreenEffect::CHROMATIC_ABERIATION_EMAT
const string CHROMATIC_ABERIATION_EMAT
Definition
SCR_RegenerationScreenEffect.c:16
SCR_RegenerationScreenEffect::RegenerationEffect
void RegenerationEffect(float timeSlice)
Definition
SCR_RegenerationScreenEffect.c:68
SCR_RegenerationScreenEffect::DisplayOnResumed
void DisplayOnResumed()
Definition
SCR_RegenerationScreenEffect.c:55
SCR_RegenerationScreenEffect::m_fRegenEffectDuration
float m_fRegenEffectDuration
Definition
SCR_RegenerationScreenEffect.c:8
SCR_RegenerationScreenEffect::DisplayStartDraw
void DisplayStartDraw(IEntity owner)
Definition
SCR_RegenerationScreenEffect.c:25
SCR_RegenerationScreenEffect::OnDamageEffectAdded
void OnDamageEffectAdded(notnull SCR_DamageEffect dmgEffect)
Definition
SCR_RegenerationScreenEffect.c:88
UIWidgets
Definition
attributes.c:40
vector
Definition
vector.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
EDamageType
EDamageType
Definition
EDamageType.c:13
ECurveType
ECurveType
Definition
ECurveType.c:13
PostProcessEffectType
PostProcessEffectType
Definition
EnWorld.c:20
scripts
Game
UI
ScreenEffects
SCR_RegenerationScreenEffect.c
Generated by
1.17.0