This commit is contained in:
silicons
2020-07-23 11:01:33 -07:00
parent da4e208f94
commit 21143ade21
3 changed files with 23 additions and 4 deletions
+2 -4
View File
@@ -100,11 +100,9 @@
* * immediate - Defaults to FALSE. Checks last action using immediate, used on the head end of an attack. This is to prevent colliding attacks in case of sleep. Not that you should sleep() in an attack but.. y'know.
*/
/mob/proc/CheckActionCooldown(cooldown = 0.5, from_next_action = FALSE, ignore_mod = FALSE, ignore_next_action = FALSE, immediate = FALSE)
var/mod = action_cooldown_mod
for(var/datum/status_effect/S in status_effects)
mod *= S.action_cooldown_mod()
////// WARNING: IF YOU MODIFY THIS PROC, CHECK living/clickdelay.dm! DUE TO STATUS EFFECTS ONLY BEING ON LIVING, THIS PROC IS COPYPASTED THERE AND MODIFIED.
return (ignore_next_action || (world.time >= (immediate? next_action_immediate : next_action))) && \
(world.time >= ((from_next_action? (immediate? next_action_immediate : next_action) : (immediate? last_action_immediate : last_action)) + max(0, ignore_mod? cooldown : (cooldown * mod + action_cooldown_adjust))))
(world.time >= ((from_next_action? (immediate? next_action_immediate : next_action) : (immediate? last_action_immediate : last_action)) + max(0, ignore_mod? cooldown : (cooldown * action_cooldown_mod + action_cooldown_adjust))))
/**
* Flushes last_action and next_action