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"