Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
cacontinuousquantityedible.c
Go to the documentation of this file.
1
class
CAContinuousQuantityEdible
:
CAContinuousQuantityRepeat
2
{
3
protected
float
m_InitItemQuantity
;
4
protected
float
m_SpentQuantityTotal
;
5
protected
float
m_QuantityUsedPerSecondStart
;
6
7
void
CAContinuousQuantityEdible
(
float
quantity_used_per_second,
float
time_to_repeat)
8
{
9
m_QuantityUsedPerSecondStart
= quantity_used_per_second;
10
11
m_DefaultTimeToRepeat
= time_to_repeat;
12
m_InitItemQuantity
= -1;
13
m_SpentQuantityTotal
= 0;
14
}
15
16
override
void
Setup
(
ActionData
action_data)
17
{
18
super.Setup(action_data);
19
20
if
(
m_InitItemQuantity
< 0)
21
m_InitItemQuantity
= action_data.m_MainItem.GetQuantity();
22
23
m_QuantityUsedPerSecond
=
m_QuantityUsedPerSecondStart
;
24
//qty adjustments based on item properties:
25
if
(action_data.m_MainItem.GetTemperature() >
PlayerConstants
.
CONSUMPTION_DAMAGE_TEMP_THRESHOLD
)
26
m_QuantityUsedPerSecond
=
m_QuantityUsedPerSecondStart
/
UAMisc
.
CONSUMPTION_SLOWDOWN_COEF_HOT
;
27
}
28
29
override
void
CalcAndSetQuantity
(
ActionData
action_data)
30
{
31
if
(
m_SpentUnits
)
32
{
33
m_SpentUnits
.param1 =
m_SpentQuantity
;
34
SetACData
(
m_SpentUnits
);
35
36
m_SpentQuantityTotal
+=
m_SpentQuantity
;
37
}
38
39
PlayerConsumeData
consumeData =
new
PlayerConsumeData
();
40
consumeData.
m_Type
=
EConsumeType
.ITEM_CONTINUOUS;
41
consumeData.
m_Amount
=
m_SpentQuantity
;
42
consumeData.
m_Source
= action_data.m_MainItem;
43
44
consumeData.
m_Agents
= 0;
45
Edible_Base
edibleItem;
46
if
(
Edible_Base
.CastTo(edibleItem, action_data.m_MainItem))
47
{
48
if
(edibleItem.
GetConsumptionPenaltyContext
() & (
EConsumptionPenaltyContext
.DRINK|
EConsumptionPenaltyContext
.EAT) !=
EConsumptionPenaltyContext
.NONE)
49
consumeData.
m_Agents
= action_data.m_Player.GetBloodyHandsPenaltyAgents();
50
}
51
52
if
(
g_Game
.IsServer())
53
{
54
PlayerBase
ntarget =
PlayerBase
.Cast(action_data.m_Target.GetObject());
55
if
(ntarget)
56
ntarget.Consume(consumeData);
57
else
58
action_data.m_Player.Consume(consumeData);
59
}
60
}
61
62
override
float
GetProgress
()
63
{
64
if
(
m_SpentQuantity
> 0)
65
return
Math
.
Clamp
((1 - (
m_InitItemQuantity
-
m_SpentQuantity
-
m_SpentQuantityTotal
) /
m_InitItemQuantity
), 0, 1);
66
else
67
return
Math
.
Clamp
((1 - (
m_InitItemQuantity
-
m_SpentQuantityTotal
) /
m_InitItemQuantity
), 0, 1);
68
}
69
}
ActionData
ActionBase ActionData
Definition
actionbase.c:30
CABase::SetACData
void SetACData(Param units)
Definition
cabase.c:40
CAContinuousQuantityEdible::CAContinuousQuantityEdible
void CAContinuousQuantityEdible(float quantity_used_per_second, float time_to_repeat)
Definition
cacontinuousquantityedible.c:7
CAContinuousQuantityEdible::m_QuantityUsedPerSecondStart
float m_QuantityUsedPerSecondStart
Definition
cacontinuousquantityedible.c:5
CAContinuousQuantityEdible::GetProgress
override float GetProgress()
Definition
cacontinuousquantityedible.c:62
CAContinuousQuantityEdible::CalcAndSetQuantity
override void CalcAndSetQuantity(ActionData action_data)
Definition
cacontinuousquantityedible.c:29
CAContinuousQuantityEdible::m_SpentQuantityTotal
float m_SpentQuantityTotal
Definition
cacontinuousquantityedible.c:4
CAContinuousQuantityEdible::Setup
override void Setup(ActionData action_data)
Definition
cacontinuousquantityedible.c:16
CAContinuousQuantityEdible::m_InitItemQuantity
float m_InitItemQuantity
Definition
cacontinuousquantityedible.c:3
CAContinuousQuantityRepeat::CAContinuousQuantityRepeat
void CAContinuousQuantityRepeat(float quantity_used_per_second, float time_to_repeat)
Definition
cacontinuousquantityrepeat.c:12
CAContinuousQuantityRepeat::m_QuantityUsedPerSecond
float m_QuantityUsedPerSecond
Definition
cacontinuousquantityrepeat.c:7
CAContinuousQuantityRepeat::m_SpentQuantity
float m_SpentQuantity
Definition
cacontinuousquantityrepeat.c:4
CAContinuousQuantityRepeat::m_DefaultTimeToRepeat
float m_DefaultTimeToRepeat
Definition
cacontinuousquantityrepeat.c:9
CAContinuousQuantityRepeat::m_SpentUnits
ref Param1< float > m_SpentUnits
Definition
cacontinuousquantityrepeat.c:10
Edible_Base
Definition
edible_base.c:2
Edible_Base::GetConsumptionPenaltyContext
int GetConsumptionPenaltyContext()
Definition
edible_base.c:692
Math
Definition
enmath.c:7
PlayerBase
Definition
playerbaseclient.c:2
PlayerConstants
Definition
playerconstants.c:2
PlayerConstants::CONSUMPTION_DAMAGE_TEMP_THRESHOLD
static const float CONSUMPTION_DAMAGE_TEMP_THRESHOLD
Definition
playerconstants.c:146
PlayerConsumeData
Definition
playerconsumedata.c:2
PlayerConsumeData::m_Type
EConsumeType m_Type
Definition
playerconsumedata.c:8
PlayerConsumeData::m_Amount
float m_Amount
Definition
playerconsumedata.c:3
PlayerConsumeData::m_Agents
int m_Agents
Definition
playerconsumedata.c:4
PlayerConsumeData::m_Source
ItemBase m_Source
Definition
playerconsumedata.c:7
UAMisc
Definition
actionconstants.c:173
UAMisc::CONSUMPTION_SLOWDOWN_COEF_HOT
const float CONSUMPTION_SLOWDOWN_COEF_HOT
Definition
actionconstants.c:175
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
EConsumeType
EConsumeType
Definition
econsumetype.c:2
EConsumptionPenaltyContext
EConsumptionPenaltyContext
Definition
econsumptionpenaltycontext.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'.
Games
Dayz
scripts
4_world
classes
useractionscomponent
actioncomponents
cacontinuousquantityedible.c
Generated by
1.17.0