From 0b314561ca283f4b88ee0aaa8dab96f8ca64ab3b Mon Sep 17 00:00:00 2001 From: Decius Date: Mon, 14 Jul 2014 19:02:21 -0400 Subject: [PATCH] Now allows admin override via player panel, a small fix, and... implantation works again. Since they'll only be accessible via an admin specifically spawning it, except for in cases where it is configured to be allowed, it'll be fine. This now allows admins to incorporate loyalty implants still if they so wish for whatever reason, but it is normally inaccessible. Signed-off-by: Decius --- code/datums/mind.dm | 53 +++++++++---------- .../items/weapons/implants/implantcase.dm | 3 +- .../items/weapons/implants/implanter.dm | 3 +- code/modules/mob/living/carbon/human/human.dm | 4 +- 4 files changed, 29 insertions(+), 34 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index cc24ed7fdb..b749bfb07e 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -512,34 +512,31 @@ datum/mind H << "\blue Your loyalty implant has been deactivated." if("add") - H.implant_loyalty(src) - - if(config.use_loyalty_implants) // The following won't occur if there are not loyalty implants. - H << "\red You somehow have become the recepient of a loyalty transplant, and it just activated!" - if(src in ticker.mode.revolutionaries) - special_role = null - ticker.mode.revolutionaries -= src - src << "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!" - if(src in ticker.mode.head_revolutionaries) - special_role = null - ticker.mode.head_revolutionaries -=src - src << "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!" - if(src in ticker.mode.cult) - ticker.mode.cult -= src - ticker.mode.update_cult_icons_removed(src) - special_role = null - var/datum/game_mode/cult/cult = ticker.mode - if (istype(cult)) - cult.memorize_cult_objectives(src) - current << "\red The nanobots in the loyalty implant remove all thoughts about being in a cult. Have a productive day!" - memory = "" - if(src in ticker.mode.traitors) - ticker.mode.traitors -= src - special_role = null - current << "\red The nanobots in the loyalty implant remove all thoughts about being a traitor to Nanotrasen. Have a nice day!" - log_admin("[key_name_admin(usr)] has de-traitor'ed [current].") - else - usr << "Loyalty implants are currently disabled for your server in the configuration files." + H.implant_loyalty(H, override = TRUE) + H << "\red You somehow have become the recepient of a loyalty transplant, and it just activated!" + if(src in ticker.mode.revolutionaries) + special_role = null + ticker.mode.revolutionaries -= src + src << "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!" + if(src in ticker.mode.head_revolutionaries) + special_role = null + ticker.mode.head_revolutionaries -=src + src << "\red The nanobots in the loyalty implant remove all thoughts about being a revolutionary. Get back to work!" + if(src in ticker.mode.cult) + ticker.mode.cult -= src + ticker.mode.update_cult_icons_removed(src) + special_role = null + var/datum/game_mode/cult/cult = ticker.mode + if (istype(cult)) + cult.memorize_cult_objectives(src) + current << "\red The nanobots in the loyalty implant remove all thoughts about being in a cult. Have a productive day!" + memory = "" + if(src in ticker.mode.traitors) + ticker.mode.traitors -= src + special_role = null + current << "\red The nanobots in the loyalty implant remove all thoughts about being a traitor to Nanotrasen. Have a nice day!" + log_admin("[key_name_admin(usr)] has de-traitor'ed [current].") + else else if (href_list["revolution"]) diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm index 9d0f40e159..3dc57db654 100644 --- a/code/game/objects/items/weapons/implants/implantcase.dm +++ b/code/game/objects/items/weapons/implants/implantcase.dm @@ -113,8 +113,7 @@ New() - if (config.use_loyalty_implants) - src.imp = new /obj/item/weapon/implant/loyalty( src ) + src.imp = new /obj/item/weapon/implant/loyalty( src ) ..() return diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index 21d768a3aa..f92f5b759c 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -60,8 +60,7 @@ name = "implanter-loyalty" /obj/item/weapon/implanter/loyalty/New() - if(config.use_loyalty_implants) - src.imp = new /obj/item/weapon/implant/loyalty( src ) + src.imp = new /obj/item/weapon/implant/loyalty( src ) ..() update() return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a1b76fa081..4253810d28 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -317,8 +317,8 @@ if(armor >= 2) return -/mob/living/carbon/human/proc/implant_loyalty(mob/living/carbon/human/M) - if(!config.use_loyalty_implants) return +/mob/living/carbon/human/proc/implant_loyalty(mob/living/carbon/human/M, override = FALSE) // Won't override by default. + if(!config.use_loyalty_implants && !override) return // Nuh-uh. var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M) L.imp_in = M