diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index d9d84ddf783..fcaca01b29d 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -2139,7 +2139,7 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aiE" = (
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aiF" = (
@@ -4303,7 +4303,7 @@
/area/vacant_room/office)
"and" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood,
/area/vacant_room/office)
"ane" = (
@@ -5291,7 +5291,7 @@
/turf/open/floor/plasteel/grimy,
/area/vacant_room/office)
"apa" = (
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plasteel/grimy,
/area/vacant_room/office)
"apb" = (
@@ -9117,7 +9117,7 @@
},
/area/maintenance/port/fore)
"awu" = (
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood,
/area/maintenance/port/fore)
"awv" = (
@@ -9854,7 +9854,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/maintenance/port/fore)
"axU" = (
@@ -20369,7 +20369,7 @@
"aRK" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood{
icon_state = "wood-broken5"
},
@@ -27448,7 +27448,7 @@
/turf/open/floor/engine/o2,
/area/engine/atmos)
"bdo" = (
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/maintenance/port/fore)
"bdp" = (
@@ -63185,7 +63185,7 @@
dir = 4
},
/obj/structure/cable,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/maintenance/starboard)
"cnh" = (
@@ -76985,7 +76985,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/maintenance/port)
"cMV" = (
@@ -88537,7 +88537,7 @@
dir = 8
},
/obj/structure/cable,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/abandoned_gambling_den)
"dhN" = (
@@ -91483,7 +91483,7 @@
dir = 4
},
/obj/structure/cable,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plasteel,
/area/maintenance/starboard/aft)
"dnN" = (
@@ -92525,7 +92525,7 @@
"dpQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood,
/area/crew_quarters/abandoned_gambling_den)
"dpR" = (
@@ -96206,7 +96206,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/abandoned_gambling_den)
"dxH" = (
@@ -102151,7 +102151,7 @@
dir = 4
},
/obj/structure/cable,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood,
/area/crew_quarters/theatre/abandoned)
"dJu" = (
@@ -102234,7 +102234,7 @@
/turf/open/floor/wood,
/area/security/detectives_office/private_investigators_office)
"dJE" = (
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood,
/area/security/detectives_office/private_investigators_office)
"dJF" = (
@@ -106525,7 +106525,7 @@
dir = 4
},
/obj/structure/cable,
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/maintenance/port/aft)
"dRH" = (
@@ -107576,7 +107576,7 @@
/turf/open/floor/plasteel/dark,
/area/medical/virology)
"dUc" = (
-/mob/living/simple_animal/cockroach,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood,
/area/library/abandoned)
"dUd" = (
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index aba03d32524..f92a60af330 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -633,7 +633,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
strong_against = typecacheof(list(
/mob/living/simple_animal/hostile/poison/bees/,
/mob/living/simple_animal/butterfly,
- /mob/living/simple_animal/cockroach,
+ /mob/living/simple_animal/hostile/cockroach,
/obj/item/queen_bee
))
diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm
index 9c713d74af8..d947d76d33c 100644
--- a/code/modules/events/vent_clog.dm
+++ b/code/modules/events/vent_clog.dm
@@ -44,7 +44,7 @@
var/cockroaches = prob(33) ? 3 : 0
while(cockroaches)
- new /mob/living/simple_animal/cockroach(get_turf(vent))
+ new /mob/living/simple_animal/hostile/cockroach(get_turf(vent))
cockroaches--
CHECK_TICK
diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm
index 64151c75585..d3c53644096 100644
--- a/code/modules/mining/abandoned_crates.dm
+++ b/code/modules/mining/abandoned_crates.dm
@@ -204,7 +204,7 @@
new /obj/item/dnainjector/wackymut(src)
if(91)
for(var/i in 1 to 30)
- new /mob/living/simple_animal/cockroach(src)
+ new /mob/living/simple_animal/hostile/cockroach(src)
if(92)
new /obj/item/katana(src)
if(93)
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 64d235b3cdb..ba7fde151a9 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -299,7 +299,7 @@
target_types += /obj/effect/decal/cleanable/trail_holder
if(pests)
- target_types += /mob/living/simple_animal/cockroach
+ target_types += /mob/living/simple_animal/hostile/cockroach
target_types += /mob/living/simple_animal/mouse
if(drawn)
@@ -333,7 +333,7 @@
playsound(src, 'sound/effects/spray2.ogg', 50, TRUE, -6)
A.acid_act(75, 10)
target = null
- else if(istype(A, /mob/living/simple_animal/cockroach) || istype(A, /mob/living/simple_animal/mouse))
+ else if(istype(A, /mob/living/simple_animal/hostile/cockroach) || istype(A, /mob/living/simple_animal/mouse))
var/mob/living/simple_animal/M = target
if(!M.stat)
visible_message("[src] smashes [target] with its mop!")
diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm
deleted file mode 100644
index 288e642b36d..00000000000
--- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm
+++ /dev/null
@@ -1,60 +0,0 @@
-/mob/living/simple_animal/cockroach
- name = "cockroach"
- desc = "This station is just crawling with bugs."
- icon_state = "cockroach"
- icon_dead = "cockroach"
- health = 1
- maxHealth = 1
- turns_per_move = 5
- loot = list(/obj/effect/decal/cleanable/insectguts)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- minbodytemp = 270
- maxbodytemp = INFINITY
- pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
- mob_size = MOB_SIZE_TINY
- mob_biotypes = MOB_ORGANIC|MOB_BUG
- response_disarm_continuous = "shoos"
- response_disarm_simple = "shoo"
- response_harm_continuous = "splats"
- response_harm_simple = "splat"
- speak_emote = list("chitters")
- density = FALSE
- ventcrawler = VENTCRAWLER_ALWAYS
- gold_core_spawnable = FRIENDLY_SPAWN
- verb_say = "chitters"
- verb_ask = "chitters inquisitively"
- verb_exclaim = "chitters loudly"
- verb_yell = "chitters loudly"
- var/squish_chance = 50
- del_on_death = 1
-
-/mob/living/simple_animal/cockroach/death(gibbed)
- if(SSticker.mode && SSticker.mode.station_was_nuked) //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes.
- return
- ..()
-
-/mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM)
- if(ismob(AM))
- if(isliving(AM))
- var/mob/living/A = AM
- if(A.mob_size > MOB_SIZE_SMALL && !(A.movement_type & FLYING))
- if(prob(squish_chance))
- if(ishuman(A))
- var/mob/living/carbon/human/H = A
- if(HAS_TRAIT(H, TRAIT_PACIFISM))
- H.visible_message("[src] avoids getting crushed.", "You avoid crushing [src]!")
- return
- A.visible_message("[A] crushes [src].", "You crushed [src].")
- adjustBruteLoss(1) //kills a normal cockroach
- else
- visible_message("[src] avoids getting crushed.")
- else
- if(isstructure(AM))
- if(prob(squish_chance))
- AM.visible_message("[src] was crushed under [AM].")
- adjustBruteLoss(1)
- else
- visible_message("[src] avoids getting crushed.")
-
-/mob/living/simple_animal/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach.
- return
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index c03041a1781..7aaf339d185 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -26,7 +26,7 @@
gold_core_spawnable = FRIENDLY_SPAWN
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
- var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly, /mob/living/simple_animal/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption.
+ var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly, /mob/living/simple_animal/hostile/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption.
/mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target?
if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it
diff --git a/code/modules/mob/living/simple_animal/hostile/glockroach.dm b/code/modules/mob/living/simple_animal/hostile/cockroach.dm
similarity index 75%
rename from code/modules/mob/living/simple_animal/hostile/glockroach.dm
rename to code/modules/mob/living/simple_animal/hostile/cockroach.dm
index 495c6df2b42..11eb42c25b6 100644
--- a/code/modules/mob/living/simple_animal/hostile/glockroach.dm
+++ b/code/modules/mob/living/simple_animal/hostile/cockroach.dm
@@ -1,16 +1,7 @@
-/obj/projectile/glockroachbullet
- damage = 10 //same damage as a hivebot
- damage_type = BRUTE
-
-/obj/item/ammo_casing/glockroach
- name = "0.9mm bullet casing"
- desc = "A... 0.9mm bullet casing? What?"
- projectile_type = /obj/projectile/glockroachbullet
-
-/mob/living/simple_animal/hostile/glockroach //copypasted from cockroach.dm so i could use the shooting code in hostile.dm
- name = "glockroach"
- desc = "HOLY SHIT, THAT COCKROACH HAS A GUN!"
- icon_state = "glockroach"
+/mob/living/simple_animal/hostile/cockroach
+ name = "cockroach"
+ desc = "This station is just crawling with bugs."
+ icon_state = "cockroach"
icon_dead = "cockroach"
health = 1
maxHealth = 1
@@ -28,25 +19,49 @@
response_harm_simple = "splat"
speak_emote = list("chitters")
density = FALSE
+ melee_damage_lower = 0
+ melee_damage_upper = 0
+ obj_damage = 0
ventcrawler = VENTCRAWLER_ALWAYS
- gold_core_spawnable = HOSTILE_SPAWN
+ gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "chitters"
verb_ask = "chitters inquisitively"
verb_exclaim = "chitters loudly"
verb_yell = "chitters loudly"
+ del_on_death = TRUE
+ environment_smash = ENVIRONMENT_SMASH_NONE
+ faction = list("neutral")
+ var/squish_chance = 50
+
+/obj/projectile/glockroachbullet
+ damage = 10 //same damage as a hivebot
+ damage_type = BRUTE
+
+/obj/item/ammo_casing/glockroach
+ name = "0.9mm bullet casing"
+ desc = "A... 0.9mm bullet casing? What?"
+ projectile_type = /obj/projectile/glockroachbullet
+
+/mob/living/simple_animal/hostile/cockroach/glockroach
+ name = "glockroach"
+ desc = "HOLY SHIT, THAT COCKROACH HAS A GUN!"
+ icon_state = "glockroach"
+ melee_damage_lower = 5
+ melee_damage_upper = 5
+ obj_damage = 20
+ gold_core_spawnable = HOSTILE_SPAWN
projectilesound = 'sound/weapons/gun/pistol/shot.ogg'
projectiletype = /obj/projectile/glockroachbullet
casingtype = /obj/item/ammo_casing/glockroach
- ranged = 1
- var/squish_chance = 50
- del_on_death = 1
+ ranged = TRUE
+ faction = list("hostile")
-/mob/living/simple_animal/hostile/glockroach/death(gibbed)
+/mob/living/simple_animal/hostile/cockroach/death(gibbed)
if(SSticker.mode && SSticker.mode.station_was_nuked) //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes.
return
..()
-/mob/living/simple_animal/hostile/glockroach/Crossed(var/atom/movable/AM)
+/mob/living/simple_animal/hostile/cockroach/Crossed(var/atom/movable/AM)
if(ismob(AM))
if(isliving(AM))
var/mob/living/A = AM
@@ -64,6 +79,5 @@
else
visible_message("[src] avoids getting crushed.")
-/mob/living/simple_animal/hostile/glockroach/ex_act() //Explosions are a terrible way to handle a cockroach.
+/mob/living/simple_animal/hostile/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach.
return
-
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index a98b9815d21..954cd200999 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -733,7 +733,7 @@ Difficulty: Very Hard
mobcheck = TRUE
break
if(!mobcheck)
- new /mob/living/simple_animal/cockroach(get_step(src,dir)) //Just in case there aren't any animals on the station, this will leave you with a terrible option to possess if you feel like it
+ new /mob/living/simple_animal/hostile/cockroach(get_step(src,dir)) //Just in case there aren't any animals on the station, this will leave you with a terrible option to possess if you feel like it //i found it funny that in the file for a giant angel beast theres a cockroach
/obj/structure/closet/stasis
name = "quantum entanglement stasis warp field"
diff --git a/tgstation.dme b/tgstation.dme
index 59e43550e11..f1de9a2dc58 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2236,7 +2236,6 @@
#include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm"
#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm"
#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
-#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm"
#include "code\modules\mob\living\simple_animal\friendly\crab.dm"
#include "code\modules\mob\living\simple_animal\friendly\dog.dm"
#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm"
@@ -2274,11 +2273,11 @@
#include "code\modules\mob\living\simple_animal\hostile\bees.dm"
#include "code\modules\mob\living\simple_animal\hostile\carp.dm"
#include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm"
+#include "code\modules\mob\living\simple_animal\hostile\cockroach.dm"
#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm"
#include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm"
#include "code\modules\mob\living\simple_animal\hostile\faithless.dm"
#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm"
-#include "code\modules\mob\living\simple_animal\hostile\glockroach.dm"
#include "code\modules\mob\living\simple_animal\hostile\goose.dm"
#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm"
#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm"