def __init(self, callback, conditions): self.conditions = conditions if __name__ == '__main__': from village import Village from account import Account from resources import Resources from event import Event class K(): @condition_changes(ConditionEnoughSpaceForResources) def handler_enought_space(self): print("enough!") vill = Village(Account((0,0), None), None, None, None) vill.suppress_refresh = True vill.resources = Resources((90,0,0,0)) vill.production = Resources((1,0,0,0)) vill.storage_capacity = Resources((100,0,0,0)) vill.next_refresh_time = datetime(2220, 1, 1) inst = K() c = inst.handler_enought_space().enqueue(vill, Resources((20,0,0,0))) print("first check") vill.fire_event(Event(vill, 'resources_spent', datetime.now())) print("is true:", c.is_true()) print("second check") vill.resources = Resources((0,0,0,0)) vill.fire_event(Event(vill, 'resources_spent', datetime.now())) print("is true:", c.is_true())