pinch-points 0.9.0

A fast, kid-friendly crab-routing game: route streams of crabs into your sandcastle before time runs out
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
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
//! 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",
        "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",
        "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 code | 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",
        "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",
    ],
    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",
        "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 new stage of yours with a spare signpost",
        "clear 10 stages first try",
        "clear a new 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",
    ],
    stats_footer: "scored {banked} · golden {golden} · wins {wins}/{rounds} · puzzles {puzzles}",
    daily_best: "Daily challenge best today: {n}",
    crab_notes: [
        "",
        "fast",
        "slow",
        "lure! (then {s} s rest)",
        "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_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 | D: delete | Esc: menu",
    replays_empty: "No rounds kept yet - keep one from a versus round's results card",
    replays_heading: "KEPT ROUNDS",
    replay_speed: "x{n}  (S: x{next})",
    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 | C: co-op | Esc: menu",
    prompt_stages_custom: "arrow keys: choose | Enter: play | E: edit | F3: copy code | C: co-op | Esc: menu",
    stage_coop_on: "Co-op on: {p2} plays the second cursor",
    stage_coop: "Co-op",
    stage_needs_two: "A co-op stage needs two players: C seats {p2}, then Enter",
    stage_open_hands: "two players - arrows: {p1} {a} + {p2} {b}",
    hands_count: "Arrows: {p1} {a}/{b}, {p2} {c}/{d}",
    coop_rule: "Your arrows turn only crabs with claws in your colour: {p1} left, {p2} right",
    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",
    stage_locked_coop: "locked - clear co-op 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: reset",
    prompt_won_goal: "Stage cleared! Enter: next level | R: reset",
    prompt_lost: "Some crabs never made it. Enter: try again",
    prompt_lost_goal: "Out of time. 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: P2 upwards, P1 last",
    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_rematch: "R: rematch",
    prompt_rematch_series: "R: restart series",
    prompt_rematch_series_confirm: "R again: restart series",
    prompt_keep_replay: "G: keep replay",
    replay_kept: "replay kept",
    prompt_esc_menu: "Esc: menu",
    prompt_achievements: "W/S: scroll | Esc: menu",
    prompt_mute: "M: mute",
    replay_draw: "draw",
    replay_tag_ai_level: " (AI {level})",
    replay_tag_bot: " (bot)",
    replay_players: "{n} players",
    replay_points: "{n} pts",
    pause_title: "PAUSED",
    pause_menu_title: "MENU",
    pause_continue: "Continue",
    pause_restart: "Restart round",
    pause_to_menu: "Back to menu",
    pause_quit: "Quit game",
    quit_ask: "Quit the 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_setup_game: "W/S: select | A/D: adjust | Enter: next | Esc: back",
    prompt_setup_map: "WASD: choose | Enter: next | Esc: back",
    prompt_setup_players: "W/S: select | A/D: change | Tab: rename | Enter: start the match | Esc: back",
    prompt_setup_players_p1: "W/S: select | Tab: rename | Enter: start the match | Esc: back",
    prompt_setup_partners: "P: partners",
    prompt_typing: "Enter: confirm | Esc: cancel",
    prompt_quitting: "Esc: back | Enter: quit",
    prompt_typing_keep: "Enter: confirm",
    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 castle but yours",
        "every crab and gull speeds up, and the holes open twice as often",
        "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 score double, left claws cost",
    ],
    event_blurb_swap_kept: "every castle but {p}'s trades owners",
    ann_spun_by: "{p} scored a sparkling crab",
    event_left: "{s} s left",
    ann_lure: "LURE!",
    ann_lure_sub: "for {n} 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",
    haul_one: "1 crab 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_stolen: "Most stolen: {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",
    goal_missed: "OUT OF TIME",
    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",
    set_palette: "Player colours",
    set_fullscreen: "Fullscreen",
    set_ui_scale: "UI scale",
    set_reduced_motion: "Reduced motion",
    set_antialiasing: "Anti-aliasing",
    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",
    ctl_reset_confirm: "{k} again to reset every key",
    bind_actions: [
        "Move up",
        "Move down",
        "Move left",
        "Move right",
        "Place up",
        "Place down",
        "Place left",
        "Place right",
        "Remove arrow",
        "Clear all arrows",
    ],
    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 players)",
    ],
    team_mode_names: ["free-for-all", "pairs", "trios"],
    team_mode_waits: "{m} (free-for-all until {n})",
    match_players: "Players",
    match_ai: "AI opponents",
    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!",
    tip_raid: "Steer a gull into a rival's castle: a raid on {a} takes {b}",
    tip_fade: "Your arrows fade {n} seconds after you place them",
    tip_cap: "Place more than {n} arrows and your oldest goes: it shakes first",
    tip_lure: "Score a molting crab: every loose crab runs to you for {n} s",
    tip_golden: "A golden crab is worth {n} points",
    tip_events: "Score a sparkling crab to start a random event",
    match_mode: "Mode",
    match_name_empty: "- (Tab to name)",
    match_name_typing: "({k} to keep)",
    setup_steps: ["GAME", "MAP", "PLAYERS"],
    setup_players_aside: "people and AI together",
    setup_ai_aside: "for every AI seat",
    setup_scoring: "Scoring",
    setup_series: "Series",
    setup_game_notes: [
        "{a} to {b} seats. Who plays each one (keyboard, controller or AI) is set on the Players step, where friends join.",
        "How well every AI seat plays. The Players step can still change a single seat.",
        "How long each round lasts.",
        "How many arrows each player may have standing: placing one more takes the oldest away.",
        "How often gulls swoop in. Steer one into a rival's castle to raid it.",
        "Every player for themselves, or in teams. Teams play only when the table splits evenly.",
        "One round, or a series of rounds on a new map each time.",
    ],
    setup_next: "Next: the map",
    setup_badges: ["fixed", "new each round", "yours", "picked at start"],
    setup_map_names: [
        "Classic arena",
        "Small",
        "Classic size",
        "Large",
        "XL",
        "Open ocean",
        "Random",
    ],
    setup_map_sub: "{w}x{h} · {a}-{b} players",
    setup_map_sub_wrap: "{w}x{h} · no edges · {a}-{b}",
    setup_map_sub_exact: "{w}x{h} · {n} players",
    setup_random_sub: "any map that seats {n}",
    setup_local_only: "this machine only",
    setup_seats_not: "seats {s}, not {n}",
    setup_seats_none: "a castle is missing",
    setup_map_about: [
        "the handmade arena every new player starts on.",
        "a new beach every round, small and crowded.",
        "a new beach every round, the classic arena's size.",
        "a new beach every round, with room for everyone.",
        "the biggest beach, a long walk between castles.",
        "a beach with no edges: a crab walking off one side comes back on the other.",
    ],
    setup_versus_maps: [
        "The Gates",
        "The Moat",
        "Log Jam",
        "Three Lanes",
        "Round Table",
        "Round the World",
        "Duel",
        "The Fountain",
        "Four Doors",
        "Gull Road",
        "Back to Back",
    ],
    setup_versus_about: [
        "each castle hides in kelp with one gate, the only way a gull walks in.",
        "each castle sits in a pond with a dry jetty, the fast way in.",
        "every hole feeds a log that deals its crabs to two castles in turn.",
        "two sea walls cut the beach into three lanes joined by four gaps.",
        "six castles, a wall behind each corner, so the edge ones win as often.",
        "no edges: three strips of beach, every castle a copy of the others.",
        "for two: each hole drops its crabs on a rock that sends them either way.",
        "all four holes sit in a pond in the middle; crabs wade out slowly.",
        "for three: each castle stands in walls with a door on every side.",
        "for five: kelp keeps the gulls on a road; two gates lead to each castle.",
        "no edges: castles stand back to back in pairs, a wall between them.",
    ],
    setup_surprise: "Surprise",
    setup_surprise_sub: "a new map every round",
    setup_surprise_note: "a new generated map every round: maze, logs, islands, lagoon, or lanes up to {n} players.",
    setup_greyed_tables: "{m} is built for {s} players: set Players to one of those on the Game step.",
    setup_custom_about: "a map you built in the editor.",
    setup_sections: ["Built-in maps", "Your maps", "Random & Surprise"],
    setup_make_one: "Make your own",
    setup_make_one_sub: "none saved yet",
    setup_make_one_note: "Pick {e} on the menu, then F4 opens {l}: start a versus map there. Once saved, it shows up here.",
    setup_local_note: "Too big to send, so it plays on this machine only.",
    setup_seats_range: "Seats {a} to {b}.",
    setup_seats_exact: "Seats {n}.",
    setup_random_note: "one of the maps that seats {n}, drawn again every round.",
    setup_greyed_note: "{m} seats {s}: set Players to {s} or fewer on the Game step to play it.",
    setup_map_moved: "{old} does not seat {n}, so the map moved to {new}.",
    setup_columns: ["SEAT", "NAME", "PLAYED BY"],
    setup_by_keys: "Keyboard: {p} keys",
    setup_by_pad: "Controller {n}",
    setup_by_open: "Press Start on a controller to join",
    setup_by_open_keys: "A {p2} key, or Start on a controller",
    setup_by_ai: "AI: {l}",
    setup_by_bot: "Bot (network)",
    setup_status: ["ready", "joined", "AI at start"],
    setup_seat_hint: "{k} on a seat: a person, the AI at a level, or a bot",
    setup_partner_hint: "{k}: pick {p}'s partner",
    setup_teammates_hint: "{k}: pick {p}'s teammates",
    setup_pinned_keys: "{p} plays on the keyboard, so their seat stays put",
    setup_pinned_pad: "{p} plays controller {n} set in Settings, so their seat stays put",
    setup_kept_keys: "{p}'s seat is kept for the keyboard, so it stays put",
    setup_kept_pad: "{p}'s seat is kept for controller {n} set in Settings, so it stays put",
    setup_open_line: "{list} open: the AI ({l}) plays there unless a friend joins",
    setup_join_hint: "Start on a controller seats a friend",
    setup_start: "Start match ({k})",
    key_enter: "Enter",
    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",
    tour_next_map: "Enter: pick the next map",
    log_raid: "{p} raided! -{n}",
    log_raid_by: "{a}'s gull raided {p}! -{n}",
    log_raid_own: "{p} steered a gull into their own castle! -{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_event_by: "{p} starts {e}",
    log_lure_running: "{p}: a lure is already on",
    log_lure_resting: "{p}: lure 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",
    map_skips_castle: "every map of yours skips a castle",
    gull_names: ["calm", "normal", "frenzy"],
    round_names: ["1 minute", "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 - {k} to pick the map (up to 5)",
    lobby_rivals_many: "{n} players joined - {k} to pick the map (up to 5)",
    lobby_rivals_none: "no players yet - {k} to pick the map",
    lobby_ai_seats: " + {n} AI",
    lobby_watchers: " ({n} watching)",
    lobby_watch_armed: "watching mode: Enter (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 {s} 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_queued_picking: "The host is picking the next map - you watch that round, then play",
    lobby_beach_full: "That game is full",
    lobby_no_room: "that game has no room left, not even to watch",
    lobby_no_chair: "the table is full - you watch until a chair frees up",
    lobby_no_chair_prompt: "No chair yet - you watch until one frees up | T: talk | Esc: menu",
    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: pick the map, start (up to 5 rivals) | Esc: menu",
    lobby_partner_prompt: "1-{n}: pick partners for that seat number | P/Esc: done",
    host_map_title: "Pick the map for {n} players",
    host_map_greyed: "{m} seats {s}, and this table has {n}.",
    host_map_too_big: "{m} is too big to send, so it cannot be played online.",
    lobby_map_at_start: "picked at start",
    lobby_host_picking: "the host is picking the map",
    lobby_pick_called_off: "A player left, so the start was called off.",
    lobby_pick_called_off_bot: "A bot left, so the start was called off.",
    lobby_pick_prompt: "WASD: choose | Enter: start on this map | Esc: back to the lobby",
    lobby_pick_prompt_no_pick: "WASD: choose | Esc: back to the lobby",
    series_pick_prompt: "WASD: choose | Enter: next round on this map | Esc: back to the results",
    series_pick_prompt_no_pick: "WASD: choose | Esc: back to the results",
    host_picking_next: "the host is picking the next map",
    lineup_title: "Get ready",
    lineup_watching: "You are watching",
    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 | {walls} walls | Space paint, hold to drag | {turn} turn | {undo} undo | F1 name | {help} controls | {check} check | F2 save F3 code F4 my levels | Enter test",
    ed_brushes: [
        "Eraser", "Rock", "Castle", "Hole", "Log", "Weed", "Pool", "Crab", "Gull",
    ],
    ed_under: "under: {t}",
    ed_next: "next: {t}",
    ed_sand: "Sand",
    ed_crab_kinds: [
        "crab",
        "small crab",
        "giant crab",
        "molting crab",
        "golden crab",
        "sparkling crab",
    ],
    ed_claws: ["left claw", "right claw"],
    ed_crab_desc: "{k}, {c}\u{a0}{d}",
    ed_set_size: "Size",
    ed_set_seats: "Seats",
    ed_set_balance: "Balance",
    ed_balances: ["even", "uneven", "cut off"],
    ed_set_posts: "Signposts",
    ed_set_players: "Players",
    ed_set_goal: "Goal",
    ed_set_time: "Time",
    ed_set_gulls: "Gulls",
    ed_set_holes: "Holes",
    ed_set_wrap: "Wrap",
    ed_set_mirror: "Mirror",
    ed_mirrors: ["off", "left-right", "top-bottom", "both ways", "half turn"],
    ed_secs: "{s} s",
    ed_every: "every {s} s",
    ed_goal_all: "all crabs",
    ed_goal_survive: "lose none",
    ed_goal_golden: "golden crab",
    ed_goal_bank: "score {n}",
    ed_settings_keys: "{next} next row | +/- change",
    ed_playtest_prompt: "{place} place | {remove} remove | R restart | Esc end test",
    ed_test_setup: "{place} place | {remove} remove | Enter run | Esc end test",
    ed_test_setup_coop: "{p1} WASD + arrows | {p2} IJKL + numpad | Enter run | Esc end test",
    ed_test_setup_coop_custom: "your keys (Settings) | Enter run | Esc end test",
    ed_test_retry: "R retry | Esc end test",
    ed_arrow_keys: "arrow keys",
    ed_space_key: "Space",
    ed_solvable: "solvable with {n} of {g} arrows: {placements}",
    ed_needs_both: "needs both players",
    ed_one_alone: "one player can win it alone",
    ed_solvable_free: "solvable with no arrows at all",
    ed_not_solvable: "NOT solvable - arrows granted: {n}",
    ed_not_solvable_needs: "NOT solvable with {n} arrows - it needs {m}",
    ed_solver_gave_up: "gave up - too big to check. Try fewer arrows.",
    ed_validating: "validating...",
    ed_already_validating: "already validating...",
    ed_resized: "resized to {w}x{h}",
    ed_resized_cut: "resized to {w}x{h} - the edges were cut off, undo brings them back",
    ed_mirror_line: "a castle, or a hole facing across, cannot stand on the mirror line",
    ed_mirror_across: "a log, or a crab or gull facing across, cannot stand on the mirror line",
    ed_mirror_seats: "with both mirrors, {p} and {q} castles go on the middle column only",
    ed_mirror_moved: "mirror off: the middle moved half a tile",
    ed_undone: "undone",
    ed_redone: "redone",
    ed_no_undo: "nothing to undo",
    ed_no_redo: "nothing to redo",
    ed_default_name: "My Map",
    ed_naming: "name it, then Enter",
    ed_saved_to: "saved to {file}",
    ed_save_failed: "save failed: {e}",
    ed_leave_confirm: "Esc again to leave unsaved - this one goes",
    ed_open_confirm: "Enter again to open it - this one goes",
    ed_levels_title: "My levels",
    ed_levels_new: "New level",
    ed_levels_paste: "Paste a code",
    ed_template_puzzle: "Starter puzzle",
    ed_template_beach: "Versus map for {n}, mirrored",
    ed_levels_keys: "W/S choose | Enter open | C copy code | D delete | Esc close",
    ed_help_title: "Controls",
    ed_help_heads: ["Keyboard", "Pad"],
    ed_help_sections: ["Building", "Playtest", "Stage list, your levels"],
    ed_help_brushes: "paint with a brush",
    ed_card_close: "any key: close",
    ed_tips_title: "Tips",
    ed_tips: [
        "Pick a brush on the right and paint the sand; hold it down to paint a line.",
        "The card on the left sets up the level: pick a row, then change it.",
        "{mirror} paints every copy at once, for fair versus maps.",
        "Test your level any time; a check says whether a puzzle can be won.",
        "{help} shows every key and button.",
    ],
    ed_opened: "opened {name}",
    ed_level_deleted: "deleted {name}",
    level_card_keys: "Enter: play | E: edit | S: save | Esc: back",
    level_card_taken: "\"{name}\" is already saved - S again replaces it",
    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_fresh_sand: "fresh sand",
    ed_back: "back to the sand",
    ed_wrap_on: "open ocean: edges wrap around",
    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_skips_seat: "player {n} has no castle - no table can sit at this map",
    ed_arena_no_crabs: "no crabs and no holes: nothing to fight over",
    ed_fair_uneven: "uneven: {p} is {n} steps from the holes, {q} is {m}",
    ed_fair_cut_off: "{p} cannot be reached from every hole",
    ed_puzzle_no_castle: "no castle: no crab can be banked",
    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_away: "{n} - away, may come back",
    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_kick_ask: "Ask who to leave? press their number | Esc: never mind",
    lobby_kick_more: "Tab: more ({p}/{n})",
    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}",
    replay_newer: "this replay needs a newer version of the game",
    replay_delete_confirm: "{k} again to delete {r}",
    replay_deleted: "round deleted: {r}",
    replay_delete_failed: "could not delete {r}: {e}",
    ed_save_taken: "\"{name}\" is already in that file - F2 again replaces it",
    ed_failed: "something went wrong - your level is still here",
    lobby_discovery_unavailable: "cannot look for games here: {e}",
    pad: super::PadTr {
        dpad: "D-pad",
        right_stick: "right stick",
        bind: "{b}: {a}",
        steam_keyboard: "Steam + X: keyboard",
        choose: "choose",
        choose_adjust: "choose/adjust",
        confirm: "confirm",
        next: "next",
        play: "play",
        back: "back",
        menu: "menu",
        save_back: "save and back",
        paste_round: "paste a code",
        mute: "mute",
        rebind: "rebind",
        defaults: "defaults",
        start_match: "start the match",
        join: "join",
        partners: "partners",
        rename: "rename",
        coop: "co-op",
        watch: "watch",
        copy_code: "copy code",
        paste_code: "paste code",
        delete: "delete",
        scroll: "scroll",
        not_now: "not now",
        go_on: "continue",
        cancel: "cancel",
        next_phrase: "next phrase",
        copy: "copy",
        lan_open: "open to the LAN",
        lan_close: "this machine only",
        pick: "pick",
        as_bot: "as a bot",
        host: "host",
        by_address: "by address",
        play_instead: "play instead",
        set_round: "set the round",
        talk: "talk",
        ask_to_leave: "ask to leave",
        more: "more",
        never_mind: "never mind",
        moves: "move",
        place: "place",
        remove: "remove",
        clear: "clear",
        start: "start",
        run: "run",
        level: "level",
        hint: "hint",
        reset: "reset",
        pause: "pause",
        next_level: "next level",
        try_again: "try again",
        stages: "stages",
        back_to_menu: "back to the menu",
        speed: "speed",
        vote: "vote for an event",
        pick_winner: "pick the winner",
        close: "close",
        lobby: "lobby",
        next_round: "next round",
        pick_map: "pick the map",
        rematch: "rematch",
        rematch_series: "restart series",
        rematch_series_confirm: "again: restart series",
        keep_replay: "keep replay",
        paint: "paint",
        brush: "brush",
        walls: "walls",
        setting: "setting -/+",
        turn: "turn",
        undo: "undo/redo",
        open: "open",
        my_levels: "my levels",
        edit: "edit",
        level_card_taken: "\"{name}\" is already saved - {b} again replaces it",
        check: "check",
        test: "test",
        hold_more: "hold for more",
        save: "save",
        name: "name",
        size: "size",
        kind: "kind",
        pick_setting: "pick setting",
        settings_card: "{b}: pick setting",
        end_test: "end test",
        help: "controls",
        quit: "quit",
        running: "Running...",
        won: "All crabs safe!",
        won_goal: "Stage cleared!",
        last_level: "That was the last one.",
        lost: "Some crabs never made it.",
        lost_goal: "Out of time.",
        no_posts: "No arrows here - this one solves itself.",
        full: "All arrows placed.",
        none_yet: "No games found yet...",
        open_games: "{n} open games",
        open_game: "1 open game",
        watch_armed: "watching mode",
        hosting: "Hosting",
        joined: "Joined - the match starts when the host launches",
        watching: "Watching - the match starts when the host launches",
        queued: "In line for the next round",
        queued_watch: "In line to watch - you join the crowd next round",
        no_chair: "No chair yet - you watch until one frees up",
        kick_who: "Ask who to leave? {p}",
        pick_open: "call the winner: {n}s",
        hint_offer: "Stuck? Press {b} for a hint.",
        hint_showing: "One arrow of a solution, dimmed. {b} again after you place it.",
        help_round: "Controller in a round:",
        help_menus: "Controller on menus:",
        leave_confirm: "{b} again to leave unsaved - this one goes",
        open_confirm: "{b} again to open it - this one goes",
        save_taken: "\"{name}\" is already in that file - {b} again replaces it",
        reset_confirm: "{b} again to confirm",
        val_open: "{b} to open",
        val_reset: "{b} to reset",
        replay_speed: "x{n}  ({b}: x{next})",
    },
};