Renames all typepaths + names of implants to biochips (#23172)

* The fix

* Contraaaaaa

* Fixes CI

* Fixes the pads + cases

* Uplink datums

* Update code/datums/mind.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/__HELPERS/unsorted.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Update code/modules/research/designs/medical_designs.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Update code/modules/research/designs/medical_designs.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Update code/modules/research/designs/medical_designs.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Update code/modules/research/designs/medical_designs.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Update code/modules/surgery/implant_removal.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Outfits now use a proper variable name

* Fixes surgery (oops)

* More .dme changes

* Renames the folder

* Fixes bad merge

* Contra review

* Update code/game/objects/items/weapons/dice.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Fixes CI fail

---------

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
This commit is contained in:
DGamerL
2024-01-07 00:15:55 +01:00
committed by GitHub
parent fad6509b5e
commit 382a71df0d
94 changed files with 674 additions and 675 deletions
@@ -158,7 +158,7 @@
/obj/item/storage/belt/military/traitor = 2,
/obj/item/storage/box/syndie_kit/space = 2,
/obj/item/multitool/ai_detect = 2,
/obj/item/implanter/storage = 1,
/obj/item/bio_chip_implanter/storage = 1,
/obj/item/deck/cards/syndicate = 2,
/obj/item/storage/secure/briefcase/syndie = 2,
/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 2,
@@ -13,7 +13,7 @@
/obj/item/stack/telecrystal/attack(mob/target, mob/user)
if(target == user) //You can't go around smacking people with crystals to find out if they have an uplink or not.
for(var/obj/item/implant/uplink/I in target)
for(var/obj/item/bio_chip/uplink/I in target)
if(I && I.imp_in)
I.hidden_uplink.uses += amount
use(amount)
@@ -23,16 +23,16 @@
* Code for implants that can be inserted into a person and have some sort of passive or triggered action.
*
*/
/obj/item/implant
/obj/item/bio_chip
name = "bio-chip"
icon = 'icons/obj/implants.dmi'
icon = 'icons/obj/bio_chips.dmi'
icon_state = "generic" //Shows up as a auto surgeon, used as a placeholder when a implant doesn't have a sprite
origin_tech = "materials=2;biotech=3;programming=2"
actions_types = list(/datum/action/item_action/hands_free/activate)
item_color = "black"
flags = DROPDEL // By default, don't let implants be harvestable.
///which implant overlay should be used for implant cases. This should point to a state in implants.dmi
///which implant overlay should be used for implant cases. This should point to a state in bio_chips.dmi
var/implant_state = "implant-default"
/// How the implant is activated.
var/activated = BIOCHIP_ACTIVATED_ACTIVE
@@ -56,18 +56,18 @@
///the implant_fluff datum attached to this implant, purely cosmetic "lore" information
var/datum/implant_fluff/implant_data = /datum/implant_fluff
/obj/item/implant/Initialize(mapload)
/obj/item/bio_chip/Initialize(mapload)
. = ..()
if(ispath(implant_data))
implant_data = new implant_data
/obj/item/implant/Destroy()
/obj/item/bio_chip/Destroy()
if(imp_in)
removed(imp_in)
QDEL_NULL(implant_data)
return ..()
/obj/item/implant/proc/unregister_emotes()
/obj/item/bio_chip/proc/unregister_emotes()
if(imp_in && LAZYLEN(trigger_emotes))
for(var/emote in trigger_emotes)
UnregisterSignal(imp_in, COMSIG_MOB_EMOTED(emote))
@@ -79,7 +79,7 @@
* * on_implant - Whether this proc is being called during the implantation of the implant.
* * silent - If true, the user won't get any to_chat messages if an implantation fails.
*/
/obj/item/implant/proc/set_trigger(mob/user, emote_key, on_implant = FALSE, silent = TRUE)
/obj/item/bio_chip/proc/set_trigger(mob/user, emote_key, on_implant = FALSE, silent = TRUE)
if(imp_in != user)
return FALSE
@@ -107,7 +107,7 @@
LAZYADD(trigger_emotes, emote_key)
RegisterSignal(user, COMSIG_MOB_EMOTED(emote_key), PROC_REF(on_emote))
/obj/item/implant/proc/on_emote(mob/living/user, datum/emote/fired_emote, key, emote_type, message, intentional)
/obj/item/bio_chip/proc/on_emote(mob/living/user, datum/emote/fired_emote, key, emote_type, message, intentional)
SIGNAL_HANDLER
if(!implanted || !imp_in)
@@ -119,7 +119,7 @@
add_attack_logs(user, user, "[intentional ? "intentionally" : "unintentionally"] [src] was [intentional ? "intentionally" : "unintentionally"] triggered with the emote [fired_emote].")
emote_trigger(key, user, intentional)
/obj/item/implant/proc/on_death(mob/source, gibbed)
/obj/item/bio_chip/proc/on_death(mob/source, gibbed)
SIGNAL_HANDLER
if(!implanted || !imp_in)
@@ -137,16 +137,16 @@
add_attack_logs(source, source, "had their [src] bio-chip triggered on [gibbed ? "gib" : "death"].")
death_trigger(source, gibbed)
/obj/item/implant/proc/emote_trigger(emote, mob/source, force)
/obj/item/bio_chip/proc/emote_trigger(emote, mob/source, force)
return
/obj/item/implant/proc/death_trigger(mob/source, gibbed)
/obj/item/bio_chip/proc/death_trigger(mob/source, gibbed)
return
/obj/item/implant/proc/activate(cause)
/obj/item/bio_chip/proc/activate(cause)
return
/obj/item/implant/ui_action_click()
/obj/item/bio_chip/ui_action_click()
activate("action_button")
/**
@@ -160,10 +160,10 @@
* -1 if the implant fails to inject
* 0 if there's no room for the implant.
*/
/obj/item/implant/proc/implant(mob/source, mob/user, force)
/obj/item/bio_chip/proc/implant(mob/source, mob/user, force)
if(!force && !can_implant(source, user))
return
var/obj/item/implant/imp_e = locate(type) in source
var/obj/item/bio_chip/imp_e = locate(type) in source
if(!allow_multiple && imp_e && imp_e != src)
if(imp_e.uses < initial(imp_e.uses)*2)
if(uses == -1)
@@ -211,7 +211,7 @@
* TRUE - I could care less, implant it, maybe don't. I don't care.
* FALSE - Don't implant!
*/
/obj/item/implant/proc/can_implant(mob/source, mob/user)
/obj/item/bio_chip/proc/can_implant(mob/source, mob/user)
return TRUE
@@ -219,7 +219,7 @@
* Clean up when an implant is removed.
* * source - the user who the implant was removed from.
*/
/obj/item/implant/proc/removed(mob/source)
/obj/item/bio_chip/proc/removed(mob/source)
loc = null
imp_in = null
implanted = FALSE
@@ -239,6 +239,6 @@
return TRUE
/obj/item/implant/dropped(mob/user)
/obj/item/bio_chip/dropped(mob/user)
. = TRUE
..()
@@ -1,4 +1,4 @@
/obj/item/implant/abductor
/obj/item/bio_chip/abductor
name = "recall bio-chip"
desc = "Returns you to the mothership."
icon = 'icons/obj/abductor.dmi'
@@ -12,7 +12,7 @@
var/cooldown = 30
var/total_cooldown = 30
/obj/item/implant/abductor/activate()
/obj/item/bio_chip/abductor/activate()
if(cooldown == total_cooldown)
home.Retrieve(imp_in, 1)
cooldown = 0
@@ -20,13 +20,13 @@
else
to_chat(imp_in, "<span class='warning'>You must wait [(total_cooldown - cooldown) * 2] seconds to use [src] again!</span>")
/obj/item/implant/abductor/process()
/obj/item/bio_chip/abductor/process()
if(cooldown < total_cooldown)
cooldown++
if(cooldown == total_cooldown)
STOP_PROCESSING(SSobj, src)
/obj/item/implant/abductor/implant(mob/source, mob/user)
/obj/item/bio_chip/abductor/implant(mob/source, mob/user)
if(..())
var/obj/machinery/abductor/console/console
if(ishuman(source))
@@ -41,7 +41,7 @@
home = console.pad
return TRUE
/obj/item/implant/abductor/proc/get_team_console(team)
/obj/item/bio_chip/abductor/proc/get_team_console(team)
var/obj/machinery/abductor/console/console
for(var/obj/machinery/abductor/console/c in GLOB.abductor_equipment)
if(c.team == team)
@@ -49,11 +49,11 @@
break
return console
/obj/item/implanter/abductor
/obj/item/bio_chip_implanter/abductor
name = "bio-chip implanter (abductor)"
implant_type = /obj/item/implant/abductor
implant_type = /obj/item/bio_chip/abductor
/obj/item/implantcase/abductor
/obj/item/bio_chip_case/abductor
name = "bio-chip case - 'abductor'"
desc = "A glass case containing an abductor bio-chip."
implant_type = /obj/item/implant/abductor
implant_type = /obj/item/bio_chip/abductor
@@ -1,4 +1,4 @@
/obj/item/implant/adrenalin
/obj/item/bio_chip/adrenalin
name = "adrenal bio-chip"
desc = "Removes all stuns and knockdowns."
icon_state = "adrenal"
@@ -7,7 +7,7 @@
implant_data = /datum/implant_fluff/adrenaline
implant_state = "implant-syndicate"
/obj/item/implant/adrenalin/activate()
/obj/item/bio_chip/adrenalin/activate()
uses--
to_chat(imp_in, "<span class='notice'>You feel a sudden surge of energy!</span>")
imp_in.SetStunned(0)
@@ -24,11 +24,11 @@
if(!uses)
qdel(src)
/obj/item/implanter/adrenalin
/obj/item/bio_chip_implanter/adrenalin
name = "bio-chip implanter (adrenalin)"
implant_type = /obj/item/implant/adrenalin
implant_type = /obj/item/bio_chip/adrenalin
/obj/item/implantcase/adrenaline
/obj/item/bio_chip_case/adrenaline
name = "bio-chip case - 'Adrenaline'"
desc = "A glass case containing an adrenaline bio-chip."
implant_type = /obj/item/implant/adrenalin
implant_type = /obj/item/bio_chip/adrenalin
@@ -1,7 +1,7 @@
/obj/item/implantcase
/obj/item/bio_chip_case
name = "bio-chip case"
desc = "A glass case containing a bio-chip."
icon = 'icons/obj/implants.dmi'
icon = 'icons/obj/bio_chips.dmi'
icon_state = "implantcase"
item_state = "implantcase"
throw_speed = 2
@@ -11,22 +11,22 @@
container_type = OPENCONTAINER | INJECTABLE | DRAWABLE
materials = list(MAT_GLASS = 500)
var/obj/item/implant/imp
var/obj/item/implant/implant_type
var/obj/item/bio_chip/imp
var/obj/item/bio_chip/implant_type
/obj/item/implantcase/Initialize(mapload)
/obj/item/bio_chip_case/Initialize(mapload)
. = ..()
if(!implant_type)
return
imp = new implant_type(src)
update_state()
/obj/item/implantcase/Destroy()
/obj/item/bio_chip_case/Destroy()
if(imp)
QDEL_NULL(imp)
return ..()
/obj/item/implantcase/proc/update_state()
/obj/item/bio_chip_case/proc/update_state()
if(imp)
origin_tech = imp.origin_tech
flags = imp.flags & ~DROPDEL
@@ -37,19 +37,19 @@
reagents = null
update_icon(UPDATE_OVERLAYS)
/obj/item/implantcase/update_overlays()
/obj/item/bio_chip_case/update_overlays()
. = ..()
if(imp)
var/image/implant_overlay = image('icons/obj/implants.dmi', imp.implant_state)
var/image/implant_overlay = image('icons/obj/bio_chips.dmi', imp.implant_state)
. += implant_overlay
/obj/item/implantcase/attackby(obj/item/W, mob/user)
/obj/item/bio_chip_case/attackby(obj/item/W, mob/user)
..()
if(is_pen(W))
rename_interactive(user, W)
else if(istype(W, /obj/item/implanter))
var/obj/item/implanter/I = W
else if(istype(W, /obj/item/bio_chip_implanter))
var/obj/item/bio_chip_implanter/I = W
if(I.imp)
if(imp || I.imp.implanted)
return
@@ -1,4 +1,4 @@
/obj/item/implant/chem
/obj/item/bio_chip/chem
name = "chem bio-chip"
desc = "Injects things."
icon_state = "reagents"
@@ -8,19 +8,19 @@
implant_data = /datum/implant_fluff/chem
implant_state = "implant-nanotrasen"
/obj/item/implant/chem/Initialize(mapload)
/obj/item/bio_chip/chem/Initialize(mapload)
. = ..()
create_reagents(50)
GLOB.tracked_implants += src
/obj/item/implant/chem/Destroy()
/obj/item/bio_chip/chem/Destroy()
GLOB.tracked_implants -= src
return ..()
/obj/item/implant/chem/death_trigger(mob/victim, gibbed)
/obj/item/bio_chip/chem/death_trigger(mob/victim, gibbed)
activate(reagents.total_volume)
/obj/item/implant/chem/activate(cause)
/obj/item/bio_chip/chem/activate(cause)
if(!cause || !imp_in)
return FALSE
var/mob/living/carbon/R = imp_in
@@ -42,11 +42,11 @@
to_chat(R, "<span class='italics'>You hear a faint click from your chest.</span>")
qdel(src)
/obj/item/implanter/chem
/obj/item/bio_chip_implanter/chem
name = "bio-chip implanter (chem)"
implant_type = /obj/item/implant/chem
implant_type = /obj/item/bio_chip/chem
/obj/item/implantcase/chem
/obj/item/bio_chip_case/chem
name = "bio-chip case - 'Remote Chemical'"
desc = "A glass case containing a remote chemical bio-chip."
implant_type = /obj/item/implant/chem
implant_type = /obj/item/bio_chip/chem
@@ -1,4 +1,4 @@
/obj/item/implant/death_alarm
/obj/item/bio_chip/death_alarm
name = "death alarm bio-chip"
desc = "An alarm which monitors host vital signs and transmits a radio message upon death."
activated = BIOCHIP_ACTIVATED_PASSIVE
@@ -9,12 +9,12 @@
var/mobname = "Unknown"
var/static/list/stealth_areas = typecacheof(list(/area/syndicate_mothership, /area/shuttle/syndicate_elite))
/obj/item/implant/death_alarm/implant(mob/target)
/obj/item/bio_chip/death_alarm/implant(mob/target)
. = ..()
if(.)
mobname = target.real_name
/obj/item/implant/death_alarm/activate(cause) // Death signal sends name followed by the gibbed / not gibbed check
/obj/item/bio_chip/death_alarm/activate(cause) // Death signal sends name followed by the gibbed / not gibbed check
var/mob/M = imp_in
var/area/t = get_area(M)
@@ -38,26 +38,26 @@
qdel(a)
/obj/item/implant/death_alarm/emp_act(severity) //for some reason alarms stop going off in case they are emp'd, even without this
/obj/item/bio_chip/death_alarm/emp_act(severity) //for some reason alarms stop going off in case they are emp'd, even without this
activate("emp") //let's shout that this dude is dead
/obj/item/implant/death_alarm/death_trigger(mob/source, gibbed)
/obj/item/bio_chip/death_alarm/death_trigger(mob/source, gibbed)
if(gibbed)
activate("gib")
else
activate("death")
/obj/item/implant/death_alarm/removed(mob/target)
/obj/item/bio_chip/death_alarm/removed(mob/target)
if(..())
UnregisterSignal(target, COMSIG_MOB_DEATH)
return TRUE
return FALSE
/obj/item/implanter/death_alarm
/obj/item/bio_chip_implanter/death_alarm
name = "bio-chip implanter (Death Alarm)"
implant_type = /obj/item/implant/death_alarm
implant_type = /obj/item/bio_chip/death_alarm
/obj/item/implantcase/death_alarm
/obj/item/bio_chip_case/death_alarm
name = "bio-chip Case - 'Death Alarm'"
desc = "A case containing a death alarm bio-chip."
implant_type = /obj/item/implant/death_alarm
implant_type = /obj/item/bio_chip/death_alarm
@@ -1,19 +1,19 @@
// Dust implant, for CC officers. Prevents gear theft if they die.
/obj/item/implant/dust
/obj/item/bio_chip/dust
name = "duster bio-chip"
desc = "A remote controlled bio-chip that will dust the user upon activation (or death of user)."
icon = 'icons/obj/implants.dmi'
icon = 'icons/obj/bio_chips.dmi'
icon_state = "dust"
actions_types = list(/datum/action/item_action/hands_free/activate/always)
trigger_causes = BIOCHIP_TRIGGER_DEATH_ONCE | BIOCHIP_TRIGGER_NOT_WHEN_GIBBED
implant_data = /datum/implant_fluff/dust
implant_state = "implant-nanotrasen"
/obj/item/implant/dust/death_trigger(mob/source, force)
/obj/item/bio_chip/dust/death_trigger(mob/source, force)
activate("death")
/obj/item/implant/dust/activate(cause)
/obj/item/bio_chip/dust/activate(cause)
if(!cause || !imp_in || cause == "emp")
return FALSE
if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your dusting bio-chip? This will turn you to ash!", "Dusting Confirmation", "Yes", "No") != "Yes")
@@ -22,14 +22,14 @@
imp_in.visible_message("<span class = 'warning'>[imp_in] burns up in a flash!</span>")
imp_in.dust()
/obj/item/implant/dust/emp_act(severity)
/obj/item/bio_chip/dust/emp_act(severity)
return
/obj/item/implanter/dust
/obj/item/bio_chip_implanter/dust
name = "bio-chip implanter (Dust-on-death)"
implant_type = /obj/item/implant/dust
implant_type = /obj/item/bio_chip/dust
/obj/item/implantcase/dust
/obj/item/bio_chip_case/dust
name = "bio-chip case - 'Dust'"
desc = "A glass case containing a dust bio-chip."
implant_type = /obj/item/implant/dust
implant_type = /obj/item/bio_chip/dust
@@ -1,4 +1,4 @@
/obj/item/implant/emp
/obj/item/bio_chip/emp
name = "emp bio-chip"
desc = "Triggers an EMP."
icon_state = "emp"
@@ -7,17 +7,17 @@
implant_data = /datum/implant_fluff/emp
implant_state = "implant-syndicate"
/obj/item/implant/emp/activate()
/obj/item/bio_chip/emp/activate()
uses--
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(empulse), get_turf(imp_in), 3, 5, 1)
if(!uses)
qdel(src)
/obj/item/implanter/emp
/obj/item/bio_chip_implanter/emp
name = "bio-chip implanter (EMP)"
implant_type = /obj/item/implant/emp
implant_type = /obj/item/bio_chip/emp
/obj/item/implantcase/emp
/obj/item/bio_chip_case/emp
name = "bio-chip case - 'EMP'"
desc = "A glass case containing an EMP bio-chip."
implant_type = /obj/item/implant/emp
implant_type = /obj/item/bio_chip/emp
@@ -1,4 +1,4 @@
/obj/item/implant/explosive
/obj/item/bio_chip/explosive
name = "microbomb bio-chip"
desc = "And boom goes the weasel."
icon_state = "explosive"
@@ -14,10 +14,10 @@
var/heavy = 0.4
var/delay = 7
/obj/item/implant/explosive/death_trigger(mob/source, gibbed)
/obj/item/bio_chip/explosive/death_trigger(mob/source, gibbed)
activate("death")
/obj/item/implant/explosive/activate(cause)
/obj/item/bio_chip/explosive/activate(cause)
if(!cause || !imp_in)
return FALSE
if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your microbomb bio-chip? This will cause you to explode!", "Microbomb Bio-chip Confirmation", "Yes", "No") != "Yes")
@@ -36,7 +36,7 @@
timed_explosion()
/// Gib the implantee and delete their destructible contents.
/obj/item/implant/explosive/proc/self_destruct()
/obj/item/bio_chip/explosive/proc/self_destruct()
if(!imp_in)
return
@@ -67,8 +67,8 @@
qdel(src)
/obj/item/implant/explosive/implant(mob/source)
var/obj/item/implant/explosive/imp_e = locate(type) in source
/obj/item/bio_chip/explosive/implant(mob/source)
var/obj/item/bio_chip/explosive/imp_e = locate(type) in source
if(imp_e && imp_e != src)
imp_e.heavy += heavy
imp_e.medium += medium
@@ -79,7 +79,7 @@
return ..()
/obj/item/implant/explosive/proc/timed_explosion()
/obj/item/bio_chip/explosive/proc/timed_explosion()
imp_in.visible_message("<span class = 'warning'>[imp_in] starts beeping ominously!</span>")
playsound(loc, 'sound/items/timer.ogg', 30, 0)
var/wait_delay = delay / 4
@@ -95,7 +95,7 @@
sleep(wait_delay)
self_destruct()
/obj/item/implant/explosive/macro
/obj/item/bio_chip/explosive/macro
name = "macrobomb bio-chip"
desc = "And boom goes the weasel. And everything else nearby."
icon_state = "explosive"
@@ -106,7 +106,7 @@
delay = 3 SECONDS
implant_data = new /datum/implant_fluff/explosive_macro
/obj/item/implant/explosive/macro/activate(cause)
/obj/item/bio_chip/explosive/macro/activate(cause)
if(!cause || !imp_in)
return FALSE
if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your macrobomb bio-chip? This will cause you to explode and gib!", "Macrobomb Bio-chip Confirmation", "Yes", "No") != "Yes")
@@ -114,11 +114,11 @@
to_chat(imp_in, "<span class='notice'>You activate your macrobomb bio-chip.</span>")
timed_explosion()
/obj/item/implant/explosive/macro/implant(mob/source)
var/obj/item/implant/explosive/imp_e = locate(type) in source
/obj/item/bio_chip/explosive/macro/implant(mob/source)
var/obj/item/bio_chip/explosive/imp_e = locate(type) in source
if(imp_e && imp_e != src)
return FALSE
imp_e = locate(/obj/item/implant/explosive) in source
imp_e = locate(/obj/item/bio_chip/explosive) in source
if(imp_e && imp_e != src)
heavy += imp_e.heavy
medium += imp_e.medium
@@ -129,20 +129,20 @@
return ..()
/obj/item/implanter/explosive
/obj/item/bio_chip_implanter/explosive
name = "bio-chip implanter (explosive)"
implant_type = /obj/item/implant/explosive
implant_type = /obj/item/bio_chip/explosive
/obj/item/implantcase/explosive
/obj/item/bio_chip_case/explosive
name = "bio-chip case - 'Micro Explosive'"
desc = "A glass case containing a micro explosive bio-chip."
implant_type = /obj/item/implant/explosive
implant_type = /obj/item/bio_chip/explosive
/obj/item/implanter/explosive_macro
/obj/item/bio_chip_implanter/explosive_macro
name = "bio-chip implanter (macro-explosive)"
implant_type = /obj/item/implant/explosive/macro
implant_type = /obj/item/bio_chip/explosive/macro
/obj/item/implantcase/explosive_macro
/obj/item/bio_chip_case/explosive_macro
name = "bio-chip case - 'Macro Explosive'"
desc = "A glass case containing a macro explosive bio-chip."
implant_type = /obj/item/implant/explosive/macro
implant_type = /obj/item/bio_chip/explosive/macro
@@ -1,4 +1,4 @@
/obj/item/implant/freedom
/obj/item/bio_chip/freedom
name = "freedom bio-chip"
desc = "Use this to escape from those evil Red Shirts."
icon_state = "freedom"
@@ -9,7 +9,7 @@
implant_state = "implant-syndicate"
/obj/item/implant/freedom/activate()
/obj/item/bio_chip/freedom/activate()
uses--
to_chat(imp_in, "You feel a faint click.")
if(iscarbon(imp_in))
@@ -27,16 +27,16 @@
if(!uses)
qdel(src)
/obj/item/implanter/freedom
/obj/item/bio_chip_implanter/freedom
name = "bio-chip implanter (freedom)"
implant_type = /obj/item/implant/freedom
implant_type = /obj/item/bio_chip/freedom
/obj/item/implantcase/freedom
/obj/item/bio_chip_case/freedom
name = "bio-chip case - 'Freedom'"
desc = "A glass case containing a freedom bio-chip."
implant_type = /obj/item/implant/freedom
implant_type = /obj/item/bio_chip/freedom
/obj/item/implant/freedom/prototype
/obj/item/bio_chip/freedom/prototype
name = "prototype freedom bio-chip"
desc = "Use this to escape from those evil Red Shirts. Works only once!"
icon_state = "freedom"
@@ -46,11 +46,11 @@
implant_data = /datum/implant_fluff/protofreedom
implant_state = "implant-syndicate"
/obj/item/implanter/freedom/prototype
/obj/item/bio_chip_implanter/freedom/prototype
name = "bio-chip implanter (proto-freedom)"
implant_type = /obj/item/implant/freedom/prototype
implant_type = /obj/item/bio_chip/freedom/prototype
/obj/item/implantcase/freedom/prototype
/obj/item/bio_chip_case/freedom/prototype
name = "bio-chip case - 'Proto-Freedom'"
desc = "A glass case containing a prototype freedom bio-chip."
implant_type = /obj/item/implant/freedom/prototype
implant_type = /obj/item/bio_chip/freedom/prototype
@@ -1,4 +1,4 @@
/obj/item/implant/gorilla_rampage //Dumb path but easier to search for admins
/obj/item/bio_chip/gorilla_rampage //Dumb path but easier to search for admins
name = "magillitis serum bio-chip"
desc = "An experimental biochip which causes irreversable rapid muscular growth in Hominidae. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas."
icon_state = "gorilla_rampage"
@@ -7,7 +7,7 @@
implant_data = /datum/implant_fluff/gorilla_rampage
implant_state = "implant-syndicate"
/obj/item/implant/gorilla_rampage/activate()
/obj/item/bio_chip/gorilla_rampage/activate()
if(!iscarbon(imp_in))
return
@@ -15,11 +15,11 @@
target.visible_message("<span class='userdanger'>[target] swells and their hair grows rapidly. Uh oh!.</span>","<span class='userdanger'>You feel your muscles swell and your hair grow as you return to monke.</span>", "<span class='userdanger'>You hear angry gorilla noises.</span>")
target.gorillize(TRUE)
/obj/item/implanter/gorilla_rampage
/obj/item/bio_chip_implanter/gorilla_rampage
name = "bio-chip implanter (magillitis serum)"
implant_type = /obj/item/implant/gorilla_rampage
implant_type = /obj/item/bio_chip/gorilla_rampage
/obj/item/implantcase/gorilla_rampage
/obj/item/bio_chip_case/gorilla_rampage
name = "bio-chip case - 'magillitis serum'"
desc = "A glass case containing a magillitis bio-chip."
implant_type = /obj/item/implant/gorilla_rampage
implant_type = /obj/item/bio_chip/gorilla_rampage
@@ -1,4 +1,4 @@
/obj/item/implant/health
/obj/item/bio_chip/health
name = "health bio-chip"
activated = FALSE
implant_data = /datum/implant_fluff/health
@@ -6,18 +6,18 @@
var/healthstring = ""
/obj/item/implant/health/proc/sensehealth()
/obj/item/bio_chip/health/proc/sensehealth()
if(!imp_in)
return "ERROR"
else
healthstring = "[round(imp_in.getOxyLoss())] - [round(imp_in.getFireLoss())] - [round(imp_in.getToxLoss())] - [round(imp_in.getBruteLoss())]"
return healthstring
/obj/item/implanter/health
/obj/item/bio_chip_implanter/health
name = "implanter (health)"
implant_type = /obj/item/implant/health
implant_type = /obj/item/bio_chip/health
/obj/item/implantcase/health
/obj/item/bio_chip_case/health
name = "implant case - 'Health'"
desc = "A glass case containing a health implant."
implant_type = /obj/item/implant/health
implant_type = /obj/item/bio_chip/health
@@ -1,4 +1,4 @@
/obj/item/implant/krav_maga
/obj/item/bio_chip/krav_maga
name = "krav maga bio-chip"
desc = "Teaches you the arts of Krav Maga in 5 short instructional videos beamed directly into your eyeballs."
icon = 'icons/obj/wizard.dmi'
@@ -10,7 +10,7 @@
var/datum/martial_art/krav_maga/style = new
/obj/item/implant/krav_maga/activate()
/obj/item/bio_chip/krav_maga/activate()
var/mob/living/carbon/human/H = imp_in
if(!ishuman(H) || !H.mind)
return
@@ -19,11 +19,11 @@
else
style.teach(H, TRUE)
/obj/item/implanter/krav_maga
/obj/item/bio_chip_implanter/krav_maga
name = "bio-chip implanter (krav maga)"
implant_type = /obj/item/implant/krav_maga
implant_type = /obj/item/bio_chip/krav_maga
/obj/item/implantcase/krav_maga
/obj/item/bio_chip_case/krav_maga
name = "bio-chip case - 'Krav Maga'"
desc = "A glass case containing a bio-chip that can teach the user the art of Krav Maga."
implant_type = /obj/item/implant/krav_maga
implant_type = /obj/item/bio_chip/krav_maga
@@ -1,4 +1,4 @@
/obj/item/implant/mindshield
/obj/item/bio_chip/mindshield
name = "mindshield bio-chip"
desc = "Stops people messing with your mind."
origin_tech = "materials=2;biotech=4;programming=4"
@@ -6,14 +6,14 @@
implant_data = /datum/implant_fluff/mindshield
implant_state = "implant-nanotrasen"
/obj/item/implant/mindshield/can_implant(mob/source, mob/user)
/obj/item/bio_chip/mindshield/can_implant(mob/source, mob/user)
if(source.mind?.has_antag_datum(/datum/antagonist/rev/head))
source.visible_message("<span class='biggerdanger'>[source] seems to resist [src]!</span>",
"<span class='warning'>You feel something interfering with your mental conditioning, but you resist it!</span>")
return FALSE
return ..()
/obj/item/implant/mindshield/implant(mob/target)
/obj/item/bio_chip/mindshield/implant(mob/target)
if(!..())
return FALSE
if(target.mind)
@@ -26,18 +26,18 @@
to_chat(target, "<span class='notice'>Your mind feels hardened - more resistant to brainwashing.</span>")
return TRUE
/obj/item/implant/mindshield/removed(mob/target, silent = 0)
/obj/item/bio_chip/mindshield/removed(mob/target, silent = 0)
if(..())
if(target.stat != DEAD && !silent)
to_chat(target, "<span class='boldnotice'>Your mind softens. You feel susceptible to the effects of brainwashing once more.</span>")
return TRUE
return FALSE
/obj/item/implanter/mindshield
/obj/item/bio_chip_implanter/mindshield
name = "bio-chip implanter (mindshield)"
implant_type = /obj/item/implant/mindshield
implant_type = /obj/item/bio_chip/mindshield
/obj/item/implantcase/mindshield
/obj/item/bio_chip_case/mindshield
name = "bio-chip case - 'mindshield'"
desc = "A glass case containing a mindshield bio-chip."
implant_type = /obj/item/implant/mindshield
implant_type = /obj/item/bio_chip/mindshield
@@ -1,40 +1,40 @@
/obj/item/implantpad
/obj/item/bio_chip_pad
name = "bio-chip pad"
desc = "Used to modify bio-chips."
icon = 'icons/obj/implants.dmi'
icon = 'icons/obj/bio_chips.dmi'
icon_state = "implantpad-off"
item_state = "electronic"
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
var/obj/item/implantcase/case
var/obj/item/bio_chip_case/case
/obj/item/implantpad/Destroy()
/obj/item/bio_chip_pad/Destroy()
if(case)
eject_case()
return ..()
/obj/item/implantpad/examine(mob/user)
/obj/item/bio_chip_pad/examine(mob/user)
. = ..()
. += "<span class='notice'>You can <b>Alt-Click</b> [src] to remove it's stored implant.</span>"
/obj/item/implantpad/update_icon_state()
/obj/item/bio_chip_pad/update_icon_state()
if(case)
icon_state = "implantpad-on"
else
icon_state = "implantpad-off"
/obj/item/implantpad/attack_self(mob/user)
/obj/item/bio_chip_pad/attack_self(mob/user)
ui_interact(user)
/obj/item/implantpad/attackby(obj/item/implantcase/C, mob/user)
/obj/item/bio_chip_pad/attackby(obj/item/bio_chip_case/C, mob/user)
if(istype(C))
addcase(user, C)
else
return ..()
/obj/item/implantpad/proc/addcase(mob/user, obj/item/implantcase/C)
/obj/item/bio_chip_pad/proc/addcase(mob/user, obj/item/bio_chip_case/C)
if(!user || !C)
return
if(case)
@@ -45,7 +45,7 @@
case = C
update_icon(UPDATE_ICON_STATE)
/obj/item/implantpad/proc/eject_case(mob/user)
/obj/item/bio_chip_pad/proc/eject_case(mob/user)
if(!case)
return
if(user)
@@ -60,19 +60,19 @@
case = null
update_icon(UPDATE_ICON_STATE)
/obj/item/implantpad/AltClick(mob/user)
/obj/item/bio_chip_pad/AltClick(mob/user)
if(user.stat || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user))
return
eject_case(user)
/obj/item/implantpad/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = TRUE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
/obj/item/bio_chip_pad/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = TRUE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "ImplantPad", name, 410, 400, master_ui, state)
ui.open()
/obj/item/implantpad/ui_data(mob/user)
/obj/item/bio_chip_pad/ui_data(mob/user)
var/list/data = list()
data["contains_case"] = case ? TRUE : FALSE
if(case && case.imp)
@@ -86,7 +86,7 @@
)
return data
/obj/item/implantpad/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
/obj/item/bio_chip_pad/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
if(..())
return
@@ -1,4 +1,4 @@
/obj/item/implant/grey_autocloner
/obj/item/bio_chip/grey_autocloner
name = "technocracy cloning bio-chip"
desc = "Allows for advanced instantanious cloning!"
icon_state = "generic"
@@ -9,17 +9,17 @@
var/obj/machinery/grey_autocloner/linked
var/datum/dna2/record/our_record
/obj/item/implant/grey_autocloner/Destroy()
/obj/item/bio_chip/grey_autocloner/Destroy()
linked = null
our_record = null
return ..()
/obj/item/implant/grey_autocloner/death_trigger(mob/source, gibbed)
/obj/item/bio_chip/grey_autocloner/death_trigger(mob/source, gibbed)
imp_in.ghostize(TRUE)
if(linked)
linked.growclone(our_record)
/obj/item/implant/grey_autocloner/implant(mob/source, mob/user, force)
/obj/item/bio_chip/grey_autocloner/implant(mob/source, mob/user, force)
if(!linked)
to_chat(user, "<span class='warning'>Please link the implanter with a Technocracy cloning pod!</span>")
return FALSE
@@ -38,11 +38,11 @@
if(imp_in.mind) //Save that mind so traitors can continue traitoring after cloning.
our_record.mind = imp_in.mind.UID()
/obj/item/implanter/grey_autocloner
/obj/item/bio_chip_implanter/grey_autocloner
name = "bio-chip implanter (Technocracy cloning)"
implant_type = /obj/item/implant/grey_autocloner
implant_type = /obj/item/bio_chip/grey_autocloner
/obj/item/implantcase/grey_autocloner
/obj/item/bio_chip_case/grey_autocloner
name = "bio-chip case - 'Technocracy cloning'"
desc = "A glass case containing an Technocracy bio-chip."
implant_type = /obj/item/implant/grey_autocloner
implant_type = /obj/item/bio_chip/grey_autocloner
@@ -1,4 +1,4 @@
/obj/item/implant/sad_trombone
/obj/item/bio_chip/sad_trombone
name = "sad trombone bio-chip"
activated = FALSE
trigger_emotes = list("deathgasp")
@@ -7,21 +7,21 @@
implant_data = /datum/implant_fluff/sad_trombone
implant_state = "implant-honk"
/obj/item/implant/sad_trombone/emote_trigger(emote, mob/source, force)
/obj/item/bio_chip/sad_trombone/emote_trigger(emote, mob/source, force)
activate(emote)
/obj/item/implant/sad_trombone/death_trigger(mob/user, gibbed)
/obj/item/bio_chip/sad_trombone/death_trigger(mob/user, gibbed)
activate(gibbed)
/obj/item/implant/sad_trombone/activate()
/obj/item/bio_chip/sad_trombone/activate()
playsound(loc, 'sound/misc/sadtrombone.ogg', 50, FALSE)
/obj/item/implanter/sad_trombone
/obj/item/bio_chip_implanter/sad_trombone
name = "bio-chip implanter (sad trombone)"
implant_type = /obj/item/implant/sad_trombone
implant_type = /obj/item/bio_chip/sad_trombone
/obj/item/implantcase/sad_trombone
/obj/item/bio_chip_case/sad_trombone
name = "bio-chip case - 'Sad Trombone'"
desc = "A glass case containing a sad trombone bio-chip."
implant_type = /obj/item/implant/sad_trombone
implant_type = /obj/item/bio_chip/sad_trombone
@@ -3,16 +3,16 @@
*
* Implant which allows you to summon an MGS-style cardboard box that turns you invisble after a short delay.
*/
/obj/item/implant/stealth
/obj/item/bio_chip/stealth
name = "S3 bio-chip"
desc = "Allows you to be hidden in plain sight."
implant_state = "implant-syndicate"
implant_data = /datum/implant_fluff/stealth
actions_types = list(/datum/action/item_action/agent_box)
/obj/item/implanter/stealth
/obj/item/bio_chip_implanter/stealth
name = "bio-chip implanter (stealth)"
implant_type = /obj/item/implant/stealth
implant_type = /obj/item/bio_chip/stealth
/datum/action/item_action/agent_box
name = "Deploy Box"
@@ -8,7 +8,7 @@
w_class_override = list(/obj/item/storage/belt)
silent = TRUE
/obj/item/implant/storage
/obj/item/bio_chip/storage
name = "storage bio-chip"
desc = "Stores up to two big items in a bluespace pocket."
icon_state = "storage"
@@ -19,22 +19,22 @@
var/obj/item/storage/hidden/implant/storage
/obj/item/implant/storage/Initialize(mapload)
/obj/item/bio_chip/storage/Initialize(mapload)
. = ..()
storage = new /obj/item/storage/hidden/implant(src)
/obj/item/implant/storage/emp_act(severity)
/obj/item/bio_chip/storage/emp_act(severity)
..()
storage.emp_act(severity)
/obj/item/implant/storage/activate()
/obj/item/bio_chip/storage/activate()
if(!length(storage.mobs_viewing))
storage.MouseDrop(imp_in)
else
for(var/mob/to_close in storage.mobs_viewing)
storage.close(to_close)
/obj/item/implant/storage/removed(source)
/obj/item/bio_chip/storage/removed(source)
if(..())
for(var/mob/M in range(1))
if(M.s_active == storage)
@@ -43,8 +43,8 @@
storage.remove_from_storage(I, get_turf(source))
return TRUE
/obj/item/implant/storage/implant(mob/source)
var/obj/item/implant/storage/imp_e = locate(type) in source
/obj/item/bio_chip/storage/implant(mob/source)
var/obj/item/bio_chip/storage/imp_e = locate(type) in source
if(imp_e)
imp_e.storage.storage_slots += storage.storage_slots
imp_e.storage.max_combined_w_class += storage.max_combined_w_class
@@ -60,15 +60,15 @@
return ..()
/obj/item/implant/storage/proc/get_contents() //Used for swiftly returning a list of the implant's contents i.e. for checking a theft objective's completion.
/obj/item/bio_chip/storage/proc/get_contents() //Used for swiftly returning a list of the implant's contents i.e. for checking a theft objective's completion.
if(storage && storage.contents)
return storage.contents
/obj/item/implanter/storage
/obj/item/bio_chip_implanter/storage
name = "bio-chip implanter (storage)"
implant_type = /obj/item/implant/storage
implant_type = /obj/item/bio_chip/storage
/obj/item/implantcase/storage
/obj/item/bio_chip_case/storage
name = "bio-chip case - 'Storage'"
desc = "A glass case containing a storage bio-chip."
implant_type = /obj/item/implant/storage
implant_type = /obj/item/bio_chip/storage
@@ -1,4 +1,4 @@
/obj/item/implant/supercharge
/obj/item/bio_chip/supercharge
name = "supercharge bio-chip"
desc = "Removes all stuns and knockdowns."
icon_state = "adrenal"
@@ -7,7 +7,7 @@
implant_data = /datum/implant_fluff/adrenaline
implant_state = "implant-syndicate"
/obj/item/implant/supercharge/activate()
/obj/item/bio_chip/supercharge/activate()
uses--
to_chat(imp_in, "<span class='notice'>You feel an electric sensation as your components enter overdrive!</span>")
imp_in.SetStunned(0)
@@ -24,11 +24,11 @@
if(!uses)
qdel(src)
/obj/item/implanter/supercharge
/obj/item/bio_chip_implanter/supercharge
name = "bio-chip implanter (supercharge)"
implant_type = /obj/item/implant/supercharge
implant_type = /obj/item/bio_chip/supercharge
/obj/item/implantcase/supercharge
/obj/item/bio_chip_case/supercharge
name = "bio-chip case - 'supercharge'"
desc = "A glass case containing an supercharge bio-chip."
implant_type = /obj/item/implant/supercharge
implant_type = /obj/item/bio_chip/supercharge
@@ -1,4 +1,4 @@
/obj/item/implant/tracking
/obj/item/bio_chip/tracking
name = "tracking bio-chip"
desc = "Track with this."
activated = BIOCHIP_ACTIVATED_PASSIVE
@@ -9,22 +9,22 @@
var/obj/item/gps/internal_gps
var/internal_gps_path = /obj/item/gps/internal/tracking_implant
/obj/item/implant/tracking/Initialize(mapload)
/obj/item/bio_chip/tracking/Initialize(mapload)
. = ..()
GLOB.tracked_implants += src
/obj/item/implant/tracking/Destroy()
/obj/item/bio_chip/tracking/Destroy()
QDEL_NULL(internal_gps)
GLOB.tracked_implants -= src
return ..()
/obj/item/implant/tracking/implant(mob/target)
/obj/item/bio_chip/tracking/implant(mob/target)
. = ..()
if(!.)
return
internal_gps = new internal_gps_path(src)
/obj/item/implant/tracking/removed(mob/target)
/obj/item/bio_chip/tracking/removed(mob/target)
. = ..()
if(.)
QDEL_NULL(internal_gps)
@@ -33,11 +33,11 @@
gpstag = "TRACK0"
local = FALSE
/obj/item/implanter/tracking
/obj/item/bio_chip_implanter/tracking
name = "bio-chip implanter (tracking)"
implant_type = /obj/item/implant/tracking
implant_type = /obj/item/bio_chip/tracking
/obj/item/implantcase/tracking
/obj/item/bio_chip_case/tracking
name = "bio-chip case - 'Tracking'"
desc = "A glass case containing a tracking bio-chip."
implant_type = /obj/item/implant/tracking
implant_type = /obj/item/bio_chip/tracking
@@ -1,4 +1,4 @@
/obj/item/implant/traitor
/obj/item/bio_chip/traitor
name = "Mindslave Bio-chip"
desc = "Divide and Conquer"
origin_tech = "programming=5;biotech=5;syndicate=8"
@@ -9,7 +9,7 @@
/// The UID of the mindslave's `mind`. Stored to solve GC race conditions and ensure we can remove their mindslave status even when they're deleted or gibbed.
var/mindslave_UID
/obj/item/implant/traitor/implant(mob/living/carbon/human/mindslave_target, mob/living/carbon/human/user)
/obj/item/bio_chip/traitor/implant(mob/living/carbon/human/mindslave_target, mob/living/carbon/human/user)
// Check `activated` here so you can't just keep taking it out and putting it back into other people.
if(activated || !istype(mindslave_target) || !istype(user)) // Both the target and the user need to be human.
return FALSE
@@ -40,16 +40,16 @@
log_admin("[key_name_admin(user)] has mind-slaved [key_name_admin(mindslave_target)].")
return ..()
/obj/item/implant/traitor/removed(mob/target)
/obj/item/bio_chip/traitor/removed(mob/target)
. = ..()
var/datum/mind/M = locateUID(mindslave_UID)
M.remove_antag_datum(/datum/antagonist/mindslave)
/obj/item/implanter/traitor
/obj/item/bio_chip_implanter/traitor
name = "bio-chip implanter (Mindslave)"
implant_type = /obj/item/implant/traitor
implant_type = /obj/item/bio_chip/traitor
/obj/item/implantcase/traitor
/obj/item/bio_chip_case/traitor
name = "bio-chip case - 'Mindslave'"
desc = "A glass case containing a mindslave bio-chip."
implant_type = /obj/item/implant/traitor
implant_type = /obj/item/bio_chip/traitor
@@ -1,4 +1,4 @@
/obj/item/implant/uplink
/obj/item/bio_chip/uplink
name = "uplink bio-chip"
desc = "Summon things."
icon = 'icons/obj/radio.dmi'
@@ -7,29 +7,29 @@
implant_data = /datum/implant_fluff/uplink
implant_state = "implant-syndicate"
/obj/item/implant/uplink/Initialize(mapload)
/obj/item/bio_chip/uplink/Initialize(mapload)
. = ..()
hidden_uplink = new(src)
hidden_uplink.uses = 50
/obj/item/implant/uplink/nuclear/Initialize(mapload)
/obj/item/bio_chip/uplink/nuclear/Initialize(mapload)
. = ..()
if(hidden_uplink)
hidden_uplink.update_uplink_type(UPLINK_TYPE_NUCLEAR)
/obj/item/implant/uplink/sit/Initialize(mapload)
/obj/item/bio_chip/uplink/sit/Initialize(mapload)
. = ..()
if(hidden_uplink)
hidden_uplink.update_uplink_type(UPLINK_TYPE_SIT)
/obj/item/implant/uplink/admin/Initialize(mapload)
/obj/item/bio_chip/uplink/admin/Initialize(mapload)
. = ..()
if(hidden_uplink)
hidden_uplink.update_uplink_type(UPLINK_TYPE_ADMIN)
/obj/item/implant/uplink/implant(mob/source)
var/obj/item/implant/imp_e = locate(type) in source
/obj/item/bio_chip/uplink/implant(mob/source)
var/obj/item/bio_chip/imp_e = locate(type) in source
if(imp_e && imp_e != src)
imp_e.hidden_uplink.uses += hidden_uplink.uses
qdel(src)
@@ -40,23 +40,23 @@
return TRUE
return FALSE
/obj/item/implant/uplink/activate()
/obj/item/bio_chip/uplink/activate()
if(hidden_uplink)
hidden_uplink.check_trigger(imp_in)
/obj/item/implanter/uplink
/obj/item/bio_chip_implanter/uplink
name = "bio-chip implanter (uplink)"
implant_type = /obj/item/implant/uplink
implant_type = /obj/item/bio_chip/uplink
/obj/item/implantcase/uplink
/obj/item/bio_chip_case/uplink
name = "bio-chip case - 'Syndicate Uplink'"
desc = "A glass case containing an uplink bio-chip."
implant_type = /obj/item/implant/uplink
implant_type = /obj/item/bio_chip/uplink
/obj/item/implanter/nuclear
/obj/item/bio_chip_implanter/nuclear
name = "bio-chip implanter (Nuclear Agent Uplink)"
implant_type = /obj/item/implant/uplink/nuclear
implant_type = /obj/item/bio_chip/uplink/nuclear
/obj/item/implantcase/nuclear
/obj/item/bio_chip_case/nuclear
name = "bio-chip case - 'Nuclear Agent Uplink'"
implant_type = /obj/item/implant/uplink/nuclear
implant_type = /obj/item/bio_chip/uplink/nuclear
@@ -1,7 +1,7 @@
/obj/item/implanter
/obj/item/bio_chip_implanter
name = "bio-chip implanter"
desc = "A sterile automatic bio-chip injector."
icon = 'icons/obj/implants.dmi'
icon = 'icons/obj/bio_chips.dmi'
icon_state = "implanter0"
item_state = "syringe_0"
throw_speed = 3
@@ -10,10 +10,10 @@
origin_tech = "materials=2;biotech=3"
materials = list(MAT_METAL = 600, MAT_GLASS = 200)
toolspeed = 1
var/obj/item/implant/imp
var/obj/item/implant/implant_type
var/obj/item/bio_chip/imp
var/obj/item/bio_chip/implant_type
/obj/item/implanter/update_icon_state()
/obj/item/bio_chip_implanter/update_icon_state()
if(imp)
icon_state = "implanter1"
origin_tech = imp.origin_tech
@@ -21,7 +21,7 @@
icon_state = "implanter0"
origin_tech = initial(origin_tech)
/obj/item/implanter/attack(mob/living/carbon/M, mob/user)
/obj/item/bio_chip_implanter/attack(mob/living/carbon/M, mob/user)
if(!iscarbon(M))
return
if(user && imp)
@@ -39,18 +39,18 @@
imp = null
update_icon(UPDATE_ICON_STATE)
/obj/item/implanter/attackby(obj/item/W, mob/user, params)
/obj/item/bio_chip_implanter/attackby(obj/item/W, mob/user, params)
..()
if(is_pen(W))
rename_interactive(user, W)
/obj/item/implanter/Initialize(mapload)
/obj/item/bio_chip_implanter/Initialize(mapload)
. = ..()
if(!implant_type)
return
imp = new implant_type()
update_icon(UPDATE_ICON_STATE)
/obj/item/implanter/Destroy()
/obj/item/bio_chip_implanter/Destroy()
QDEL_NULL(imp)
. = ..()
+2 -2
View File
@@ -190,7 +190,7 @@
//Destroy Equipment
T.visible_message("<span class='userdanger'>Everything [user] is holding and wearing disappears!</span>")
for(var/obj/item/I in user)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
qdel(I)
if(5)
@@ -261,7 +261,7 @@
/obj/item/borg/upgrade/modkit/indoors,
/obj/item/storage/box/syndie_kit/chameleon,
/obj/item/mod/control/pre_equipped/traitor,
/obj/item/implanter/storage,
/obj/item/bio_chip_implanter/storage,
/obj/item/toy/syndicateballoon)
var/selected_item = pick(traitor_items)
T.visible_message("<span class='userdanger'>A suspicious item appears!</span>")
+1 -1
View File
@@ -93,7 +93,7 @@
new /obj/effect/decal/cleanable/blood/gibs/cleangibs(target)
else if(iscarbon(target))
for(var/obj/item/carried_item in target.contents)
if(!istype(carried_item, /obj/item/implant))//If it's not an implant.
if(!istype(carried_item, /obj/item/bio_chip))//If it's not an implant.
carried_item.add_mob_blood(target)//Oh yes, there will be blood...
var/mob/living/carbon/human/H = target
H.bloody_hands(target,0)
@@ -262,12 +262,12 @@
icon_state = "implant"
/obj/item/storage/box/trackimp/populate_contents()
new /obj/item/implantcase/tracking(src)
new /obj/item/implantcase/tracking(src)
new /obj/item/implantcase/tracking(src)
new /obj/item/implantcase/tracking(src)
new /obj/item/implanter(src)
new /obj/item/implantpad(src)
new /obj/item/bio_chip_case/tracking(src)
new /obj/item/bio_chip_case/tracking(src)
new /obj/item/bio_chip_case/tracking(src)
new /obj/item/bio_chip_case/tracking(src)
new /obj/item/bio_chip_implanter(src)
new /obj/item/bio_chip_pad(src)
new /obj/item/gps/security(src)
/obj/item/storage/box/minertracker
@@ -276,11 +276,11 @@
icon_state = "implant"
/obj/item/storage/box/minertracker/populate_contents()
new /obj/item/implantcase/tracking(src)
new /obj/item/implantcase/tracking(src)
new /obj/item/implantcase/tracking(src)
new /obj/item/implanter(src)
new /obj/item/implantpad(src)
new /obj/item/bio_chip_case/tracking(src)
new /obj/item/bio_chip_case/tracking(src)
new /obj/item/bio_chip_case/tracking(src)
new /obj/item/bio_chip_implanter(src)
new /obj/item/bio_chip_pad(src)
new /obj/item/gps/mining(src)
/obj/item/storage/box/chemimp
@@ -290,9 +290,9 @@
/obj/item/storage/box/chemimp/populate_contents()
for(var/I in 1 to 5)
new /obj/item/implantcase/chem(src)
new /obj/item/implanter(src)
new /obj/item/implantpad(src)
new /obj/item/bio_chip_case/chem(src)
new /obj/item/bio_chip_implanter(src)
new /obj/item/bio_chip_pad(src)
/obj/item/storage/box/deathimp
name = "death alarm bio-chip kit"
@@ -301,8 +301,8 @@
/obj/item/storage/box/deathimp/populate_contents()
for(var/I in 1 to 6)
new /obj/item/implantcase/death_alarm(src)
new /obj/item/implanter/death_alarm (src)
new /obj/item/bio_chip_case/death_alarm(src)
new /obj/item/bio_chip_implanter/death_alarm (src)
/obj/item/storage/box/tapes
name = "Tape Box"
@@ -821,7 +821,7 @@
new /obj/item/radio/centcom(src)
new /obj/item/door_remote/omni(src)
new /obj/item/implanter/death_alarm(src)
new /obj/item/bio_chip_implanter/death_alarm(src)
new /obj/item/reagent_containers/hypospray/combat/nanites(src)
new /obj/item/pinpointer(src)
@@ -966,8 +966,8 @@
/obj/item/storage/box/mindshield/populate_contents()
for(var/I in 1 to 3)
new /obj/item/implantcase/mindshield(src)
new /obj/item/implanter/mindshield(src)
new /obj/item/bio_chip_case/mindshield(src)
new /obj/item/bio_chip_implanter/mindshield(src)
/obj/item/storage/box/dish_drive
name = "DIY Dish Drive Kit"
@@ -90,10 +90,10 @@
req_access = list(ACCESS_SECURITY)
/obj/item/storage/lockbox/mindshield/populate_contents()
new /obj/item/implantcase/mindshield(src)
new /obj/item/implantcase/mindshield(src)
new /obj/item/implantcase/mindshield(src)
new /obj/item/implanter/mindshield(src)
new /obj/item/bio_chip_case/mindshield(src)
new /obj/item/bio_chip_case/mindshield(src)
new /obj/item/bio_chip_case/mindshield(src)
new /obj/item/bio_chip_implanter/mindshield(src)
/obj/item/storage/lockbox/clusterbang
name = "lockbox (clusterbang)"
@@ -13,7 +13,7 @@
/obj/item/card/id/syndicate, // 10TC
/obj/item/clothing/shoes/chameleon/noslip, // 10TC
/obj/item/clothing/glasses/hud/security/chameleon, // 10TC
/obj/item/implanter/storage, // 40TC
/obj/item/bio_chip_implanter/storage, // 40TC
/obj/item/pen/edagger, // 10TC
/obj/item/pinpointer/advpinpointer, // 20TC
/obj/item/storage/fancy/cigarettes/cigpack_syndicate, // 7TC
@@ -37,7 +37,7 @@
/obj/item/door_remote/omni/access_tuner, // 30TC
/obj/item/clothing/glasses/chameleon/thermal, // 15TC
/obj/item/storage/briefcase/false_bottomed, // 10 TC
/obj/item/implanter/freedom, // 25TC
/obj/item/bio_chip_implanter/freedom, // 25TC
/obj/item/coin/gold, // 0TC
/obj/item/encryptionkey/syndicate) // 10TC
@@ -101,19 +101,19 @@
/obj/item/clothing/mask/gas/clown_hat, // 0TC
/obj/item/grenade/plastic/c4, // 1TC
/obj/item/thermal_drill/diamond_drill/syndicate, // 1TC
/obj/item/implanter/freedom/prototype, // 10 TC
/obj/item/bio_chip_implanter/freedom/prototype, // 10 TC
/obj/item/encryptionkey/syndicate) // 10TC
/obj/item/storage/box/syndie_kit/bundle/implant // 200TC
name = "Bio-chip Bundle"
desc = "A few useful bio-chips to give you some options for when you inevitably get captured by the Security."
items = list(
/obj/item/implanter/freedom, // 25TC
/obj/item/implanter/stealth, // 45 TC
/obj/item/implanter/emp, // 5TC (half of EMP kit)
/obj/item/implanter/adrenalin, // 40TC
/obj/item/implanter/explosive, // 10TC
/obj/item/implanter/storage, // 40TC
/obj/item/bio_chip_implanter/freedom, // 25TC
/obj/item/bio_chip_implanter/stealth, // 45 TC
/obj/item/bio_chip_implanter/emp, // 5TC (half of EMP kit)
/obj/item/bio_chip_implanter/adrenalin, // 40TC
/obj/item/bio_chip_implanter/explosive, // 10TC
/obj/item/bio_chip_implanter/storage, // 40TC
/obj/item/encryptionkey/syndicate) // 10TC
/obj/item/storage/box/syndie_kit/bundle/hacker // 180TC
@@ -130,7 +130,7 @@
/obj/item/aiModule/toyAI, // 0TC
/obj/item/aiModule/syndicate, // 15 TC
/obj/item/storage/box/syndie_kit/camera_bug, // 5 TC
/obj/item/implanter/freedom/prototype, // 10 TC
/obj/item/bio_chip_implanter/freedom/prototype, // 10 TC
/obj/item/storage/belt/military/traitor/hacker, // 15TC + AI detector for 5 TC
/obj/item/clothing/gloves/combat, // accounted in belt + toolbox
/obj/item/flashlight/emp) // 4TC
@@ -191,7 +191,7 @@
/obj/item/mod/module/sphere_transform, // ?TC
/obj/item/autosurgeon/organ/syndicate/laser_arm, // ?TC
/obj/item/pinpointer/advpinpointer, // 20TC
/obj/item/implanter/adrenalin, // 40TC
/obj/item/bio_chip_implanter/adrenalin, // 40TC
/obj/item/storage/belt/utility/full/multitool, // 15TC
/obj/item/clothing/head/collectable/slime, // 0TC priceless
/obj/item/encryptionkey/syndicate) // 10TC
@@ -227,7 +227,7 @@
/obj/item/storage/box/syndie_kit/emp/populate_contents()
new /obj/item/grenade/empgrenade(src)
new /obj/item/grenade/empgrenade(src)
new /obj/item/implanter/emp/(src)
new /obj/item/bio_chip_implanter/emp/(src)
/obj/item/storage/box/syndie_kit/poisoner
name = "poisoner's kit"
@@ -437,7 +437,7 @@
name = "\improper Technocracy Advanced Cloning System Kit"
/obj/item/storage/box/syndie_kit/prescan/populate_contents()
new /obj/item/implanter/grey_autocloner(src)
new /obj/item/bio_chip_implanter/grey_autocloner(src)
new /obj/item/radio/beacon/syndicate/bomb/grey_autocloner(src)
/obj/item/storage/box/syndie_kit/pen_bomb
@@ -17,7 +17,7 @@
/obj/item/coin,
/obj/item/dice,
/obj/item/disk,
/obj/item/implanter,
/obj/item/bio_chip_implanter,
/obj/item/lighter,
/obj/item/match,
/obj/item/paper,
@@ -3,7 +3,6 @@
* Hand-tele
*/
/*
* Hand-tele
*/
@@ -24,10 +24,10 @@
clonemind = null
return ..()
/obj/machinery/grey_autocloner/attackby(obj/item/implanter/implant, mob/user, params)
if(!istype(implant) || !(istype(implant.imp, /obj/item/implant/grey_autocloner)))
/obj/machinery/grey_autocloner/attackby(obj/item/bio_chip_implanter/implant, mob/user, params)
if(!istype(implant) || !(istype(implant.imp, /obj/item/bio_chip/grey_autocloner)))
return ..()
var/obj/item/implant/grey_autocloner/autoclone = implant.imp
var/obj/item/bio_chip/grey_autocloner/autoclone = implant.imp
autoclone.linked = src
atom_say("Link confirmed!")