@@ -16,17 +16,16 @@ class_name CooldownDecorator
1616
1717func tick (actor : Node , blackboard : Blackboard ) -> int :
1818 var c : BeehaveNode = get_child (0 )
19- var remaining_time : float = blackboard .get_value (cache_key , 0.0 , str (actor .get_instance_id ()))
19+ var end_time : float = blackboard .get_value (cache_key , 0.0 , str (actor .get_instance_id ()))
20+ var current_time = Time .get_ticks_msec ()
2021 var response : int
2122
2223 if c != running_child :
2324 c .before_run (actor , blackboard )
2425
25- if remaining_time > 0 :
26+ if current_time < end_time :
2627 response = FAILURE
2728
28- remaining_time -= get_physics_process_delta_time ()
29- blackboard .set_value (cache_key , remaining_time , str (actor .get_instance_id ()))
3029 if can_send_message (blackboard ):
3130 BeehaveDebuggerMessages .process_tick (self .get_instance_id (), response , blackboard .get_debug_data ())
3231 else :
@@ -44,12 +43,13 @@ func tick(actor: Node, blackboard: Blackboard) -> int:
4443 if c is ActionLeaf :
4544 blackboard .set_value ("running_action" , c , str (actor .get_instance_id ()))
4645 else :
46+ end_time = Time .get_ticks_msec () + wait_time * 1000
4747 c .after_run (actor , blackboard )
48- blackboard .set_value (cache_key , wait_time , str (actor .get_instance_id ()))
48+ blackboard .set_value (cache_key , end_time , str (actor .get_instance_id ()))
4949
5050 return response
5151
5252func interrupt (actor : Node , blackboard : Blackboard ) -> void :
5353 # Reset the cooldown when the branch changes
5454 blackboard .set_value (cache_key , 0.0 , str (actor .get_instance_id ()))
55- super .interrupt (actor , blackboard )
55+ super .interrupt (actor , blackboard )
0 commit comments