actionviewbinoculars.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. class ActionViewBinoculars : ActionViewOptics
  2. {
  3. bool m_workingRangefinder;
  4. override void OnActionInfoUpdate( PlayerBase player, ActionTarget target, ItemBase item )
  5. {
  6. Rangefinder rangefinder = Rangefinder.Cast(item);
  7. if ( rangefinder )
  8. {
  9. m_Text = "#use_range_finder";
  10. }
  11. else
  12. {
  13. m_Text = "#Look_Through";
  14. }
  15. }
  16. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  17. {
  18. ItemOptics optic;
  19. if( Class.CastTo(optic, item) && !optic.IsInOptics() && !player.IsNVGLowered() )
  20. {
  21. return true;
  22. }
  23. return false;
  24. }
  25. override void EnterOptics(ItemOptics optic, PlayerBase player)
  26. {
  27. player.SetIronsights(false);
  28. player.SetHandheldOpticsInUse(true);
  29. player.SetOptics(true);
  30. optic.EnterOptics();
  31. optic.HideSelection("hide");
  32. if ( NVGoggles.Cast(optic) && optic.ConfigIsExisting("simpleHiddenSelections") )
  33. {
  34. optic.SetSimpleHiddenSelectionState(0,false);
  35. }
  36. if ( optic.HasEnergyManager() )
  37. {
  38. PoweredOptic_Base opticBase = PoweredOptic_Base.Cast(optic);
  39. if (opticBase)
  40. {
  41. opticBase.SetPlayer(player);
  42. if (GetGame().IsServer())
  43. opticBase.StartWorkServer();
  44. }
  45. }
  46. }
  47. override void ExitOptics(ItemOptics optic, PlayerBase player)
  48. {
  49. optic.ShowSelection("hide");
  50. if ( NVGoggles.Cast(optic) && optic.ConfigIsExisting("simpleHiddenSelections") )
  51. {
  52. optic.SetSimpleHiddenSelectionState(0,true);
  53. }
  54. player.SetHandheldOpticsInUse(false);
  55. player.ExitSights();
  56. if ( optic.HasEnergyManager() )
  57. {
  58. PoweredOptic_Base opticBase = PoweredOptic_Base.Cast(optic);
  59. if (opticBase)
  60. {
  61. opticBase.SetPlayer(null);
  62. if (GetGame().IsServer())
  63. opticBase.StopWorkServer();
  64. }
  65. }
  66. }
  67. }