Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
filteringbottle.c
Go to the documentation of this file.
1
class
FilteringBottle
:
Bottle_Base
2
{
3
const
float
DAMAGE_CONSUME_PER_ML
= 0.01;
4
const
float
DAMAGE_OVERHEAT_PER_S
= 1;
5
const
float
DAMAGE_ENVIRO_LIQUID_COEF_MIN
= 1;
6
const
float
DAMAGE_ENVIRO_LIQUID_COEF_MAX
= 1.5;
7
const
float
DAMAGE_ENVIRO_TEMPDIFF_MIN
= 80;
//min damage at this demperature diff
8
const
float
DAMAGE_ENVIRO_TEMPDIFF_MAX
= 10;
//maximum damage at this demperature diff
9
10
override
string
GetPouringSoundset
()
11
{
12
return
"emptyVessle_WaterBottle_SoundSet"
;
13
}
14
15
override
string
GetEmptyingLoopSoundsetHard
()
16
{
17
return
"pour_HardGround_WatterBottle_SoundSet"
;
18
}
19
20
override
string
GetEmptyingLoopSoundsetSoft
()
21
{
22
return
"pour_SoftGround_WatterBottle_SoundSet"
;
23
}
24
25
override
string
GetEmptyingLoopSoundsetWater
()
26
{
27
return
"pour_Water_WatterBottle_SoundSet"
;
28
}
29
30
override
string
GetEmptyingEndSoundsetHard
()
31
{
32
return
"pour_End_HardGround_WatterBottle_SoundSet"
;
33
}
34
35
override
string
GetEmptyingEndSoundsetSoft
()
36
{
37
return
"pour_End_SoftGround_WatterBottle_SoundSet"
;
38
}
39
40
override
string
GetEmptyingEndSoundsetWater
()
41
{
42
return
"pour_End_Water_WatterBottle_SoundSet"
;
43
}
44
45
override
bool
CanPutInCargo
(
EntityAI
parent )
46
{
47
if
( !super.CanPutInCargo(parent) ) {
return
false
;}
48
if
( parent && (parent.IsKindOf(
"WatterBottle"
))
/* && !(parent.IsKindOf("Container_Base"))*/
)
49
{
50
return
false
;
51
}
52
53
return
true
;
54
}
55
56
override
bool
IsOpen
()
57
{
58
return
true
;
59
}
60
61
override
int
FilterAgents
(
int
agentsIn)
62
{
63
int
agentsOut = agentsIn & (
~eAgents
.HEAVYMETAL) & (~
eAgents
.CHOLERA);
64
65
return
agentsOut;
66
}
67
68
override
void
OnConsume
(
float
amount,
PlayerBase
consumer)
69
{
70
super.OnConsume(amount,consumer);
71
72
DamageBottleConsume
(amount,consumer);
73
}
74
75
protected
void
DamageBottleConsume
(
float
amount,
PlayerBase
consumer)
76
{
77
DecreaseHealth(amount *
DAMAGE_CONSUME_PER_ML
,
false
);
78
}
79
80
override
void
AffectLiquidContainerOnFill
(
int
liquid_type,
float
amount)
81
{
82
float
liquidTemperature =
g_Game
.GetMission().GetWorldData().GetLiquidTypeEnviroTemperature(liquid_type);
83
if
(liquidTemperature >= GetTemperatureMax())
84
{
85
float
temperatureDiff = liquidTemperature -
GetTemperature
();
86
float
tTime =
Math
.
Clamp
(
Math
.
InverseLerp
(
DAMAGE_ENVIRO_TEMPDIFF_MIN
,
DAMAGE_ENVIRO_TEMPDIFF_MAX
,temperatureDiff),0,1);
87
float
temperatureDiffCoef =
Math
.
Lerp
(
DAMAGE_ENVIRO_LIQUID_COEF_MIN
,
DAMAGE_ENVIRO_LIQUID_COEF_MAX
,tTime);
88
float
damageVal = GetMaxHealth(
""
,
"Health"
) /
GetQuantityMax
();
89
DecreaseHealth(amount * damageVal * temperatureDiffCoef,
false
);
90
}
91
}
92
93
override
void
AffectLiquidContainerOnTransfer
(
int
liquidType,
float
amount,
float
sourceLiquidTemperature)
94
{
95
//does damage if receiving scalding liquid
96
if
(sourceLiquidTemperature >=
GetItemOverheatThreshold
())
97
{
98
float
temperatureDiff = sourceLiquidTemperature -
GetTemperature
();
99
float
tTime =
Math
.
Clamp
(
Math
.
InverseLerp
(
DAMAGE_ENVIRO_TEMPDIFF_MIN
,
DAMAGE_ENVIRO_TEMPDIFF_MAX
,temperatureDiff),0,1);
100
float
temperatureDiffCoef =
Math
.
Lerp
(
DAMAGE_ENVIRO_LIQUID_COEF_MIN
,
DAMAGE_ENVIRO_LIQUID_COEF_MAX
,tTime);
101
float
damageVal = GetMaxHealth(
""
,
"Health"
) /
GetQuantityMax
();
102
DecreaseHealth(amount * damageVal * temperatureDiffCoef,
false
);
103
}
104
}
105
107
override
float
GetItemOverheatThreshold
()
108
{
109
return
GetTemperatureMax();
110
}
111
};
Bottle_Base
Definition
canteen.c:2
EntityAI
Definition
inventoryitem.c:2
FilteringBottle
Definition
filteringbottle.c:2
FilteringBottle::GetEmptyingEndSoundsetSoft
override string GetEmptyingEndSoundsetSoft()
Definition
filteringbottle.c:35
FilteringBottle::DAMAGE_ENVIRO_TEMPDIFF_MIN
const float DAMAGE_ENVIRO_TEMPDIFF_MIN
Definition
filteringbottle.c:7
FilteringBottle::IsOpen
override bool IsOpen()
Definition
filteringbottle.c:56
FilteringBottle::GetItemOverheatThreshold
override float GetItemOverheatThreshold()
disregards liquid boil threshold if filled
Definition
filteringbottle.c:107
FilteringBottle::FilterAgents
override int FilterAgents(int agentsIn)
Definition
filteringbottle.c:61
FilteringBottle::DAMAGE_ENVIRO_TEMPDIFF_MAX
const float DAMAGE_ENVIRO_TEMPDIFF_MAX
Definition
filteringbottle.c:8
FilteringBottle::GetEmptyingEndSoundsetHard
override string GetEmptyingEndSoundsetHard()
Definition
filteringbottle.c:30
FilteringBottle::DAMAGE_CONSUME_PER_ML
const float DAMAGE_CONSUME_PER_ML
Definition
filteringbottle.c:3
FilteringBottle::GetPouringSoundset
override string GetPouringSoundset()
Definition
filteringbottle.c:10
FilteringBottle::DamageBottleConsume
void DamageBottleConsume(float amount, PlayerBase consumer)
Definition
filteringbottle.c:75
FilteringBottle::CanPutInCargo
override bool CanPutInCargo(EntityAI parent)
Definition
filteringbottle.c:45
FilteringBottle::DAMAGE_ENVIRO_LIQUID_COEF_MAX
const float DAMAGE_ENVIRO_LIQUID_COEF_MAX
Definition
filteringbottle.c:6
FilteringBottle::GetEmptyingLoopSoundsetWater
override string GetEmptyingLoopSoundsetWater()
Definition
filteringbottle.c:25
FilteringBottle::GetEmptyingEndSoundsetWater
override string GetEmptyingEndSoundsetWater()
Definition
filteringbottle.c:40
FilteringBottle::DAMAGE_ENVIRO_LIQUID_COEF_MIN
const float DAMAGE_ENVIRO_LIQUID_COEF_MIN
Definition
filteringbottle.c:5
FilteringBottle::AffectLiquidContainerOnTransfer
override void AffectLiquidContainerOnTransfer(int liquidType, float amount, float sourceLiquidTemperature)
Definition
filteringbottle.c:93
FilteringBottle::OnConsume
override void OnConsume(float amount, PlayerBase consumer)
Definition
filteringbottle.c:68
FilteringBottle::AffectLiquidContainerOnFill
override void AffectLiquidContainerOnFill(int liquid_type, float amount)
Definition
filteringbottle.c:80
FilteringBottle::DAMAGE_OVERHEAT_PER_S
const float DAMAGE_OVERHEAT_PER_S
Definition
filteringbottle.c:4
FilteringBottle::GetEmptyingLoopSoundsetSoft
override string GetEmptyingLoopSoundsetSoft()
Definition
filteringbottle.c:20
FilteringBottle::GetEmptyingLoopSoundsetHard
override string GetEmptyingLoopSoundsetHard()
Definition
filteringbottle.c:15
Math
Definition
enmath.c:7
PlayerBase
Definition
playerbaseclient.c:2
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
eAgents
eAgents
Definition
eagents.c:3
GetTemperature
float GetTemperature()
Definition
environment.c:500
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'.
GetQuantityMax
override int GetQuantityMax()
Definition
itembase.c:8349
Games
Dayz
scripts
4_world
entities
itembase
edible_base
bottle_base
filteringbottle.c
Generated by
1.17.0