diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 19d0540e0e..3394fba90c 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -93,6 +93,7 @@
#define FIRE_PRIORITY_SERVER_MAINT 10
#define FIRE_PRIORITY_RESEARCH 10
#define FIRE_PRIORITY_VIS 10
+#define FIRE_PRIORITY_VORE 10
#define FIRE_PRIORITY_GARBAGE 15
#define FIRE_PRIORITY_WET_FLOORS 20
#define FIRE_PRIORITY_AIR 20
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index f65c15ec88..c25ebf5b0a 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -107,7 +107,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/storage/toolbox/artistic = 2,
/obj/item/toy/eightball = 1,
/obj/item/reagent_containers/pill/floorpill = 1,
- /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
+ /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 2,
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
/obj/item/storage/pill_bottle/penis_enlargement = 2,
/obj/item/storage/pill_bottle/breast_enlargement = 2,
diff --git a/code/controllers/subsystem/vore.dm b/code/controllers/subsystem/vore.dm
index faaa297ca3..ca34f9ab61 100644
--- a/code/controllers/subsystem/vore.dm
+++ b/code/controllers/subsystem/vore.dm
@@ -7,7 +7,7 @@
SUBSYSTEM_DEF(bellies)
name = "Bellies"
- priority = 5
+ priority = FIRE_PRIORITY_VORE
wait = 1 SECONDS
flags = SS_KEEP_TIMING|SS_NO_INIT
runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME
diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm
index bf352e8eb7..3885a1f4d9 100644
--- a/code/game/objects/items/devices/PDA/cart.dm
+++ b/code/game/objects/items/devices/PDA/cart.dm
@@ -498,6 +498,23 @@ Code:
else
menu += "[ldat]"
+ menu += "
Pimpin' Ride:
"
+
+ ldat = null
+ for (var/obj/vehicle/ridden/janicart/M in world)
+ var/turf/ml = get_turf(M)
+
+ if(ml)
+ if (ml.z != cl.z)
+ continue
+ var/direction = get_dir(src, M)
+ ldat += "Ride - \[[ml.x],[ml.y] ([uppertext(dir2text(direction))])\]
"
+
+ if (!ldat)
+ menu += "None"
+ else
+ menu += "[ldat]"
+
menu += "Located Janitorial Cart:
"
ldat = null
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index d71b91c8dc..96543ec5af 100755
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -524,12 +524,15 @@
/obj/item/grenade/chem_grenade,
/obj/item/lightreplacer,
/obj/item/flashlight,
+ /obj/item/reagent_containers/glass/beaker,
+ /obj/item/reagent_containers/glass/bottle,
/obj/item/reagent_containers/spray,
/obj/item/soap,
/obj/item/holosign_creator,
/obj/item/key/janitor,
/obj/item/clothing/gloves,
/obj/item/melee/flyswatter,
+ /obj/item/paint/paint_remover,
/obj/item/assembly/mousetrap
))
diff --git a/code/game/world.dm b/code/game/world.dm
index dedf822597..e9c8433006 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -137,7 +137,7 @@ GLOBAL_VAR(restart_counter)
// but those are both private, so let's put the commit info in the runtime
// log which is ultimately public.
log_runtime(GLOB.revdata.get_log_message())
-
+
/world/Topic(T, addr, master, key)
TGS_TOPIC //redirect to server tools if necessary
@@ -270,7 +270,8 @@ GLOBAL_VAR(restart_counter)
if (M.client)
n++
- features += "[SSmapping.config.map_name]" //CIT CHANGE - makes the hub entry display the current map
+ if(SSmapping.config) // this just stops the runtime, honk.
+ features += "[SSmapping.config.map_name]" //CIT CHANGE - makes the hub entry display the current map
if(get_security_level())//CIT CHANGE - makes the hub entry show the security level
features += "[get_security_level()] alert"
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index 46588404aa..931d6611fc 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -1713,7 +1713,7 @@
/datum/supply_pack/service/janitor/janpremium
name = "Janitor Premium Supplies"
desc = "Do to the union for better supplies, we have desided to make a deal for you, In this crate you can get a brand new chem, Drying Angent this stuff is the work of slimes or magic! This crate also contains a rag to test out the Drying Angent magic, three wet floor signs, and some spare bottles of ammonia."
- cost = 3000
+ cost = 1750
access = ACCESS_JANITOR
contains = list(/obj/item/caution,
/obj/item/caution,
@@ -1721,9 +1721,20 @@
/obj/item/reagent_containers/rag,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/spray/drying_agent)
crate_name = "janitor backpack crate"
+/datum/supply_pack/service/janitor/janpimp
+ name = "Custodial Cruiser"
+ desc = "Clown steal your ride? Assistant lock it in the dorms? Order a new one and get back to cleaning in style!"
+ cost = 3000
+ access = ACCESS_JANITOR
+ contains = list(/obj/vehicle/ridden/janicart,
+ /obj/item/key/janitor)
+ crate_name = "janitor ride crate"
+ crate_type = /obj/structure/closet/crate/large
+
/datum/supply_pack/service/mule
name = "MULEbot Crate"
desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!"
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 1af24f8e61..cc6d65b74d 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -65,6 +65,9 @@
var/warcry = "AT"
/obj/item/clothing/gloves/rapid/Touch(mob/living/target,proximity = TRUE)
+ if(!istype(target))
+ return
+
var/mob/living/M = loc
if(M.a_intent == INTENT_HARM)
@@ -87,6 +90,9 @@
warcry = "owo" //Shouldn't ever come into play
/obj/item/clothing/gloves/rapid/hug/Touch(mob/living/target,proximity = TRUE)
+ if(!istype(target))
+ return
+
var/mob/living/M = loc
if(M.a_intent == INTENT_HELP)
diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm
index fee0b2b7c9..308cec1cbd 100644
--- a/code/modules/holodeck/holo_effect.dm
+++ b/code/modules/holodeck/holo_effect.dm
@@ -78,6 +78,12 @@
// these vars are not really standardized but all would theoretically create stuff on death
for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & mob.vars)
mob.vars[v] = null
+ ENABLE_BITFIELD(mob.flags_1, HOLOGRAM_1)
+ if(isliving(mob))
+ var/mob/living/L = mob
+ L.feeding = FALSE
+ L.devourable = FALSE
+ L.digestable = FALSE
return mob
/obj/effect/holodeck_effect/mobspawner/deactivate(var/obj/machinery/computer/holodeck/HC)
@@ -100,7 +106,7 @@
/obj/effect/holodeck_effect/mobspawner/penguin
mobtype = /mob/living/simple_animal/pet/penguin/emperor
-
+
/obj/effect/holodeck_effect/mobspawner/penguin/Initialize()
if(prob(1))
mobtype = /mob/living/simple_animal/pet/penguin/emperor/shamebrero
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index d6eacfe0e1..79a23014b0 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -69,6 +69,8 @@
if(default_deconstruction_screwdriver(user, "dnamod", "dnamod", I))
update_icon()
return
+ else if(default_unfasten_wrench(user, I))
+ return
if(default_deconstruction_crowbar(I))
return
if(iscyborg(user))
diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm
index f106a0dfe0..d24160ad6f 100644
--- a/code/modules/hydroponics/grown/berries.dm
+++ b/code/modules/hydroponics/grown/berries.dm
@@ -218,13 +218,13 @@
// Strawberry
/obj/item/seeds/strawberries
- name = "pack of green grape seeds"
+ name = "pack of strawberrie seeds"
desc = "These seeds grow into strawberries vines."
icon_state = "seed-strawberry"
species = "strawberry"
plantname = "Strawberry Vine"
product = /obj/item/reagent_containers/food/snacks/grown/strawberries
- reagents_add = list("vitamin" = 0.07, "nutriment" = 0.1, "sugar" = 0.1)
+ reagents_add = list("vitamin" = 0.07, "nutriment" = 0.1, "sugar" = 0.2)
mutatelist = list()
/obj/item/reagent_containers/food/snacks/grown/strawberries
@@ -233,4 +233,4 @@
icon_state = "strawberries"
filling_color = "#7FFF00"
tastes = list("strawberries" = 1)
- wine_power = 20
\ No newline at end of file
+ wine_power = 20
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index d992a46245..19f18f9973 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -636,14 +636,15 @@
else if(canmove)
if(on_fire)
resist_fire() //stop, drop, and roll
- else if(resting) //cit change - allows resisting out of resting
+ return
+ if(resting) //cit change - allows resisting out of resting
resist_a_rest() // ditto
- else if(iscarbon(src)) //Citadel Change for embedded removal memes
- var/mob/living/carbon/C = src
- if(!C.handcuffed && !C.legcuffed)
- return TRUE
- else if(last_special <= world.time)
+ return
+ if(resist_embedded()) //Citadel Change for embedded removal memes
+ return
+ if(last_special <= world.time)
resist_restraints() //trying to remove cuffs.
+ return
/mob/proc/resist_grab(moving_resist)
diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
index 41ece5ed06..666de9cef0 100644
--- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
@@ -49,6 +49,8 @@
// Simple animals have only one belly. This creates it (if it isn't already set up)
/mob/living/simple_animal/init_vore()
vore_init = TRUE
+ if(CHECK_BITFIELD(flags_1, HOLOGRAM_1))
+ return
if(vore_organs.len)
return
if(no_vore) //If it can't vore, let's not give it a stomach.
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
index fd548adc76..b11a5ee258 100644
--- a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
@@ -32,4 +32,12 @@
id = "mining"
build_path = /obj/item/circuitboard/computer/mining
category = list("Computer Boards")
- departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY
\ No newline at end of file
+ departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/board/miningshuttle
+ name = "Computer Design (Mining Shuttle Console)"
+ desc = "Allows for the construction of circuit boards used to build a Mining Shuttle Console."
+ id = "miningshuttle"
+ build_path = /obj/item/circuitboard/computer/mining_shuttle
+ category = list("Computer Boards")
+ departmental_flags = DEPARTMENTAL_FLAG_CARGO
\ No newline at end of file
diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm
index 0968ce049e..4a6f9625f1 100644
--- a/code/modules/research/designs/misc_designs.dm
+++ b/code/modules/research/designs/misc_designs.dm
@@ -290,6 +290,16 @@
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
+/datum/design/light_replacer
+ name = "Light Replacer"
+ desc = "A device to automatically replace lights. Refill with working light bulbs."
+ id = "light_replacer"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
+ build_path = /obj/item/lightreplacer
+ category = list("Equipment")
+ departmental_flags = DEPARTMENTAL_FLAG_SERVICE
+
/datum/design/blutrash
name = "Trashbag of Holding"
desc = "An advanced trash bag with bluespace properties; capable of holding a plethora of garbage."
diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm
index f8122c16e3..1dbd111785 100644
--- a/code/modules/research/designs/power_designs.dm
+++ b/code/modules/research/designs/power_designs.dm
@@ -57,16 +57,6 @@
category = list("Misc","Power Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
-/datum/design/light_replacer
- name = "Light Replacer"
- desc = "A device to automatically replace lights. Refill with working light bulbs."
- id = "light_replacer"
- build_type = PROTOLATHE
- materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
- build_path = /obj/item/lightreplacer
- category = list("Power Designs")
- departmental_flags = DEPARTMENTAL_FLAG_SERVICE
-
/datum/design/inducer
name = "Inducer"
desc = "The NT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them."
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 9e7d9be783..0d0d3cc25b 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -432,7 +432,7 @@
display_name = "Computer Consoles"
description = "Computers and how they work."
prereq_ids = list("datatheory")
- design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera")
+ design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "miningshuttle", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
export_price = 5000
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index 40546a907c..fb3de4c1c5 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -354,7 +354,8 @@
if("mam_body_markings" in S.default_features)
var/datum/sprite_accessory/Smark
Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
- body_markings_icon = Smark.icon
+ if(Smark)
+ body_markings_icon = Smark.icon
if(H.dna.features.["mam_body_markings"] != "None")
body_markings = lowertext(H.dna.features.["mam_body_markings"])
auxmarking = lowertext(H.dna.features.["mam_body_markings"])
diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm
index 4594048256..bdf53d3953 100644
--- a/code/modules/vending/megaseed.dm
+++ b/code/modules/vending/megaseed.dm
@@ -31,7 +31,9 @@
/obj/item/seeds/replicapod = 3,
/obj/item/seeds/wheat/rice = 3,
/obj/item/seeds/soya = 3,
+ /obj/item/seeds/sugarcane = 3,
/obj/item/seeds/sunflower = 3,
+ /obj/item/seeds/strawberries = 3,
/obj/item/seeds/tea = 3,
/obj/item/seeds/tobacco = 3,
/obj/item/seeds/tomato = 3,
diff --git a/html/changelogs/AutoChangeLog-pr-9107.yml b/html/changelogs/AutoChangeLog-pr-9107.yml
new file mode 100644
index 0000000000..65a14b9576
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9107.yml
@@ -0,0 +1,4 @@
+author: "Bhijn"
+delete-after: True
+changes:
+ - bugfix: "You can now actually use the resist hotkey to resist out of handcuffs. Woah, revolutionary"
diff --git a/html/changelogs/AutoChangeLog-pr-9119.yml b/html/changelogs/AutoChangeLog-pr-9119.yml
new file mode 100644
index 0000000000..756c3edcb2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9119.yml
@@ -0,0 +1,4 @@
+author: "Linzolle"
+delete-after: True
+changes:
+ - rscadd: "mining shuttle console can now be printed after computer consoles have been researched"
diff --git a/html/changelogs/AutoChangeLog-pr-9130.yml b/html/changelogs/AutoChangeLog-pr-9130.yml
new file mode 100644
index 0000000000..f10e72a6ce
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9130.yml
@@ -0,0 +1,9 @@
+author: "Owai-Seek"
+delete-after: True
+changes:
+ - rscadd: "custodial cruiser cargo crate"
+ - tweak: "removed light replacer from power designs and moved to misc designs"
+ - tweak: "added pimpin ride to custodial locator"
+ - tweak: "added additional items to janibelt whitelist"
+ - tweak: "made plant DNA manipulator unwrenchable"
+ - balance: "reduced janitor premium supply costs"
diff --git a/html/changelogs/AutoChangeLog-pr-9133.yml b/html/changelogs/AutoChangeLog-pr-9133.yml
new file mode 100644
index 0000000000..50bfced879
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9133.yml
@@ -0,0 +1,4 @@
+author: "Raptorizer"
+delete-after: True
+changes:
+ - tweak: "Doubled peach spawn rate"
diff --git a/html/changelogs/AutoChangeLog-pr-9138.yml b/html/changelogs/AutoChangeLog-pr-9138.yml
new file mode 100644
index 0000000000..b78d505c5a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9138.yml
@@ -0,0 +1,4 @@
+author: "kappa-sama"
+delete-after: True
+changes:
+ - bugfix: "seed"
diff --git a/modular_citadel/code/datums/mood_events/moodular.dm b/modular_citadel/code/datums/mood_events/moodular.dm
index b53ce417e8..aa87f1b97a 100644
--- a/modular_citadel/code/datums/mood_events/moodular.dm
+++ b/modular_citadel/code/datums/mood_events/moodular.dm
@@ -3,9 +3,7 @@
// box of hugs
/obj/item/storage/box/hug/attack_self(mob/user)
. = ..()
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("hugbox", /datum/mood_event/hugbox)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"hugbox", /datum/mood_event/hugbox)
//Removed headpats here, duplicate code?
@@ -13,25 +11,17 @@
/obj/item/toy/plush/attack_self(mob/user)
. = ..()
if(stuffed || grenade)
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plushpet", /datum/mood_event/plushpet)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushpet", /datum/mood_event/plushpet)
else
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plush_nostuffing", /datum/mood_event/plush_nostuffing)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plush_nostuffing", /datum/mood_event/plush_nostuffing)
// Jack the Ripper starring plush
/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params)
. = ..()
if(I.is_sharp())
if(!grenade)
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plushjack", /datum/mood_event/plushjack)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushjack", /datum/mood_event/plushjack)
// plush playing (plush-on-plush action)
if(istype(I, /obj/item/toy/plush))
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plushplay", /datum/mood_event/plushplay)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushplay", /datum/mood_event/plushplay)
diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm
index 977d28199e..42363e9e07 100644
--- a/modular_citadel/code/modules/custom_loadout/custom_items.dm
+++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm
@@ -322,31 +322,6 @@
name = "worn pet collar"
desc = "a pet collar that looks well used."
-/obj/item/clothing/neck/petcollar/naomi/examine(mob/user)
- . = ..()
- if(usr.ckey != "technicalmagi")
- to_chat(user, "There's something odd about the it. You probably shouldn't wear it...")//warn people not to wear it if they're not Naomi, lest they become as crazy as she is
-
-/obj/item/clothing/neck/petcollar/naomi/equipped()
- . = ..()
- START_PROCESSING(SSobj, src)
-
-/obj/item/clothing/neck/petcollar/naomi/dropped()
- . = ..()
- STOP_PROCESSING(SSobj, src)
-
-/obj/item/clothing/neck/petcollar/naomi/process()
- var/mob/living/carbon/human/H
- if(ishuman(loc))
- H = loc
- if(!H)
- return
- else if(H.get_item_by_slot(SLOT_NECK) == src)
- if(H.arousalloss < H.max_arousal / 3)
- H.arousalloss = H.max_arousal / 3
- if(prob(5) && H.hallucination < 15)
- H.hallucination += 10
-
/obj/item/clothing/neck/cloak/green
name = "Generic Green Cloak"
desc = "This cloak doesn't seem too special."
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human.dm b/modular_citadel/code/modules/mob/living/carbon/human/human.dm
index 66ac6c05c5..842061bbae 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/human.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/human.dm
@@ -1,36 +1,20 @@
-/mob/living/carbon/human/species/mammal
- race = /datum/species/mammal
-
-/mob/living/carbon/human/species/avian
- race = /datum/species/avian
-
-/mob/living/carbon/human/species/aquatic
- race = /datum/species/aquatic
-
-/mob/living/carbon/human/species/insect
- race = /datum/species/insect
-
-/mob/living/carbon/human/species/xeno
- race = /datum/species/xeno
-
-/mob/living/carbon/human/species/ipc
- race = /datum/species/ipc
-
-/mob/living/carbon/human/species/roundstartslime
- race = /datum/species/jelly/roundstartslime
-
/mob/living/carbon/human/resist()
. = ..()
if(wear_suit && wear_suit.breakouttime)//added in human cuff breakout proc
+
+/mob/living/proc/resist_embedded()
+ return
+
+/mob/living/carbon/human/resist_embedded()
+ if(handcuffed || legcuffed || (wear_suit && wear_suit.breakouttime))
return
- if(.)
- if(canmove && !on_fire)
- for(var/obj/item/bodypart/L in bodyparts)
- if(istype(L) && L.embedded_objects.len)
- for(var/obj/item/I in L.embedded_objects)
- if(istype(I) && I.w_class >= WEIGHT_CLASS_NORMAL) //minimum weight class to insta-ripout via resist
- remove_embedded_unsafe(L, I, src, 1.5) //forcefully call the remove embedded unsafe proc but with extra pain multiplier. if you want to remove it less painfully, examine and remove it carefully.
- return FALSE //Hands are occupied
+ if(canmove && !on_fire)
+ for(var/obj/item/bodypart/L in bodyparts)
+ if(istype(L) && L.embedded_objects.len)
+ for(var/obj/item/I in L.embedded_objects)
+ if(istype(I) && I.w_class >= WEIGHT_CLASS_NORMAL) //minimum weight class to insta-ripout via resist
+ remove_embedded_unsafe(L, I, src, 1.5) //forcefully call the remove embedded unsafe proc but with extra pain multiplier. if you want to remove it less painfully, examine and remove it carefully.
+ return TRUE //Hands are occupied
return
/mob/living/carbon/human/proc/remove_embedded_unsafe(obj/item/bodypart/L, obj/item/I, mob/user, painmul = 1)
diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
index c4b2fbf5b1..1ad29c1af3 100644
--- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
@@ -152,11 +152,13 @@
SSbellies.belly_list += src
/obj/belly/Destroy()
- SSbellies.belly_list -= src
if(owner)
- owner.vore_organs -= src
- owner = null
- . = ..()
+ Remove(owner)
+ return ..()
+
+/obj/belly/proc/Remove(mob/living/owner)
+ owner.vore_organs -= src
+ owner = null
// Called whenever an atom enters this belly
/obj/belly/Entered(var/atom/movable/thing,var/atom/OldLoc)
diff --git a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
index 9356c25f57..da323f02e2 100644
--- a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
@@ -4,10 +4,16 @@
recent_sound = FALSE
return SSBELLIES_IGNORED
+ if(!owner)
+ qdel(src)
+ SSbellies.belly_list -= src
+ return SSBELLIES_PROCESSED
+
if(loc != owner)
- if(istype(owner))
- loc = owner
+ if(isliving(owner)) //we don't have machine based bellies. (yet :honk:)
+ forceMove(owner)
else
+ SSbellies.belly_list -= src
qdel(src)
return SSBELLIES_PROCESSED