actiontogglenvg.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. class ActionToggleNVG: ActionBase
  2. {
  3. void ActionToggleNVG()
  4. {
  5. }
  6. override bool IsInstant()
  7. {
  8. return true;
  9. }
  10. override void CreateConditionComponents()
  11. {
  12. m_ConditionItem = new CCINone;
  13. m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT);
  14. }
  15. override typename GetInputType()
  16. {
  17. return ToggleNVGActionInput;
  18. }
  19. override bool HasTarget()
  20. {
  21. return true;
  22. }
  23. override bool UseMainItem()
  24. {
  25. return false;
  26. }
  27. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  28. {
  29. NVGoggles goggles;
  30. Clothing NVmount;
  31. NVmount = Clothing.Cast(target.GetObject());
  32. if ( !NVmount )
  33. return false;
  34. goggles = NVGoggles.Cast(NVmount.FindAttachmentBySlotName("NVG"));
  35. if ( goggles )
  36. return true;
  37. return false;
  38. }
  39. override void Start( ActionData action_data )
  40. {
  41. super.Start( action_data );
  42. NVGoggles goggles;
  43. Clothing NVmount;
  44. NVmount = Clothing.Cast(action_data.m_Target.GetObject());
  45. goggles = NVGoggles.Cast(NVmount.FindAttachmentBySlotName("NVG"));
  46. goggles.RotateGoggles(goggles.m_IsLowered);
  47. }
  48. };