Skip to content

Commit

Permalink
Merge pull request #268 from carpotoxin/narcolepsy-quirk
Browse files Browse the repository at this point in the history
Port of Narcolepsy quirk
  • Loading branch information
Paxilmaniac authored Dec 6, 2024
2 parents 582fa83 + faa28dc commit 36484a3
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
68 changes: 68 additions & 0 deletions modular_doppler/modular_quirks/narcolepsy/narcolepsy.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/datum/quirk/narcolepsy
name = "Narcolepsy"
desc = "You may fall asleep at any moment and feel tired often."
icon = FA_ICON_CLOUD_MOON_RAIN
value = -8
hardcore_value = 8
medical_record_text = "Patient may involuntarily fall asleep during normal activities."
mail_goodies = list(
/obj/item/reagent_containers/cup/glass/coffee,
/obj/item/reagent_containers/cup/soda_cans/space_mountain_wind,
/obj/item/storage/pill_bottle/prescription_stimulant,
)

/datum/quirk/narcolepsy/post_add()
. = ..()
var/mob/living/carbon/human/user = quirk_holder
user.gain_trauma(/datum/brain_trauma/severe/narcolepsy/permanent, TRAUMA_RESILIENCE_ABSOLUTE)

var/obj/item/storage/pill_bottle/prescription_stimulant/stimmies = new()
if(quirk_holder.equip_to_slot_if_possible(stimmies, ITEM_SLOT_BACKPACK, qdel_on_fail = TRUE, initial = TRUE, indirect_action = TRUE))
to_chat(quirk_holder, span_info("You have been given a bottle of mild stimulants to assist in staying awake this shift..."))

/datum/quirk/narcolepsy/remove()
. = ..()
var/mob/living/carbon/human/user = quirk_holder
user?.cure_trauma_type(/datum/brain_trauma/severe/narcolepsy/permanent, TRAUMA_RESILIENCE_ABSOLUTE)

/datum/brain_trauma/severe/narcolepsy/permanent
scan_desc = "narcolepsy"

//similar to parent but slower
/datum/brain_trauma/severe/narcolepsy/permanent/on_life(seconds_per_tick, times_fired)
if(owner.IsSleeping())
return
if(owner.reagents.has_reagent(/datum/reagent/medicine/modafinil))
return //stimulant which already blocks sleeping
if(owner.reagents.has_reagent(/datum/reagent/medicine/synaptizine))
return //mild stimulant easily made in chemistry

var/sleep_chance = 0.333 //3
var/drowsy = !!owner.has_status_effect(/datum/status_effect/drowsiness)
var/caffeinated = HAS_TRAIT(owner, TRAIT_STIMULATED)
if(drowsy)
sleep_chance = 1
if(caffeinated) //make it real hard to fall asleep on caffeine
sleep_chance = sleep_chance / 2

if(!drowsy && SPT_PROB(sleep_chance, seconds_per_tick))
to_chat(owner, span_warning("You feel tired..."))
owner.adjust_drowsiness(rand(30 SECONDS, 60 SECONDS))

else if(drowsy && SPT_PROB(sleep_chance, seconds_per_tick))
to_chat(owner, span_warning("You fall asleep."))
owner.Sleeping(rand(20 SECONDS, 30 SECONDS))

/obj/item/storage/pill_bottle/prescription_stimulant
name = "bottle of prescribed stimulant pills"
desc = "A bottle of mild and medicinally approved stimulants to help prevent drowsiness."

/obj/item/storage/pill_bottle/prescription_stimulant/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/reagent_containers/pill/prescription_stimulant(src)

/obj/item/reagent_containers/pill/prescription_stimulant
name = "prescription stimulant pill"
desc = "Used to treat symptoms of drowsiness and sudden loss of consciousness. A warning label reads: <b>Take in moderation</b>."
list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/synaptizine = 5, /datum/reagent/medicine/modafinil = 3)
icon_state = "pill15"
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -7051,6 +7051,7 @@
#include "modular_doppler\modular_quirks\hardened_soles\hardened_soles.dm"
#include "modular_doppler\modular_quirks\left_handed\left_handed.dm"
#include "modular_doppler\modular_quirks\linguist\linguist.dm"
#include "modular_doppler\modular_quirks\narcolepsy\narcolepsy.dm"
#include "modular_doppler\modular_quirks\night_vision\night_vision.dm"
#include "modular_doppler\modular_quirks\overwrites\equipping.dm"
#include "modular_doppler\modular_quirks\overwrites\musician.dm"
Expand Down

0 comments on commit 36484a3

Please sign in to comment.