From 1eb7c176d6290e1182bcd60c3c1565acf7397aba Mon Sep 17 00:00:00 2001 From: izzy Date: Thu, 30 Aug 2018 05:45:33 -0500 Subject: [PATCH 1/2] add electric_stimulator integrated circuit part --- .../subtypes/manipulation.dm | 29 +++++++++++++++++++ tgstation.dme | 1 + 2 files changed, 30 insertions(+) create mode 100644 modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm diff --git a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm new file mode 100644 index 0000000000..12f0858304 --- /dev/null +++ b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -0,0 +1,29 @@ +/obj/item/integrated_circuit/manipulation/electric_stimulator + name = "electronic stimulation module" + desc = "Used to induce sexual stimulation with electricity." + icon_state = "power_relay" + extended_desc = "The circuit accepts a reference to a person and upon activation, attempts to stimulate them to orgasm." + complexity = 10 + size = 3 + inputs = list("target" = IC_PINTYPE_REF) + outputs = list() + activators = list("fire" = IC_PINTYPE_PULSE_IN) + spawn_flags = IC_SPAWN_RESEARCH + power_draw_per_use = 800 + cooldown_per_use = 50 + +/obj/item/integrated_circuit/manipulation/electric_stimulator/do_work() + ..() + var/mob/living/M = get_pin_data_as_type(IC_INPUT, 1, /mob/living) + if(!check_target(M)) + return + if(ismob(M) && M.canbearoused) + if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna()) + var/mob/living/carbon/human/H = M + var/orgasm_message = pick("A sharp pulse of electricity pushes you to orgasm!", "You feel a jolt of electricity force you into orgasm!") + to_chat(H, "[orgasm_message]") + H.mob_climax(forced_climax=TRUE) + else + M.adjustArousalLoss(35) + var/stimulate_message = pick("You feel a sharp warming tingle of electricity through your body!", "A burst of arousing electricity flows through your body!") + to_chat(M, "[stimulate_message]") diff --git a/tgstation.dme b/tgstation.dme index 2e2ff0408b..bd12a4406d 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2811,6 +2811,7 @@ #include "modular_citadel\code\modules\events\blob.dm" #include "modular_citadel\code\modules\events\wizard\magicarp.dm" #include "modular_citadel\code\modules\food_and_drinks\snacks\meat.dm" +#include "modular_citadel\code\modules\integrated_electronics\subtypes\manipulation.dm" #include "modular_citadel\code\modules\jobs\jobs.dm" #include "modular_citadel\code\modules\jobs\job_types\captain.dm" #include "modular_citadel\code\modules\jobs\job_types\cargo_service.dm" From 14be1a02d92c3855247e2e8da87cb405006c1a2d Mon Sep 17 00:00:00 2001 From: izzy Date: Mon, 3 Sep 2018 11:52:04 -0500 Subject: [PATCH 2/2] adds better chat messages and sound, lowers power draw --- .../integrated_electronics/subtypes/manipulation.dm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm index 12f0858304..79d229c757 100644 --- a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -9,7 +9,7 @@ outputs = list() activators = list("fire" = IC_PINTYPE_PULSE_IN) spawn_flags = IC_SPAWN_RESEARCH - power_draw_per_use = 800 + power_draw_per_use = 500 cooldown_per_use = 50 /obj/item/integrated_circuit/manipulation/electric_stimulator/do_work() @@ -21,9 +21,13 @@ if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna()) var/mob/living/carbon/human/H = M var/orgasm_message = pick("A sharp pulse of electricity pushes you to orgasm!", "You feel a jolt of electricity force you into orgasm!") - to_chat(H, "[orgasm_message]") + H.visible_message("\The [assembly] electrodes shock [H]!", "[orgasm_message]") + playsound(src, "sound/effects/light_flicker.ogg", 30, 1) H.mob_climax(forced_climax=TRUE) else M.adjustArousalLoss(35) var/stimulate_message = pick("You feel a sharp warming tingle of electricity through your body!", "A burst of arousing electricity flows through your body!") - to_chat(M, "[stimulate_message]") + M.visible_message("\The [assembly] electrodes shock [M]!", "[stimulate_message]") + playsound(src, "sound/effects/light_flicker.ogg", 30, 1) + else + visible_message("\The [assembly] electrodes fail to shock [M]!")