Avoid changing spoiler file for single world
This commit is contained in:
		
							parent
							
								
									c4570b732d
								
							
						
					
					
						commit
						dcca15eda7
					
				| 
						 | 
				
			
			@ -610,7 +610,10 @@ class Region(object):
 | 
			
		|||
        return str(self.__unicode__())
 | 
			
		||||
 | 
			
		||||
    def __unicode__(self):
 | 
			
		||||
        return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
        if self.world and self.world.players == 1:
 | 
			
		||||
            return self.name
 | 
			
		||||
        else:
 | 
			
		||||
            return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Entrance(object):
 | 
			
		||||
| 
						 | 
				
			
			@ -646,7 +649,10 @@ class Entrance(object):
 | 
			
		|||
        return str(self.__unicode__())
 | 
			
		||||
 | 
			
		||||
    def __unicode__(self):
 | 
			
		||||
        return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
        if self.parent_region and self.parent_region.world and self.parent_region.world.players == 1:
 | 
			
		||||
            return self.name
 | 
			
		||||
        else:
 | 
			
		||||
            return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Dungeon(object):
 | 
			
		||||
| 
						 | 
				
			
			@ -659,6 +665,7 @@ class Dungeon(object):
 | 
			
		|||
        self.dungeon_items = dungeon_items
 | 
			
		||||
        self.bosses = dict()
 | 
			
		||||
        self.player = player
 | 
			
		||||
        self.world = None
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def boss(self):
 | 
			
		||||
| 
						 | 
				
			
			@ -683,7 +690,10 @@ class Dungeon(object):
 | 
			
		|||
        return str(self.__unicode__())
 | 
			
		||||
 | 
			
		||||
    def __unicode__(self):
 | 
			
		||||
        return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
        if self.world and self.world.players==1:
 | 
			
		||||
            return self.name
 | 
			
		||||
        else:
 | 
			
		||||
            return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
 | 
			
		||||
class Boss(object):
 | 
			
		||||
    def __init__(self, name, enemizer_name, defeat_rule, player):
 | 
			
		||||
| 
						 | 
				
			
			@ -724,7 +734,10 @@ class Location(object):
 | 
			
		|||
        return str(self.__unicode__())
 | 
			
		||||
 | 
			
		||||
    def __unicode__(self):
 | 
			
		||||
        return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
        if self.parent_region and self.parent_region.world and self.parent_region.world.players == 1:
 | 
			
		||||
            return self.name
 | 
			
		||||
        else:
 | 
			
		||||
            return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Item(object):
 | 
			
		||||
| 
						 | 
				
			
			@ -765,7 +778,10 @@ class Item(object):
 | 
			
		|||
        return str(self.__unicode__())
 | 
			
		||||
 | 
			
		||||
    def __unicode__(self):
 | 
			
		||||
        return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
        if self.location and self.location.parent_region and self.location.parent_region.world and self.location.parent_region.world.players == 1:
 | 
			
		||||
            return self.name
 | 
			
		||||
        else:
 | 
			
		||||
            return '%s (Player %d)' % (self.name, self.player)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# have 6 address that need to be filled
 | 
			
		||||
| 
						 | 
				
			
			@ -848,13 +864,20 @@ class Spoiler(object):
 | 
			
		|||
        self.bosses = OrderedDict()
 | 
			
		||||
 | 
			
		||||
    def set_entrance(self, entrance, exit, direction, player):
 | 
			
		||||
        self.entrances[(entrance, direction, player)] = OrderedDict([('player', player), ('entrance', entrance), ('exit', exit), ('direction', direction)])
 | 
			
		||||
        if self.world.players == 1:
 | 
			
		||||
            self.entrances[(entrance, direction, player)] = OrderedDict([('entrance', entrance), ('exit', exit), ('direction', direction)])
 | 
			
		||||
        else:
 | 
			
		||||
            self.entrances[(entrance, direction, player)] = OrderedDict([('player', player), ('entrance', entrance), ('exit', exit), ('direction', direction)])
 | 
			
		||||
 | 
			
		||||
    def parse_data(self):
 | 
			
		||||
        self.medallions = OrderedDict()
 | 
			
		||||
        for player in range(1, self.world.players + 1):
 | 
			
		||||
            self.medallions['Misery Mire (Player %d)' % player] = self.world.required_medallions[player][0]
 | 
			
		||||
            self.medallions['Turtle Rock (Player %d)' % player] = self.world.required_medallions[player][1]
 | 
			
		||||
        if self.world.players == 1:
 | 
			
		||||
            self.medallions['Misery Mire'] = self.world.required_medallions[1][0]
 | 
			
		||||
            self.medallions['Turtle Rock'] = self.world.required_medallions[1][1]
 | 
			
		||||
        else:
 | 
			
		||||
            for player in range(1, self.world.players + 1):
 | 
			
		||||
                self.medallions['Misery Mire (Player %d)' % player] = self.world.required_medallions[player][0]
 | 
			
		||||
                self.medallions['Turtle Rock (Player %d)' % player] = self.world.required_medallions[player][1]
 | 
			
		||||
 | 
			
		||||
        self.locations = OrderedDict()
 | 
			
		||||
        listed_locations = set()
 | 
			
		||||
