@jtff/miztemplate-lib 3.7.7 → 3.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/ci/build.js +0 -0
  4. package/ci/clean.js +0 -0
  5. package/ci/ftpupload.js +0 -0
  6. package/ci/gdrive-upload.js +0 -0
  7. package/ci/get-mizfiles.js +0 -0
  8. package/ci/getset-version.js +0 -0
  9. package/ci/inject-scripts.js +0 -0
  10. package/ci/prepare-nextversion.js +0 -0
  11. package/ci/release.js +0 -0
  12. package/ci/template-update.js +0 -0
  13. package/index.js +0 -0
  14. package/lib/jtff-lib-ci.js +0 -0
  15. package/lib/mizlib.js +0 -0
  16. package/lua/lib/Hercules_Cargo.lua +0 -0
  17. package/lua/lib/HoundElint.lua +10861 -10861
  18. package/lua/lib/Moose_.lua +0 -0
  19. package/lua/lib/Splash_Damage_main.lua +2151 -2151
  20. package/lua/lib/funkman.lua +0 -0
  21. package/lua/lib/mist.lua +0 -0
  22. package/lua/lib/skynet-iads-compiled.lua +0 -0
  23. package/lua/settings/settings-RAT.lua +0 -0
  24. package/lua/settings/settings-airboss.lua +0 -0
  25. package/lua/settings/settings-atis.lua +0 -0
  26. package/lua/settings/settings-awacs.lua +0 -0
  27. package/lua/settings/settings-awacsondemand.lua +0 -0
  28. package/lua/settings/settings-beacons.lua +0 -0
  29. package/lua/settings/settings-capwarzone.lua +0 -0
  30. package/lua/settings/settings-capzone.lua +0 -0
  31. package/lua/settings/settings-elint.lua +0 -0
  32. package/lua/settings/settings-fac_ranges.lua +0 -0
  33. package/lua/settings/settings-foxzone.lua +0 -0
  34. package/lua/settings/settings-funkman.lua +0 -0
  35. package/lua/settings/settings-global.lua +0 -0
  36. package/lua/settings/settings-intercept.lua +0 -0
  37. package/lua/settings/settings-logistics.lua +0 -0
  38. package/lua/settings/settings-ondemandawacs.lua +0 -0
  39. package/lua/settings/settings-ondemandtankers.lua +0 -0
  40. package/lua/settings/settings-pedros.lua +0 -0
  41. package/lua/settings/settings-qra.lua +24 -24
  42. package/lua/settings/settings-ranges.lua +0 -0
  43. package/lua/settings/settings-reapers.lua +0 -0
  44. package/lua/settings/settings-sams.lua +0 -0
  45. package/lua/settings/settings-skynet.lua +0 -0
  46. package/lua/settings/settings-tankers.lua +0 -0
  47. package/lua/settings/settings-training_ranges.lua +0 -0
  48. package/lua/src/010-root_menus.lua +0 -0
  49. package/lua/src/020-mission_functions.lua +0 -0
  50. package/lua/src/110-set_clients.lua +17 -14
  51. package/lua/src/120-tankers.lua +0 -0
  52. package/lua/src/130-airboss.lua +75 -25
  53. package/lua/src/135-pedro.lua +0 -0
  54. package/lua/src/140-beacons.lua +0 -0
  55. package/lua/src/150-awacs.lua +0 -0
  56. package/lua/src/160-atis.lua +0 -0
  57. package/lua/src/170-cap_zone_training.lua +0 -0
  58. package/lua/src/172-cap_zone_war.lua +0 -0
  59. package/lua/src/173-fox_zone_training.lua +0 -0
  60. package/lua/src/174-qra-scenario.lua +362 -362
  61. package/lua/src/176-random_air_traffic.lua +0 -0
  62. package/lua/src/178-training-intercept.lua +0 -0
  63. package/lua/src/180-logistics.lua +0 -0
  64. package/lua/src/190-ranges.lua +0 -0
  65. package/lua/src/191-sams.lua +0 -0
  66. package/lua/src/193-training_ranges.lua +0 -0
  67. package/lua/src/195-reaper-ondemand.lua +0 -0
  68. package/lua/src/196-fac_ranges.lua +0 -0
  69. package/lua/src/197-elint-ondemand.lua +0 -0
  70. package/lua/src/199-skynet.lua +0 -0
  71. package/lua/src/200-mission.lua +0 -0
  72. package/package.json +1 -1
  73. package/resources/radios/Caucasus/354th-caucasus.lua +0 -0
  74. package/resources/radios/Caucasus/494th-caucasus.lua +0 -0
  75. package/resources/radios/Caucasus/79th-SUFA-caucasus.lua +0 -0
  76. package/resources/radios/Caucasus/79th-caucasus.lua +0 -0
  77. package/resources/radios/Caucasus/ec25-D-caucasus.lua +0 -0
  78. package/resources/radios/Caucasus/ec25-caucasus.lua +0 -0
  79. package/resources/radios/Caucasus/vf84-a-caucasus.lua +0 -0
  80. package/resources/radios/Caucasus/vf84-b-caucasus.lua +0 -0
  81. package/resources/radios/Caucasus/vfa-131-caucasus.lua +0 -0
  82. package/resources/radios/Caucasus/vmfa-314-caucasus.lua +0 -0
  83. package/resources/radios/MarianaIslands/354th-marianas.lua +0 -0
  84. package/resources/radios/MarianaIslands/494th-marianas.lua +0 -0
  85. package/resources/radios/MarianaIslands/79th-marianas.lua +0 -0
  86. package/resources/radios/MarianaIslands/ec25-marianas.lua +0 -0
  87. package/resources/radios/MarianaIslands/vf84-a-marianas.lua +0 -0
  88. package/resources/radios/MarianaIslands/vf84-b-marianas.lua +0 -0
  89. package/resources/radios/MarianaIslands/vfa-131-marianas.lua +0 -0
  90. package/resources/radios/MarianaIslands/vmfa-314-marianas.lua +0 -0
  91. package/resources/radios/Nevada/354th-nttr.lua +0 -0
  92. package/resources/radios/Nevada/494th-nttr.lua +0 -0
  93. package/resources/radios/Nevada/79th-nttr.lua +0 -0
  94. package/resources/radios/Nevada/ec25-nttr.lua +0 -0
  95. package/resources/radios/Nevada/vf84-a-nttr.lua +0 -0
  96. package/resources/radios/Nevada/vf84-b-nttr.lua +0 -0
  97. package/resources/radios/Nevada/vfa-131-nttr.lua +0 -0
  98. package/resources/radios/Nevada/vmfa-314-nttr.lua +0 -0
  99. package/resources/radios/PersianGulf/354th-persian.lua +0 -0
  100. package/resources/radios/PersianGulf/3_30-persian.lua +0 -0
  101. package/resources/radios/PersianGulf/494th-persian.lua +0 -0
  102. package/resources/radios/PersianGulf/79th-persian.lua +0 -0
  103. package/resources/radios/PersianGulf/ec25-persian.lua +0 -0
  104. package/resources/radios/PersianGulf/vf84-a-persian.lua +0 -0
  105. package/resources/radios/PersianGulf/vf84-b-persian.lua +0 -0
  106. package/resources/radios/PersianGulf/vfa-131-persian.lua +0 -0
  107. package/resources/radios/PersianGulf/vmfa-314-persian.lua +0 -0
  108. package/resources/radios/SinaiMap/354th-sinai.lua +0 -0
  109. package/resources/radios/SinaiMap/494th-sinai.lua +0 -0
  110. package/resources/radios/SinaiMap/79th-SUFA-sinai.lua +0 -0
  111. package/resources/radios/SinaiMap/79th-sinai.lua +0 -0
  112. package/resources/radios/SinaiMap/ec25-D-sinai.lua +0 -0
  113. package/resources/radios/SinaiMap/ec25-sinai.lua +0 -0
  114. package/resources/radios/SinaiMap/vf84-a-sinai.lua +0 -0
  115. package/resources/radios/SinaiMap/vf84-b-sinai.lua +0 -0
  116. package/resources/radios/SinaiMap/vfa-131-sinai.lua +0 -0
  117. package/resources/radios/SinaiMap/vmfa-314-sinai.lua +0 -0
  118. package/resources/radios/Syria/354th-syria.lua +0 -0
  119. package/resources/radios/Syria/494th-syria.lua +0 -0
  120. package/resources/radios/Syria/79th-SUFA-syria.lua +0 -0
  121. package/resources/radios/Syria/79th-syria.lua +0 -0
  122. package/resources/radios/Syria/ec25-D-syria.lua +0 -0
  123. package/resources/radios/Syria/ec25-syria.lua +0 -0
  124. package/resources/radios/Syria/vf84-a-syria.lua +0 -0
  125. package/resources/radios/Syria/vf84-b-syria.lua +0 -0
  126. package/resources/radios/Syria/vfa-131-syria.lua +0 -0
  127. package/resources/radios/Syria/vmfa-314-syria.lua +0 -0
  128. package/resources/sounds/AICSAR/helodown.ogg +0 -0
  129. package/resources/sounds/AICSAR/initialnotok.ogg +0 -0
  130. package/resources/sounds/AICSAR/initialok.ogg +0 -0
  131. package/resources/sounds/AICSAR/pilotdown.ogg +0 -0
  132. package/resources/sounds/AICSAR/pilotinhelo.ogg +0 -0
  133. package/resources/sounds/AICSAR/pilotkia.ogg +0 -0
  134. package/resources/sounds/AICSAR/pilotrescued.ogg +0 -0
  135. package/resources/sounds/AIRBOSS/Airboss Soundfiles/AIRBOSS-Noise.ogg +0 -0
  136. package/resources/sounds/AIRBOSS/Airboss Soundfiles/AIRBOSS-RadioClick.ogg +0 -0
  137. package/resources/sounds/AIRBOSS/Airboss Soundfiles/AIRBOSS-SpinIt.ogg +0 -0
  138. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-BolterBolter.ogg +0 -0
  139. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-CallTheBall.ogg +0 -0
  140. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Check.ogg +0 -0
  141. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-ClearedToLand.ogg +0 -0
  142. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-ComeLeft.ogg +0 -0
  143. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-ComeLeft_Loud.ogg +0 -0
  144. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-DepartAndReenter.ogg +0 -0
  145. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-ExpectHeavyWaveoff.ogg +0 -0
  146. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-ExpectSpot5.ogg +0 -0
  147. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-ExpectSpot75.ogg +0 -0
  148. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Fast.ogg +0 -0
  149. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Fast_Loud.ogg +0 -0
  150. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-FoulDeck.ogg +0 -0
  151. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-High.ogg +0 -0
  152. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-High_Loud.ogg +0 -0
  153. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Idle.ogg +0 -0
  154. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-LongInTheGroove.ogg +0 -0
  155. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Low.ogg +0 -0
  156. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Low_Loud.ogg +0 -0
  157. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N0.ogg +0 -0
  158. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N1.ogg +0 -0
  159. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N2.ogg +0 -0
  160. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N3.ogg +0 -0
  161. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N4.ogg +0 -0
  162. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N5.ogg +0 -0
  163. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N6.ogg +0 -0
  164. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N7.ogg +0 -0
  165. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N8.ogg +0 -0
  166. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-N9.ogg +0 -0
  167. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-PaddlesContact.ogg +0 -0
  168. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Power.ogg +0 -0
  169. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Power_Loud.ogg +0 -0
  170. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-RadioCheck.ogg +0 -0
  171. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-RightForLineup.ogg +0 -0
  172. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-RightForLineup_Loud.ogg +0 -0
  173. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-RogerBall.ogg +0 -0
  174. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Slow.ogg +0 -0
  175. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Slow_Loud.ogg +0 -0
  176. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-Stabilized.ogg +0 -0
  177. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-WaveOff.ogg +0 -0
  178. package/resources/sounds/AIRBOSS/Airboss Soundfiles/LSO-WelcomeAboard.ogg +0 -0
  179. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Affirmative.ogg +0 -0
  180. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Altimeter.ogg +0 -0
  181. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-BRC.ogg +0 -0
  182. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-CarrierTurnToHeading.ogg +0 -0
  183. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Case.ogg +0 -0
  184. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-CharlieTime.ogg +0 -0
  185. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-ClearedForRecovery.ogg +0 -0
  186. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-DeckClosed.ogg +0 -0
  187. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Degrees.ogg +0 -0
  188. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Expected.ogg +0 -0
  189. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-FlyYourNeedles.ogg +0 -0
  190. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-HoldAtAngels.ogg +0 -0
  191. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Hours.ogg +0 -0
  192. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-MarshalRadial.ogg +0 -0
  193. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N0.ogg +0 -0
  194. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N1.ogg +0 -0
  195. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N2.ogg +0 -0
  196. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N3.ogg +0 -0
  197. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N4.ogg +0 -0
  198. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N5.ogg +0 -0
  199. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N6.ogg +0 -0
  200. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N7.ogg +0 -0
  201. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N8.ogg +0 -0
  202. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-N9.ogg +0 -0
  203. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Negative.ogg +0 -0
  204. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-NewFB.ogg +0 -0
  205. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Ops.ogg +0 -0
  206. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Point.ogg +0 -0
  207. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-RadioCheck.ogg +0 -0
  208. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Recovery.ogg +0 -0
  209. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-RecoveryOpsStopped.ogg +0 -0
  210. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-RecoveryPausedNotice.ogg +0 -0
  211. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-RecoveryPausedResumed.ogg +0 -0
  212. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-ReportSeeMe.ogg +0 -0
  213. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-ResumeRecovery.ogg +0 -0
  214. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-Roger.ogg +0 -0
  215. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-SayNeedles.ogg +0 -0
  216. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-StackFull.ogg +0 -0
  217. package/resources/sounds/AIRBOSS/Airboss Soundfiles/MARSHAL-StartingRecovery.ogg +0 -0
  218. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Angels.ogg +0 -0
  219. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Ball.ogg +0 -0
  220. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-BingoFuel.ogg +0 -0
  221. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Commencing.ogg +0 -0
  222. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-For.ogg +0 -0
  223. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-GasAtDivert.ogg +0 -0
  224. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-GasAtTanker.ogg +0 -0
  225. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Harrier.ogg +0 -0
  226. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Hawkeye.ogg +0 -0
  227. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Hornet.ogg +0 -0
  228. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-MarkingMoms.ogg +0 -0
  229. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Marshal.ogg +0 -0
  230. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N0.ogg +0 -0
  231. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N1.ogg +0 -0
  232. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N2.ogg +0 -0
  233. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N3.ogg +0 -0
  234. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N4.ogg +0 -0
  235. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N5.ogg +0 -0
  236. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N6.ogg +0 -0
  237. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N7.ogg +0 -0
  238. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N8.ogg +0 -0
  239. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-N9.ogg +0 -0
  240. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Point.ogg +0 -0
  241. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Skyhawk.ogg +0 -0
  242. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-State.ogg +0 -0
  243. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Tomcat.ogg +0 -0
  244. package/resources/sounds/AIRBOSS/Airboss Soundfiles/PILOT-Viking.ogg +0 -0
  245. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-BolterBolter.ogg +0 -0
  246. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-CallTheBall.ogg +0 -0
  247. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Check.ogg +0 -0
  248. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-ClearedToLand.ogg +0 -0
  249. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-ComeLeft.ogg +0 -0
  250. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-ComeLeft_Loud.ogg +0 -0
  251. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-DepartAndReenter.ogg +0 -0
  252. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-ExpectHeavyWaveoff.ogg +0 -0
  253. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-ExpectSpot5.ogg +0 -0
  254. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-ExpectSpot75.ogg +0 -0
  255. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Fast.ogg +0 -0
  256. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Fast_Loud.ogg +0 -0
  257. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-FoulDeck.ogg +0 -0
  258. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-High.ogg +0 -0
  259. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-High_Loud.ogg +0 -0
  260. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Idle.ogg +0 -0
  261. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-LongInTheGroove.ogg +0 -0
  262. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Low.ogg +0 -0
  263. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Low_Loud.ogg +0 -0
  264. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N0.ogg +0 -0
  265. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N1.ogg +0 -0
  266. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N2.ogg +0 -0
  267. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N3.ogg +0 -0
  268. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N4.ogg +0 -0
  269. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N5.ogg +0 -0
  270. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N6.ogg +0 -0
  271. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N7.ogg +0 -0
  272. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N8.ogg +0 -0
  273. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-N9.ogg +0 -0
  274. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-PaddlesContact.ogg +0 -0
  275. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Power.ogg +0 -0
  276. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Power_Loud.ogg +0 -0
  277. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-RadioCheck.ogg +0 -0
  278. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-RightForLineup.ogg +0 -0
  279. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-RightForLineup_Loud.ogg +0 -0
  280. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-RogerBall.ogg +0 -0
  281. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Slow.ogg +0 -0
  282. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Slow_Loud.ogg +0 -0
  283. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-Stabilized.ogg +0 -0
  284. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-WaveOff.ogg +0 -0
  285. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO FF/LSO-WelcomeAboard.ogg +0 -0
  286. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-BolterBolter.ogg +0 -0
  287. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-CallTheBall.ogg +0 -0
  288. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Check.ogg +0 -0
  289. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-ClearedToLand.ogg +0 -0
  290. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-ComeLeft.ogg +0 -0
  291. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-ComeLeft_Loud.ogg +0 -0
  292. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-DepartAndReenter.ogg +0 -0
  293. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-ExpectHeavyWaveoff.ogg +0 -0
  294. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-ExpectSpot5.ogg +0 -0
  295. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-ExpectSpot75.ogg +0 -0
  296. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Fast.ogg +0 -0
  297. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Fast_Loud.ogg +0 -0
  298. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-FoulDeck.ogg +0 -0
  299. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-High.ogg +0 -0
  300. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-High_Loud.ogg +0 -0
  301. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Idle.ogg +0 -0
  302. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-LongInTheGroove.ogg +0 -0
  303. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Low.ogg +0 -0
  304. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Low_Loud.ogg +0 -0
  305. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N0.ogg +0 -0
  306. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N1.ogg +0 -0
  307. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N2.ogg +0 -0
  308. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N3.ogg +0 -0
  309. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N4.ogg +0 -0
  310. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N5.ogg +0 -0
  311. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N6.ogg +0 -0
  312. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N7.ogg +0 -0
  313. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N8.ogg +0 -0
  314. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-N9.ogg +0 -0
  315. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-PaddlesContact.ogg +0 -0
  316. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Power.ogg +0 -0
  317. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Power_Loud.ogg +0 -0
  318. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-RadioCheck.ogg +0 -0
  319. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-RightForLineup.ogg +0 -0
  320. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-RightForLineup_Loud.ogg +0 -0
  321. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-RogerBall.ogg +0 -0
  322. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Slow.ogg +0 -0
  323. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Slow_Loud.ogg +0 -0
  324. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-Stabilized.ogg +0 -0
  325. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-WaveOff.ogg +0 -0
  326. package/resources/sounds/AIRBOSS/Airboss Soundpack LSO Raynor/LSO-WelcomeAboard.ogg +0 -0
  327. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Affirmative.ogg +0 -0
  328. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Altimeter.ogg +0 -0
  329. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-BRC.ogg +0 -0
  330. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-CarrierTurnToHeading.ogg +0 -0
  331. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Case.ogg +0 -0
  332. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-CharlieTime.ogg +0 -0
  333. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-ClearedForRecovery.ogg +0 -0
  334. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-DeckClosed.ogg +0 -0
  335. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Degrees.ogg +0 -0
  336. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Expected.ogg +0 -0
  337. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-FlyYourNeedles.ogg +0 -0
  338. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-HoldAtAngels.ogg +0 -0
  339. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Hours.ogg +0 -0
  340. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-MarshalRadial.ogg +0 -0
  341. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N0.ogg +0 -0
  342. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N1.ogg +0 -0
  343. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N2.ogg +0 -0
  344. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N3.ogg +0 -0
  345. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N4.ogg +0 -0
  346. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N5.ogg +0 -0
  347. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N6.ogg +0 -0
  348. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N7.ogg +0 -0
  349. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N8.ogg +0 -0
  350. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-N9.ogg +0 -0
  351. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Negative.ogg +0 -0
  352. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-NewFB.ogg +0 -0
  353. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Ops.ogg +0 -0
  354. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Point.ogg +0 -0
  355. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-RadioCheck.ogg +0 -0
  356. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Recovery.ogg +0 -0
  357. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-RecoveryOpsStopped.ogg +0 -0
  358. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-RecoveryPausedNotice.ogg +0 -0
  359. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-RecoveryPausedResumed.ogg +0 -0
  360. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-ReportSeeMe.ogg +0 -0
  361. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-ResumeRecovery.ogg +0 -0
  362. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-Roger.ogg +0 -0
  363. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-SayNeedles.ogg +0 -0
  364. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-StackFull.ogg +0 -0
  365. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal FF/MARSHAL-StartingRecovery.ogg +0 -0
  366. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Affirmative.ogg +0 -0
  367. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Altimeter.ogg +0 -0
  368. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-BRC.ogg +0 -0
  369. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-CarrierTurnToHeading.ogg +0 -0
  370. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Case.ogg +0 -0
  371. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-CharlieTime.ogg +0 -0
  372. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-ClearedForRecovery.ogg +0 -0
  373. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-DeckClosed.ogg +0 -0
  374. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Degrees.ogg +0 -0
  375. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Expected.ogg +0 -0
  376. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-FlyYourNeedles.ogg +0 -0
  377. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-HoldAtAngels.ogg +0 -0
  378. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Hours.ogg +0 -0
  379. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-MarshalRadial.ogg +0 -0
  380. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N0.ogg +0 -0
  381. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N1.ogg +0 -0
  382. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N2.ogg +0 -0
  383. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N3.ogg +0 -0
  384. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N4.ogg +0 -0
  385. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N5.ogg +0 -0
  386. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N6.ogg +0 -0
  387. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N7.ogg +0 -0
  388. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N8.ogg +0 -0
  389. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-N9.ogg +0 -0
  390. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Negative.ogg +0 -0
  391. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-NewFB.ogg +0 -0
  392. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Ops.ogg +0 -0
  393. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Point.ogg +0 -0
  394. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-RadioCheck.ogg +0 -0
  395. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Recovery-2.ogg +0 -0
  396. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Recovery.ogg +0 -0
  397. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-RecoveryOpsStopped.ogg +0 -0
  398. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-RecoveryPausedNotice.ogg +0 -0
  399. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-RecoveryPausedResumed.ogg +0 -0
  400. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-ReportSeeMe.ogg +0 -0
  401. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-ResumeRecovery.ogg +0 -0
  402. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-Roger.ogg +0 -0
  403. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-SayNeedles.ogg +0 -0
  404. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-StackFull.ogg +0 -0
  405. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Gabriella/MARSHAL-StartingRecovery.ogg +0 -0
  406. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Affirmative.ogg +0 -0
  407. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Altimeter.ogg +0 -0
  408. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-BRC.ogg +0 -0
  409. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-CarrierTurnToHeading.ogg +0 -0
  410. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Case.ogg +0 -0
  411. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-CharlieTime.ogg +0 -0
  412. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-ClearedForRecovery.ogg +0 -0
  413. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-DeckClosed.ogg +0 -0
  414. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Degrees.ogg +0 -0
  415. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Expected.ogg +0 -0
  416. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-FlyYourNeedles.ogg +0 -0
  417. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-HoldAtAngels.ogg +0 -0
  418. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Hours.ogg +0 -0
  419. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-MarshalRadial.ogg +0 -0
  420. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N0.ogg +0 -0
  421. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N1.ogg +0 -0
  422. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N2.ogg +0 -0
  423. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N3.ogg +0 -0
  424. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N4.ogg +0 -0
  425. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N5.ogg +0 -0
  426. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N6.ogg +0 -0
  427. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N7.ogg +0 -0
  428. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N8.ogg +0 -0
  429. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-N9.ogg +0 -0
  430. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Negative.ogg +0 -0
  431. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-NewFB.ogg +0 -0
  432. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Ops.ogg +0 -0
  433. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Point.ogg +0 -0
  434. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-RadioCheck.ogg +0 -0
  435. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Recovery.ogg +0 -0
  436. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-RecoveryOpsStopped.ogg +0 -0
  437. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-RecoveryPausedNotice.ogg +0 -0
  438. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-RecoveryPausedResumed.ogg +0 -0
  439. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-ReportSeeMe.ogg +0 -0
  440. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-ResumeRecovery.ogg +0 -0
  441. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-Roger.ogg +0 -0
  442. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-SayNeedles.ogg +0 -0
  443. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-StackFull.ogg +0 -0
  444. package/resources/sounds/AIRBOSS/Airboss Soundpack Marshal Raynor/MARSHAL-StartingRecovery.ogg +0 -0
  445. package/resources/sounds/CTLD CSAR/beacon.ogg +0 -0
  446. package/resources/sounds/CTLD CSAR/beaconsilent.ogg +0 -0
  447. package/resources/sounds/Misc/.gitkeep +0 -0
  448. package/resources/sounds/Misc/2_Bips.ogg +0 -0
  449. package/resources/sounds/Misc/Bip.ogg +0 -0
  450. package/resources/sounds/Misc/SCRAMBLE QRA.ogg +0 -0
  451. package/resources/sounds/Misc/crash_wood.ogg +0 -0
  452. package/scripts/build.js +0 -0
  453. package/scripts/clean.js +0 -0
  454. package/scripts/ftpupload.js +0 -0
  455. package/scripts/gdrive-upload.js +0 -0
  456. package/scripts/get-mizfiles.js +0 -0
  457. package/scripts/getset-version.js +0 -0
  458. package/scripts/inject-scripts.js +0 -0
  459. package/scripts/prepare-nextversion.js +0 -0
  460. package/scripts/release.js +0 -0
  461. package/scripts/template-update.js +0 -0
