Dayz Explorer 1.28.160049
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);
74 float maximalUsableDuration = m_TimeToComplete - UAFishingConstants.SIGNAL_DEADZONE_END_DURATION - UAFishingConstants.SIGNAL_DEADZONE_START_DURATION;
75 if (maximalUsableDuration < UAFishingConstants.SIGNAL_DURATION_MIN_BASE)
76 {
77 if (maximalUsableDuration <= 0)
78 {
79 float deadzonesTime = UAFishingConstants.SIGNAL_DEADZONE_END_DURATION + UAFishingConstants.SIGNAL_DEADZONE_START_DURATION;
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
103 m_SignalStartTime = Math.Clamp(startTime,UAFishingConstants.SIGNAL_DEADZONE_START_DURATION,(m_TimeToComplete - m_SignalDuration - UAFishingConstants.SIGNAL_DEADZONE_END_DURATION));
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};
void OnSignalEnd(FishingActionData action_data)
void OnSignalStart(FishingActionData action_data)
void SetNewSignalData(float startTime, float durationTime)
override int Execute(ActionData action_data)
void OnSignalStart(ActionData action_data)
void CAContinuousRepeatFishing(float time_to_complete_action)
void OnSignalEnd(ActionData action_data)
Super root of all classes in Enforce script.
Definition enscript.c:11
Definition debug.c:2
Definition enmath.c:7
enum ShapeType ErrorEx
proto native bool IsCLIParam(string param)
Returns if command line argument is present.
const int UA_FINISHED
Definition constants.c:466
const int UA_ERROR
Definition constants.c:485
const int UA_PROCESSING
Definition constants.c:464