actiondialcombinationlock.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. class ActionDialCombinationLockCB : ActionContinuousBaseCB
  2. {
  3. private const float REPEAT_AFTER_SEC = 0.5;
  4. override void CreateActionComponent()
  5. {
  6. m_ActionData.m_ActionComponent = new CAContinuousRepeat(REPEAT_AFTER_SEC);
  7. }
  8. }
  9. class ActionDialCombinationLock: ActionContinuousBase
  10. {
  11. void ActionDialCombinationLock()
  12. {
  13. m_CallbackClass = ActionDialCombinationLockCB;
  14. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENITEM;
  15. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_OPENITEM;
  16. m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
  17. m_Text = "#dial_combination_lock";
  18. }
  19. override void CreateConditionComponents()
  20. {
  21. m_ConditionTarget = new CCTNone();
  22. m_ConditionItem = new CCINonRuined();
  23. }
  24. override bool HasProneException()
  25. {
  26. return true;
  27. }
  28. override bool HasTarget()
  29. {
  30. return false;
  31. }
  32. override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
  33. {
  34. ConstructionActionData constructionActionData = player.GetConstructionActionData();
  35. m_Text = "#dial_combination_lock " + constructionActionData.GetDialNumberText();
  36. }
  37. override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
  38. {
  39. if (item.IsInherited(CombinationLock))
  40. {
  41. ConstructionActionData constructionActionData = player.GetConstructionActionData();
  42. constructionActionData.SetCombinationLock(CombinationLock.Cast(item));
  43. return true;
  44. }
  45. return false;
  46. }
  47. override void OnFinishProgressServer(ActionData action_data)
  48. {
  49. //set dialed number
  50. ConstructionActionData constructionActionData = action_data.m_Player.GetConstructionActionData();
  51. CombinationLock combination_lock = constructionActionData.GetCombinationLock();
  52. combination_lock.DialNextNumber();
  53. }
  54. }