Core: change how required versions work, deprecate IgnoreGame (#426)

`AutoWorld.World`s can set required_server_version and required_client_version properties. Drop `get_required_client_version()`.
`MultiServer` will set an absolute minimum client version based on its capability (protocol level).
`IgnoreVersion` tag is replaced by using `Tracker` or `TextOnly` with empty or null `game`.
Ignoring game will also ignore game's required_client_version (and fall back to server capability).
This commit is contained in:
black-sliver
2022-04-08 11:16:36 +02:00
committed by GitHub
parent 0acca6dd64
commit 42fecc7491
15 changed files with 55 additions and 55 deletions

View File

@@ -32,6 +32,9 @@ class MeritousWorld(World):
data_version = 2
forced_auto_forfeit = False
# NOTE: Remember to change this before this game goes live
required_client_version = (0, 2, 4)
options = meritous_options
def __init__(self, world: MultiWorld, player: int):
@@ -150,10 +153,6 @@ class MeritousWorld(World):
self.world.completion_condition[self.player] = lambda state: state.has(
"Full Victory", self.player)
def get_required_client_version(self) -> tuple:
# NOTE: Remember to change this before this game goes live
return max((0, 2, 4), super(MeritousWorld, self).get_required_client_version())
def fill_slot_data(self) -> dict:
return {
"goal": self.goal,