actionturnonwhileinhands.c 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. class ActionTurnOnWhileInHands : ActionSingleUseBase
  2. {
  3. void ActionTurnOnWhileInHands()
  4. {
  5. m_Text = "#switch_on";
  6. }
  7. override void CreateConditionComponents()
  8. {
  9. m_ConditionItem = new CCINonRuined();
  10. m_ConditionTarget = new CCTNone();
  11. }
  12. override bool HasTarget()
  13. {
  14. return false;
  15. }
  16. override bool HasProneException()
  17. {
  18. return true;
  19. }
  20. override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
  21. {
  22. if (item.IsInherited(Roadflare))
  23. {
  24. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_LIGHTFLARE;
  25. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_LITCHEMLIGHT;
  26. }
  27. else if (item.IsInherited(Chemlight_ColorBase))
  28. {
  29. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_LITCHEMLIGHT;
  30. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_LITCHEMLIGHT;
  31. }
  32. else if (item.IsInherited(GPSReceiver))
  33. {
  34. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_PRESS_TRIGGER;
  35. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_PRESS_TRIGGER;
  36. }
  37. else if (item.IsInherited(Heatpack))
  38. {
  39. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_HEATPACK;
  40. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_HEATPACK;
  41. }
  42. else
  43. {
  44. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_ITEM_ON;
  45. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_ITEM_ON;
  46. }
  47. return item.HasEnergyManager() && item.GetCompEM().CanSwitchOn() && item.GetCompEM().CanWork();
  48. }
  49. override void OnExecuteServer(ActionData action_data)
  50. {
  51. if ( action_data.m_MainItem.HasEnergyManager() )
  52. {
  53. if (action_data.m_MainItem.GetCompEM().CanWork())
  54. {
  55. action_data.m_MainItem.GetCompEM().SwitchOn();
  56. }
  57. }
  58. }
  59. override void OnStartClient(ActionData action_data)
  60. {
  61. if (action_data.m_MainItem && action_data.m_MainItem.IsInherited(Roadflare))
  62. {
  63. Roadflare flare = Roadflare.Cast(action_data.m_MainItem);
  64. flare.SetModelState(RoadflareModelStates.UNCAPPED_UNIGNITED);
  65. }
  66. }
  67. override void OnStartServer( ActionData action_data )
  68. {
  69. super.OnStartServer(action_data);
  70. if (action_data.m_MainItem && action_data.m_MainItem.IsInherited(Roadflare))
  71. {
  72. Roadflare flare = Roadflare.Cast(action_data.m_MainItem);
  73. flare.SetModelState(RoadflareModelStates.UNCAPPED_UNIGNITED);
  74. }
  75. }
  76. }