| 
						 | 
				
			
			@ -913,6 +936,8 @@ class Spoiler(object):
 | 
			
		|||
            self.bosses[str(player)]["Ganons Tower"] = "Agahnim 2"
 | 
			
		||||
            self.bosses[str(player)]["Ganon"] = "Ganon"
 | 
			
		||||
 | 
			
		||||
        if self.world.players == 1:
 | 
			
		||||
            self.bosses = self.bosses["1"]
 | 
			
		||||
 | 
			
		||||
        from Main import __version__ as ERVersion
 | 
			
		||||
        self.metadata = {'version': ERVersion,
 | 
			
		||||
| 
						 | 
				
			
			@ -966,11 +991,15 @@ class Spoiler(object):
 | 
			
		|||
            outfile.write('Players:                         %d' % self.metadata['players'])
 | 
			
		||||
            if self.entrances:
 | 
			
		||||
                outfile.write('\n\nEntrances:\n\n')
 | 
			
		||||
                outfile.write('\n'.join(['Player %d: %s %s %s' % (entry['player'], entry['entrance'], '<=>' if entry['direction'] == 'both' else '<=' if entry['direction'] == 'exit' else '=>', entry['exit']) for entry in self.entrances.values()]))
 | 
			
		||||
                outfile.write('\n'.join(['%s%s %s %s' % ('Player {0}: '.format(entry['player']) if self.world.players >1 else '', entry['entrance'], '<=>' if entry['direction'] == 'both' else '<=' if entry['direction'] == 'exit' else '=>', entry['exit']) for entry in self.entrances.values()]))
 | 
			
		||||
            outfile.write('\n\nMedallions\n')
 | 
			
		||||
            for player in range(1, self.world.players + 1):
 | 
			
		||||
                outfile.write('\nMisery Mire Medallion (Player %d): %s' % (player, self.medallions['Misery Mire (Player %d)' % player]))
 | 
			
		||||
                outfile.write('\nTurtle Rock Medallion (Player %d): %s' % (player, self.medallions['Turtle Rock (Player %d)' % player]))
 | 
			
		||||
            if self.world.players == 1:
 | 
			
		||||
                outfile.write('\nMisery Mire Medallion: %s' % (self.medallions['Misery Mire']))
 | 
			
		||||
                outfile.write('\nTurtle Rock Medallion: %s' % (self.medallions['Turtle Rock']))
 | 
			
		||||
            else:
 | 
			
		||||
                for player in range(1, self.world.players + 1):
 | 
			
		||||
                    outfile.write('\nMisery Mire Medallion (Player %d): %s' % (player, self.medallions['Misery Mire (Player %d)' % player]))
 | 
			
		||||
                    outfile.write('\nTurtle Rock Medallion (Player %d): %s' % (player, self.medallions['Turtle Rock (Player %d)' % player]))
 | 
			
		||||
            outfile.write('\n\nLocations:\n\n')
 | 
			
		||||
            outfile.write('\n'.join(['%s: %s' % (location, item) for grouping in self.locations.values() for (location, item) in grouping.items()]))
 | 
			
		||||
            outfile.write('\n\nShops:\n\n')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@ def create_dungeons(world, player):
 | 
			
		|||
        dungeon.boss = BossFactory(default_boss, player)
 | 
			
		||||
        for region in dungeon.regions:
 | 
			
		||||
            world.get_region(region, player).dungeon = dungeon
 | 
			
		||||
            dungeon.world = world
 | 
			
		||||
        return dungeon
 | 
			
		||||
 | 
			
		||||
    ES = make_dungeon('Hyrule Castle', None, ['Hyrule Castle', 'Sewers', 'Sewer Drop', 'Sewers (Dark)', 'Sanctuary'], None, [ItemFactory('Small Key (Escape)', player)], [ItemFactory('Map (Escape)', player)])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue