diff --git a/WebHostLib/options.py b/WebHostLib/options.py index 2d908ca9..db1e57fd 100644 --- a/WebHostLib/options.py +++ b/WebHostLib/options.py @@ -31,9 +31,12 @@ def create(): data.update({ option.range_start: 0, option.range_end: 0, - "random": 0, "random-low": 0, "random-high": 0, option.default: 50 }) + for sub_option in {"random", "random-low", "random-high"}: + if sub_option != option.default: + data[sub_option] = 0 + notes = { special: "minimum value without special meaning", option.range_start: "minimum value", @@ -49,11 +52,6 @@ def create(): return data, notes - def default_converter(default_value): - if isinstance(default_value, (set, frozenset)): - return list(default_value) - return default_value - def get_html_doc(option_type: type(Options.Option)) -> str: if not option_type.__doc__: return "Please document me!" @@ -79,7 +77,7 @@ def create(): res = Template(file_data).render( options=all_options, __version__=__version__, game=game_name, yaml_dump=yaml.dump, - dictify_range=dictify_range, default_converter=default_converter, + dictify_range=dictify_range, ) del file_data diff --git a/WebHostLib/templates/options.yaml b/WebHostLib/templates/options.yaml index 11009106..3c21ecfb 100644 --- a/WebHostLib/templates/options.yaml +++ b/WebHostLib/templates/options.yaml @@ -43,14 +43,18 @@ requires: {%- if option.range_start is defined and option.range_start is number %} {{- range_option(option) -}} {%- elif option.options -%} - {%- for suboption_option_id, sub_option_name in option.name_lookup.items() %} + {%- for suboption_option_id, sub_option_name in option.name_lookup.items() %} {{ sub_option_name }}: {% if suboption_option_id == option.default %}50{% else %}0{% endif %} - {%- endfor -%} - {% if option.default == "random" %} - random: 50 - {%- endif -%} + {%- endfor -%} + {% if option.name_lookup[option.default] not in option.options %} + {{ option.default }}: 50 + {%- endif -%} + {%- elif option.default is string %} + {{ option.default }}: 50 + {%- elif option.default is iterable and option.default is not mapping %} + {{ option.default | list }} {%- else %} - {{ yaml_dump(default_converter(option.default)) | indent(4, first=False) }} - {%- endif -%} + {{ yaml_dump(option.default) | indent(4, first=false) }} + {%- endif -%} {%- endfor %} {% if not options %}{}{% endif %}