From 7f180a6d5a5bbfad805902eb6328bcb3866f8d29 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Fri, 21 Jul 2023 02:50:01 +0200 Subject: [PATCH] Factorio: fix multitracker ID misalignment --- .../templates/multiFactorioTracker.html | 14 ++++++---- WebHostLib/tracker.py | 28 ++++++++++++------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/WebHostLib/templates/multiFactorioTracker.html b/WebHostLib/templates/multiFactorioTracker.html index bc0a977a..e8fa7b15 100644 --- a/WebHostLib/templates/multiFactorioTracker.html +++ b/WebHostLib/templates/multiFactorioTracker.html @@ -27,12 +27,14 @@ {% endblock %} {% block custom_table_row scoped %} {% if games[player] == "Factorio" %} -{% if inventory[team][player][131161] or inventory[team][player][131281] %}✔{% endif %} -{% if inventory[team][player][131172] or inventory[team][player][131281] > 1%}✔{% endif %} -{% if inventory[team][player][131195] or inventory[team][player][131281] > 2%}✔{% endif %} -{% if inventory[team][player][131240] or inventory[team][player][131281] > 3%}✔{% endif %} -{% if inventory[team][player][131240] or inventory[team][player][131281] > 4%}✔{% endif %} -{% if inventory[team][player][131220] or inventory[team][player][131281] > 5%}✔{% endif %} +{% set player_inventory = inventory[team][player] %} +{% set prog_science = player_inventory[custom_items["progressive-science-pack"]] %} +{% if player_inventory[custom_items["logistic-science-pack"]] or prog_science %}✔{% endif %} +{% if player_inventory[custom_items["military-science-pack"]] or prog_science > 1%}✔{% endif %} +{% if player_inventory[custom_items["chemical-science-pack"]] or prog_science > 2%}✔{% endif %} +{% if player_inventory[custom_items["production-science-pack"]] or prog_science > 3%}✔{% endif %} +{% if player_inventory[custom_items["utility-science-pack"]] or prog_science > 4%}✔{% endif %} +{% if player_inventory[custom_items["space-science-pack"]] or prog_science > 5%}✔{% endif %} {% else %} ❌ ❌ diff --git a/WebHostLib/tracker.py b/WebHostLib/tracker.py index 987a96d0..d3fd0fb0 100644 --- a/WebHostLib/tracker.py +++ b/WebHostLib/tracker.py @@ -302,10 +302,15 @@ def get_static_room_data(room: Room): seed_checks_in_area[area] += len(checks) seed_checks_in_area["Total"] = 249 - player_checks_in_area = {playernumber: {areaname: len(multidata["checks_in_area"][playernumber][areaname]) - if areaname != "Total" else multidata["checks_in_area"][playernumber]["Total"] - for areaname in ordered_areas} - for playernumber in multidata["checks_in_area"]} + player_checks_in_area = { + playernumber: { + areaname: len(multidata["checks_in_area"][playernumber][areaname]) if areaname != "Total" else + multidata["checks_in_area"][playernumber]["Total"] + for areaname in ordered_areas + } + for playernumber in multidata["checks_in_area"] + } + player_location_to_area = {playernumber: get_location_table(multidata["checks_in_area"][playernumber]) for playernumber in multidata["checks_in_area"]} saving_second = get_saving_second(multidata["seed_name"]) @@ -1399,12 +1404,15 @@ def _get_multiworld_tracker_data(tracker: UUID) -> typing.Optional[typing.Dict[s for (team, player), data in multisave.get("video", []): video[team, player] = data - return dict(player_names=player_names, room=room, checks_done=checks_done, - percent_total_checks_done=percent_total_checks_done, checks_in_area=checks_in_area, - activity_timers=activity_timers, video=video, hints=hints, - long_player_names=long_player_names, - multisave=multisave, precollected_items=precollected_items, groups=groups, - locations=locations, games=games, states=states) + return dict( + player_names=player_names, room=room, checks_done=checks_done, + percent_total_checks_done=percent_total_checks_done, checks_in_area=checks_in_area, + activity_timers=activity_timers, video=video, hints=hints, + long_player_names=long_player_names, + multisave=multisave, precollected_items=precollected_items, groups=groups, + locations=locations, games=games, states=states, + custom_locations=custom_locations, custom_items=custom_items, + ) def _get_inventory_data(data: typing.Dict[str, typing.Any]) -> typing.Dict[int, typing.Dict[int, int]]: