HK: slight optimization

items are marked as advancement if they have an additional effect, so instead of a lookup we can just refer to a bool that's already local as a quick pre-check
This commit is contained in:
Fabian Dill 2022-04-08 21:30:38 +02:00 committed by Fabian Dill
parent 7a6aef03e7
commit 15dcdca6fc
1 changed files with 8 additions and 7 deletions

View File

@ -257,19 +257,20 @@ class HKWorld(World):
def collect(self, state, item: HKItem) -> bool:
change = super(HKWorld, self).collect(state, item)
for effect_name, effect_value in item_effects.get(item.name, {}).items():
state.prog_items[effect_name, item.player] += effect_value
if change:
for effect_name, effect_value in item_effects.get(item.name, {}).items():
state.prog_items[effect_name, item.player] += effect_value
return change
def remove(self, state, item: HKItem) -> bool:
change = super(HKWorld, self).remove(state, item)
for effect_name, effect_value in item_effects.get(item.name, {}).items():
if state.prog_items[effect_name, item.player] == effect_value:
del state.prog_items[effect_name, item.player]
state.prog_items[effect_name, item.player] -= effect_value
if change:
for effect_name, effect_value in item_effects.get(item.name, {}).items():
if state.prog_items[effect_name, item.player] == effect_value:
del state.prog_items[effect_name, item.player]
state.prog_items[effect_name, item.player] -= effect_value
return change