actionviewbinoculars.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 rf = PoweredOptic_Base.Cast(optic);
  39. if (!rf)
  40. return;
  41. rf.SetPlayer( player );
  42. if ( GetGame().IsServer() )
  43. rf.GetCompEM().SwitchOn();
  44. }
  45. }
  46. override void ExitOptics(ItemOptics optic, PlayerBase player)
  47. {
  48. optic.ShowSelection("hide");
  49. if ( NVGoggles.Cast(optic) && optic.ConfigIsExisting("simpleHiddenSelections") )
  50. {
  51. optic.SetSimpleHiddenSelectionState(0,true);
  52. }
  53. player.SetHandheldOpticsInUse(false);
  54. player.ExitSights();
  55. if ( optic.HasEnergyManager() )
  56. {
  57. PoweredOptic_Base rf = PoweredOptic_Base.Cast(optic);
  58. if (!rf)
  59. return;
  60. rf.SetPlayer( null );
  61. if ( GetGame().IsServer() )
  62. rf.GetCompEM().SwitchOff();
  63. }
  64. }
  65. }