blob: 60efac48c1b34347e3ce3e9580ff348048f6a02a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<head>
<meta charset="UTF-8">
<link data-trunk rel="rust" data-wasm-opt="2" data-target-name="game_lib" />
<!-- <link data-trunk rel="rust" data-keep-debug="true" /> -->
<base data-trunk-public-url />
<meta name="theme-color" media="(prefers-color-scheme: light)" content="white">
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#404040">
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<link data-trunk rel="css" href="index.css" />
<title>Jam 2026 Framing Device</title>
</head>
<body>
<script type="module">
window.addEventListener("TrunkApplicationStarted", async (event) => {
console.log("initialized, starting...");
window.wasmBindings.main_js();
});
window.addEventListener("message", ev => {
switch (ev.data.op) {
case "titlescreenclick":
window.fetch("https://api.colonq.computer/api/leaderboard/jam2026?n=1").then(async (resp) => {
const top = await resp.json();
const score = top?.[0]?.[2];
if (typeof score === "number") {
console.log(`high score: ${score}`);
window.wasmBindings.set_leaderboard_highscore(score);
}
});
window.wasmBindings.titlescreen_click();
break;
case "startgame":
window.wasmBindings.start_game(ev.data.verb);
break;
case "endgame":
window.wasmBindings.end_game(ev.data.win);
break;
case "gameover":
window.wasmBindings.game_over(ev.data.streak);
break;
case "reset":
window.wasmBindings.reset();
break;
default: console.log(`unknown event in framing iframe: ${ev}`); break;
}
});
</script>
<div id="teleia-parent"></div>
</body>
</html>
|