From 5e5bc2a690f298e6bcacbdd7b33548ec73fef248 Mon Sep 17 00:00:00 2001
From: Ghommie <42542238+Ghommie@users.noreply.github.com>
Date: Sun, 29 Mar 2020 17:01:05 +0200
Subject: [PATCH] force push.
---
code/datums/helper_datums/teleport.dm | 2 +-
code/modules/antagonists/swarmer/swarmer.dm | 61 ++++++++++++++++++-
.../antagonists/swarmer/swarmer_event.dm | 6 +-
3 files changed, 63 insertions(+), 6 deletions(-)
diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm
index 6b0981665d..c46a03a986 100644
--- a/code/datums/helper_datums/teleport.dm
+++ b/code/datums/helper_datums/teleport.dm
@@ -128,7 +128,7 @@
// Can most things breathe?
if(trace_gases)
continue
- if(A_gases[/datum/gas/oxygen] >= 16)
+ if(A_gases[/datum/gas/oxygen] <= 16)
continue
if(A_gases[/datum/gas/plasma])
continue
diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm
index 724c4e6f76..d4ed9a21e5 100644
--- a/code/modules/antagonists/swarmer/swarmer.dm
+++ b/code/modules/antagonists/swarmer/swarmer.dm
@@ -179,8 +179,8 @@
/obj/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
if(resistance_flags & INDESTRUCTIBLE)
return FALSE
- for(var/mob/living/L in contents)
- if(!issilicon(L) && !isbrain(L))
+ for(var/mob/living/L in GetAllContents())
+ if(!ispAI(L) && !isbrain(L))
to_chat(S, "An organism has been detected inside this object. Aborting.")
return FALSE
return ..()
@@ -416,6 +416,57 @@
to_chat(S, "Destroying this object would cause a catastrophic chain reaction. Aborting.")
return FALSE
+/obj/machinery/ore_silo/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "Destroying this object, however tempting it's, will disrupt the research development that may serve for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/machinery/rnd/server/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "Destroying this object, will disrupt the research development that may serve for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/machinery/pool/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) //pool's closed, but not.
+ to_chat(S, "The pool must not be closed, it will provide healthy fun for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/structure/pool/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "The pool must not be closed, it will provide healthy fun for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/structure/holosign/barrier/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ var/static/list/lazy_typecache = typecacheof(list(/obj/structure/holosign/barrier/engineering, /obj/structure/holosign/barrier/firelock, /obj/structure/holosign/barrier/atmos, /obj/structure/holosign/barrier/combifan))
+ if(lazy_typecache[type])
+ to_chat(S, "Destroying this holographic barrier may not benefit us. Aborting.")
+ return FALSE
+ return ..()
+
+/obj/machinery/dominator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/machinery/computer/bsa_control/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/machinery/bsa/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/machinery/dna_vault/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/structure/filler/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.")
+ return FALSE
+
+/obj/machinery/computer/sat_control/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "Destroying this object will lower the station shielding against space debris. Aborting.")
+ return FALSE
+
+/obj/machinery/satellite/meteor_shield/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
+ to_chat(S, "Destroying this object will lower the station shielding against space debris. Aborting.")
+ return FALSE
+
////END CTRL CLICK FOR SWARMERS////
/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0)
@@ -429,6 +480,12 @@
return new fabrication_object(loc)
/mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target)
+ if(target.resistance_flags & INDESTRUCTIBLE)
+ return FALSE
+ for(var/mob/living/L in GetAllContents())
+ if(!ispAI(L) && !isbrain(L))
+ to_chat(src, "An organism has been detected inside this object. Aborting.")
+ return FALSE
var/resource_gain = target.IntegrateAmount()
if(resources + resource_gain > max_resources)
to_chat(src, "We cannot hold more materials!")
diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm
index 6ef35fdbaa..c626799a53 100644
--- a/code/modules/antagonists/swarmer/swarmer_event.dm
+++ b/code/modules/antagonists/swarmer/swarmer_event.dm
@@ -1,10 +1,10 @@
/datum/round_event_control/spawn_swarmer
name = "Spawn Swarmer Shell"
typepath = /datum/round_event/spawn_swarmer
- weight = 0
- max_occurrences = 0
+ weight = 7
+ max_occurrences = 1 //Only once okay fam
earliest_start = 30 MINUTES
- min_players = 15
+ min_players = 35
gamemode_blacklist = list("dynamic")