From 1c88fbf61589c01260e3fa6b2e109a36cc532bfb Mon Sep 17 00:00:00 2001 From: Xhuis Date: Tue, 23 Dec 2014 18:06:33 -0500 Subject: [PATCH] Adds 3-second cooldown to alien hunter pounce; only triggers if successful --- .../carbon/alien/humanoid/caste/hunter.dm | 31 ++++++++++++++----- .../living/carbon/alien/humanoid/humanoid.dm | 2 ++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 68c63a16410..3239daad08d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -50,10 +50,15 @@ //Hunter verbs -/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap() + +/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap(var/message = 1) leap_on_click = !leap_on_click leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]" - src << "You will now [leap_on_click ? "leap at":"slash at"] enemies!" + if(message) + src << "You will now [leap_on_click ? "leap at":"slash at"] enemies!" + else + return + /mob/living/carbon/alien/humanoid/hunter/ClickOn(var/atom/A, var/params) face_atom(A) @@ -66,6 +71,10 @@ #define MAX_ALIEN_LEAP_DIST 7 /mob/living/carbon/alien/humanoid/hunter/proc/leap_at(var/atom/A) + if(pounce_cooldown) + src << "You are too fatigued to pounce right now!" + return + if(leaping) //Leap while you leap, so you can leap while you leap return @@ -76,13 +85,14 @@ if(lying) return - leaping = 1 - update_icons() - throw_at(A,MAX_ALIEN_LEAP_DIST,1) - leaping = 0 - update_icons() + else //Maybe uses plasma in the future, although that wouldn't make any sense... + leaping = 1 + update_icons() + throw_at(A,MAX_ALIEN_LEAP_DIST,1) + leaping = 0 + update_icons() -/mob/living/carbon/alien/humanoid/throw_impact(A) +/mob/living/carbon/alien/humanoid/hunter/throw_impact(A) var/msg = "" if(A) @@ -92,6 +102,11 @@ L.Weaken(5) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) + + toggle_leap(0) + pounce_cooldown = !pounce_cooldown + spawn(pounce_cooldown_time) //3s by default + pounce_cooldown = !pounce_cooldown else msg = "[src] smashes into [A]!" weakened = 2 diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 587114bd587..a7300deac39 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -5,6 +5,8 @@ var/obj/item/l_store = null var/caste = "" var/leap_on_click = 0 + var/pounce_cooldown = 0 + var/pounce_cooldown_time = 30 update_icon = 1 //This is fine right now, if we're adding organ specific damage this needs to be updated