Skip to content

Commit

Permalink
Core: add race mode to multidata and datastore (#4017)
Browse files Browse the repository at this point in the history
* add race mode to multidata and datastore

* have commonclient check race mode on connect and add it to the tooltip ui
  • Loading branch information
alwaysintreble authored Oct 1, 2024
1 parent 8193fa1 commit 67f6b45
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CommonClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,7 @@ def __init__(self, server_address: typing.Optional[str] = None, password: typing
"collect": "disabled",
"remaining": "disabled",
}
self.race_mode: int = 0

# own state
self.finished_game = False
Expand Down Expand Up @@ -454,6 +455,7 @@ async def send_connect(self, **kwargs: typing.Any) -> None:
if kwargs:
payload.update(kwargs)
await self.send_msgs([payload])
await self.send_msgs([{"cmd": "Get", "keys": ["race_mode"]}])

async def console_input(self) -> str:
if self.ui:
Expand Down
1 change: 1 addition & 0 deletions Main.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,7 @@ def precollect_hint(location):
"seed_name": multiworld.seed_name,
"spheres": spheres,
"datapackage": data_package,
"race_mode": int(multiworld.is_race),
}
AutoWorld.call_all(multiworld, "modify_multidata", multidata)

Expand Down
2 changes: 2 additions & 0 deletions MultiServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,8 @@ def _load(self, decoded_obj: dict, game_data_packages: typing.Dict[str, typing.A
use_embedded_server_options: bool):

self.read_data = {}
# there might be a better place to put this.
self.stored_data["race_mode"] = decoded_obj.get("race_mode", 0)
mdata_ver = decoded_obj["minimum_versions"]["server"]
if mdata_ver > version_tuple:
raise RuntimeError(f"Supplied Multidata (.archipelago) requires a server of at least version {mdata_ver},"
Expand Down
2 changes: 2 additions & 0 deletions kvui.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,8 @@ def get_text(self):
f"\nYou currently have {ctx.hint_points} points."
elif ctx.hint_cost == 0:
text += "\n!hint is free to use."
if ctx.stored_data and "race_mode" in ctx.stored_data:
text += "\nRace mode is enabled." if ctx.stored_data["race_mode"] else "\nRace mode is disabled."
else:
text += f"\nYou are not authenticated yet."

Expand Down

0 comments on commit 67f6b45

Please sign in to comment.