From 77920896a8cd637221b7f8dc3437e5757dbb7bb4 Mon Sep 17 00:00:00 2001 From: Darius <5933805+LeDrascol@users.noreply.github.com> Date: Fri, 25 Oct 2024 02:37:34 -0400 Subject: [PATCH] Add new bloodfledge quirk Adds the Sanguine Metabolism quirk. This is a lite version of Bloodsucker Fledgling with no special powers. --- code/__SPLURTCODE/DEFINES/traits.dm | 1 + .../subsystem/processing/quirks.dm | 4 ++ modular_splurt/code/datums/traits/negative.dm | 48 +++++++++++++++++++ .../structures/crates_lockers/crates.dm | 11 +++++ 4 files changed, 64 insertions(+) diff --git a/code/__SPLURTCODE/DEFINES/traits.dm b/code/__SPLURTCODE/DEFINES/traits.dm index 3274bba859..9ede9736c2 100644 --- a/code/__SPLURTCODE/DEFINES/traits.dm +++ b/code/__SPLURTCODE/DEFINES/traits.dm @@ -25,6 +25,7 @@ #define TRAIT_PHARMA "hepatic_pharmacokinesis" #define TRAIT_CHOKE_SLUT "choke_slut" #define TRAIT_BLOODFLEDGE "bloodfledge" +#define TRAIT_BLOODFLEDGE_LITE "bloodfledge_lite" #define TRAIT_INCUBUS "incubus" #define TRAIT_SUCCUBUS "succubus" #define TRAIT_ARACHNID "arachnid" diff --git a/modular_splurt/code/controllers/subsystem/processing/quirks.dm b/modular_splurt/code/controllers/subsystem/processing/quirks.dm index 6f25dda079..9d2480606b 100644 --- a/modular_splurt/code/controllers/subsystem/processing/quirks.dm +++ b/modular_splurt/code/controllers/subsystem/processing/quirks.dm @@ -21,4 +21,8 @@ // BLOCKED: Mechanic // Bloodsuckers have NO_THIRST trait. list("Thirsty","Bloodsucker Fledgling"), + + // BLOCKED: Duplicate, mechanic + // This is a lite version of the same quirk. + list("Sanguine Metabolism","Bloodsucker Fledgling") )) diff --git a/modular_splurt/code/datums/traits/negative.dm b/modular_splurt/code/datums/traits/negative.dm index ad7d617a34..8dfec878fe 100644 --- a/modular_splurt/code/datums/traits/negative.dm +++ b/modular_splurt/code/datums/traits/negative.dm @@ -239,3 +239,51 @@ if(H) var/datum/physiology/P = H.physiology P.thirst_mod /= 2 + +// Lite version of Bloodflege +// Removes all special powers +/datum/quirk/bloodfledge_lite + name = "Sanguine Metabolism" + desc = "You are a non-magical Bloodsucker Fledgling, with no special powers. Only blood will sate your hungers, and holy energies will cause your flesh to char." + value = 0 + medical_record_text = "Patient exhibits an unusually weak sanguine curse." + mob_trait = TRAIT_BLOODFLEDGE_LITE + gain_text = span_notice("You feel a sanguine thirst.") + lose_text = span_notice("You feel the sanguine thirst fade away.") + +/datum/quirk/bloodfledge_lite/add() + // Define quirk mob + var/mob/living/carbon/human/quirk_mob = quirk_holder + + // Add quirk traits + ADD_TRAIT(quirk_mob,TRAIT_NO_PROCESS_FOOD,ROUNDSTART_TRAIT) + ADD_TRAIT(quirk_mob,TRAIT_NOTHIRST,ROUNDSTART_TRAIT) + + // Add full trait to preserve bite, holy weakness, and examine functionality + ADD_TRAIT(quirk_mob,TRAIT_BLOODFLEDGE,ROUNDSTART_TRAIT) + + // Lite version does not set skin tone or grant the language + // Lite version also has no examine text + +/datum/quirk/bloodfledge_lite/post_add() + // Define quirk mob + var/mob/living/carbon/human/quirk_mob = quirk_holder + + // Define and grant ability Bite + var/datum/action/cooldown/bloodfledge/bite/act_bite = new + act_bite.Grant(quirk_mob) + + // Lite version does not grant the revive ability + +/datum/quirk/bloodfledge_lite/remove() + // Define quirk mob + var/mob/living/carbon/human/quirk_mob = quirk_holder + + // Remove quirk traits + REMOVE_TRAIT(quirk_mob, TRAIT_NO_PROCESS_FOOD, ROUNDSTART_TRAIT) + REMOVE_TRAIT(quirk_mob, TRAIT_NOTHIRST, ROUNDSTART_TRAIT) + REMOVE_TRAIT(quirk_mob, TRAIT_BLOODFLEDGE, ROUNDSTART_TRAIT) + + // Remove quirk ability action datums + var/datum/action/cooldown/bloodfledge/bite/act_bite = locate() in quirk_mob.actions + act_bite.Remove(quirk_mob) diff --git a/modular_splurt/code/game/objects/structures/crates_lockers/crates.dm b/modular_splurt/code/game/objects/structures/crates_lockers/crates.dm index bf2c2ae7c3..0512ebb32c 100644 --- a/modular_splurt/code/game/objects/structures/crates_lockers/crates.dm +++ b/modular_splurt/code/game/objects/structures/crates_lockers/crates.dm @@ -19,6 +19,12 @@ for(var/mob/living/carbon/coffin_user in contents) // Check for bloodfledge if(isbloodfledge(coffin_user)) + // Check for lite version + if (HAS_TRAIT(coffin_user, TRAIT_BLOODFLEDGE_LITE)) + // Warn user and continue + to_chat(coffin_user, span_warning("Your body lacks a proper sanguine connection! [src] does not respond.")) + continue + // Check for synthetic if(coffin_user.mob_biotypes && (coffin_user.mob_biotypes & MOB_ROBOTIC)) // Warn user and continue @@ -50,6 +56,11 @@ for(var/mob/living/carbon/coffin_user in coffin_turf.contents) // Check for bloodfledge if(isbloodfledge(coffin_user)) + // Check for lite version + if (HAS_TRAIT(coffin_user, TRAIT_BLOODFLEDGE_LITE)) + // Do nothing + continue + // Define quirk entry var/datum/quirk/bloodfledge/quirk_target = locate() in coffin_user.roundstart_quirks