Skip to content

Commit

Permalink
Merge pull request #1210 from LeDrascol/bloodfledge-lite
Browse files Browse the repository at this point in the history
New Quirk: Sanguine Metabolism
  • Loading branch information
MosleyTheMalO authored Nov 9, 2024
2 parents 0d8acbb + aa5160f commit 393ca4f
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 0 deletions.
1 change: 1 addition & 0 deletions code/__SPLURTCODE/DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
12 changes: 12 additions & 0 deletions modular_splurt/code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,16 @@
// 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"),

// BLOCKED: Mechanic
// Bloodsuckers have NO_THIRST trait.
list("Sanguine Metabolism","Thirsty"),

// BLOCKED: Thematic, mechanic, game lore.
// Bloodsuckers cannot interact with Hallowed users.
list("Sanguine Metabolism","Hallowed")
))
1 change: 1 addition & 0 deletions modular_splurt/code/datums/traits/negative.dm
Original file line number Diff line number Diff line change
Expand Up @@ -239,3 +239,4 @@
if(H)
var/datum/physiology/P = H.physiology
P.thirst_mod /= 2

97 changes: 97 additions & 0 deletions modular_splurt/code/datums/traits/neutral.dm
Original file line number Diff line number Diff line change
Expand Up @@ -731,3 +731,100 @@
gain_text = span_lewd("You feel like kissing someone...")
lose_text = span_notice("You don't feel like kissing someone anymore...")
medical_record_text = "Patient seems to demonstrate an extraordinary liking in kissing."

// 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

// Register examine text
RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(quirk_examine_bloodfledge_lite))

/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)

// Unregister examine text
UnregisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE)

/datum/quirk/bloodfledge_lite/proc/quirk_examine_bloodfledge_lite(atom/examine_target, mob/living/carbon/human/examiner, list/examine_list)
SIGNAL_HANDLER

// Check if human examiner exists
if(!istype(examiner))
return

// Check if examiner is a non-Fledgling
if(!isbloodfledge(examiner))
// Return with no effects
return

// Check if examiner is dumb
if(HAS_TRAIT(examiner, TRAIT_DUMB))
// Return with no effects
return

// Define quirk mob
var/mob/living/carbon/human/quirk_mob = quirk_holder

// Define hunger texts
var/examine_hunger

// Check hunger levels
switch(quirk_mob.nutrition)
// Hungry
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
examine_hunger = "[quirk_holder.p_they(TRUE)] [quirk_holder.p_are()] blood starved!"

// Starving
if(0 to NUTRITION_LEVEL_STARVING)
examine_hunger = "[quirk_holder.p_they(TRUE)] [quirk_holder.p_are()] in dire need of blood!"

// Invalid hunger
else
// Return with no message
return

// Add detection text
examine_list += span_info("[quirk_holder.p_their(TRUE)] hunger allows you to identify [quirk_holder.p_them()] as a lesser Bloodsucker Fledgling!")

// Add hunger text
examine_list += span_warning(examine_hunger)
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 393ca4f

Please sign in to comment.