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