mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
Merge pull request #9897 from VOREStation/upstream-merge-7963
[MIRROR] Tweaked implant loadout, refactored implant detection.
This commit is contained in:
committed by
Chompstation Bot
parent
9e2af79bc3
commit
4631c4faca
@@ -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++
|
||||
|
||||
@@ -465,6 +465,7 @@
|
||||
|
||||
/obj/item/weapon/implant/health
|
||||
name = "health implant"
|
||||
known_implant = TRUE
|
||||
var/healthstring = ""
|
||||
|
||||
/obj/item/weapon/implant/health/proc/sensehealth()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {"
|
||||
|
||||
Reference in New Issue
Block a user