From daf94fcdb28af37e8829dc545f8637503f58ece9 Mon Sep 17 00:00:00 2001 From: coveleski Date: Sat, 4 Jan 2025 07:27:41 -0600 Subject: [PATCH 1/8] Pokemon RB: Fixing misnamed locations (#4404) --- worlds/pokemon_rb/locations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worlds/pokemon_rb/locations.py b/worlds/pokemon_rb/locations.py index 467139c39e..de9209d1d8 100644 --- a/worlds/pokemon_rb/locations.py +++ b/worlds/pokemon_rb/locations.py @@ -749,8 +749,8 @@ location_data = [ LocationData("Cinnabar Gym", "Super Nerd 2", None, rom_addresses["Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_2_ITEM"], EventFlag(372), inclusion=trainersanity), LocationData("Cinnabar Gym", "Burglar 2", None, rom_addresses["Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_3_ITEM"], EventFlag(371), inclusion=trainersanity), LocationData("Cinnabar Gym", "Super Nerd 3", None, rom_addresses["Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_4_ITEM"], EventFlag(370), inclusion=trainersanity), - LocationData("Cinnabar Gym", "Super Nerd 4", None, rom_addresses["Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_5_ITEM"], EventFlag(369), inclusion=trainersanity), - LocationData("Cinnabar Gym", "Super Nerd 5", None, rom_addresses["Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_6_ITEM"], EventFlag(368), inclusion=trainersanity), + LocationData("Cinnabar Gym", "Burglar 3", None, rom_addresses["Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_5_ITEM"], EventFlag(369), inclusion=trainersanity), + LocationData("Cinnabar Gym", "Super Nerd 4", None, rom_addresses["Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_6_ITEM"], EventFlag(368), inclusion=trainersanity), LocationData("Celadon Prize Corner", "Item Prize 1", "TM23 Dragon Rage", rom_addresses["Prize_Item_A"], EventFlag(0x69a), inclusion=prizesanity), LocationData("Celadon Prize Corner", "Item Prize 2", "TM15 Hyper Beam", rom_addresses["Prize_Item_B"], EventFlag(0x69B), inclusion=prizesanity), From aadcb4c90322dba3f93f3af01b43d5444c3d4fc3 Mon Sep 17 00:00:00 2001 From: qwint Date: Mon, 6 Jan 2025 09:21:44 -0500 Subject: [PATCH 2/8] HK: use rich_text_options_doc to make webhost formatting look better (#4079) --- worlds/hk/Options.py | 9 ++++++++- worlds/hk/__init__.py | 6 ++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/worlds/hk/Options.py b/worlds/hk/Options.py index 0dc38e744e..d85f300f0d 100644 --- a/worlds/hk/Options.py +++ b/worlds/hk/Options.py @@ -213,6 +213,7 @@ class MaximumEssencePrice(MinimumEssencePrice): class MinimumEggPrice(Range): """The minimum rancid egg price in the range of prices that an item should cost from Jiji. Only takes effect if the EggSlotShops option is greater than 0.""" + rich_text_doc = False display_name = "Minimum Egg Price" range_start = 1 range_end = 20 @@ -222,6 +223,7 @@ class MinimumEggPrice(Range): class MaximumEggPrice(MinimumEggPrice): """The maximum rancid egg price in the range of prices that an item should cost from Jiji. Only takes effect if the EggSlotShops option is greater than 0.""" + rich_text_doc = False display_name = "Maximum Egg Price" default = 10 @@ -265,6 +267,7 @@ class RandomCharmCosts(NamedRange): Set to -1 or vanilla for vanilla costs. Set to -2 or shuffle to shuffle around the vanilla costs to different charms.""" + rich_text_doc = False display_name = "Randomize Charm Notch Costs" range_start = 0 range_end = 240 @@ -437,6 +440,7 @@ class Goal(Choice): class GrubHuntGoal(NamedRange): """The amount of grubs required to finish Grub Hunt. On 'All' any grubs from item links replacements etc. will be counted""" + rich_text_doc = False display_name = "Grub Hunt Goal" range_start = 1 range_end = 46 @@ -446,7 +450,7 @@ class GrubHuntGoal(NamedRange): class WhitePalace(Choice): """ - Whether or not to include White Palace or not. Note: Even if excluded, the King Fragment check may still be + Whether or not to include White Palace or not. Note: Even if excluded, the King Fragment check may still be required if charms are vanilla. """ display_name = "White Palace" @@ -483,6 +487,7 @@ class DeathLinkShade(Choice): ** Self-death shade behavior is not changed; if a self-death normally creates a shade in vanilla, it will override your existing shade, if any. """ + rich_text_doc = False option_vanilla = 0 option_shadeless = 1 option_shade = 2 @@ -497,6 +502,7 @@ class DeathLinkBreaksFragileCharms(Toggle): ** Self-death fragile charm behavior is not changed; if a self-death normally breaks fragile charms in vanilla, it will continue to do so. """ + rich_text_doc = False display_name = "Deathlink Breaks Fragile Charms" @@ -515,6 +521,7 @@ class CostSanity(Choice): These costs can be in Geo (except Grubfather, Seer and Eggshop), Grubs, Charms, Essence and/or Rancid Eggs """ + rich_text_doc = False option_off = 0 alias_no = 0 option_on = 1 diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 81d939dcf1..bcd904521d 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -134,7 +134,9 @@ shop_cost_types: typing.Dict[str, typing.Tuple[str, ...]] = { class HKWeb(WebWorld): - setup_en = Tutorial( + rich_text_options_doc = True + + setup_en = Tutorial( "Mod Setup and Use Guide", "A guide to playing Hollow Knight with Archipelago.", "English", @@ -143,7 +145,7 @@ class HKWeb(WebWorld): ["Ijwu"] ) - setup_pt_br = Tutorial( + setup_pt_br = Tutorial( setup_en.tutorial_name, setup_en.description, "Português Brasileiro", From 7d506990f57d22766ff07eadd0dce9bceba3abc6 Mon Sep 17 00:00:00 2001 From: qwint Date: Mon, 6 Jan 2025 09:35:12 -0500 Subject: [PATCH 3/8] HK: add location counts to option descriptions (#4083) --- worlds/hk/Options.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/worlds/hk/Options.py b/worlds/hk/Options.py index d85f300f0d..53dda96e2b 100644 --- a/worlds/hk/Options.py +++ b/worlds/hk/Options.py @@ -132,7 +132,13 @@ splitter_pattern = re.compile(r'(? Date: Mon, 6 Jan 2025 09:35:37 -0500 Subject: [PATCH 4/8] Core: add docstrings for launcher components (#4148) Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- worlds/LauncherComponents.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/worlds/LauncherComponents.py b/worlds/LauncherComponents.py index 7f178f1739..d1b274c19a 100644 --- a/worlds/LauncherComponents.py +++ b/worlds/LauncherComponents.py @@ -18,16 +18,42 @@ class Type(Enum): class Component: + """ + A Component represents a process launchable by Archipelago Launcher, either by a User action in the GUI, + by resolving an archipelago://user:pass@host:port link from the WebHost, by resolving a patch file's metadata, + or by using a component name arg while running the Launcher in CLI i.e. `ArchipelagoLauncher.exe "Text Client"` + + Expected to be appended to LauncherComponents.component list to be used. + """ display_name: str + """Used as the GUI button label and the component name in the CLI args""" type: Type + """ + Enum "Type" classification of component intent, for filtering in the Launcher GUI + If not set in the constructor, it will be inferred by display_name + """ script_name: Optional[str] + """Recommended to use func instead; Name of file to run when the component is called""" frozen_name: Optional[str] + """Recommended to use func instead; Name of the frozen executable file for this component""" icon: str # just the name, no suffix + """Lookup ID for the icon path in LauncherComponents.icon_paths""" cli: bool + """Bool to control if the component gets launched in an appropriate Terminal for the OS""" func: Optional[Callable] + """ + Function that gets called when the component gets launched + Any arg besides the component name arg is passed into the func as well, so handling *args is suggested + """ file_identifier: Optional[Callable[[str], bool]] + """ + Function that is run against patch file arg to identify which component is appropriate to launch + If the function is an Instance of SuffixIdentifier the suffixes will also be valid for the Open Patch component + """ game_name: Optional[str] + """Game name to identify component when handling launch links from WebHost""" supports_uri: Optional[bool] + """Bool to identify if a component supports being launched by launch links from WebHost""" def __init__(self, display_name: str, script_name: Optional[str] = None, frozen_name: Optional[str] = None, cli: bool = False, icon: str = 'icon', component_type: Optional[Type] = None, From 7c89a83d19158a3de47692ea311aecce2667bb72 Mon Sep 17 00:00:00 2001 From: eudaimonistic <94811100+eudaimonistic@users.noreply.github.com> Date: Mon, 6 Jan 2025 09:42:18 -0500 Subject: [PATCH 5/8] Docs: Clarify !alias commands in commands_en.md (#4426) Co-authored-by: Aaron Wagener --- worlds/generic/docs/commands_en.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/worlds/generic/docs/commands_en.md b/worlds/generic/docs/commands_en.md index 317f724109..3848bb4c50 100644 --- a/worlds/generic/docs/commands_en.md +++ b/worlds/generic/docs/commands_en.md @@ -27,6 +27,7 @@ including the exclamation point. - `!countdown ` Starts a countdown using the given seconds value. Useful for synchronizing starts. Defaults to 10 seconds if no argument is provided. - `!alias ` Sets your alias, which allows you to use commands with the alias rather than your provided name. + `!alias` on its own will reset the alias to the player's original name. - `!admin ` Executes a command as if you typed it into the server console. Remote administration must be enabled. @@ -65,6 +66,7 @@ including the exclamation point. argument is provided. - `/option