Skip to content

Commit 518c0c9

Browse files
LegendaryLinuxsflavelle
authored andcommitted
WebHost: weighted-options bugfixes (ArchipelagoMW#3448)
* Fix improper css for word-break on player-options page * Add default handling to weighted-options types * Remove random-low/mid/high from Toggle, Choice, and TextChoice, * Port key sorting for OptionList and OptionSet from player-options to weighted-options * Ensure Choice and TextChoice values are set properly * Remove debug line 🤦‍♂️
1 parent 27e3ef7 commit 518c0c9

File tree

3 files changed

+23
-16
lines changed

3 files changed

+23
-16
lines changed

WebHostLib/static/styles/playerOptions/playerOptions.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

WebHostLib/static/styles/playerOptions/playerOptions.scss

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ html{
1616
border-radius: 8px;
1717
padding: 1rem;
1818
color: #eeffeb;
19-
word-break: break-all;
19+
word-break: break-word;
2020

2121
#player-options-header{
2222
h1{

WebHostLib/templates/weightedOptions/macros.html

+21-14
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{% macro Toggle(option_name, option) %}
22
<table>
33
<tbody>
4-
{{ RangeRow(option_name, option, "No", "false") }}
5-
{{ RangeRow(option_name, option, "Yes", "true") }}
6-
{{ RandomRows(option_name, option) }}
4+
{{ RangeRow(option_name, option, "No", "false", False, "true" if option.default else "false") }}
5+
{{ RangeRow(option_name, option, "Yes", "true", False, "true" if option.default else "false") }}
6+
{{ RandomRow(option_name, option) }}
77
</tbody>
88
</table>
99
{% endmacro %}
@@ -18,10 +18,10 @@
1818
<tbody>
1919
{% for id, name in option.name_lookup.items() %}
2020
{% if name != 'random' %}
21-
{{ RangeRow(option_name, option, option.get_option_name(id), name) }}
21+
{{ RangeRow(option_name, option, option.get_option_name(id), name, False, name if option.get_option_name(option.default)|lower == name|lower else None) }}
2222
{% endif %}
2323
{% endfor %}
24-
{{ RandomRows(option_name, option) }}
24+
{{ RandomRow(option_name, option) }}
2525
</tbody>
2626
</table>
2727
{% endmacro %}
@@ -72,7 +72,9 @@
7272
</div>
7373
<table>
7474
<tbody>
75-
<!-- This table to be filled by JS -->
75+
{% if option.default %}
76+
{{ RangeRow(option_name, option, option.default, option.default) }}
77+
{% endif %}
7678
</tbody>
7779
</table>
7880
</div>
@@ -90,10 +92,10 @@
9092
<tbody>
9193
{% for id, name in option.name_lookup.items() %}
9294
{% if name != 'random' %}
93-
{{ RangeRow(option_name, option, option.get_option_name(id), name) }}
95+
{{ RangeRow(option_name, option, option.get_option_name(id), name, False, name if option.get_option_name(option.default)|lower == name else None) }}
9496
{% endif %}
9597
{% endfor %}
96-
{{ RandomRows(option_name, option) }}
98+
{{ RandomRow(option_name, option) }}
9799
</tbody>
98100
</table>
99101
{% endmacro %}
@@ -112,7 +114,7 @@
112114
type="number"
113115
id="{{ option_name }}-{{ item_name }}-qty"
114116
name="{{ option_name }}||{{ item_name }}"
115-
value="0"
117+
value="{{ option.default[item_name] if item_name in option.default else "0" }}"
116118
/>
117119
</div>
118120
{% endfor %}
@@ -121,13 +123,14 @@
121123

122124
{% macro OptionList(option_name, option) %}
123125
<div class="list-container">
124-
{% for key in option.valid_keys|sort %}
126+
{% for key in (option.valid_keys if option.valid_keys is ordered else option.valid_keys|sort) %}
125127
<div class="list-entry">
126128
<input
127129
type="checkbox"
128130
id="{{ option_name }}-{{ key }}"
129131
name="{{ option_name }}||{{ key }}"
130132
value="1"
133+
checked="{{ "checked" if key in option.default else "" }}"
131134
/>
132135
<label for="{{ option_name }}-{{ key }}">
133136
{{ key }}
@@ -183,7 +186,7 @@
183186

184187
{% macro OptionSet(option_name, option) %}
185188
<div class="set-container">
186-
{% for key in option.valid_keys|sort %}
189+
{% for key in (option.valid_keys if option.valid_keys is ordered else option.valid_keys|sort) %}
187190
<div class="set-entry">
188191
<input type="checkbox" id="{{ option_name }}-{{ key }}" name="{{ option_name }}||{{ key }}" value="1" {{ "checked" if key in option.default }} />
189192
<label for="{{ option_name }}-{{ key }}">{{ key }}</label>
@@ -200,13 +203,17 @@
200203
</td>
201204
{% endmacro %}
202205

206+
{% macro RandomRow(option_name, option, extra_column=False) %}
207+
{{ RangeRow(option_name, option, "Random", "random") }}
208+
{% endmacro %}
209+
203210
{% macro RandomRows(option_name, option, extra_column=False) %}
204211
{% for key, value in {"Random": "random", "Random (Low)": "random-low", "Random (Middle)": "random-middle", "Random (High)": "random-high"}.items() %}
205212
{{ RangeRow(option_name, option, key, value) }}
206213
{% endfor %}
207214
{% endmacro %}
208215

209-
{% macro RangeRow(option_name, option, display_value, value, can_delete=False) %}
216+
{% macro RangeRow(option_name, option, display_value, value, can_delete=False, default_override=None) %}
210217
<tr data-row="{{ option_name }}-{{ value }}-row" data-option-name="{{ option_name }}" data-value="{{ value }}">
211218
<td class="td-left">
212219
<label for="{{ option_name }}||{{ value }}">
@@ -220,7 +227,7 @@
220227
name="{{ option_name }}||{{ value }}"
221228
min="0"
222229
max="50"
223-
{% if option.default == value %}
230+
{% if option.default == value or default_override == value %}
224231
value="25"
225232
{% else %}
226233
value="0"
@@ -229,7 +236,7 @@
229236
</td>
230237
<td class="td-right">
231238
<span id="{{ option_name }}||{{ value }}-value">
232-
{% if option.default == value %}
239+
{% if option.default == value or default_override == value %}
233240
25
234241
{% else %}
235242
0

0 commit comments

Comments
 (0)