Core: add race mode to multidata and datastore (#4017)
* add race mode to multidata and datastore * have commonclient check race mode on connect and add it to the tooltip ui
This commit is contained in:
		
							parent
							
								
									8193fa12b2
								
							
						
					
					
						commit
						67f6b458d7
					
				|  | @ -325,6 +325,7 @@ class CommonContext: | |||
|             "collect": "disabled", | ||||
|             "remaining": "disabled", | ||||
|         } | ||||
|         self.race_mode: int = 0 | ||||
| 
 | ||||
|         # own state | ||||
|         self.finished_game = False | ||||
|  | @ -454,6 +455,7 @@ class CommonContext: | |||
|         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: | ||||
|  |  | |||
							
								
								
									
										1
									
								
								Main.py
								
								
								
								
							
							
						
						
									
										1
									
								
								Main.py
								
								
								
								
							|  | @ -338,6 +338,7 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No | |||
|                     "seed_name": multiworld.seed_name, | ||||
|                     "spheres": spheres, | ||||
|                     "datapackage": data_package, | ||||
|                     "race_mode": int(multiworld.is_race), | ||||
|                 } | ||||
|                 AutoWorld.call_all(multiworld, "modify_multidata", multidata) | ||||
| 
 | ||||
|  |  | |||
|  | @ -427,6 +427,8 @@ class Context: | |||
|               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}," | ||||
|  |  | |||
							
								
								
									
										2
									
								
								kvui.py
								
								
								
								
							
							
						
						
									
										2
									
								
								kvui.py
								
								
								
								
							|  | @ -243,6 +243,8 @@ class ServerLabel(HovererableLabel): | |||
|                             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." | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue