From 15dcdca6fcac9c971d874f9ccea6733a296c80d3 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Fri, 8 Apr 2022 21:30:38 +0200 Subject: [PATCH] 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 --- worlds/hk/__init__.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index bdc86b25..8fa9c510 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -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