diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm
index 31a7a2e9aa..3fece6ccc6 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm
@@ -287,6 +287,7 @@
makes_dirt = 0
digestable = 0
humanoid_hands = 1 //These should all be ones requiring admin-intervention to play as, so they can get decent tool-usage, as a treat.
+ var/siemens_coefficient = 1 //Referenced later by others.
/mob/living/simple_mob/vore/alienanimals/catslug/custom/Initialize()
. = ..()
@@ -424,6 +425,7 @@
holder_type = /obj/item/weapon/holder/catslug/custom/engislug
say_list_type = /datum/say_list/catslug/custom/engislug
mobcard_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_construction, access_atmospherics)
+ siemens_coefficient = 0 //Noodly fella's gone and built up an immunity from many small shocks
minbodytemp = 200
maxbodytemp = 600 //engislug can survive a little heat, as a treat
@@ -529,6 +531,7 @@
say_list_type = /datum/say_list/catslug/custom/gatslug
melee_damage_lower = 5
melee_damage_upper = 10 //"Trained" security member, so they can hit that little bit harder
+ taser_kill = 0 //Shouldn't be weak to accidental friendly fire from other officers
armor = list(
"melee" = 15,
"bullet" = 0,
@@ -657,6 +660,189 @@
/obj/item/weapon/holder/catslug/custom/cargoslug
item_state = "cargoslug"
+//Command catslug
+/datum/category_item/catalogue/fauna/catslug/custom/capslug
+ name = "Alien Wildlife - Catslug - Captain Crumsh"
+ desc = "A resident worker at the NSB Rascal's Pass, Captain Crumsh \
+ comes from a long line of catslug leaders, maintaining the family tradition \
+ for numerous years now. After a long tenure serving at Central Command, they \
+ requested transfer to a more \"front-facing\" facility, ending up shipped across \
+ to the facilty recently set up on Virgo 3C. - \
+ The Catslug is an omnivorous terrestrial creature.\
+ Exhibiting properties of both a cat and a slug (hence its name)\
+ it moves somewhat awkwardly. However, the unique qualities of\
+ its body make it exceedingly flexible and smooth, allowing it to\
+ wiggle into and move effectively in even extremely tight spaces.\
+ Additionally, it has surprisingly capable hands, and moves quite\
+ well on two legs or four. Caution is advised when interacting\
+ with these creatures, they are quite intelligent, and proficient\
+ tool users."
+ value = CATALOGUER_REWARD_TRIVIAL //Local catslugs worth less than rarer ones
+
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/capslug
+ name = "Captain Crumsh"
+ desc = "A regal-blue furred noodley bodied creature with thin arms and legs, and gloomy dark eyes. This one wears an impressive tower of hats upon it's head. Exudes a sense of superiority, clearly this 'slug has more porl than you."
+ tt_desc = "Mollusca Felis Praefectus"
+ icon_state = "capslug"
+ icon_living = "capslug"
+ icon_rest = "capslug_rest"
+ icon_dead = "capslug_dead"
+ faction = "neutral"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/catslug/custom/capslug)
+ holder_type = /obj/item/weapon/holder/catslug/custom/capslug
+ say_list_type = /datum/say_list/catslug/custom/capslug
+ mobcard_access = list(access_maint_tunnels) //The all_station_access part below adds onto this.
+
+/datum/say_list/catslug/custom/capslug
+ speak = list("How open big glass box with shiny inside?.", "What is that?", "Respect my authority!", "What are you doing?", "How did you get here?", "Fax for yellow-shirts!", "WAOW!", "Why is that console blinking and clicking?", "Do we need to call for ERT?", "Have been called comdom before, not sure why they thought I was a balloon.")
+
+/obj/item/weapon/holder/catslug/custom/capslug
+ item_state = "capslug"
+
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/capslug/Initialize() //This is such an awful proc, but if someone wants it better they're welcome to have a go at it.
+ . = ..()
+ mob_radio = new /obj/item/device/radio/headset/mob_headset(src)
+ mob_radio.frequency = PUB_FREQ
+ mob_radio.ks2type = /obj/item/device/encryptionkey/heads/captain //Might not be able to speak, but the catslug can listen.
+ mob_radio.keyslot2 = new /obj/item/device/encryptionkey/heads/captain(mob_radio)
+ mob_radio.recalculateChannels(1)
+ mobcard.access |= get_all_station_access()
+
+//=============================================================================
+//Admin-spawn only catslugs below - Expect overpowered things & silliness below
+//=============================================================================
+
+//Deathsquad catslug
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/deathslug
+ name = "Asset Purrtection"
+ desc = "What are you doing staring at this angry little fella? Run."
+ tt_desc = "Mollusca Felis Eversor"
+ icon_state = "deathslug"
+ icon_living = "deathslug"
+ icon_rest = "deathslug_rest"
+ icon_dead = "deathslug_dead"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/catslug) //So they don't get the spaceslug's cataloguer entry
+ say_list_type = /datum/say_list/catslug //Similarly, so they don't get the spaceslug's speech lines.
+ mobcard_access = list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
+ maxHealth = 100 //Tough noodles
+ health = 100
+ taser_kill = 0
+ mob_size = MOB_MEDIUM //As funny as picking up deathslugs & throwing them at people to be merked would be, I'm not willing to sprite their holders. Something something hardsuit heavy can be the "IC" reason for this.
+ siemens_coefficient = 0
+ armor = list(
+ "melee" = 60,
+ "bullet" = 50,
+ "laser" = 50,
+ "energy" = 40,
+ "bomb" = 40,
+ "bio" = 100,
+ "rad" = 100
+ )
+
+ minbodytemp = 0
+ maxbodytemp = 5000
+
+ player_msg = "You work in the service of corporate Asset Protection, answering directly to the Board of Directors and Asset Protection Commandos."
+
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/deathslug/Initialize()
+ . = ..()
+ mob_radio = new /obj/item/device/radio/headset/mob_headset(src)
+ mob_radio.frequency = DTH_FREQ //Can't tell if bugged, deathsquad freq in general seems broken
+ mobcard.access |= get_all_station_access()
+
+//Syndicate catslug
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/syndislug
+ name = "Mercenyary"
+ desc = "What are you doing staring at this crimson-hardsuit wearing angry little fella? Run."
+ tt_desc = "Mollusca Felis Mors"
+ icon_state = "syndislug"
+ icon_living = "syndislug"
+ icon_rest = "syndislug_rest"
+ icon_dead = "syndislug_dead"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/catslug)
+ say_list_type = /datum/say_list/catslug
+ mobcard_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks)
+ faction = "syndicate"
+ maxHealth = 100 //Tough noodles
+ health = 100
+ taser_kill = 0
+ melee_damage_lower = 15
+ melee_damage_upper = 20
+ mob_size = MOB_MEDIUM //Something something hardsuits are heavy.
+ siemens_coefficient = 0
+ armor = list(
+ "melee" = 80,
+ "bullet" = 65,
+ "laser" = 50,
+ "energy" = 15,
+ "bomb" = 80,
+ "bio" = 100,
+ "rad" = 60
+ )
+
+ minbodytemp = 0
+ maxbodytemp = 5000
+
+ player_msg = "You are in the employ of a criminal syndicate hostile to corporate interests. Follow the Mercenary or Commando's orders and assist them in their goals by any means available."
+
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/syndislug/Initialize()
+ . = ..()
+ mob_radio = new /obj/item/device/radio/headset/mob_headset(src)
+ mob_radio.frequency = SYND_FREQ
+ mob_radio.syndie = 1
+ mob_radio.ks2type = /obj/item/device/encryptionkey/syndicate
+ mob_radio.keyslot2 = new /obj/item/device/encryptionkey/syndicate(mob_radio)
+ mob_radio.recalculateChannels(1)
+ mobcard.access |= get_all_station_access()
+
+//ERT catslug
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/responseslug
+ name = "Emeowgency Responder"
+ desc = "The cavalry has arrived."
+ tt_desc = "Mollusca Felis Salvator"
+ icon_state = "responseslug"
+ icon_living = "responseslug"
+ icon_rest = "responseslug_rest"
+ icon_dead = "responseslug_dead"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/catslug)
+ say_list_type = /datum/say_list/catslug
+ mobcard_access = list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
+ maxHealth = 100 //Tough noodles
+ health = 100
+ taser_kill = 0
+ mob_size = MOB_MEDIUM //Something something hardsuits are heavy.
+ siemens_coefficient = 0
+ armor = list(
+ "melee" = 60,
+ "bullet" = 50,
+ "laser" = 30,
+ "energy" = 15,
+ "bomb" = 30,
+ "bio" = 100,
+ "rad" = 100
+ )
+
+ minbodytemp = 0
+ maxbodytemp = 5000
+
+ player_msg = "You are an anti antagonist! Within the rules, try to save the station and its inhabitants from the ongoing crisis. Try to make sure other players have fun! \
+ If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! \
+ Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to the ERT."
+
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/responseslug/Initialize()
+ . = ..()
+ mob_radio = new /obj/item/device/radio/headset/mob_headset(src)
+ mob_radio.frequency = ERT_FREQ
+ mob_radio.centComm = 1
+ mob_radio.ks2type = /obj/item/device/encryptionkey/ert
+ mob_radio.keyslot2 = new /obj/item/device/encryptionkey/ert(mob_radio)
+ mob_radio.recalculateChannels(1)
+ mobcard.access |= get_all_station_access()
+
+//=============================
+//Admin-spawn only catslugs end
+//=============================
+
//Suslug's below
/mob/living/simple_mob/vore/alienanimals/catslug/suslug
@@ -793,4 +979,4 @@
color = COLOR_LIGHT_PINK
/mob/living/simple_mob/vore/alienanimals/catslug/suslug/color/light_yellow
- color = COLOR_WHEAT
\ No newline at end of file
+ color = COLOR_WHEAT
diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm
index fc8e44decf..d436198017 100644
--- a/code/modules/ventcrawl/ventcrawl.dm
+++ b/code/modules/ventcrawl/ventcrawl.dm
@@ -7,13 +7,14 @@ var/list/ventcrawl_machinery = list(
/mob/living/var/list/can_enter_vent_with = list(
/obj/item/weapon/implant,
/obj/item/device/radio/borg,
+ /obj/item/device/radio/headset/mob_headset,
/obj/item/weapon/holder,
/obj/machinery/camera,
/obj/belly,
/obj/screen,
/atom/movable/emissive_blocker
)
- //VOREStation Edit : added /obj/belly, to this list, CI is complaining about this in his indentation check
+ //VOREStation Edit : added /obj/belly, to this list, CI is complaining about this in his indentation check. Added mob_headset for those with radios so there's no weirdness.
//mob/living/simple_mob/borer, //VORESTATION AI TEMPORARY REMOVAL REPLACE BACK IN LIST WHEN RESOLVED //VOREStation Edit
/mob/living/var/list/icon/pipes_shown = list()
diff --git a/icons/inventory/head/mob.dmi b/icons/inventory/head/mob.dmi
index 12271419c8..063d6444df 100644
Binary files a/icons/inventory/head/mob.dmi and b/icons/inventory/head/mob.dmi differ
diff --git a/icons/mob/alienanimals_x32.dmi b/icons/mob/alienanimals_x32.dmi
index 1cbea2d82a..1fef85f4d8 100644
Binary files a/icons/mob/alienanimals_x32.dmi and b/icons/mob/alienanimals_x32.dmi differ
diff --git a/icons/mob/items/lefthand_holder.dmi b/icons/mob/items/lefthand_holder.dmi
index 6e5549b1a9..f2b1e09b25 100644
Binary files a/icons/mob/items/lefthand_holder.dmi and b/icons/mob/items/lefthand_holder.dmi differ
diff --git a/icons/mob/items/righthand_holder.dmi b/icons/mob/items/righthand_holder.dmi
index 79b373d665..07f3b16be9 100644
Binary files a/icons/mob/items/righthand_holder.dmi and b/icons/mob/items/righthand_holder.dmi differ
diff --git a/maps/groundbase/gb-z2.dmm b/maps/groundbase/gb-z2.dmm
index 35ba643852..a168e86ced 100644
--- a/maps/groundbase/gb-z2.dmm
+++ b/maps/groundbase/gb-z2.dmm
@@ -4549,12 +4549,8 @@
/turf/simulated/floor/wood,
/area/groundbase/dorms/room8)
"nC" = (
-/mob/living/simple_mob/vore/alienanimals/catslug{
- color = "#1b1b5c";
- desc = "More porl than you.";
- faction = "neutral";
- ghostjoin = 1;
- name = "Captain Crumsh"
+/mob/living/simple_mob/vore/alienanimals/catslug/custom/capslug{
+ ghostjoin = 1
},
/obj/structure/cable/yellow{
icon_state = "2-8"