Fix greytide implants being unintuitive (#24648)

* Fix greytide implants being unintuitive

* Grammar is hard

Co-Authored-By: DamianX <DamianX@users.noreply.github.com>
This commit is contained in:
ShiftyRail
2019-11-10 09:20:12 +01:00
committed by Probe1
parent 5adaa5db2c
commit bd248d3dee
3 changed files with 26 additions and 3 deletions

View File

@@ -623,6 +623,19 @@ Once done, you will be able to interface with all systems, notably the onboard n
id = IMPLANTSLAVE id = IMPLANTSLAVE
logo_state = "greytide-logo" logo_state = "greytide-logo"
/datum/role/greytide/Drop(silent = TRUE)
if (!silent)
antag.current.visible_message("<span class='userdanger'>[antag.current] briefly convulses!</span>" ,"<span class='userdanger'>Your loyalty to the greytide fades and vanishes. You are free of your actions again.</span>")
return ..()
/datum/role/greytide/PostMindTransfer(var/mob/living/new_character, var/mob/living/old_character)
for(var/obj/item/weapon/implant/I in new_character)
if(istype(I, /obj/item/weapon/implant/traitor))
return
Drop()
return ..()
/datum/role/greytide_leader /datum/role/greytide_leader
name = IMPLANTLEADER name = IMPLANTLEADER
id = IMPLANTLEADER id = IMPLANTLEADER

View File

@@ -17,6 +17,9 @@
/obj/item/weapon/implant/proc/activate() /obj/item/weapon/implant/proc/activate()
return return
// What does the implant do when it's removed?
/obj/item/weapon/implant/proc/handle_removal(var/mob/remover)
return
// What does the implant do upon injection? // What does the implant do upon injection?
// return 0 if the implant fails (ex. Revhead and loyalty implant.) // return 0 if the implant fails (ex. Revhead and loyalty implant.)
@@ -302,9 +305,6 @@ the implant may become unstable and either pre-maturely inject the subject or si
if(isrevnothead(H)) if(isrevnothead(H))
var/datum/role/R = H.mind.GetRole(REV) var/datum/role/R = H.mind.GetRole(REV)
R.Drop() R.Drop()
if(H.mind && H.mind.GetRole(IMPLANTSLAVE))
var/datum/role/R = H.mind.GetRole(IMPLANTSLAVE)
R.Drop()
to_chat(H, "<span class = 'notice'>You feel a surge of loyalty towards Nanotrasen.</span>") to_chat(H, "<span class = 'notice'>You feel a surge of loyalty towards Nanotrasen.</span>")
return 1 return 1
@@ -371,6 +371,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].") log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].")
return 1 return 1
/obj/item/weapon/implant/traitor/handle_removal(var/mob/remover)
if (!imp_in.mind)
return
var/datum/role/R = imp_in.mind.GetRole(IMPLANTSLAVE)
if (!R)
return
log_admin("[key_name(remover)] has removed a greytide implant from [key_name(imp_in)].")
R.Drop(FALSE)
/obj/item/weapon/implant/adrenalin /obj/item/weapon/implant/adrenalin
name = "adrenalin implant" name = "adrenalin implant"
desc = "Removes all stuns and knockdowns." desc = "Removes all stuns and knockdowns."

View File

@@ -211,6 +211,7 @@
obj.forceMove(get_turf(target)) obj.forceMove(get_turf(target))
if(istype(obj,/obj/item/weapon/implant)) if(istype(obj,/obj/item/weapon/implant))
var/obj/item/weapon/implant/imp = obj var/obj/item/weapon/implant/imp = obj
imp.handle_removal(user)
imp.imp_in = null imp.imp_in = null
imp.implanted = 0 imp.implanted = 0
affected.implants -= imp affected.implants -= imp