@pkmn/engine 0.1.0-dev.cbdbb719 → 0.1.0-dev.ce4c0b2a

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 (49) hide show
  1. package/build/pkg/addon/browser.d.ts +3 -0
  2. package/build/pkg/addon/browser.js +43 -0
  3. package/build/pkg/addon/browser.js.map +1 -0
  4. package/build/pkg/addon/node.d.ts +3 -0
  5. package/build/pkg/addon/node.js +96 -0
  6. package/build/pkg/addon/node.js.map +1 -0
  7. package/build/pkg/addon.d.ts +2 -0
  8. package/build/pkg/addon.js +29 -51
  9. package/build/pkg/addon.js.map +1 -1
  10. package/build/pkg/data.d.ts +23 -1
  11. package/build/pkg/data.js.map +1 -1
  12. package/build/pkg/gen1.js +1 -1
  13. package/build/pkg/gen1.js.map +1 -1
  14. package/build/pkg/index.d.ts +21 -8
  15. package/build/pkg/index.js +15 -10
  16. package/build/pkg/index.js.map +1 -1
  17. package/build/pkg/protocol.d.ts +20 -1
  18. package/build/pkg/protocol.js +105 -103
  19. package/build/pkg/protocol.js.map +1 -1
  20. package/build/tools/debug.js +34 -67
  21. package/build/tools/debug.js.map +1 -1
  22. package/build/tools/display/debug.jsx +128 -0
  23. package/build/tools/display/debug.jsx.map +1 -0
  24. package/build/tools/display/index.js +132 -0
  25. package/build/tools/display/index.js.map +1 -0
  26. package/build/tools/display/ui.jsx +349 -0
  27. package/build/tools/display/ui.jsx.map +1 -0
  28. package/build/tools/display/util.js +18 -0
  29. package/build/tools/display/util.js.map +1 -0
  30. package/build.zig +0 -2
  31. package/package.json +33 -23
  32. package/src/bin/install-pkmn-engine +4 -2
  33. package/src/bin/pkmn-debug +1 -1
  34. package/src/lib/common/debug.zig +9 -4
  35. package/src/lib/common/options.zig +2 -0
  36. package/src/lib/gen1/calc.zig +158 -14
  37. package/src/lib/gen1/chance.zig +3 -1
  38. package/src/lib/gen1/data.zig +2 -2
  39. package/src/lib/gen1/helpers.zig +0 -3
  40. package/src/lib/gen1/mechanics.zig +13 -6
  41. package/src/lib/gen2/calc.zig +1 -1
  42. package/src/lib/gen2/chance.zig +8 -13
  43. package/src/lib/gen2/helpers.zig +0 -4
  44. package/src/lib/gen2/mechanics.zig +3 -9
  45. package/src/tools/display/dom.ts +96 -0
  46. package/src/tools/display/ui.css +351 -0
  47. package/build/test/display.js +0 -405
  48. package/build/test/display.js.map +0 -1
  49. package/src/test/display/pkmn.html.tmpl +0 -368
