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-06 23:15:55 +00:00
committed by GitHub
co-authored by Burzah Contrabang S34N
parent fad6509b5e
commit 382a71df0d
94 changed files with 674 additions and 675 deletions
+138 -138
View File
@@ -22748,6 +22748,11 @@
},
/turf/simulated/floor/wood,
/area/station/service/bar)
"byM" = (
/obj/structure/table/wood/poker,
/obj/item/storage/bag/dice,
/turf/simulated/floor/wood,
/area/station/service/bar)
"byP" = (
/obj/structure/cable/yellow{
d1 = 1;
@@ -34200,6 +34205,12 @@
/obj/machinery/atmospherics/pipe/simple/visible,
/turf/simulated/wall/r_wall,
/area/station/maintenance/turbine)
"clC" = (
/obj/machinery/light/small{
dir = 1
},
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
"clE" = (
/obj/structure/cable/yellow{
d1 = 1;
@@ -34252,6 +34263,13 @@
icon_state = "white"
},
/area/station/medical/virology)
"clN" = (
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"clO" = (
/obj/structure/cable/yellow{
d1 = 1;
@@ -37100,6 +37118,10 @@
icon_state = "whiteblue"
},
/area/station/medical/medbay)
"cwZ" = (
/obj/machinery/space_heater,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"cxa" = (
/obj/machinery/computer/robotics{
dir = 8
@@ -43623,15 +43645,8 @@
},
/area/station/service/chapel)
"cUL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,
/obj/structure/cable/yellow{
d1 = 1;
d2 = 8;
icon_state = "1-8"
},
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"cUM" = (
@@ -46894,20 +46909,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/engineering/control)
"dxQ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/structure/cable/yellow{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"dxT" = (
/obj/item/radio/intercom{
name = "north bump";
@@ -47695,6 +47696,13 @@
},
/turf/simulated/floor/plating,
/area/station/hallway/secondary/entry)
"dUG" = (
/obj/structure/chair/office/dark{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"dUJ" = (
/obj/structure/window/reinforced,
/obj/effect/turf_decal/delivery,
@@ -48075,6 +48083,12 @@
icon_state = "freezerfloor"
},
/area/station/public/toilet/lockerroom)
"ech" = (
/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/table,
/obj/effect/spawner/random_spawners/cobweb_left_rare,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"edg" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass,
@@ -53608,12 +53622,8 @@
/turf/simulated/floor/engine,
/area/station/engineering/engine/supermatter)
"gvN" = (
/obj/machinery/hologram/holopad,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable/yellow{
d1 = 1;
d2 = 2;
icon_state = "1-2"
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -53729,6 +53739,20 @@
icon_state = "purple"
},
/area/station/science/xenobiology)
"gAM" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/structure/cable/yellow{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"gBa" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 8
@@ -56527,10 +56551,6 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"hGf" = (
/obj/machinery/space_heater,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"hGj" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -59774,13 +59794,6 @@
/obj/effect/mapping_helpers/airlock/access/all/supply/general,
/turf/simulated/floor/plasteel,
/area/station/supply/storage)
"jaq" = (
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"jau" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging,
/turf/simulated/floor/bluegrid/telecomms,
@@ -62213,6 +62226,11 @@
icon_state = "dark"
},
/area/station/security/execution)
"kiC" = (
/obj/item/paper/crumpled,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/maintenance/aft2)
"kiH" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/plasteel,
@@ -62237,9 +62255,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"kkZ" = (
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"kli" = (
/obj/structure/bed,
/obj/machinery/camera{
@@ -68907,11 +68922,6 @@
icon_state = "darkgreycheck"
},
/area/station/command/office/rd)
"mWI" = (
/obj/structure/table/wood/poker,
/obj/item/storage/bag/dice,
/turf/simulated/floor/wood,
/area/station/service/bar)
"mWL" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 4
@@ -69694,12 +69704,6 @@
"nkt" = (
/turf/simulated/floor/plating,
/area/station/maintenance/xenobio_south)
"nkz" = (
/obj/machinery/light/small{
dir = 1
},
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"nkU" = (
/mob/living/simple_animal/pet/dog/corgi/borgi,
/obj/structure/cable/yellow{
@@ -73255,9 +73259,10 @@
/turf/simulated/floor/engine,
/area/station/science/explab/chamber)
"oUw" = (
/obj/item/paper/crumpled,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/obj/machinery/light/small{
dir = 1
},
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"oUI" = (
/obj/structure/cable/yellow{
@@ -73500,20 +73505,6 @@
},
/turf/space,
/area/space/nearstation)
"oYB" = (
/obj/structure/cable/yellow{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"oYO" = (
/turf/simulated/floor/plasteel{
icon_state = "C1"
@@ -73846,7 +73837,7 @@
/obj/item/toy/crayon/white{
pixel_y = -4
},
/obj/item/implanter{
/obj/item/bio_chip_implanter{
pixel_x = 5;
pixel_y = 12
},
@@ -76851,6 +76842,18 @@
icon_state = "whitepurple"
},
/area/station/science/research)
"qth" = (
/obj/machinery/hologram/holopad,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable/yellow{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/turf/simulated/floor/plasteel{
icon_state = "white"
},
/area/station/science/rnd)
"qto" = (
/obj/machinery/atmospherics/unary/portables_connector,
/obj/machinery/camera{
@@ -77275,9 +77278,15 @@
},
/area/station/medical/surgery/secondary)
"qBO" = (
/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/table,
/obj/effect/spawner/random_spawners/cobweb_left_rare,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,
/obj/structure/cable/yellow{
d1 = 1;
d2 = 8;
icon_state = "1-8"
},
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"qBP" = (
@@ -78490,12 +78499,6 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/medmaint)
"rfw" = (
/obj/machinery/light/small{
dir = 1
},
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
"rfD" = (
/obj/structure/table,
/obj/item/storage/box/donkpockets{
@@ -84750,6 +84753,20 @@
icon_state = "vault"
},
/area/station/security/armory/secure)
"tYH" = (
/obj/structure/cable/yellow{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"tYV" = (
/obj/structure/rack,
/obj/item/reagent_containers/food/drinks/bottle/rum{
@@ -88617,11 +88634,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/main)
"vHP" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"vHW" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -89059,14 +89071,6 @@
},
/turf/simulated/floor/plating,
/area/station/engineering/control)
"vUF" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
/turf/simulated/floor/plasteel{
icon_state = "white"
},
/area/station/science/rnd)
"vUV" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -89247,10 +89251,6 @@
},
/area/station/hallway/primary/port)
"vZo" = (
/obj/structure/chair/office/dark{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"vZA" = (
@@ -119822,9 +119822,9 @@ adi
oLF
xKQ
adi
dxQ
gAM
pXf
oYB
tYH
oEm
amx
pPJ
@@ -122498,10 +122498,10 @@ tmz
qKY
lYB
avs
vHP
cUL
lCO
coG
qBO
ech
wKQ
coG
kEw
@@ -122758,14 +122758,14 @@ nDC
cLl
laR
tmz
kkZ
vZo
iCJ
avs
lYB
eJN
coG
adp
vZo
dUG
cOp
ddW
ret
@@ -123005,14 +123005,14 @@ cBT
hPb
iMu
coG
nkz
oUw
qyW
sMn
coG
coG
crN
cFt
kkZ
vZo
drp
hHA
vNL
@@ -123021,7 +123021,7 @@ eIC
wlG
kIS
coG
oUw
kiC
mlV
cOp
cQU
@@ -123268,15 +123268,15 @@ cWF
coG
xan
coG
kkZ
vZo
lYB
hGf
cwZ
coG
lYB
kkZ
vZo
xLO
kkZ
vHP
vZo
cUL
tmz
mlV
hCA
@@ -123786,13 +123786,13 @@ agK
agK
cOp
lst
kkZ
vZo
lYB
kQj
coG
tba
mZq
kkZ
vZo
coG
coG
dif
@@ -124043,16 +124043,16 @@ fjU
saM
cOp
rKH
kkZ
kkZ
vZo
vZo
jKP
jDv
xHR
cSY
tNn
kkZ
kkZ
kkZ
vZo
vZo
vZo
aef
abq
aaa
@@ -124305,8 +124305,8 @@ lTS
kQj
coG
coG
vHP
jaq
cUL
clN
coG
coG
coG
@@ -124558,9 +124558,9 @@ wnf
cOp
hqx
lYB
kkZ
vZo
xLO
vHP
cUL
tmz
coG
coG
@@ -124817,7 +124817,7 @@ mtr
lYB
jFH
mLH
kkZ
vZo
hXg
abq
aaa
@@ -125074,7 +125074,7 @@ coG
coG
tmz
xLO
kkZ
vZo
coG
aaa
aaa
@@ -125297,7 +125297,7 @@ hYA
pho
evt
clr
gvN
qth
kqw
hVX
fNQ
@@ -125557,7 +125557,7 @@ xOz
bYQ
cHK
nLV
vUF
gvN
bYq
qxW
cvl
@@ -125845,8 +125845,8 @@ eZR
rVg
coG
wWu
kkZ
kkZ
vZo
vZo
hXg
abq
aaa
@@ -126103,7 +126103,7 @@ cKS
wxV
gWk
lYB
kkZ
vZo
hXg
aaa
aaa
@@ -126360,7 +126360,7 @@ dXZ
coG
kQj
mlV
vHP
cUL
coG
abq
aaa
@@ -126872,11 +126872,11 @@ vgA
gFT
jAR
dag
cUL
kkZ
qBO
vZo
tmz
mxp
vHP
cUL
coG
aaa
abq
@@ -127133,7 +127133,7 @@ ekF
dpM
vNL
fxt
kkZ
vZo
hXg
aaa
abq
@@ -127387,7 +127387,7 @@ gei
coG
nBf
lYB
kkZ
vZo
avs
lTS
lYB
@@ -128870,7 +128870,7 @@ bHA
bwp
ewt
qRq
mWI
byM
bEA
bvz
bEv
@@ -130690,7 +130690,7 @@ bZv
caS
bZv
bZv
rfw
clC
ipj
cte
lXi
+8 -8
View File
@@ -3979,32 +3979,32 @@
/area/abductor_ship)
"ns" = (
/obj/structure/rack,
/obj/item/implanter/adrenalin{
/obj/item/bio_chip_implanter/adrenalin{
pixel_x = 12;
pixel_y = -12
},
/obj/item/implanter/emp{
/obj/item/bio_chip_implanter/emp{
pixel_x = 9;
pixel_y = -9
},
/obj/item/implanter/explosive{
/obj/item/bio_chip_implanter/explosive{
pixel_x = 6;
pixel_y = -6
},
/obj/item/implanter/explosive_macro{
/obj/item/bio_chip_implanter/explosive_macro{
pixel_x = 3;
pixel_y = -3
},
/obj/item/implanter/freedom,
/obj/item/implanter/krav_maga{
/obj/item/bio_chip_implanter/freedom,
/obj/item/bio_chip_implanter/krav_maga{
pixel_x = -9;
pixel_y = 9
},
/obj/item/implanter/mindshield{
/obj/item/bio_chip_implanter/mindshield{
pixel_x = -6;
pixel_y = 6
},
/obj/item/implanter/storage{
/obj/item/bio_chip_implanter/storage{
pixel_x = -3;
pixel_y = 3
},
+3 -3
View File
@@ -649,12 +649,12 @@
#define COMSIG_SUIT_SPACE_TOGGLE "suit_space_toggle"
// /obj/item/implant signals
///from base of /obj/item/implant/proc/activate(): ()
///from base of /obj/item/bio_chip/proc/activate(): ()
#define COMSIG_IMPLANT_ACTIVATED "implant_activated"
///from base of /obj/item/implant/proc/implant(): (list/args)
///from base of /obj/item/bio_chip/proc/implant(): (list/args)
#define COMSIG_IMPLANT_IMPLANTING "implant_implanting"
#define COMPONENT_STOP_IMPLANTING (1<<0)
///called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant)
///called on already installed implants when a new one is being added in /obj/item/bio_chip/proc/implant(): (list/args, obj/item/bio_chip/new_implant)
#define COMSIG_IMPLANT_OTHER "implant_other"
//#define COMPONENT_STOP_IMPLANTING (1<<0) //The name makes sense for both
#define COMPONENT_DELETE_NEW_IMPLANT (1<<1)
+1 -1
View File
@@ -1649,7 +1649,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/obj/item/grenade/clusterbuster = "CLUSTERBUSTER",
/obj/item/grenade = "GRENADE",
/obj/item/gun = "GUN",
/obj/item/implant = "IMPLANT",
/obj/item/bio_chip = "BIO_CHIP",
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK",
/obj/item/mecha_parts/mecha_equipment/weapon = "MECHA_WEAPON",
/obj/item/mecha_parts/mecha_equipment = "MECHA_EQUIP",
+1 -1
View File
@@ -53,7 +53,7 @@
affected_mob.overlays.Cut()
affected_mob.invisibility = 101
for(var/obj/item/W in affected_mob)
if(istype(W, /obj/item/implant))
if(istype(W, /obj/item/bio_chip))
qdel(W)
continue
W.layer = initial(W.layer)
+4 -4
View File
@@ -802,14 +802,14 @@
switch(href_list["implant"])
if("remove")
for(var/obj/item/implant/mindshield/I in H.contents)
for(var/obj/item/bio_chip/mindshield/I in H.contents)
if(I && I.implanted)
qdel(I)
to_chat(H, "<span class='notice'><Font size =3><B>Your mindshield bio-chip has been deactivated.</B></FONT></span>")
to_chat(H, "<span class='notice'><font size='3'><b>Your mindshield bio-chip has been deactivated.</b></font></span>")
log_admin("[key_name(usr)] has deactivated [key_name(current)]'s mindshield bio-chip")
message_admins("[key_name_admin(usr)] has deactivated [key_name_admin(current)]'s mindshield bio-chip")
if("add")
var/obj/item/implant/mindshield/L = new/obj/item/implant/mindshield(H)
var/obj/item/bio_chip/mindshield/L = new/obj/item/bio_chip/mindshield(H)
L.implant(H)
log_admin("[key_name(usr)] has given [key_name(current)] a mindshield bio-chip")
@@ -1407,7 +1407,7 @@
if(has_antag_datum(/datum/antagonist/mindslave, FALSE))
var/mob/living/carbon/human/H = current
for(var/i in H.contents)
if(istype(i, /obj/item/implant/traitor))
if(istype(i, /obj/item/bio_chip/traitor))
qdel(i)
break
remove_antag_datum(/datum/antagonist/mindslave)
+8 -8
View File
@@ -25,7 +25,7 @@
var/internals_slot = null //ID of slot containing a gas tank
var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format
var/box // Internals box. Will be inserted at the start of backpack_contents
var/list/implants = list()
var/list/bio_chips = list()
var/list/cybernetic_implants = list()
var/list/accessories = list()
@@ -136,9 +136,9 @@
H.internal = H.get_item_by_slot(internals_slot)
H.update_action_buttons_icon()
if(implants)
for(var/implant_type in implants)
var/obj/item/implant/I = new implant_type(H)
if(bio_chips)
for(var/bio_chip_type in bio_chips)
var/obj/item/bio_chip/I = new bio_chip_type(H)
I.implant(H, null)
H.update_body()
@@ -232,12 +232,12 @@
backpack_contents[itype] = backpack[item]
box = text2path(outfit_data["box"])
var/list/impl = outfit_data["implants"]
implants = list()
var/list/impl = outfit_data["bio_chips"]
bio_chips = list()
for(var/I in impl)
var/imptype = text2path(I)
if(imptype)
implants += imptype
bio_chips += imptype
var/list/cybernetic_impl = outfit_data["cybernetic_implants"]
cybernetic_implants = list()
@@ -281,7 +281,7 @@
.["internals_slot"] = internals_slot
.["backpack_contents"] = backpack_contents
.["box"] = box
.["implants"] = implants
.["bio_chips"] = bio_chips
.["cybernetic_implants"] = cybernetic_implants
.["accessories"] = accessories
+27 -27
View File
@@ -113,7 +113,7 @@
if(visualsOnly)
return
var/obj/item/implant/explosive/E = new(H)
var/obj/item/bio_chip/explosive/E = new(H)
E.implant(H)
@@ -136,8 +136,8 @@
uplink_uses = 200
id_access = "Syndicate Agent"
implants = list(
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/dust
)
@@ -181,11 +181,11 @@
pda = /obj/item/pda/centcom
backpack_contents = list(
/obj/item/storage/box/centcomofficer = 1,
/obj/item/implanter/death_alarm = 1
/obj/item/bio_chip_implanter/death_alarm = 1
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/dust
)
/datum/outfit/admin/nt_navy_captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -212,11 +212,11 @@
pda = /obj/item/pda/centcom
backpack_contents = list(
/obj/item/storage/box/survival = 1,
/obj/item/implanter/death_alarm = 1,
/obj/item/bio_chip_implanter/death_alarm = 1,
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/dust
)
/datum/outfit/admin/nt_diplomat/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -246,8 +246,8 @@
/obj/item/flashlight = 1,
/obj/item/pinpointer/crew = 1
)
implants = list(
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/dust
)
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/eyes/hud/security,
@@ -299,9 +299,9 @@
/obj/item/shield/energy,
)
implants = list(
/obj/item/implant/mindshield, // No death alarm, Deathsquad are silent
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/mindshield, // No death alarm, Deathsquad are silent
/obj/item/bio_chip/dust
)
/datum/outfit/admin/deathsquad_commando/leader
@@ -701,12 +701,12 @@
pda = /obj/item/pda
backpack_contents = list(
/obj/item/storage/box/responseteam = 1,
/obj/item/implanter/dust = 1,
/obj/item/implanter/death_alarm = 1,
/obj/item/bio_chip_implanter/dust = 1,
/obj/item/bio_chip_implanter/death_alarm = 1,
)
implants = list(/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/admin/solgov_rep/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -749,8 +749,8 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened,
/obj/item/organ/internal/cyberimp/eyes/hud/security
)
implants = list(/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
var/is_solgov_lieutenant = FALSE
@@ -1041,7 +1041,7 @@
. = ..()
for(var/obj/item/I in H.contents)
if(!istype(I, /obj/item/implant))
if(!istype(I, /obj/item/bio_chip))
I.add_mob_blood(H)
if(visualsOnly)
@@ -1076,7 +1076,7 @@
. = ..()
for(var/obj/item/I in H.contents)
if(!istype(I, /obj/item/implant))
if(!istype(I, /obj/item/bio_chip))
I.add_mob_blood(H)
if(visualsOnly)
@@ -1273,8 +1273,8 @@
/obj/item/storage/box/survival = 1,
/obj/item/flashlight = 1,
)
implants = list(
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/dust
)
/datum/outfit/admin/dark_priest/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -1371,7 +1371,7 @@
shoes = /obj/item/clothing/shoes/black
box = /obj/item/storage/box/survival
backpack_contents = list(
/obj/item/implanter/dust = 1
/obj/item/bio_chip_implanter/dust = 1
)
/datum/outfit/admin/observer/plasmaman
+5 -5
View File
@@ -116,13 +116,13 @@
O.backpack_contents = typecounts
// TODO : Copy varedits from backpack stuff too.
// Copy implants
O.implants = list()
for(var/obj/item/implant/I in contents)
//Copy biochips
O.bio_chips = list()
for(var/obj/item/bio_chip/I in contents)
if(istype(I))
O.implants |= I.type
O.bio_chips |= I.type
// Copy cybernetic implants
// Copy cybernetic biochips
O.cybernetic_implants = list()
for(var/org in internal_organs)
var/obj/item/organ/internal/aug = org
+1 -1
View File
@@ -119,7 +119,7 @@
/obj/structure/cable,
/obj/machinery/atmospherics,
/obj/item/ammo_casing,
/obj/item/implant,
/obj/item/bio_chip,
/obj/singularity,
))
if(!can_contaminate || !can_contam || blacklisted[thing.type])
@@ -22,7 +22,7 @@
)
var/list/own_blacklist = list(
/obj/item/organ,
/obj/item/implant
/obj/item/bio_chip
)
/datum/spell_targeting/matter_eater/choose_targets(mob/user, obj/effect/proc_holder/spell/spell, params, atom/clicked_atom)
+14 -14
View File
@@ -740,50 +740,50 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
// IMPLANTS
/datum/uplink_item/implants
category = "Implants"
/datum/uplink_item/bio_chips
category = "Bio-chips"
/datum/uplink_item/implants/freedom
/datum/uplink_item/bio_chips/freedom
name = "Freedom Bio-chip"
desc = "A bio-chip injected into the body and later activated manually to break out of any restraints or grabs. Can be activated up to 4 times."
reference = "FI"
item = /obj/item/implanter/freedom
item = /obj/item/bio_chip_implanter/freedom
cost = 25
/datum/uplink_item/implants/protofreedom
/datum/uplink_item/bio_chips/protofreedom
name = "Prototype Freedom Bio-chip"
desc = "A prototype bio-chip injected into the body and later activated manually to break out of any restraints or grabs. Can only be activated a singular time."
reference = "PFI"
item = /obj/item/implanter/freedom/prototype
item = /obj/item/bio_chip_implanter/freedom/prototype
cost = 10
/datum/uplink_item/implants/storage
/datum/uplink_item/bio_chips/storage
name = "Storage Bio-chip"
desc = "A bio-chip injected into the body, and later activated at the user's will. It will open a small subspace pocket capable of storing two items."
reference = "ESI"
item = /obj/item/implanter/storage
item = /obj/item/bio_chip_implanter/storage
cost = 40
/datum/uplink_item/implants/mindslave
/datum/uplink_item/bio_chips/mindslave
name = "Mindslave Bio-chip"
desc = "A box containing a bio-chip implanter filled with a mindslave bio-chip that when injected into another person makes them loyal to you and your cause, unless of course they're already implanted by someone else. Loyalty ends if the implant is no longer in their system."
reference = "MI"
item = /obj/item/implanter/traitor
item = /obj/item/bio_chip_implanter/traitor
cost = 50
/datum/uplink_item/implants/adrenal
/datum/uplink_item/bio_chips/adrenal
name = "Adrenal Bio-chip"
desc = "A bio-chip injected into the body, and later activated manually to inject a chemical cocktail, which has a mild healing effect along with removing and reducing the time of all stuns and increasing movement speed. Can be activated up to 3 times."
reference = "AI"
item = /obj/item/implanter/adrenalin
item = /obj/item/bio_chip_implanter/adrenalin
cost = 40
/datum/uplink_item/implants/stealthimplant
/datum/uplink_item/bio_chips/stealthimplant
name = "Stealth Bio-chip"
desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right. \
On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it."
reference = "SI"
item = /obj/item/implanter/stealth
item = /obj/item/bio_chip_implanter/stealth
cost = 45
// POINTLESS BADASSERY
+8 -8
View File
@@ -508,35 +508,35 @@
// IMPLANTS
/datum/uplink_item/implants/krav_implant
/datum/uplink_item/bio_chips/krav_implant
name = "Krav Maga Implant"
desc = "A biochip that teaches you Krav Maga when implanted, great as a cheap backup weapon. Warning: the biochip will override any other fighting styles such as CQC while active."
reference = "KMI"
item = /obj/item/implanter/krav_maga
item = /obj/item/bio_chip_implanter/krav_maga
cost = 25
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
/datum/uplink_item/implants/uplink/nuclear
/datum/uplink_item/bio_chips/uplink/nuclear
name = "Nuclear Uplink Bio-chip"
reference = "UIN"
item = /obj/item/implanter/nuclear
item = /obj/item/bio_chip_implanter/nuclear
excludefrom = list()
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
/datum/uplink_item/implants/microbomb
/datum/uplink_item/bio_chips/microbomb
name = "Microbomb Bio-chip"
desc = "A bio-chip injected into the body, and later activated either manually or automatically upon death. The more implants inside of you, the higher the explosive power. \
This will permanently destroy your body, however."
reference = "MBI"
item = /obj/item/implanter/explosive
item = /obj/item/bio_chip_implanter/explosive
cost = 10
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
/datum/uplink_item/implants/macrobomb
/datum/uplink_item/bio_chips/macrobomb
name = "Macrobomb Bio-chip"
desc = "A bio-chip injected into the body, and later activated either manually or automatically upon death. Upon death, releases a massive explosion that will wipe out everything nearby."
reference = "HAB"
item = /obj/item/implanter/explosive_macro
item = /obj/item/bio_chip_implanter/explosive_macro
cost = 50
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
+4 -4
View File
@@ -290,7 +290,7 @@
desc = "A single-use bio-chip which contains an experimental serum that causes rapid muscular growth in Hominidae. \
Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas."
reference = "MAG"
item = /obj/item/implanter/gorilla_rampage
item = /obj/item/bio_chip_implanter/gorilla_rampage
cost = 25
job = list("Research Director", "Geneticist")
@@ -340,7 +340,7 @@
name = "Synthetic Supercharge Bio-chip"
desc = "A bio-chip injected into the body, and later activated manually to inject a chemical cocktail, which has the effect of removing and reducing the time of all stuns and increasing movement speed. Can be activated up to 3 times."
reference = "SSI"
item = /obj/item/implanter/supercharge
item = /obj/item/bio_chip_implanter/supercharge
cost = 40
species = list("Machine")
surplus = 0
@@ -506,11 +506,11 @@
surplus = 60
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
/datum/uplink_item/implants/uplink // Nukies get Nuclear Uplink Bio-chip instead
/datum/uplink_item/bio_chips/uplink // Nukies get Nuclear Uplink Bio-chip instead
name = "Uplink Bio-chip"
desc = "A bio-chip injected into the body, and later activated manually to open an uplink with 50 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement."
reference = "UI"
item = /obj/item/implanter/uplink
item = /obj/item/bio_chip_implanter/uplink
cost = 70
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 0
+4 -4
View File
@@ -238,15 +238,15 @@
for(var/i in list(IMPTRACK_HUD, IMPMINDSHIELD_HUD, IMPCHEM_HUD))
holder = hud_list[i]
holder.icon_state = null
for(var/obj/item/implant/I in src)
for(var/obj/item/bio_chip/I in src)
if(I.implanted)
if(istype(I,/obj/item/implant/tracking))
if(istype(I,/obj/item/bio_chip/tracking))
holder = hud_list[IMPTRACK_HUD]
holder.icon_state = "hud_imp_tracking"
else if(istype(I,/obj/item/implant/mindshield))
else if(istype(I,/obj/item/bio_chip/mindshield))
holder = hud_list[IMPMINDSHIELD_HUD]
holder.icon_state = "hud_imp_loyal"
else if(istype(I,/obj/item/implant/chem))
else if(istype(I,/obj/item/bio_chip/chem))
holder = hud_list[IMPCHEM_HUD]
holder.icon_state = "hud_imp_chem"
+2 -2
View File
@@ -15,7 +15,7 @@
if(issmall(H))
return
for(var/obj/item/W in H)
if(istype(W, /obj/item/implant))
if(istype(W, /obj/item/bio_chip))
continue
H.unEquip(W)
@@ -50,7 +50,7 @@
for(var/obj/item/W in H)
if(W == H.w_uniform) // will be torn
continue
if(istype(W, /obj/item/implant))
if(istype(W, /obj/item/bio_chip))
continue
H.unEquip(W)
H.regenerate_icons()
@@ -93,7 +93,7 @@
if(!player.current || !ishuman(player.current)) // Remove mindshield-implanted mobs from the list
continue
var/mob/living/carbon/human/H = player.current
for(var/obj/item/implant/mindshield/I in H.contents)
for(var/obj/item/bio_chip/mindshield/I in H.contents)
if(I && I.implanted)
possible_traitors -= player
if(!H.job || H.mind.offstation_role) //Golems, special events stuff, etc.
@@ -58,5 +58,5 @@
/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
if(!visualsOnly)
var/obj/item/implant/abductor/beamplant = new /obj/item/implant/abductor(H)
var/obj/item/bio_chip/abductor/beamplant = new /obj/item/bio_chip/abductor(H)
beamplant.implant(H)
@@ -17,7 +17,7 @@
/datum/surgery/organ_extraction/can_start(mob/user, mob/living/carbon/target, target_zone, obj/item/tool,datum/surgery/surgery)
var/mob/living/carbon/human/H = user
// You must either: Be of the abductor species, or contain an abductor implant
if((isabductor(H) || (locate(/obj/item/implant/abductor) in H)))
if((isabductor(H) || (locate(/obj/item/bio_chip/abductor) in H)))
return TRUE
return FALSE
+1 -1
View File
@@ -309,7 +309,7 @@
synd_mob.update_action_buttons_icon()
synd_mob.rejuvenate() //fix any damage taken by naked vox/plasmamen/etc while round setups
var/obj/item/implant/explosive/E = new/obj/item/implant/explosive(synd_mob)
var/obj/item/bio_chip/explosive/E = new/obj/item/bio_chip/explosive(synd_mob)
E.implant(synd_mob)
synd_mob.faction |= "syndicate"
synd_mob.update_icons()
+1 -1
View File
@@ -630,7 +630,7 @@ GLOBAL_LIST_EMPTY(multiverse)
M.equip_to_slot_or_del(new /obj/item/scalpel(M), SLOT_HUD_RIGHT_STORE)
M.equip_to_slot_or_del(sword, SLOT_HUD_RIGHT_HAND)
for(var/obj/item/carried_item in M.contents)
if(!istype(carried_item, /obj/item/implant))
if(!istype(carried_item, /obj/item/bio_chip))
carried_item.add_mob_blood(M)
if("pirate")
+6 -6
View File
@@ -28,9 +28,9 @@
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
id = /obj/item/card/id/centcom
pda = /obj/item/pda/centcom
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/dust
)
backpack = /obj/item/storage/backpack/satchel
backpack_contents = list(
@@ -88,9 +88,9 @@
/obj/item/clothing/shoes/magboots/advance = 1,
/obj/item/storage/box/zipties = 1
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/dust
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/dust
)
cybernetic_implants = list(
/obj/item/organ/internal/eyes/cybernetic/xray/hardened,
+4 -4
View File
@@ -44,7 +44,7 @@
/obj/item/melee/classic_baton/telescopic = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
backpack = /obj/item/storage/backpack/security
satchel = /obj/item/storage/backpack/satchel_sec
@@ -89,7 +89,7 @@
/obj/item/restraints/handcuffs = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
backpack = /obj/item/storage/backpack/security
satchel = /obj/item/storage/backpack/satchel_sec
@@ -139,7 +139,7 @@
/obj/item/melee/classic_baton/telescopic = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
/datum/outfit/job/detective/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
@@ -192,7 +192,7 @@
backpack_contents = list(
/obj/item/restraints/handcuffs = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
backpack = /obj/item/storage/backpack/security
satchel = /obj/item/storage/backpack/satchel_sec
dufflebag = /obj/item/storage/backpack/duffel/security
+6 -6
View File
@@ -41,7 +41,7 @@
/obj/item/storage/box/ids = 1,
/obj/item/melee/classic_baton/telescopic = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
backpack = /obj/item/storage/backpack/captain
satchel = /obj/item/storage/backpack/satchel_cap
dufflebag = /obj/item/storage/backpack/duffel/captain
@@ -101,7 +101,7 @@
/obj/item/melee/classic_baton/telescopic = 1
)
implants = list()
bio_chips = list()
@@ -149,7 +149,7 @@
backpack_contents = list(
/obj/item/melee/classic_baton/ntcane = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
@@ -195,7 +195,7 @@
/obj/item/storage/box/deathimp = 1,
/obj/item/gun/energy/gun/blueshield = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
backpack = /obj/item/storage/backpack/blueshield
satchel = /obj/item/storage/backpack/satchel_blueshield
dufflebag = /obj/item/storage/backpack/duffel/blueshield
@@ -242,7 +242,7 @@
backpack_contents = list(
/obj/item/melee/classic_baton/telescopic = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
satchel = /obj/item/storage/backpack/satchel_sec
dufflebag = /obj/item/storage/backpack/duffel/security
@@ -284,6 +284,6 @@
backpack_contents = list(
/obj/item/flash = 1
)
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
satchel = /obj/item/storage/backpack/satchel_sec
dufflebag = /obj/item/storage/backpack/duffel/security
+1 -1
View File
@@ -290,7 +290,7 @@
/obj/item/instrument/bikehorn = 1
)
implants = list(/obj/item/implant/sad_trombone)
bio_chips = list(/obj/item/bio_chip/sad_trombone)
backpack = /obj/item/storage/backpack/clown
satchel = /obj/item/storage/backpack/satchel/clown
+5 -5
View File
@@ -36,10 +36,10 @@
/obj/item/gun/projectile/automatic/pistol/deagle/camo = 1,
/obj/item/clothing/accessory/holster = 1
)
implants = list(
/obj/item/implant/dust,
/obj/item/implant/freedom,
/obj/item/implant/adrenalin
bio_chips = list(
/obj/item/bio_chip/dust,
/obj/item/bio_chip/freedom,
/obj/item/bio_chip/adrenalin
)
cybernetic_implants = list(
@@ -52,7 +52,7 @@
if(visualsOnly)
return
var/obj/item/implant/uplink/admin/U = new /obj/item/implant/uplink/admin(H)
var/obj/item/bio_chip/uplink/admin/U = new /obj/item/bio_chip/uplink/admin(H)
U.implant(H)
U.hidden_uplink.uses = 2500
H.faction += "syndicate"
+2 -2
View File
@@ -10,7 +10,7 @@
active_power_consumption = 2500
light_color = "#00FF00"
var/mob/living/carbon/human/occupant
var/known_implants = list(/obj/item/implant/chem, /obj/item/implant/death_alarm, /obj/item/implant/mindshield, /obj/item/implant/tracking, /obj/item/implant/health)
var/known_implants = list(/obj/item/bio_chip/chem, /obj/item/bio_chip/death_alarm, /obj/item/bio_chip/mindshield, /obj/item/bio_chip/tracking, /obj/item/bio_chip/health)
/obj/machinery/bodyscanner/examine(mob/user)
. = ..()
@@ -271,7 +271,7 @@
occupantData["blood"] = bloodData
var/implantData[0]
for(var/obj/item/implant/I in occupant)
for(var/obj/item/bio_chip/I in occupant)
if(I.implanted && is_type_in_list(I, known_implants))
var/implantSubData[0]
implantSubData["name"] = sanitize(I.name)
+3 -3
View File
@@ -230,7 +230,7 @@
qdel(active_record)
set_temp("Error: Record corrupt.", "danger")
else
var/obj/item/implant/health/H = null
var/obj/item/bio_chip/health/H = null
if(active_record.implant)
H = locate(active_record.implant)
var/list/payload = list(
@@ -402,9 +402,9 @@
R.types=DNA2_BUF_UI|DNA2_BUF_UE|DNA2_BUF_SE
R.languages=subject.languages
//Add an implant if needed
var/obj/item/implant/health/imp = locate(/obj/item/implant/health, subject)
var/obj/item/bio_chip/health/imp = locate(/obj/item/bio_chip/health, subject)
if(!imp)
imp = new /obj/item/implant/health(subject)
imp = new /obj/item/bio_chip/health(subject)
imp.implant(subject)
R.implant = "\ref[imp]"
+5 -5
View File
@@ -47,7 +47,7 @@
return
return ..()
/obj/machinery/computer/prisoner/proc/check_implant(obj/item/implant/I)
/obj/machinery/computer/prisoner/proc/check_implant(obj/item/bio_chip/I)
var/turf/implant_location = get_turf(I)
if(!implant_location || implant_location.z != z)
return FALSE
@@ -72,7 +72,7 @@
)
data["chemicalInfo"] = list()
for(var/obj/item/implant/chem/C in GLOB.tracked_implants)
for(var/obj/item/bio_chip/chem/C in GLOB.tracked_implants)
if(!check_implant(C))
continue
var/list/implant_info = list(
@@ -83,7 +83,7 @@
data["chemicalInfo"] += list(implant_info)
data["trackingInfo"] = list()
for(var/obj/item/implant/tracking/T in GLOB.tracked_implants)
for(var/obj/item/bio_chip/tracking/T in GLOB.tracked_implants)
if(!check_implant(T))
continue
var/mob/living/carbon/M = T.imp_in
@@ -137,7 +137,7 @@
else
to_chat(user, "<span class='warning'>No valid ID.</span>")
if("inject")
var/obj/item/implant/chem/implant = locateUID(params["uid"])
var/obj/item/bio_chip/chem/implant = locateUID(params["uid"])
if(!implant)
return
implant.activate(text2num(params["amount"]))
@@ -167,7 +167,7 @@
var/answer = params["answer"]
switch(id)
if("warn")
var/obj/item/implant/tracking/implant = locateUID(arguments["uid"])
var/obj/item/bio_chip/tracking/implant = locateUID(arguments["uid"])
if(!implant)
return
if(implant.warn_cooldown >= world.time)
+1 -1
View File
@@ -212,7 +212,7 @@
"y" = T.y,
"z" = T.z)
for(var/obj/item/implant/tracking/I in GLOB.tracked_implants)
for(var/obj/item/bio_chip/tracking/I in GLOB.tracked_implants)
if(!I.implanted || !ismob(I.loc))
continue
else
+1 -1
View File
@@ -253,7 +253,7 @@
if(prestrip)
for(var/obj/item/I in H)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
qdel(I)
+1 -1
View File
@@ -577,7 +577,7 @@
/obj/item/clothing/mask/gas/clownwiz = 1,
/obj/item/clothing/shoes/clown_shoes/magical = 1,
/obj/item/dnainjector/comic = 1,
/obj/item/implanter/sad_trombone = 1,
/obj/item/bio_chip_implanter/sad_trombone = 1,
/obj/item/clothing/suit/wizrobe/mime = 1,
/obj/item/clothing/head/wizard/mime = 1,
/obj/item/clothing/mask/gas/mime/wizard = 1,
@@ -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!")
+2 -2
View File
@@ -3505,8 +3505,8 @@
N.target = H
N.point_at(N.target)
N.modelocked = TRUE
if(!locate(/obj/item/implant/dust, hunter_mob))
var/obj/item/implant/dust/D = new /obj/item/implant/dust(hunter_mob)
if(!locate(/obj/item/bio_chip/dust, hunter_mob))
var/obj/item/bio_chip/dust/D = new /obj/item/bio_chip/dust(hunter_mob)
D.implant(hunter_mob)
if(killthem)
var/datum/objective/assassinate/kill_objective = new
@@ -154,14 +154,14 @@ GLOBAL_VAR_INIT(sent_syndicate_infiltration_team, 0)
// Implants:
// Uplink
var/obj/item/implant/uplink/sit/U = new /obj/item/implant/uplink/sit(src)
var/obj/item/bio_chip/uplink/sit/U = new /obj/item/bio_chip/uplink/sit(src)
U.implant(src)
if(flag_mgmt)
U.hidden_uplink.uses = 2500
else
U.hidden_uplink.uses = num_tc
// Dust
var/obj/item/implant/dust/D = new /obj/item/implant/dust(src)
var/obj/item/bio_chip/dust/D = new /obj/item/bio_chip/dust(src)
D.implant(src)
// Radio & PDA
+1 -1
View File
@@ -26,7 +26,7 @@
to_chat(H, chat_box_red(messages.Join("<br>")))
for(var/obj/item/I in H)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
qdel(I)
+1 -1
View File
@@ -17,7 +17,7 @@
S.copy_to(H)
for(var/obj/item/I in H)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
qdel(I)
@@ -155,7 +155,7 @@ GLOBAL_VAR_INIT(sent_syndicate_strike_team, 0)
equip_to_slot_or_del(new /obj/item/gun/projectile/automatic/l6_saw(src), SLOT_HUD_RIGHT_HAND)
equip_to_slot_or_del(new /obj/item/ammo_box/magazine/mm556x45(src), SLOT_HUD_IN_BACKPACK)
var/obj/item/implant/dust/D = new /obj/item/implant/dust(src)
var/obj/item/bio_chip/dust/D = new /obj/item/bio_chip/dust(src)
D.implant(src)
var/obj/item/card/id/syndicate/W = new(src) //Untrackable by AI
W.name = "[real_name]'s ID Card"
@@ -14,7 +14,7 @@
/obj/item/antag_spawner/nuke_ops
name = "syndicate operative teleporter"
desc = "A single-use teleporter designed to quickly reinforce operatives in the field."
icon = 'icons/obj/implants.dmi'
icon = 'icons/obj/bio_chips.dmi'
icon_state = "locator"
var/borg_to_spawn
var/checking = FALSE
@@ -376,11 +376,11 @@
continue
// Any kind of implant gets potentially removed (mindshield, freedoms, etc)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/implant/storage)) // Storage items are removed and placed in the confiscation locker before the implant is taken.
var/obj/item/implant/storage/storage_implant = I
for(var/it in storage_implant.storage)
storage_implant.storage.remove_from_storage(it)
if(istype(I, /obj/item/bio_chip))
if(istype(I, /obj/item/bio_chip/storage)) // Storage items are removed and placed in the confiscation locker before the implant is taken.
var/obj/item/bio_chip/storage/storage_chip = I
for(var/it in storage_chip.storage)
storage_chip.storage.remove_from_storage(it)
stuff_to_transfer += it
qdel(I)
continue
@@ -553,7 +553,7 @@
victim_belongings = list()
// Clean up
var/obj/item/implant/uplink/uplink_implant = locate() in M
var/obj/item/bio_chip/uplink/uplink_implant = locate() in M
uplink_implant?.hidden_uplink?.is_jammed = FALSE
QDEL_LIST_CONTENTS(temp_objs)
@@ -31,7 +31,7 @@
/obj/item/encryptionkey/binary,
/obj/item/jammer,
/obj/item/clothing/under/syndicate/silicon_cham,
/obj/item/implanter/freedom,
/obj/item/bio_chip_implanter/freedom,
)
@@ -61,7 +61,7 @@
qdel(uplink)
// Check for an uplink implant
var/uplink_implant = locate(/obj/item/implant/uplink) in M.contents
var/uplink_implant = locate(/obj/item/bio_chip/uplink) in M.contents
if(uplink_implant)
qdel(uplink_implant)
@@ -333,10 +333,10 @@
visible_message("<span class='warning'>[H] looks to be stunned by the energy!</span>")
H.Weaken(40 SECONDS)
return
for(var/obj/item/implant/mindshield/L in H)
for(var/obj/item/bio_chip/mindshield/L in H)
if(L && L.implanted)
qdel(L)
for(var/obj/item/implant/traitor/T in H)
for(var/obj/item/bio_chip/traitor/T in H)
if(T && T.implanted)
qdel(T)
visible_message("<span class='warning'>[H] gets an eerie red glow in their eyes!</span>")
@@ -409,8 +409,8 @@
for(var/obj/O in H)
if(isclothing(O)) //clothing gets skipped to avoid cleaning out shit
continue
if(istype(O,/obj/item/implant))
var/obj/item/implant/I = O
if(istype(O,/obj/item/bio_chip))
var/obj/item/bio_chip/I = O
if(I.implanted)
continue
if(O.flags & NODROP || stealthmode)
+1 -1
View File
@@ -513,7 +513,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
if(iscarbon(src) && contents.len && ventcrawlerlocal < 2)//It must have atleast been 1 to get this far
for(var/obj/item/I in contents)
var/failed = 0
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
if(istype(I, /obj/item/reagent_containers/patch))
continue
@@ -1987,7 +1987,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
if(thing != null)
equip_list[i] = thing.serialize()
for(var/obj/item/implant/implant in src)
for(var/obj/item/bio_chip/implant in src)
implant_list[implant] = implant.serialize()
return data
@@ -2031,7 +2031,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
for(var/thing in implant_list)
var/implant_data = implant_list[thing]
var/path = text2path(implant_data["type"])
var/obj/item/implant/implant = new path(T)
var/obj/item/bio_chip/implant = new path(T)
if(!implant.implant(src, src))
qdel(implant)
@@ -96,7 +96,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings/griffinwings(H), SLOT_HUD_OUTER_SUIT)
H.equip_to_slot_or_del(new /obj/item/clothing/head/griffin/(H), SLOT_HUD_HEAD)
var/obj/item/implant/freedom/L = new/obj/item/implant/freedom(H)
var/obj/item/bio_chip/freedom/L = new/obj/item/bio_chip/freedom(H)
L.implant(H)
+1 -1
View File
@@ -414,7 +414,7 @@
L += get_contents(S)
for(var/obj/item/clothing/accessory/storage/S in contents)//Check for holsters
L += get_contents(S)
for(var/obj/item/implant/storage/I in contents) //Check for storage implants.
for(var/obj/item/bio_chip/storage/I in contents) //Check for storage implants.
L += I.get_contents()
for(var/obj/item/gift/G in contents) //Check for gift-wrapped items
L += G.gift
@@ -64,15 +64,15 @@
for(var/i in list(IMPTRACK_HUD, IMPMINDSHIELD_HUD, IMPCHEM_HUD))
holder2 = hud_list[i]
holder2.icon_state = null
for(var/obj/item/implant/I in H)
for(var/obj/item/bio_chip/I in H)
if(I.implanted)
if(istype(I, /obj/item/implant/tracking))
if(istype(I, /obj/item/bio_chip/tracking))
holder2 = hud_list[IMPTRACK_HUD]
holder2.icon_state = "hud_imp_tracking"
else if(istype(I, /obj/item/implant/mindshield))
else if(istype(I, /obj/item/bio_chip/mindshield))
holder2 = hud_list[IMPMINDSHIELD_HUD]
holder2.icon_state = "hud_imp_loyal"
else if(istype(I, /obj/item/implant/chem))
else if(istype(I, /obj/item/bio_chip/chem))
holder2 = hud_list[IMPCHEM_HUD]
holder2.icon_state = "hud_imp_chem"
var/image/holder3 = hud_list[WANTED_HUD]
@@ -392,7 +392,7 @@
if(prob(10))
l_pocket = pickweight(list(/obj/item/bikehorn/golden = 3, /obj/item/bikehorn/airhorn= 1 ))
if(prob(10))
r_pocket = /obj/item/implanter/sad_trombone
r_pocket = /obj/item/bio_chip_implanter/sad_trombone
if("Golem")
mob_species = pick(list(/datum/species/golem/adamantine, /datum/species/golem/plasma, /datum/species/golem/diamond, /datum/species/golem/gold, /datum/species/golem/silver, /datum/species/golem/plasteel, /datum/species/golem/titanium, /datum/species/golem/plastitanium))
if(prob(30))
+1 -1
View File
@@ -99,7 +99,7 @@
INVOKE_ASYNC(client, TYPE_PROC_REF(/client, colour_transition), get_screen_colour(), flash_time)
/proc/ismindshielded(A) //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them
for(var/obj/item/implant/mindshield/L in A)
for(var/obj/item/bio_chip/mindshield/L in A)
if(L && L.implanted)
return 1
return 0
+13 -13
View File
@@ -14,7 +14,7 @@
use_power_cost = DEFAULT_CHARGE_DRAIN * 200
incompatible_modules = list(/obj/item/mod/module/pathfinder)
/// The pathfinding implant.
var/obj/item/implant/mod/implant
var/obj/item/bio_chip/mod/implant
/obj/item/mod/module/pathfinder/Initialize(mapload)
. = ..()
@@ -60,7 +60,7 @@
playsound(mod, 'sound/machines/ping.ogg', 50, TRUE)
drain_power(use_power_cost)
/obj/item/implant/mod
/obj/item/bio_chip/mod
name = "MOD pathfinder implant"
desc = "Lets you recall a MODsuit to you at any time."
implant_data = /datum/implant_fluff/pathfinder
@@ -77,21 +77,21 @@
var/tries = 0
/obj/item/implant/mod/Initialize(mapload)
/obj/item/bio_chip/mod/Initialize(mapload)
. = ..()
if(!istype(loc, /obj/item/mod/module/pathfinder))
return INITIALIZE_HINT_QDEL
module = loc
jet_icon = image(icon = 'icons/obj/clothing/modsuit/mod_modules.dmi', icon_state = "mod_jet", layer = LOW_ITEM_LAYER)
/obj/item/implant/mod/Destroy()
/obj/item/bio_chip/mod/Destroy()
if(path)
end_recall(successful = FALSE)
module = null
jet_icon = null
return ..()
/obj/item/implant/mod/proc/recall()
/obj/item/bio_chip/mod/proc/recall()
target = get_turf(imp_in)
if(!module?.mod)
to_chat(imp_in, "<span class='warning'>Module is not attached to a suit!</span>")
@@ -126,12 +126,12 @@
mod_move(target)
return TRUE
/obj/item/implant/mod/proc/set_path(list/newpath)
/obj/item/bio_chip/mod/proc/set_path(list/newpath)
if(newpath == null)
end_recall(FALSE)
path = newpath ? newpath : list()
/obj/item/implant/mod/proc/end_recall(successful = TRUE)
/obj/item/bio_chip/mod/proc/end_recall(successful = TRUE)
if(!module?.mod)
return
module.mod.cut_overlay(jet_icon)
@@ -141,14 +141,14 @@
to_chat(imp_in, "<span class='warning'>Lost connection to suit!</span>")
path = list() //Stopping endless end_recall with luck.
/obj/item/implant/mod/proc/on_move(atom/movable/source, atom/old_loc, dir, forced)
/obj/item/bio_chip/mod/proc/on_move(atom/movable/source, atom/old_loc, dir, forced)
SIGNAL_HANDLER
var/matrix/mod_matrix = matrix()
mod_matrix.Turn(get_angle(source, imp_in))
source.transform = mod_matrix
/obj/item/implant/mod/proc/mod_move(dest)
/obj/item/bio_chip/mod/proc/mod_move(dest)
dest = get_turf(dest) //We must always compare turfs, so get the turf of the dest var if dest was originally something else.
if(get_turf(module.mod) == dest) //We have arrived, no need to move again.
for(var/mob/living/carbon/human/H in range(1, module.mod))
@@ -184,7 +184,7 @@
return TRUE
/obj/item/implant/mod/proc/mod_step() //Step,increase tries if failed
/obj/item/bio_chip/mod/proc/mod_step() //Step,increase tries if failed
if(!path || !length(path))
return FALSE
for(var/obj/machinery/door/D in range(2, module.mod))
@@ -203,7 +203,7 @@
tries = 0
return TRUE
/obj/item/implant/mod/proc/increment_path()
/obj/item/bio_chip/mod/proc/increment_path()
if(!path || !length(path))
return
path.Cut(1, 2)
@@ -222,7 +222,7 @@
/datum/action/item_action/mod_recall/New(Target)
..()
if(!istype(Target, /obj/item/implant/mod))
if(!istype(Target, /obj/item/bio_chip/mod))
qdel(src)
return
@@ -230,7 +230,7 @@
. = ..()
if(!.)
return
var/obj/item/implant/mod/implant = target
var/obj/item/bio_chip/mod/implant = target
if(!COOLDOWN_FINISHED(src, recall_cooldown))
to_chat(usr, "<span class='warning'>On cooldown!</span>")
return
@@ -588,54 +588,54 @@
////////////Regular Implants/////////////
/////////////////////////////////////////
/datum/design/implanter
/datum/design/bio_chip_implanter
name = "Bio-chip Implanter"
desc = "A sterile automatic bio-chip injector."
id = "implanter"
req_tech = list("materials" = 2, "biotech" = 3, "programming" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 600, MAT_GLASS = 200)
build_path = /obj/item/implanter
build_path = /obj/item/bio_chip_implanter
category = list("Medical")
/datum/design/implantcase
/datum/design/bio_chip_case
name = "Bio-chip Case"
desc = "A glass case containing a bio-chip."
id = "implantcase"
req_tech = list("biotech" = 2)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 500)
build_path = /obj/item/implantcase
build_path = /obj/item/bio_chip_case
category = list("Medical")
/datum/design/implant_chem
/datum/design/bio_chip_chem
name = "Chemical Bio-chip Case"
desc = "A glass case containing a bio-chip."
id = "implant_chem"
req_tech = list("materials" = 3, "biotech" = 5)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 700)
build_path = /obj/item/implantcase/chem
build_path = /obj/item/bio_chip_case/chem
category = list("Medical")
/datum/design/implant_sadtrombone
/datum/design/bio_chip_sad_trombone
name = "Sad Trombone Bio-chip Case"
desc = "Makes death amusing."
id = "implant_trombone"
req_tech = list("materials" = 3, "biotech" = 5)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 500, MAT_BANANIUM = 500)
build_path = /obj/item/implantcase/sad_trombone
build_path = /obj/item/bio_chip_case/sad_trombone
category = list("Medical")
/datum/design/implant_tracking
/datum/design/bio_chip_tracking
name = "Tracking Bio-chip Case"
desc = "A glass case containing a bio-chip."
id = "implant_tracking"
req_tech = list("materials" = 2, "biotech" = 3, "magnets" = 3, "programming" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/implantcase/tracking
build_path = /obj/item/bio_chip_case/tracking
category = list("Medical")
//Cybernetic organs
+1 -1
View File
@@ -368,7 +368,7 @@ GLOBAL_LIST_EMPTY(ert_request_messages)
box = /obj/item/storage/box/responseteam
gloves = /obj/item/clothing/gloves/combat
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
/obj/item/radio/centcom
name = "centcomm bounced radio"
+35 -35
View File
@@ -84,9 +84,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/commander/gamma
@@ -113,9 +113,9 @@
/obj/item/organ/internal/cyberimp/arm/flash
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// SECURITY ///////////////////
@@ -169,9 +169,9 @@
/obj/item/organ/internal/cyberimp/eyes/hud/security
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/security/gamma
@@ -201,9 +201,9 @@
/obj/item/organ/internal/cyberimp/chest/reviver/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// ENGINEER ///////////////////
@@ -265,9 +265,9 @@
/obj/item/organ/internal/cyberimp/brain/wire_interface/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/engineer/gamma
@@ -296,8 +296,8 @@
/obj/item/organ/internal/cyberimp/brain/wire_interface/hardened
)
implants = list(/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// MEDIC ///////////////////
@@ -362,9 +362,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/medic/gamma
@@ -397,9 +397,9 @@
/obj/item/organ/internal/cyberimp/brain/anti_stam/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// PARANORMAL ///////////////////
@@ -449,9 +449,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/paranormal/gamma
@@ -475,9 +475,9 @@
/obj/item/organ/internal/cyberimp/brain/anti_stam/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// JANITORIAL ///////////////////
@@ -529,9 +529,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/janitorial/gamma
@@ -555,7 +555,7 @@
/obj/item/organ/internal/cyberimp/brain/anti_stam/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
+1 -1
View File
@@ -38,7 +38,7 @@
equip_item(H, /obj/item/radio/headset/deadsay, SLOT_HUD_LEFT_EAR)
H.dna.species.before_equip_job(/datum/job/assistant, H)
H.dna.species.remains_type = /obj/effect/decal/cleanable/ash
var/obj/item/implant/dust/I = new
var/obj/item/bio_chip/dust/I = new
I.implant(H, null)
for(var/gear in save_to_load.loadout_gear)
var/datum/gear/G = GLOB.gear_datums[text2path(gear) || gear]
@@ -9,7 +9,7 @@
/datum/surgery_step/generic/clamp_bleeders,
/datum/surgery_step/generic/retract_skin,
/datum/surgery_step/proxy/open_organ,
/datum/surgery_step/extract_implant,
/datum/surgery_step/extract_bio_chip,
/datum/surgery_step/generic/cauterize
)
possible_locs = list(BODY_ZONE_CHEST)
@@ -21,20 +21,20 @@
/datum/surgery_step/robotics/external/unscrew_hatch,
/datum/surgery_step/robotics/external/open_hatch,
/datum/surgery_step/proxy/robotics/repair_limb,
/datum/surgery_step/extract_implant/synth,
/datum/surgery_step/extract_bio_chip/synth,
/datum/surgery_step/robotics/external/close_hatch
)
requires_organic_bodypart = FALSE
/datum/surgery_step/extract_implant
/datum/surgery_step/extract_bio_chip
name = "extract bio-chip"
allowed_tools = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 65)
time = 6.4 SECONDS
repeatable = TRUE
var/obj/item/implant/I = null
var/obj/item/bio_chip/I = null
var/max_times_to_check = 5
/datum/surgery_step/extract_implant/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
/datum/surgery_step/extract_bio_chip/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
@@ -45,7 +45,7 @@
)
return SURGERY_BEGINSTEP_SKIP
I = locate(/obj/item/implant) in target
I = locate(/obj/item/bio_chip) in target
user.visible_message(
"[user] starts poking around inside [target]'s [affected.name] with \the [tool].",
"You start poking around inside [target]'s [affected.name] with \the [tool]."
@@ -53,7 +53,7 @@
affected.custom_pain("The pain in your [affected.name] is living hell!")
return ..()
/datum/surgery_step/extract_implant/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
/datum/surgery_step/extract_bio_chip/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
. = ..()
var/obj/item/organ/external/affected = target.get_organ(target_zone)
@@ -64,9 +64,9 @@
affected.receive_damage(10)
return SURGERY_STEP_RETRY
/datum/surgery_step/extract_implant/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
/datum/surgery_step/extract_bio_chip/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
I = locate(/obj/item/implant) in target
I = locate(/obj/item/bio_chip) in target
if(I && prob(80)) //implant removal only works on the chest.
user.visible_message(
"<span class='notice'>[user] takes something out of [target]'s [affected.name] with \the [tool].</span>",
@@ -75,14 +75,14 @@
I.removed(target)
var/obj/item/implantcase/case
var/obj/item/bio_chip_case/case
if(istype(user.get_item_by_slot(SLOT_HUD_LEFT_HAND), /obj/item/implantcase))
if(istype(user.get_item_by_slot(SLOT_HUD_LEFT_HAND), /obj/item/bio_chip_case))
case = user.get_item_by_slot(SLOT_HUD_LEFT_HAND)
else if(istype(user.get_item_by_slot(SLOT_HUD_RIGHT_HAND), /obj/item/implantcase))
else if(istype(user.get_item_by_slot(SLOT_HUD_RIGHT_HAND), /obj/item/bio_chip_case))
case = user.get_item_by_slot(SLOT_HUD_RIGHT_HAND)
else
case = locate(/obj/item/implantcase) in get_turf(target)
case = locate(/obj/item/bio_chip_case) in get_turf(target)
if(case && !case.imp)
case.imp = I
@@ -98,6 +98,6 @@
)
return SURGERY_STEP_CONTINUE
/datum/surgery_step/extract_implant/synth
/datum/surgery_step/extract_bio_chip/synth
allowed_tools = list(TOOL_WIRECUTTER = 100, TOOL_HEMOSTAT = 60)
+1 -1
View File
@@ -294,7 +294,7 @@
/obj/item/organ/internal/cyberimp/arm/combat/centcom
name = "NT specops cybernetics implant"
desc = "An extremely powerful cybernetic implant that contains combat and utility modules used by NT special forces."
contents = newlist(/obj/item/gun/energy/pulse/pistol/m1911, /obj/item/door_remote/omni, /obj/item/melee/energy/blade/hardlight, /obj/item/reagent_containers/hypospray/combat/nanites, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/implanter/mindshield, /obj/item/flash/armimplant)
contents = newlist(/obj/item/gun/energy/pulse/pistol/m1911, /obj/item/door_remote/omni, /obj/item/melee/energy/blade/hardlight, /obj/item/reagent_containers/hypospray/combat/nanites, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/bio_chip_implanter/mindshield, /obj/item/flash/armimplant)
icon = 'icons/obj/guns/energy.dmi'
icon_state = "m1911"
emp_proof = 1

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

+26 -26
View File
@@ -1102,6 +1102,31 @@
#include "code\game\objects\items\weapons\vending_items.dm"
#include "code\game\objects\items\weapons\weaponry.dm"
#include "code\game\objects\items\weapons\whetstone.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_abductor.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_adrenalin.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_case.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_chem.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_death_alarm.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_dust.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_emp.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_explosive.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_fluff.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_freedom.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_gorilla_rampage.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_health.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_krav_maga.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_mindshield.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_pad.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_prescan.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_sad_trombone.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_stealth.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_storage.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_supercharge.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_tracking.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_traitor.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chip_uplink.dm"
#include "code\game\objects\items\weapons\bio_chips\bio_chipper.dm"
#include "code\game\objects\items\weapons\grenades\atmosgrenade.dm"
#include "code\game\objects\items\weapons\grenades\bananade.dm"
#include "code\game\objects\items\weapons\grenades\chem_grenade.dm"
@@ -1117,31 +1142,6 @@
#include "code\game\objects\items\weapons\grenades\smokebomb.dm"
#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm"
#include "code\game\objects\items\weapons\grenades\syndieminibomb.dm"
#include "code\game\objects\items\weapons\implants\implant.dm"
#include "code\game\objects\items\weapons\implants\implant_abductor.dm"
#include "code\game\objects\items\weapons\implants\implant_adrenalin.dm"
#include "code\game\objects\items\weapons\implants\implant_chem.dm"
#include "code\game\objects\items\weapons\implants\implant_death_alarm.dm"
#include "code\game\objects\items\weapons\implants\implant_dust.dm"
#include "code\game\objects\items\weapons\implants\implant_emp.dm"
#include "code\game\objects\items\weapons\implants\implant_explosive.dm"
#include "code\game\objects\items\weapons\implants\implant_freedom.dm"
#include "code\game\objects\items\weapons\implants\implant_gorilla_rampage.dm"
#include "code\game\objects\items\weapons\implants\implant_health.dm"
#include "code\game\objects\items\weapons\implants\implant_krav_maga.dm"
#include "code\game\objects\items\weapons\implants\implant_mindshield.dm"
#include "code\game\objects\items\weapons\implants\implant_prescan.dm"
#include "code\game\objects\items\weapons\implants\implant_sad_trombone.dm"
#include "code\game\objects\items\weapons\implants\implant_stealth.dm"
#include "code\game\objects\items\weapons\implants\implant_storage.dm"
#include "code\game\objects\items\weapons\implants\implant_supercharge.dm"
#include "code\game\objects\items\weapons\implants\implant_tracking.dm"
#include "code\game\objects\items\weapons\implants\implant_traitor.dm"
#include "code\game\objects\items\weapons\implants\implant_uplink.dm"
#include "code\game\objects\items\weapons\implants\implantcase.dm"
#include "code\game\objects\items\weapons\implants\implanter.dm"
#include "code\game\objects\items\weapons\implants\implantfluff.dm"
#include "code\game\objects\items\weapons\implants\implantpad.dm"
#include "code\game\objects\items\weapons\melee\energy_melee_weapons.dm"
#include "code\game\objects\items\weapons\melee\melee_misc.dm"
#include "code\game\objects\items\weapons\storage\backpack.dm"
@@ -2653,13 +2653,13 @@
#include "code\modules\supply\supply_packs\pack_security.dm"
#include "code\modules\supply\supply_packs\pack_vendor.dm"
#include "code\modules\surgery\abstract_steps.dm"
#include "code\modules\surgery\bio_chip_removal.dm"
#include "code\modules\surgery\bones.dm"
#include "code\modules\surgery\cavity_implant.dm"
#include "code\modules\surgery\core_removal.dm"
#include "code\modules\surgery\dental_implant.dm"
#include "code\modules\surgery\encased.dm"
#include "code\modules\surgery\generic.dm"
#include "code\modules\surgery\implant_removal.dm"
#include "code\modules\surgery\limb_augmentation.dm"
#include "code\modules\surgery\limb_reattach.dm"
#include "code\modules\surgery\organs_internal.dm"