DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
CAContinuousEmpty.c
Go to the documentation of this file.
2{
3 protected float m_TargetUnits;
4 protected float m_SpentQuantity;
5 protected float m_SpentQuantity_total;
8 protected bool m_WringingClothes;
9 protected ref Param1<float> m_SpentUnits;
10 protected float m_TimeElpased;
11 protected float m_DefaultTimeStep = 0.25;
12
13 void CAContinuousEmpty( float quantity_emptied_per_second )
14 {
15 m_QuantityEmptiedPerSecond = quantity_emptied_per_second;
16 }
17
18 override void Setup( ActionData action_data )
19 {
20 if ( !m_SpentUnits )
21 {
22 m_SpentUnits = new Param1<float>(0);
23 }
24 else
25 {
26 m_SpentUnits.param1 = 0;
27 }
28
29 if ( action_data.m_MainItem.IsClothing() )
30 {
31 m_WringingClothes = true;
32
33 m_SpentQuantity = action_data.m_MainItem.GetWetMax() - action_data.m_MainItem.GetWet();
34 m_TargetUnits = action_data.m_MainItem.GetWetMax();
35 }
36 else
37 {
38 m_WringingClothes = false;
39
40 m_SpentQuantity = action_data.m_MainItem.GetQuantityMin();
41 m_TargetUnits = action_data.m_MainItem.GetQuantity();
42 }
43
44 m_AdjustedQuantityEmptiedPerSecond = action_data.m_Player.GetSoftSkillsManager().AddSpecialtyBonus( m_QuantityEmptiedPerSecond, m_Action.GetSpecialtyWeight(), true );
45 }
46
47 override int Execute( ActionData action_data )
48 {
49 if ( !action_data.m_Player )
50 {
51 return UA_ERROR;
52 }
53
54 if ( m_WringingClothes && action_data.m_MainItem.GetWet() >= action_data.m_MainItem.GetWetMax() )
55 {
56 //Print("SetEND_2");
57 return UA_FINISHED;
58 }
59 else
60 {
62 {
63 //Print("PROCESSING");
65 m_TimeElpased += action_data.m_Player.GetDeltaT();
66
68 {
69 CalcAndSetQuantity( action_data );
70 m_TimeElpased = 0;
71 //Setup(action_data); //reset data after repeat
72 }
73 return UA_PROCESSING;
74 }
75 else
76 {
77 CalcAndSetQuantity( action_data );
78 OnCompletePogress(action_data);
79 return UA_FINISHED;
80 }
81 }
82 }
83
84 override int Cancel( ActionData action_data )
85 {
86 if ( !action_data.m_Player || !action_data.m_MainItem )
87 {
88 return UA_ERROR;
89 }
90
91 CalcAndSetQuantity( action_data );
92 return UA_CANCEL;
93 }
94
95 override float GetProgress()
96 {
98 }
99
100 //---------------------------------------------------------------------------
101
102 void CalcAndSetQuantity( ActionData action_data )
103 {
105 if (GetGame().IsServer())
106 {
107 if ( m_SpentUnits )
108 {
111 }
112
113 action_data.m_MainItem.AddQuantity(-m_SpentQuantity);
114 }
115 m_SpentQuantity = 0;
116 }
117};
protected void CalcAndSetQuantity()
ItemBase m_MainItem
Definition ActionBase.c:28
PlayerBase m_Player
Definition ActionBase.c:33
void SetACData(Param units)
Definition CABase.c:40
protected ActionBase m_Action
Definition CABase.c:3
void OnCompletePogress(ActionData action_data)
override int Cancel(ActionData action_data)
void CAContinuousEmpty(float quantity_emptied_per_second)
protected float m_DefaultTimeStep
override int Execute(ActionData action_data)
protected float m_AdjustedQuantityEmptiedPerSecond
protected float m_SpentQuantity_total
protected float m_QuantityEmptiedPerSecond
override float GetProgress()
protected ref Param1< float > m_SpentUnits
protected float m_TimeElpased
void CalcAndSetQuantity(ActionData action_data)
protected float m_TargetUnits
protected bool m_WringingClothes
protected float m_SpentQuantity
override void Setup(ActionData action_data)
override bool IsClothing()
proto native CGame GetGame()
const int UA_FINISHED
Definition constants.c:420
const int UA_ERROR
Definition constants.c:439
const int UA_PROCESSING
Definition constants.c:418
const int UA_CANCEL
Definition constants.c:421