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

* The fix

* Contraaaaaa

* Fixes CI

* Fixes the pads + cases

* Uplink datums

* Update code/datums/mind.dm

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

* Update code/__HELPERS/unsorted.dm

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

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

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

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

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

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

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

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

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

* Update code/modules/surgery/implant_removal.dm

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

* Outfits now use a proper variable name

* Fixes surgery (oops)

* More .dme changes

* Renames the folder

* Fixes bad merge

* Contra review

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

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

* Fixes CI fail

---------

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
This commit is contained in:
DGamerL
2024-01-07 00:15:55 +01:00
committed by GitHub
parent fad6509b5e
commit 382a71df0d
94 changed files with 674 additions and 675 deletions
+2 -2
View File
@@ -3505,8 +3505,8 @@
N.target = H
N.point_at(N.target)
N.modelocked = TRUE
if(!locate(/obj/item/implant/dust, hunter_mob))
var/obj/item/implant/dust/D = new /obj/item/implant/dust(hunter_mob)
if(!locate(/obj/item/bio_chip/dust, hunter_mob))
var/obj/item/bio_chip/dust/D = new /obj/item/bio_chip/dust(hunter_mob)
D.implant(hunter_mob)
if(killthem)
var/datum/objective/assassinate/kill_objective = new
@@ -154,14 +154,14 @@ GLOBAL_VAR_INIT(sent_syndicate_infiltration_team, 0)
// Implants:
// Uplink
var/obj/item/implant/uplink/sit/U = new /obj/item/implant/uplink/sit(src)
var/obj/item/bio_chip/uplink/sit/U = new /obj/item/bio_chip/uplink/sit(src)
U.implant(src)
if(flag_mgmt)
U.hidden_uplink.uses = 2500
else
U.hidden_uplink.uses = num_tc
// Dust
var/obj/item/implant/dust/D = new /obj/item/implant/dust(src)
var/obj/item/bio_chip/dust/D = new /obj/item/bio_chip/dust(src)
D.implant(src)
// Radio & PDA
+1 -1
View File
@@ -26,7 +26,7 @@
to_chat(H, chat_box_red(messages.Join("<br>")))
for(var/obj/item/I in H)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
qdel(I)
+1 -1
View File
@@ -17,7 +17,7 @@
S.copy_to(H)
for(var/obj/item/I in H)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
qdel(I)
@@ -155,7 +155,7 @@ GLOBAL_VAR_INIT(sent_syndicate_strike_team, 0)
equip_to_slot_or_del(new /obj/item/gun/projectile/automatic/l6_saw(src), SLOT_HUD_RIGHT_HAND)
equip_to_slot_or_del(new /obj/item/ammo_box/magazine/mm556x45(src), SLOT_HUD_IN_BACKPACK)
var/obj/item/implant/dust/D = new /obj/item/implant/dust(src)
var/obj/item/bio_chip/dust/D = new /obj/item/bio_chip/dust(src)
D.implant(src)
var/obj/item/card/id/syndicate/W = new(src) //Untrackable by AI
W.name = "[real_name]'s ID Card"
@@ -14,7 +14,7 @@
/obj/item/antag_spawner/nuke_ops
name = "syndicate operative teleporter"
desc = "A single-use teleporter designed to quickly reinforce operatives in the field."
icon = 'icons/obj/implants.dmi'
icon = 'icons/obj/bio_chips.dmi'
icon_state = "locator"
var/borg_to_spawn
var/checking = FALSE
@@ -376,11 +376,11 @@
continue
// Any kind of implant gets potentially removed (mindshield, freedoms, etc)
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/implant/storage)) // Storage items are removed and placed in the confiscation locker before the implant is taken.
var/obj/item/implant/storage/storage_implant = I
for(var/it in storage_implant.storage)
storage_implant.storage.remove_from_storage(it)
if(istype(I, /obj/item/bio_chip))
if(istype(I, /obj/item/bio_chip/storage)) // Storage items are removed and placed in the confiscation locker before the implant is taken.
var/obj/item/bio_chip/storage/storage_chip = I
for(var/it in storage_chip.storage)
storage_chip.storage.remove_from_storage(it)
stuff_to_transfer += it
qdel(I)
continue
@@ -553,7 +553,7 @@
victim_belongings = list()
// Clean up
var/obj/item/implant/uplink/uplink_implant = locate() in M
var/obj/item/bio_chip/uplink/uplink_implant = locate() in M
uplink_implant?.hidden_uplink?.is_jammed = FALSE
QDEL_LIST_CONTENTS(temp_objs)
@@ -31,7 +31,7 @@
/obj/item/encryptionkey/binary,
/obj/item/jammer,
/obj/item/clothing/under/syndicate/silicon_cham,
/obj/item/implanter/freedom,
/obj/item/bio_chip_implanter/freedom,
)
@@ -61,7 +61,7 @@
qdel(uplink)
// Check for an uplink implant
var/uplink_implant = locate(/obj/item/implant/uplink) in M.contents
var/uplink_implant = locate(/obj/item/bio_chip/uplink) in M.contents
if(uplink_implant)
qdel(uplink_implant)
@@ -333,10 +333,10 @@
visible_message("<span class='warning'>[H] looks to be stunned by the energy!</span>")
H.Weaken(40 SECONDS)
return
for(var/obj/item/implant/mindshield/L in H)
for(var/obj/item/bio_chip/mindshield/L in H)
if(L && L.implanted)
qdel(L)
for(var/obj/item/implant/traitor/T in H)
for(var/obj/item/bio_chip/traitor/T in H)
if(T && T.implanted)
qdel(T)
visible_message("<span class='warning'>[H] gets an eerie red glow in their eyes!</span>")
@@ -409,8 +409,8 @@
for(var/obj/O in H)
if(isclothing(O)) //clothing gets skipped to avoid cleaning out shit
continue
if(istype(O,/obj/item/implant))
var/obj/item/implant/I = O
if(istype(O,/obj/item/bio_chip))
var/obj/item/bio_chip/I = O
if(I.implanted)
continue
if(O.flags & NODROP || stealthmode)
+1 -1
View File
@@ -513,7 +513,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
if(iscarbon(src) && contents.len && ventcrawlerlocal < 2)//It must have atleast been 1 to get this far
for(var/obj/item/I in contents)
var/failed = 0
if(istype(I, /obj/item/implant))
if(istype(I, /obj/item/bio_chip))
continue
if(istype(I, /obj/item/reagent_containers/patch))
continue
@@ -1987,7 +1987,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
if(thing != null)
equip_list[i] = thing.serialize()
for(var/obj/item/implant/implant in src)
for(var/obj/item/bio_chip/implant in src)
implant_list[implant] = implant.serialize()
return data
@@ -2031,7 +2031,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
for(var/thing in implant_list)
var/implant_data = implant_list[thing]
var/path = text2path(implant_data["type"])
var/obj/item/implant/implant = new path(T)
var/obj/item/bio_chip/implant = new path(T)
if(!implant.implant(src, src))
qdel(implant)
@@ -96,7 +96,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings/griffinwings(H), SLOT_HUD_OUTER_SUIT)
H.equip_to_slot_or_del(new /obj/item/clothing/head/griffin/(H), SLOT_HUD_HEAD)
var/obj/item/implant/freedom/L = new/obj/item/implant/freedom(H)
var/obj/item/bio_chip/freedom/L = new/obj/item/bio_chip/freedom(H)
L.implant(H)
+1 -1
View File
@@ -414,7 +414,7 @@
L += get_contents(S)
for(var/obj/item/clothing/accessory/storage/S in contents)//Check for holsters
L += get_contents(S)
for(var/obj/item/implant/storage/I in contents) //Check for storage implants.
for(var/obj/item/bio_chip/storage/I in contents) //Check for storage implants.
L += I.get_contents()
for(var/obj/item/gift/G in contents) //Check for gift-wrapped items
L += G.gift
@@ -64,15 +64,15 @@
for(var/i in list(IMPTRACK_HUD, IMPMINDSHIELD_HUD, IMPCHEM_HUD))
holder2 = hud_list[i]
holder2.icon_state = null
for(var/obj/item/implant/I in H)
for(var/obj/item/bio_chip/I in H)
if(I.implanted)
if(istype(I, /obj/item/implant/tracking))
if(istype(I, /obj/item/bio_chip/tracking))
holder2 = hud_list[IMPTRACK_HUD]
holder2.icon_state = "hud_imp_tracking"
else if(istype(I, /obj/item/implant/mindshield))
else if(istype(I, /obj/item/bio_chip/mindshield))
holder2 = hud_list[IMPMINDSHIELD_HUD]
holder2.icon_state = "hud_imp_loyal"
else if(istype(I, /obj/item/implant/chem))
else if(istype(I, /obj/item/bio_chip/chem))
holder2 = hud_list[IMPCHEM_HUD]
holder2.icon_state = "hud_imp_chem"
var/image/holder3 = hud_list[WANTED_HUD]
@@ -392,7 +392,7 @@
if(prob(10))
l_pocket = pickweight(list(/obj/item/bikehorn/golden = 3, /obj/item/bikehorn/airhorn= 1 ))
if(prob(10))
r_pocket = /obj/item/implanter/sad_trombone
r_pocket = /obj/item/bio_chip_implanter/sad_trombone
if("Golem")
mob_species = pick(list(/datum/species/golem/adamantine, /datum/species/golem/plasma, /datum/species/golem/diamond, /datum/species/golem/gold, /datum/species/golem/silver, /datum/species/golem/plasteel, /datum/species/golem/titanium, /datum/species/golem/plastitanium))
if(prob(30))
+1 -1
View File
@@ -99,7 +99,7 @@
INVOKE_ASYNC(client, TYPE_PROC_REF(/client, colour_transition), get_screen_colour(), flash_time)
/proc/ismindshielded(A) //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them
for(var/obj/item/implant/mindshield/L in A)
for(var/obj/item/bio_chip/mindshield/L in A)
if(L && L.implanted)
return 1
return 0
+13 -13
View File
@@ -14,7 +14,7 @@
use_power_cost = DEFAULT_CHARGE_DRAIN * 200
incompatible_modules = list(/obj/item/mod/module/pathfinder)
/// The pathfinding implant.
var/obj/item/implant/mod/implant
var/obj/item/bio_chip/mod/implant
/obj/item/mod/module/pathfinder/Initialize(mapload)
. = ..()
@@ -60,7 +60,7 @@
playsound(mod, 'sound/machines/ping.ogg', 50, TRUE)
drain_power(use_power_cost)
/obj/item/implant/mod
/obj/item/bio_chip/mod
name = "MOD pathfinder implant"
desc = "Lets you recall a MODsuit to you at any time."
implant_data = /datum/implant_fluff/pathfinder
@@ -77,21 +77,21 @@
var/tries = 0
/obj/item/implant/mod/Initialize(mapload)
/obj/item/bio_chip/mod/Initialize(mapload)
. = ..()
if(!istype(loc, /obj/item/mod/module/pathfinder))
return INITIALIZE_HINT_QDEL
module = loc
jet_icon = image(icon = 'icons/obj/clothing/modsuit/mod_modules.dmi', icon_state = "mod_jet", layer = LOW_ITEM_LAYER)
/obj/item/implant/mod/Destroy()
/obj/item/bio_chip/mod/Destroy()
if(path)
end_recall(successful = FALSE)
module = null
jet_icon = null
return ..()
/obj/item/implant/mod/proc/recall()
/obj/item/bio_chip/mod/proc/recall()
target = get_turf(imp_in)
if(!module?.mod)
to_chat(imp_in, "<span class='warning'>Module is not attached to a suit!</span>")
@@ -126,12 +126,12 @@
mod_move(target)
return TRUE
/obj/item/implant/mod/proc/set_path(list/newpath)
/obj/item/bio_chip/mod/proc/set_path(list/newpath)
if(newpath == null)
end_recall(FALSE)
path = newpath ? newpath : list()
/obj/item/implant/mod/proc/end_recall(successful = TRUE)
/obj/item/bio_chip/mod/proc/end_recall(successful = TRUE)
if(!module?.mod)
return
module.mod.cut_overlay(jet_icon)
@@ -141,14 +141,14 @@
to_chat(imp_in, "<span class='warning'>Lost connection to suit!</span>")
path = list() //Stopping endless end_recall with luck.
/obj/item/implant/mod/proc/on_move(atom/movable/source, atom/old_loc, dir, forced)
/obj/item/bio_chip/mod/proc/on_move(atom/movable/source, atom/old_loc, dir, forced)
SIGNAL_HANDLER
var/matrix/mod_matrix = matrix()
mod_matrix.Turn(get_angle(source, imp_in))
source.transform = mod_matrix
/obj/item/implant/mod/proc/mod_move(dest)
/obj/item/bio_chip/mod/proc/mod_move(dest)
dest = get_turf(dest) //We must always compare turfs, so get the turf of the dest var if dest was originally something else.
if(get_turf(module.mod) == dest) //We have arrived, no need to move again.
for(var/mob/living/carbon/human/H in range(1, module.mod))
@@ -184,7 +184,7 @@
return TRUE
/obj/item/implant/mod/proc/mod_step() //Step,increase tries if failed
/obj/item/bio_chip/mod/proc/mod_step() //Step,increase tries if failed
if(!path || !length(path))
return FALSE
for(var/obj/machinery/door/D in range(2, module.mod))
@@ -203,7 +203,7 @@
tries = 0
return TRUE
/obj/item/implant/mod/proc/increment_path()
/obj/item/bio_chip/mod/proc/increment_path()
if(!path || !length(path))
return
path.Cut(1, 2)
@@ -222,7 +222,7 @@
/datum/action/item_action/mod_recall/New(Target)
..()
if(!istype(Target, /obj/item/implant/mod))
if(!istype(Target, /obj/item/bio_chip/mod))
qdel(src)
return
@@ -230,7 +230,7 @@
. = ..()
if(!.)
return
var/obj/item/implant/mod/implant = target
var/obj/item/bio_chip/mod/implant = target
if(!COOLDOWN_FINISHED(src, recall_cooldown))
to_chat(usr, "<span class='warning'>On cooldown!</span>")
return
@@ -588,54 +588,54 @@
////////////Regular Implants/////////////
/////////////////////////////////////////
/datum/design/implanter
/datum/design/bio_chip_implanter
name = "Bio-chip Implanter"
desc = "A sterile automatic bio-chip injector."
id = "implanter"
req_tech = list("materials" = 2, "biotech" = 3, "programming" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 600, MAT_GLASS = 200)
build_path = /obj/item/implanter
build_path = /obj/item/bio_chip_implanter
category = list("Medical")
/datum/design/implantcase
/datum/design/bio_chip_case
name = "Bio-chip Case"
desc = "A glass case containing a bio-chip."
id = "implantcase"
req_tech = list("biotech" = 2)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 500)
build_path = /obj/item/implantcase
build_path = /obj/item/bio_chip_case
category = list("Medical")
/datum/design/implant_chem
/datum/design/bio_chip_chem
name = "Chemical Bio-chip Case"
desc = "A glass case containing a bio-chip."
id = "implant_chem"
req_tech = list("materials" = 3, "biotech" = 5)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 700)
build_path = /obj/item/implantcase/chem
build_path = /obj/item/bio_chip_case/chem
category = list("Medical")
/datum/design/implant_sadtrombone
/datum/design/bio_chip_sad_trombone
name = "Sad Trombone Bio-chip Case"
desc = "Makes death amusing."
id = "implant_trombone"
req_tech = list("materials" = 3, "biotech" = 5)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 500, MAT_BANANIUM = 500)
build_path = /obj/item/implantcase/sad_trombone
build_path = /obj/item/bio_chip_case/sad_trombone
category = list("Medical")
/datum/design/implant_tracking
/datum/design/bio_chip_tracking
name = "Tracking Bio-chip Case"
desc = "A glass case containing a bio-chip."
id = "implant_tracking"
req_tech = list("materials" = 2, "biotech" = 3, "magnets" = 3, "programming" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/implantcase/tracking
build_path = /obj/item/bio_chip_case/tracking
category = list("Medical")
//Cybernetic organs
+1 -1
View File
@@ -368,7 +368,7 @@ GLOBAL_LIST_EMPTY(ert_request_messages)
box = /obj/item/storage/box/responseteam
gloves = /obj/item/clothing/gloves/combat
implants = list(/obj/item/implant/mindshield)
bio_chips = list(/obj/item/bio_chip/mindshield)
/obj/item/radio/centcom
name = "centcomm bounced radio"
+35 -35
View File
@@ -84,9 +84,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/commander/gamma
@@ -113,9 +113,9 @@
/obj/item/organ/internal/cyberimp/arm/flash
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// SECURITY ///////////////////
@@ -169,9 +169,9 @@
/obj/item/organ/internal/cyberimp/eyes/hud/security
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/security/gamma
@@ -201,9 +201,9 @@
/obj/item/organ/internal/cyberimp/chest/reviver/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// ENGINEER ///////////////////
@@ -265,9 +265,9 @@
/obj/item/organ/internal/cyberimp/brain/wire_interface/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/engineer/gamma
@@ -296,8 +296,8 @@
/obj/item/organ/internal/cyberimp/brain/wire_interface/hardened
)
implants = list(/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// MEDIC ///////////////////
@@ -362,9 +362,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/medic/gamma
@@ -397,9 +397,9 @@
/obj/item/organ/internal/cyberimp/brain/anti_stam/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// PARANORMAL ///////////////////
@@ -449,9 +449,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/paranormal/gamma
@@ -475,9 +475,9 @@
/obj/item/organ/internal/cyberimp/brain/anti_stam/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
//////////////////// JANITORIAL ///////////////////
@@ -529,9 +529,9 @@
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
/datum/outfit/job/centcom/response_team/janitorial/gamma
@@ -555,7 +555,7 @@
/obj/item/organ/internal/cyberimp/brain/anti_stam/hardened
)
implants = list(
/obj/item/implant/mindshield,
/obj/item/implant/death_alarm
bio_chips = list(
/obj/item/bio_chip/mindshield,
/obj/item/bio_chip/death_alarm
)
+1 -1
View File
@@ -38,7 +38,7 @@
equip_item(H, /obj/item/radio/headset/deadsay, SLOT_HUD_LEFT_EAR)
H.dna.species.before_equip_job(/datum/job/assistant, H)
H.dna.species.remains_type = /obj/effect/decal/cleanable/ash
var/obj/item/implant/dust/I = new
var/obj/item/bio_chip/dust/I = new
I.implant(H, null)
for(var/gear in save_to_load.loadout_gear)
var/datum/gear/G = GLOB.gear_datums[text2path(gear) || gear]
@@ -9,7 +9,7 @@
/datum/surgery_step/generic/clamp_bleeders,
/datum/surgery_step/generic/retract_skin,
/datum/surgery_step/proxy/open_organ,
/datum/surgery_step/extract_implant,
/datum/surgery_step/extract_bio_chip,
/datum/surgery_step/generic/cauterize
)
possible_locs = list(BODY_ZONE_CHEST)
@@ -21,20 +21,20 @@
/datum/surgery_step/robotics/external/unscrew_hatch,
/datum/surgery_step/robotics/external/open_hatch,
/datum/surgery_step/proxy/robotics/repair_limb,
/datum/surgery_step/extract_implant/synth,
/datum/surgery_step/extract_bio_chip/synth,
/datum/surgery_step/robotics/external/close_hatch
)
requires_organic_bodypart = FALSE
/datum/surgery_step/extract_implant
/datum/surgery_step/extract_bio_chip
name = "extract bio-chip"
allowed_tools = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 65)
time = 6.4 SECONDS
repeatable = TRUE
var/obj/item/implant/I = null
var/obj/item/bio_chip/I = null
var/max_times_to_check = 5
/datum/surgery_step/extract_implant/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
/datum/surgery_step/extract_bio_chip/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
@@ -45,7 +45,7 @@
)
return SURGERY_BEGINSTEP_SKIP
I = locate(/obj/item/implant) in target
I = locate(/obj/item/bio_chip) in target
user.visible_message(
"[user] starts poking around inside [target]'s [affected.name] with \the [tool].",
"You start poking around inside [target]'s [affected.name] with \the [tool]."
@@ -53,7 +53,7 @@
affected.custom_pain("The pain in your [affected.name] is living hell!")
return ..()
/datum/surgery_step/extract_implant/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
/datum/surgery_step/extract_bio_chip/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
. = ..()
var/obj/item/organ/external/affected = target.get_organ(target_zone)
@@ -64,9 +64,9 @@
affected.receive_damage(10)
return SURGERY_STEP_RETRY
/datum/surgery_step/extract_implant/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
/datum/surgery_step/extract_bio_chip/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
I = locate(/obj/item/implant) in target
I = locate(/obj/item/bio_chip) in target
if(I && prob(80)) //implant removal only works on the chest.
user.visible_message(
"<span class='notice'>[user] takes something out of [target]'s [affected.name] with \the [tool].</span>",
@@ -75,14 +75,14 @@
I.removed(target)
var/obj/item/implantcase/case
var/obj/item/bio_chip_case/case
if(istype(user.get_item_by_slot(SLOT_HUD_LEFT_HAND), /obj/item/implantcase))
if(istype(user.get_item_by_slot(SLOT_HUD_LEFT_HAND), /obj/item/bio_chip_case))
case = user.get_item_by_slot(SLOT_HUD_LEFT_HAND)
else if(istype(user.get_item_by_slot(SLOT_HUD_RIGHT_HAND), /obj/item/implantcase))
else if(istype(user.get_item_by_slot(SLOT_HUD_RIGHT_HAND), /obj/item/bio_chip_case))
case = user.get_item_by_slot(SLOT_HUD_RIGHT_HAND)
else
case = locate(/obj/item/implantcase) in get_turf(target)
case = locate(/obj/item/bio_chip_case) in get_turf(target)
if(case && !case.imp)
case.imp = I
@@ -98,6 +98,6 @@
)
return SURGERY_STEP_CONTINUE
/datum/surgery_step/extract_implant/synth
/datum/surgery_step/extract_bio_chip/synth
allowed_tools = list(TOOL_WIRECUTTER = 100, TOOL_HEMOSTAT = 60)
+1 -1
View File
@@ -294,7 +294,7 @@
/obj/item/organ/internal/cyberimp/arm/combat/centcom
name = "NT specops cybernetics implant"
desc = "An extremely powerful cybernetic implant that contains combat and utility modules used by NT special forces."
contents = newlist(/obj/item/gun/energy/pulse/pistol/m1911, /obj/item/door_remote/omni, /obj/item/melee/energy/blade/hardlight, /obj/item/reagent_containers/hypospray/combat/nanites, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/implanter/mindshield, /obj/item/flash/armimplant)
contents = newlist(/obj/item/gun/energy/pulse/pistol/m1911, /obj/item/door_remote/omni, /obj/item/melee/energy/blade/hardlight, /obj/item/reagent_containers/hypospray/combat/nanites, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/bio_chip_implanter/mindshield, /obj/item/flash/armimplant)
icon = 'icons/obj/guns/energy.dmi'
icon_state = "m1911"
emp_proof = 1