some er layout group fixes
This commit is contained in:
		
							parent
							
								
									58d748d7ff
								
							
						
					
					
						commit
						cd5696527d
					
				
							
								
								
									
										17
									
								
								Main.py
								
								
								
								
							
							
						
						
									
										17
									
								
								Main.py
								
								
								
								
							| 
						 | 
				
			
			@ -34,13 +34,12 @@ def get_seed(seed=None):
 | 
			
		|||
    return seed
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
seeds: Dict[tuple, str] = dict()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_same_seed(world: World, seed_def: tuple) -> str:
 | 
			
		||||
    seeds: Dict[tuple, str] = getattr(world, "__named_seeds", {})
 | 
			
		||||
    if seed_def in seeds:
 | 
			
		||||
        return seeds[seed_def]
 | 
			
		||||
    seeds[seed_def] = str(world.random.randint(0, 2 ** 64))
 | 
			
		||||
    world.__named_seeds = seeds
 | 
			
		||||
    return seeds[seed_def]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -117,9 +116,15 @@ def main(args, seed=None):
 | 
			
		|||
            world.shuffle[player] = shuffle
 | 
			
		||||
            if shuffle == "vanilla":
 | 
			
		||||
                world.er_seeds[player] = "vanilla"
 | 
			
		||||
            elif seed.startswith("team-"):
 | 
			
		||||
            elif seed.startswith("group-"):  # renamed from team to group to not confuses with existing team name use
 | 
			
		||||
                world.er_seeds[player] = get_same_seed(world, (shuffle, seed, world.retro[player], world.mode[player], world.logic[player]))
 | 
			
		||||
            else:
 | 
			
		||||
            elif seed.startswith("team-"):  # TODO: remove on breaking_changes
 | 
			
		||||
                world.er_seeds[player] = get_same_seed(world, (shuffle, seed, world.retro[player], world.mode[player], world.logic[player]))
 | 
			
		||||
            elif not args.race:
 | 
			
		||||
                world.er_seeds[player] = seed
 | 
			
		||||
            elif seed:  # race but with a set seed, ignore set seed and use group logic instead
 | 
			
		||||
                world.er_seeds[player] = get_same_seed(world, (shuffle, seed, world.retro[player], world.mode[player], world.logic[player]))
 | 
			
		||||
            else: # race but without a set seed
 | 
			
		||||
                world.er_seeds[player] = seed
 | 
			
		||||
        elif world.shuffle[player] == "vanilla":
 | 
			
		||||
            world.er_seeds[player] = "vanilla"
 | 
			
		||||
| 
						 | 
				
			
			@ -293,7 +298,7 @@ def main(args, seed=None):
 | 
			
		|||
        apply_rom_settings(rom, args.heartbeep[player], args.heartcolor[player], args.quickswap[player],
 | 
			
		||||
                           args.fastmenu[player], args.disablemusic[player], args.sprite[player],
 | 
			
		||||
                           palettes_options, world, player, True,
 | 
			
		||||
                           reduceflashing=args.reduceflashing[player] if not args.race else True,
 | 
			
		||||
                           reduceflashing=args.reduceflashing[player] or args.race,
 | 
			
		||||
                           triforcehud=args.triforcehud[player])
 | 
			
		||||
 | 
			
		||||
        mcsb_name = ''
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								Utils.py
								
								
								
								
							
							
						
						
									
										7
									
								
								Utils.py
								
								
								
								
							| 
						 | 
				
			
			@ -13,7 +13,7 @@ class Version(typing.NamedTuple):
 | 
			
		|||
    micro: int
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
__version__ = "4.1.0"
 | 
			
		||||
__version__ = "4.1.1"
 | 
			
		||||
_version_tuple = tuplize_version(__version__)
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +54,10 @@ def snes_to_pc(value):
 | 
			
		|||
def parse_player_names(names, players, teams):
 | 
			
		||||
    names = tuple(n for n in (n.strip() for n in names.split(",")) if n)
 | 
			
		||||
    if len(names) != len(set(names)):
 | 
			
		||||
        raise ValueError("Duplicate Player names is not supported.")
 | 
			
		||||
        import collections
 | 
			
		||||
        name_counter = collections.Counter(names)
 | 
			
		||||
        raise ValueError(f"Duplicate Player names is not supported, "
 | 
			
		||||
                         f'found multiple "{name_counter.most_common(1)[0][0]}".')
 | 
			
		||||
    ret = []
 | 
			
		||||
    while names or len(ret) < teams:
 | 
			
		||||
        team = [n[:16] for n in names[:players]]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,6 +90,7 @@ entrance_shuffle: # Documentation: https://alttpr.com/en/options#entrance_shuffl
 | 
			
		|||
  # you can also define entrance shuffle seed, like so:
 | 
			
		||||
  crossed-1000: 0 # using this method, you can have the same layout as another player and share entrance information
 | 
			
		||||
  # however, many other settings like logic, world state, retro etc. may affect the shuffle result as well.
 | 
			
		||||
  crossed-group-myfriends: 0 # using this method, everyone with "group-myfriends" will share the same seed
 | 
			
		||||
goals:
 | 
			
		||||
  ganon: 50 # Climb GT, defeat Agahnim 2, and then kill Ganon
 | 
			
		||||
  fast_ganon: 0 # Only killing Ganon is required. However, items may still be placed in GT
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue