warframe-worldstate-parser 4.6.2 → 5.0.1

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 (311) hide show
  1. package/dist/Alert-BS8PWPP3.d.ts +45 -0
  2. package/dist/Alert-DH1kglDU.js +52 -0
  3. package/dist/Archidemea-C0EMRUKc.js +59 -0
  4. package/dist/Archidemea-DOh4trTM.d.ts +55 -0
  5. package/dist/Calendar-CgEkm6e6.d.ts +78 -0
  6. package/dist/Calendar-CtzZQXj7.js +81 -0
  7. package/dist/CambionCycle-C6NHUjOU.js +30 -0
  8. package/dist/CambionCycle-uEBpbMim.d.ts +23 -0
  9. package/dist/CetusCycle-DIZdevob.js +90 -0
  10. package/dist/CetusCycle-ooMM7hkg.d.ts +49 -0
  11. package/dist/ChallengeInstance-Bi2zg4q-.d.ts +53 -0
  12. package/dist/ChallengeInstance-DHwTTwMH.js +48 -0
  13. package/dist/ConclaveChallenge-Dp5yOxVu.js +80 -0
  14. package/dist/ConclaveChallenge-JbcEcL4s.d.ts +76 -0
  15. package/dist/ConstructionProgress-DfcpaGL5.js +25 -0
  16. package/dist/ConstructionProgress-FAySTEod.d.ts +19 -0
  17. package/dist/DailyDeal-BGqZAp-j.js +66 -0
  18. package/dist/DailyDeal-Na-EaiFS.d.ts +66 -0
  19. package/dist/DarkSector-BQ97_8h6.js +138 -0
  20. package/dist/DarkSector-zkCUywz1.d.ts +142 -0
  21. package/dist/DarkSectorBattle-5PyUPhxY.js +53 -0
  22. package/dist/DarkSectorBattle-DY33Bfuq.d.ts +53 -0
  23. package/dist/Dependency-DkOHLql6.d.ts +38 -0
  24. package/dist/DuviriChoice-DRNDUbyc.js +22 -0
  25. package/dist/DuviriChoice-MIHsOBS7.d.ts +18 -0
  26. package/dist/DuviriCycle-B0zp0KxS.d.ts +25 -0
  27. package/dist/DuviriCycle-CmHJStJo.js +58 -0
  28. package/dist/EarthCycle-B9aIOAEY.js +75 -0
  29. package/dist/EarthCycle-RELuZL01.d.ts +60 -0
  30. package/dist/ExternalMission-DCzJkPC8.d.ts +49 -0
  31. package/dist/Fissure-7yFmOet3.js +85 -0
  32. package/dist/Fissure-Bj61i8dc.d.ts +78 -0
  33. package/dist/FlashSale-BxVI0J6A.js +75 -0
  34. package/dist/FlashSale-PDG4uQq4.d.ts +71 -0
  35. package/dist/GlobalUpgrade-BRQXf3JM.d.ts +55 -0
  36. package/dist/GlobalUpgrade-B_TKK1m_.js +58 -0
  37. package/dist/ImgCdn-BnbJ9K-0.js +7 -0
  38. package/dist/Invasion-BMic1K12.js +110 -0
  39. package/dist/Invasion-BskF60zh.d.ts +113 -0
  40. package/dist/Kinepage-CRRKVulq.d.ts +22 -0
  41. package/dist/Kinepage-iWFwTZtr.js +24 -0
  42. package/dist/Kuva-DqkxvPUg.js +85 -0
  43. package/dist/KuvaLogEntry-d5fskHaK.d.ts +21 -0
  44. package/dist/MidrathCycle-BfQtfG4p.d.ts +25 -0
  45. package/dist/MidrathCycle-DDfT7zVx.js +69 -0
  46. package/dist/Mission-CWE16ouO.d.ts +138 -0
  47. package/dist/Mission-ZuSsAYNm.js +140 -0
  48. package/dist/News-7F8Nbp4A.js +122 -0
  49. package/dist/News-BfAgbYSY.d.ts +101 -0
  50. package/dist/Nightwave-DDX0_zJU.js +60 -0
  51. package/dist/Nightwave-_0RzWikV.d.ts +59 -0
  52. package/dist/NightwaveChallenge-DDdrqvge.d.ts +51 -0
  53. package/dist/NightwaveChallenge-DwilvXfi.js +53 -0
  54. package/dist/PersistentEnemy-DRcO4V2r.d.ts +79 -0
  55. package/dist/PersistentEnemy-axYxYzv_.js +76 -0
  56. package/dist/Reward-5VIpHu9A.d.ts +68 -0
  57. package/dist/Reward-OauJ45jJ.js +73 -0
  58. package/dist/RewardData-qEvfHYxA.js +76 -0
  59. package/dist/RewardTypes-Cfq9FeIl.js +328 -0
  60. package/dist/RewardTypes-DYaUn77A.d.ts +34 -0
  61. package/dist/SentientOutpost-B2KZUJ7H.js +65 -0
  62. package/dist/SentientOutpost-DmlClvel.d.ts +47 -0
  63. package/dist/Simaris-B9Mvso2q.js +35 -0
  64. package/dist/Simaris-Bc-jNhED.d.ts +37 -0
  65. package/dist/Sortie-DPv-7SQ-.d.ts +60 -0
  66. package/dist/Sortie-DcoAnEaJ.js +73 -0
  67. package/dist/SortieVariant-BFkYiBho.d.ts +49 -0
  68. package/dist/SortieVariant-eWuI1uh9.js +51 -0
  69. package/dist/SteelPathOffering-DyAzr3P9.js +85 -0
  70. package/dist/SteelPathOffering-OHNTCFo5.d.ts +38 -0
  71. package/dist/SyndicateJob-BK7OMLmv.js +141 -0
  72. package/dist/SyndicateJob-DOtXWjRF.d.ts +76 -0
  73. package/dist/SyndicateMission-5PZIEM8P.js +66 -0
  74. package/dist/SyndicateMission-DmGG5lGy.d.ts +58 -0
  75. package/dist/Tmp-DkQq1arD.js +21 -0
  76. package/dist/VallisCycle-BX8yyKx3.js +76 -0
  77. package/dist/VallisCycle-BXcmzqqG.d.ts +31 -0
  78. package/dist/VoidTrader-CbLMfEVj.js +77 -0
  79. package/dist/VoidTrader-CihLWgSV.d.ts +74 -0
  80. package/dist/VoidTraderItem-BzeD-S6-.js +38 -0
  81. package/dist/VoidTraderItem-CkYAKAEn.d.ts +43 -0
  82. package/dist/VoidTraderSchedule-C-K8Zdfk.js +14 -0
  83. package/dist/VoidTraderSchedule-DKDtu-9d.d.ts +16 -0
  84. package/dist/WeeklyChallenge-C6sc4j7i.d.ts +20 -0
  85. package/dist/WeeklyChallenge-MzUEZAjv.js +21 -0
  86. package/dist/WorldEvent-BS9QHG_f.d.ts +205 -0
  87. package/dist/WorldEvent-nis9w9cn.js +213 -0
  88. package/dist/WorldState-DNSPrZR_.d.ts +257 -0
  89. package/dist/WorldState-uppX0Xt1.js +330 -0
  90. package/dist/WorldstateObject-BSTYuZwm.js +54 -0
  91. package/dist/WorldstateObject-wfRTeGpm.d.ts +48 -0
  92. package/dist/ZarimanCycle-BJ84QUFg.js +81 -0
  93. package/dist/ZarimanCycle-CjNQXhVO.d.ts +45 -0
  94. package/dist/lib/Tmp.d.ts +24 -0
  95. package/dist/lib/Tmp.js +6 -0
  96. package/dist/lib/WorldState.d.ts +47 -0
  97. package/dist/lib/WorldState.js +49 -0
  98. package/dist/lib/models/Alert.d.ts +8 -0
  99. package/dist/lib/models/Alert.js +9 -0
  100. package/dist/lib/models/Archidemea.d.ts +2 -0
  101. package/dist/lib/models/Archidemea.js +3 -0
  102. package/dist/lib/models/Calendar.d.ts +3 -0
  103. package/dist/lib/models/Calendar.js +4 -0
  104. package/dist/lib/models/CambionCycle.d.ts +4 -0
  105. package/dist/lib/models/CambionCycle.js +4 -0
  106. package/dist/lib/models/CetusCycle.d.ts +3 -0
  107. package/dist/lib/models/CetusCycle.js +4 -0
  108. package/dist/lib/models/ChallengeInstance.d.ts +4 -0
  109. package/dist/lib/models/ChallengeInstance.js +3 -0
  110. package/dist/lib/models/ConclaveChallenge.d.ts +5 -0
  111. package/dist/lib/models/ConclaveChallenge.js +4 -0
  112. package/dist/lib/models/ConstructionProgress.d.ts +3 -0
  113. package/dist/lib/models/ConstructionProgress.js +4 -0
  114. package/dist/lib/models/DailyDeal.d.ts +5 -0
  115. package/dist/lib/models/DailyDeal.js +4 -0
  116. package/dist/lib/models/DarkSector.d.ts +9 -0
  117. package/dist/lib/models/DarkSector.js +10 -0
  118. package/dist/lib/models/DarkSectorBattle.d.ts +3 -0
  119. package/dist/lib/models/DarkSectorBattle.js +3 -0
  120. package/dist/lib/models/DuviriCycle.d.ts +4 -0
  121. package/dist/lib/models/DuviriCycle.js +4 -0
  122. package/dist/lib/models/EarthCycle.d.ts +3 -0
  123. package/dist/lib/models/EarthCycle.js +4 -0
  124. package/dist/lib/models/Fissure.d.ts +5 -0
  125. package/dist/lib/models/Fissure.js +4 -0
  126. package/dist/lib/models/FlashSale.d.ts +5 -0
  127. package/dist/lib/models/FlashSale.js +4 -0
  128. package/dist/lib/models/GlobalUpgrade.d.ts +5 -0
  129. package/dist/lib/models/GlobalUpgrade.js +4 -0
  130. package/dist/lib/models/Invasion.d.ts +7 -0
  131. package/dist/lib/models/Invasion.js +8 -0
  132. package/dist/lib/models/Kinepage.d.ts +2 -0
  133. package/dist/lib/models/Kinepage.js +3 -0
  134. package/dist/lib/models/Kuva.d.ts +22 -0
  135. package/dist/lib/models/Kuva.js +3 -0
  136. package/dist/lib/models/MidrathCycle.d.ts +3 -0
  137. package/dist/lib/models/MidrathCycle.js +4 -0
  138. package/dist/lib/models/Mission.d.ts +6 -0
  139. package/dist/lib/models/Mission.js +7 -0
  140. package/dist/lib/models/News.d.ts +3 -0
  141. package/dist/lib/models/News.js +5 -0
  142. package/dist/lib/models/Nightwave.d.ts +4 -0
  143. package/dist/lib/models/Nightwave.js +5 -0
  144. package/dist/lib/models/NightwaveChallenge.d.ts +3 -0
  145. package/dist/lib/models/NightwaveChallenge.js +4 -0
  146. package/dist/lib/models/PersistentEnemy.d.ts +3 -0
  147. package/dist/lib/models/PersistentEnemy.js +4 -0
  148. package/dist/lib/models/Reward.d.ts +5 -0
  149. package/dist/lib/models/Reward.js +6 -0
  150. package/dist/lib/models/SentientOutpost.d.ts +4 -0
  151. package/dist/lib/models/SentientOutpost.js +3 -0
  152. package/dist/lib/models/Simaris.d.ts +4 -0
  153. package/dist/lib/models/Simaris.js +3 -0
  154. package/dist/lib/models/Sortie.d.ts +9 -0
  155. package/dist/lib/models/Sortie.js +10 -0
  156. package/dist/lib/models/SortieVariant.d.ts +4 -0
  157. package/dist/lib/models/SortieVariant.js +3 -0
  158. package/dist/lib/models/SteelPathOffering.d.ts +2 -0
  159. package/dist/lib/models/SteelPathOffering.js +3 -0
  160. package/dist/lib/models/SyndicateJob.d.ts +5 -0
  161. package/dist/lib/models/SyndicateJob.js +4 -0
  162. package/dist/lib/models/SyndicateMission.d.ts +6 -0
  163. package/dist/lib/models/SyndicateMission.js +5 -0
  164. package/dist/lib/models/VallisCycle.d.ts +3 -0
  165. package/dist/lib/models/VallisCycle.js +4 -0
  166. package/dist/lib/models/VoidTrader.d.ts +7 -0
  167. package/dist/lib/models/VoidTrader.js +6 -0
  168. package/dist/lib/models/VoidTraderItem.d.ts +4 -0
  169. package/dist/lib/models/VoidTraderItem.js +3 -0
  170. package/dist/lib/models/VoidTraderSchedule.d.ts +4 -0
  171. package/dist/lib/models/VoidTraderSchedule.js +3 -0
  172. package/dist/lib/models/WeeklyChallenge.d.ts +6 -0
  173. package/dist/lib/models/WeeklyChallenge.js +5 -0
  174. package/dist/lib/models/WorldEvent.d.ts +8 -0
  175. package/dist/lib/models/WorldEvent.js +9 -0
  176. package/dist/lib/models/WorldstateObject.d.ts +2 -0
  177. package/dist/lib/models/WorldstateObject.js +3 -0
  178. package/dist/lib/models/ZarimanCycle.d.ts +3 -0
  179. package/dist/lib/models/ZarimanCycle.js +4 -0
  180. package/dist/lib/supporting/Dependency.d.ts +3 -0
  181. package/dist/lib/supporting/Dependency.js +1 -0
  182. package/dist/lib/supporting/DuviriChoice.d.ts +3 -0
  183. package/dist/lib/supporting/DuviriChoice.js +3 -0
  184. package/dist/lib/supporting/ExternalMission.d.ts +2 -0
  185. package/dist/lib/supporting/ExternalMission.js +1 -0
  186. package/dist/lib/supporting/ImgCdn.d.ts +6 -0
  187. package/dist/lib/supporting/ImgCdn.js +3 -0
  188. package/dist/lib/supporting/KuvaLogEntry.d.ts +2 -0
  189. package/dist/lib/supporting/KuvaLogEntry.js +1 -0
  190. package/dist/lib/supporting/RewardData.d.ts +11 -0
  191. package/dist/lib/supporting/RewardData.js +3 -0
  192. package/dist/lib/supporting/RewardTypes.d.ts +2 -0
  193. package/dist/lib/supporting/RewardTypes.js +5 -0
  194. package/dist/main.d.ts +47 -0
  195. package/dist/main.js +49 -0
  196. package/dist/resources/.gitkeep +1 -0
  197. package/dist/resources/alt_helmet_thumb.png +0 -0
  198. package/dist/resources/aura_thumb.png +0 -0
  199. package/dist/resources/clantech_thmb.png +0 -0
  200. package/dist/resources/endo_thumb.png +0 -0
  201. package/dist/resources/exilus_thumb.png +0 -0
  202. package/dist/resources/forma_thumb.png +0 -0
  203. package/dist/resources/glaive_thumb.png +0 -0
  204. package/dist/resources/mutalist_thumb.png +0 -0
  205. package/dist/resources/nightmare_thumb.png +0 -0
  206. package/dist/resources/nitain_thumb.png +0 -0
  207. package/dist/resources/potato_thumb.png +0 -0
  208. package/dist/resources/resource_thumb.png +0 -0
  209. package/dist/resources/vauban_thumb.png +0 -0
  210. package/dist/resources/weapon_skin_thumb.png +0 -0
  211. package/package.json +9 -11
  212. package/lib/WorldState.js +0 -404
  213. package/lib/models/Alert.js +0 -90
  214. package/lib/models/Calendar.js +0 -74
  215. package/lib/models/CambionCycle.js +0 -32
  216. package/lib/models/CetusCycle.js +0 -126
  217. package/lib/models/ChallengeInstance.js +0 -57
  218. package/lib/models/ConclaveChallenge.js +0 -154
  219. package/lib/models/ConstructionProgress.js +0 -31
  220. package/lib/models/DailyDeal.js +0 -103
  221. package/lib/models/DarkSector.js +0 -154
  222. package/lib/models/DarkSectorBattle.js +0 -56
  223. package/lib/models/DeepArchidemea.js +0 -33
  224. package/lib/models/DuviriCycle.js +0 -65
  225. package/lib/models/EarthCycle.js +0 -119
  226. package/lib/models/Fissure.js +0 -136
  227. package/lib/models/FlashSale.js +0 -123
  228. package/lib/models/GlobalUpgrade.js +0 -122
  229. package/lib/models/Invasion.js +0 -183
  230. package/lib/models/Kinepage.js +0 -11
  231. package/lib/models/Kuva.js +0 -122
  232. package/lib/models/MidrathCycle.js +0 -94
  233. package/lib/models/Mission.js +0 -179
  234. package/lib/models/News.js +0 -174
  235. package/lib/models/Nightwave.js +0 -91
  236. package/lib/models/NightwaveChallenge.js +0 -63
  237. package/lib/models/PersistentEnemy.js +0 -100
  238. package/lib/models/Reward.js +0 -111
  239. package/lib/models/SentientOutpost.js +0 -68
  240. package/lib/models/Simaris.js +0 -47
  241. package/lib/models/Sortie.js +0 -143
  242. package/lib/models/SortieVariant.js +0 -57
  243. package/lib/models/SteelPathOffering.js +0 -99
  244. package/lib/models/SyndicateJob.js +0 -185
  245. package/lib/models/SyndicateMission.js +0 -111
  246. package/lib/models/VallisCycle.js +0 -125
  247. package/lib/models/VoidTrader.js +0 -134
  248. package/lib/models/VoidTraderItem.js +0 -24
  249. package/lib/models/VoidTraderSchedule.js +0 -8
  250. package/lib/models/WeeklyChallenge.js +0 -27
  251. package/lib/models/WorldEvent.js +0 -326
  252. package/lib/models/WorldstateObject.js +0 -106
  253. package/lib/models/ZarimanCycle.js +0 -124
  254. package/lib/supporting/Dependency.js +0 -6
  255. package/lib/supporting/DuviriChoice.js +0 -16
  256. package/lib/supporting/ExternalMission.js +0 -13
  257. package/lib/supporting/ImgCdn.js +0 -9
  258. package/lib/supporting/MarkdownSettings.js +0 -30
  259. package/lib/supporting/RewardData.js +0 -77
  260. package/lib/supporting/RewardTypes.js +0 -327
  261. package/main.js +0 -4
  262. package/types/lib/WorldState.d.ts +0 -199
  263. package/types/lib/models/Alert.d.ts +0 -53
  264. package/types/lib/models/Calendar.d.ts +0 -16
  265. package/types/lib/models/CambionCycle.d.ts +0 -20
  266. package/types/lib/models/CetusCycle.d.ts +0 -47
  267. package/types/lib/models/ChallengeInstance.d.ts +0 -42
  268. package/types/lib/models/ConclaveChallenge.d.ts +0 -90
  269. package/types/lib/models/ConstructionProgress.d.ts +0 -14
  270. package/types/lib/models/DailyDeal.d.ts +0 -78
  271. package/types/lib/models/DarkSector.d.ts +0 -121
  272. package/types/lib/models/DarkSectorBattle.d.ts +0 -44
  273. package/types/lib/models/DeepArchidemea.d.ts +0 -8
  274. package/types/lib/models/DuviriCycle.d.ts +0 -21
  275. package/types/lib/models/EarthCycle.d.ts +0 -64
  276. package/types/lib/models/Fissure.d.ts +0 -83
  277. package/types/lib/models/FlashSale.d.ts +0 -86
  278. package/types/lib/models/GlobalUpgrade.d.ts +0 -86
  279. package/types/lib/models/Invasion.d.ts +0 -124
  280. package/types/lib/models/Kinepage.d.ts +0 -6
  281. package/types/lib/models/Kuva.d.ts +0 -60
  282. package/types/lib/models/MidrathCycle.d.ts +0 -39
  283. package/types/lib/models/Mission.d.ts +0 -136
  284. package/types/lib/models/News.d.ts +0 -104
  285. package/types/lib/models/Nightwave.d.ts +0 -53
  286. package/types/lib/models/NightwaveChallenge.d.ts +0 -45
  287. package/types/lib/models/PersistentEnemy.d.ts +0 -70
  288. package/types/lib/models/Reward.d.ts +0 -95
  289. package/types/lib/models/SentientOutpost.d.ts +0 -54
  290. package/types/lib/models/Simaris.d.ts +0 -33
  291. package/types/lib/models/Sortie.d.ts +0 -72
  292. package/types/lib/models/SortieVariant.d.ts +0 -43
  293. package/types/lib/models/SteelPathOffering.d.ts +0 -19
  294. package/types/lib/models/SyndicateJob.d.ts +0 -72
  295. package/types/lib/models/SyndicateMission.d.ts +0 -56
  296. package/types/lib/models/VallisCycle.d.ts +0 -53
  297. package/types/lib/models/VoidTrader.d.ts +0 -45
  298. package/types/lib/models/VoidTraderItem.d.ts +0 -25
  299. package/types/lib/models/VoidTraderSchedule.d.ts +0 -7
  300. package/types/lib/models/WeeklyChallenge.d.ts +0 -12
  301. package/types/lib/models/WorldEvent.d.ts +0 -216
  302. package/types/lib/models/WorldstateObject.d.ts +0 -120
  303. package/types/lib/models/ZarimanCycle.d.ts +0 -42
  304. package/types/lib/supporting/Dependency.d.ts +0 -7
  305. package/types/lib/supporting/DuviriChoice.d.ts +0 -9
  306. package/types/lib/supporting/ExternalMission.d.ts +0 -48
  307. package/types/lib/supporting/ImgCdn.d.ts +0 -3
  308. package/types/lib/supporting/MarkdownSettings.d.ts +0 -30
  309. package/types/lib/supporting/RewardData.d.ts +0 -9
  310. package/types/lib/supporting/RewardTypes.d.ts +0 -8
  311. package/types/main.d.ts +0 -3
