diff --git a/code/citadel/dogborgstuff.dm b/code/citadel/dogborgstuff.dm index 6925fac170..88fe280c09 100644 --- a/code/citadel/dogborgstuff.dm +++ b/code/citadel/dogborgstuff.dm @@ -520,7 +520,7 @@ var/sleeper_g var/sleeper_r -#define MAX_K9_LEAP_DIST 3 //Dropped from 7 to 3 because waa waa +#define MAX_K9_LEAP_DIST 1 //because something's definitely borked the pounce functioning from a distance. /obj/item/weapon/dogborg/pounce/afterattack(atom/A, mob/user) var/mob/living/silicon/robot.R = user @@ -531,7 +531,7 @@ src << "Your leg actuators are still recharging!" return - if(leaping) //Leap while you leap, so you can leap while you leap + if(leaping || stat || buckled || lying) return if(!has_gravity(src) || !has_gravity(A)) @@ -544,38 +544,49 @@ else leaping = 1 + weather_immunities += "lava" pixel_y = 10 - throw_at(A,MAX_K9_LEAP_DIST,1, spin=0, diagonals_first = 1) + update_icons() + throw_at(A, MAX_K9_LEAP_DIST, 1, spin=0, diagonals_first = 1) leaping = 0 pixel_y = initial(pixel_y) + update_icons() cell.charge = cell.charge - 500 //Doubled the energy consumption + weather_immunities -= "lava" pounce_cooldown = !pounce_cooldown spawn(pounce_cooldown_time) pounce_cooldown = !pounce_cooldown -/mob/living/silicon/robot/throw_impact(atom/A, params) +/mob/living/silicon/robot/throw_impact(atom/A) if(!leaping) return ..() if(A) - if(istype(A, /mob/living)) + if(isliving(A)) var/mob/living/L = A var/blocked = 0 if(ishuman(A)) var/mob/living/carbon/human/H = A - if(H.check_shields(90, "the [name]", src, 1)) + if(H.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK)) blocked = 1 if(!blocked) L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") - L.Weaken(2)// NO LONGER enough to cuff em before they run off again, unless you're lucky. Requested nerf. + L.Weaken(7)//Racked nerfs back up to stunbaton levels to make up for the distance pouncing being fuckered. sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) + else + Weaken(2, 1, 1) + leaping = 0 + pounce_cooldown = !pounce_cooldown + spawn(pounce_cooldown_time) //3s by default + pounce_cooldown = !pounce_cooldown else if(A.density && !A.CanPass(src)) - visible_message("[src] smashes into [A]!") - weakened = 2 + visible_message("[src] smashes into [A]!", "[src] smashes into [A]!") + Weaken(2, 1, 1) if(leaping) leaping = 0 + update_icons() update_canmove()