diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 204e24daeab6..30bcd4e253c8 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -156,6 +156,7 @@ #define ORGAN_SLOT_HEART_AID "heartdrive" #define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop" #define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun" +#define ORGAN_SLOT_BRAIN_JOYWIRE "brain_joywire" #define ORGAN_SLOT_TAIL "tail" #define ORGAN_SLOT_WINGS "wings" #define ORGAN_SLOT_PARASITE_EGG "parasite_egg" diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 84fca0443ca0..f5e51d1d59f4 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -292,3 +292,13 @@ description = "I was forced to eat cement...\n" mood_change = -6 timeout = 4 MINUTES + +/datum/mood_event/joywire_emp + description = span_boldwarning("IT'S GONE!! IT'S GONE!!\n") + mood_change = -30 + timeout = 5 MINUTES + +/datum/mood_event/mindscrew + description = span_boldwarning("It isn't ending... it isn't ending, come on...\n") + mood_change = -18 + timeout = 3 MINUTES diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index d79847ea04c8..899c617a99d2 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -240,6 +240,11 @@ mood_change = 5 timeout = 3 MINUTES +/datum/mood_event/joywire + description = span_boldnicegreen("I feel so joyous! Oh, so joyous!\n") + mood_change = 8 + timeout = 10 SECONDS + /datum/mood_event/root description = span_nicegreen("I rooted recently, it feels good to charge naturally.\n") mood_change = 5 diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 6e4a1b61d06f..343ff920df20 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -395,6 +395,17 @@ category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE +/datum/design/cyberimp_joywire + name = "\improper Midi-Sed pleasure vivifier" + desc = "A widely popular (and addictive) implant produced by Miditeke-Sedari Tokoce that stimulates the brain's pleasure centers. Dramatically increases mood, but interferes with taste reception even if uninstalled." + id = "ci-joywire" + build_type = PROTOLATHE | MECHFAB + construction_time = 60 + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/gold = 500, /datum/material/silver = 500) + build_path = /obj/item/organ/cyberimp/brain/joywire + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + /datum/design/cyberimp_nutriment name = "Nutriment Pump Implant" desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index aac9842415c5..af76ef1d00fa 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -521,7 +521,7 @@ display_name = "Cybernetic Implants" description = "Electronic implants that improve humans." prereq_ids = list("adv_biotech", "datatheory") - design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-diaghud") + design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-diaghud", "ci-joywire") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index f623bb67606b..022292c282b8 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -137,6 +137,36 @@ /obj/item/organ/cyberimp/brain/anti_stun/proc/reboot() organ_flags &= ~ORGAN_FAILING +/obj/item/organ/cyberimp/brain/joywire + name = "\improper Midi-Sed pleasure vivifier" + desc = "A widely popular (and addictive) implant produced by Miditeke-Sedari Tokoce that stimulates the brain's pleasure centers. Dramatically increases mood, but interferes with taste reception even if uninstalled." + implant_color = "#FFABE0" + slot = ORGAN_SLOT_BRAIN_JOYWIRE + +/obj/item/organ/cyberimp/brain/joywire/on_life() + if(owner || !(organ_flags & ORGAN_FAILING)) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "joywire", /datum/mood_event/joywire) + ADD_TRAIT(owner, TRAIT_AGEUSIA, TRAIT_GENERIC) + +/obj/item/organ/cyberimp/brain/joywire/emp_act(severity) + . = ..() + if(!owner || . & EMP_PROTECT_SELF) + return + organ_flags |= ORGAN_FAILING + SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "joywire") + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "joywire_emp", /datum/mood_event/joywire_emp) + to_chat(owner, span_boldwarning("That feeling of dream-like, distilled joy is suddenly diluted. Misery sets in...")) + +/obj/item/organ/cyberimp/brain/mindscrew + name = "\improper Midi-Sed MNDFCK implant" + desc = "A horrific after-market modification of Midi-Sed's pleasure vivifier that stimulates intense pain in the brain. Dramatically hurts a user's mood and mental state, and lingers for a time after removal." + implant_color = "#5E1108" + slot = ORGAN_SLOT_BRAIN_JOYWIRE + +/obj/item/organ/cyberimp/brain/mindscrew/on_life() + if(owner || !(organ_flags & ORGAN_FAILING)) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "mindscrew", /datum/mood_event/mindscrew) + //[[[[MOUTH]]]] /obj/item/organ/cyberimp/mouth zone = BODY_ZONE_PRECISE_MOUTH