@@ -1,90 +0,0 @@
1
- import { fromNow, timeDeltaToString } from 'warframe-worldstate-data/utilities';
2
-
3
- import mdConfig from '../supporting/MarkdownSettings.js';
4
-
5
- import WorldstateObject from './WorldstateObject.js';
6
- import Mission from './Mission.js';
7
-
8
- /**
9
- * Represents an alert
10
- * @augments {WorldstateObject}
11
- */
12
- export default class Alert extends WorldstateObject {
13
- /**
14
- * @param {object} data The alert data
15
- * @param {string} locale Locale to use for translations
16
- */
17
- constructor(data, { locale = 'en' } = { locale: 'en' }) {
18
- super(data);
19
-
20
- const deps = {
21
- locale,
22
- };
23
-
24
- /**
25
- * The mission that the players have to complete
26
- * @type {Mission}
27
- */
28
- this.mission = new Mission(data.MissionInfo, deps);
29
-
30
- /**
31
- * ETA string (at time of object creation)
32
- * @type {string}
33
- */
34
- this.eta = this.getETAString();
35
-
36
- /**
37
- * An array containing the types of all of the alert's rewards
38
- * @type {Array.<string>}
39
- */
40
- this.rewardTypes = this.getRewardTypes().length ? this.getRewardTypes() : ['credits'];
41
-
42
- /**
43
- * A tag that DE occasionally provides, such as `LotusGift`
44
- * @type {string}
45
- */
46
- this.tag = data.Tag || undefined;
47
- }
48
-
49
- /**
50
- * Get the alert's description text
51
- * @returns {string} the description
52
- */
53
- getDescription() {
54
- return this.mission.description;
55
- }
56
-
57
- /**
58
- * Get the alert's reward
59
- * @returns {Reward} the reward
60
- */
61
- getReward() {
62
- return this.mission.reward;
63
- }
64
-
65
- /**
66
- * Get a string indicating how much time is left before the alert expires
67
- * @returns {string} the time left
68
- */
69
- getETAString() {
70
- return timeDeltaToString(fromNow(this.expiry));
71
- }
72
-
73
- /**
74
- * Get an array containing the types of all of the alert's rewards
75
- * @returns {Array.<string>} an array containing the types of all of the alert's rewards
76
- */
77
- getRewardTypes() {
78
- return this.mission.reward.getTypes();
79
- }
80
-
81
- /**
82
- * The alert's string representation
83
- * @returns {string} the string representation
84
- */
85
- toString() {
86
- const lines = [this.mission.toString(), this.getETAString()];
87
-
88
- return `${mdConfig.codeBlock}${lines.join(mdConfig.lineEnd)}${mdConfig.blockEnd}`;
89
- }
90
- }
@@ -1,74 +0,0 @@
1
- import {
2
- languageDesc,
3
- languageString,
4
- parseDate,
5
- translateCalendarEvent,
6
- translateSeason,
7
- } from 'warframe-worldstate-data/utilities';
8
-
9
- const EventTypes = Object.freeze({
10
- PLOT: 'CET_PLOT',
11
- REWARD: 'CET_REWARD',
12
- CHALLENGE: 'CET_CHALLENGE',
13
- UPGRADE: 'CET_UPGRADE',
14
- });
15
-
16
- /**
17
- * Event data for a 1999 calendar day
18
- * @param {object} event raw event data
19
- */
20
- class DayEvent {
21
- constructor(event) {
22
- this.type = translateCalendarEvent(event.type);
23
-
24
- if (event.challenge) this.challenge = this.eventDescription(event.challenge);
25
-
26
- if (event.upgrade) this.upgrade = this.eventDescription(event.upgrade);
27
-
28
- if (event.reward) this.reward = languageString(event.reward);
29
-
30
- if (event.type === EventTypes.PLOT) {
31
- this.dialogueName = event.dialogueName;
32
- this.dialogueConvo = event.dialogueConvo;
33
- }
34
- }
35
-
36
- eventDescription(name) {
37
- return { title: languageString(name), description: languageDesc(name) };
38
- }
39
- }
40
-
41
- export default class Calendar {
42
- constructor(calendar) {
43
- this.activation = parseDate(calendar.Activation);
44
-
45
- this.expiry = parseDate(calendar.Expiry);
46
-
47
- this.days = Array.isArray(calendar.Days)
48
- ? calendar.Days.filter(Boolean).map((d) => ({
49
- ...d,
50
- date: this.getDate(d.day).toISOString(),
51
- events: d.events.map((e) => new DayEvent(e)),
52
- }))
53
- : [];
54
-
55
- this.season = translateSeason(calendar.Season);
56
-
57
- this.yearIteration = calendar.YearIteration;
58
-
59
- this.version = calendar.Version;
60
-
61
- this.requirements = calendar.UpgradeAvaliabilityRequirements;
62
- }
63
-
64
- /**
65
- * Converts number of day to a date in 1999 in UTC
66
- * @param {number} day number of the day in a year
67
- * @returns {Date} the date in 1999
68
- */
69
- getDate(day) {
70
- const date = new Date(Date.UTC(1999));
71
- date.setUTCDate(date.getUTCDate() + day - 1);
72
- return date;
73
- }
74
- }
@@ -1,32 +0,0 @@
1
- import { fromNow } from 'warframe-worldstate-data/utilities';
2
-
3
- import WorldstateObject from './WorldstateObject.js';
4
-
5
- /**
6
- * Represents the current Cambion Drift Fass/Vome Cycle
7
- * @augments {WorldstateObject}
8
- * @property {string} timeLeft time rendering of amount of time left
9
- */
10
- export default class CambionCycle extends WorldstateObject {
11
- /**
12
- * @param {CetusCycle} cetusCycle Match data from cetus cycle for data
13
- */
14
- constructor(cetusCycle) {
15
- super({ _id: { $oid: 'cambionCycle0' } });
16
-
17
- ({ activation: this.activation, expiry: this.expiry, timeLeft: this.timeLeft } = cetusCycle);
18
-
19
- this.state = cetusCycle.isDay ? 'fass' : 'vome';
20
- this.active = this.state;
21
-
22
- this.id = `cambionCycle${this.expiry.getTime()}`;
23
- }
24
-
25
- /**
26
- * Get whether the event has expired
27
- * @returns {boolean} whether the event has expired
28
- */
29
- getExpired() {
30
- return fromNow(this.expiry) < 0;
31
- }
32
- }
@@ -1,126 +0,0 @@
1
- import { fromNow, timeDeltaToString } from 'warframe-worldstate-data/utilities';
2
-
3
- import mdConfig from '../supporting/MarkdownSettings.js';
4
-
5
- import WorldstateObject from './WorldstateObject.js';
6
-
7
- const nightTime = 3000;
8
-
9
- const maximums = {
10
- day: 6000000,
11
- night: 3000000,
12
- };
13
-
14
- /**
15
- * Represents the current Earth Day/Night Cycle
16
- * @augments {WorldstateObject}
17
- */
18
- export default class CetusCycle extends WorldstateObject {
19
- /**
20
- * The end of the Ostron bounties timer (marks the end of night)
21
- * @type {Date}
22
- * @private
23
- */
24
- #bountiesEndDate;
25
- /**
26
- * The current cetus cycle, for calculating the other fields
27
- * @type {object}
28
- * @private
29
- */
30
- #ec;
31
-
32
- /**
33
- * @param {Date} bountiesEndDate The end date for Ostron bounties
34
- */
35
- constructor(bountiesEndDate) {
36
- super({ _id: { $oid: 'cetusCycle0' } });
37
-
38
- this.#bountiesEndDate = bountiesEndDate;
39
- this.#ec = this.getCurrentCetusCycle();
40
-
41
- /**
42
- * The date and time at which the event ends
43
- * @type {Date}
44
- */
45
- this.expiry = this.#ec.expiry;
46
-
47
- /**
48
- * The date and time at which the event started
49
- * @type {Date}
50
- */
51
- this.activation = new Date(this.#ec.start);
52
-
53
- /**
54
- * Whether it's daytime
55
- * @type {boolean}
56
- */
57
- this.isDay = this.#ec.dayTime;
58
-
59
- /**
60
- * Current cycle state. One of `day`, `night`
61
- * @type {string}
62
- */
63
- this.state = this.#ec.state;
64
-
65
- /**
66
- * Time remaining string
67
- * @type {string}
68
- */
69
- this.timeLeft = this.#ec.timeLeft;
70
-
71
- /**
72
- * Whether this is for Cetus Cycle
73
- * @type {boolean}
74
- */
75
- this.isCetus = true;
76
-
77
- this.id = `cetusCycle${this.expiry.getTime()}`;
78
-
79
- this.shortString = `${this.timeLeft.replace(/\s\d*s/gi, '')} to ${this.isDay ? 'Night' : 'Day'}`;
80
- }
81
-
82
- /**
83
- * Get whether or not the event has expired
84
- * @returns {boolean} whether the event has expired
85
- */
86
- getExpired() {
87
- return fromNow(this.expiry) < 0;
88
- }
89
-
90
- getCurrentCetusCycle() {
91
- const now = Date.now();
92
- const bountiesClone = this.#bountiesEndDate;
93
- bountiesClone.setSeconds(0);
94
- let millisLeft = fromNow(bountiesClone);
95
- const secondsToNightEnd = (millisLeft / 1000).toFixed(0);
96
- const dayTime = secondsToNightEnd > nightTime;
97
-
98
- const secondsRemainingInCycle = dayTime ? secondsToNightEnd - nightTime : secondsToNightEnd;
99
- millisLeft = secondsRemainingInCycle * 1000;
100
- const minutesCoef = 1000 * 60;
101
- const expiry = new Date(Math.round((now + millisLeft) / minutesCoef) * minutesCoef);
102
- const state = dayTime ? 'day' : 'night';
103
-
104
- return {
105
- dayTime,
106
- timeLeft: timeDeltaToString(millisLeft),
107
- expiry,
108
- expiresIn: millisLeft,
109
- state,
110
- start: expiry.getTime() - maximums[state],
111
- };
112
- }
113
-
114
- /**
115
- * The event's string representation
116
- * @returns {string} The string representation of the event
117
- */
118
- toString() {
119
- const lines = [
120
- `Operator, Cetus is currently in ${this.state}time`,
121
- `Time remaining until ${this.isDay ? 'night' : 'day'}: ${this.timeLeft}`,
122
- ];
123
-
124
- return lines.join(mdConfig.lineEnd);
125
- }
126
- }
@@ -1,57 +0,0 @@
1
- import { languageString } from 'warframe-worldstate-data/utilities';
2
-
3
- /**
4
- * Describes a world challenge instance
5
- */
6
- export default class ChallengeInstance {
7
- /**
8
- * @param {object} data The challenge instance data
9
- * @param {Dependency} deps The dependencies object
10
- * @param {string} deps.locale Locale to use for translations
11
- */
12
- constructor(data, { locale = 'en' } = { locale: 'en' }) {
13
- /**
14
- * Type of challenge
15
- * @type {string}
16
- */
17
- this.type = languageString(data.Type, locale);
18
-
19
- /**
20
- * Minimum enemy level to fulfill challenge
21
- * @type {number}
22
- */
23
- this.minEnemyLevel = Number(data.MinimumEnemyLevel);
24
-
25
- /**
26
- * Required number of units to complete challenge
27
- * @type {number}
28
- */
29
- this.requiredAmount = Number(data.RequiredCount);
30
-
31
- /**
32
- * Waypoint for amount of units between progression updates
33
- * @type {number}
34
- */
35
- this.progressAmount = Number(data.ProgressIndicatorFreq);
36
-
37
- /**
38
- * Required damage type
39
- * @type {string | undefined}
40
- */
41
- this.damageType = data.DamageType ? languageString(data.DamageType, locale) : undefined;
42
-
43
- /**
44
- * Target to fulfill challenge
45
- * @type {string}
46
- */
47
- this.target =
48
- data.VictimType && data.VictimType[0]
49
- ? languageString(data.VictimType[0], locale)
50
- : // eslint-disable-next-line no-underscore-dangle
51
- data.Script._faction;
52
- }
53
-
54
- toString() {
55
- return `Task: ${this.type}\nAmount: ${this.requiredAmount}\nTarget: ${this.target}`;
56
- }
57
- }
@@ -1,154 +0,0 @@
1
- import {
2
- parseDate,
3
- fromNow,
4
- timeDeltaToString,
5
- conclaveMode,
6
- conclaveCategory,
7
- conclaveChallenge,
8
- } from 'warframe-worldstate-data/utilities';
9
-
10
- import WorldstateObject from './WorldstateObject.js';
11
-
12
- /**
13
- * Represents a Conclave challenge
14
- * @augments {WorldstateObject}
15
- */
16
- export default class ConclaveChallenge extends WorldstateObject {
17
- /**
18
- * @param {object} data The challenge data
19
- * @param {object} deps The dependencies object
20
- * @param {string} deps.locale Locale to use for translations
21
- */
22
- constructor(data, { locale = 'en' } = { locale: 'en' }) {
23
- super(data);
24
-
25
- /**
26
- * The time and date at which the challenge expires
27
- * @type {Date}
28
- */
29
- this.expiry = parseDate(data.endDate);
30
-
31
- /**
32
- * The time and date at which the challenge starts
33
- * @type {Date}
34
- */
35
- this.activation = parseDate(data.startDate);
36
-
37
- /**
38
- * The number of times that the challenge's objective needs to be completed
39
- * @type {number}
40
- */
41
- this.amount = data.params[0].v;
42
-
43
- /**
44
- * The PVP mode that the challenge must be completed in
45
- * @type {string}
46
- */
47
- this.mode = conclaveMode(data.PVPMode, locale);
48
-
49
- /**
50
- * The challenge's category (daily, weekly...)
51
- * @type {string}
52
- */
53
- this.category = conclaveCategory(data.Category, locale);
54
-
55
- /**
56
- * ETA string (at time of object creation)
57
- * @type {string}
58
- */
59
- this.eta = this.getEndString();
60
-
61
- /**
62
- * Whether or not this is expired (at time of object creation)
63
- * @type {boolean}
64
- */
65
- this.expired = this.isExpired();
66
-
67
- /**
68
- * Whether or not this is a daily conclave challenge.
69
- * @type {boolean}
70
- */
71
- this.daily = this.isDaily();
72
-
73
- /**
74
- * Whether or not this is the root challenge
75
- * @type {boolean}
76
- */
77
- this.rootChallenge = this.isRootChallenge();
78
-
79
- /**
80
- * the end string
81
- * @type {string}
82
- */
83
- this.endString = this.getEndString();
84
-
85
- /**
86
- * The challenge's description text
87
- * @type {string}
88
- */
89
- this.description = undefined;
90
-
91
- /**
92
- * Title of the challenge
93
- * @type {string}
94
- */
95
- this.title = undefined;
96
-
97
- /**
98
- * Standing granted by completing challenge.
99
- * @type {number}
100
- */
101
- this.standing = undefined;
102
-
103
- const challenge = conclaveChallenge(data.challengeTypeRefID, locale);
104
-
105
- ({ title: this.title, description: this.description, standing: this.standing } = challenge);
106
-
107
- /**
108
- * This challenge as a string
109
- * @type {string}
110
- */
111
- this.asString = this.toString();
112
- }
113
-
114
- /**
115
- * Get whether or not the challenge is daily
116
- * @returns {boolean} whether the category is daily
117
- */
118
- isDaily() {
119
- return this.category.toLowerCase() === 'day';
120
- }
121
-
122
- /**
123
- * Get whether or not this is the weekly root challenge
124
- * @returns {boolean} whether this is the root challenge
125
- */
126
- isRootChallenge() {
127
- return this.category.toLowerCase() === 'week_root';
128
- }
129
-
130
- /**
131
- * Get whether or not the challenge has expired
132
- * @returns {boolean} Whether or not the challenge has expired
133
- */
134
- isExpired() {
135
- return fromNow(this.expiry) < 0;
136
- }
137
-
138
- /**
139
- * Get a string indicating how much time is left before the challenge expires
140
- * @returns {string} The time left before the challenge expires
141
- */
142
- getEndString() {
143
- const timeDelta = fromNow(this.expiry);
144
- return timeDeltaToString(timeDelta);
145
- }
146
-
147
- /**
148
- * The conclave challenge's string representation
149
- * @returns {string} The string representation of the conclave challenge
150
- */
151
- toString() {
152
- return `${this.description} on ${this.mode} ${this.amount} times in a ${this.category}`;
153
- }
154
- }
@@ -1,31 +0,0 @@
1
- import mdConfig from '../supporting/MarkdownSettings.js';
2
-
3
- import WorldstateObject from './WorldstateObject.js';
4
-
5
- /**
6
- * Represents enemy construction progress
7
- * @augments {WorldstateObject}
8
- */
9
- export default class ConstructionProgress extends WorldstateObject {
10
- /**
11
- * @param {object} data The construction data
12
- */
13
- constructor(data) {
14
- super(data);
15
-
16
- this.fomorianProgress = (data.ProjectPct[0] || 0.0).toFixed(2);
17
- this.razorbackProgress = (data.ProjectPct[1] || 0.0).toFixed(2);
18
- this.unknownProgress = (data.ProjectPct[2] || 0.0).toFixed(2);
19
- }
20
-
21
- /**
22
- * The alert's string representation
23
- * @returns {string} string representation
24
- */
25
- toString() {
26
- return (
27
- `${mdConfig.codeBlock}Fomorian: ${this.fomorianProgress}%${mdConfig.lineEnd}Razorback: ` +
28
- `${this.razorbackProgress}%${mdConfig.lineEnd}Unknown: ${this.unknownProgress}%${mdConfig.blockEnd}`
29
- );
30
- }
31
- }
@@ -1,103 +0,0 @@
1
- import { parseDate, timeDeltaToString, fromNow, languageString } from 'warframe-worldstate-data/utilities';
2
-
3
- import mdConfig from '../supporting/MarkdownSettings.js';
4
-
5
- /**
6
- * Represents a daily deal
7
- */
8
- export default class DailyDeal {
9
- /**
10
- * @param {object} data The deal data
11
- * @param {object} deps The dependencies object
12
- * @param {string} deps.locale Locale to use for translations
13
- */
14
- constructor(data, { locale = 'en' } = { locale: 'en' }) {
15
- /**
16
- * The item that is being offered in the sale
17
- * @type {string}
18
- */
19
- this.item = languageString(data.StoreItem, locale);
20
-
21
- /**
22
- * The uniqueName for the item on sale.
23
- * @type {string}
24
- */
25
- this.uniqueName = data.StoreItem;
26
-
27
- /**
28
- * The date and time at which the deal will expire
29
- * @type {Date}
30
- */
31
- this.expiry = parseDate(data.Expiry);
32
-
33
- /**
34
- * The date and time at which the deal will or did start
35
- * @type {Date}
36
- */
37
- this.activation = parseDate(data.Activation);
38
-
39
- /**
40
- * The item's original price
41
- * @type {number}
42
- */
43
- this.originalPrice = data.OriginalPrice;
44
-
45
- /**
46
- * The item's discounted price
47
- * @type {number}
48
- */
49
- this.salePrice = data.SalePrice;
50
-
51
- /**
52
- * The number of available items on sale
53
- * @type {number}
54
- */
55
- this.total = data.AmountTotal;
56
-
57
- /**
58
- * The number of items that have already been sold
59
- * @type {number}
60
- */
61
- this.sold = data.AmountSold;
62
-
63
- /**
64
- * Unique identifier for this deal built from the end time and item
65
- * @type {string}
66
- */
67
- this.id = `${data.StoreItem.split('/').slice(-1)[0]}${this.expiry.getTime()}`;
68
-
69
- /**
70
- * ETA string (at time of object creation)
71
- * @type {string}
72
- */
73
- this.eta = this.getETAString();
74
-
75
- /**
76
- * Percent discount
77
- * @type {number}
78
- */
79
- this.discount = data.Discount;
80
- }
81
-
82
- /**
83
- * Get a string indicating how much time is left before the deal expires
84
- * @returns {string} estimated time remaining on the deal
85
- */
86
- getETAString() {
87
- return timeDeltaToString(fromNow(this.expiry));
88
- }
89
-
90
- /**
91
- * Returns a string representation of the daily deal
92
- * @returns {string} The string representation of the daily deal
93
- */
94
- toString() {
95
- const lines = [
96
- `Daily Deal: ${this.item}`,
97
- `${this.salePrice}p (original ${this.originalPrice}p)`,
98
- `${this.sold} / ${this.total} sold`,
99
- `Expires in ${this.getETAString()}`,
100
- ];
101
- return lines.join(mdConfig.lineEnd);
102
- }
103
- }