@@ -1,363 +1,363 @@
1
- function playQRASoundToClient(client, time)
2
- soundQRA:ToClient(client)
3
- return nil
4
- end
5
-
6
- function QRALaunchBogey(params)
7
- local objQRA = params[1]
8
- local trigerringUnitName = params[2]
9
- local QRAIndex = params[3]
10
- local playerClient = CLIENT:FindByName(trigerringUnitName)
11
- local playerCoord = playerClient:GetCoordinate()
12
- local bogeyGroup = nil
13
- local bogeyRouteLengthNM = 200
14
- local bogeyRangeMin = 100
15
- local bogeyRangeMax = 300
16
- local bogeyFLMin = 5
17
- local bogeyFLMax = 250
18
- local bogeyAzimuthMin = 0
19
- local bogeyAzimuthMax = 359
20
- local bogeyGroundSpeedKnots = 600
21
- local bogeyAzimuth = math.floor(
22
- math.random(
23
- UTILS.FeetToMeters(bogeyAzimuthMin),
24
- UTILS.FeetToMeters(bogeyAzimuthMax)
25
- )
26
- )
27
- local bogeyFL = math.floor(
28
- math.random(
29
- UTILS.FeetToMeters(bogeyFLMin * 100),
30
- UTILS.FeetToMeters(bogeyFLMax * 100)
31
- )
32
- )
33
- local bogeyRangeMeters = math.floor(
34
- math.random(
35
- UTILS.NMToMeters(bogeyRangeMin),
36
- UTILS.NMToMeters(bogeyRangeMax)
37
- )
38
- )
39
- local bogeySpawnObj = QRAArray[QRAIndex].objSpawn
40
- local bogeyCoord = POINT_VEC3:NewFromVec3(
41
- {
42
- x = playerCoord.x + math.floor(bogeyRangeMeters * math.cos(math.rad(bogeyAzimuth))),
43
- y = math.max(
44
- math.min(
45
- bogeyFL,
46
- UTILS.FeetToMeters(32000)
47
- ),
48
- UTILS.FeetToMeters(500)
49
- ),
50
- z = playerCoord.z + math.floor(bogeyRangeMeters * math.sin(math.rad(bogeyAzimuth))),
51
- }
52
- )
53
- local bogeyDestination = playerCoord:GetRandomCoordinateInRadius(
54
- UTILS.NMToMeters(10),
55
- UTILS.NMToMeters(60)
56
- )
57
- local bogeyHeading = bogeyCoord:HeadingTo(bogeyDestination)
58
- jtff_log.info(
59
- string.format(
60
- "Spawning bogey based on %s with Heading of %i degrees",
61
- bogeySpawnObj.SpawnTemplatePrefix,
62
- bogeyHeading
63
- ),
64
- "QRA"
65
- )
66
- bogeyGroup = bogeySpawnObj:InitHeading(bogeyHeading):SpawnFromVec3(bogeyCoord)
67
- bogeyGroup:OptionROE(ENUMS.ROE.WeaponHold)
68
- bogeyGroup:OptionROT(ENUMS.ROT.NoReaction)
69
- bogeyGroup:OptionRTBBingoFuel(true)
70
- bogeyGroup:OptionRestrictBurner(false)
71
- bogeyGroup:EnableEmission(false)
72
- bogeyGroup:OptionAlarmStateGreen()
73
- bogeyGroup:OptionECM_Never()
74
- bogeyGroup:CommandEPLRS(true)
75
- local bogeyDestinationCoord = bogeyGroup:GetCoordinate():Translate(
76
- UTILS.NMToMeters(bogeyRouteLengthNM),
77
- bogeyHeading,
78
- true,
79
- false
80
- )
81
- bogeyGroup:Route(
82
- {
83
- bogeyDestinationCoord:WaypointAirTurningPoint(
84
- COORDINATE.WaypointAltType.BARO,
85
- UTILS.KnotsToKmph(bogeyGroundSpeedKnots),
86
- nil,
87
- "End QRA"
88
- ),
89
- bogeyDestinationCoord:GetClosestAirbase(
90
- --bogeyGroup:GetCategory(),
91
- --bogeyGroup:GetCoalition()
92
- ):GetCoordinate():WaypointAirLanding(
93
- UTILS.KnotsToKmph(bogeyGroundSpeedKnots),
94
- bogeyDestinationCoord:GetClosestAirbase(
95
- --bogeyGroup:GetCategory(),
96
- --bogeyGroup:GetCoalition()
97
- )
98
- )
99
- }
100
- )
101
- return bogeyGroup
102
- end
103
-
104
- function QRATrigger(params)
105
- local objQRA = params[1]
106
- local trigerringUnitName = params[2]
107
- local QRAIndex = params[3]
108
- local msgTriggeredGround = ""
109
- local msgTriggeredOthers = ""
110
- local triggerPlayerName = ""
111
- if (objQRA.customconfig.type == JTFF_QRA.Type.TangoAuto) then
112
- local playerClient = CLIENT:FindByName(trigerringUnitName)
113
- local playerName = playerClient:GetPlayer()
114
- triggerPlayerName = playerName
115
- local playerCoord = playerClient:GetCoordinate()
116
- QRAArray[QRAIndex].objBogeyGroup = QRALaunchBogey(params)
117
- local bullsCoord = COORDINATE.GetBullseyeCoordinate(objQRA.customconfig.benefit_coalition)
118
- local bogeyCoord = QRAArray[QRAIndex].objBogeyGroup:GetCoordinate()
119
- local bullsBearing = math.floor(bullsCoord:HeadingTo(bogeyCoord))
120
- local bullsRange = math.floor(UTILS.MetersToNM(bullsCoord:Get2DDistance(bogeyCoord)))
121
- local bogeyAngel = math.floor(UTILS.MetersToFeet(QRAArray[QRAIndex].objBogeyGroup:GetAltitude(false))/1000)
122
- local bogeyApproxDestination = playerCoord:GetClosestAirbase():GetName()
123
- jtff_log.info(
124
- string.format(
125
- "Bogey Spawned based on %s",
126
- QRAArray[QRAIndex].objSpawn.SpawnTemplatePrefix
127
- ),
128
- "QRA"
129
- )
130
- jtff_log.info(
131
- string.format("Bogey is Bulls %i for %i Angel %i, tracking to %s",
132
- bullsBearing,
133
- bullsRange,
134
- bogeyAngel,
135
- bogeyApproxDestination
136
- ),
137
- "QRA"
138
- )
139
- local formatString = "QRA %s has been triggered by %s!\n" ..
140
- "Type is : %s\n" ..
141
- "Bogey is Bulls %i for %i Angel %i, tracking %s\n" ..
142
- "If you're on Alert," ..
143
- " you have 10 minutes to take-off and intercept the bogey.\n" ..
144
- "If you're not, please give %s priority on the taxiway.\n"
145
- msgTriggeredGround = string.format(
146
- formatString,
147
- objQRA.customconfig.name,
148
- playerName,
149
- objQRA.customconfig.type,
150
- bullsBearing,
151
- bullsRange,
152
- bogeyAngel,
153
- bogeyApproxDestination,
154
- playerName
155
- )
156
- formatString = "<WARNING> : QRA Triggered by %s!\n" ..
157
- "A Bogey is approaching %s, " ..
158
- "stay away from the interception area\n" ..
159
- "...\n" ..
160
- "Bogey last position : Bulls %i for %i Angel %i, tracking to %s"
161
- msgTriggeredOthers = string.format(formatString,
162
- playerName,
163
- playerCoord:GetClosestAirbase():GetName(),
164
- bullsBearing,
165
- bullsRange,
166
- bogeyAngel,
167
- bogeyApproxDestination
168
- )
169
- elseif (objQRA.customconfig.type == JTFF_QRA.Type.TangoManual) then
170
- local playerClient
171
- local playerName
172
- local playerCoord
173
- if type(trigerringUnitName) == 'nil' then
174
- playerName = "GameMaster"
175
- playerClient = nil
176
- playerCoord = COORDINATE.GetBullseyeCoordinate(objQRA.customconfig.benefit_coalition)
177
- else
178
- playerClient = CLIENT:FindByName(trigerringUnitName)
179
- playerName = playerClient:GetPlayer()
180
- playerCoord = playerClient:GetCoordinate()
181
- end
182
- triggerPlayerName = playerName
183
- local formatString = "QRA %s has been triggered by %s !\n" ..
184
- "Type is : %s\n" ..
185
- "If you're on Alert," ..
186
- " you have 10 minutes to take-off and start intercepting the the bogey.\n" ..
187
- "You are cleared to start and wait your AIC for scramble information\n\n\n" ..
188
- "If you're not on alert, please monitor the ground frequency" ..
189
- " and let the scramble flight taxi in highest priority..."
190
- msgTriggeredGround = string.format(
191
- formatString,
192
- objQRA.customconfig.name,
193
- playerName,
194
- objQRA.customconfig.type
195
- )
196
- formatString = "<WARNING> : QRA Training triggered by %s!\n" ..
197
- "Stay away from the interception area (%s)\n" ..
198
- "...\n" ..
199
- "Keep monitoring your tactical frequency" ..
200
- " for information about the Scramble procedure"
201
- msgTriggeredOthers = string.format(formatString,
202
- playerName,
203
- type(playerClient) ~= 'nil' and playerCoord:ToStringMGRS() or ""
204
- )
205
- elseif (objQRA.customconfig.type == JTFF_QRA.Type.Alpha) then
206
- local playerClient
207
- local playerName
208
- local playerCoord
209
- if type(trigerringUnitName) == 'nil' then
210
- playerName = "GameMaster"
211
- playerClient = nil
212
- playerCoord = COORDINATE.GetBullseyeCoordinate(objQRA.customconfig.benefit_coalition)
213
- else
214
- playerClient = CLIENT:FindByName(trigerringUnitName)
215
- playerName = playerClient:GetPlayer()
216
- playerCoord = playerClient:GetCoordinate()
217
- end
218
- triggerPlayerName = playerName
219
- local formatString = "QRA %s has been triggered by %s !\n" ..
220
- "Type is : %s\n" ..
221
- "If you're on Alert," ..
222
- " you have 10 minutes to take-off and start intercepting the the bogey.\n" ..
223
- "You are cleared to start and wait your AIC for scramble information\n\n\n" ..
224
- "If you're not on alert, please monitor the ground frequency" ..
225
- " and let the scramble flight taxi in highest priority..."
226
- msgTriggeredGround = string.format(
227
- formatString,
228
- objQRA.customconfig.name,
229
- playerName,
230
- objQRA.customconfig.type
231
- )
232
- formatString = "<WARNING> : QRA Triggered by %s!\n" ..
233
- "Stay away from the interception area (%s)\n" ..
234
- "...\n" ..
235
- "Keep monitoring your tactical frequency" ..
236
- " for information about the Scramble procedure"
237
- msgTriggeredOthers = string.format(formatString,
238
- playerName,
239
- type(playerClient) ~= 'nil' and playerCoord:ToStringMGRS() or ""
240
- )
241
- else
242
- end
243
- objQRA.clientSet:ForEachClient(
244
- function(clientObject)
245
- if ClientIsOnGround(clientObject) then
246
- playQRASoundToClient(clientObject)
247
- timer.scheduleFunction(
248
- playQRASoundToClient,
249
- clientObject,
250
- timer.getTime() + 17
251
- )
252
- MESSAGE:New(msgTriggeredGround,60):ToClient(clientObject)
253
- end
254
- end
255
- )
256
- MESSAGE:New(msgTriggeredOthers,30):ToCoalition(objQRA.customconfig.benefit_coalition)
257
- QRAArray[QRAIndex].menu_finex[QRAArray[QRAIndex].customconfig.benefit_coalition] = MENU_COALITION_COMMAND:New(
258
- QRAArray[QRAIndex].customconfig.benefit_coalition,
259
- "FinEx - " .. QRAArray[QRAIndex].customconfig.name .. " !!",
260
- MenuCoalitionQRA[QRAArray[QRAIndex].customconfig.benefit_coalition],
261
- QRAFinex,
262
- QRAIndex
263
- )
264
- if (type(dcsbot) ~= 'nil') then
265
- local title = string.format('QRA triggered !')
266
- local description = string.format("[%s] triggered a QRA scenario : All QRA pilots, startup and scramble following the procedure",triggerPlayerName)
267
- local img = 'https://www.defense.gouv.fr/sites/default/files/styles/16_9_sm/public/air/22_09_2023_13.jpeg?itok=n_MPmvZc'
268
- local fields = {
269
- ['Trigger'] = triggerPlayerName,
270
- ['Type'] = QRAArray[QRAIndex].customconfig.type,
271
- ['Coalition'] = UTILS.GetCoalitionName(QRAArray[QRAIndex].customconfig.benefit_coalition),
272
- }
273
- local footer = 'Scramble scramble scramble...'
274
- dcsbot.sendEmbed(title, description, img, fields, footer)
275
- end
276
- end
277
-
278
- function QRAFinex(objQRAIndex)
279
- local objQRA = QRAArray[objQRAIndex]
280
- if objQRA.customconfig.type == JTFF_QRA.Type.TangoAuto then
281
- jtff_log.trace(string.format("objQRA.objSpawn is %s", net.lua2json(objQRA.objSpawn)),"QRA")
282
- local GroupPlane, Index = objQRA.objSpawn:GetFirstAliveGroup()
283
- while GroupPlane ~= nil do
284
- GroupPlane:ScheduleStop()
285
- GroupPlane:Destroy(true,0)
286
- GroupPlane, Index = objQRA.objSpawn:GetNextAliveGroup( Index )
287
- end
288
- collectgarbage()
289
- end
290
- QRAArray[objQRAIndex].menu_finex[QRAArray[objQRAIndex].customconfig.benefit_coalition]:Remove()
291
- QRAArray[objQRAIndex].menu_finex[QRAArray[objQRAIndex].customconfig.benefit_coalition] = nil
292
- end
293
-
294
-
295
-
296
- -- *****************************************************************************
297
- -- ** QRA **
298
- -- *********************************************************
299
- QRAArray = {}
300
- compteur = 0
301
- MenuCoalitionQRA = {}
302
- MenuCoalitionQRA[coalition.side.BLUE] = MENU_COALITION:New(coalition.side.BLUE, "QRA", MenuCoalitionBlue)
303
- MenuCoalitionQRA[coalition.side.RED] = MENU_COALITION:New(coalition.side.RED, "QRA", MenuCoalitionRed)
304
- for index, qraconfig in ipairs(QRAConfig) do
305
- if qraconfig.enable == true then
306
- compteur = compteur + 1
307
- jtff_log.info('creation QRA : '.. qraconfig.name..'...',"QRA")
308
- local objQRA = {
309
- customconfig = {},
310
- clientSet = nil,
311
- objSpawn = nil,
312
- objBogeyGroup = nil,
313
- menu = {},
314
- menu_finex = {},
315
- }
316
- if ( qraconfig.type == JTFF_QRA.Type.TangoAuto) then
317
- objQRA.objSpawn = SPAWN:New(qraconfig.templates[1])
318
- :InitSkill(qraconfig.skill)
319
- :InitRandomizeTemplate(qraconfig.templates or {})
320
- end
321
- objQRA.clientSet = SET_CLIENT:New()
322
- :FilterCoalitions(string.lower(UTILS.GetCoalitionName(qraconfig.benefit_coalition)))
323
- :FilterCategories("plane")
324
- :FilterActive(true)
325
- :FilterFunction(ClientIsOnGround)
326
- :FilterStart()
327
- objQRA.clientSet:HandleEvent(EVENTS.PlayerEnterAircraft)
328
- jtff_log.debug(string.format("Nbr Clients getting QRA Calls : %i", objQRA.clientSet:Count()),"QRA")
329
-
330
- function objQRA.clientSet:OnEventPlayerEnterAircraft(EventData)
331
- local clientObject = CLIENT:Find(EventData.IniUnit:GetDCSObject())
332
- if ClientIsOnGround(clientObject) then
333
- --self:Add(clientObject:GetPlayer(), clientObject)
334
- jtff_log.debug(string.format("Added %s to QRA receivers", clientObject:GetPlayer() or ""),"QRA")
335
- jtff_log.debug(string.format("Nbr Clients getting QRA Calls : %i", objQRA.clientSet:Count()),"QRA")
336
- end
337
- end
338
-
339
- if ( qraconfig.type ~= JTFF_QRA.Type.TangoAuto) then
340
- objQRA.menu[qraconfig.benefit_coalition] = MENU_COALITION_COMMAND:New(
341
- qraconfig.benefit_coalition,
342
- "Trigger " .. qraconfig.name,
343
- MenuCoalitionQRA[qraconfig.benefit_coalition],
344
- QRATrigger,
345
- {
346
- objQRA,
347
- nil,
348
- index,
349
- }
350
- )
351
- end
352
-
353
- objQRA.customconfig = qraconfig
354
-
355
- QRAArray[compteur] = objQRA
356
- end
357
- end
358
-
359
- if compteur == 0 then
360
- MenuCoalitionQRA[coalition.side.BLUE]:Remove()
361
- MenuCoalitionQRA[coalition.side.RED]:Remove()
362
- MenuCoalitionQRA = {}
1
+ function playQRASoundToClient(client, time)
2
+ soundQRA:ToClient(client)
3
+ return nil
4
+ end
5
+
6
+ function QRALaunchBogey(params)
7
+ local objQRA = params[1]
8
+ local trigerringUnitName = params[2]
9
+ local QRAIndex = params[3]
10
+ local playerClient = CLIENT:FindByName(trigerringUnitName)
11
+ local playerCoord = playerClient:GetCoordinate()
12
+ local bogeyGroup = nil
13
+ local bogeyRouteLengthNM = 200
14
+ local bogeyRangeMin = 100
15
+ local bogeyRangeMax = 300
16
+ local bogeyFLMin = 5
17
+ local bogeyFLMax = 250
18
+ local bogeyAzimuthMin = 0
19
+ local bogeyAzimuthMax = 359
20
+ local bogeyGroundSpeedKnots = 600
21
+ local bogeyAzimuth = math.floor(
22
+ math.random(
23
+ UTILS.FeetToMeters(bogeyAzimuthMin),
24
+ UTILS.FeetToMeters(bogeyAzimuthMax)
25
+ )
26
+ )
27
+ local bogeyFL = math.floor(
28
+ math.random(
29
+ UTILS.FeetToMeters(bogeyFLMin * 100),
30
+ UTILS.FeetToMeters(bogeyFLMax * 100)
31
+ )
32
+ )
33
+ local bogeyRangeMeters = math.floor(
34
+ math.random(
35
+ UTILS.NMToMeters(bogeyRangeMin),
36
+ UTILS.NMToMeters(bogeyRangeMax)
37
+ )
38
+ )
39
+ local bogeySpawnObj = QRAArray[QRAIndex].objSpawn
40
+ local bogeyCoord = POINT_VEC3:NewFromVec3(
41
+ {
42
+ x = playerCoord.x + math.floor(bogeyRangeMeters * math.cos(math.rad(bogeyAzimuth))),
43
+ y = math.max(
44
+ math.min(
45
+ bogeyFL,
46
+ UTILS.FeetToMeters(32000)
47
+ ),
48
+ UTILS.FeetToMeters(500)
49
+ ),
50
+ z = playerCoord.z + math.floor(bogeyRangeMeters * math.sin(math.rad(bogeyAzimuth))),
51
+ }
52
+ )
53
+ local bogeyDestination = playerCoord:GetRandomCoordinateInRadius(
54
+ UTILS.NMToMeters(10),
55
+ UTILS.NMToMeters(60)
56
+ )
57
+ local bogeyHeading = bogeyCoord:HeadingTo(bogeyDestination)
58
+ jtff_log.info(
59
+ string.format(
60
+ "Spawning bogey based on %s with Heading of %i degrees",
61
+ bogeySpawnObj.SpawnTemplatePrefix,
62
+ bogeyHeading
63
+ ),
64
+ "QRA"
65
+ )
66
+ bogeyGroup = bogeySpawnObj:InitHeading(bogeyHeading):SpawnFromVec3(bogeyCoord)
67
+ bogeyGroup:OptionROE(ENUMS.ROE.WeaponHold)
68
+ bogeyGroup:OptionROT(ENUMS.ROT.NoReaction)
69
+ bogeyGroup:OptionRTBBingoFuel(true)
70
+ bogeyGroup:OptionRestrictBurner(false)
71
+ bogeyGroup:EnableEmission(false)
72
+ bogeyGroup:OptionAlarmStateGreen()
73
+ bogeyGroup:OptionECM_Never()
74
+ bogeyGroup:CommandEPLRS(true)
75
+ local bogeyDestinationCoord = bogeyGroup:GetCoordinate():Translate(
76
+ UTILS.NMToMeters(bogeyRouteLengthNM),
77
+ bogeyHeading,
78
+ true,
79
+ false
80
+ )
81
+ bogeyGroup:Route(
82
+ {
83
+ bogeyDestinationCoord:WaypointAirTurningPoint(
84
+ COORDINATE.WaypointAltType.BARO,
85
+ UTILS.KnotsToKmph(bogeyGroundSpeedKnots),
86
+ nil,
87
+ "End QRA"
88
+ ),
89
+ bogeyDestinationCoord:GetClosestAirbase(
90
+ --bogeyGroup:GetCategory(),
91
+ --bogeyGroup:GetCoalition()
92
+ ):GetCoordinate():WaypointAirLanding(
93
+ UTILS.KnotsToKmph(bogeyGroundSpeedKnots),
94
+ bogeyDestinationCoord:GetClosestAirbase(
95
+ --bogeyGroup:GetCategory(),
96
+ --bogeyGroup:GetCoalition()
97
+ )
98
+ )
99
+ }
100
+ )
101
+ return bogeyGroup
102
+ end
103
+
104
+ function QRATrigger(params)
105
+ local objQRA = params[1]
106
+ local trigerringUnitName = params[2]
107
+ local QRAIndex = params[3]
108
+ local msgTriggeredGround = ""
109
+ local msgTriggeredOthers = ""
110
+ local triggerPlayerName = ""
111
+ if (objQRA.customconfig.type == JTFF_QRA.Type.TangoAuto) then
112
+ local playerClient = CLIENT:FindByName(trigerringUnitName)
113
+ local playerName = playerClient:GetPlayer()
114
+ triggerPlayerName = playerName
115
+ local playerCoord = playerClient:GetCoordinate()
116
+ QRAArray[QRAIndex].objBogeyGroup = QRALaunchBogey(params)
117
+ local bullsCoord = COORDINATE.GetBullseyeCoordinate(objQRA.customconfig.benefit_coalition)
118
+ local bogeyCoord = QRAArray[QRAIndex].objBogeyGroup:GetCoordinate()
119
+ local bullsBearing = math.floor(bullsCoord:HeadingTo(bogeyCoord))
120
+ local bullsRange = math.floor(UTILS.MetersToNM(bullsCoord:Get2DDistance(bogeyCoord)))
121
+ local bogeyAngel = math.floor(UTILS.MetersToFeet(QRAArray[QRAIndex].objBogeyGroup:GetAltitude(false))/1000)
122
+ local bogeyApproxDestination = playerCoord:GetClosestAirbase():GetName()
123
+ jtff_log.info(
124
+ string.format(
125
+ "Bogey Spawned based on %s",
126
+ QRAArray[QRAIndex].objSpawn.SpawnTemplatePrefix
127
+ ),
128
+ "QRA"
129
+ )
130
+ jtff_log.info(
131
+ string.format("Bogey is Bulls %i for %i Angel %i, tracking to %s",
132
+ bullsBearing,
133
+ bullsRange,
134
+ bogeyAngel,
135
+ bogeyApproxDestination
136
+ ),
137
+ "QRA"
138
+ )
139
+ local formatString = "QRA %s has been triggered by %s!\n" ..
140
+ "Type is : %s\n" ..
141
+ "Bogey is Bulls %i for %i Angel %i, tracking %s\n" ..
142
+ "If you're on Alert," ..
143
+ " you have 10 minutes to take-off and intercept the bogey.\n" ..
144
+ "If you're not, please give %s priority on the taxiway.\n"
145
+ msgTriggeredGround = string.format(
146
+ formatString,
147
+ objQRA.customconfig.name,
148
+ playerName,
149
+ objQRA.customconfig.type,
150
+ bullsBearing,
151
+ bullsRange,
152
+ bogeyAngel,
153
+ bogeyApproxDestination,
154
+ playerName
155
+ )
156
+ formatString = "<WARNING> : QRA Triggered by %s!\n" ..
157
+ "A Bogey is approaching %s, " ..
158
+ "stay away from the interception area\n" ..
159
+ "...\n" ..
160
+ "Bogey last position : Bulls %i for %i Angel %i, tracking to %s"
161
+ msgTriggeredOthers = string.format(formatString,
162
+ playerName,
163
+ playerCoord:GetClosestAirbase():GetName(),
164
+ bullsBearing,
165
+ bullsRange,
166
+ bogeyAngel,
167
+ bogeyApproxDestination
168
+ )
169
+ elseif (objQRA.customconfig.type == JTFF_QRA.Type.TangoManual) then
170
+ local playerClient
171
+ local playerName
172
+ local playerCoord
173
+ if type(trigerringUnitName) == 'nil' then
174
+ playerName = "GameMaster"
175
+ playerClient = nil
176
+ playerCoord = COORDINATE.GetBullseyeCoordinate(objQRA.customconfig.benefit_coalition)
177
+ else
178
+ playerClient = CLIENT:FindByName(trigerringUnitName)
179
+ playerName = playerClient:GetPlayer()
180
+ playerCoord = playerClient:GetCoordinate()
181
+ end
182
+ triggerPlayerName = playerName
183
+ local formatString = "QRA %s has been triggered by %s !\n" ..
184
+ "Type is : %s\n" ..
185
+ "If you're on Alert," ..
186
+ " you have 10 minutes to take-off and start intercepting the the bogey.\n" ..
187
+ "You are cleared to start and wait your AIC for scramble information\n\n\n" ..
188
+ "If you're not on alert, please monitor the ground frequency" ..
189
+ " and let the scramble flight taxi in highest priority..."
190
+ msgTriggeredGround = string.format(
191
+ formatString,
192
+ objQRA.customconfig.name,
193
+ playerName,
194
+ objQRA.customconfig.type
195
+ )
196
+ formatString = "<WARNING> : QRA Training triggered by %s!\n" ..
197
+ "Stay away from the interception area (%s)\n" ..
198
+ "...\n" ..
199
+ "Keep monitoring your tactical frequency" ..
200
+ " for information about the Scramble procedure"
201
+ msgTriggeredOthers = string.format(formatString,
202
+ playerName,
203
+ type(playerClient) ~= 'nil' and playerCoord:ToStringMGRS() or ""
204
+ )
205
+ elseif (objQRA.customconfig.type == JTFF_QRA.Type.Alpha) then
206
+ local playerClient
207
+ local playerName
208
+ local playerCoord
209
+ if type(trigerringUnitName) == 'nil' then
210
+ playerName = "GameMaster"
211
+ playerClient = nil
212
+ playerCoord = COORDINATE.GetBullseyeCoordinate(objQRA.customconfig.benefit_coalition)
213
+ else
214
+ playerClient = CLIENT:FindByName(trigerringUnitName)
215
+ playerName = playerClient:GetPlayer()
216
+ playerCoord = playerClient:GetCoordinate()
217
+ end
218
+ triggerPlayerName = playerName
219
+ local formatString = "QRA %s has been triggered by %s !\n" ..
220
+ "Type is : %s\n" ..
221
+ "If you're on Alert," ..
222
+ " you have 10 minutes to take-off and start intercepting the the bogey.\n" ..
223
+ "You are cleared to start and wait your AIC for scramble information\n\n\n" ..
224
+ "If you're not on alert, please monitor the ground frequency" ..
225
+ " and let the scramble flight taxi in highest priority..."
226
+ msgTriggeredGround = string.format(
227
+ formatString,
228
+ objQRA.customconfig.name,
229
+ playerName,
230
+ objQRA.customconfig.type
231
+ )
232
+ formatString = "<WARNING> : QRA Triggered by %s!\n" ..
233
+ "Stay away from the interception area (%s)\n" ..
234
+ "...\n" ..
235
+ "Keep monitoring your tactical frequency" ..
236
+ " for information about the Scramble procedure"
237
+ msgTriggeredOthers = string.format(formatString,
238
+ playerName,
239
+ type(playerClient) ~= 'nil' and playerCoord:ToStringMGRS() or ""
240
+ )
241
+ else
242
+ end
243
+ objQRA.clientSet:ForEachClient(
244
+ function(clientObject)
245
+ if ClientIsOnGround(clientObject) then
246
+ playQRASoundToClient(clientObject)
247
+ timer.scheduleFunction(
248
+ playQRASoundToClient,
249
+ clientObject,
250
+ timer.getTime() + 17
251
+ )
252
+ MESSAGE:New(msgTriggeredGround,60):ToClient(clientObject)
253
+ end
254
+ end
255
+ )
256
+ MESSAGE:New(msgTriggeredOthers,30):ToCoalition(objQRA.customconfig.benefit_coalition)
257
+ QRAArray[QRAIndex].menu_finex[QRAArray[QRAIndex].customconfig.benefit_coalition] = MENU_COALITION_COMMAND:New(
258
+ QRAArray[QRAIndex].customconfig.benefit_coalition,
259
+ "FinEx - " .. QRAArray[QRAIndex].customconfig.name .. " !!",
260
+ MenuCoalitionQRA[QRAArray[QRAIndex].customconfig.benefit_coalition],
261
+ QRAFinex,
262
+ QRAIndex
263
+ )
264
+ if (type(dcsbot) ~= 'nil') then
265
+ local title = string.format('QRA triggered !')
266
+ local description = string.format("[%s] triggered a QRA scenario : All QRA pilots, startup and scramble following the procedure",triggerPlayerName)
267
+ local img = 'https://www.defense.gouv.fr/sites/default/files/styles/16_9_sm/public/air/22_09_2023_13.jpeg?itok=n_MPmvZc'
268
+ local fields = {
269
+ ['Trigger'] = triggerPlayerName,
270
+ ['Type'] = QRAArray[QRAIndex].customconfig.type,
271
+ ['Coalition'] = UTILS.GetCoalitionName(QRAArray[QRAIndex].customconfig.benefit_coalition),
272
+ }
273
+ local footer = 'Scramble scramble scramble...'
274
+ dcsbot.sendEmbed(title, description, img, fields, footer)
275
+ end
276
+ end
277
+
278
+ function QRAFinex(objQRAIndex)
279
+ local objQRA = QRAArray[objQRAIndex]
280
+ if objQRA.customconfig.type == JTFF_QRA.Type.TangoAuto then
281
+ jtff_log.trace(string.format("objQRA.objSpawn is %s", net.lua2json(objQRA.objSpawn)),"QRA")
282
+ local GroupPlane, Index = objQRA.objSpawn:GetFirstAliveGroup()
283
+ while GroupPlane ~= nil do
284
+ GroupPlane:ScheduleStop()
285
+ GroupPlane:Destroy(true,0)
286
+ GroupPlane, Index = objQRA.objSpawn:GetNextAliveGroup( Index )
287
+ end
288
+ collectgarbage()
289
+ end
290
+ QRAArray[objQRAIndex].menu_finex[QRAArray[objQRAIndex].customconfig.benefit_coalition]:Remove()
291
+ QRAArray[objQRAIndex].menu_finex[QRAArray[objQRAIndex].customconfig.benefit_coalition] = nil
292
+ end
293
+
294
+
295
+
296
+ -- *****************************************************************************
297
+ -- ** QRA **
298
+ -- *********************************************************
299
+ QRAArray = {}
300
+ compteur = 0
301
+ MenuCoalitionQRA = {}
302
+ MenuCoalitionQRA[coalition.side.BLUE] = MENU_COALITION:New(coalition.side.BLUE, "QRA", MenuCoalitionBlue)
303
+ MenuCoalitionQRA[coalition.side.RED] = MENU_COALITION:New(coalition.side.RED, "QRA", MenuCoalitionRed)
304
+ for index, qraconfig in ipairs(QRAConfig) do
305
+ if qraconfig.enable == true then
306
+ compteur = compteur + 1
307
+ jtff_log.info('creation QRA : '.. qraconfig.name..'...',"QRA")
308
+ local objQRA = {
309
+ customconfig = {},
310
+ clientSet = nil,
311
+ objSpawn = nil,
312
+ objBogeyGroup = nil,
313
+ menu = {},
314
+ menu_finex = {},
315
+ }
316
+ if ( qraconfig.type == JTFF_QRA.Type.TangoAuto) then
317
+ objQRA.objSpawn = SPAWN:New(qraconfig.templates[1])
318
+ :InitSkill(qraconfig.skill)
319
+ :InitRandomizeTemplate(qraconfig.templates or {})
320
+ end
321
+ objQRA.clientSet = SET_CLIENT:New()
322
+ :FilterCoalitions(string.lower(UTILS.GetCoalitionName(qraconfig.benefit_coalition)))
323
+ :FilterCategories("plane")
324
+ :FilterActive(true)
325
+ :FilterFunction(ClientIsOnGround)
326
+ :FilterStart()
327
+ objQRA.clientSet:HandleEvent(EVENTS.PlayerEnterAircraft)
328
+ jtff_log.debug(string.format("Nbr Clients getting QRA Calls : %i", objQRA.clientSet:Count()),"QRA")
329
+
330
+ function objQRA.clientSet:OnEventPlayerEnterAircraft(EventData)
331
+ local clientObject = CLIENT:Find(EventData.IniUnit:GetDCSObject())
332
+ if ClientIsOnGround(clientObject) then
333
+ --self:Add(clientObject:GetPlayer(), clientObject)
334
+ jtff_log.debug(string.format("Added %s to QRA receivers", clientObject:GetPlayer() or ""),"QRA")
335
+ jtff_log.debug(string.format("Nbr Clients getting QRA Calls : %i", objQRA.clientSet:Count()),"QRA")
336
+ end
337
+ end
338
+
339
+ if ( qraconfig.type ~= JTFF_QRA.Type.TangoAuto) then
340
+ objQRA.menu[qraconfig.benefit_coalition] = MENU_COALITION_COMMAND:New(
341
+ qraconfig.benefit_coalition,
342
+ "Trigger " .. qraconfig.name,
343
+ MenuCoalitionQRA[qraconfig.benefit_coalition],
344
+ QRATrigger,
345
+ {
346
+ objQRA,
347
+ nil,
348
+ index,
349
+ }
350
+ )
351
+ end
352
+
353
+ objQRA.customconfig = qraconfig
354
+
355
+ QRAArray[compteur] = objQRA
356
+ end
357
+ end
358
+
359
+ if compteur == 0 then
360
+ MenuCoalitionQRA[coalition.side.BLUE]:Remove()
361
+ MenuCoalitionQRA[coalition.side.RED]:Remove()
362
+ MenuCoalitionQRA = {}
363
363
  end