Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
cacontinuousrepeatfishing.c
Go to the documentation of this file.
2{
3 protected const int NO_SIGNAL = -1;
4
5 bool m_SignalTriggered = false;
9
10 void CAContinuousRepeatFishing( float time_to_complete_action )
11 {
12 m_DefaultTimeToComplete = time_to_complete_action;
13 }
14
15 override int Execute( ActionData action_data )
16 {
17 if (!action_data.m_Player)
18 {
19 return UA_ERROR;
20 }
21
23 {
24 m_TimeElpased += action_data.m_Player.GetDeltaT();
25 m_TotalTimeElpased += action_data.m_Player.GetDeltaT();
26
27 //handle signal triggers
29 {
31 {
33 {
34 m_SignalTriggered = true;
35 OnSignalStart(action_data);
36 }
38 {
39 m_SignalTriggered = false;
40 OnSignalEnd(action_data);
41 }
42 }
43 }
44 }
45 else
46 {
48 OnCompletePogress(action_data);
49
50 m_SignalTriggered = false;
51 }
52
53 FishingActionData fad = FishingActionData.Cast(action_data);
54 if (fad.m_FishingResult != -1)
55 {
56 return UA_FINISHED;
57 }
58 else
59 {
60 return UA_PROCESSING;
61 }
62 }
63
64 void SetNewSignalData(float startTime, float durationTime)
65 {
66 if (startTime == NO_SIGNAL && durationTime == NO_SIGNAL)
67 {
68 m_SignalStartTime = startTime;
69 m_SignalDuration = durationTime;
70 }
71 else
72 {
73 //float maximalUsableDuration = Math.Clamp(m_TimeToComplete - UAFishingConstants.SIGNAL_DEADZONE_END_DURATION - UAFishingConstants.SIGNAL_DEADZONE_START_DURATION,UAFishingConstants.SIGNAL_DURATION_MIN_BASE,UAFishingConstants.SIGNAL_DURATION_MAX_BASE);
75 if (maximalUsableDuration < UAFishingConstants.SIGNAL_DURATION_MIN_BASE)
76 {
77 if (maximalUsableDuration <= 0)
78 {
80 #ifdef DEVELOPER
81 if (IsCLIParam("catchingErrors"))
82 ErrorEx("Cycle m_TimeToComplete: " + m_TimeToComplete + " shorter than combined deadzone times: " + deadzonesTime + "! No time left for any signal, skipping!");
83 else
84 #endif
85 Debug.Log("Cycle m_TimeToComplete: " + m_TimeToComplete + " shorter than combined deadzone times: " + deadzonesTime + "! No time left for any signal, skipping!","FishingCA");
86 }
87 else
88 {
89 #ifdef DEVELOPER
90 if (IsCLIParam("catchingErrors"))
91 ErrorEx("maximalUsableDuration " + maximalUsableDuration + " is shorter than UAFishingConstants.SIGNAL_DURATION_MIN_BASE, skipping signal!");
92 else
93 #endif
94 Debug.Log("maximalUsableDuration " + maximalUsableDuration + " is shorter than UAFishingConstants.SIGNAL_DURATION_MIN_BASE, skipping signal!","FishingCA");
95 }
96
99 return;
100 }
101
102 m_SignalDuration = Math.Clamp(durationTime,UAFishingConstants.SIGNAL_DURATION_MIN_BASE,Math.Min(maximalUsableDuration,UAFishingConstants.SIGNAL_DURATION_MAX_BASE)); //scaled down if needed, guaranteed at least SIGNAL_DURATION_MIN_BASE
105
106 if (durationTime != m_SignalDuration)
107 {
108 #ifdef DEVELOPER
109 Debug.Log("Signal durationTime adjusted from " + durationTime + " to " + m_SignalDuration + ". maximalUsableDuration: " + maximalUsableDuration + ", m_TimeToComplete: " + m_TimeToComplete,"FishingCA");
110 #endif
111 }
112 if (startTime != m_SignalStartTime)
113 {
114 #ifdef DEVELOPER
115 Debug.Log("Signal startTime adjusted from " + startTime + " to " + m_SignalStartTime + ". m_SignalDuration: " + m_SignalDuration + ", m_TimeToComplete: " + m_TimeToComplete,"FishingCA");
116 #endif
117 }
118 }
119 }
120
121 protected void OnSignalStart(ActionData action_data)
122 {
123 FishingActionData data;
124 if (Class.CastTo(data,action_data))
125 {
126 ActionFishingNew action;
127 if (Class.CastTo(action,data.m_Action))
128 action.OnSignalStart(data);
129 }
130 }
131
132 protected void OnSignalEnd(ActionData action_data)
133 {
134 FishingActionData data;
135 if (Class.CastTo(data,action_data))
136 {
137 ActionFishingNew action;
138 if (Class.CastTo(action,data.m_Action))
139 action.OnSignalEnd(data);
140 }
141 }
142};
ActionBase ActionData
Definition actionbase.c:30
void OnSignalEnd(FishingActionData action_data)
void OnSignalStart(FishingActionData action_data)
void OnCompletePogress(ActionData action_data)
void CAContinuousRepeatFishing(float time_to_complete_action)
void SetNewSignalData(float startTime, float durationTime)
override int Execute(ActionData action_data)
void OnSignalStart(ActionData action_data)
void OnSignalEnd(ActionData action_data)
void CAContinuousRepeat(float time_to_complete_action)
Super root of all classes in Enforce script.
Definition enscript.c:11
Definition debug.c:2
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Definition debug.c:182
Definition enmath.c:7
const float SIGNAL_DEADZONE_START_DURATION
const float SIGNAL_DURATION_MAX_BASE
const float SIGNAL_DURATION_MIN_BASE
const float SIGNAL_DEADZONE_END_DURATION
enum ShapeType ErrorEx
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
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'.
static proto float Min(float x, float y)
Returns smaller of two given values.
proto native bool IsCLIParam(string param)
Returns if command line argument is present.
const int UA_FINISHED
Definition constants.c:469
const int UA_ERROR
Definition constants.c:488
const int UA_PROCESSING
Definition constants.c:467