cacontinuousrepeat.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. class CAContinuousRepeat : CAContinuousBase
  2. {
  3. protected float m_TimeElpased;
  4. protected float m_TotalTimeElpased;
  5. protected float m_TimeToComplete;
  6. protected float m_DefaultTimeToComplete;
  7. protected ref Param1<float> m_SpentUnits;
  8. void CAContinuousRepeat( float time_to_complete_action )
  9. {
  10. m_DefaultTimeToComplete = time_to_complete_action;
  11. }
  12. override void Setup( ActionData action_data )
  13. {
  14. if ( !m_SpentUnits )
  15. {
  16. m_SpentUnits = new Param1<float>(0);
  17. }
  18. else
  19. {
  20. m_SpentUnits.param1 = 0;
  21. }
  22. m_TimeToComplete = m_DefaultTimeToComplete;//removed softskills
  23. }
  24. override int Execute( ActionData action_data )
  25. {
  26. if ( !action_data.m_Player )
  27. {
  28. return UA_ERROR;
  29. }
  30. if ( m_TimeElpased < m_TimeToComplete )
  31. {
  32. m_TimeElpased += action_data.m_Player.GetDeltaT();
  33. m_TotalTimeElpased += action_data.m_Player.GetDeltaT();
  34. return UA_PROCESSING;
  35. }
  36. else
  37. {
  38. m_SpentUnits.param1 = m_TimeElpased;
  39. SetACData(m_SpentUnits);
  40. m_TimeElpased = m_TimeToComplete - m_TimeElpased;
  41. OnCompletePogress(action_data);
  42. return UA_PROCESSING;
  43. }
  44. }
  45. override int Cancel( ActionData action_data )
  46. {
  47. if ( m_SpentUnits )
  48. {
  49. m_SpentUnits.param1 = m_TotalTimeElpased;
  50. SetACData(m_SpentUnits);
  51. }
  52. return UA_CANCEL;
  53. }
  54. override float GetProgress()
  55. {
  56. float progress = m_TimeElpased/m_TimeToComplete;
  57. //Print("progress: " + progress + " | m_TimeElpased: " + m_TimeElpased + " | m_TimeToComplete: " + m_TimeToComplete);
  58. return progress;
  59. }
  60. void SetProgress(float value)
  61. {
  62. m_TimeElpased = value;
  63. }
  64. };