ogamejs 3.0.0 → 4.0.0

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 (92) hide show
  1. package/README.md +485 -228
  2. package/package.json +51 -4
  3. package/src/buildings/buildTime.js +25 -0
  4. package/src/buildings/crystal.js +18 -36
  5. package/src/buildings/deut.js +19 -34
  6. package/src/buildings/fusion-reactor.js +19 -34
  7. package/src/buildings/index.js +11 -0
  8. package/src/buildings/info.js +42 -0
  9. package/src/buildings/infocompte.js +116 -57
  10. package/src/buildings/metal.js +13 -28
  11. package/src/buildings/production.js +150 -0
  12. package/src/buildings/solar-plant.js +13 -21
  13. package/src/buildings/storage.js +59 -0
  14. package/src/cost.js +70 -0
  15. package/src/fleets/combat.js +291 -0
  16. package/src/fleets/distance.js +39 -0
  17. package/src/fleets/flight.js +105 -0
  18. package/src/fleets/getDebris.js +11 -10
  19. package/src/fleets/index.js +12 -0
  20. package/src/fleets/speed.js +108 -0
  21. package/src/i18n.js +43 -0
  22. package/src/index.js +12 -1
  23. package/src/models/buildings.js +285 -25
  24. package/src/models/destroyable.js +216 -110
  25. package/src/models/research.js +169 -0
  26. package/src/research/index.js +9 -0
  27. package/src/research/researchTime.js +25 -0
  28. package/src/types.js +146 -0
  29. package/types/buildings/buildTime.d.ts +16 -0
  30. package/types/buildings/buildTime.d.ts.map +1 -0
  31. package/types/buildings/crystal.d.ts +12 -0
  32. package/types/buildings/crystal.d.ts.map +1 -0
  33. package/types/buildings/deut.d.ts +12 -0
  34. package/types/buildings/deut.d.ts.map +1 -0
  35. package/types/buildings/fusion-reactor.d.ts +15 -0
  36. package/types/buildings/fusion-reactor.d.ts.map +1 -0
  37. package/types/buildings/index.d.ts +27 -0
  38. package/types/buildings/index.d.ts.map +1 -0
  39. package/types/buildings/info.d.ts +17 -0
  40. package/types/buildings/info.d.ts.map +1 -0
  41. package/types/buildings/infocompte.d.ts +41 -0
  42. package/types/buildings/infocompte.d.ts.map +1 -0
  43. package/types/buildings/metal.d.ts +11 -0
  44. package/types/buildings/metal.d.ts.map +1 -0
  45. package/types/buildings/production.d.ts +78 -0
  46. package/types/buildings/production.d.ts.map +1 -0
  47. package/types/buildings/solar-plant.d.ts +10 -0
  48. package/types/buildings/solar-plant.d.ts.map +1 -0
  49. package/types/buildings/storage.d.ts +29 -0
  50. package/types/buildings/storage.d.ts.map +1 -0
  51. package/types/cost.d.ts +25 -0
  52. package/types/cost.d.ts.map +1 -0
  53. package/types/fleets/combat.d.ts +57 -0
  54. package/types/fleets/combat.d.ts.map +1 -0
  55. package/types/fleets/distance.d.ts +13 -0
  56. package/types/fleets/distance.d.ts.map +1 -0
  57. package/types/fleets/flight.d.ts +57 -0
  58. package/types/fleets/flight.d.ts.map +1 -0
  59. package/types/fleets/getDebris.d.ts +12 -0
  60. package/types/fleets/getDebris.d.ts.map +1 -0
  61. package/types/fleets/index.d.ts +18 -0
  62. package/types/fleets/index.d.ts.map +1 -0
  63. package/types/fleets/speed.d.ts +54 -0
  64. package/types/fleets/speed.d.ts.map +1 -0
  65. package/types/i18n.d.ts +23 -0
  66. package/types/i18n.d.ts.map +1 -0
  67. package/types/index.d.ts +1316 -0
  68. package/types/index.d.ts.map +1 -0
  69. package/types/models/buildings.d.ts +373 -0
  70. package/types/models/buildings.d.ts.map +1 -0
  71. package/types/models/destroyable.d.ts +695 -0
  72. package/types/models/destroyable.d.ts.map +1 -0
  73. package/types/models/research.d.ts +262 -0
  74. package/types/models/research.d.ts.map +1 -0
  75. package/types/research/index.d.ts +8 -0
  76. package/types/research/index.d.ts.map +1 -0
  77. package/types/research/researchTime.d.ts +16 -0
  78. package/types/research/researchTime.d.ts.map +1 -0
  79. package/types/trades/crystal.d.ts +6 -0
  80. package/types/trades/crystal.d.ts.map +1 -0
  81. package/types/trades/deut.d.ts +6 -0
  82. package/types/trades/deut.d.ts.map +1 -0
  83. package/types/trades/index.d.ts +12 -0
  84. package/types/trades/index.d.ts.map +1 -0
  85. package/types/trades/metal.d.ts +6 -0
  86. package/types/trades/metal.d.ts.map +1 -0
  87. package/types/trades/parseRate.d.ts +2 -0
  88. package/types/trades/parseRate.d.ts.map +1 -0
  89. package/types/trades/utils.d.ts +2 -0
  90. package/types/trades/utils.d.ts.map +1 -0
  91. package/types/types.d.ts +449 -0
  92. package/types/types.d.ts.map +1 -0
