pinch-points 0.8.0

A fast, kid-friendly crab-routing game: route streams of crabs into your sandcastle before time runs out
Documentation
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
//! English strings.

use super::Tr;

pub static EN: Tr = Tr {
    tagline: "the tide is out - route the crabs home",
    menu_names: [
        "Campaign",
        "Versus",
        "Level Editor",
        "Replay",
        "Multiplayer",
        "Settings",
        "Challenges",
        "Achievements",
        "Daily Challenge",
    ],
    menu_blurbs: [
        "solo puzzle campaign",
        "local versus, up to 6 players",
        "build and share your own levels",
        "watch the rounds you kept",
        "online LAN match",
        "controls, sound, speed",
        "score-attack challenges",
        "your stats and trophies",
        "today's map, same for everyone",
    ],
    menu_daily_blurb: "{d}/{m} - the same map for everyone",
    menu_prompt: "W/S: choose | Enter: play | V: paste a round | M: mute | Esc: quit",
    title_achievements: "Achievements",
    ach_names: [
        "First Crab Home",
        "Beach Foreman",
        "Tide Master",
        "Golden Touch",
        "Treasure Hoard",
        "Crab Whisperer",
        "Storm Chaser",
        "Sandcastle Sovereign",
        "Dynasty",
        "Puzzle Paddler",
        "Rock Pool Scholar",
        "Rock Pool Professor",
        "Dry Castle",
        "Heavy Lifting",
        "Full Roulette",
        "Tide's Haul",
        "Beach Champion",
        "Good Neighbour",
        "Regular",
        "Level Architect",
        "Old Salt",
        "Shorekeeper",
        "Gold Standard",
        "Heavy Haulage",
        "Century Tide",
        "House Rules",
        "Creature of Habit",
        "Level Workshop",
        "Bird Food",
        "The Beach Is Safe",
        "Sunup to Sundown",
        "Summer Champion",
        "Under Siege",
        "Pied Piper",
        "Storm Season",
        "Beach Fixture",
        "Rock Pool Sage",
        "Master Builder",
        "Long Distance",
        "Beach Warden",
        "Full House",
        "Every Corner",
        "Signposts to Spare",
        "Clean Sweep",
        "Deep Water",
        "Daily Record",
        "Postcard",
        "Guest Beach",
        "Full Beach",
        "Thrifty",
    ],
    ach_descs: [
        "score your first crab",
        "score 100 crabs",
        "score 1000 crabs",
        "score a golden crab",
        "score 5 golden crabs",
        "fire 5 molting lures",
        "spin 5 random events",
        "win a versus round",
        "win 10 versus rounds",
        "solve 5 puzzles",
        "solve 25 puzzles",
        "solve 50 puzzles",
        "win a round without being raided",
        "score 25 giant crabs",
        "see every random event once",
        "score 50 crabs in one round",
        "win a series",
        "win a round online",
        "play the daily on 7 days",
        "save a level in the editor",
        "play 100 versus rounds",
        "score 5000 crabs",
        "score 25 golden crabs",
        "score 100 giant crabs",
        "score 100 crabs in one round",
        "win 50 versus rounds",
        "play the daily on 30 days",
        "save 10 levels in the editor",
        "lose 25 crabs to the gulls",
        "clear every campaign stage",
        "clear every challenge",
        "win 5 series",
        "have your castle raided 25 times",
        "fire 50 molting lures",
        "spin 50 random events",
        "play 500 versus rounds",
        "solve 100 puzzles",
        "save 25 levels in the editor",
        "win 10 rounds online",
        "host a game on the local network",
        "play a round with four players",
        "win from four different seats",
        "clear a stage with a spare signpost",
        "clear 10 stages first try",
        "clear a five-signpost stage",
        "score 40 in a daily challenge",
        "share a level as a code",
        "open a level from someone else's code",
        "play a round with six players",
        "clear 10 stages with one to spare",
    ],
    stats_footer: "scored {banked} · golden {golden} · wins {wins}/{rounds} · puzzles {puzzles}",
    daily_best: "Daily challenge best today: {n}",
    crab_names: [
        "common",
        "juvenile",
        "giant",
        "molting",
        "golden",
        "sparkling",
    ],
    crab_notes: ["", "fast", "slow", "lure!", "jackpot", "surprise!"],
    title_pick_language: "Choose your language",
    title_new_version: "New version available",
    prompt_new_version: "W/S: choose | Enter: confirm | Esc: not now",
    prompt_pick_language: "W/S: choose | Enter: confirm",
    pick_language_later: "you can change this later in Settings",
    title_tide_pool: "Campaign",
    title_beach_day: "Challenges",
    title_turf_war: "Versus",
    title_replay: "REPLAY",
    title_online: "ONLINE (you are {p})",
    title_vs_ai: "VERSUS: {n} AI - you are {p}",
    title_editor: "Level Editor",
    title_playtest: "Level Editor - playtest",
    title_lobby: "Multiplayer",
    title_settings: "Settings",
    title_match_setup: "Versus - match setup",
    title_replays: "Replays",
    prompt_replays: "W/S: choose | Enter: watch | C: copy code | V: paste code | Esc: menu",
    replays_empty: "No rounds kept yet - finish a versus round and it lands here",
    replays_heading: "KEPT ROUNDS",
    replay_speed: "x{n}  (S: faster)",
    replay_playing: "playing",
    prompt_replay_transport: "Space: pause | S: speed | Esc: menu",
    replay_paused: "paused",
    hint_offer: "Stuck? Press H for a hint.",
    hint_showing: "One arrow of a solution, dimmed. H again after you place it.",
    title_stages: "Pick a stage",
    prompt_stages: "arrow keys: choose | Enter: play | Esc: menu",
    prompt_stages_tide: "arrow keys: choose | Enter: play | C: co-op | Esc: menu",
    stage_coop_on: "Co-op: two players, one set of arrows",
    stage_progress: "{a} of {b} cleared",
    stage_key: "arrows",
    stage_custom: "your levels",
    ach_progress: "{a} of {b} unlocked",
    stage_cleared: "cleared",
    stage_open: "arrows: {n}",
    stage_free: "no arrows needed",
    stage_locked: "locked - clear stage {n} first",
    team_banner: "{mode}   TEAMS: {s}",
    the_gulls: "THE GULLS!",
    tide_event: "EVENT: {e}!",
    lure_started: "{p} scored a molting crab - LURE!",
    lure_banner: "LURE {s}s: crabs ignore arrows -> {p}!",
    desync: "DESYNC at frame {f}!",
    waiting_peer: "waiting for peer...",
    waiting_for: "waiting for {p}...",
    saved_count: "Saved {a}/{b}",
    signposts_count: "Arrows: {a}/{b}",
    goal_bank: "Score {a}/{b}{t}",
    goal_survive: "Lose no crab!{t}",
    goal_golden: "Catch the golden crab{t}",
    prompt_setup: "WASD move | arrow keys place | Space remove | Enter start | N/P level",
    prompt_setup_coop: "P1 WASD + arrows | P2 IJKL + numpad | Enter start | N/P level",
    prompt_setup_full: "All arrows placed - Space removes one | Enter start | N/P level",
    denied_no_posts: "No arrows left - take one back first.",
    prompt_setup_no_posts: "No arrows here - this one solves itself. Enter to run | N/P level",
    prompt_running: "Running... R to reset",
    prompt_won: "All crabs safe! Enter: next level | R: watch again",
    prompt_won_goal: "Stage cleared! Enter: next level | R: watch again",
    prompt_lost: "Some crabs never made it. Enter: try again",
    prompt_versus_short: "WASD move | arrow keys place | Space remove | Esc pause",
    prompt_versus_local: "P1: WASD + arrow keys/Space | P2: IJKL + numpad 8546/0 | controllers: top player first",
    prompt_setup_custom: "your keys (Settings) | Enter start | N/P level",
    prompt_versus_custom: "your keys (Settings) | Esc pause",
    prompt_enter_menu: "Enter: menu",
    prompt_enter_lobby: "Enter: lobby",
    prompt_esc_menu: "Esc: menu",
    prompt_achievements: "W/S: scroll | Esc: menu",
    prompt_mute: "M: mute",
    replay_draw: "draw",
    pause_title: "PAUSED",
    pause_menu_title: "MENU",
    pause_continue: "Continue",
    pause_to_menu: "Back to menu",
    pause_quit: "Quit game",
    prompt_paused: "W/S: choose | Enter: confirm | Esc: continue",
    spectator_call_title: "Vote for an event",
    spectator_call_hint: "E: vote for an event",
    spectator_called: "the spectators called {e}!",
    spectator_vote_open: "voting: {n}s",
    spectator_wait: "next vote in {n}s",
    spectator_count: "{n} watching",
    spectator_pick_title: "Who wins?",
    spectator_pick_hint: "P: pick the winner ({n}s)",
    spectator_picked: "your call: {p} ({n}s)",
    crowd_picked: "the crowd picked {l}",
    call_right: "You called it! ({a} of {b} so far)",
    call_wrong: "You picked {p} ({a} of {b} so far)",
    round_copied: "round copied as a code ({n} characters)",
    round_code_bad: "that code is not a round in progress",
    update_title: "A new version is out: {v}",
    update_have: "You have {v}",
    update_no_notes: "(no release notes)",
    update_question: "Do you want to update?",
    update_yes: "Yes, show me the new version",
    update_no: "No, not now",
    update_note: "you can turn this check off in Settings",
    update_opened: "the release page was handed to your browser",
    update_open_failed: "no browser to open it in: {url}",
    prompt_settings: "W/S: select | A/D: adjust | Esc: save and back",
    prompt_match_setup: "W/S: select | A/D: adjust | Enter: start the match | Esc: back",
    prompt_match_name: "W/S: select | Tab: rename | Enter: start the match | Esc: back",
    player_label: "P{p}",
    events: [
        "Crab Mania",
        "Gull Mania",
        "Crab Monopoly",
        "Gull Attack",
        "Speed Up",
        "Slow Down",
        "Fresh Sand",
        "Castle Swap",
        "Right Claws",
    ],
    event_blurbs: [
        "the gulls wash away and the holes flood with crabs",
        "the holes spit gulls instead of crabs",
        "half the loose crabs fly home to whoever triggered it",
        "a gull lands beside every rival castle",
        "every crab and gull on the beach picks up the pace",
        "every crab and gull slows to a crawl",
        "every arrow on the beach washes away",
        "the castles trade owners - mind whose is whose",
        "right claws bank double, left claws cost",
    ],
    ann_lure: "LURE!",
    ann_lure_sub: "for ten seconds every loose crab runs for {p}",
    ann_surge: "THE GULLS!",
    ann_surge_sub: "the gulls come in for the end of the round",
    ann_golden: "GOLDEN CRAB!",
    ann_golden_sub: "worth {n}, out of the glowing hole",
    tide_is_in: "~ TIME'S UP ~",
    wins: "{p} wins!",
    dead_heat: "A dead heat!",
    team_wins: "{t} win!",
    tag_you: " (you)",
    tag_ai: " (AI)",
    haul: "{n} crabs made it home this round",
    award_comeback: "Comeback: {p} was {n} behind",
    award_lure: "Biggest lure: {p}, +{n}",
    award_arrows: "Most arrows: {p}, {n}",
    award_hit: "Hardest hit: {p} lost {n}",
    highlight_saved: "highlight reel: {path}",
    all_safe: "ALL CRABS SAFE!",
    goal_met: "STAGE CLEARED!",
    crabs_lost: "SOME CRABS NEVER MADE IT",
    last_level: "That was the last one. Enter: back to the menu",
    campaign_done: "THE BEACH IS SAFE!",
    set_group_controls: "CONTROLS",
    set_group_sound: "SOUND",
    set_group_round: "THE ROUND",
    set_group_look: "PRESENTATION",
    set_group_danger: "STARTING OVER",
    set_group_game: "THE GAME",
    set_seat_input: "P{n} plays with",
    val_input_auto: "whatever is plugged in",
    val_input_keys: "keyboard only",
    val_input_pad: "controller {n}",
    set_commit_keys: "P1 placing keys",
    set_repeat_delay: "Cursor repeat delay",
    set_repeat_rate: "Cursor repeat rate",
    set_music_on: "Music",
    set_music: "Music volume",
    set_sfx_on: "Sound effects",
    set_sfx: "Effects volume",
    set_speed: "Puzzle speed",
    set_versus_mode: "Versus scoring",
    set_language: "Language",
    set_keyboard: "Keyboard",
    set_rumble: "Controller rumble",
    set_deadzone: "Stick deadzone",
    pad_help1: "Controller: d-pad/stick move, face buttons place",
    pad_help2: "L1 remove, R1 clear, Start pause/join, B back",
    set_palette: "Player colours",
    set_fullscreen: "Fullscreen",
    set_ui_scale: "UI scale",
    set_reduced_motion: "Reduced motion",
    set_update_check: "Check for updates",
    set_replay_cap: "Rounds kept",
    set_key_bindings: "Key bindings",
    set_reset_progress: "Reset stage progress",
    val_palette_classic: "classic",
    val_palette_safe: "colour-blind safe",
    val_open: "Enter to open",
    val_auto: "Auto",
    val_reset: "Enter to reset",
    val_reset_confirm: "Enter again to confirm",
    val_reset_done: "progress cleared",
    title_controls: "Key bindings",
    prompt_controls: "W/S: select | Enter: rebind | Backspace: defaults | Esc: back",
    ctl_seat: "Player",
    ctl_group_seat: "WHOSE KEYS",
    ctl_group_move: "MOVING THE CURSOR",
    ctl_group_place: "PLACING AN ARROW",
    ctl_group_posts: "CLEARING UP",
    ctl_listening: "press a key...",
    ctl_reset_key: "Backspace",
    ctl_press_key: "press a key... (Esc cancels)",
    ctl_taken: "{k} already does \"{a}\"",
    ctl_reset: "Reset to defaults",
    bind_actions: [
        "Move up",
        "Move down",
        "Move left",
        "Move right",
        "Place up",
        "Place down",
        "Place left",
        "Place right",
        "Remove arrow",
        "Clear all arrows",
    ],
    match_pad_joined: "Controllers joined: {list}",
    match_pad_hint: "Start on a controller joins as the next player",
    match_needs_opponent: "No opponent yet: add an AI, or P2 presses one of their keys",
    val_arrows: "Arrow keys",
    val_ijkl: "IJKL (single-hand)",
    val_on: "on",
    val_off: "off",
    team_modes: [
        "free-for-all",
        "pairs (2v2, 2v2v2 at 6)",
        "trios (3v3, 6 seats)",
    ],
    match_heading: "THE MATCH",
    match_players: "Players",
    match_ai: "AI opponents",
    human_one: "1 human",
    human_many: "{n} humans",
    match_ai_level: "AI level",
    bot_levels: ["easy", "normal", "fierce"],
    match_map: "Map",
    match_gulls: "Gulls",
    match_round: "Round length",
    match_posts: "Arrows per player",
    countdown_go: "GO!",
    match_mode: "Mode",
    match_name: "Name",
    match_name_empty: "- (Tab to name)",
    match_name_typing: "(Enter to keep)",
    mode_names: ["single round", "best of 3", "best of 5"],
    tour_round: "Round {n} of {b}",
    tour_champion: "{p} takes the series!",
    tour_drawn: "The series is a draw!",
    tour_next: "Enter: next round",
    log_raid: "{p} raided! -{n}",
    log_golden: "{p} scores gold! {n}",
    log_lure: "{p} starts a lure!",
    log_tier: "{p}'s castle grows",
    log_gull: "a gull swoops in",
    log_surge: "final seconds! gulls flood in",
    log_golden_call: "a golden crab is coming!",
    log_wheel_locked: "{p}: random events on cooldown",
    log_golden_out: "the golden crab is out!",
    map_names: [
        "Classic arena (12x9)",
        "Generated - small (9x7)",
        "Generated - classic (12x9)",
        "Generated - large (16x11)",
        "Generated - XL (20x13)",
        "Open ocean, no edges (16x11)",
    ],
    map_custom: "{n} (yours)",
    map_custom_local: "{n} (yours, local only)",
    map_none_seats: "none of your maps fits {n} players",
    gull_names: ["calm", "normal", "frenzy"],
    round_names: ["2 minutes", "3 minutes", "5 minutes"],
    lobby_hosting: "hosting on port {p} - waiting for a rival",
    lobby_hosting_noport: "hosting - waiting for a rival",
    lobby_rivals_one: "1 player joined - Enter to start (up to 5)",
    lobby_rivals_many: "{n} players joined - Enter to start (up to 5)",
    lobby_ai_seats: " + {n} AI",
    lobby_watchers: " ({n} watching)",
    lobby_watch_armed: "watching mode: a number key (or J) watches | W: play instead | Esc: menu",
    lobby_watching: "watching - the match starts when the host launches",
    title_watching: "WATCHING",
    lobby_aboard: "joined - waiting for the host to start",
    lobby_listening: "looking for games...",
    lobby_none_yet: "No games found yet... | H: host | J: join by address | W: watch | Esc: menu",
    lobby_in_progress: "(playing)",
    lobby_full_tag: "(full)",
    lobby_chat_hint: "T: say something",
    lobby_ask_player_name: "Your name: ",
    lobby_ask_game_name: "Name your game: ",
    lobby_needs_name: "Type a name first",
    lobby_suggest_name: "Crab {n}",
    lobby_suggest_beach: "{p}'s game",
    quick_chat: [
        "Hi!",
        "Ready!",
        "Wait for me",
        "One more?",
        "Good game!",
        "Nice one!",
    ],
    lobby_ask_address: "Game address (ip:port): ",
    lobby_bad_address: "Not an address - try 192.168.1.5:47777",
    lobby_hosting_at: "this game is at {a}",
    lobby_calling: "calling {a}...",
    lobby_no_answer: "no answer from {a} - check the address, or ask them to host",
    lobby_card_beaches: "OPEN GAMES",
    lobby_card_chat: "LOBBY",
    lobby_joined: "{p} joined",
    lobby_watching_joined: "{p} is watching",
    lobby_left: "{p} left",
    lobby_card_players: "IN THIS GAME",
    lobby_card_terms: "THE ROUND",
    online_seat_abandoned: "{p} dropped out - an AI takes the castle",
    online_host_gone: "the host left - that round could not go on",
    round_failed: "something went wrong, and that round was stopped",
    online_dropped: "the host dropped you - nothing you sent got through for five seconds",
    lobby_queued_next: "Round in progress - you are next up",
    lobby_queued_behind: "Round in progress - {n} ahead of you",
    lobby_queued_watching: "Round in progress - you watch from the next one",
    lobby_beach_full: "That game is full",
    lobby_join_list: "{n} open games | arrow keys: pick | Enter: join | B: as a bot | H: host | J: by address | W: watch | Esc: menu",
    lobby_join_list_one: "1 open game | Enter: join | B: as a bot | H: host | J: by address | W: watch | Esc: menu",
    lobby_broadcasting: "Hosting - arrow keys: set the round | T: talk | K: ask to leave | Enter: start (up to 5 rivals) | Esc: menu",
    lobby_aboard_prompt: "Joined - the match starts when the host launches | T: talk | Esc: menu",
    lobby_watching_prompt: "Watching - the match starts when the host launches | T: talk | Esc: menu",
    lobby_queued_prompt: "In line for the next round | T: talk | Esc: menu",
    lobby_queued_watch_prompt: "In line to watch - you join the crowd next round | T: talk | Esc: menu",
    lobby_could_not_host: "could not host: {e}",
    lobby_could_not_join: "could not join: {e}",
    lobby_version_clash: "that game runs a different version (theirs {t}, yours {o})",
    ed_prompt: "WASD move | arrow keys walls | Tab/letter pick | Space paint | +/- arrows | F5 size | K gulls O wrap | F1 name F6 kind | V check | F2 save F3/F4 code | Enter test",
    ed_brushes: [
        "Sand (erases)",
        "Rock",
        "Castle",
        "Hole",
        "Log",
        "Weed",
        "Pool",
        "Crab",
        "Gull",
    ],
    ed_under: "under: {t}",
    ed_playtest_prompt: "arrow keys place | Space remove | Esc end test",
    ed_solvable: "solvable: {placements}",
    ed_solvable_free: "solvable with no arrows at all",
    ed_not_solvable: "NOT solvable - arrows granted: {n}",
    ed_solver_gave_up: "gave up - too big to check. Try fewer arrows.",
    ed_validating: "validating...",
    ed_already_validating: "already validating...",
    ed_resized: "fresh {w}x{h} map",
    ed_default_name: "My Map",
    ed_name_row: "name: {n}   (F1 renames)",
    ed_naming: "name it, then Enter",
    ed_saved_to: "saved to {path}",
    ed_save_failed: "save failed: {e}",
    ed_saved_over: "replaced the level already called that",
    ed_resize_confirm: "F5 again for a fresh {w}x{h} map - this one goes",
    ed_paste_confirm: "F4 again to load the pasted level - this one goes",
    code_kind_beach: "a round in progress",
    code_kind_level: "a level",
    code_kind_round: "a round",
    code_wrong_kind: "that code is {got}, not {want}",
    code_copied: "code copied - {n} characters on the clipboard",
    code_copy_failed: "could not reach the clipboard: {e}",
    code_none_pasted: "no share code on the clipboard",
    code_level_checking: "level loaded from a code - checking it...",
    code_level_bad: "that code is not a level this build can read: {e}",
    code_round_saved: "round kept from a code",
    code_round_bad: "that code is not a round this build can read: {e}",
    ed_posts: "arrows: {n} | {msg}",
    ed_fresh_sand: "fresh sand",
    ed_back: "back to the sand",
    ed_wrap_on: "open ocean: edges wrap around",
    ed_wrap_off: "edges walled again",
    ed_gulls_every: "gulls: every {s} s",
    ed_gulls_off: "gulls: off",
    ed_seats: "seats: {n} | {msg}",
    ed_puzzle_no_crabs: "no crabs to route, so no stage list will show it",
    ed_kind_row: "F6 - building a",
    ed_kind_puzzle: "puzzle",
    ed_kind_arena: "versus map",
    ed_now_puzzle: "a puzzle now: it joins the campaign list",
    ed_now_arena: "a versus map now: it joins the map list",
    ed_arena_ok: "a map for {n} players - crab holes: {h}",
    ed_arena_needs_seats: "castles for {n} so far - a map needs one per player",
    ed_arena_no_crabs: "no crabs and no holes: nothing to fight over",
    match_bot: "bot",
    door_title_table: "BOTS FOR THIS TABLE",
    door_title_join: "JOIN {b} AS A BOT",
    door_start_with: "Start your bot with:",
    door_waiting: "waiting for its bot...",
    door_connected: "{n} - round trip {ms} ms",
    door_joining: "joining {b}...",
    door_prompt: "C: copy | L: open to the LAN | Esc: back",
    door_prompt_lan: "C: copy | L: this machine only | Esc: back",
    door_copied: "copied: {s}",
    door_could_not_listen: "could not start the bot connection: {e}",
    bot_owned: "{bot} ({o})",
    bot_unowned: "{bot}",
    bot_stand_in: "{p} dropped - the AI is standing in",
    bot_back: "{p} is back",
    lobby_bots_dial: "Bots",
    lobby_bots_values: ["welcome", "not here"],
    lobby_no_bots: "that game is not taking bots",
    lobby_bots_tag: " (bots welcome)",
    lobby_kick_ask: "Ask who to leave? press their number | Esc: never mind",
    lobby_kicked_feed: "{p} was asked to leave",
    lobby_kicked_you: "the host asked you to leave that game",
    lobby_host_closed: "the host closed that game",
    replay_drop_hint: "drop a replay file on the window to watch it",
    replay_drop_bad: "that file is not a replay this build can play: {e}",
};