From 10e1bf94710f94d4741c6c42a044dcd404fd2508 Mon Sep 17 00:00:00 2001 From: Tractor Mann <69653259+Noot-Toot@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:32:48 -0700 Subject: [PATCH 1/3] Do Not Revive New quirk that prevents you from being revived, uses the same doodad as revs revival blacklisting. Was the easiest way to do this. --- .../code/datums/quirks/negative_quirks.dm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/monkestation/code/datums/quirks/negative_quirks.dm b/monkestation/code/datums/quirks/negative_quirks.dm index aa4eeb29a9a7..e335b9b9a659 100644 --- a/monkestation/code/datums/quirks/negative_quirks.dm +++ b/monkestation/code/datums/quirks/negative_quirks.dm @@ -240,3 +240,19 @@ */ /datum/quirk/tunnel_vision/remove() quirk_holder.remove_fov_trait("tunnel vision quirk") + +/datum/quirk/dnr + name = "Do Not Revive" + desc = "For whatever reason, you have been blacklisted from revival. Death Is Permanent." + value = -6 + icon = FA_ICON_HEART + gain_text = span_danger("You have one shot left.") + lose_text = span_notice("Something feels better about your medical record status.") + medical_record_text = "Patient cannot be revived whatsoever due to a blacklist from revival. Ensure heightened care." + +/datum/quirk/dnr/add() + ADD_TRAIT(quirk_holder, TRAIT_DEFIB_BLACKLISTED, "DNR Quirk") + +/datum/quirk/dnr/remove() + REMOVE_TRAIT(quirk_holder, TRAIT_DEFIB_BLACKLISTED, "DNR Quirk") + From c0225d9aea10ca4b44e2be65de0a99a4d1d25d23 Mon Sep 17 00:00:00 2001 From: Tractor Mann <69653259+Noot-Toot@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:02:06 -0700 Subject: [PATCH 2/3] daniel vs the cooler daniel instead of just applying the rev no defib trait, now weve got a component that instantly DNRs you! God this fucking sucked to make, i accidentally read the element guide instead of the component guide, then i just couldnt get them to STAY DNRed, and the solution was to fucking add FALSE to ghostize. I also accidentally coded on my other branch so i entirely redid everything, thats why the descriptions changed. --- .../code/datums/components/donotrevive.dm | 24 +++++++++++++++++++ .../code/datums/quirks/negative_quirks.dm | 14 +++++------ tgstation.dme | 1 + 3 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 monkestation/code/datums/components/donotrevive.dm diff --git a/monkestation/code/datums/components/donotrevive.dm b/monkestation/code/datums/components/donotrevive.dm new file mode 100644 index 000000000000..71963933d15a --- /dev/null +++ b/monkestation/code/datums/components/donotrevive.dm @@ -0,0 +1,24 @@ +/** + * donotrevive.dm: For when they need to STAY dead. + * + * When someone dies with this, it calls ghostize with can_reenter_body false, so theyre out of their body for good. as if they ghosted/went DNR automatically. + * Medbay hates him! See how he wastes doctors time with this one simple trick! + * + */ +/datum/component/donotrevive + dupe_mode = COMPONENT_DUPE_UNIQUE + +/datum/component/donotrevive/Initialize() + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/donotrevive/RegisterWithParent() + RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(check_death)) + +/datum/component/donotrevive/UnregisterFromParent(datum/target) + UnregisterSignal(parent, COMSIG_LIVING_DEATH) + +/datum/component/donotrevive/proc/check_death(mob/living/source) + source.ghostize(FALSE) //Get em outta here! FALSE sets can_reenter_corpse false, so this, does it SO MUCH simpler than i expected. + source.mind = null //And get em outta here forever! + source.med_hud_set_status() //And let them know hes outta here! diff --git a/monkestation/code/datums/quirks/negative_quirks.dm b/monkestation/code/datums/quirks/negative_quirks.dm index e335b9b9a659..94a1d081ff71 100644 --- a/monkestation/code/datums/quirks/negative_quirks.dm +++ b/monkestation/code/datums/quirks/negative_quirks.dm @@ -243,16 +243,14 @@ /datum/quirk/dnr name = "Do Not Revive" - desc = "For whatever reason, you have been blacklisted from revival. Death Is Permanent." + desc = "You instantly become soulless upon death. Make your only shot count." value = -6 icon = FA_ICON_HEART - gain_text = span_danger("You have one shot left.") - lose_text = span_notice("Something feels better about your medical record status.") - medical_record_text = "Patient cannot be revived whatsoever due to a blacklist from revival. Ensure heightened care." + gain_text = span_danger("You have one chance left.") + lose_text = span_notice("Your connection to this mortal plane strengthens!") + medical_record_text = "The connection between the patient's soul and body is incredibly weak, and attempts to resuscitate after death will fail. Ensure hightened care." /datum/quirk/dnr/add() - ADD_TRAIT(quirk_holder, TRAIT_DEFIB_BLACKLISTED, "DNR Quirk") - -/datum/quirk/dnr/remove() - REMOVE_TRAIT(quirk_holder, TRAIT_DEFIB_BLACKLISTED, "DNR Quirk") + quirk_holder.AddComponent(/datum/component/donotrevive) +// no remove for you, RemoveComponent doesnt exist diff --git a/tgstation.dme b/tgstation.dme index d074c0ae2dff..06512e5677b7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5854,6 +5854,7 @@ #include "monkestation\code\datums\components\carbon_sprint.dm" #include "monkestation\code\datums\components\charge_adjuster.dm" #include "monkestation\code\datums\components\crafting.dm" +#include "monkestation\code\datums\components\donotrevive.dm" #include "monkestation\code\datums\components\irradiated.dm" #include "monkestation\code\datums\components\lock_on_cursor.dm" #include "monkestation\code\datums\components\multi_hit.dm" From 33fc86e6646eb1eebcfbf6d179aed84d62a75d38 Mon Sep 17 00:00:00 2001 From: Tractor Mann <69653259+Noot-Toot@users.noreply.github.com> Date: Fri, 1 Nov 2024 06:40:17 -0700 Subject: [PATCH 3/3] -8 theres still 5 more hours for -12 to get 9 more votes in my PR discussion thread, but for now -8 has been winning. rebalance time! --- monkestation/code/datums/quirks/negative_quirks.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkestation/code/datums/quirks/negative_quirks.dm b/monkestation/code/datums/quirks/negative_quirks.dm index 94a1d081ff71..f25ef2f42c5c 100644 --- a/monkestation/code/datums/quirks/negative_quirks.dm +++ b/monkestation/code/datums/quirks/negative_quirks.dm @@ -244,7 +244,7 @@ /datum/quirk/dnr name = "Do Not Revive" desc = "You instantly become soulless upon death. Make your only shot count." - value = -6 + value = -8 icon = FA_ICON_HEART gain_text = span_danger("You have one chance left.") lose_text = span_notice("Your connection to this mortal plane strengthens!")