Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
heatcomfortmdfr.c
Go to the documentation of this file.
1
class
HeatComfortMdfr
:
ModifierBase
2
{
3
override
void
Init
()
4
{
5
m_TrackActivatedTime
=
false
;
6
m_ID
=
eModifiers
.MDF_TEMPERATURE;
7
m_TickIntervalInactive
=
DEFAULT_TICK_TIME_INACTIVE
;
8
m_TickIntervalActive
=
DEFAULT_TICK_TIME_ACTIVE
;
9
DisableDeactivateCheck
();
10
}
11
12
override
bool
ActivateCondition
(
PlayerBase
player)
13
{
14
return
true
;
15
}
16
17
override
bool
DeactivateCondition
(
PlayerBase
player)
18
{
19
return
false
;
20
}
21
22
override
void
OnReconnect
(
PlayerBase
player)
23
{
24
25
}
26
27
override
string
GetDebugText
()
28
{
29
return
m_Player
.GetStatHeatComfort().Get().ToString();
30
}
31
32
override
string
GetDebugTextSimple
()
33
{
34
return
m_Player
.GetStatHeatComfort().Get().ToString();
35
}
36
37
38
override
void
OnTick
(
PlayerBase
player,
float
deltaT)
39
{
40
float
heat_comfort = player.GetStatHeatComfort().Get();
41
float
health_loss;
42
float
value_normalized;
43
44
if
( heat_comfort >
PlayerConstants
.
WATER_LOSS_THRESHOLD_HC_PLUS_LOW
)
45
{
46
value_normalized =
Math
.
Lerp
(
PlayerConstants
.
WATER_LOSS_THRESHOLD_HC_PLUS_LOW
,
PlayerConstants
.
WATER_LOSS_THRESHOLD_HC_PLUS_HIGH
, heat_comfort);
47
value_normalized =
Math
.
Clamp
(value_normalized, 0, 1);
48
float
water_loss = deltaT *
Math
.
Lerp
(
PlayerConstants
.
WATER_LOSS_HC_PLUS_LOW
,
PlayerConstants
.
WATER_LOSS_HC_PLUS_HIGH
, value_normalized);
49
player.GetStatWater().Add(-water_loss);
50
51
if
( heat_comfort >
PlayerConstants
.
WATER_LOSS_THRESHOLD_HC_PLUS_HIGH
)
52
{
53
value_normalized =
Math
.
Lerp
(
PlayerConstants
.
WATER_LOSS_THRESHOLD_HC_PLUS_HIGH
, 1.0, heat_comfort);
54
value_normalized =
Math
.
Clamp
(value_normalized, 0, 1);
55
health_loss = deltaT *
Math
.
Lerp
(
PlayerConstants
.
HEALTH_LOSS_HC_PLUS_LOW
,
PlayerConstants
.
HEALTH_LOSS_HC_PLUS_HIGH
,
Easing
.
EaseInQuad
(value_normalized));
56
}
57
}
58
if
( heat_comfort <
PlayerConstants
.
ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW
)
59
{
60
value_normalized =
Math
.
InverseLerp
(
PlayerConstants
.
ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW
,
PlayerConstants
.
ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH
, heat_comfort);
61
value_normalized =
Math
.
Clamp
(value_normalized, 0, 1);
62
float
energy_loss = deltaT *
Math
.
Lerp
(
PlayerConstants
.
ENERGY_LOSS_HC_MINUS_LOW
,
PlayerConstants
.
ENERGY_LOSS_HC_MINUS_HIGH
, value_normalized);
63
player.GetStatEnergy().Add(-energy_loss);
64
65
if
( heat_comfort <
PlayerConstants
.
ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH
)
66
{
67
value_normalized =
Math
.
InverseLerp
(
PlayerConstants
.
ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH
, -1.0, heat_comfort);
68
value_normalized =
Math
.
Clamp
(value_normalized, 0, 1);
69
health_loss = deltaT *
Math
.
Lerp
(
PlayerConstants
.
HEALTH_LOSS_HC_MINUS_LOW
,
PlayerConstants
.
HEALTH_LOSS_HC_MINUS_HIGH
,
Easing
.
EaseInQuad
(value_normalized));
70
}
71
}
72
73
if
( health_loss != 0 )
74
{
75
player.AddHealth(
""
,
""
,-health_loss);
76
}
77
}
78
};
79
m_Player
map m_Player
Easing
Input value between 0 and 1, returns value adjusted by easing, no automatic clamping of input(do your...
Definition
easing.c:3
Easing::EaseInQuad
static float EaseInQuad(float t)
Definition
easing.c:19
HeatComfortMdfr
Definition
heatcomfortmdfr.c:2
HeatComfortMdfr::DeactivateCondition
override bool DeactivateCondition(PlayerBase player)
Definition
heatcomfortmdfr.c:17
HeatComfortMdfr::OnReconnect
override void OnReconnect(PlayerBase player)
Definition
heatcomfortmdfr.c:22
HeatComfortMdfr::GetDebugText
override string GetDebugText()
Definition
heatcomfortmdfr.c:27
HeatComfortMdfr::GetDebugTextSimple
override string GetDebugTextSimple()
Definition
heatcomfortmdfr.c:32
HeatComfortMdfr::OnTick
override void OnTick(PlayerBase player, float deltaT)
Definition
heatcomfortmdfr.c:38
HeatComfortMdfr::Init
override void Init()
Definition
heatcomfortmdfr.c:3
HeatComfortMdfr::ActivateCondition
override bool ActivateCondition(PlayerBase player)
Definition
heatcomfortmdfr.c:12
Math
Definition
enmath.c:7
ModifierBase
Definition
breathvapourmdfr.c:4
PlayerBase
Definition
playerbaseclient.c:2
PlayerConstants
Definition
playerconstants.c:2
PlayerConstants::WATER_LOSS_THRESHOLD_HC_PLUS_LOW
static const float WATER_LOSS_THRESHOLD_HC_PLUS_LOW
Definition
playerconstants.c:121
PlayerConstants::HEALTH_LOSS_HC_MINUS_LOW
static const float HEALTH_LOSS_HC_MINUS_LOW
Definition
playerconstants.c:136
PlayerConstants::ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH
static const float ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH
Definition
playerconstants.c:125
PlayerConstants::ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW
static const float ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW
Definition
playerconstants.c:124
PlayerConstants::HEALTH_LOSS_HC_MINUS_HIGH
static const float HEALTH_LOSS_HC_MINUS_HIGH
Definition
playerconstants.c:137
PlayerConstants::WATER_LOSS_THRESHOLD_HC_PLUS_HIGH
static const float WATER_LOSS_THRESHOLD_HC_PLUS_HIGH
Definition
playerconstants.c:122
PlayerConstants::WATER_LOSS_HC_PLUS_HIGH
static const float WATER_LOSS_HC_PLUS_HIGH
Definition
playerconstants.c:128
PlayerConstants::WATER_LOSS_HC_PLUS_LOW
static const float WATER_LOSS_HC_PLUS_LOW
Definition
playerconstants.c:127
PlayerConstants::ENERGY_LOSS_HC_MINUS_HIGH
static const float ENERGY_LOSS_HC_MINUS_HIGH
Definition
playerconstants.c:131
PlayerConstants::ENERGY_LOSS_HC_MINUS_LOW
static const float ENERGY_LOSS_HC_MINUS_LOW
Definition
playerconstants.c:130
PlayerConstants::HEALTH_LOSS_HC_PLUS_LOW
static const float HEALTH_LOSS_HC_PLUS_LOW
Definition
playerconstants.c:133
PlayerConstants::HEALTH_LOSS_HC_PLUS_HIGH
static const float HEALTH_LOSS_HC_PLUS_HIGH
Definition
playerconstants.c:134
m_ID
int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it).
Definition
effect.c:51
eModifiers
eModifiers
Definition
emodifiers.c:2
Math::Clamp
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
Math::InverseLerp
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
Math::Lerp
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
m_TrackActivatedTime
bool m_TrackActivatedTime
overall time this modifier was active
Definition
modifierbase.c:14
DisableDeactivateCheck
void DisableDeactivateCheck()
Definition
modifierbase.c:86
m_TickIntervalActive
float m_TickIntervalActive
Definition
modifierbase.c:18
m_TickIntervalInactive
float m_TickIntervalInactive
Definition
modifierbase.c:17
DEFAULT_TICK_TIME_INACTIVE
const int DEFAULT_TICK_TIME_INACTIVE
Definition
modifiersmanager.c:29
DEFAULT_TICK_TIME_ACTIVE
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE
Games
Dayz
scripts
4_world
classes
playermodifiers
modifiers
heatcomfortmdfr.c
Generated by
1.17.0