actionsetalarmclock.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. class ActionSetAlarmClockCB : ActionContinuousBaseCB
  2. {
  3. const float TIME_TO_COMPLETE = 24.0;
  4. override void CreateActionComponent()
  5. {
  6. m_ActionData.m_ActionComponent = new CAContinuousRepeat(TIME_TO_COMPLETE);
  7. AlarmClock_ColorBase alarm = AlarmClock_ColorBase.Cast(m_ActionData.m_MainItem);
  8. CAContinuousRepeat.Cast(m_ActionData.m_ActionComponent).SetProgress(alarm.GetAnimationPhase("ClockAlarm") * TIME_TO_COMPLETE);
  9. }
  10. };
  11. class ActionSetAlarmClock: ActionContinuousBase
  12. {
  13. void ActionSetAlarmClock()
  14. {
  15. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_SET_ALARM;
  16. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_SET_ALARM;
  17. m_SpecialtyWeight = 0;
  18. m_CallbackClass = ActionSetAlarmClockCB;
  19. m_Text = "#STR_SetAlarm0";
  20. }
  21. override void CreateConditionComponents()
  22. {
  23. m_ConditionTarget = new CCTSelf;
  24. m_ConditionItem = new CCINonRuined;
  25. }
  26. override bool HasProneException()
  27. {
  28. return true;
  29. }
  30. override bool HasTarget()
  31. {
  32. return false;
  33. }
  34. override void OnStart(ActionData action_data)
  35. {
  36. }
  37. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  38. {
  39. return true;
  40. }
  41. override void OnEndServer(ActionData action_data)
  42. {
  43. super.OnEndServer(action_data);
  44. float progress = action_data.m_Callback.GetActionComponentProgress();
  45. AlarmClock_ColorBase clock = AlarmClock_ColorBase.Cast(action_data.m_MainItem);
  46. clock.SetAlarmTimeServer(progress);
  47. }
  48. override void OnUpdate(ActionData action_data)
  49. {
  50. if (action_data.m_Callback)
  51. {
  52. float progress = action_data.m_Callback.GetActionComponentProgress();
  53. AlarmClock_ColorBase alarm = AlarmClock_ColorBase.Cast(action_data.m_MainItem);
  54. alarm.SetAnimationPhaseNow("ClockAlarm", progress);
  55. }
  56. }
  57. };