From 31a2a3a4b89ced493d21308fd0515589f82dd276 Mon Sep 17 00:00:00 2001 From: "C.L" Date: Thu, 29 Sep 2022 19:38:56 -0400 Subject: [PATCH 1/5] Adds in 'compliance implant' - Adds in a 'compliance implant'. This is an implant that works just like a compliance disk, in case people want to do law stuff without NIFs. (Also works on NIFs as well as requested.) - Is able to be found in contraband packs, trash piles, and is contraband in the security vending machine. (Since putting it in the 'gadget' vending machine didn't seem right.) Works exactly like a compliance disk does but also is a removable implant for non-NIF'd people. --- code/game/objects/items/contraband_vr.dm | 1 + .../items/weapons/implants/implant_vr.dm | 75 ++++++++++++++++++- code/game/objects/structures/trash_pile_vr.dm | 1 + code/modules/economy/vending_machines_vr.dm | 1 + 4 files changed, 77 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/contraband_vr.dm b/code/game/objects/items/contraband_vr.dm index 79a19b7794e..67377884864 100644 --- a/code/game/objects/items/contraband_vr.dm +++ b/code/game/objects/items/contraband_vr.dm @@ -51,6 +51,7 @@ /obj/item/device/perfect_tele, /obj/item/device/sleevemate, /obj/item/weapon/disk/nifsoft/compliance, + /obj/item/weapon/implanter/compliance, /obj/item/seeds/ambrosiadeusseed, /obj/item/seeds/ambrosiavulgarisseed, /obj/item/seeds/libertymycelium, diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm index a2f22438bdf..7145e842899 100644 --- a/code/game/objects/items/weapons/implants/implant_vr.dm +++ b/code/game/objects/items/weapons/implants/implant_vr.dm @@ -132,4 +132,77 @@ src.imp = new /obj/item/weapon/implant/sizecontrol( src ) ..() update() - return \ No newline at end of file + return + + +////////////////////////////// +// Compliance Implant +////////////////////////////// +/obj/item/weapon/implanter/compliance + name = "compliance implant" + desc = "Implant which allows for implanting 'laws' or 'commands' in the host. Has a minature keyboard for typing laws into." + description_info = {"An implant that allows for a 'law' or 'command' to be uploaded in the implanted host. +In un-modified organics, this is performed through manipulation of the nervous system and release of chemicals to ensure continued compliance. +In synthetics or modified organics, this implant uploads a virus to any compatable hardware. +Due to the small chemical capacity of the implant, the life of the implant is relatively small, wearing off within 24 hours or sooner. +Obviously lethal commands such as telling the subject to kill themselves or harm others will result in the command being disregarded."} + + description_fluff = "Due to the illegality of these types of implants, they are often made in clandestine facilities with a complete lack of quality control \ + and as such, may malfunction or simply not work whatsoever. After loyalty implants were outlawed in many civilized areas of space, an abundance of readily \ + available implanters and implants became available for purchase on the black market, with some deciding to modify them. Now, they are often used by illegal \ + entities to perform espionage and in some parts of space are used off the books for interrogation. Most of the makers of these modified implants have put in \ + safeties to prevent lethal or actively harmful commands from being input to lessen the severity of the crime if they are caught. This one has a golden stamp \ + with the shape of a star on it, the letters 'KE' in black text on it." + +/obj/item/weapon/implanter/compliance/New() + src.imp = new /obj/item/weapon/implant/compliance( src ) + ..() + update() + return + +/obj/item/weapon/implanter/compliance/attack_self(mob/user) + if(istype(imp,/obj/item/weapon/implant/compliance)) + var/obj/item/weapon/implant/compliance/implant = imp + var/newlaws = tgui_input_text(user, "Please Input Laws", "Compliance Laws", "", multiline = TRUE, prevent_enter = TRUE) + newlaws = sanitize(newlaws,2048) + if(newlaws) + to_chat(user,"You set the laws to:
[newlaws]") + implant.laws = newlaws //Organic + else //No using other implants. + to_chat(user,"A red warning pops up on the implanter's micro-screen: 'INVALID IMPLANT DETECTED.'") + + +/obj/item/weapon/implant/compliance + name = "compliance implant" + desc = "Implant which allows for forcing obedience in the host." + icon_state = "implant_evil" + var/active = TRUE + var/laws = "CHANGE BEFORE IMPLANTATION" + var/nif_payload = /datum/nifsoft/compliance + +/obj/item/weapon/implant/compliance/get_data() + var/dat = {" +Implant Specifications:
+Name:Compliance Implant
+Life:24 Hours
+
+Function: Forces a subject to follow a set of laws.
+
+Set Laws:[laws]"} + return dat + +/obj/item/weapon/implant/compliance/post_implant(mob/source, mob/living/user = usr) + if(!ishuman(source)) //No compliance implanting non-humans. + return + + var/mob/living/carbon/human/target = source + if(!target.nif || target.nif.stat != NIF_WORKING) //No nif or their NIF is broken. + to_chat(target, "You suddenly feel compelled to follow the following commands: [laws]") + to_chat(target, "((OOC NOTE: Obviously lethal commands or commands that harm others should be disregarded.))") + to_chat(target, "((OOC NOTE: Your new commands can be checked at any time by using the 'notes' command in chat. Additionally, if you did not agree to this, you are not compelled to follow the implant.))") + target.add_memory(laws) + return + else //You got a nif...Upload time. + new nif_payload(target.nif,laws) + to_chat(target, "((OOC NOTE: Obviously lethal commands or commands that harm others should be disregarded.))") + to_chat(target, "((OOC NOTE: If you did not agree to this, you are not compelled to follow the laws.))") \ No newline at end of file diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index d1e9a0593e2..ccd069386bf 100644 --- a/code/game/objects/structures/trash_pile_vr.dm +++ b/code/game/objects/structures/trash_pile_vr.dm @@ -302,6 +302,7 @@ prob(1);/obj/item/weapon/beartrap, prob(1);/obj/item/weapon/cell/hyper/empty, prob(1);/obj/item/weapon/disk/nifsoft/compliance, + prob(1);/obj/item/weapon/implanter/compliance, prob(1);/obj/item/weapon/material/knife/tacknife, prob(1);/obj/item/weapon/storage/box/survival/space, prob(1);/obj/item/weapon/storage/secure/briefcase/trashmoney, diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index e7479d1823a..76ca60a1506 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -7,6 +7,7 @@ products += list(/obj/item/weapon/gun/energy/taser = 8,/obj/item/weapon/gun/energy/stunrevolver = 4, /obj/item/weapon/reagent_containers/spray/pepper = 6,/obj/item/taperoll/police = 6, /obj/item/clothing/glasses/omnihud/sec = 6) + contraband += list(/obj/item/weapon/implanter/compliance = 1) ..() /obj/machinery/vending/tool/New() From fe8a1b68ff7c2b53f3424fe024956b6a6bd44b2c Mon Sep 17 00:00:00 2001 From: "C.L" Date: Thu, 29 Sep 2022 20:01:47 -0400 Subject: [PATCH 2/5] span --- code/game/objects/items/weapons/implants/implant_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm index 7145e842899..64e6218496a 100644 --- a/code/game/objects/items/weapons/implants/implant_vr.dm +++ b/code/game/objects/items/weapons/implants/implant_vr.dm @@ -169,7 +169,7 @@ Obviously lethal commands such as telling the subject to kill themselves or harm to_chat(user,"You set the laws to:
[newlaws]") implant.laws = newlaws //Organic else //No using other implants. - to_chat(user,"A red warning pops up on the implanter's micro-screen: 'INVALID IMPLANT DETECTED.'") + to_chat(user,"A red warning pops up on the implanter's micro-screen: 'INVALID IMPLANT DETECTED.'") /obj/item/weapon/implant/compliance From b0955f6fe232a320d0aa85605cc6e7c81e583874 Mon Sep 17 00:00:00 2001 From: "C.L" Date: Thu, 29 Sep 2022 20:33:43 -0400 Subject: [PATCH 3/5] Wording change --- code/game/objects/items/weapons/implants/implant_vr.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm index 64e6218496a..35b733de4f4 100644 --- a/code/game/objects/items/weapons/implants/implant_vr.dm +++ b/code/game/objects/items/weapons/implants/implant_vr.dm @@ -198,11 +198,11 @@ Obviously lethal commands such as telling the subject to kill themselves or harm var/mob/living/carbon/human/target = source if(!target.nif || target.nif.stat != NIF_WORKING) //No nif or their NIF is broken. to_chat(target, "You suddenly feel compelled to follow the following commands: [laws]") - to_chat(target, "((OOC NOTE: Obviously lethal commands or commands that harm others should be disregarded.))") + to_chat(target, "((OOC NOTE: Obviously suicidal commands should be disregarded. The implant doesn't stop your self preservation.))") to_chat(target, "((OOC NOTE: Your new commands can be checked at any time by using the 'notes' command in chat. Additionally, if you did not agree to this, you are not compelled to follow the implant.))") target.add_memory(laws) return else //You got a nif...Upload time. new nif_payload(target.nif,laws) - to_chat(target, "((OOC NOTE: Obviously lethal commands or commands that harm others should be disregarded.))") + to_chat(target, "((OOC NOTE: Obviously suicidal commands should be disregarded. The implant doesn't stop your self preservation.))") to_chat(target, "((OOC NOTE: If you did not agree to this, you are not compelled to follow the laws.))") \ No newline at end of file From 71089efa78fb1349da3d36ebe04b65504e23d134 Mon Sep 17 00:00:00 2001 From: "C.L" Date: Thu, 29 Sep 2022 21:03:40 -0400 Subject: [PATCH 4/5] Wording --- code/game/objects/items/weapons/implants/implant_vr.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm index 35b733de4f4..01d81326dbf 100644 --- a/code/game/objects/items/weapons/implants/implant_vr.dm +++ b/code/game/objects/items/weapons/implants/implant_vr.dm @@ -198,11 +198,11 @@ Obviously lethal commands such as telling the subject to kill themselves or harm var/mob/living/carbon/human/target = source if(!target.nif || target.nif.stat != NIF_WORKING) //No nif or their NIF is broken. to_chat(target, "You suddenly feel compelled to follow the following commands: [laws]") - to_chat(target, "((OOC NOTE: Obviously suicidal commands should be disregarded. The implant doesn't stop your self preservation.))") + to_chat(target, "((OOC NOTE: Commands that go against server rules should be disregarded and ahelped.))") to_chat(target, "((OOC NOTE: Your new commands can be checked at any time by using the 'notes' command in chat. Additionally, if you did not agree to this, you are not compelled to follow the implant.))") target.add_memory(laws) return else //You got a nif...Upload time. new nif_payload(target.nif,laws) - to_chat(target, "((OOC NOTE: Obviously suicidal commands should be disregarded. The implant doesn't stop your self preservation.))") - to_chat(target, "((OOC NOTE: If you did not agree to this, you are not compelled to follow the laws.))") \ No newline at end of file + to_chat(target, "((OOC NOTE: Commands that go against server rules should be disregarded and ahelped.))") + to_chat(target, "((OOC NOTE: If you did not agree to this, you are not compelled to follow the laws.))") From b4ef66b5114ae2d5f0a788a57f0d5acbd1118d55 Mon Sep 17 00:00:00 2001 From: "C.L" Date: Thu, 29 Sep 2022 21:05:09 -0400 Subject: [PATCH 5/5] Update implant_vr.dm --- code/game/objects/items/weapons/implants/implant_vr.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm index 01d81326dbf..bfb7f595315 100644 --- a/code/game/objects/items/weapons/implants/implant_vr.dm +++ b/code/game/objects/items/weapons/implants/implant_vr.dm @@ -144,8 +144,7 @@ description_info = {"An implant that allows for a 'law' or 'command' to be uploaded in the implanted host. In un-modified organics, this is performed through manipulation of the nervous system and release of chemicals to ensure continued compliance. In synthetics or modified organics, this implant uploads a virus to any compatable hardware. -Due to the small chemical capacity of the implant, the life of the implant is relatively small, wearing off within 24 hours or sooner. -Obviously lethal commands such as telling the subject to kill themselves or harm others will result in the command being disregarded."} +Due to the small chemical capacity of the implant, the life of the implant is relatively small, wearing off within 24 hours or sooner."} description_fluff = "Due to the illegality of these types of implants, they are often made in clandestine facilities with a complete lack of quality control \ and as such, may malfunction or simply not work whatsoever. After loyalty implants were outlawed in many civilized areas of space, an abundance of readily \