From dce7fc8b1c34a45f66ead83100a57caf7ae8c39b Mon Sep 17 00:00:00 2001 From: Tegiminis Date: Fri, 5 Aug 2022 11:30:28 -0700 Subject: [PATCH] alter_cache helper method on buffs --- evennia/contrib/rpg/buffs/buff.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/evennia/contrib/rpg/buffs/buff.py b/evennia/contrib/rpg/buffs/buff.py index b8ad197e35..9e70403963 100644 --- a/evennia/contrib/rpg/buffs/buff.py +++ b/evennia/contrib/rpg/buffs/buff.py @@ -232,8 +232,18 @@ class BaseBuff: def reset(self): """Resets the buff start time as though it were just applied; functionally identical to a refresh""" + self.start = time.time() self.handler.buffcache[self.buffkey]["start"] = time.time() + def alter_cache(self, to_cache: dict = None): + """Alters this buff's cache, both internally (this instance) and on the handler's buff cache.""" + if not isinstance(to_cache, dict): + raise TypeError + _cache = dict(self.handler.buffcache[self.buffkey]) + _cache.update(to_cache) + self.cache = _cache + self.handler.buffcache[self.buffkey] = _cache + # endregion # region hook methods