From 901201f675794d76d8f08232e1799246f7c9ea50 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Thu, 28 Dec 2023 08:21:54 -0500 Subject: [PATCH] Noita: Don't allow impossible slot names (#2608) * Noita: Add note about allowable slot names * Update character list * Update init to raise an exception if a yaml has bad characters * Slightly adjust exception message --- worlds/noita/__init__.py | 4 ++++ worlds/noita/docs/setup_en.md | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/worlds/noita/__init__.py b/worlds/noita/__init__.py index 499d202a..792b90e3 100644 --- a/worlds/noita/__init__.py +++ b/worlds/noita/__init__.py @@ -35,6 +35,10 @@ class NoitaWorld(World): web = NoitaWeb() + def generate_early(self): + if not self.multiworld.get_player_name(self.player).isascii(): + raise Exception("Noita yaml's slot name has invalid character(s).") + # Returned items will be sent over to the client def fill_slot_data(self): return {name: getattr(self.multiworld, name)[self.player].value for name in self.option_definitions} diff --git a/worlds/noita/docs/setup_en.md b/worlds/noita/docs/setup_en.md index bd6a1514..b67e840b 100644 --- a/worlds/noita/docs/setup_en.md +++ b/worlds/noita/docs/setup_en.md @@ -40,6 +40,8 @@ or try restarting your game. ### What is a YAML and why do I need one? You can see the [basic multiworld setup guide](/tutorial/Archipelago/setup/en) here on the Archipelago website to learn about why Archipelago uses YAML files and what they're for. +Please note that Noita only allows you to type certain characters for your slot name. +These characters are: `` !#$%&'()+,-.0123456789;=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{}~<>|\/`` ### Where do I get a YAML? You can use the [game settings page for Noita](/games/Noita/player-settings) here on the Archipelago website to @@ -54,4 +56,4 @@ Place the unzipped pack in the `packs` folder. Then, open Poptracker and open th Click on the "AP" symbol at the top, then enter the desired address, slot name, and password. That's all you need for it. It will provide you with a quick reference to see which checks you've done and -which checks you still have left. \ No newline at end of file +which checks you still have left.