mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +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.
|
active_power_usage = 10000 //10 kW. It's a big all-body scanner.
|
||||||
light_color = "#00FF00"
|
light_color = "#00FF00"
|
||||||
var/obj/machinery/body_scanconsole/console
|
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
|
var/printing_text = null
|
||||||
|
|
||||||
/obj/machinery/bodyscanner/Initialize()
|
/obj/machinery/bodyscanner/Initialize()
|
||||||
@@ -255,12 +254,11 @@
|
|||||||
organData["broken"] = E.min_broken_damage
|
organData["broken"] = E.min_broken_damage
|
||||||
|
|
||||||
var/implantData[0]
|
var/implantData[0]
|
||||||
for(var/obj/I in E.implants)
|
for(var/obj/thing in E.implants)
|
||||||
var/implantSubData[0]
|
var/implantSubData[0]
|
||||||
implantSubData["name"] = I.name
|
var/obj/item/weapon/implant/I = thing
|
||||||
if(is_type_in_list(I, known_implants))
|
implantSubData["name"] = I.name
|
||||||
implantSubData["known"] = 1
|
implantSubData["known"] = istype(I) && I.known_implant
|
||||||
|
|
||||||
implantData.Add(list(implantSubData))
|
implantData.Add(list(implantSubData))
|
||||||
|
|
||||||
organData["implants"] = implantData
|
organData["implants"] = implantData
|
||||||
@@ -464,8 +462,9 @@
|
|||||||
infected = "Gangrene Detected:"
|
infected = "Gangrene Detected:"
|
||||||
|
|
||||||
var/unknown_body = 0
|
var/unknown_body = 0
|
||||||
for(var/I in e.implants)
|
for(var/thing in e.implants)
|
||||||
if(is_type_in_list(I,known_implants))
|
var/obj/item/weapon/implant/I = thing
|
||||||
|
if(istype(I) && I.known_implant)
|
||||||
imp += "[I] implanted:"
|
imp += "[I] implanted:"
|
||||||
else
|
else
|
||||||
unknown_body++
|
unknown_body++
|
||||||
|
|||||||
@@ -465,6 +465,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/implant/health
|
/obj/item/weapon/implant/health
|
||||||
name = "health implant"
|
name = "health implant"
|
||||||
|
known_implant = TRUE
|
||||||
var/healthstring = ""
|
var/healthstring = ""
|
||||||
|
|
||||||
/obj/item/weapon/implant/health/proc/sensehealth()
|
/obj/item/weapon/implant/health/proc/sensehealth()
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
icon = 'icons/obj/device.dmi'
|
icon = 'icons/obj/device.dmi'
|
||||||
icon_state = "implant"
|
icon_state = "implant"
|
||||||
w_class = ITEMSIZE_TINY
|
w_class = ITEMSIZE_TINY
|
||||||
|
show_messages = TRUE
|
||||||
|
|
||||||
var/implanted = null
|
var/implanted = null
|
||||||
var/mob/imp_in = null
|
var/mob/imp_in = null
|
||||||
var/obj/item/organ/external/part = null
|
var/obj/item/organ/external/part = null
|
||||||
@@ -14,7 +16,7 @@
|
|||||||
var/allow_reagents = 0
|
var/allow_reagents = 0
|
||||||
var/malfunction = 0
|
var/malfunction = 0
|
||||||
var/initialize_loc = BP_TORSO
|
var/initialize_loc = BP_TORSO
|
||||||
show_messages = 1
|
var/known_implant = FALSE
|
||||||
|
|
||||||
/obj/item/weapon/implant/proc/trigger(emote, source as mob)
|
/obj/item/weapon/implant/proc/trigger(emote, source as mob)
|
||||||
return
|
return
|
||||||
@@ -65,16 +67,17 @@
|
|||||||
malfunction = MALFUNCTION_PERMANENT
|
malfunction = MALFUNCTION_PERMANENT
|
||||||
|
|
||||||
/obj/item/weapon/implant/proc/implant_loadout(var/mob/living/carbon/human/H)
|
/obj/item/weapon/implant/proc/implant_loadout(var/mob/living/carbon/human/H)
|
||||||
if(H)
|
. = istype(H) && handle_implant(H, initialize_loc)
|
||||||
if(handle_implant(H, initialize_loc))
|
if(.)
|
||||||
invisibility = initial(invisibility)
|
invisibility = initial(invisibility)
|
||||||
post_implant(H)
|
known_implant = TRUE
|
||||||
|
post_implant(H)
|
||||||
|
|
||||||
/obj/item/weapon/implant/Destroy()
|
/obj/item/weapon/implant/Destroy()
|
||||||
if(part)
|
if(part)
|
||||||
part.implants.Remove(src)
|
part.implants.Remove(src)
|
||||||
|
part = null
|
||||||
listening_objects.Remove(src)
|
listening_objects.Remove(src)
|
||||||
part = null
|
|
||||||
imp_in = null
|
imp_in = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
@@ -100,6 +103,7 @@ GLOBAL_LIST_BOILERPLATE(all_tracking_implants, /obj/item/weapon/implant/tracking
|
|||||||
/obj/item/weapon/implant/tracking
|
/obj/item/weapon/implant/tracking
|
||||||
name = "tracking implant"
|
name = "tracking implant"
|
||||||
desc = "An implant normally given to dangerous criminals. Allows security to track your location."
|
desc = "An implant normally given to dangerous criminals. Allows security to track your location."
|
||||||
|
known_implant = TRUE
|
||||||
var/id = 1
|
var/id = 1
|
||||||
var/degrade_time = 10 MINUTES //How long before the implant stops working outside of a living body.
|
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"
|
name = "chemical implant"
|
||||||
desc = "Injects things."
|
desc = "Injects things."
|
||||||
allow_reagents = 1
|
allow_reagents = 1
|
||||||
|
known_implant = TRUE
|
||||||
|
|
||||||
/obj/item/weapon/implant/chem/get_data()
|
/obj/item/weapon/implant/chem/get_data()
|
||||||
var/dat = {"
|
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
|
/obj/item/weapon/implant/loyalty
|
||||||
name = "loyalty implant"
|
name = "loyalty implant"
|
||||||
desc = "Makes you loyal or such."
|
desc = "Makes you loyal or such."
|
||||||
|
known_implant = TRUE
|
||||||
|
|
||||||
/obj/item/weapon/implant/loyalty/get_data()
|
/obj/item/weapon/implant/loyalty/get_data()
|
||||||
var/dat = {"
|
var/dat = {"
|
||||||
@@ -491,6 +497,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
|||||||
name = "death alarm implant"
|
name = "death alarm implant"
|
||||||
desc = "An alarm which monitors host vital signs and transmits a radio message upon death."
|
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)
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 2, TECH_DATA = 1)
|
||||||
|
known_implant = TRUE
|
||||||
var/mobname = "Will Robinson"
|
var/mobname = "Will Robinson"
|
||||||
|
|
||||||
/obj/item/weapon/implant/death_alarm/get_data()
|
/obj/item/weapon/implant/death_alarm/get_data()
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
/obj/item/weapon/implant/language
|
/obj/item/weapon/implant/language
|
||||||
name = "GalCom language implant"
|
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."
|
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
|
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
|
/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
|
/datum/gear_tweak/implant_location
|
||||||
var/static/list/bodypart_names_to_tokens = list(
|
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 hand" = BP_L_HAND,
|
||||||
"left arm" = BP_L_ARM,
|
"left arm" = BP_L_ARM,
|
||||||
"right hand" = BP_R_HAND,
|
"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 foot" = BP_L_FOOT,
|
||||||
"left leg" = BP_L_LEG,
|
"left leg" = BP_L_LEG,
|
||||||
"right foot" = BP_R_FOOT,
|
"right foot" = BP_R_FOOT,
|
||||||
"right leg" = BP_R_LEG,
|
"right leg" = BP_R_LEG
|
||||||
"lower body" = BP_GROIN,
|
|
||||||
"upper body" = BP_TORSO,
|
|
||||||
"head" = BP_HEAD
|
|
||||||
)
|
)
|
||||||
var/static/list/bodypart_tokens_to_names = list(
|
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_HAND = "left hand",
|
||||||
BP_LEFT_ARM = "left arm",
|
BP_LEFT_ARM = "left arm",
|
||||||
BP_RIGHT_HAND = "right hand",
|
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_FOOT = "left foot",
|
||||||
BP_LEFT_LEG = "left leg",
|
BP_LEFT_LEG = "left leg",
|
||||||
BP_RIGHT_FOOT = "right foot",
|
BP_RIGHT_FOOT = "right foot",
|
||||||
BP_RIGHT_LEG = "right leg",
|
BP_RIGHT_LEG = "right leg"
|
||||||
BP_GROIN = "lower body",
|
|
||||||
BP_TORSO = "upper body",
|
|
||||||
BP_HEAD = "head"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
/datum/gear_tweak/implant_location/get_default()
|
/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)
|
/datum/gear_tweak/implant_location/tweak_item(var/obj/item/weapon/implant/I, var/metadata)
|
||||||
if(istype(I))
|
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"
|
icon_state = "nif_0"
|
||||||
|
|
||||||
w_class = ITEMSIZE_TINY
|
w_class = ITEMSIZE_TINY
|
||||||
|
var/known_implant = TRUE
|
||||||
|
|
||||||
var/durability = 100 // Durability remaining
|
var/durability = 100 // Durability remaining
|
||||||
var/bioadap = FALSE // If it'll work in fancy species
|
var/bioadap = FALSE // If it'll work in fancy species
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
/datum/category_item/catalogue/technology/resleeving)
|
/datum/category_item/catalogue/technology/resleeving)
|
||||||
icon = 'icons/vore/custom_items_vr.dmi'
|
icon = 'icons/vore/custom_items_vr.dmi'
|
||||||
icon_state = "backup_implant"
|
icon_state = "backup_implant"
|
||||||
|
known_implant = TRUE
|
||||||
|
|
||||||
/obj/item/weapon/implant/backup/get_data()
|
/obj/item/weapon/implant/backup/get_data()
|
||||||
var/dat = {"
|
var/dat = {"
|
||||||
|
|||||||
Reference in New Issue
Block a user