IPC Tag - Initial Commit

Sprites and implanting to follow.
This commit is contained in:
skull132
2016-01-23 18:59:33 +02:00
parent b732f3f455
commit 48b82f134b
7 changed files with 126 additions and 10 deletions
+57 -6
View File
@@ -228,36 +228,53 @@
/datum/organ/internal/machine
removed_type = /obj/item/organ/machine
robotic = 2
/datum/organ/internal/machine/process()
return
/obj/item/organ/machine
robotic = 2
/datum/organ/internal/machine/radiator
name = "internal cooling unit"
parent_organ = "chest"
robotic = 2
min_bruised_damage = 15
min_broken_damage = 40
removed_type = /obj/item/organ/machine/radiator
var/seized = 0
/datum/organ/internal/machine/radiator/process()
if (seized && owner.internal_organs_by_name["diagnosis_unit"])
var/datum/organ/internal/machine/diagnosis_unit/diagnosis_unit = owner.internal_organs_by_name["diagnosis_unit"]
seized = diagnosis_unit.overload
/datum/organ/internal/machine/radiator/is_broken()
if (seized)
return 1
..()
/obj/item/organ/machine/radiator
name = "internal cooling unit"
icon_state = "radiator"
organ_tag = "radiator"
organ_type = /datum/organ/internal/machine/radiator
robotic = 2
/obj/item/organ/machine/radiator/exposed_to_the_world()
var/obj/item/robot_parts/robot_component/radiator/Radiator = new(src.loc)
if(organ_data.damage)
Radiator.brute = organ_data.damage
if (organ_data)
var/datum/organ/internal/machine/radiator/old_radiator = organ_data
if (old_radiator.seized)
Radiator.desc += " <font color='blue'>It looks seized.</font>"
del(src)
return Radiator
/datum/organ/internal/machine/bladder
name = "chemical containment"
parent_organ = "groin"
robotic = 2
removed_type = /obj/item/organ/machine/bladder
/datum/organ/internal/machine/bladder/process()
@@ -290,7 +307,6 @@
icon_state = "bladder"
organ_tag = "chemical containment"
organ_type = /datum/organ/internal/machine/bladder
robotic = 2
/obj/item/organ/machine/bladder/replaced(var/mob/living/carbon/human/target)
if(istype(target) && (target.species.flags & IS_SYNTHETIC))
@@ -318,15 +334,25 @@
/datum/organ/internal/machine/diagnosis_unit
name = "diagnosis unit"
parent_organ = "head"
robotic = 2
removed_type = /obj/item/organ/machine/diagnosis_unit
var/overload = 0
/datum/organ/internal/machine/diagnosis_unit/process()
if (!overload)
return
if (owner.internal_organs_by_name["radiator"])
var/datum/organ/internal/machine/radiator/radiator = owner.internal_organs_by_name["radiator"]
radiator.seized = 1
var/list/pain_messages = list("ERROR: damage detected!", "System failure detected!", "Runtime errors present! System failure imminent!", "Software integrity compromised!", "Hardware malfunction detected!")
owner.custom_pain(pick(pain_messages), 1, 1)
/obj/item/organ/machine/diagnosis_unit
name = "diagnosis unit"
icon_state = "diagnosis_unit"
organ_tag = "diagnosis unit"
organ_type = /datum/organ/internal/machine/diagnosis_unit
robotic = 2
/obj/item/organ/machine/diagnosis_unit/exposed_to_the_world()
var/obj/item/robot_parts/robot_component/diagnosis_unit/Diagnosis_unit = new(src.loc)
@@ -348,6 +374,30 @@
del(src)
return Eyes
/datum/organ/internal/machine/ipc_tag
name = "IPC tag"
parent_organ = "head"
removed_type = /obj/item/organ/machine/ipc_tag
/obj/item/organ/machine/ipc_tag
name = "IPC tag"
organ_tag = "ipc_tag"
organ_type = /datum/organ/internal/machine/ipc_tag
/obj/item/organ/machine/ipc_tag/removed(var/mob/living/carbon/human/target, var/mob/living/user)
..()
if (istype(target) && target.internal_organs_by_name["diagnosis_unit"])
var/datum/organ/internal/machine/diagnosis_unit/diagnosis_unit = target.internal_organs_by_name["diagnosis_unit"]
diagnosis_unit.overload = 1
/obj/item/organ/machine/ipc_tag/exposed_to_the_world()
var/obj/item/robot_parts/robot_component/ipc_tag/tag = new(src.loc)
if (organ_data.damage)
tag.brute = organ_data.damage
del(src)
return tag
/obj/item/organ/vaurca/neuralsocket
name = "neural socket"
organ_tag = "neural socket"
@@ -371,5 +421,6 @@
organ_tag = "tracheae"
icon = 'icons/mob/alien_organs.dmi'
icon_state = "tracheae"
/obj/item/organ/vaurca/tracheae/removed()
return
+3 -3
View File
@@ -53,10 +53,10 @@ mob/living/carbon/proc/pain(var/partname, var/amount, var/force, var/burning = 0
// message is the custom message to be displayed
// flash_strength is 0 for weak pain flash, 1 for strong pain flash
mob/living/carbon/human/proc/custom_pain(var/message, var/flash_strength)
mob/living/carbon/human/proc/custom_pain(var/message, var/flash_strength, var/override_no_pain = 0)
if(stat >= 1) return
if(species && species.flags & NO_PAIN) return
if(species && species.flags & NO_PAIN && !override_no_pain) return
if(reagents.has_reagent("tramadol"))
return
@@ -127,4 +127,4 @@ mob/living/carbon/human/proc/handle_pain()
toxDamageMessage = "Your body aches all over, it's driving you mad."
if(toxDamageMessage && prob(toxMessageProb))
src.custom_pain(toxDamageMessage, getToxLoss() >= 15)
src.custom_pain(toxDamageMessage, getToxLoss() >= 15)