diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-10-21 00:18:09 +0200 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-10-21 00:18:11 +0200 |
| commit | b34b2a5b8d118974502c015912e1ed67fa6965b0 (patch) | |
| tree | fd9aae3af50fc6e312e64934b9231f59142210ee /test-client | |
| parent | eaed442578c3b1765ec48c84489a122096b6a08f (diff) | |
| download | hurrycurry-b34b2a5b8d118974502c015912e1ed67fa6965b0.tar hurrycurry-b34b2a5b8d118974502c015912e1ed67fa6965b0.tar.bz2 hurrycurry-b34b2a5b8d118974502c015912e1ed67fa6965b0.tar.zst | |
more debug events, bots now broken
Diffstat (limited to 'test-client')
| -rw-r--r-- | test-client/main.ts | 11 | ||||
| -rw-r--r-- | test-client/visual.ts | 14 |
2 files changed, 23 insertions, 2 deletions
diff --git a/test-client/main.ts b/test-client/main.ts index 091e0535..9267270b 100644 --- a/test-client/main.ts +++ b/test-client/main.ts @@ -321,6 +321,8 @@ function packet(p: PacketC) { break; case "flush_map": break; + case "pause": + break; // TODO case "menu": switch (p.menu) { case "score": @@ -336,7 +338,7 @@ function packet(p: PacketC) { } break; case "debug": - debug_events.set(p.key, { timeout: 0.1, ...p }) + debug_events.set(p.key, { timeout: 0.5, ...p }) break; default: console.warn("unknown packet", p); @@ -498,6 +500,13 @@ function frame_update(dt: number) { } remove.forEach(i => items_removed.delete(i)) + const remove_events: string[] = [] + for (const [key, ev] of debug_events.entries()) { + ev.timeout -= dt + if (ev.timeout < 0) remove_events.push(key) + } + remove_events.forEach(i => debug_events.delete(i)) + for (const [_, h] of server_hints) tick_message(h, dt); diff --git a/test-client/visual.ts b/test-client/visual.ts index 20bd7ae2..c06edff0 100644 --- a/test-client/visual.ts +++ b/test-client/visual.ts @@ -101,16 +101,28 @@ export function draw_ingame() { function draw_debug_events() { for (const ev of debug_events.values()) { + const color = `rgb(${ev.color[0] * 100}%,${ev.color[1] * 100}%,${ev.color[2] * 100}%)` if (ev.display.ty == "path") { ctx.lineWidth = 0.1 ctx.lineCap = "round" - ctx.strokeStyle = `rgb(${ev.color[0] * 100}%,${ev.color[1] * 100}%,${ev.color[2] * 100}%)` + ctx.strokeStyle = color ctx.beginPath() if (ev.display.points.length) ctx.moveTo(...ev.display.points[0]) for (let i = 1; i < ev.display.points.length; i++) ctx.lineTo(...ev.display.points[i]) ctx.stroke() + } else if (ev.display.ty == "label") { + ctx.font = "0.2px sans-serif" + ctx.strokeStyle = "black" + ctx.fillStyle = color + ctx.lineWidth = 0.1 + ctx.textAlign = "center" + ctx.textBaseline = "middle" + ctx.lineJoin = "round" + ctx.lineCap = "round" + ctx.strokeText(ev.display.text, ev.display.pos[0], ev.display.pos[1]) + ctx.fillText(ev.display.text, ev.display.pos[0], ev.display.pos[1]) } } } |