Change "not found" style errors from RuntimeError (misc error) to KeyError (value not found for a given search key)
This commit is contained in:
parent
c11fe9cb51
commit
d32bfb7bdf
|
@ -176,7 +176,7 @@ class World(object):
|
||||||
assert not region.world # this should only happen before initialization
|
assert not region.world # this should only happen before initialization
|
||||||
self._region_cache[player][regionname] = region
|
self._region_cache[player][regionname] = region
|
||||||
return region
|
return region
|
||||||
raise RuntimeError('No such region %s for player %d' % (regionname, player))
|
raise KeyError('No such region %s for player %d' % (regionname, player))
|
||||||
|
|
||||||
def get_entrance(self, entrance: str, player: int) -> Entrance:
|
def get_entrance(self, entrance: str, player: int) -> Entrance:
|
||||||
try:
|
try:
|
||||||
|
@ -197,7 +197,7 @@ class World(object):
|
||||||
self._entrance_cache[(entrance, player)] = exit
|
self._entrance_cache[(entrance, player)] = exit
|
||||||
return exit
|
return exit
|
||||||
|
|
||||||
raise RuntimeError('No such entrance %s for player %d' % (entrance, player))
|
raise KeyError('No such entrance %s for player %d' % (entrance, player))
|
||||||
|
|
||||||
def get_location(self, location: str, player: int) -> Location:
|
def get_location(self, location: str, player: int) -> Location:
|
||||||
try:
|
try:
|
||||||
|
@ -218,13 +218,13 @@ class World(object):
|
||||||
self._location_cache[(location, player)] = r_location
|
self._location_cache[(location, player)] = r_location
|
||||||
return r_location
|
return r_location
|
||||||
|
|
||||||
raise RuntimeError('No such location %s for player %d' % (location, player))
|
raise KeyError('No such location %s for player %d' % (location, player))
|
||||||
|
|
||||||
def get_dungeon(self, dungeonname: str, player: int) -> Dungeon:
|
def get_dungeon(self, dungeonname: str, player: int) -> Dungeon:
|
||||||
for dungeon in self.dungeons:
|
for dungeon in self.dungeons:
|
||||||
if dungeon.name == dungeonname and dungeon.player == player:
|
if dungeon.name == dungeonname and dungeon.player == player:
|
||||||
return dungeon
|
return dungeon
|
||||||
raise RuntimeError('No such dungeon %s for player %d' % (dungeonname, player))
|
raise KeyError('No such dungeon %s for player %d' % (dungeonname, player))
|
||||||
|
|
||||||
def _debug_get_dungeon(self, dungeonname: str, player: int) -> Dungeon:
|
def _debug_get_dungeon(self, dungeonname: str, player: int) -> Dungeon:
|
||||||
if type(dungeonname) != str:
|
if type(dungeonname) != str:
|
||||||
|
@ -232,7 +232,7 @@ class World(object):
|
||||||
for dungeon in self.dungeons:
|
for dungeon in self.dungeons:
|
||||||
if dungeon.name == dungeonname and dungeon.player == player:
|
if dungeon.name == dungeonname and dungeon.player == player:
|
||||||
return dungeon
|
return dungeon
|
||||||
raise RuntimeError('No such dungeon %s for player %d' % (dungeonname, player))
|
raise KeyError('No such dungeon %s for player %d' % (dungeonname, player))
|
||||||
|
|
||||||
def get_all_state(self, keys=False) -> CollectionState:
|
def get_all_state(self, keys=False) -> CollectionState:
|
||||||
ret = CollectionState(self)
|
ret = CollectionState(self)
|
||||||
|
|
|
@ -644,7 +644,7 @@ def link_entrances(world, player):
|
||||||
candidate = cave
|
candidate = cave
|
||||||
break
|
break
|
||||||
if candidate is None:
|
if candidate is None:
|
||||||
raise RuntimeError('No suitable cave.')
|
raise KeyError('No suitable cave.')
|
||||||
cavelist.remove(candidate)
|
cavelist.remove(candidate)
|
||||||
return candidate
|
return candidate
|
||||||
|
|
||||||
|
@ -659,7 +659,7 @@ def link_entrances(world, player):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cave = extract_reachable_exit(primary)
|
cave = extract_reachable_exit(primary)
|
||||||
except RuntimeError:
|
except KeyError:
|
||||||
cave = extract_reachable_exit(secondary)
|
cave = extract_reachable_exit(secondary)
|
||||||
|
|
||||||
exit = cave[-1]
|
exit = cave[-1]
|
||||||
|
@ -863,7 +863,7 @@ def link_entrances(world, player):
|
||||||
candidate = cave
|
candidate = cave
|
||||||
break
|
break
|
||||||
if candidate is None:
|
if candidate is None:
|
||||||
raise RuntimeError('No suitable cave.')
|
raise KeyError('No suitable cave.')
|
||||||
cavelist.remove(candidate)
|
cavelist.remove(candidate)
|
||||||
return candidate
|
return candidate
|
||||||
|
|
||||||
|
@ -998,7 +998,7 @@ def link_entrances(world, player):
|
||||||
candidate = cave
|
candidate = cave
|
||||||
break
|
break
|
||||||
if candidate is None:
|
if candidate is None:
|
||||||
raise RuntimeError('No suitable cave.')
|
raise KeyError('No suitable cave.')
|
||||||
cavelist.remove(candidate)
|
cavelist.remove(candidate)
|
||||||
return candidate
|
return candidate
|
||||||
|
|
||||||
|
@ -1709,7 +1709,7 @@ def link_inverted_entrances(world, player):
|
||||||
candidate = cave
|
candidate = cave
|
||||||
break
|
break
|
||||||
if candidate is None:
|
if candidate is None:
|
||||||
raise RuntimeError('No suitable cave.')
|
raise KeyError('No suitable cave.')
|
||||||
cavelist.remove(candidate)
|
cavelist.remove(candidate)
|
||||||
return candidate
|
return candidate
|
||||||
|
|
||||||
|
@ -1792,7 +1792,7 @@ def connect_entrance(world, entrancename: str, exitname: str, player: int):
|
||||||
try:
|
try:
|
||||||
region = world.get_region(exitname, player)
|
region = world.get_region(exitname, player)
|
||||||
exit = None
|
exit = None
|
||||||
except RuntimeError:
|
except KeyError:
|
||||||
exit = world.get_entrance(exitname, player)
|
exit = world.get_entrance(exitname, player)
|
||||||
region = exit.parent_region
|
region = exit.parent_region
|
||||||
|
|
||||||
|
@ -1974,7 +1974,7 @@ def connect_mandatory_exits(world, entrances, caves, must_be_exits, player):
|
||||||
break
|
break
|
||||||
|
|
||||||
if cave is None:
|
if cave is None:
|
||||||
raise RuntimeError('No more caves left. Should not happen!')
|
raise KeyError('No more caves left. Should not happen!')
|
||||||
|
|
||||||
# all caves are sorted so that the last exit is always reachable
|
# all caves are sorted so that the last exit is always reachable
|
||||||
connect_two_way(world, exit, cave[-1], player)
|
connect_two_way(world, exit, cave[-1], player)
|
||||||
|
|
2
Text.py
2
Text.py
|
@ -1939,4 +1939,4 @@ class TextTable(object):
|
||||||
text['ganon_phase_3_silvers'] = CompressedTextMapper.convert("Oh no! Silver! My one true weakness!")
|
text['ganon_phase_3_silvers'] = CompressedTextMapper.convert("Oh no! Silver! My one true weakness!")
|
||||||
text['murahdahla'] = CompressedTextMapper.convert("Hello @. I\nam Murahdahla, brother of\nSahasrahla and Aginah. Behold the power of\ninvisibility.\n{PAUSE3}\n… … …\nWait! you can see me? I knew I should have\nhidden in a hollow tree.")
|
text['murahdahla'] = CompressedTextMapper.convert("Hello @. I\nam Murahdahla, brother of\nSahasrahla and Aginah. Behold the power of\ninvisibility.\n{PAUSE3}\n… … …\nWait! you can see me? I knew I should have\nhidden in a hollow tree.")
|
||||||
text['end_pad_data'] = bytearray([0xfb])
|
text['end_pad_data'] = bytearray([0xfb])
|
||||||
text['terminator'] = bytearray([0xFF, 0xFF])
|
text['terminator'] = bytearray([0xFF, 0xFF])
|
||||||
|
|
Loading…
Reference in New Issue