@@ -0,0 +1,262 @@
1
+ declare const CATEGORIES: Readonly<{
2
+ BASIC: "basic";
3
+ DRIVE: "drive";
4
+ ADVANCED: "advanced";
5
+ COMBAT: "combat";
6
+ }>;
7
+ /**
8
+ * Every technology of the game, keyed by its official OGame id.
9
+ *
10
+ * Same shape as `models/buildings.js`: `names` for the localised labels,
11
+ * `base` for the level 1 cost and `factor` for the per-level multiplier —
12
+ * cost(level) = base * factor ** (level - 1).
13
+ *
14
+ * `base.energyCost` is only non zero for Graviton technology, which is paid
15
+ * entirely in energy.
16
+ */
17
+ declare const RESEARCH: Readonly<{
18
+ 106: {
19
+ ogameId: number;
20
+ names: {
21
+ en: string;
22
+ fr: string;
23
+ };
24
+ category: "basic";
25
+ factor: number;
26
+ base: {
27
+ metal: number;
28
+ crystal: number;
29
+ deuterium: number;
30
+ energyCost: number;
31
+ };
32
+ };
33
+ 108: {
34
+ ogameId: number;
35
+ names: {
36
+ en: string;
37
+ fr: string;
38
+ };
39
+ category: "basic";
40
+ factor: number;
41
+ base: {
42
+ metal: number;
43
+ crystal: number;
44
+ deuterium: number;
45
+ energyCost: number;
46
+ };
47
+ };
48
+ 109: {
49
+ ogameId: number;
50
+ names: {
51
+ en: string;
52
+ fr: string;
53
+ };
54
+ category: "combat";
55
+ factor: number;
56
+ base: {
57
+ metal: number;
58
+ crystal: number;
59
+ deuterium: number;
60
+ energyCost: number;
61
+ };
62
+ };
63
+ 110: {
64
+ ogameId: number;
65
+ names: {
66
+ en: string;
67
+ fr: string;
68
+ };
69
+ category: "combat";
70
+ factor: number;
71
+ base: {
72
+ metal: number;
73
+ crystal: number;
74
+ deuterium: number;
75
+ energyCost: number;
76
+ };
77
+ };
78
+ 111: {
79
+ ogameId: number;
80
+ names: {
81
+ en: string;
82
+ fr: string;
83
+ };
84
+ category: "combat";
85
+ factor: number;
86
+ base: {
87
+ metal: number;
88
+ crystal: number;
89
+ deuterium: number;
90
+ energyCost: number;
91
+ };
92
+ };
93
+ 113: {
94
+ ogameId: number;
95
+ names: {
96
+ en: string;
97
+ fr: string;
98
+ };
99
+ category: "basic";
100
+ factor: number;
101
+ base: {
102
+ metal: number;
103
+ crystal: number;
104
+ deuterium: number;
105
+ energyCost: number;
106
+ };
107
+ };
108
+ 114: {
109
+ ogameId: number;
110
+ names: {
111
+ en: string;
112
+ fr: string;
113
+ };
114
+ category: "advanced";
115
+ factor: number;
116
+ base: {
117
+ metal: number;
118
+ crystal: number;
119
+ deuterium: number;
120
+ energyCost: number;
121
+ };
122
+ };
123
+ 115: {
124
+ ogameId: number;
125
+ names: {
126
+ en: string;
127
+ fr: string;
128
+ };
129
+ category: "drive";
130
+ factor: number;
131
+ base: {
132
+ metal: number;
133
+ crystal: number;
134
+ deuterium: number;
135
+ energyCost: number;
136
+ };
137
+ };
138
+ 117: {
139
+ ogameId: number;
140
+ names: {
141
+ en: string;
142
+ fr: string;
143
+ };
144
+ category: "drive";
145
+ factor: number;
146
+ base: {
147
+ metal: number;
148
+ crystal: number;
149
+ deuterium: number;
150
+ energyCost: number;
151
+ };
152
+ };
153
+ 118: {
154
+ ogameId: number;
155
+ names: {
156
+ en: string;
157
+ fr: string;
158
+ };
159
+ category: "drive";
160
+ factor: number;
161
+ base: {
162
+ metal: number;
163
+ crystal: number;
164
+ deuterium: number;
165
+ energyCost: number;
166
+ };
167
+ };
168
+ 120: {
169
+ ogameId: number;
170
+ names: {
171
+ en: string;
172
+ fr: string;
173
+ };
174
+ category: "combat";
175
+ factor: number;
176
+ base: {
177
+ metal: number;
178
+ crystal: number;
179
+ deuterium: number;
180
+ energyCost: number;
181
+ };
182
+ };
183
+ 121: {
184
+ ogameId: number;
185
+ names: {
186
+ en: string;
187
+ fr: string;
188
+ };
189
+ category: "combat";
190
+ factor: number;
191
+ base: {
192
+ metal: number;
193
+ crystal: number;
194
+ deuterium: number;
195
+ energyCost: number;
196
+ };
197
+ };
198
+ 122: {
199
+ ogameId: number;
200
+ names: {
201
+ en: string;
202
+ fr: string;
203
+ };
204
+ category: "combat";
205
+ factor: number;
206
+ base: {
207
+ metal: number;
208
+ crystal: number;
209
+ deuterium: number;
210
+ energyCost: number;
211
+ };
212
+ };
213
+ 123: {
214
+ ogameId: number;
215
+ names: {
216
+ en: string;
217
+ fr: string;
218
+ };
219
+ category: "advanced";
220
+ factor: number;
221
+ base: {
222
+ metal: number;
223
+ crystal: number;
224
+ deuterium: number;
225
+ energyCost: number;
226
+ };
227
+ };
228
+ 124: {
229
+ ogameId: number;
230
+ names: {
231
+ en: string;
232
+ fr: string;
233
+ };
234
+ category: "advanced";
235
+ factor: number;
236
+ roundTo: number;
237
+ base: {
238
+ metal: number;
239
+ crystal: number;
240
+ deuterium: number;
241
+ energyCost: number;
242
+ };
243
+ };
244
+ 199: {
245
+ ogameId: number;
246
+ names: {
247
+ en: string;
248
+ fr: string;
249
+ };
250
+ category: "advanced";
251
+ factor: number;
252
+ base: {
253
+ metal: number;
254
+ crystal: number;
255
+ deuterium: number;
256
+ energyCost: number;
257
+ };
258
+ };
259
+ }>;
260
+ export { CATEGORIES };
261
+ export default RESEARCH;
262
+ //# sourceMappingURL=research.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/models/research.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import getCost from '../cost.js';
2
+ import getResearchTime from './researchTime.js';
3
+ declare const Research: {
4
+ getResearchCost: typeof getCost;
5
+ getResearchTime: typeof getResearchTime;
6
+ };
7
+ export default Research;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/research/index.js"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,QAAA,MAAM,QAAQ;;;CAGb,CAAC;eAEa,QAAQ"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ *
3
+ * Return the time needed to research a technology at a given level
4
+ *
5
+ * time = (metal + crystal) / (1000 * (1 + labs)) hours, divided by the
6
+ * universe research speed. `labs` is the research lab level, or the sum of
7
+ * every connected lab when the Intergalactic Research Network is up.
8
+ * @param {import('../types.js').ResearchEntry} research A models/research.js entry
9
+ * @param {number} targetLevel The level to reach, >= 1
10
+ * @param {number} [labLevel] The research lab level, or the sum of connected labs
11
+ * @param {number} [researchSpeed] The universe research speed
12
+ * @returns {number} The research time, in seconds
13
+ */
14
+ declare function getResearchTime(research: import('../types.js').ResearchEntry, targetLevel: number, labLevel?: number, researchSpeed?: number): number;
15
+ export default getResearchTime;
16
+ //# sourceMappingURL=researchTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"researchTime.d.ts","sourceRoot":"","sources":["../../src/research/researchTime.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,iBAAS,eAAe,CAAC,QAAQ,EANtB,OAAO,aAAa,EAAE,aAMA,EAAE,WAAW,EALnC,MAKmC,EAAE,QAAQ,AAJrD,CACA,EADQ,MAIiD,EAAE,aAAa,AAHxE,CACA,EADQ,MAGoE,GAFlE,MAAM,CASlB;eAEc,eAAe"}
@@ -0,0 +1,6 @@
1
+ declare function sellCrystal(crystal?: number, percentD?: number, percentM?: number, rate?: string): {
2
+ deut: number;
3
+ metal: number;
4
+ };
5
+ export default sellCrystal;
6
+ //# sourceMappingURL=crystal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crystal.d.ts","sourceRoot":"","sources":["../../src/trades/crystal.js"],"names":[],"mappings":"AAEA,iBAAS,WAAW,CAAC,OAAO,SAAI,EAAE,QAAQ,SAAK,EAAE,QAAQ,SAAK,EAAE,IAAI,SAAY;IAQ5E,IAAI;IACJ,KAAK;EAER;eAEc,WAAW"}
@@ -0,0 +1,6 @@
1
+ declare function sellDeut(deut?: number, percentM?: number, percentC?: number, rate?: string): {
2
+ metal: number;
3
+ crystal: number;
4
+ };
5
+ export default sellDeut;
6
+ //# sourceMappingURL=deut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deut.d.ts","sourceRoot":"","sources":["../../src/trades/deut.js"],"names":[],"mappings":"AAEA,iBAAS,QAAQ,CAAC,IAAI,SAAI,EAAE,QAAQ,SAAK,EAAE,QAAQ,SAAK,EAAE,IAAI,SAAY;IAQtE,KAAK;IACL,OAAO;EAEV;eAEc,QAAQ"}
@@ -0,0 +1,12 @@
1
+ import parseRate from './parseRate.js';
2
+ import sellDeut from './deut.js';
3
+ import sellCrystal from './crystal.js';
4
+ import sellMetal from './metal.js';
5
+ declare const Trader: {
6
+ parseRate: typeof parseRate;
7
+ sellDeut: typeof sellDeut;
8
+ sellCrystal: typeof sellCrystal;
9
+ sellMetal: typeof sellMetal;
10
+ };
11
+ export default Trader;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trades/index.js"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,QAAA,MAAM,MAAM;;;;;CAKX,CAAC;eAEa,MAAM"}
@@ -0,0 +1,6 @@
1
+ declare function sellMetal(metal?: number, percentD?: number, percentC?: number, rate?: string): {
2
+ deut: number;
3
+ crystal: number;
4
+ };
5
+ export default sellMetal;
6
+ //# sourceMappingURL=metal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metal.d.ts","sourceRoot":"","sources":["../../src/trades/metal.js"],"names":[],"mappings":"AAEA,iBAAS,SAAS,CAAC,KAAK,SAAI,EAAE,QAAQ,SAAK,EAAE,QAAQ,SAAK,EAAE,IAAI,SAAY;IAQxE,IAAI;IACJ,OAAO;EAEV;eAEc,SAAS"}
@@ -0,0 +1,2 @@
1
+ export default function parseRate(rate?: string, type?: string): {};
2
+ //# sourceMappingURL=parseRate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseRate.d.ts","sourceRoot":"","sources":["../../src/trades/parseRate.js"],"names":[],"mappings":"AAkCA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAI,SAAY,EAAE,IAAI,SAAS,MAchE"}
@@ -0,0 +1,2 @@
1
+ export default function hasNaN(args: any): boolean;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/trades/utils.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,KAAA,WAQlC"}