OoT: Fix blind item.type reference (#905)

* oot: remove blind reference to item.type

* oot: logical reasoning is hard

* oot: fix blind item.type reference
This commit is contained in:
espeon65536 2022-08-12 19:36:06 -07:00 committed by GitHub
parent f5e48c850d
commit 645ede869f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 3 deletions

View File

@ -10,6 +10,7 @@ from urllib.error import URLError, HTTPError
import json import json
from enum import Enum from enum import Enum
from .Items import OOTItem
from .HintList import getHint, getHintGroup, Hint, hintExclusions from .HintList import getHint, getHintGroup, Hint, hintExclusions
from .Messages import COLOR_MAP, update_message_by_id from .Messages import COLOR_MAP, update_message_by_id
from .TextBox import line_wrap from .TextBox import line_wrap
@ -480,7 +481,7 @@ def get_specific_item_hint(world, checked):
def get_random_location_hint(world, checked): def get_random_location_hint(world, checked):
locations = list(filter(lambda location: locations = list(filter(lambda location:
is_not_checked(location, checked) is_not_checked(location, checked)
and location.item.type not in ('Drop', 'Event', 'Shop', 'DungeonReward') and not (isinstance(location.item, OOTItem) and location.item.type in ('Drop', 'Event', 'Shop', 'DungeonReward'))
# and not (location.parent_region.dungeon and isRestrictedDungeonItem(location.parent_region.dungeon, location.item)) # AP already locks dungeon items # and not (location.parent_region.dungeon and isRestrictedDungeonItem(location.parent_region.dungeon, location.item)) # AP already locks dungeon items
and not location.locked and not location.locked
and location.name not in world.hint_exclusions and location.name not in world.hint_exclusions

View File

@ -5,6 +5,7 @@ import zlib
from collections import defaultdict from collections import defaultdict
from functools import partial from functools import partial
from .Items import OOTItem
from .LocationList import business_scrubs from .LocationList import business_scrubs
from .Hints import writeGossipStoneHints, buildAltarHints, \ from .Hints import writeGossipStoneHints, buildAltarHints, \
buildGanonText, getSimpleHintNoPrefix buildGanonText, getSimpleHintNoPrefix
@ -1881,9 +1882,9 @@ def get_override_entry(player_id, location):
type = 2 type = 2
elif location.type == 'GS Token': elif location.type == 'GS Token':
type = 3 type = 3
elif location.type == 'Shop' and location.item.type != 'Shop': elif location.type == 'Shop' and not (isinstance(location.item, OOTItem) and location.item.type == 'Shop'):
type = 0 type = 0
elif location.type == 'GrottoNPC' and location.item.type != 'Shop': elif location.type == 'GrottoNPC' and not (isinstance(location.item, OOTItem) and location.item.type == 'Shop'):
type = 4 type = 4
elif location.type in ['Song', 'Cutscene']: elif location.type in ['Song', 'Cutscene']:
type = 5 type = 5