@@ -0,0 +1,351 @@
1
+ #content {
2
+ font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
3
+ margin: 4em auto;
4
+ max-width: 1300px;
5
+ line-height: 1.4em;
6
+ --hp-bar: 151px;
7
+ --hp-text: 32px;
8
+ --radius: 10px;
9
+ }
10
+ details > summary {
11
+ list-style: none;
12
+ }
13
+ details > summary::-webkit-details-marker {
14
+ display: none;
15
+ }
16
+ .battle > .details {
17
+ background: #eee;
18
+ border-bottom: 3px solid black;
19
+ border-radius: var(--radius) var(--radius) 0 0;
20
+ padding: 0 1em;
21
+ display: flex;
22
+ justify-content: space-between;
23
+ }
24
+ .inner {
25
+ display: flex;
26
+ justify-content: center;
27
+ flex-direction: column;
28
+ }
29
+ .side > .details {
30
+ padding: 0.5em 1em;
31
+ display: flex;
32
+ justify-content: space-between;
33
+ text-align: center;
34
+ flex: 0 1 auto;
35
+ }
36
+ .active {
37
+ flex: 1 1 auto;
38
+ }
39
+ details {
40
+ flex: 0 1 auto;
41
+ }
42
+ .sides {
43
+ display: flex;
44
+ }
45
+ .side {
46
+ flex: 1;
47
+ display: flex;
48
+ flex-flow: column;
49
+ }
50
+ .side.p1 {
51
+ border-right: 1px solid black;
52
+ }
53
+ .battle {
54
+ border: 3px solid black;
55
+ border-radius: var(--radius);
56
+ }
57
+ summary {
58
+ border-top: 1px solid #eee;
59
+ text-align: center;
60
+ padding: 0.25em;
61
+ }
62
+ .good {
63
+ color: green;
64
+ }
65
+ .bad {
66
+ color: red;
67
+ }
68
+ .pokemon {
69
+ position: relative;
70
+ padding: 0.5em 1em;
71
+ border-top: 1px solid black;
72
+ display: flex;
73
+ }
74
+ .active > .pokemon {
75
+ border-top: 1px solid #eee;
76
+ }
77
+ table {
78
+ border-collapse: collapse;
79
+ border-style: hidden;
80
+ border-spacing: 0px;
81
+ line-height: 1.5em;
82
+ }
83
+ th, td {
84
+ border: 1px solid black;
85
+ padding: 0 0.5em;
86
+ }
87
+ .statbar {
88
+ display: none;
89
+ width: calc(var(--hp-bar) + var(--hp-text));
90
+ padding: 2px 0;
91
+ line-height: normal;
92
+ }
93
+ .statbar .name {
94
+ display: block;
95
+ text-align: center;
96
+ line-height: 1.25em;
97
+ }
98
+ .statbar strong {
99
+ color: #222222;
100
+ text-shadow:
101
+ #FFFFFF 1px 1px 0, #FFFFFF 1px -1px 0,
102
+ #FFFFFF -1px 1px 0, #FFFFFF -1px -1px 0;
103
+ }
104
+ .statbar strong small {
105
+ font-weight: normal;
106
+ }
107
+ .statbar .hpbar {
108
+ position: relative;
109
+ border: 1px solid #777777;
110
+ background: #FCFEFF;
111
+ padding: 1px;
112
+ height: 8px;
113
+ margin: 0 0 0 0;
114
+ width: calc(var(--hp-bar) + var(--hp-text) + 1px);
115
+ border-radius: 4px;
116
+ }
117
+ .statbar .hpbar .hp {
118
+ height: 4px;
119
+ border-top: 2px solid #00dd60;
120
+ background: #00bb51;
121
+ border-bottom: 2px solid #007734;
122
+ border-right: 1px solid #007734;
123
+ border-radius: 3px;
124
+ }
125
+ .statbar .hpbar .hp-yellow {
126
+ border-top-color: #f8e379;
127
+ background-color: #f5d538;
128
+ border-bottom-color: #be9f0a;
129
+ border-right-color: #be9f0a;
130
+ }
131
+ .statbar .hpbar .hp-red {
132
+ border-top-color: #f37f67;
133
+ background-color: #ee4928;
134
+ border-bottom-color: #a3260d;
135
+ border-right-color: #a3260d;
136
+ }
137
+ .statbar .hpbar .prevhp {
138
+ background: #BBEECC;
139
+ height: 8px;
140
+ border-radius: 3px;
141
+ }
142
+ .statbar .hpbar .prevhp-yellow {
143
+ background-color: #fcf4ca;
144
+ }
145
+ .statbar .hpbar .prevhp-red {
146
+ background-color: #facec5;
147
+ }
148
+ .statbar .hpbar .hptext {
149
+ position: absolute;
150
+ background: #777777;
151
+ color: #EEEEEE;
152
+ text-shadow: #000000 0 1px 0;
153
+ font-size: 10px;
154
+ width: 32px;
155
+ height: 12px;
156
+ top: -1px;
157
+ text-align: center;
158
+ }
159
+ .status, .volatile {
160
+ padding: 0px 1px;
161
+ border: 1px solid #FF4400;
162
+ border-radius: 3px;
163
+ }
164
+ .status {
165
+ min-height: 10px;
166
+ font-size: 7pt;
167
+ vertical-align: middle;
168
+ padding: 1px 2px;
169
+ border: 0;
170
+ border-radius: 3px;
171
+ text-transform: uppercase;
172
+ margin: 0 2px;
173
+ }
174
+ .status.brn {
175
+ background: #EE5533;
176
+ color: #FFFFFF;
177
+ }
178
+ .status.psn {
179
+ background: #A4009A;
180
+ color: #FFFFFF;
181
+ }
182
+ .status.par {
183
+ background: #9AA400;
184
+ color: #FFFFFF;
185
+ }
186
+ .status.slp {
187
+ background: #AA77AA;
188
+ color: #FFFFFF;
189
+ }
190
+ .status.frz {
191
+ background: #009AA4;
192
+ color: #FFFFFF;
193
+ }
194
+ .volatile {
195
+ display: inline-block;
196
+ padding: 0 5px;
197
+ margin: 2px
198
+ }
199
+ .volatile.bad {
200
+ background: #FFE5E0;
201
+ color: #FF4400;
202
+ border-color: #FF4400;
203
+ }
204
+ .volatile.good {
205
+ background: #E5FFE0;
206
+ color: #33AA00;
207
+ border-color: #33AA00;
208
+ }
209
+ .volatile.neutral {
210
+ background: #F0F0F0;
211
+ color: #555555;
212
+ border-color: #555555;
213
+ }
214
+ .rstatbar .hpbar .hptext {
215
+ right: 0px;
216
+ border-radius: 0 4px 4px 0;
217
+ }
218
+ .moves ul {
219
+ display: grid;
220
+ grid-template-columns: repeat(2, auto);
221
+ gap: 0 2em;
222
+ }
223
+ .left {
224
+ padding-right: 32px;
225
+ display: flex;
226
+ flex-direction: column;
227
+ align-items: center;
228
+ }
229
+ .stats {
230
+ display: flex;
231
+ padding: 0 1em;
232
+ justify-content: space-between;
233
+ text-align: center;
234
+ width: 100%;
235
+ }
236
+ .types {
237
+ display: inherit;
238
+ }
239
+ .disabled {
240
+ color: #AAAAAA;
241
+ }
242
+ .log {
243
+ display: flex;
244
+ justify-content: center;
245
+ padding-bottom: 2em;
246
+ }
247
+ .position {
248
+ position: absolute;
249
+ right: 10px;
250
+ color: #AAAAAA;
251
+ }
252
+ .left .position {
253
+ display: none;
254
+ }
255
+ .right .position {
256
+ display: block;
257
+ }
258
+ .teamicons {
259
+ display: inline-block;
260
+ }
261
+ @media(max-width: 1300px) {
262
+ #content {
263
+ font-size: 0.85em;
264
+ max-width: 95%;
265
+ margin: 2em auto;
266
+ }
267
+ }
268
+ @media(max-width: 1200px) {
269
+ .moves ul {
270
+ grid-template-columns: repeat(1, auto);
271
+ }
272
+ }
273
+ @media(max-width: 1100px) {
274
+ .pokemon {
275
+ flex-direction: column;
276
+ }
277
+ .stats {
278
+ justify-content: center;
279
+ padding: 0;
280
+ }
281
+ .boosts {
282
+ margin-left: 5px;
283
+ }
284
+ .moves ul {
285
+ grid-template-columns: repeat(2, auto);
286
+ }
287
+ .left {
288
+ padding-right: 0;
289
+ }
290
+ .right {
291
+ padding-top: 1em;
292
+ }
293
+ .volatiles {
294
+ display: flex;
295
+ justify-content: center;
296
+ flex-wrap: wrap;
297
+ }
298
+ .left .position {
299
+ display: block;
300
+ }
301
+ .right .position {
302
+ display: none;
303
+ }
304
+ }
305
+ @media(max-width: 800px) {
306
+ .moves {
307
+ display: flex;
308
+ justify-content: center;
309
+ }
310
+ .moves ul {
311
+ display: inline-block;
312
+ padding: 0;
313
+ }
314
+ }
315
+ @media(max-width: 680px) {
316
+ .stats {
317
+ flex-direction: column;
318
+ padding: 0;
319
+ }
320
+ .boosts {
321
+ display: flex;
322
+ justify-content: space-between;
323
+ margin-top: 0.5em;
324
+ }
325
+ }
326
+ @media(max-width: 550px) {
327
+ #content {
328
+ font-size: 0.65em;
329
+ max-width: 95%;
330
+ margin: 1em auto;
331
+ --hp-bar: 101px;
332
+ }
333
+ }
334
+ @media(max-width: 425px) {
335
+ .stats {
336
+ font-size: 0.9em;
337
+ }
338
+ }
339
+ h1 {
340
+ text-align: center;
341
+ }
342
+ .error {
343
+ overflow: auto;
344
+ scrollbar-width: none;
345
+ padding: 10px 20px;
346
+ border: 3px solid #DD4422;
347
+ background: #FFF8F2;
348
+ }
349
+ .error::-webkit-scrollbar {
350
+ display: none;
351
+ }