From 2b1002702409fc9af76f1bdd5a88b58df29b60db Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 7 Jan 2020 17:02:39 +1000 Subject: [PATCH] Makes the sickness affect only people dying via non-vore deaths, adds fluff version with no downsides --- code/datums/mind_vr.dm | 2 ++ .../Chemistry-Reagents-Medicine_vr.dm | 3 ++- code/modules/resleeving/machines.dm | 8 ++++++-- code/modules/resleeving/resleeving_sickness.dm | 10 +++++++++- code/modules/vore/eating/belly_obj_vr.dm | 2 ++ vorestation.dme | 1 + 6 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 code/datums/mind_vr.dm diff --git a/code/datums/mind_vr.dm b/code/datums/mind_vr.dm new file mode 100644 index 0000000000..851e713f66 --- /dev/null +++ b/code/datums/mind_vr.dm @@ -0,0 +1,2 @@ +/datum/mind + var/vore_death = FALSE // Was our last gasp a gurgle? \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm index 94f3d88f43..b431669982 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm @@ -90,4 +90,5 @@ scannable = 0 /datum/reagent/sleevingcure/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) - M.remove_a_modifier_of_type(/datum/modifier/resleeving_sickness) \ No newline at end of file + M.remove_a_modifier_of_type(/datum/modifier/resleeving_sickness) + M.remove_a_modifier_of_type(/datum/modifier/faux_resleeving_sickness) \ No newline at end of file diff --git a/code/modules/resleeving/machines.dm b/code/modules/resleeving/machines.dm index 8b7cd7d42e..5e0f8af252 100644 --- a/code/modules/resleeving/machines.dm +++ b/code/modules/resleeving/machines.dm @@ -582,9 +582,13 @@ else occupant << "You feel a small pain in your head as you're given a new backup implant. Oh, and a new body. It's disorienting, to say the least." - occupant.confused = max(occupant.confused, confuse_amount) //Apply immedeate effects + occupant.confused = max(occupant.confused, confuse_amount) // Apply immedeate effects occupant.eye_blurry = max(occupant.eye_blurry, blur_amount) - occupant.add_modifier(/datum/modifier/resleeving_sickness, sickness_duration) //And more longterm ones + if(!(occupant.mind.vore_death)) + occupant.add_modifier(/datum/modifier/faux_resleeving_sickness, sickness_duration/3) // And more longterm, though purely visual ones + else + occupant.add_modifier(/datum/modifier/resleeving_sickness, sickness_duration) // Much more serious if it wasn't a death by vore though + occupant.mind.vore_death = FALSE // Reset our death type. Just in case if(occupant.mind && occupant.original_player && ckey(occupant.mind.key) != occupant.original_player) log_and_message_admins("is now a cross-sleeved character. Body originally belonged to [occupant.real_name]. Mind is now [occupant.mind.name].",occupant) diff --git a/code/modules/resleeving/resleeving_sickness.dm b/code/modules/resleeving/resleeving_sickness.dm index 9759096d4f..742aaa822c 100644 --- a/code/modules/resleeving/resleeving_sickness.dm +++ b/code/modules/resleeving/resleeving_sickness.dm @@ -1,6 +1,6 @@ /datum/modifier/resleeving_sickness name = "resleeving sickness" - desc = "You feel rather weak, having been sleeved not so long ago." + desc = "You feel rather weak and unfocused, having been sleeved not so long ago." stacks = MODIFIER_STACK_EXTEND on_created_text = "You feel weak and unfocused." @@ -14,3 +14,11 @@ evasion = -50 // 50% easier to hit. accuracy = -66 // 66% less accurate. accuracy_dispersion = 30 // 30% less precise. + +/datum/modifier/faux_resleeving_sickness + name = "resleeving sickness" + desc = "You feel somewhat weak and unfocused, having been sleeved not so long ago." + stacks = MODIFIER_STACK_EXTEND + + on_created_text = "You feel slightly weak and unfocused." + on_expired_text = "You feel your strength and focus return to you." \ No newline at end of file diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 413c3511cd..b3472de774 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -393,6 +393,8 @@ //M.death(1) // "Stop it he's already dead..." Basically redundant and the reason behind screaming mouse carcasses. if(M.ckey) message_admins("[key_name(owner)] has digested [key_name(M)] in their [lowertext(name)] ([owner ? "JMP" : "null"])") + if(M.mind) + M.mind.vore_death = TRUE // If digested prey is also a pred... anyone inside their bellies gets moved up. if(is_vore_predator(M)) diff --git a/vorestation.dme b/vorestation.dme index 86e2e50ab9..e0fff4bad9 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -272,6 +272,7 @@ #include "code\datums\ghost_query.dm" #include "code\datums\hierarchy.dm" #include "code\datums\mind.dm" +#include "code\datums\mind_vr.dm" #include "code\datums\mixed.dm" #include "code\datums\modules.dm" #include "code\datums\mutable_appearance.dm"