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