Super Metroid: KeyError on invalid item name #4222

This commit is contained in:
Exempt-Medic 2024-11-30 23:03:13 -05:00 committed by GitHub
parent 7b755408fa
commit 62ce42440b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 4 additions and 2 deletions

View File

@ -313,9 +313,11 @@ class SMWorld(World):
return super(SMWorld, self).remove(state, item)
def create_item(self, name: str) -> Item:
item = next(x for x in ItemManager.Items.values() if x.Name == name)
item = next((x for x in ItemManager.Items.values() if x.Name == name), None)
if item:
return SMItem(item.Name, ItemClassification.progression if item.Class != 'Minor' else ItemClassification.filler, item.Type, self.item_name_to_id[item.Name],
player=self.player)
raise KeyError(f"Item {name} for {self.player_name} is invalid.")
def get_filler_item_name(self) -> str:
if self.multiworld.random.randint(0, 100) < self.options.minor_qty.value: