mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 05:27:01 +01:00
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:
co-authored by
Burzah
Contrabang
S34N
parent
fad6509b5e
commit
382a71df0d
@@ -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
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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]"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
+18
-18
@@ -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
|
||||
..()
|
||||
+9
-9
@@ -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
|
||||
+6
-6
@@ -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
|
||||
+12
-12
@@ -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
|
||||
+9
-9
@@ -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
|
||||
+10
-10
@@ -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
|
||||
+9
-9
@@ -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
|
||||
+6
-6
@@ -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
|
||||
+20
-20
@@ -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
|
||||
+11
-11
@@ -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
|
||||
+6
-6
@@ -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
|
||||
+6
-6
@@ -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
|
||||
+6
-6
@@ -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
|
||||
+8
-8
@@ -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
|
||||
+14
-14
@@ -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
|
||||
|
||||
+8
-8
@@ -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
|
||||
+8
-8
@@ -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
-3
@@ -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"
|
||||
+12
-12
@@ -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
|
||||
+6
-6
@@ -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
|
||||
+9
-9
@@ -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
|
||||
+7
-7
@@ -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
|
||||
+16
-16
@@ -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
|
||||
+9
-9
@@ -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)
|
||||
. = ..()
|
||||
@@ -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>")
|
||||
|
||||
@@ -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!")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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]
|
||||
|
||||
+14
-14
@@ -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)
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user