DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
CAContinuousTimeCooking.c
Go to the documentation of this file.
2{
3 const float TIME_DAMAGE_THRESHOLD = 5.0;
4
5 protected float m_LocalTimeElpased;
6 protected float m_TimeElapsed;
7 protected float m_TimeElapsedRepeat;
8 protected float m_TimeElapsedDamage;
9 protected ref Param1<float> m_SpentUnits;
10
11 protected float m_TimeToCook;
12 protected float m_AdjustedTimeToCook;
13 protected Cooking m_CookingProcess;
15 protected float m_CookingUpdateTime;
17
18 void CAContinuousTimeCooking(float cooking_update_time)
19 {
20 m_CookingUpdateTime = cooking_update_time;
21 }
22
23 override void Setup(ActionData action_data)
24 {
27
28 if (!m_SpentUnits)
29 {
30 m_SpentUnits = new Param1<float>(0);
31 }
32 else
33 {
34 m_SpentUnits.param1 = 0;
35 }
36
37 //fireplace & cooking process
38 FireplaceBase fireplace = FireplaceBase.Cast(action_data.m_Target.GetObject());
39 m_CookingProcess = fireplace.GetCookingProcess();
40 m_ItemToCook = m_CookingProcess.GetFoodOnStick(action_data.m_MainItem);
42
43 //update elapsed time
44 m_TimeElapsed = m_ItemToCook.GetFoodStage().GetCookingTime();
45
46 //SoftSkill implementation to hasten Cooking
47 m_AdjustedCookingUpdateTime = action_data.m_Player.GetSoftSkillsManager().SubtractSpecialtyBonus(m_CookingUpdateTime, m_Action.GetSpecialtyWeight(), true);
48 m_AdjustedTimeToCook = action_data.m_Player.GetSoftSkillsManager().SubtractSpecialtyBonus(m_TimeToCook, m_Action.GetSpecialtyWeight(), true);
49 }
50
51 override int Execute(ActionData action_data)
52 {
53 if ( !action_data.m_Player )
54 {
55 return UA_ERROR;
56 }
57
58 int cooking_state_update = 0;
59 float cooking_time = m_ItemToCook.GetFoodStage().GetCookingTime();
60 if (m_TimeToCook > cooking_time)
61 {
62 m_TimeElapsed += action_data.m_Player.GetDeltaT();
63 m_TimeElapsedRepeat += action_data.m_Player.GetDeltaT();
64
66 {
67 cooking_state_update = m_CookingProcess.CookOnStick(m_ItemToCook, m_CookingUpdateTime);
68
69 if (GetGame().IsServer())
70 {
72
74 {
77 }
78 }
79
80 if (cooking_state_update == 1)
81 {
82 Setup(action_data);
83
84 if (GetGame().IsServer())
85 {
86 action_data.m_Player.GetSoftSkillsManager().AddSpecialty( m_Action.GetSpecialtyWeight());
87 }
88 else
89 {
90 if (m_ItemToCook.IsMeat() && m_ItemToCook.GetFoodStage().GetFoodStageType() == FoodStageType.BAKED)
91 {
93 }
94 }
95 }
96
98 }
99
100 return UA_PROCESSING;
101 }
102 else
103 {
104 if (m_SpentUnits)
105 {
108 }
109 OnCompletePogress(action_data);
110 return UA_FINISHED;
111 }
112 }
113
114 override float GetProgress()
115 {
116 if (m_AdjustedTimeToCook != 0)
117 {
119 }
120
121 return 1;
122 }
123};
CookingMethodType
Definition Cooking.c:2
FoodStageType
Definition FoodStage.c:2
ItemBase m_MainItem
Definition ActionBase.c:28
PlayerBase m_Player
Definition ActionBase.c:33
ref ActionTarget m_Target
Definition ActionBase.c:32
void SetACData(Param units)
Definition CABase.c:40
protected ActionBase m_Action
Definition CABase.c:3
void OnCompletePogress(ActionData action_data)
protected Edible_Base m_ItemToCook
override int Execute(ActionData action_data)
protected float m_AdjustedCookingUpdateTime
void CAContinuousTimeCooking(float cooking_update_time)
protected ref Param1< float > m_SpentUnits
override void Setup(ActionData action_data)
AnalyticsManagerClient GetAnalyticsClient()
Definition Game.c:1412
override bool IsMeat()
proto native CGame GetGame()
const float FIRE_ATTACHMENT_DAMAGE_PER_SECOND
various damage per second constants
Definition constants.c:712
const int UA_FINISHED
Definition constants.c:420
const int UA_ERROR
Definition constants.c:439
const int UA_PROCESSING
Definition constants.c:418