From 7e03a876085c8a2e3f76192634bc2bafcb632406 Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:18:58 -0400 Subject: [PATCH] DOCS: Option Visibility and removing SpecialRange (#3889) * Update options api.md * Update options api.md * Update docs/options api.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> --------- Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> --- docs/options api.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/options api.md b/docs/options api.md index 7e479809..d48a56d6 100644 --- a/docs/options api.md +++ b/docs/options api.md @@ -24,7 +24,7 @@ display as `Value1` on the webhost. files, and both will resolve as `value1`. This should be used when changing options around, i.e. changing a Toggle to a Choice, and defining `alias_true = option_full`. - All options with a fixed set of possible values (i.e. those which inherit from `Toggle`, `(Text)Choice` or -`(Named/Special)Range`) support `random` as a generic option. `random` chooses from any of the available values for that +`(Named)Range`) support `random` as a generic option. `random` chooses from any of the available values for that option, and is reserved by AP. You can set this as your default value, but you cannot define your own `option_random`. However, you can override `from_text` and handle `text == "random"` to customize its behavior or implement it for additional option types. @@ -129,6 +129,23 @@ class Difficulty(Choice): default = 1 ``` +### Option Visibility +Every option has a Visibility IntFlag, defaulting to `all` (`0b1111`). This lets you choose where the option will be +displayed. This only impacts where options are displayed, not how they can be used. Hidden options are still valid +options in a yaml. The flags are as follows: +* `none` (`0b0000`): This option is not shown anywhere +* `template` (`0b0001`): This option shows up in template yamls +* `simple_ui` (`0b0010`): This option shows up on the options page +* `complex_ui` (`0b0100`): This option shows up on the advanced/weighted options page +* `spoiler` (`0b1000`): This option shows up in spoiler logs + +```python +from Options import Choice, Visibility + +class HiddenChoiceOption(Choice): + visibility = Visibility.none +``` + ### Option Groups Options may be categorized into groups for display on the WebHost. Option groups are displayed in the order specified by your world on the player-options and weighted-options pages. In the generated template files, there will be a comment