Merge pull request #9897 from VOREStation/upstream-merge-7963

[MIRROR] Tweaked implant loadout, refactored implant detection.
This commit is contained in:
Novacat
2021-03-10 14:40:05 -05:00
committed by Chompstation Bot
parent 9e2af79bc3
commit 4631c4faca
7 changed files with 33 additions and 23 deletions

View File

@@ -14,7 +14,6 @@
active_power_usage = 10000 //10 kW. It's a big all-body scanner.
light_color = "#00FF00"
var/obj/machinery/body_scanconsole/console
var/known_implants = list(/obj/item/weapon/implant/health, /obj/item/weapon/implant/chem, /obj/item/weapon/implant/death_alarm, /obj/item/weapon/implant/loyalty, /obj/item/weapon/implant/tracking, /obj/item/weapon/implant/language, /obj/item/weapon/implant/language/eal, /obj/item/weapon/implant/backup, /obj/item/device/nif) //VOREStation Add - Backup Implant, NIF
var/printing_text = null
/obj/machinery/bodyscanner/Initialize()
@@ -255,12 +254,11 @@
organData["broken"] = E.min_broken_damage
var/implantData[0]
for(var/obj/I in E.implants)
for(var/obj/thing in E.implants)
var/implantSubData[0]
implantSubData["name"] = I.name
if(is_type_in_list(I, known_implants))
implantSubData["known"] = 1
var/obj/item/weapon/implant/I = thing
implantSubData["name"] = I.name
implantSubData["known"] = istype(I) && I.known_implant
implantData.Add(list(implantSubData))
organData["implants"] = implantData
@@ -464,8 +462,9 @@
infected = "Gangrene Detected:"
var/unknown_body = 0
for(var/I in e.implants)
if(is_type_in_list(I,known_implants))
for(var/thing in e.implants)
var/obj/item/weapon/implant/I = thing
if(istype(I) && I.known_implant)
imp += "[I] implanted:"
else
unknown_body++

View File

@@ -465,6 +465,7 @@
/obj/item/weapon/implant/health
name = "health implant"
known_implant = TRUE
var/healthstring = ""
/obj/item/weapon/implant/health/proc/sensehealth()

View File

@@ -7,6 +7,8 @@
icon = 'icons/obj/device.dmi'
icon_state = "implant"
w_class = ITEMSIZE_TINY
show_messages = TRUE
var/implanted = null
var/mob/imp_in = null
var/obj/item/organ/external/part = null
@@ -14,7 +16,7 @@
var/allow_reagents = 0
var/malfunction = 0
var/initialize_loc = BP_TORSO
show_messages = 1
var/known_implant = FALSE
/obj/item/weapon/implant/proc/trigger(emote, source as mob)
return
@@ -65,16 +67,17 @@
malfunction = MALFUNCTION_PERMANENT
/obj/item/weapon/implant/proc/implant_loadout(var/mob/living/carbon/human/H)
if(H)
if(handle_implant(H, initialize_loc))
invisibility = initial(invisibility)
post_implant(H)
. = istype(H) && handle_implant(H, initialize_loc)
if(.)
invisibility = initial(invisibility)
known_implant = TRUE
post_implant(H)
/obj/item/weapon/implant/Destroy()
if(part)
part.implants.Remove(src)
part = null
listening_objects.Remove(src)
part = null
imp_in = null
return ..()
@@ -100,6 +103,7 @@ GLOBAL_LIST_BOILERPLATE(all_tracking_implants, /obj/item/weapon/implant/tracking
/obj/item/weapon/implant/tracking
name = "tracking implant"
desc = "An implant normally given to dangerous criminals. Allows security to track your location."
known_implant = TRUE
var/id = 1
var/degrade_time = 10 MINUTES //How long before the implant stops working outside of a living body.
@@ -348,6 +352,7 @@ GLOBAL_LIST_BOILERPLATE(all_chem_implants, /obj/item/weapon/implant/chem)
name = "chemical implant"
desc = "Injects things."
allow_reagents = 1
known_implant = TRUE
/obj/item/weapon/implant/chem/get_data()
var/dat = {"
@@ -418,6 +423,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/loyalty
name = "loyalty implant"
desc = "Makes you loyal or such."
known_implant = TRUE
/obj/item/weapon/implant/loyalty/get_data()
var/dat = {"
@@ -491,6 +497,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
name = "death alarm implant"
desc = "An alarm which monitors host vital signs and transmits a radio message upon death."
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 2, TECH_DATA = 1)
known_implant = TRUE
var/mobname = "Will Robinson"
/obj/item/weapon/implant/death_alarm/get_data()

View File

@@ -5,6 +5,7 @@
/obj/item/weapon/implant/language
name = "GalCom language implant"
desc = "An implant allowing someone to speak the range of frequencies used in Galactic Common, as well as produce any phonemes that they usually cannot. Only helps with producing sounds, not understanding them."
known_implant = TRUE
var/list/languages = list(LANGUAGE_GALCOM) // List of languages that this assists with
/obj/item/weapon/implant/language/post_implant(mob/M) // Amends the mob's voice organ, then deletes itself

View File

@@ -512,6 +512,9 @@ var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new()
/datum/gear_tweak/implant_location
var/static/list/bodypart_names_to_tokens = list(
"head" = BP_HEAD,
"upper body" = BP_TORSO,
"lower body" = BP_GROIN,
"left hand" = BP_L_HAND,
"left arm" = BP_L_ARM,
"right hand" = BP_R_HAND,
@@ -519,12 +522,12 @@ var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new()
"left foot" = BP_L_FOOT,
"left leg" = BP_L_LEG,
"right foot" = BP_R_FOOT,
"right leg" = BP_R_LEG,
"lower body" = BP_GROIN,
"upper body" = BP_TORSO,
"head" = BP_HEAD
"right leg" = BP_R_LEG
)
var/static/list/bodypart_tokens_to_names = list(
BP_HEAD = "head",
BP_TORSO = "upper body",
BP_GROIN = "lower body",
BP_LEFT_HAND = "left hand",
BP_LEFT_ARM = "left arm",
BP_RIGHT_HAND = "right hand",
@@ -532,14 +535,11 @@ var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new()
BP_LEFT_FOOT = "left foot",
BP_LEFT_LEG = "left leg",
BP_RIGHT_FOOT = "right foot",
BP_RIGHT_LEG = "right leg",
BP_GROIN = "lower body",
BP_TORSO = "upper body",
BP_HEAD = "head"
BP_RIGHT_LEG = "right leg"
)
/datum/gear_tweak/implant_location/get_default()
return BP_TORSO
return bodypart_names_to_tokens[1]
/datum/gear_tweak/implant_location/tweak_item(var/obj/item/weapon/implant/I, var/metadata)
if(istype(I))

View File

@@ -23,6 +23,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
icon_state = "nif_0"
w_class = ITEMSIZE_TINY
var/known_implant = TRUE
var/durability = 100 // Durability remaining
var/bioadap = FALSE // If it'll work in fancy species

View File

@@ -11,6 +11,7 @@
/datum/category_item/catalogue/technology/resleeving)
icon = 'icons/vore/custom_items_vr.dmi'
icon_state = "backup_implant"
known_implant = TRUE
/obj/item/weapon/implant/backup/get_data()
var/dat = {"