optics.c 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. class Crossbow_RedpointOptic : ItemOptics {};
  2. class LongrangeOptic : ItemOptics {};
  3. class PistolOptic : ItemOptics {};
  4. class GrozaOptic : ItemOptics {};
  5. class ACOGOptic : ItemOptics {};
  6. class ACOGOptic_6x : ItemOptics {};
  7. class KashtanOptic : ItemOptics {};
  8. class M68Optic : ItemOptics {};
  9. class M4_T3NRDSOptic : ItemOptics {};
  10. class FNP45_MRDSOptic : ItemOptics {};
  11. class ReflexOptic : ItemOptics {};
  12. class KobraOptic : ItemOptics {};
  13. class KazuarOptic: ItemOptics
  14. {
  15. override void InitOpticMode() //TODO - decide whether to randomize on spawn and how to determine it (attachment etc.)
  16. {
  17. super.InitOpticMode();
  18. SetCurrentOpticMode(GameConstants.OPTICS_STATE_NIGHTVISION);
  19. }
  20. override int GetCurrentNVType()
  21. {
  22. if (IsWorking())
  23. {
  24. switch (m_CurrentOpticMode)
  25. {
  26. case GameConstants.OPTICS_STATE_DAY:
  27. return NVTypes.NV_OPTICS_KAZUAR_DAY;
  28. case GameConstants.OPTICS_STATE_NIGHTVISION:
  29. return NVTypes.NV_OPTICS_KAZUAR_NIGHT;
  30. }
  31. Error("Undefined optic mode of " + this);
  32. return NVTypes.NONE;
  33. }
  34. else
  35. {
  36. return NVTypes.NV_OPTICS_OFF;
  37. }
  38. }
  39. override void OnOpticModeChange()
  40. {
  41. super.OnOpticModeChange();
  42. UpdateSelectionVisibility();
  43. }
  44. override void OnOpticEnter()
  45. {
  46. super.OnOpticEnter();
  47. HideSelection("hide_cover_pilot");
  48. }
  49. override void UpdateSelectionVisibility()
  50. {
  51. super.UpdateSelectionVisibility();
  52. switch (GetCurrentOpticMode())
  53. {
  54. case GameConstants.OPTICS_STATE_NIGHTVISION:
  55. HideSelection("hide_cover");
  56. HideSelection("hide_cover_pilot");
  57. break;
  58. case GameConstants.OPTICS_STATE_DAY:
  59. ShowSelection("hide_cover");
  60. if ( !GetGame().IsDedicatedServer() && !IsInOptics() ) //quick sanity check, just in case
  61. {
  62. ShowSelection("hide_cover_pilot");
  63. }
  64. break;
  65. }
  66. }
  67. override void SetActions()
  68. {
  69. super.SetActions();
  70. AddAction(ActionToggleNVMode);
  71. }
  72. };
  73. class StarlightOptic: ItemOptics
  74. {
  75. override void InitOpticMode() //TODO - decide whether to randomize on spawn and how to determine it (attachment etc.)
  76. {
  77. super.InitOpticMode();
  78. SetCurrentOpticMode(GameConstants.OPTICS_STATE_NIGHTVISION);
  79. }
  80. override int GetCurrentNVType()
  81. {
  82. if (IsWorking())
  83. {
  84. switch (m_CurrentOpticMode)
  85. {
  86. case GameConstants.OPTICS_STATE_DAY:
  87. return NVTypes.NV_OPTICS_STARLIGHT_DAY;
  88. case GameConstants.OPTICS_STATE_NIGHTVISION:
  89. return NVTypes.NV_OPTICS_STARLIGHT_NIGHT;
  90. }
  91. Error("Undefined optic mode of " + this);
  92. return NVTypes.NONE;
  93. }
  94. else
  95. {
  96. return NVTypes.NV_OPTICS_OFF;
  97. }
  98. }
  99. override void OnOpticModeChange()
  100. {
  101. super.OnOpticModeChange();
  102. UpdateSelectionVisibility();
  103. }
  104. override void OnOpticEnter()
  105. {
  106. super.OnOpticEnter();
  107. HideSelection("hide_cover_pilot");
  108. }
  109. override void UpdateSelectionVisibility()
  110. {
  111. super.UpdateSelectionVisibility();
  112. switch (GetCurrentOpticMode())
  113. {
  114. case GameConstants.OPTICS_STATE_NIGHTVISION:
  115. HideSelection("hide_cover");
  116. HideSelection("hide_cover_pilot");
  117. break;
  118. case GameConstants.OPTICS_STATE_DAY:
  119. ShowSelection("hide_cover");
  120. if ( !GetGame().IsDedicatedServer() && !IsInOptics() ) //quick sanity check, just in case
  121. {
  122. ShowSelection("hide_cover_pilot");
  123. }
  124. break;
  125. }
  126. }
  127. override void SetActions()
  128. {
  129. super.SetActions();
  130. AddAction(ActionToggleNVMode);
  131. }
  132. };