actiontogglenvmode.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. class ActionToggleNVMode: ActionSingleUseBase
  2. {
  3. void ActionToggleNVMode()
  4. {
  5. //m_CallbackClass = ActionTurnOnTransmitterCB;
  6. m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_ITEM_ON;
  7. m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_ITEM_ON;
  8. m_Text = "#switch_mode";
  9. }
  10. override void CreateConditionComponents()
  11. {
  12. m_ConditionItem = new CCINonRuined;
  13. m_ConditionTarget = new CCTNone;
  14. }
  15. override bool HasTarget()
  16. {
  17. return false;
  18. }
  19. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  20. {
  21. ItemOptics optics;
  22. if ( Class.CastTo(optics,item) && optics.IsNVOptic() )
  23. {
  24. return true;
  25. }
  26. return false;
  27. }
  28. override void OnExecuteServer( ActionData action_data )
  29. {
  30. SwitchMode(action_data);
  31. }
  32. override void OnExecuteClient( ActionData action_data )
  33. {
  34. SwitchMode(action_data);
  35. }
  36. void SwitchMode( ActionData action_data )
  37. {
  38. ItemOptics optics = ItemOptics.Cast(action_data.m_MainItem);
  39. switch (optics.GetCurrentOpticMode())
  40. {
  41. case GameConstants.OPTICS_STATE_DAY:
  42. optics.SetCurrentOpticMode(GameConstants.OPTICS_STATE_NIGHTVISION);
  43. //TODO: animate
  44. break;
  45. case GameConstants.OPTICS_STATE_NIGHTVISION:
  46. optics.SetCurrentOpticMode(GameConstants.OPTICS_STATE_DAY);
  47. //TODO: animate
  48. break;
  49. }
  50. }
  51. }