| 1 | |
| 2 | <html lang="en"> |
| 3 | <head> |
| 4 | <meta charset="utf-8"> |
| 5 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
| 6 | <title>Orbit Wars replay</title> |
| 7 | <style>html, body, iframe { margin: 0; width: 100%; height: 100%; border: 0; background: #0b0f1a; }</style> |
| 8 | </head> |
| 9 | <body> |
| 10 | <!-- Kaggle's own Orbit Wars player (player.html, from kaggle-environments' visualizer, unchanged). It says {ready: true} |
| 11 | to its parent and plays the episode it is sent as {environment}. This page only passes the replay along. --> |
| 12 | <iframe id="player" src="player.html" title="Orbit Wars"></iframe> |
| 13 | <script src="bridge.js"></script> |
| 14 | <script> |
| 15 | let replay = null |
| 16 | const player = document.getElementById('player') |
| 17 | const send = () => replay && player.contentWindow.postMessage({ environment: replay, playing: true }, '*') |
| 18 | addEventListener('message', e => { if (e.source === player.contentWindow && e.data && e.data.ready) send() }) |
| 19 | shoalReplay(text => { replay = JSON.parse(text); send() }) |
| 20 | </script> |
| 21 | </body> |
| 22 | </html> |
