123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- class CAContinuousRepeatFishing : CAContinuousRepeat
- {
- bool m_SignalTriggered = false;
- float m_SignalStartTime;
- float m_SignalDuration;
-
- void CAContinuousRepeatFishing( float time_to_complete_action )
- {
- m_DefaultTimeToComplete = time_to_complete_action;
- }
-
- override int Execute( ActionData action_data )
- {
- if (!action_data.m_Player)
- {
- return UA_ERROR;
- }
-
- if (m_TimeElpased < m_TimeToComplete)
- {
- m_TimeElpased += action_data.m_Player.GetDeltaT();
- m_TotalTimeElpased += action_data.m_Player.GetDeltaT();
-
- //handle signal triggers
- if (m_SignalStartTime != -1 && m_SignalDuration != -1)
- {
- if (m_TimeElpased >= m_SignalStartTime)
- {
- float signalEndTime = m_SignalStartTime + m_SignalDuration;
- if (!m_SignalTriggered && m_TimeElpased < signalEndTime)
- {
- m_SignalTriggered = true;
- OnSignalStart(action_data);
- }
- else if (m_SignalTriggered && m_TimeElpased >= signalEndTime)
- {
- m_SignalTriggered = false;
- OnSignalEnd(action_data);
- }
- }
- }
- }
- else
- {
- m_TimeElpased = m_TimeToComplete - m_TimeElpased;
- OnCompletePogress(action_data);
-
- m_SignalTriggered = false;
- }
-
- FishingActionData fad = FishingActionData.Cast(action_data);
- if (fad.m_FishingResult != -1)
- {
- return UA_FINISHED;
- }
- else
- {
- return UA_PROCESSING;
- }
- }
-
- void SetNewSignalData(float startTime, float durationTime)
- {
- if (startTime == -1 && durationTime == -1)
- {
- m_SignalStartTime = startTime;
- m_SignalDuration = durationTime;
- }
- else
- {
- float maximalUsableDuration = m_TimeToComplete - UAFishingConstants.SIGNAL_DEADZONE_END_DURATION - UAFishingConstants.SIGNAL_DEADZONE_START_DURATION;
- m_SignalStartTime = Math.Clamp(startTime,UAFishingConstants.SIGNAL_DEADZONE_START_DURATION,(m_TimeToComplete - UAFishingConstants.SIGNAL_DURATION_MIN_BASE - UAFishingConstants.SIGNAL_DEADZONE_END_DURATION));
- m_SignalDuration = Math.Clamp(durationTime,UAFishingConstants.SIGNAL_DURATION_MIN_BASE,Math.Min(maximalUsableDuration,UAFishingConstants.SIGNAL_DURATION_MAX_BASE)); //scaled down if needed
-
- if (startTime != m_SignalStartTime)
- Debug.Log("Signal startTime adjusted from " + startTime + " to " + m_SignalStartTime);
- if (durationTime != m_SignalDuration)
- Debug.Log("Signal durationTime adjusted from " + durationTime + " to " + m_SignalDuration);
- }
- }
-
- protected void OnSignalStart(ActionData action_data)
- {
- FishingActionData data;
- if (Class.CastTo(data,action_data))
- {
- ActionFishingNew action;
- if (Class.CastTo(action,data.m_Action))
- action.OnSignalStart(data);
- }
- }
-
- protected void OnSignalEnd(ActionData action_data)
- {
- FishingActionData data;
- if (Class.CastTo(data,action_data))
- {
- ActionFishingNew action;
- if (Class.CastTo(action,data.m_Action))
- action.OnSignalEnd(data);
- }
- }
- };
|