From 131c3974d4fdb3b1bc2a2664cf99cf2c6816361b Mon Sep 17 00:00:00 2001 From: SlimeRetard <65968723+SlimeRetard@users.noreply.github.com> Date: Mon, 8 Jun 2020 01:03:07 +0100 Subject: [PATCH 1/4] Add mesmetron --- code/game/objects/items/mesmetron.dm | 91 ++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 code/game/objects/items/mesmetron.dm diff --git a/code/game/objects/items/mesmetron.dm b/code/game/objects/items/mesmetron.dm new file mode 100644 index 00000000..7983125f --- /dev/null +++ b/code/game/objects/items/mesmetron.dm @@ -0,0 +1,91 @@ +/obj/item/mesmetron + name = "Mesmetron" + desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face..." + icon = 'icons/obj/pocketwatch.dmi' + icon_state = "pocketwatch" + item_state = "pocketwatch" + w_class = WEIGHT_CLASS_SMALL + throw_range = 7 + throw_speed = 3 + var/mob/living/carbon/subject = null + var/closed = FALSE + + + +//Hypnotize someone +/obj/item/mesmetron/attack(mob/living/carbon/human/H, mob/living/user) + if(closed) + return + if(H.IsSleeping()) + to_chat(user, "You can't hypnotize [H] whilst they're asleep!") + return + + user.visible_message("[user] begins to mesmerizingly wave [src] like a pendulum before [H]'s very eyes!") + + if(!do_mob(user, H, 12 SECONDS)) + return + if(!(user in view(1, loc))) + return + + var/response = alert(H, "Do you wish to fall into a hypnotic sleep? (This will allow [user] to issue hypnotic suggestions)", "Hypnosis", "Yes", "No") + + if(response == "Yes") + H.visible_message("[H] falls into a deep slumber!", "Your eyelids gently shut as you fall into a deep slumber. All you can hear is [user]'s voice as you commit to following all of their suggestions") + + H.SetSleeping(1200) + H.drowsyness = max(H.drowsyness, 40) + subject = H + return + + //No + H.visible_message("[H]'s attention breaks, despite your attempts to hypnotize them! They clearly don't want this", "Your concentration breaks as you realise you have no interest in following [user]'s words!") + + + +//If there's a subject, open the suggestion interface +/obj/item/mesmetron/attack_self(mob/user) + if(closed) + return + if(!subject) + return + if(!subject.IsSleeping()) + to_chat(user, "[subject] is awake and no longer under hypnosis!") + subject = null + return + + var/response = alert(user, "Would you like to release your subject or give them a suggestion?", "Mesmetron", "Suggestion", "Release") + if(response == "Suggestion") + if(get_dist(user, subject) > 1) + to_chat(user, "You must stand in whisper range of [subject].") + return + + text = input("What would you like to suggest?", "Hypnotic suggestion", null, null) + text = sanitize(text) + if(!text) + return + + to_chat(user, "You whisper your suggestion in a smooth calming voice to [subject]") + to_chat(subject, "...[text]...") + return + //Release + subject.visible_message("[subject] wakes up from their deep slumber!", "Your eyelids gently open as you see [user]'s face staring back at you") + subject.SetSleeping(0) + subject = null + + + +//Toggle open/close +/obj/item/mesmetron/AltClick(mob/user) + //Close it + if(icon_state == "pocketwatch") + icon_state = "pocketwatch_closed" + item_state = "pocketwatch_closed" + desc = "An elaborate pocketwatch, with a captivating gold etching. It's closed however and you can't see it's face" + closed = TRUE + return + //Open it + icon_state = "pocketwatch" + item_state = "pocketwatch" + desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face..." + closed = FALSE + From d235986c2527af3d494d129c4016e02f99e53dfa Mon Sep 17 00:00:00 2001 From: SlimeRetard <65968723+SlimeRetard@users.noreply.github.com> Date: Mon, 8 Jun 2020 01:04:22 +0100 Subject: [PATCH 2/4] Add mesmetron sprites --- icons/obj/pocketwatch.dmi | Bin 0 -> 633 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/obj/pocketwatch.dmi diff --git a/icons/obj/pocketwatch.dmi b/icons/obj/pocketwatch.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1fe0c975b7c8d2469f291d2222bbf4fba5f25e48 GIT binary patch literal 633 zcmV-<0*3vGP)h%4$ zd=T)uSM$ku;FuKctv8B_iaI(vwY9ZZS67l_3;;bJB>(^b0d!JMQvg8b*k%9#0Ev23 zSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1TL48< za}p~-!Uj6n5LUzDlXLQmQ&X^;X~?Cl;OgfBb}#@*sxzKgPMPTd00D7HL_t(oh3%EU zPQx$|htE=2m{Lnwn26IXOpr7?RPNHLe=uqv03Lxi068y!oUH>>o{~(EbE@2>Q!Db@ zKIP8m*h)Ttf1JrA9K<5Y;~@<55abXJV!Q&ya8=+vQhdS$Y0M_%Gl=5t{q=#*AYZKe zY%S5S{qnf|9OTYA+b-DI(qn5;!``~GUC`yK@+R266}uCLHi*=^kC@N!?42{o*-et) zg=`M8bz;mm<}%EUG+HlyXHp!@KYs67{o2aP;0$B z@VL3gtl3;$vl+w$P$(XAP8t1hCVsHKANu%&zc=j%#K(-|8L900!Syz{(GQ~^Mn7Cs zMn4>3W7cQ_<%cNA(?NdNDwVWHbba6uN10Np==B5sTSra3YVS$zt6m>;8wleJZ}8uN z^n-s&qz}A%p#31Ue)_AY{jkE{1MLSuVfX=u;Rif`;Rn Date: Mon, 8 Jun 2020 01:07:25 +0100 Subject: [PATCH 3/4] Make mesmetron available in hacked kinkmate --- modular_citadel/code/game/machinery/vending.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm index 63e8e446..6bed45ce 100644 --- a/modular_citadel/code/game/machinery/vending.dm +++ b/modular_citadel/code/game/machinery/vending.dm @@ -58,7 +58,8 @@ /obj/item/clothing/neck/petcollar = 5, /obj/item/clothing/under/mankini = 1, /obj/item/dildo/flared/huge = 1, - /obj/item/clothing/head/dominatrixcap = 1 + /obj/item/clothing/head/dominatrixcap = 1, + /obj/item/mesmetron = 1 ) premium = list( /obj/item/electropack/shockcollar = 3, From 1324eb895f41b5c478343cec8d347ba6e57743b5 Mon Sep 17 00:00:00 2001 From: SlimeRetard <65968723+SlimeRetard@users.noreply.github.com> Date: Thu, 11 Jun 2020 00:07:54 +0100 Subject: [PATCH 4/4] Added the mesmetron file to the .dme God im retarded --- tgstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/tgstation.dme b/tgstation.dme index 2d0cb018..e4d89711 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -829,6 +829,7 @@ #include "code\game\objects\items\kitchen.dm" #include "code\game\objects\items\latexballoon.dm" #include "code\game\objects\items\manuals.dm" +#include "code\game\objects\items\mesmetron.dm" #include "code\game\objects\items\miscellaneous.dm" #include "code\game\objects\items\mop.dm" #include "code\game\objects\items\paint.dm"