Add files via upload

This commit is contained in:
Fouton
2021-03-12 16:51:16 -05:00
committed by GitHub
parent 1e63d3957d
commit 2a1eb07d73
2 changed files with 59 additions and 41 deletions

View File

@@ -1378,6 +1378,11 @@ class Door(object):
else: else:
self.passage = False self.passage = False
def kind(self, world):
if self.roomIndex != -1 and self.doorListPos != -1:
return world.get_room(self.roomIndex, self.player).kind(self)
return None
def __eq__(self, other): def __eq__(self, other):
return isinstance(other, self.__class__) and self.name == other.name return isinstance(other, self.__class__) and self.name == other.name

27
CLI.py
View File

@@ -6,7 +6,6 @@ import textwrap
import shlex import shlex
import sys import sys
import source.classes.constants as CONST
from source.classes.BabelFish import BabelFish from source.classes.BabelFish import BabelFish
from Utils import update_deprecated_args from Utils import update_deprecated_args
@@ -28,10 +27,15 @@ def parse_cli(argv, no_defaults=False):
fish = BabelFish(lang=lang) fish = BabelFish(lang=lang)
# we need to know how many players we have first # we need to know how many players we have first
# also if we're loading our own settings file, we should do that now
parser = argparse.ArgumentParser(add_help=False) parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('--settingsfile', help="input json file of settings", type=str)
parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255)) parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255))
multiargs, _ = parser.parse_known_args(argv) multiargs, _ = parser.parse_known_args(argv)
if multiargs.settingsfile:
settings = apply_settings_file(settings, multiargs.settingsfile)
parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
# get args # get args
@@ -73,6 +77,7 @@ def parse_cli(argv, no_defaults=False):
parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255)) parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255))
parser.add_argument('--securerandom', default=defval(settings["securerandom"]), action='store_true') parser.add_argument('--securerandom', default=defval(settings["securerandom"]), action='store_true')
parser.add_argument('--teams', default=defval(1), type=lambda value: max(int(value), 1)) parser.add_argument('--teams', default=defval(1), type=lambda value: max(int(value), 1))
parser.add_argument('--settingsfile', dest="filename", help="input json file of settings", type=str)
if multiargs.multi: if multiargs.multi:
for player in range(1, multiargs.multi + 1): for player in range(1, multiargs.multi + 1):
@@ -106,6 +111,16 @@ def parse_cli(argv, no_defaults=False):
return ret return ret
def apply_settings_file(settings, settings_path):
if os.path.exists(settings_path):
with open(settings_path) as json_file:
data = json.load(json_file)
for k, v in data.items():
settings[k] = v
return settings
def parse_settings(): def parse_settings():
# set default settings # set default settings
settings = { settings = {
@@ -277,17 +292,15 @@ def parse_settings():
# read saved settings file if it exists and set these # read saved settings file if it exists and set these
settings_path = os.path.join(".", "resources", "user", "settings.json") settings_path = os.path.join(".", "resources", "user", "settings.json")
if os.path.exists(settings_path): settings = apply_settings_file(settings, settings_path)
with(open(settings_path)) as json_file:
data = json.load(json_file)
for k, v in data.items():
settings[k] = v
return settings return settings
# Priority fallback is: # Priority fallback is:
# 1: CLI # 1: CLI
# 2: Settings file # 2: Settings file(s)
# 3: Canned defaults # 3: Canned defaults
def get_args_priority(settings_args, gui_args, cli_args): def get_args_priority(settings_args, gui_args, cli_args):
args = {} args = {}
args["settings"] = parse_settings() if settings_args is None else settings_args args["settings"] = parse_settings() if settings_args is None else settings_args