Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
cacontinuousquantityedible.c
Go to the documentation of this file.
2{
3 protected float m_InitItemQuantity;
4 protected float m_SpentQuantityTotal;
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;
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
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 {
35
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 {
49 consumeData.m_Agents = action_data.m_Player.GetBloodyHandsPenaltyAgents();
50 }
51
52 if (GetGame().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)
66 else
67 return Math.Clamp((1 - (m_InitItemQuantity - m_SpentQuantityTotal ) / m_InitItemQuantity), 0, 1);
68 }
69}
void SetACData(Param units)
Definition cabase.c:40
void CAContinuousQuantityEdible(float quantity_used_per_second, float time_to_repeat)
override void Setup(ActionData action_data)
override void CalcAndSetQuantity(ActionData action_data)
int GetConsumptionPenaltyContext()
Definition enmath.c:7
EConsumeType
Definition econsumetype.c:2
proto native CGame GetGame()