mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 07:22:42 +00:00
Merge pull request #7963 from MistakeNot4892/implants
Tweaked implant loadout, refactored implant detection.
This commit is contained in:
@@ -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)
|
||||
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
|
||||
@@ -463,8 +461,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))
|
||||
|
||||
Reference in New Issue
Block a user