clean up some spoiler display names
This commit is contained in:
parent
d1c83ffc09
commit
230d9d993e
|
@ -1298,7 +1298,7 @@ class Spoiler():
|
||||||
for f_option, option in options.items():
|
for f_option, option in options.items():
|
||||||
res = getattr(self.world, f_option)[player]
|
res = getattr(self.world, f_option)[player]
|
||||||
displayname = getattr(option, "displayname", f_option)
|
displayname = getattr(option, "displayname", f_option)
|
||||||
outfile.write(f'{displayname+":":33}{bool_to_text(res) if type(res) == Options.Toggle else res.get_option_name()}\n')
|
outfile.write(f'{displayname + ":":33}{res.get_option_name()}\n')
|
||||||
|
|
||||||
if player in self.world.get_game_players("A Link to the Past"):
|
if player in self.world.get_game_players("A Link to the Past"):
|
||||||
for team in range(self.world.teams):
|
for team in range(self.world.teams):
|
||||||
|
|
24
Options.py
24
Options.py
|
@ -7,6 +7,7 @@ class AssembleOptions(type):
|
||||||
def __new__(mcs, name, bases, attrs):
|
def __new__(mcs, name, bases, attrs):
|
||||||
options = attrs["options"] = {}
|
options = attrs["options"] = {}
|
||||||
name_lookup = attrs["name_lookup"] = {}
|
name_lookup = attrs["name_lookup"] = {}
|
||||||
|
# merge parent class options
|
||||||
for base in bases:
|
for base in bases:
|
||||||
if hasattr(base, "options"):
|
if hasattr(base, "options"):
|
||||||
options.update(base.options)
|
options.update(base.options)
|
||||||
|
@ -30,24 +31,32 @@ class AssembleOptions(type):
|
||||||
attrs["__init__"] = validate_decorator(attrs["__init__"])
|
attrs["__init__"] = validate_decorator(attrs["__init__"])
|
||||||
return super(AssembleOptions, mcs).__new__(mcs, name, bases, attrs)
|
return super(AssembleOptions, mcs).__new__(mcs, name, bases, attrs)
|
||||||
|
|
||||||
|
|
||||||
class Option(metaclass=AssembleOptions):
|
class Option(metaclass=AssembleOptions):
|
||||||
value: int
|
value: int
|
||||||
name_lookup: typing.Dict[int, str]
|
name_lookup: typing.Dict[int, str]
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
def __repr__(self):
|
# convert option_name_long into Name Long as displayname, otherwise name_long is the result.
|
||||||
|
# Handled in get_option_name()
|
||||||
|
autodisplayname = False
|
||||||
|
|
||||||
|
def __repr__(self) -> str:
|
||||||
return f"{self.__class__.__name__}({self.get_option_name()})"
|
return f"{self.__class__.__name__}({self.get_option_name()})"
|
||||||
|
|
||||||
def __hash__(self):
|
def __hash__(self):
|
||||||
return hash(self.value)
|
return hash(self.value)
|
||||||
|
|
||||||
def get_option_name(self):
|
def get_option_name(self) -> str:
|
||||||
return self.name_lookup[self.value]
|
if self.autodisplayname:
|
||||||
|
return self.name_lookup[self.value].replace("_", " ").title()
|
||||||
|
else:
|
||||||
|
return self.name_lookup[self.value]
|
||||||
|
|
||||||
def __int__(self):
|
def __int__(self) -> int:
|
||||||
return self.value
|
return self.value
|
||||||
|
|
||||||
def __bool__(self):
|
def __bool__(self) -> bool:
|
||||||
return bool(self.value)
|
return bool(self.value)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -96,12 +105,15 @@ class Toggle(Option):
|
||||||
return int(self.value)
|
return int(self.value)
|
||||||
|
|
||||||
def get_option_name(self):
|
def get_option_name(self):
|
||||||
return bool(self.value)
|
return ["No", "Yes"][int(self.value)]
|
||||||
|
|
||||||
class DefaultOnToggle(Toggle):
|
class DefaultOnToggle(Toggle):
|
||||||
default = 1
|
default = 1
|
||||||
|
|
||||||
|
|
||||||
class Choice(Option):
|
class Choice(Option):
|
||||||
|
autodisplayname = True
|
||||||
|
|
||||||
def __init__(self, value: int):
|
def __init__(self, value: int):
|
||||||
self.value: int = value
|
self.value: int = value
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import collections
|
||||||
|
|
||||||
from ..AutoWorld import World
|
from ..AutoWorld import World
|
||||||
|
|
||||||
from BaseClasses import Region, Entrance, Location, Item
|
from BaseClasses import Region, Entrance, Location, Item
|
||||||
|
@ -28,14 +30,14 @@ class Factorio(World):
|
||||||
data_version = 3
|
data_version = 3
|
||||||
|
|
||||||
def generate_basic(self):
|
def generate_basic(self):
|
||||||
want_progressives = {}
|
want_progressives = collections.defaultdict(lambda: self.world.progressive[self.player].
|
||||||
|
want_progressives(self.world.random))
|
||||||
skip_silo = self.world.silo[self.player].value == Silo.option_spawn
|
skip_silo = self.world.silo[self.player].value == Silo.option_spawn
|
||||||
for tech_name in base_tech_table:
|
for tech_name in base_tech_table:
|
||||||
if skip_silo and tech_name == "rocket-silo":
|
if skip_silo and tech_name == "rocket-silo":
|
||||||
continue
|
continue
|
||||||
progressive_item_name = tech_to_progressive_lookup.get(tech_name, tech_name)
|
progressive_item_name = tech_to_progressive_lookup.get(tech_name, tech_name)
|
||||||
want_progressive = want_progressives.setdefault(progressive_item_name,
|
want_progressive = want_progressives[progressive_item_name]
|
||||||
self.world.progressive[self.player].want_progressives(self.world.random))
|
|
||||||
item_name = progressive_item_name if want_progressive else tech_name
|
item_name = progressive_item_name if want_progressive else tech_name
|
||||||
tech_item = self.create_item(item_name)
|
tech_item = self.create_item(item_name)
|
||||||
if tech_name in self.static_nodes:
|
if tech_name in self.static_nodes:
|
||||||
|
|
Loading…
Reference in New Issue