fix: make shuffleganon per player
This commit is contained in:
@@ -61,7 +61,6 @@ class World(object):
|
||||
self.fix_palaceofdarkness_exit = {}
|
||||
self.fix_trock_exit = {}
|
||||
self.shuffle_ganon = shuffle_ganon
|
||||
self.fix_gtower_exit = self.shuffle_ganon
|
||||
self.custom = custom
|
||||
self.customitemarray = customitemarray
|
||||
self.can_take_damage = True
|
||||
@@ -109,6 +108,7 @@ class World(object):
|
||||
set_player_attr('fix_skullwoods_exit', self.shuffle[player] not in ['vanilla', 'simple', 'restricted', 'dungeonssimple'] or self.doorShuffle[player] not in ['vanilla'])
|
||||
set_player_attr('fix_palaceofdarkness_exit', self.shuffle[player] not in ['vanilla', 'simple', 'restricted', 'dungeonssimple'])
|
||||
set_player_attr('fix_trock_exit', self.shuffle[player] not in ['vanilla', 'simple', 'restricted', 'dungeonssimple'])
|
||||
set_player_attr('fix_gtower_exit', self.shuffle_ganon[player] > 0)
|
||||
set_player_attr('can_access_trock_eyebridge', None)
|
||||
set_player_attr('can_access_trock_front', None)
|
||||
set_player_attr('can_access_trock_big_chest', None)
|
||||
|
||||
4
CLI.py
4
CLI.py
@@ -132,8 +132,8 @@ def parse_cli(argv, no_defaults=False):
|
||||
'flute_mode', 'bow_mode', 'take_any', 'boots_hint',
|
||||
'shuffle', 'door_shuffle', 'intensity', 'crystals_ganon', 'crystals_gt', 'openpyramid',
|
||||
'mapshuffle', 'compassshuffle', 'keyshuffle', 'bigkeyshuffle', 'startinventory',
|
||||
'usestartinventory', 'bombbag', 'overworld_map', 'restrict_boss_items', 'triforce_max_difference',
|
||||
'triforce_pool_min', 'triforce_pool_max', 'triforce_goal_min', 'triforce_goal_max',
|
||||
'usestartinventory', 'bombbag', 'shuffleganon', 'overworld_map', 'restrict_boss_items',
|
||||
'triforce_max_difference', 'triforce_pool_min', 'triforce_pool_max', 'triforce_goal_min', 'triforce_goal_max',
|
||||
'triforce_min_difference', 'triforce_goal', 'triforce_pool', 'shufflelinks', 'shuffletavern',
|
||||
'skullwoods', 'linked_drops',
|
||||
'pseudoboots', 'retro', 'accessibility', 'hints', 'beemizer', 'experimental', 'dungeon_counters',
|
||||
|
||||
2
Main.py
2
Main.py
@@ -38,7 +38,7 @@ from source.enemizer.DamageTables import DamageTable
|
||||
from source.enemizer.Enemizer import randomize_enemies
|
||||
from source.rom.DataTables import init_data_tables
|
||||
|
||||
version_number = '1.4.7.1'
|
||||
version_number = '1.4.7.2'
|
||||
version_branch = '-u'
|
||||
__version__ = f'{version_number}{version_branch}'
|
||||
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# Patch Notes
|
||||
|
||||
* 1.4.7.2
|
||||
- Fixed an issue with shuffle_ganon/fix_gtower_exit causing a generation failure
|
||||
* 1.4.7.1
|
||||
- Fixed an issue with the repaired "beemizer" setting not being backwards compatible
|
||||
* 1.4.7
|
||||
- Fixed generation error with Big Key in starting inventory (thanks Cody!)
|
||||
- HMG/NL logic fixes by Muffins
|
||||
|
||||
14
Utils.py
14
Utils.py
@@ -325,6 +325,10 @@ def update_deprecated_args(args):
|
||||
if args:
|
||||
argVars = vars(args)
|
||||
truthy = [1, True, "True", "true"]
|
||||
if "multi" in argVars:
|
||||
players = int(args.multi)
|
||||
else:
|
||||
players = 1
|
||||
# Hints default to FALSE
|
||||
# Don't do: Yes
|
||||
# Do: No
|
||||
@@ -362,11 +366,11 @@ def update_deprecated_args(args):
|
||||
# Don't do: Yes
|
||||
# Do: No
|
||||
if "no_shuffleganon" in argVars:
|
||||
args.shuffleganon = not args.no_shuffleganon in truthy
|
||||
# Don't do: No
|
||||
# Do: Yes
|
||||
if "shuffleganon" in argVars:
|
||||
args.no_shuffleganon = not args.shuffleganon in truthy
|
||||
if isinstance(args.shuffleganon, dict):
|
||||
for player in range(1, players + 1):
|
||||
args.shuffleganon[player] = not args.no_shuffleganon in truthy
|
||||
else:
|
||||
args.shuffleganon = not args.no_shuffleganon in truthy
|
||||
|
||||
# Playthrough defaults to TRUE
|
||||
# Don't do: Yes
|
||||
|
||||
@@ -181,7 +181,7 @@ def do_main_shuffle(entrances, exits, avail, mode_def):
|
||||
avail.decoupled_entrances.extend(entrances)
|
||||
avail.decoupled_exits.extend(exits)
|
||||
|
||||
if not avail.world.shuffle_ganon:
|
||||
if not avail.world.shuffle_ganon[avail.player]:
|
||||
if avail.world.is_atgt_swapped(avail.player) and 'Agahnims Tower' in entrances:
|
||||
connect_two_way('Agahnims Tower', 'Ganons Tower Exit', avail)
|
||||
entrances.remove('Agahnims Tower')
|
||||
|
||||
Reference in New Issue
Block a user