ALTTP: Add fill_slot_data for external trackers (#1919)
* __init__.py: Add fill_slot_data function Add fill_slot_data function. Used by StripesOO7's pop-tracker pack to auto populate settings as convenience for the user * LTTP__init__.py added race condition to fill_slot_data * added missing self to multiworl.is_race * changed filling of slot_data to fill from static list instead of pulling all alttp_options. additional options needed to be done separately cause they are not stored the same way as the rest. "mode", "goal", etc. are simple values as the rest are key:value pairs so `.value` is not supported and I didn't want to introduce an if-statement. * changed filling of slot_data to fill from static list instead of pulling all alttp_options. additional options needed to be done separately cause they are not stored the same way as the rest. "mode", "goal", etc. are simple values as the rest are key:value pairs so `.value` is not supported and I didn't want to introduce an if-statement. * added a comment to describe the use for the option added to slot_data --------- Co-authored-by: StripesOO7 <54711792+StripeesOO7@users.noreply.github.com>
This commit is contained in:
parent
cacfd4ffae
commit
f29d5c8cae
|
@ -782,6 +782,32 @@ class ALTTPWorld(World):
|
|||
res.append(item)
|
||||
return res
|
||||
|
||||
def fill_slot_data(self):
|
||||
slot_data = {}
|
||||
if not self.multiworld.is_race:
|
||||
# all of these option are NOT used by the SNI- or Text-Client.
|
||||
# they are used by the alttp-poptracker pack (https://github.com/StripesOO7/alttp-ap-poptracker-pack)
|
||||
# for convenient auto-tracking of the generated settings and adjusting the tracker accordingly
|
||||
|
||||
slot_options = ["crystals_needed_for_gt", "crystals_needed_for_ganon", "open_pyramid",
|
||||
"bigkey_shuffle", "smallkey_shuffle", "compass_shuffle", "map_shuffle",
|
||||
"progressive", "swordless", "retro_bow", "retro_caves", "shop_item_slots",
|
||||
"boss_shuffle", "pot_shuffle", "enemy_shuffle"]
|
||||
|
||||
slot_data = {option_name: getattr(self.multiworld, option_name)[self.player].value for option_name in slot_options}
|
||||
|
||||
slot_data.update({
|
||||
'mode': self.multiworld.mode[self.player],
|
||||
'goal': self.multiworld.goal[self.player],
|
||||
'dark_room_logic': self.multiworld.dark_room_logic[self.player],
|
||||
'mm_medalion': self.multiworld.required_medallions[self.player][0],
|
||||
'tr_medalion': self.multiworld.required_medallions[self.player][1],
|
||||
'shop_shuffle': self.multiworld.shop_shuffle[self.player],
|
||||
'entrance_shuffle': self.multiworld.shuffle[self.player]
|
||||
}
|
||||
)
|
||||
return slot_data
|
||||
|
||||
|
||||
def get_same_seed(world, seed_def: tuple) -> str:
|
||||
seeds: typing.Dict[tuple, str] = getattr(world, "__named_seeds", {})
|
||||
|
|
Loading…
Reference in New Issue