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"