From b68168e55a871304a03f50758e69a15e56b89108 Mon Sep 17 00:00:00 2001 From: TobleroneSwordfish <20713227+TobleroneSwordfish@users.noreply.github.com> Date: Tue, 24 May 2022 20:13:18 +0100 Subject: [PATCH 1/6] Fixed flockdrone antigrab and made pins work on flock tiles --- code/mob/living/critter/flock/flockdrone.dm | 31 +++++++++++---------- code/turf/turf_flock.dm | 4 +++ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/code/mob/living/critter/flock/flockdrone.dm b/code/mob/living/critter/flock/flockdrone.dm index 76b4f9fbba..6fb94d6c0a 100644 --- a/code/mob/living/critter/flock/flockdrone.dm +++ b/code/mob/living/critter/flock/flockdrone.dm @@ -33,7 +33,7 @@ // antigrab powers var/antigrab_counter = 0 - var/antigrab_fires_at = 100 + var/antigrab_fires_at = 3 var/glow_color = "#26ffe6a2" @@ -399,6 +399,21 @@ if (src.dormant) return + if(length(src.grabbed_by)) + if (length(src.grabbed_by) == 1 && src.find_type_in_hand(/obj/item/grab/block)) + src.antigrab_counter = 0 + else + ++src.antigrab_counter + if(src.antigrab_counter >= src.antigrab_fires_at) + playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) + boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") + for(var/obj/item/grab/G in src.grabbed_by) + var/mob/living/L = G.assailant + L.shock(src, 5000) + src.antigrab_counter = 0 + else + src.antigrab_counter = 0 + var/obj/item/I = absorber.item if (!I) @@ -456,20 +471,6 @@ /mob/living/critter/flock/drone/process_move(keys) - if(keys && length(src.grabbed_by)) - if (length(src.grabbed_by) == 1 && src.find_type_in_hand(/obj/item/grab/block)) - src.antigrab_counter = 0 - else - ++src.antigrab_counter - if(src.antigrab_counter >= src.antigrab_fires_at) - playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) - boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") - for(var/obj/item/grab/G in src.grabbed_by) - var/mob/living/L = G.assailant - L.shock(src, 5000) - src.antigrab_counter = 0 - else - src.antigrab_counter = 0 if(keys & KEY_RUN && src.resources >= 1) if(!src.floorrunning && isfeathertile(src.loc)) if (length(src.grabbed_by)) diff --git a/code/turf/turf_flock.dm b/code/turf/turf_flock.dm index a307b80e08..37eaa6a891 100644 --- a/code/turf/turf_flock.dm +++ b/code/turf/turf_flock.dm @@ -49,6 +49,10 @@ // do not call parent, this is not an ordinary floor if(!C || !user) return + if (istype(C, /obj/item/grab/)) + var/obj/item/grab/G = C + grab_smash(G, user) + return if(ispryingtool(C) && src.broken) playsound(src, "sound/items/Crowbar.ogg", 80, 1) src.break_tile_to_plating() From fa9f30a06b6b7c0394a7a750500ac9b33efa6e96 Mon Sep 17 00:00:00 2001 From: TobleroneSwordfish <20713227+TobleroneSwordfish@users.noreply.github.com> Date: Tue, 24 May 2022 22:02:34 +0100 Subject: [PATCH 2/6] Flame review --- code/turf/turf_flock.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/turf/turf_flock.dm b/code/turf/turf_flock.dm index 37eaa6a891..46501fc38a 100644 --- a/code/turf/turf_flock.dm +++ b/code/turf/turf_flock.dm @@ -49,9 +49,8 @@ // do not call parent, this is not an ordinary floor if(!C || !user) return - if (istype(C, /obj/item/grab/)) - var/obj/item/grab/G = C - grab_smash(G, user) + if (istype(C, /obj/item/grab)) + grab_smash(C, user) return if(ispryingtool(C) && src.broken) playsound(src, "sound/items/Crowbar.ogg", 80, 1) From a0028f0b367edf9d17b130aad05d4cb34e129376 Mon Sep 17 00:00:00 2001 From: TobleroneSwordfish <20713227+TobleroneSwordfish@users.noreply.github.com> Date: Wed, 25 May 2022 00:44:14 +0100 Subject: [PATCH 3/6] Refactor a little and fix some stuff --- code/mob/living/critter/flock/flockdrone.dm | 36 ++++++++++++--------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/code/mob/living/critter/flock/flockdrone.dm b/code/mob/living/critter/flock/flockdrone.dm index 6fb94d6c0a..4f50dedeb0 100644 --- a/code/mob/living/critter/flock/flockdrone.dm +++ b/code/mob/living/critter/flock/flockdrone.dm @@ -33,7 +33,7 @@ // antigrab powers var/antigrab_counter = 0 - var/antigrab_fires_at = 3 + var/antigrab_fires_at = 2 var/glow_color = "#26ffe6a2" @@ -386,6 +386,25 @@ return 2 return ..() +///Runs the drone's inbuilt anti-grab measures, shocking the grabber after a while +/mob/living/critter/flock/drone/proc/do_antigrab() + //if the only grab is a block then ignore it + if (!length(src.grabbed_by) || (length(src.grabbed_by) == 1 && src.find_type_in_hand(/obj/item/grab/block))) + src.antigrab_counter = 0 + return + + antigrab_counter++ + if (antigrab_counter >= src.antigrab_fires_at) + playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) + boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") + for(var/obj/item/grab/G in src.grabbed_by) + if (istype(G, /obj/item/grab/block)) //do not shock ourselves + continue + var/mob/living/L = G.assailant + L.shock(src, 5000) + qdel(G) //in case they don't fall over from our shock + src.antigrab_counter = 0 + /mob/living/critter/flock/drone/Life(datum/controller/process/mobs/parent) if (..(parent)) return TRUE @@ -399,20 +418,7 @@ if (src.dormant) return - if(length(src.grabbed_by)) - if (length(src.grabbed_by) == 1 && src.find_type_in_hand(/obj/item/grab/block)) - src.antigrab_counter = 0 - else - ++src.antigrab_counter - if(src.antigrab_counter >= src.antigrab_fires_at) - playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) - boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") - for(var/obj/item/grab/G in src.grabbed_by) - var/mob/living/L = G.assailant - L.shock(src, 5000) - src.antigrab_counter = 0 - else - src.antigrab_counter = 0 + src.do_antigrab() var/obj/item/I = absorber.item From 40a978b870b57d86a5dd2de1a2443e56e0865abe Mon Sep 17 00:00:00 2001 From: TobleroneSwordfish <20713227+TobleroneSwordfish@users.noreply.github.com> Date: Wed, 25 May 2022 02:26:30 +0100 Subject: [PATCH 4/6] No blocks when grabbed --- code/mob/living/critter/flock/flockdrone.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/mob/living/critter/flock/flockdrone.dm b/code/mob/living/critter/flock/flockdrone.dm index 4f50dedeb0..fd78078749 100644 --- a/code/mob/living/critter/flock/flockdrone.dm +++ b/code/mob/living/critter/flock/flockdrone.dm @@ -388,8 +388,8 @@ ///Runs the drone's inbuilt anti-grab measures, shocking the grabber after a while /mob/living/critter/flock/drone/proc/do_antigrab() - //if the only grab is a block then ignore it - if (!length(src.grabbed_by) || (length(src.grabbed_by) == 1 && src.find_type_in_hand(/obj/item/grab/block))) + //if we're blocking that means we're not grabbed + if (!length(src.grabbed_by) || src.find_type_in_hand(/obj/item/grab/block)) src.antigrab_counter = 0 return @@ -398,8 +398,6 @@ playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") for(var/obj/item/grab/G in src.grabbed_by) - if (istype(G, /obj/item/grab/block)) //do not shock ourselves - continue var/mob/living/L = G.assailant L.shock(src, 5000) qdel(G) //in case they don't fall over from our shock From a33d42d465ac2f65b233690e27dabfc81e7e2423 Mon Sep 17 00:00:00 2001 From: TobleroneSwordfish <20713227+TobleroneSwordfish@users.noreply.github.com> Date: Wed, 25 May 2022 07:10:22 +0100 Subject: [PATCH 5/6] Update code/mob/living/critter/flock/flockdrone.dm Co-authored-by: Ryan <53062374+FlameArrow57@users.noreply.github.com> --- code/mob/living/critter/flock/flockdrone.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/mob/living/critter/flock/flockdrone.dm b/code/mob/living/critter/flock/flockdrone.dm index fd78078749..604215b55e 100644 --- a/code/mob/living/critter/flock/flockdrone.dm +++ b/code/mob/living/critter/flock/flockdrone.dm @@ -393,8 +393,8 @@ src.antigrab_counter = 0 return - antigrab_counter++ - if (antigrab_counter >= src.antigrab_fires_at) + src.antigrab_counter++ + if (src.antigrab_counter >= src.antigrab_fires_at) playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") for(var/obj/item/grab/G in src.grabbed_by) From 63ec76198c80fbf86d8784dcd1823a109e71a4ba Mon Sep 17 00:00:00 2001 From: TobleroneSwordfish <20713227+TobleroneSwordfish@users.noreply.github.com> Date: Thu, 26 May 2022 00:26:53 +0100 Subject: [PATCH 6/6] pRoC cAlL OvERhEaD --- code/mob/living/critter/flock/flockdrone.dm | 31 +++++++++------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/code/mob/living/critter/flock/flockdrone.dm b/code/mob/living/critter/flock/flockdrone.dm index 604215b55e..53bccd6238 100644 --- a/code/mob/living/critter/flock/flockdrone.dm +++ b/code/mob/living/critter/flock/flockdrone.dm @@ -386,23 +386,6 @@ return 2 return ..() -///Runs the drone's inbuilt anti-grab measures, shocking the grabber after a while -/mob/living/critter/flock/drone/proc/do_antigrab() - //if we're blocking that means we're not grabbed - if (!length(src.grabbed_by) || src.find_type_in_hand(/obj/item/grab/block)) - src.antigrab_counter = 0 - return - - src.antigrab_counter++ - if (src.antigrab_counter >= src.antigrab_fires_at) - playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) - boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") - for(var/obj/item/grab/G in src.grabbed_by) - var/mob/living/L = G.assailant - L.shock(src, 5000) - qdel(G) //in case they don't fall over from our shock - src.antigrab_counter = 0 - /mob/living/critter/flock/drone/Life(datum/controller/process/mobs/parent) if (..(parent)) return TRUE @@ -416,7 +399,19 @@ if (src.dormant) return - src.do_antigrab() + //if we're blocking that means we're not grabbed + if (!length(src.grabbed_by) || src.find_type_in_hand(/obj/item/grab/block)) + src.antigrab_counter = 0 + else + src.antigrab_counter++ + if (src.antigrab_counter >= src.antigrab_fires_at) + playsound(src, "sound/effects/electric_shock.ogg", 40, 1, -3) + boutput(src, "\[SYSTEM: Anti-grapple countermeasures deployed.\]") + for(var/obj/item/grab/G in src.grabbed_by) + var/mob/living/L = G.assailant + L.shock(src, 5000) + qdel(G) //in case they don't fall over from our shock + src.antigrab_counter = 0 var/obj/item/I = absorber.item