@pkmn/engine 0.1.0-dev.63cef311 → 0.1.0-dev.7b099504

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.
@@ -14,8 +14,9 @@ export type MoveSlot = Gen1.MoveSlot;
14
14
  /** Generic API supported by all Generations of Battle. */
15
15
  export interface API {
16
16
  /**
17
- * The most recent buffer of binary protocol trace log data filled by `update`
18
- * if tracing is enabled, otherwise undefined. Meant to be parsed by `Log`.
17
+ * The most recent buffer of binary protocol message log data filled by
18
+ * `update` if logging is enabled, otherwise undefined. Meant to be parsed by
19
+ * `Log`.
19
20
  */
20
21
  log?: DataView;
21
22
  /**
@@ -245,8 +246,8 @@ export type CreateOptions = {
245
246
  /** Player 2's options. */
246
247
  p2: PlayerOptions;
247
248
  /**
248
- * Whether to capture protocol trace logs. Note that if the engine itself was
249
- * not build with trace logging enabled then enabling this will have no
249
+ * Whether to capture protocol message logs. Note that if the engine itself
250
+ * was not build with protocol logging enabled then enabling this will have no
250
251
  * effect.
251
252
  */
252
253
  log: true;
@@ -256,8 +257,8 @@ export type CreateOptions = {
256
257
  /** Player 2's options. */
257
258
  p2: Omit<PlayerOptions, 'name'>;
258
259
  /**
259
- * Whether to capture protocol trace logs. Note that if the engine itself was
260
- * not build with trace logging enabled then enabling this will have no
260
+ * Whether to capture protocol message logs. Note that if the engine itself
261
+ * was not build with protocol logging enabled then enabling this will have no
261
262
  * effect.
262
263
  */
263
264
  log?: false;
@@ -274,8 +275,8 @@ export type RestoreOptions = {
274
275
  */
275
276
  showdown?: boolean;
276
277
  /**
277
- * Whether to capture protocol trace logs. Note that if the engine itself was
278
- * not build with trace logging enabled then enabling this will have no
278
+ * Whether to capture protocol message logs. Note that if the engine itself
279
+ * was not build with protocol logging enabled then enabling this will have no
279
280
  * effect.
280
281
  */
281
282
  log: true;
@@ -286,8 +287,8 @@ export type RestoreOptions = {
286
287
  */
287
288
  showdown?: boolean;
288
289
  /**
289
- * Whether to capture protocol trace logs. Note that if the engine itself was
290
- * not build with trace logging enabled then enabling this will have no
290
+ * Whether to capture protocol message logs. Note that if the engine itself
291
+ * was not build with protocol logging enabled then enabling this will have no
291
292
  * effect.
292
293
  */
293
294
  log?: false;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pkg/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+CAAiC;AACjC,iCAA8B;AAC9B,6CAA+B;AA8V/B,2CAA2C;AAC9B,QAAA,MAAM,GAAG,IAAI;IACxB,2EAA2E;IAC3E,MAAM,CAAC,GAAe,EAAE,OAAsB;QAC5C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,aAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,QAAQ,GAAG,CAAC,GAAG,EAAE;YACjB,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;SACtD;IACH,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAe,EAAE,MAAc,EAAE,OAAuB;QAC9D,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,aAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,QAAQ,GAAG,CAAC,GAAG,EAAE;YACjB,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;SACtD;IACH,CAAC;CACF,CAAC;AAEF,mDAAmD;AACnD,MAAa,MAAM;IACjB,+BAA+B;IAC/B,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;IAEzC,MAAM,CAAC,IAAI,GAAG,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAU,CAAC;IAC/C,MAAM,CAAC,KAAK,GAAG,kDAAkD,CAAC;IAE5E,gBAAuB,CAAC;IAExB,sDAAsD;IACtD,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO,EAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAC,CAAC;IAC5D,CAAC;IAED,oDAAoD;IACpD,MAAM,CAAC,MAAM,CAAC,MAAe;QAC3B,OAAO,CAAC,MAAM;YACZ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAc;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,GAAG,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAmB,CAAC;QACtD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;IACtB,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,MAAM,CAAC,MAAc;QAC1B,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IAChF,CAAC;IAED,mCAAmC;IACnC,MAAM,CAAC,IAAI;QACT,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,IAAI,CAAC,IAAuB;QACjC,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;IAC9B,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,IAAuB;QACnC,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;IAChC,CAAC;;AAnDU,wBAAM;AAsDnB,kDAAkD;AAClD,MAAa,MAAM;IACjB,8BAA8B;IAC9B,MAAM,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAU,CAAC;IAEnE,gBAAuB,CAAC;IAExB,wDAAwD;IACxD,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;YACjC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACpC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;SAC5B,CAAC;IACJ,CAAC;;AAbU,wBAAM;AAgBnB,uCAAwE;AAApD,gGAAA,IAAI,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAe,+FAAA,GAAG,OAAA;AACpD,+BAA8B;AAAtB,8FAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pkg/index.ts"],"names":[],"mappings":"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"}
@@ -150,7 +150,7 @@ START[data_1.PROTOCOL.Start.Substitute] = 'Substitute';
150
150
  const END = new Array(data_1.PROTOCOL.End.length);
151
151
  END[data_1.PROTOCOL.End.Disable] = 'Disable';
152
152
  END[data_1.PROTOCOL.End.Confusion] = 'confusion';
153
- END[data_1.PROTOCOL.End.Bide] = 'move: Bide';
153
+ END[data_1.PROTOCOL.End.Bide] = 'Bide';
154
154
  END[data_1.PROTOCOL.End.Substitute] = 'Substitute';
155
155
  END[data_1.PROTOCOL.End.DisableSilent] = 'Disable';
156
156
  END[data_1.PROTOCOL.End.ConfusionSilent] = 'confusion';
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/pkg/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/pkg/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,396 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.render = exports.toText = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ const img_1 = require("@pkmn/img");
30
+ const html_minifier_1 = require("html-minifier");
31
+ const mustache = __importStar(require("mustache"));
32
+ const ROOT = path.resolve(__dirname, '..', '..');
33
+ const template = (s) => path.join(ROOT, 'src', 'test', 'display', `${s}.html.tmpl`);
34
+ const POSITIONS = ['a', 'b', 'c', 'd', 'e', 'f'];
35
+ const VOLATILES = {
36
+ bide: ['Bide', 'good'],
37
+ thrashing: ['Thrashing', 'neutral'],
38
+ flinch: ['Flinch', 'bad'],
39
+ charging: ['Charging', 'good'],
40
+ binding: ['Binding', 'bad'],
41
+ invulnerable: ['Invulnerable', 'good'],
42
+ confusion: ['Confusion', 'bad'],
43
+ mist: ['Mist', 'good'],
44
+ focusenergy: ['Focus Energy', 'good'],
45
+ substitute: ['Substitute', 'good'],
46
+ recharging: ['Recharging', 'bad'],
47
+ rage: ['Rage', 'neutral'],
48
+ leechseed: ['Leech Seed', 'bad'],
49
+ lightscreen: ['Light Screen', 'good'],
50
+ reflect: ['Reflect', 'good'],
51
+ transform: ['Transformed', 'neutral'],
52
+ };
53
+ const pretty = (choice) => choice
54
+ ? choice.type === 'pass' ? choice.type : `${choice.type} ${choice.data}`
55
+ : '???';
56
+ const format = (kwVal) => typeof kwVal === 'boolean' ? '' : ` ${kwVal}`;
57
+ const trim = (args) => {
58
+ while (args.length && !args[args.length - 1])
59
+ args.pop();
60
+ return args;
61
+ };
62
+ const compact = (line) => [...trim(line.args.slice(0)), ...Object.keys(line.kwArgs)
63
+ .map(k => `[${k}]${format(line.kwArgs[k])}`)].join('|');
64
+ const debug = (s) => s.startsWith('|debug')
65
+ ? /^\|debug\|[^|]*:\d/.test(s) ? 'class="debug rng"'
66
+ : 'class="debug"' : '';
67
+ const toText = (parsed) => `|${parsed.map(compact).join('\n|')}`;
68
+ exports.toText = toText;
69
+ function render(gen, showdown, error, seed, frames, partial = {}) {
70
+ const output = [];
71
+ const buf = [];
72
+ if (seed)
73
+ buf.push(`<h1>0x${seed.toString(16).toUpperCase()}</h1>`);
74
+ let last = undefined;
75
+ for (const frame of frames) {
76
+ buf.push(displayFrame(gen, showdown, frame, last));
77
+ if ('battle' in frame) {
78
+ last = frame.battle;
79
+ }
80
+ else {
81
+ last = frame.seed;
82
+ output.push(frame.chunk);
83
+ }
84
+ }
85
+ buf.push(displayFrame(gen, true, partial, last));
86
+ if (error) {
87
+ const err = error.replaceAll(ROOT + path.sep, '');
88
+ buf.push(`<pre class="error"><code>${escapeHTML(err)}</pre></code>`);
89
+ }
90
+ const type = Array.isArray(last) ? 'showdown' : 'pkmn';
91
+ const render = ('render' in mustache ? mustache : mustache.default).render;
92
+ return (0, html_minifier_1.minify)(render(fs.readFileSync(template(type), 'utf8'), type === 'pkmn'
93
+ ? { content: buf.join('') }
94
+ : {
95
+ seed: buf.shift(),
96
+ content: buf.join(''),
97
+ output: output.join('\n'),
98
+ }), { minifyCSS: true, minifyJS: true });
99
+ }
100
+ exports.render = render;
101
+ function displayFrame(gen, showdown, partial, last) {
102
+ const buf = [];
103
+ if ('parsed' in partial && partial.parsed) {
104
+ buf.push('<div class="log">');
105
+ buf.push(`<pre><code>${(0, exports.toText)(partial.parsed)}</code></pre>`);
106
+ buf.push('</div>');
107
+ }
108
+ else if ('chunk' in partial && partial.chunk) {
109
+ buf.push('<div class="log"><pre>');
110
+ for (const line of partial.chunk.split('\n')) {
111
+ buf.push(`<code ${debug(line)}>${line}</code><br />`);
112
+ }
113
+ buf.push('</pre></div>');
114
+ }
115
+ if ('battle' in partial && partial.battle) {
116
+ buf.push(displayBattle(gen, showdown, partial.battle, last));
117
+ }
118
+ else if ('seed' in partial && partial.seed) {
119
+ buf.push(`<div class="seed">${partial.seed.join(', ')}</div>`);
120
+ }
121
+ if (partial.result) {
122
+ const { result, c1, c2 } = partial;
123
+ buf.push('<div class="sides" style="text-align: center;">');
124
+ buf.push(`<pre class="side"><code>${result.p1} -&gt; ${pretty(c1)}</code></pre>`);
125
+ buf.push(`<pre class="side"><code>${result.p2} -&gt; ${pretty(c2)}</code></pre>`);
126
+ buf.push('</div>');
127
+ }
128
+ return buf.join('');
129
+ }
130
+ function displayBattle(gen, showdown, battle, last) {
131
+ const buf = [];
132
+ buf.push('<div class="battle">');
133
+ if (battle.turn) {
134
+ buf.push('<div class="details">');
135
+ buf.push(`<h2>Turn ${battle.turn}</h2>`);
136
+ buf.push('<div class="inner">');
137
+ buf.push(`<div><strong>Last Damage:</strong> ${battle.lastDamage}</div>`);
138
+ buf.push(`<div><strong>Seed:</strong> ${battle.prng.join(', ')}</div>`);
139
+ buf.push('</div>');
140
+ buf.push('</div>');
141
+ }
142
+ buf.push('<div class="sides">');
143
+ const [p1, p2] = Array.from(battle.sides);
144
+ const [o1, o2] = last ? Array.from(last.sides) : [undefined, undefined];
145
+ buf.push(displaySide(gen, showdown, battle, 'p1', p1, o1));
146
+ buf.push(displaySide(gen, showdown, battle, 'p2', p2, o2));
147
+ buf.push('</div>');
148
+ buf.push('</div>');
149
+ return buf.join('');
150
+ }
151
+ function displaySide(gen, showdown, battle, player, side, last) {
152
+ const buf = [];
153
+ buf.push(`<div class="side ${player}">`);
154
+ if (battle.turn) {
155
+ buf.push('<div class="details">');
156
+ const used = side.lastUsedMove ? gen.moves.get(side.lastUsedMove).name : '<em>None</em>';
157
+ buf.push(`<div><strong>Last Used</strong><br />${used}</div>`);
158
+ const selected = side.lastSelectedMove ? gen.moves.get(side.lastSelectedMove).name : '<em>None</em>';
159
+ const index = side.lastSelectedIndex ? ` (${side.lastSelectedIndex})` : '';
160
+ buf.push(`<div><strong>Last Selected</strong><br />${selected}${index}</div>`);
161
+ buf.push('</div>');
162
+ }
163
+ if (side.active) {
164
+ buf.push('<div class="active">');
165
+ let prev = undefined;
166
+ if (last) {
167
+ for (const pokemon of last.pokemon) {
168
+ if (pokemon.position === side.active.position) {
169
+ prev = pokemon;
170
+ break;
171
+ }
172
+ }
173
+ }
174
+ buf.push(displayPokemon(gen, showdown, battle, side.active, true, prev));
175
+ buf.push('</div>');
176
+ }
177
+ buf.push('<details class="team">');
178
+ buf.push('<summary><div class="teamicons">');
179
+ let i = 0;
180
+ const b = [];
181
+ for (const pokemon of side.pokemon) {
182
+ if (i === 3)
183
+ b.push('</div><div class="teamicons">');
184
+ b.push(icon(player, pokemon));
185
+ i++;
186
+ }
187
+ buf.push(b.join(''));
188
+ buf.push('</div></summary>');
189
+ for (const pokemon of side.pokemon) {
190
+ buf.push(displayPokemon(gen, showdown, battle, pokemon, false));
191
+ }
192
+ buf.push('</details>');
193
+ buf.push('</div>');
194
+ return buf.join('');
195
+ }
196
+ const STATS = ['hp', 'atk', 'def', 'spa', 'spd', 'spe'];
197
+ function displayPokemon(gen, showdown, battle, pokemon, active, last) {
198
+ const buf = [];
199
+ buf.push('<div class="pokemon">');
200
+ const species = active ? pokemon.species : pokemon.stored.species;
201
+ // HP Bar
202
+ const { title, percent, width, color } = getHP(pokemon);
203
+ buf.push(`<div class="left" title="${title}">`);
204
+ if (!active)
205
+ buf.push(`<div class="position">${POSITIONS[pokemon.position - 1]}</div>`);
206
+ buf.push('<div class="statbar rstatbar" style="display: block; opacity: 1;">');
207
+ buf.push('<span class="name">');
208
+ if (pokemon.status)
209
+ buf.push(displayStatus(pokemon));
210
+ let name = gen.species.get(species).name;
211
+ if (active && pokemon.species !== pokemon.stored.species)
212
+ name = `<em>${name}</em>`;
213
+ buf.push(`<strong>${name}&nbsp;<small>L${pokemon.level}</small></strong>`);
214
+ if (active && pokemon.species !== pokemon.stored.species)
215
+ buf.push('</em>');
216
+ buf.push('</span>');
217
+ buf.push('<div class="hpbar">');
218
+ const style = `width: ${width}; border-right-width: ${percent === 100 ? 1 : 0}px;`;
219
+ const hp = `<div class="hp ${color}" style="${style}"></div>`;
220
+ if (last && last.position === pokemon.position && pokemon.hp < last.hp) {
221
+ const prev = getHP(last);
222
+ const style = `width: ${prev.width}; border-right-width: ${prev.percent === 100 ? 1 : 0}px;`;
223
+ buf.push(`<div class="prevhp ${prev.color ? 'prev' + prev.color : ''}" style="${style}">`);
224
+ buf.push(hp);
225
+ buf.push('</div>');
226
+ }
227
+ else {
228
+ buf.push(hp);
229
+ }
230
+ buf.push(`<div class="hptext">${percent}%</div>`);
231
+ buf.push('</div></div>');
232
+ // Sprite & Types
233
+ buf.push(sprite(showdown, species, pokemon.hp === 0));
234
+ const types = active ? pokemon.types : pokemon.stored.types;
235
+ buf.push('<div class="types">');
236
+ buf.push(typicon(types[0]));
237
+ if (types[0] !== types[1])
238
+ buf.push(typicon(types[1]));
239
+ buf.push('</div>');
240
+ buf.push('</div>');
241
+ buf.push('<div class="right">');
242
+ if (!active)
243
+ buf.push(`<div class="position">${POSITIONS[pokemon.position - 1]}</div>`);
244
+ // Stats & Boosts
245
+ buf.push('<div class="stats"><table><tr>');
246
+ const stats = active ? pokemon.stats : pokemon.stored.stats;
247
+ for (const stat of STATS) {
248
+ if (gen.num === 1 && stat === 'spd')
249
+ continue;
250
+ buf.push(`<th>${gen.stats.display(stat)}</th>`);
251
+ }
252
+ buf.push('</tr><tr>');
253
+ for (const stat of STATS) {
254
+ if (gen.num === 1 && stat === 'spd')
255
+ continue;
256
+ const boost = active ? pokemon.boosts[stat] : 0;
257
+ buf.push(`<td>${displayStat(stats[stat], boost)}</td>`);
258
+ }
259
+ buf.push('</tr></table>');
260
+ if (active) {
261
+ buf.push('<div class="boosts">');
262
+ if (pokemon.boosts.accuracy) {
263
+ buf.push(`<div><strong>Accuracy:</strong> ${displayBoost(pokemon.boosts.accuracy)}</div>`);
264
+ }
265
+ if (pokemon.boosts.evasion) {
266
+ buf.push(`<div><strong>Evasion:</strong> ${displayBoost(pokemon.boosts.evasion)}</div>`);
267
+ }
268
+ buf.push('</div>');
269
+ }
270
+ buf.push('</div>');
271
+ // Moves
272
+ buf.push('<div class="moves"><ul>');
273
+ const moves = active ? pokemon.moves : pokemon.stored.moves;
274
+ for (const move of moves) {
275
+ const name = gen.moves.get(move.id).name;
276
+ const maxpp = Math.min(gen.moves.get(move.id).pp / 5 * 8, gen.num === 1 ? 61 : 64);
277
+ const disabled = !move.pp || move.disabled ? 'disabled' : '';
278
+ const title = move.disabled ? `title="Disabled: ${move.disabled}"` : '';
279
+ const pp = `<small>(${move.pp}/${maxpp})</small>`;
280
+ buf.push(`<li class="${disabled}" ${title}>${name} ${pp}</li>`);
281
+ }
282
+ buf.push('</ul></div>');
283
+ // Volatiles
284
+ if (active) {
285
+ buf.push('<div class="volatiles">');
286
+ for (const v in pokemon.volatiles) {
287
+ const volatile = v;
288
+ const [name, type] = VOLATILES[volatile];
289
+ let data = '';
290
+ if (['binding', 'confusion', 'substitute'].includes(volatile)) {
291
+ data = Object.values(pokemon.volatiles[volatile])[0].toString();
292
+ }
293
+ else if (volatile === 'bide') {
294
+ const val = pokemon.volatiles[volatile];
295
+ data = `${val.duration} (${val.damage})`;
296
+ }
297
+ else if (volatile === 'rage') {
298
+ const val = pokemon.volatiles[volatile];
299
+ data = val.accuracy ? val.accuracy.toString() : '';
300
+ }
301
+ else if (volatile === 'thrashing') {
302
+ const val = pokemon.volatiles[volatile];
303
+ data = `${val.duration}${val.accuracy ? ` (${val.accuracy})` : ''}`;
304
+ }
305
+ else if (volatile === 'transform') {
306
+ const { player, slot } = pokemon.volatiles[volatile];
307
+ const p = +player.charAt(1) - 1;
308
+ let i = 0;
309
+ for (const side of battle.sides) {
310
+ if (i++ === p) {
311
+ i = 1;
312
+ for (const poke of side.pokemon) {
313
+ if (i++ === slot) {
314
+ data = `${player}${POSITIONS[poke.position - 1]}`;
315
+ break;
316
+ }
317
+ }
318
+ break;
319
+ }
320
+ }
321
+ }
322
+ data = (data ? `${name}: ${data}` : name).replace(' ', '&nbsp;');
323
+ buf.push(`<span class="volatile ${type}">${data}</span>`);
324
+ }
325
+ buf.push('</div>');
326
+ }
327
+ buf.push('</div>');
328
+ buf.push('</div>');
329
+ return buf.join('');
330
+ }
331
+ function escapeHTML(str) {
332
+ return (str
333
+ .replace(/&/g, '&amp;')
334
+ .replace(/</g, '&lt;')
335
+ .replace(/>/g, '&gt;')
336
+ .replace(/"/g, '&quot;')
337
+ .replace(/'/g, '&apos;')
338
+ .replace(/\//g, '&#x2f;')
339
+ .replace(/\n/g, '<br />'));
340
+ }
341
+ function getHP(pokemon) {
342
+ const title = `${pokemon.hp}/${pokemon.stats.hp}`;
343
+ const ratio = pokemon.hp / pokemon.stats.hp;
344
+ let percent = Math.ceil(ratio * 100);
345
+ if ((percent === 100) && (ratio < 1.0)) {
346
+ percent = 99;
347
+ }
348
+ const width = (pokemon.hp === 1 && pokemon.stats.hp > 45)
349
+ ? '1px' : ratio === 1.0
350
+ ? 'var(--hp-bar)' : `calc(${ratio} * var(--hp-bar))`;
351
+ const color = ratio > 0.5 ? '' : ratio > 0.2 ? 'hp-yellow' : 'hp-red';
352
+ return { title, percent, width, color };
353
+ }
354
+ function displayStatus(pokemon) {
355
+ const c = pokemon.status === 'tox' ? 'psn' : pokemon.status;
356
+ let t = '';
357
+ if (pokemon.statusData.sleep)
358
+ t += `Sleep: ${pokemon.statusData.sleep}`;
359
+ if (pokemon.status === 'tox' || pokemon.statusData.toxic) {
360
+ t += `Toxic: ${pokemon.statusData.toxic}`;
361
+ }
362
+ if (t)
363
+ t = `title="${t}"`;
364
+ const s = pokemon.statusData.self ? 'slf' : pokemon.status;
365
+ return `<span class="status ${c}" ${t}>${s}</span>`;
366
+ }
367
+ function displayStat(stat, boost) {
368
+ if (!boost)
369
+ return `${stat}`;
370
+ if (boost > 0)
371
+ return `<span class="good">${stat} (+${boost})</span>`;
372
+ return `<span class="bad">${stat} (${boost})</span>`;
373
+ }
374
+ function displayBoost(boost) {
375
+ if (boost > 0)
376
+ return `<span class="good">+${boost}</span>`;
377
+ return `<span class="bad">${boost}</span>`;
378
+ }
379
+ function icon(side, pokemon) {
380
+ const fainted = pokemon.hp === 0;
381
+ const icon = img_1.Icons.getPokemon(pokemon.stored.species, { side, fainted, domain: 'pkmn.cc' });
382
+ return `<span style="${icon.style}"></span>`;
383
+ }
384
+ function sprite(showdown, species, fainted) {
385
+ const s = img_1.Sprites.getPokemon(species, { gen: showdown ? 'gen1' : 'gen1rb' });
386
+ let style = s.pixelated ? 'image-rendering: pixelated;' : '';
387
+ if (fainted)
388
+ style += 'opacity: 0.3; filter: grayscale(100%) brightness(.5);';
389
+ return `<img class="sprite" src="${s.url}" width="${s.w}" height="${s.h}" style="${style}" />`;
390
+ }
391
+ function typicon(type) {
392
+ const i = img_1.Icons.getType(type);
393
+ const style = 'image-rendering: pixelated;';
394
+ return `<img class="icon" src="${i.url}" width="${i.w}" height="${i.h}" style="${style}" />`;
395
+ }
396
+ //# sourceMappingURL=display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/test/display.ts"],"names":[],"mappings":"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"}