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__())
|
return str(self.__unicode__())
|
||||||
|
|
||||||
def __unicode__(self):
|
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):
|
class Entrance(object):
|
||||||
|
@ -646,7 +649,10 @@ class Entrance(object):
|
||||||
return str(self.__unicode__())
|
return str(self.__unicode__())
|
||||||
|
|
||||||
def __unicode__(self):
|
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):
|
class Dungeon(object):
|
||||||
|
@ -659,6 +665,7 @@ class Dungeon(object):
|
||||||
self.dungeon_items = dungeon_items
|
self.dungeon_items = dungeon_items
|
||||||
self.bosses = dict()
|
self.bosses = dict()
|
||||||
self.player = player
|
self.player = player
|
||||||
|
self.world = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def boss(self):
|
def boss(self):
|
||||||
|
@ -683,7 +690,10 @@ class Dungeon(object):
|
||||||
return str(self.__unicode__())
|
return str(self.__unicode__())
|
||||||
|
|
||||||
def __unicode__(self):
|
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):
|
class Boss(object):
|
||||||
def __init__(self, name, enemizer_name, defeat_rule, player):
|
def __init__(self, name, enemizer_name, defeat_rule, player):
|
||||||
|
@ -724,7 +734,10 @@ class Location(object):
|
||||||
return str(self.__unicode__())
|
return str(self.__unicode__())
|
||||||
|
|
||||||
def __unicode__(self):
|
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):
|
class Item(object):
|
||||||
|
@ -765,7 +778,10 @@ class Item(object):
|
||||||
return str(self.__unicode__())
|
return str(self.__unicode__())
|
||||||
|
|
||||||
def __unicode__(self):
|
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
|
# have 6 address that need to be filled
|
||||||
|
@ -848,13 +864,20 @@ class Spoiler(object):
|
||||||
self.bosses = OrderedDict()
|
self.bosses = OrderedDict()
|
||||||
|
|
||||||
def set_entrance(self, entrance, exit, direction, player):
|
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):
|
def parse_data(self):
|
||||||
self.medallions = OrderedDict()
|
self.medallions = OrderedDict()
|
||||||
for player in range(1, self.world.players + 1):
|
if self.world.players == 1:
|
||||||
self.medallions['Misery Mire (Player %d)' % player] = self.world.required_medallions[player][0]
|
self.medallions['Misery Mire'] = self.world.required_medallions[1][0]
|
||||||
self.medallions['Turtle Rock (Player %d)' % player] = self.world.required_medallions[player][1]
|
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()
|
self.locations = OrderedDict()
|
||||||
listed_locations = set()
|
listed_locations = set()
|
||||||
|
@ -913,6 +936,8 @@ class Spoiler(object):
|
||||||
self.bosses[str(player)]["Ganons Tower"] = "Agahnim 2"
|
self.bosses[str(player)]["Ganons Tower"] = "Agahnim 2"
|
||||||
self.bosses[str(player)]["Ganon"] = "Ganon"
|
self.bosses[str(player)]["Ganon"] = "Ganon"
|
||||||
|
|
||||||
|
if self.world.players == 1:
|
||||||
|
self.bosses = self.bosses["1"]
|
||||||
|
|
||||||
from Main import __version__ as ERVersion
|
from Main import __version__ as ERVersion
|
||||||
self.metadata = {'version': ERVersion,
|
self.metadata = {'version': ERVersion,
|
||||||
|
@ -966,11 +991,15 @@ class Spoiler(object):
|
||||||
outfile.write('Players: %d' % self.metadata['players'])
|
outfile.write('Players: %d' % self.metadata['players'])
|
||||||
if self.entrances:
|
if self.entrances:
|
||||||
outfile.write('\n\nEntrances:\n\n')
|
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')
|
outfile.write('\n\nMedallions\n')
|
||||||
for player in range(1, self.world.players + 1):
|
if self.world.players == 1:
|
||||||
outfile.write('\nMisery Mire Medallion (Player %d): %s' % (player, self.medallions['Misery Mire (Player %d)' % player]))
|
outfile.write('\nMisery Mire Medallion: %s' % (self.medallions['Misery Mire']))
|
||||||
outfile.write('\nTurtle Rock Medallion (Player %d): %s' % (player, self.medallions['Turtle Rock (Player %d)' % player]))
|
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\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'.join(['%s: %s' % (location, item) for grouping in self.locations.values() for (location, item) in grouping.items()]))
|
||||||
outfile.write('\n\nShops:\n\n')
|
outfile.write('\n\nShops:\n\n')
|
||||||
|
|
|
@ -12,6 +12,7 @@ def create_dungeons(world, player):
|
||||||
dungeon.boss = BossFactory(default_boss, player)
|
dungeon.boss = BossFactory(default_boss, player)
|
||||||
for region in dungeon.regions:
|
for region in dungeon.regions:
|
||||||
world.get_region(region, player).dungeon = dungeon
|
world.get_region(region, player).dungeon = dungeon
|
||||||
|
dungeon.world = world
|
||||||
return dungeon
|
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)])
|
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