mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2025-12-10 11:36:47 +00:00
Get ORGANized (#4211)
This commit is contained in:
54
citadel.dme
54
citadel.dme
@@ -3201,18 +3201,28 @@
|
||||
#include "code\modules\nifsoft\software\13_soulcatcher.dm"
|
||||
#include "code\modules\nifsoft\software\14_commlink.dm"
|
||||
#include "code\modules\nifsoft\software\15_misc.dm"
|
||||
#include "code\modules\organs\adherent_external.dm"
|
||||
#include "code\modules\organs\_organ_defines.dm"
|
||||
#include "code\modules\organs\blood.dm"
|
||||
#include "code\modules\organs\external_defines.dm"
|
||||
#include "code\modules\organs\internal_defines.dm"
|
||||
#include "code\modules\organs\misc.dm"
|
||||
#include "code\modules\organs\organ.dm"
|
||||
#include "code\modules\organs\organ_external.dm"
|
||||
#include "code\modules\organs\organ_external_vr.dm"
|
||||
#include "code\modules\organs\organ_icon.dm"
|
||||
#include "code\modules\organs\organ_stump.dm"
|
||||
#include "code\modules\organs\external\_external.dm"
|
||||
#include "code\modules\organs\external\_external_icons.dm"
|
||||
#include "code\modules\organs\external\standard.dm"
|
||||
#include "code\modules\organs\external\standard_vr.dm"
|
||||
#include "code\modules\organs\external\stump.dm"
|
||||
#include "code\modules\organs\external\species\adherent.dm"
|
||||
#include "code\modules\organs\external\species\alraune.dm"
|
||||
#include "code\modules\organs\external\species\diona.dm"
|
||||
#include "code\modules\organs\external\species\shadekin.dm"
|
||||
#include "code\modules\organs\external\species\slime.dm"
|
||||
#include "code\modules\organs\external\species\teshari.dm"
|
||||
#include "code\modules\organs\external\species\unathi.dm"
|
||||
#include "code\modules\organs\external\species\xenos.dm"
|
||||
#include "code\modules\organs\external\wounds\wound.dm"
|
||||
#include "code\modules\organs\pain.dm"
|
||||
#include "code\modules\organs\robolimbs.dm"
|
||||
#include "code\modules\organs\wound.dm"
|
||||
#include "code\modules\organs\internal\adherent.dm"
|
||||
#include "code\modules\organs\internal\_internal.dm"
|
||||
#include "code\modules\organs\internal\appendix.dm"
|
||||
#include "code\modules\organs\internal\augment.dm"
|
||||
#include "code\modules\organs\internal\brain.dm"
|
||||
@@ -3222,7 +3232,6 @@
|
||||
#include "code\modules\organs\internal\kidneys.dm"
|
||||
#include "code\modules\organs\internal\liver.dm"
|
||||
#include "code\modules\organs\internal\lungs.dm"
|
||||
#include "code\modules\organs\internal\organ_internal.dm"
|
||||
#include "code\modules\organs\internal\spleen.dm"
|
||||
#include "code\modules\organs\internal\stomach.dm"
|
||||
#include "code\modules\organs\internal\voicebox.dm"
|
||||
@@ -3231,26 +3240,23 @@
|
||||
#include "code\modules\organs\internal\robotic\_robotic.dm"
|
||||
#include "code\modules\organs\internal\robotic\diagnostic.dm"
|
||||
#include "code\modules\organs\internal\robotic\heatsink.dm"
|
||||
#include "code\modules\organs\subtypes\alraune.dm"
|
||||
#include "code\modules\organs\subtypes\diona.dm"
|
||||
#include "code\modules\organs\internal\species\adherent.dm"
|
||||
#include "code\modules\organs\internal\species\diona.dm"
|
||||
#include "code\modules\organs\internal\species\replicant.dm"
|
||||
#include "code\modules\organs\internal\species\shadekin.dm"
|
||||
#include "code\modules\organs\internal\species\slime.dm"
|
||||
#include "code\modules\organs\internal\species\subspecies_graver.dm"
|
||||
#include "code\modules\organs\internal\species\vox.dm"
|
||||
#include "code\modules\organs\internal\species\subspecies_spacer.dm"
|
||||
#include "code\modules\organs\internal\species\xenochimera.dm"
|
||||
#include "code\modules\organs\internal\species\unathi.dm"
|
||||
#include "code\modules\organs\internal\species\xenos.dm"
|
||||
#include "code\modules\organs\robolimbs.dm"
|
||||
#include "code\modules\organs\subtypes\indestructible.dm"
|
||||
#include "code\modules\organs\subtypes\machine.dm"
|
||||
#include "code\modules\organs\subtypes\nano.dm"
|
||||
#include "code\modules\organs\subtypes\replicant.dm"
|
||||
#include "code\modules\organs\subtypes\shadekin.dm"
|
||||
#include "code\modules\organs\subtypes\slime.dm"
|
||||
#include "code\modules\organs\subtypes\standard.dm"
|
||||
#include "code\modules\organs\subtypes\standard_vr.dm"
|
||||
#include "code\modules\organs\subtypes\subspecies_graver.dm"
|
||||
#include "code\modules\organs\subtypes\subspecies_spacer.dm"
|
||||
#include "code\modules\organs\subtypes\teshari.dm"
|
||||
#include "code\modules\organs\subtypes\unathi.dm"
|
||||
#include "code\modules\organs\subtypes\unbreakable.dm"
|
||||
#include "code\modules\organs\subtypes\unseverable.dm"
|
||||
#include "code\modules\organs\subtypes\vox.dm"
|
||||
#include "code\modules\organs\subtypes\vox_vr.dm"
|
||||
#include "code\modules\organs\subtypes\xenochimera.dm"
|
||||
#include "code\modules\organs\subtypes\xenos.dm"
|
||||
#include "code\modules\overmap\abductor_vr.dm"
|
||||
#include "code\modules\overmap\bluespace_rift.dm"
|
||||
#include "code\modules\overmap\champagne.dm"
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
//! *ALL DEFINES RELATED TO ORGANS GO HERE* !//
|
||||
|
||||
//These control the damage thresholds for the various ways of removing limbs
|
||||
#define DROPLIMB_THRESHOLD_EDGE 5
|
||||
#define DROPLIMB_THRESHOLD_TEAROFF 2
|
||||
#define DROPLIMB_THRESHOLD_DESTROY 1
|
||||
|
||||
|
||||
/// Global list of organs for future use.
|
||||
#define O_ALL (O_ALL_STANDARD + O_ALL_NONSTANDARD)
|
||||
/// Global list of all standard body parts.
|
||||
|
||||
80
code/modules/organs/_organ_defines.dm
Normal file
80
code/modules/organs/_organ_defines.dm
Normal file
@@ -0,0 +1,80 @@
|
||||
var/list/organ_cache = list()
|
||||
|
||||
/obj/item/organ
|
||||
name = "organ"
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
germ_level = 0
|
||||
drop_sound = 'sound/items/drop/flesh.ogg'
|
||||
pickup_sound = 'sound/items/pickup/flesh.ogg'
|
||||
|
||||
|
||||
//! ## STRINGS VARS
|
||||
/// Unique identifier.
|
||||
var/organ_tag = "organ"
|
||||
/// The organ holding this object.
|
||||
var/parent_organ = BP_TORSO
|
||||
|
||||
|
||||
//! STATUS VARS
|
||||
/// Various status flags
|
||||
var/status = 0
|
||||
/// Lose a vital limb, die immediately.
|
||||
var/vital
|
||||
/// Current damage to the organ
|
||||
var/damage = 0
|
||||
/// Flag for what kind of robotic organ, if valid.
|
||||
var/robotic = 0
|
||||
/// If true, this organ can't feel pain.
|
||||
var/stapled_nerves = FALSE
|
||||
|
||||
|
||||
//! ##REFERENCE VARS
|
||||
/// Current mob owning the organ.
|
||||
var/mob/living/carbon/human/owner
|
||||
/// Transplant match data.
|
||||
var/list/transplant_data
|
||||
/// Trauma data for forensics.
|
||||
var/list/autopsy_data = list()
|
||||
/// Traces of chemicals in the organ.
|
||||
var/list/trace_chemicals = list()
|
||||
/// Original DNA.
|
||||
var/datum/dna/dna
|
||||
/// Original species.
|
||||
var/datum/species/species
|
||||
var/s_base
|
||||
|
||||
|
||||
//! ## DAMAGE VARS
|
||||
/// Damage before considered bruised
|
||||
var/min_bruised_damage = 10
|
||||
/// Damage before becoming broken
|
||||
var/min_broken_damage = 30
|
||||
/// Damage cap
|
||||
var/max_damage
|
||||
/// Can this organ reject?
|
||||
var/can_reject = TRUE
|
||||
/// Is this organ already being rejected?
|
||||
var/rejecting
|
||||
/// Can this organ decay at all?
|
||||
var/decays = TRUE
|
||||
/// If true, prevent organ decay.
|
||||
var/preserved = FALSE
|
||||
|
||||
|
||||
//! ## LANGUAGE VARS - For organs that assist with certain languages.
|
||||
var/list/will_assist_languages = list()
|
||||
var/list/datum/language/assists_languages = list()
|
||||
|
||||
|
||||
//! ## VERB VARS
|
||||
/// Verbs added by the organ when present in the body.
|
||||
var/list/organ_verbs
|
||||
/// Is the parent supposed to be organic, robotic, assisted?
|
||||
var/list/target_parent_classes = list()
|
||||
/// Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
|
||||
var/forgiving_class = TRUE
|
||||
|
||||
/// Can we butcher this organ.
|
||||
var/butcherable = TRUE
|
||||
/// What does butchering, if possible, make?
|
||||
var/meat_type
|
||||
@@ -1,114 +0,0 @@
|
||||
/obj/item/organ/external/chest/crystal
|
||||
name = "tendril junction"
|
||||
amputation_point = "axis"
|
||||
joint = "central axis"
|
||||
model = "NULL DATA."
|
||||
w_class = ITEMSIZE_LARGE
|
||||
gendered_icon = 0
|
||||
dislocated = -1
|
||||
max_damage = 50
|
||||
min_broken_damage = 25
|
||||
// arterial_bleed_severity = 0
|
||||
encased = "ceramic hull"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_BREAK | ORGAN_FLAG_HEALS_OVERKILL
|
||||
|
||||
/obj/item/organ/external/groin/crystal
|
||||
name = "trailing tendrils"
|
||||
joint = "base"
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 50
|
||||
min_broken_damage = 25
|
||||
gendered_icon = 0
|
||||
encased = "ceramic hull"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/head/crystal
|
||||
name = "chassis core"
|
||||
amputation_point = "connector socket"
|
||||
joint = "connector socket"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 50
|
||||
min_broken_damage = 25
|
||||
encased = "ceramic hull"
|
||||
eye_icon_location = 'icons/mob/human_races/adherent/eyes.dmi'
|
||||
eye_icon = "eyes"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_HEALS_OVERKILL | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/arm/crystal
|
||||
name = "left grasping tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/arm/right/crystal
|
||||
name = "right grasping tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/hand/crystal
|
||||
name = "left maniple tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/hand/right/crystal
|
||||
name = "right maniple tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/leg/tendril
|
||||
name = "first tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
organ_tag = BP_L_LEG
|
||||
parent_organ = BP_TORSO
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/leg/right/tendril
|
||||
name = "second tendril"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
/obj/item/organ/external/foot/tendril
|
||||
name = "third tendril"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
/obj/item/organ/external/foot/right/tendril
|
||||
name = "fourth tendril"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
@@ -2,136 +2,6 @@
|
||||
EXTERNAL ORGANS
|
||||
****************************************************/
|
||||
|
||||
//These control the damage thresholds for the various ways of removing limbs
|
||||
#define DROPLIMB_THRESHOLD_EDGE 5
|
||||
#define DROPLIMB_THRESHOLD_TEAROFF 2
|
||||
#define DROPLIMB_THRESHOLD_DESTROY 1
|
||||
|
||||
/obj/item/organ/external
|
||||
name = "external"
|
||||
min_broken_damage = 30
|
||||
max_damage = 0
|
||||
dir = SOUTH
|
||||
organ_tag = "limb"
|
||||
|
||||
//* Strings *//
|
||||
/// Fracture description if any.
|
||||
var/broken_description
|
||||
/// Modifier used for generating the on-mob damage overlay for this limb.
|
||||
var/damage_state = "00"
|
||||
|
||||
//* Damage vars. *//
|
||||
/// Multiplier for incoming brute damage.
|
||||
var/brute_mod = 1
|
||||
/// As above for burn.
|
||||
var/burn_mod = 1
|
||||
/// Actual current brute damage.
|
||||
var/brute_dam = 0
|
||||
/// Actual current burn damage.
|
||||
var/burn_dam = 0
|
||||
/// used in healing/processing calculations.
|
||||
var/last_dam = -1
|
||||
var/spread_dam = 0
|
||||
/// If a needle has a chance to fail to penetrate.
|
||||
var/thick_skin = 0
|
||||
/// EMP damage multiplier
|
||||
var/emp_mod = 1
|
||||
|
||||
//* Appearance vars. *//
|
||||
/// Snowflake warning, reee. Used for slime limbs.
|
||||
var/nonsolid
|
||||
/// Also for slimes. Used for transparent limbs.
|
||||
var/transparent = 0
|
||||
/// Icon state base.
|
||||
var/icon_name = null
|
||||
/// Part flag
|
||||
var/body_part = null
|
||||
/// Used in mob overlay layering calculations.
|
||||
var/icon_position = 0
|
||||
/// Used when caching robolimb icons.
|
||||
var/model
|
||||
/// Used to force override of species-specific limb icons (for prosthetics). Also used for any limbs chopped from a simple mob, and then attached to humans.
|
||||
var/force_icon
|
||||
/// Used to force the override of the icon-key generated using the species. Must be used in tandem with the above.
|
||||
var/force_icon_key
|
||||
/// Cached icon for use in mob overlays.
|
||||
var/icon/mob_icon
|
||||
/// Whether or not the icon state appends a gender.
|
||||
var/gendered_icon = 0
|
||||
/// Skin tone.
|
||||
var/s_tone
|
||||
/// Skin colour
|
||||
var/list/s_col
|
||||
/// How the skin colour is applied.
|
||||
var/s_col_blend = ICON_ADD
|
||||
/// Hair colour
|
||||
var/list/h_col
|
||||
/// Icon blend for body hair if any.
|
||||
var/body_hair
|
||||
var/mob/living/applied_pressure
|
||||
/// Markings (body_markings) to apply to the icon
|
||||
var/list/markings = list()
|
||||
|
||||
//* Wound and structural data. *//
|
||||
/// How often wounds should be updated, a higher number means less often
|
||||
var/wound_update_accuracy = 1
|
||||
/// Wound datum list.
|
||||
var/list/wounds = list()
|
||||
/// Number of wounds, which is NOT wounds.len!
|
||||
var/number_wounds = 0
|
||||
/// Master-limb.
|
||||
var/obj/item/organ/external/parent
|
||||
/// Sub-limbs.
|
||||
var/list/children = list()
|
||||
/// Internal organs of this body part
|
||||
var/list/internal_organs = list()
|
||||
/// If a prosthetic limb is emagged, it will detonate when it fails.
|
||||
var/sabotaged = 0
|
||||
/// Currently implanted objects.
|
||||
var/list/implants = list()
|
||||
/// Relative size of the organ.
|
||||
var/organ_rel_size = 25
|
||||
/// Chance of missing.
|
||||
var/base_miss_chance = 20
|
||||
var/atom/movable/splinted
|
||||
|
||||
//* Joint/state stuff. *//
|
||||
/// It would be more appropriate if these two were named "affects_grasp" and "affects_stand" at this point
|
||||
var/can_grasp
|
||||
/// Modifies stance tally/ability to stand.
|
||||
var/can_stand
|
||||
/// Scarred/burned beyond recognition.
|
||||
var/disfigured = 0
|
||||
/// Impossible to amputate.
|
||||
var/cannot_amputate
|
||||
/// Impossible to fracture.
|
||||
var/cannot_break
|
||||
/// Impossible to gib, distinct from amputation.
|
||||
var/cannot_gib
|
||||
/// Descriptive string used in dislocation.
|
||||
var/joint = "joint"
|
||||
/// Descriptive string used in amputation.
|
||||
var/amputation_point
|
||||
/// If you target a joint, you can dislocate the limb, impairing it's usefulness and causing pain.
|
||||
var/dislocated = 0
|
||||
/// Needs to be opened with a saw to access the organs.
|
||||
var/encased
|
||||
|
||||
//* Surgery vars. *//
|
||||
var/open = 0
|
||||
var/stage = 0
|
||||
var/cavity = 0
|
||||
/// Surgical repair stage for burn.
|
||||
var/burn_stage = 0
|
||||
/// Surgical repair stage for brute.
|
||||
var/brute_stage = 0
|
||||
|
||||
/// HUD element variable, see organ_icon.dm get_damage_hud_image()
|
||||
var/image/hud_damage_image
|
||||
|
||||
/// makes this dumb as fuck mechanic slightly less awful - records queued syringe infections instead of a spawn()
|
||||
var/syringe_infection_queued
|
||||
|
||||
/obj/item/organ/external/Destroy()
|
||||
|
||||
if(parent && parent.children)
|
||||
@@ -1204,6 +1074,23 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
owner.refresh_modular_limb_verbs()
|
||||
return 1
|
||||
|
||||
//! ## VIRGO HOOK, TODO: Integrate this.
|
||||
//Sideways override for nanoform limbs (ugh)
|
||||
/obj/item/organ/external/robotize(var/company, var/skip_prosthetics = FALSE, var/keep_organs = FALSE)
|
||||
var/original_robotic = robotic
|
||||
if(original_robotic >= ORGAN_NANOFORM)
|
||||
var/o_encased = encased
|
||||
var/o_max_damage = max_damage
|
||||
var/o_min_broken_damage = min_broken_damage
|
||||
robotic = FALSE
|
||||
. = ..(company = company, keep_organs = TRUE)
|
||||
robotic = original_robotic
|
||||
encased = o_encased
|
||||
max_damage = o_max_damage
|
||||
min_broken_damage = o_min_broken_damage
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/external/proc/mutate()
|
||||
if(src.robotic >= ORGAN_ROBOT)
|
||||
return
|
||||
116
code/modules/organs/external/species/adherent.dm
vendored
Normal file
116
code/modules/organs/external/species/adherent.dm
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
/obj/item/organ/external/chest/crystal
|
||||
name = "tendril junction"
|
||||
amputation_point = "axis"
|
||||
joint = "central axis"
|
||||
model = "NULL DATA."
|
||||
w_class = ITEMSIZE_LARGE
|
||||
gendered_icon = 0
|
||||
dislocated = -1
|
||||
max_damage = 50
|
||||
min_broken_damage = 25
|
||||
// arterial_bleed_severity = 0
|
||||
encased = "ceramic hull"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_BREAK | ORGAN_FLAG_HEALS_OVERKILL
|
||||
|
||||
/obj/item/organ/external/groin/crystal
|
||||
name = "trailing tendrils"
|
||||
joint = "base"
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 50
|
||||
min_broken_damage = 25
|
||||
gendered_icon = 0
|
||||
encased = "ceramic hull"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/head/crystal
|
||||
name = "chassis core"
|
||||
amputation_point = "connector socket"
|
||||
joint = "connector socket"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 50
|
||||
min_broken_damage = 25
|
||||
encased = "ceramic hull"
|
||||
eye_icon_location = 'icons/mob/human_races/adherent/eyes.dmi'
|
||||
eye_icon = "eyes"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_HEALS_OVERKILL | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/arm/crystal
|
||||
name = "left grasping tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/arm/right/crystal
|
||||
name = "right grasping tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/hand/crystal
|
||||
name = "left maniple tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/hand/right/crystal
|
||||
name = "right maniple tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/leg/tendril
|
||||
name = "first tendril"
|
||||
amputation_point = "midpoint"
|
||||
joint = "base"
|
||||
gendered_icon = 0
|
||||
organ_tag = BP_L_LEG
|
||||
parent_organ = BP_TORSO
|
||||
// arterial_bleed_severity = 0
|
||||
dislocated = -1
|
||||
max_damage = 20
|
||||
min_broken_damage = 10
|
||||
robotic = ORGAN_CRYSTAL
|
||||
// limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_GRASP | ORGAN_FLAG_CAN_STAND | ORGAN_FLAG_CAN_BREAK
|
||||
|
||||
/obj/item/organ/external/leg/right/tendril
|
||||
name = "second tendril"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
|
||||
/obj/item/organ/external/foot/tendril
|
||||
name = "third tendril"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
|
||||
/obj/item/organ/external/foot/right/tendril
|
||||
name = "fourth tendril"
|
||||
robotic = ORGAN_CRYSTAL
|
||||
@@ -1,34 +1,34 @@
|
||||
/obj/item/organ/external/chest/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/groin/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/arm/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/arm/right/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/leg/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/leg/right/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/foot/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/foot/right/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/hand/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/hand/right/unbreakable/plant
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
|
||||
/obj/item/organ/external/head/unbreakable/plant //They don't need this anymore.
|
||||
cannot_gib = 0
|
||||
vital = 0
|
||||
spread_dam = 1
|
||||
spread_dam = TRUE
|
||||
cannot_gib = FALSE
|
||||
vital = FALSE
|
||||
@@ -1,11 +1,11 @@
|
||||
/proc/spawn_diona_nymph(var/turf/target)
|
||||
/proc/spawn_diona_nymph(turf/target)
|
||||
if(!istype(target))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
//This is a terrible hack and I should be ashamed.
|
||||
var/datum/seed/diona = SSplants.seeds["diona"]
|
||||
if(!diona)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
. = TRUE
|
||||
|
||||
@@ -17,9 +17,10 @@
|
||||
if(D)
|
||||
if(!D.ckey || !D.client)
|
||||
D.death()
|
||||
|
||||
/obj/item/organ/external/diona
|
||||
name = "tendril"
|
||||
cannot_break = 1
|
||||
cannot_break = TRUE
|
||||
amputation_point = "branch"
|
||||
joint = "structural ligament"
|
||||
dislocated = -1
|
||||
@@ -32,10 +33,10 @@
|
||||
min_broken_damage = 50
|
||||
w_class = ITEMSIZE_HUGE
|
||||
body_part = UPPER_TORSO
|
||||
vital = 1
|
||||
cannot_amputate = 1
|
||||
vital = TRUE
|
||||
cannot_amputate = TRUE
|
||||
parent_organ = null
|
||||
gendered_icon = 1
|
||||
gendered_icon = TRUE
|
||||
|
||||
/obj/item/organ/external/diona/groin
|
||||
name = "fork"
|
||||
@@ -46,7 +47,7 @@
|
||||
w_class = ITEMSIZE_LARGE
|
||||
body_part = LOWER_TORSO
|
||||
parent_organ = BP_TORSO
|
||||
gendered_icon = 1
|
||||
gendered_icon = TRUE
|
||||
|
||||
/obj/item/organ/external/diona/arm
|
||||
name = "left upper tendril"
|
||||
@@ -57,7 +58,7 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
body_part = ARM_LEFT
|
||||
parent_organ = BP_TORSO
|
||||
can_grasp = 1
|
||||
can_grasp = TRUE
|
||||
|
||||
/obj/item/organ/external/diona/arm/right
|
||||
name = "right upper tendril"
|
||||
@@ -75,7 +76,7 @@
|
||||
body_part = LEG_LEFT
|
||||
icon_position = LEFT
|
||||
parent_organ = BP_GROIN
|
||||
can_stand = 1
|
||||
can_stand = TRUE
|
||||
|
||||
/obj/item/organ/external/diona/leg/right
|
||||
name = "right lower tendril"
|
||||
@@ -94,7 +95,7 @@
|
||||
body_part = FOOT_LEFT
|
||||
icon_position = LEFT
|
||||
parent_organ = BP_R_LEG
|
||||
can_stand = 1
|
||||
can_stand = TRUE
|
||||
|
||||
/obj/item/organ/external/diona/foot/right
|
||||
name = "right foot"
|
||||
@@ -115,7 +116,7 @@
|
||||
w_class = ITEMSIZE_SMALL
|
||||
body_part = HAND_LEFT
|
||||
parent_organ = BP_L_ARM
|
||||
can_grasp = 1
|
||||
can_grasp = TRUE
|
||||
|
||||
/obj/item/organ/external/diona/hand/right
|
||||
name = "right grasper"
|
||||
@@ -135,113 +136,12 @@
|
||||
if(prob(50) && spawn_diona_nymph(get_turf(src)))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/internal/diona
|
||||
name = "diona nymph"
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "nymph"
|
||||
organ_tag = "special" // Turns into a nymph instantly, no transplanting possible.
|
||||
|
||||
/obj/item/organ/internal/diona/removed(var/mob/living/user, var/skip_nymph)
|
||||
if(robotic >= ORGAN_ROBOT)
|
||||
return ..()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
..()
|
||||
if(!istype(H) || !H.organs || !H.organs.len)
|
||||
H.death()
|
||||
if(prob(50) && !skip_nymph && spawn_diona_nymph(get_turf(src)))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/internal/diona/process(delta_time)
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/diona/strata
|
||||
name = "neural strata"
|
||||
parent_organ = BP_TORSO
|
||||
organ_tag = O_STRATA
|
||||
|
||||
/obj/item/organ/internal/diona/bladder
|
||||
name = "gas bladder"
|
||||
parent_organ = BP_HEAD
|
||||
organ_tag = O_GBLADDER
|
||||
|
||||
/obj/item/organ/internal/diona/polyp
|
||||
name = "polyp segment"
|
||||
parent_organ = BP_GROIN
|
||||
organ_tag = O_POLYP
|
||||
|
||||
/obj/item/organ/internal/diona/ligament
|
||||
name = "anchoring ligament"
|
||||
parent_organ = BP_GROIN
|
||||
organ_tag = O_ANCHOR
|
||||
|
||||
/obj/item/organ/internal/diona/node
|
||||
name = "receptor node"
|
||||
parent_organ = BP_HEAD
|
||||
organ_tag = O_RESPONSE
|
||||
|
||||
/obj/item/organ/internal/diona/nutrients
|
||||
name = O_NUTRIENT
|
||||
parent_organ = BP_TORSO
|
||||
organ_tag = O_NUTRIENT
|
||||
|
||||
// These are different to the standard diona organs as they have a purpose in other
|
||||
// species (absorbing radiation and light respectively)
|
||||
/obj/item/organ/internal/diona/nutrients
|
||||
name = O_NUTRIENT
|
||||
organ_tag = O_NUTRIENT
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "claw"
|
||||
|
||||
/obj/item/organ/internal/diona/nutrients/removed(var/mob/user)
|
||||
return ..(user, 1)
|
||||
|
||||
/obj/item/organ/internal/diona/node
|
||||
name = "response node"
|
||||
parent_organ = BP_HEAD
|
||||
organ_tag = O_RESPONSE
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "claw"
|
||||
|
||||
/obj/item/organ/internal/diona/node/removed()
|
||||
return
|
||||
|
||||
// A 'brain' for the tree, still becomes a mindless nymph when removed like any other. Satisfies the FBP code.
|
||||
/obj/item/organ/internal/brain/cephalon
|
||||
name = "cephalon mass"
|
||||
parent_organ = BP_TORSO
|
||||
vital = TRUE
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/Initialize(mapload)
|
||||
. = ..()
|
||||
spawn(30 SECONDS) // FBP Dionaea need some way to be disassembled through surgery, if absolutely necessary.
|
||||
if(!owner.isSynthetic())
|
||||
vital = FALSE
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/robotize()
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/mechassist()
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/digitize()
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/removed(var/mob/living/user, var/skip_nymph)
|
||||
if(robotic >= ORGAN_ROBOT)
|
||||
return ..()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
..()
|
||||
if(!istype(H) || !H.organs || !H.organs.len)
|
||||
H.death()
|
||||
if(prob(50) && !skip_nymph && spawn_diona_nymph(get_turf(src)))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/external/head/no_eyes/diona
|
||||
max_damage = 50
|
||||
min_broken_damage = 25
|
||||
cannot_break = 1
|
||||
cannot_break = TRUE
|
||||
amputation_point = "branch"
|
||||
joint = "structural ligament"
|
||||
dislocated = -1
|
||||
vital = 0
|
||||
vital = FALSE
|
||||
slot_flags = SLOT_BELT
|
||||
@@ -1,11 +1,3 @@
|
||||
/obj/item/organ/internal/brain/shadekin
|
||||
can_assist = FALSE
|
||||
|
||||
var/dark_energy = 100
|
||||
var/max_dark_energy = 100
|
||||
var/dark_energy_infinite = FALSE
|
||||
|
||||
|
||||
//! Blackeyed limbs.
|
||||
|
||||
/obj/item/organ/external/chest/crewkin
|
||||
69
code/modules/organs/external/species/slime.dm
vendored
Normal file
69
code/modules/organs/external/species/slime.dm
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
/obj/item/organ/external/chest/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 50
|
||||
encased = 0
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/groin/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 30
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/arm/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/arm/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/leg/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/leg/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/foot/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/foot/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/hand/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/hand/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/head/unbreakable/slime //They don't need this anymore.
|
||||
nonsolid = 1
|
||||
cannot_gib = 0
|
||||
vital = 0
|
||||
max_damage = 30
|
||||
encased = 0
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
16
code/modules/organs/external/species/unathi.dm
vendored
Normal file
16
code/modules/organs/external/species/unathi.dm
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/obj/item/organ/external/chest/unathi
|
||||
max_damage = 100
|
||||
min_broken_damage = 40
|
||||
encased = "upper ribplates"
|
||||
|
||||
/obj/item/organ/external/groin/unathi
|
||||
max_damage = 100
|
||||
min_broken_damage = 40
|
||||
encased = "lower ribplates"
|
||||
|
||||
/obj/item/organ/external/head/unathi
|
||||
max_damage = 75
|
||||
min_broken_damage = 35
|
||||
eye_icon = "eyes_s"
|
||||
force = 5
|
||||
throwforce = 10
|
||||
74
code/modules/organs/external/species/xenos.dm
vendored
Normal file
74
code/modules/organs/external/species/xenos.dm
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
// XENOMORPH EXTERNAL ORGANS
|
||||
|
||||
/obj/item/organ/external/chest/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/groin/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/arm/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/arm/right/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/leg/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/leg/right/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/foot/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/foot/right/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/hand/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/hand/right/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/head/unseverable/xeno
|
||||
cannot_gib = TRUE
|
||||
cannot_amputate = TRUE
|
||||
thick_skin = TRUE
|
||||
eye_icon = "blank_eyes"
|
||||
@@ -12,12 +12,12 @@
|
||||
min_broken_damage = 35
|
||||
w_class = ITEMSIZE_HUGE
|
||||
body_part = UPPER_TORSO
|
||||
vital = 1
|
||||
vital = TRUE
|
||||
amputation_point = "spine"
|
||||
joint = "neck"
|
||||
dislocated = -1
|
||||
gendered_icon = 1
|
||||
cannot_amputate = 1
|
||||
gendered_icon = TRUE
|
||||
cannot_amputate = TRUE
|
||||
parent_organ = null
|
||||
encased = "ribcage"
|
||||
organ_rel_size = 70
|
||||
@@ -54,13 +54,13 @@
|
||||
min_broken_damage = 35
|
||||
w_class = ITEMSIZE_LARGE
|
||||
body_part = LOWER_TORSO
|
||||
vital = 1
|
||||
vital = TRUE
|
||||
parent_organ = BP_TORSO
|
||||
amputation_point = "lumbar"
|
||||
joint = "hip"
|
||||
dislocated = -1
|
||||
gendered_icon = 1
|
||||
cannot_amputate = 1
|
||||
gendered_icon = TRUE
|
||||
cannot_amputate = TRUE
|
||||
organ_rel_size = 30
|
||||
|
||||
/obj/item/organ/external/groin/handle_germ_effects()
|
||||
@@ -87,7 +87,7 @@
|
||||
parent_organ = BP_TORSO
|
||||
joint = "left elbow"
|
||||
amputation_point = "left shoulder"
|
||||
can_grasp = 1
|
||||
can_grasp = TRUE
|
||||
force = 7
|
||||
throwforce = 10
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
parent_organ = BP_GROIN
|
||||
joint = "left knee"
|
||||
amputation_point = "left hip"
|
||||
can_stand = 1
|
||||
can_stand = TRUE
|
||||
force = 10
|
||||
throwforce = 12
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
parent_organ = BP_L_LEG
|
||||
joint = "left ankle"
|
||||
amputation_point = "left ankle"
|
||||
can_stand = 1
|
||||
can_stand = TRUE
|
||||
force = 3
|
||||
throwforce = 6
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
parent_organ = BP_L_ARM
|
||||
joint = "left wrist"
|
||||
amputation_point = "left wrist"
|
||||
can_grasp = 1
|
||||
can_grasp = TRUE
|
||||
organ_rel_size = 10
|
||||
base_miss_chance = 50
|
||||
force = 3
|
||||
@@ -257,20 +257,20 @@
|
||||
min_broken_damage = 35
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
body_part = HEAD
|
||||
vital = 1
|
||||
vital = TRUE
|
||||
parent_organ = BP_TORSO
|
||||
joint = "jaw"
|
||||
amputation_point = "neck"
|
||||
gendered_icon = 1
|
||||
gendered_icon = TRUE
|
||||
cannot_gib = TRUE
|
||||
encased = "skull"
|
||||
base_miss_chance = 40
|
||||
var/can_intake_reagents = 1
|
||||
var/eye_icon = "eyes_s"
|
||||
force = 3
|
||||
throwforce = 7
|
||||
var/eyes_over_markings = FALSE
|
||||
|
||||
var/can_intake_reagents = TRUE
|
||||
var/eyes_over_markings = FALSE
|
||||
var/eye_icon = "eyes_s"
|
||||
var/eye_icon_location = 'icons/mob/human_face.dmi'
|
||||
|
||||
/obj/item/organ/external/head/Initialize(mapload)
|
||||
@@ -278,7 +278,7 @@
|
||||
cannot_gib = FALSE
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/external/head/robotize(var/company, var/skip_prosthetics, var/keep_organs)
|
||||
/obj/item/organ/external/head/robotize(company, skip_prosthetics, keep_organs)
|
||||
return ..(company, skip_prosthetics, 1)
|
||||
|
||||
/obj/item/organ/external/head/removed()
|
||||
@@ -1,7 +1,7 @@
|
||||
//For custom heads with custom parts since the base code is restricted to a single icon file.
|
||||
//! ## Leave everything here as it is for now since this is using unique behavior.
|
||||
|
||||
/// For custom heads with custom parts since the base code is restricted to a single icon file.
|
||||
/obj/item/organ/external/head/vr/get_icon()
|
||||
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(!owner || !owner.species)
|
||||
137
code/modules/organs/external_defines.dm
Normal file
137
code/modules/organs/external_defines.dm
Normal file
@@ -0,0 +1,137 @@
|
||||
/obj/item/organ/external
|
||||
name = "external"
|
||||
max_damage = 0
|
||||
min_broken_damage = 30
|
||||
dir = SOUTH
|
||||
organ_tag = "limb"
|
||||
|
||||
|
||||
//! ## STRINGS
|
||||
/// Fracture description if any.
|
||||
var/broken_description
|
||||
/// Modifier used for generating the on-mob damage overlay for this limb.
|
||||
var/damage_state = "00"
|
||||
|
||||
|
||||
//! ## DAMAGE VARS
|
||||
/// Multiplier for incoming brute damage.
|
||||
var/brute_mod = 1
|
||||
/// As above for burn.
|
||||
var/burn_mod = 1
|
||||
/// EMP damage multiplier
|
||||
var/emp_mod = 1
|
||||
/// Actual current brute damage.
|
||||
var/brute_dam = 0
|
||||
/// Actual current burn damage.
|
||||
var/burn_dam = 0
|
||||
/// Used in healing/processing calculations.
|
||||
var/last_dam = -1
|
||||
|
||||
/// If damage done to this organ spreads to connected organs.
|
||||
var/spread_dam = FALSE
|
||||
/// If a needle has a chance to fail to penetrate.
|
||||
var/thick_skin = FALSE
|
||||
/// If a prosthetic limb is emagged, it will detonate when it fails.
|
||||
var/sabotaged = FALSE
|
||||
|
||||
/// Chance of missing.
|
||||
var/base_miss_chance = 20
|
||||
|
||||
|
||||
//! ## APPEARANCE VARS
|
||||
/// Snowflake warning, reee. Used for slime limbs.
|
||||
var/nonsolid
|
||||
/// Also for slimes. Used for transparent limbs.
|
||||
var/transparent = 0
|
||||
/// Icon state base.
|
||||
var/icon_name = null
|
||||
/// Part flag
|
||||
var/body_part = null
|
||||
/// Used in mob overlay layering calculations.
|
||||
var/icon_position = 0
|
||||
/// Used when caching robolimb icons.
|
||||
var/model
|
||||
/// Used to force override of species-specific limb icons (for prosthetics). Also used for any limbs chopped from a simple mob, and then attached to humans.
|
||||
var/force_icon
|
||||
/// Used to force the override of the icon-key generated using the species. Must be used in tandem with the above.
|
||||
var/force_icon_key
|
||||
/// Cached icon for use in mob overlays.
|
||||
var/icon/mob_icon
|
||||
/// Whether or not the icon state appends a gender.
|
||||
var/gendered_icon = 0
|
||||
/// Skin tone.
|
||||
var/s_tone
|
||||
/// Skin colour
|
||||
var/list/s_col
|
||||
/// How the skin colour is applied.
|
||||
var/s_col_blend = ICON_ADD
|
||||
/// Hair colour
|
||||
var/list/h_col
|
||||
/// Icon blend for body hair if any.
|
||||
var/body_hair
|
||||
var/mob/living/applied_pressure
|
||||
/// Markings (body_markings) to apply to the icon
|
||||
var/list/markings = list()
|
||||
|
||||
|
||||
//! ## STRUCTURAL VARS
|
||||
/// Master-limb.
|
||||
var/obj/item/organ/external/parent
|
||||
/// Sub-limbs.
|
||||
var/list/children = list()
|
||||
/// Internal organs of this body part
|
||||
var/list/internal_organs = list()
|
||||
/// Currently implanted objects.
|
||||
var/list/implants = list()
|
||||
/// Relative size of the organ.
|
||||
var/organ_rel_size = 25
|
||||
var/atom/movable/splinted
|
||||
|
||||
|
||||
//! ## WOUND VARS
|
||||
/// How often wounds should be updated, a higher number means less often
|
||||
var/wound_update_accuracy = 1
|
||||
/// Wound datum list.
|
||||
var/list/wounds = list()
|
||||
/// Number of wounds, which is NOT wounds.len!
|
||||
var/number_wounds = 0
|
||||
|
||||
|
||||
//! ## JOINT/STATE VARS
|
||||
/// It would be more appropriate if these two were named "affects_grasp" and "affects_stand" at this point
|
||||
var/can_grasp
|
||||
/// Modifies stance tally/ability to stand.
|
||||
var/can_stand
|
||||
/// Scarred/burned beyond recognition.
|
||||
var/disfigured = FALSE
|
||||
/// Impossible to amputate.
|
||||
var/cannot_amputate
|
||||
/// Impossible to fracture.
|
||||
var/cannot_break
|
||||
/// Impossible to gib, distinct from amputation.
|
||||
var/cannot_gib
|
||||
/// Descriptive string used in dislocation.
|
||||
var/joint = "joint"
|
||||
/// Descriptive string used in amputation.
|
||||
var/amputation_point
|
||||
/// If you target a joint, you can dislocate the limb, impairing it's usefulness and causing pain.
|
||||
var/dislocated = FALSE
|
||||
/// Needs to be opened with a saw to access the organs.
|
||||
var/encased
|
||||
|
||||
|
||||
//! ## SURGERY VARS
|
||||
var/open = FALSE
|
||||
var/stage = FALSE
|
||||
var/cavity = FALSE
|
||||
|
||||
/// Surgical repair stage for burn.
|
||||
var/burn_stage = 0
|
||||
/// Surgical repair stage for brute.
|
||||
var/brute_stage = 0
|
||||
|
||||
/// HUD element variable, see organ_icon.dm get_damage_hud_image()
|
||||
var/image/hud_damage_image
|
||||
|
||||
/// makes this dumb as fuck mechanic slightly less awful - records queued syringe infections instead of a spawn()
|
||||
var/syringe_infection_queued
|
||||
@@ -1,10 +1,3 @@
|
||||
|
||||
/****************************************************
|
||||
INTERNAL ORGANS DEFINES
|
||||
****************************************************/
|
||||
/obj/item/organ/internal
|
||||
var/dead_icon // Icon to use when the organ has died.
|
||||
|
||||
/obj/item/organ/internal/die()
|
||||
..()
|
||||
if((status & ORGAN_DEAD) && dead_icon)
|
||||
@@ -60,4 +53,3 @@
|
||||
if(. >= 3 && antibiotics < ANTIBIO_OD) //INFECTION_LEVEL_THREE
|
||||
if (prob(50))
|
||||
take_damage(1,silent=prob(15))
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
|
||||
///Don't ask why it's here, I just know it won't work without it. This is my personnal coconut.jpg - Papalus
|
||||
//GLOBAL_LIST_INIT(full_alphabet, list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"))
|
||||
//#define PROTOCOL_ARTICLE "Protocol article [rand(100,999)]-[uppertext(pick(GLOB.full_alphabet))] subsection #[rand(10,99)]"
|
||||
|
||||
/obj/item/organ/internal/brain/adherent
|
||||
name = "mentality matrix"
|
||||
desc = "The self-contained, self-supporting internal 'brain' of an Adherent unit."
|
||||
101
code/modules/organs/internal/species/diona.dm
Normal file
101
code/modules/organs/internal/species/diona.dm
Normal file
@@ -0,0 +1,101 @@
|
||||
|
||||
/obj/item/organ/internal/diona
|
||||
name = "diona nymph"
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "nymph"
|
||||
organ_tag = "special" // Turns into a nymph instantly, no transplanting possible.
|
||||
|
||||
/obj/item/organ/internal/diona/removed(var/mob/living/user, var/skip_nymph)
|
||||
if(robotic >= ORGAN_ROBOT)
|
||||
return ..()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
..()
|
||||
if(!istype(H) || !H.organs || !H.organs.len)
|
||||
H.death()
|
||||
if(prob(50) && !skip_nymph && spawn_diona_nymph(get_turf(src)))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/internal/diona/process(delta_time)
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/diona/strata
|
||||
name = "neural strata"
|
||||
parent_organ = BP_TORSO
|
||||
organ_tag = O_STRATA
|
||||
|
||||
/obj/item/organ/internal/diona/bladder
|
||||
name = "gas bladder"
|
||||
parent_organ = BP_HEAD
|
||||
organ_tag = O_GBLADDER
|
||||
|
||||
/obj/item/organ/internal/diona/polyp
|
||||
name = "polyp segment"
|
||||
parent_organ = BP_GROIN
|
||||
organ_tag = O_POLYP
|
||||
|
||||
/obj/item/organ/internal/diona/ligament
|
||||
name = "anchoring ligament"
|
||||
parent_organ = BP_GROIN
|
||||
organ_tag = O_ANCHOR
|
||||
|
||||
/obj/item/organ/internal/diona/node
|
||||
name = "receptor node"
|
||||
parent_organ = BP_HEAD
|
||||
organ_tag = O_RESPONSE
|
||||
|
||||
/obj/item/organ/internal/diona/nutrients
|
||||
name = O_NUTRIENT
|
||||
parent_organ = BP_TORSO
|
||||
organ_tag = O_NUTRIENT
|
||||
|
||||
// These are different to the standard diona organs as they have a purpose in other
|
||||
// species (absorbing radiation and light respectively)
|
||||
/obj/item/organ/internal/diona/nutrients
|
||||
name = O_NUTRIENT
|
||||
organ_tag = O_NUTRIENT
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "claw"
|
||||
|
||||
/obj/item/organ/internal/diona/nutrients/removed(mob/user)
|
||||
return ..(user, 1)
|
||||
|
||||
/obj/item/organ/internal/diona/node
|
||||
name = "response node"
|
||||
parent_organ = BP_HEAD
|
||||
organ_tag = O_RESPONSE
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "claw"
|
||||
|
||||
/obj/item/organ/internal/diona/node/removed()
|
||||
return
|
||||
|
||||
// A 'brain' for the tree, still becomes a mindless nymph when removed like any other. Satisfies the FBP code.
|
||||
/obj/item/organ/internal/brain/cephalon
|
||||
name = "cephalon mass"
|
||||
parent_organ = BP_TORSO
|
||||
vital = TRUE
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/Initialize(mapload)
|
||||
. = ..()
|
||||
spawn(30 SECONDS) // FBP Dionaea need some way to be disassembled through surgery, if absolutely necessary.
|
||||
if(!owner.isSynthetic())
|
||||
vital = FALSE
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/robotize()
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/mechassist()
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/digitize()
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/brain/cephalon/removed(var/mob/living/user, var/skip_nymph)
|
||||
if(robotic >= ORGAN_ROBOT)
|
||||
return ..()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
..()
|
||||
if(!istype(H) || !H.organs || !H.organs.len)
|
||||
H.death()
|
||||
if(prob(50) && !skip_nymph && spawn_diona_nymph(get_turf(src)))
|
||||
qdel(src)
|
||||
6
code/modules/organs/internal/species/shadekin.dm
Normal file
6
code/modules/organs/internal/species/shadekin.dm
Normal file
@@ -0,0 +1,6 @@
|
||||
/obj/item/organ/internal/brain/shadekin
|
||||
can_assist = FALSE
|
||||
|
||||
var/dark_energy = 100
|
||||
var/max_dark_energy = 100
|
||||
var/dark_energy_infinite = FALSE
|
||||
@@ -1,73 +1,3 @@
|
||||
/obj/item/organ/external/chest/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 50
|
||||
encased = 0
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/groin/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 30
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/arm/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/arm/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/leg/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/leg/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/foot/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/foot/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/hand/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/hand/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/obj/item/organ/external/head/unbreakable/slime //They don't need this anymore.
|
||||
nonsolid = 1
|
||||
cannot_gib = 0
|
||||
vital = 0
|
||||
max_damage = 30
|
||||
encased = 0
|
||||
spread_dam = 1
|
||||
transparent = 1
|
||||
|
||||
/*
|
||||
* Internal Slime organs.
|
||||
*/
|
||||
@@ -1,21 +1,3 @@
|
||||
/obj/item/organ/external/chest/unathi
|
||||
max_damage = 100
|
||||
min_broken_damage = 40
|
||||
encased = "upper ribplates"
|
||||
|
||||
/obj/item/organ/external/groin/unathi
|
||||
max_damage = 100
|
||||
min_broken_damage = 40
|
||||
encased = "lower ribplates"
|
||||
|
||||
/obj/item/organ/external/head/unathi
|
||||
max_damage = 75
|
||||
min_broken_damage = 35
|
||||
eye_icon = "eyes_s"
|
||||
force = 5
|
||||
throwforce = 10
|
||||
|
||||
|
||||
/obj/item/organ/internal/heart/unathi
|
||||
icon_state = "unathi_heart-on"
|
||||
dead_icon = "unath_heart-off"
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/external/head/vox
|
||||
eye_icon = "vox_eyes_s"
|
||||
eye_icon = "vox_eyes_s_old"
|
||||
|
||||
//vox got different organs within. This will also help with regular surgeons knowing the organs within an alien as alien as vox.
|
||||
/obj/item/organ/internal/brain/vox
|
||||
@@ -148,78 +148,3 @@
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(H.species.blood_color)
|
||||
add_atom_colour(H.species.blood_color, FIXED_COLOUR_PRIORITY)
|
||||
|
||||
// XENOMORPH EXTERNAL ORGANS
|
||||
|
||||
/obj/item/organ/external/chest/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/groin/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/arm/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/arm/right/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/leg/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/leg/right/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/foot/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/foot/right/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/hand/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/hand/right/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
stapled_nerves = TRUE
|
||||
encased = TRUE
|
||||
thick_skin = TRUE
|
||||
|
||||
/obj/item/organ/external/head/unseverable/xeno
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
thick_skin = TRUE
|
||||
eye_icon = "blank_eyes"
|
||||
8
code/modules/organs/internal_defines.dm
Normal file
8
code/modules/organs/internal_defines.dm
Normal file
@@ -0,0 +1,8 @@
|
||||
/****************************************************
|
||||
INTERNAL ORGANS DEFINES
|
||||
****************************************************/
|
||||
/obj/item/organ/internal
|
||||
/// Icon to use when the organ has died.
|
||||
var/dead_icon
|
||||
|
||||
// Yep... That's it. - @Zandario
|
||||
@@ -1,78 +1,3 @@
|
||||
var/list/organ_cache = list()
|
||||
|
||||
/obj/item/organ
|
||||
name = "organ"
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
germ_level = 0
|
||||
drop_sound = 'sound/items/drop/flesh.ogg'
|
||||
pickup_sound = 'sound/items/pickup/flesh.ogg'
|
||||
|
||||
//* Strings. *//
|
||||
/// Unique identifier.
|
||||
var/organ_tag = "organ"
|
||||
/// The organ holding this object.
|
||||
var/parent_organ = BP_TORSO
|
||||
|
||||
//* Status tracking. *//
|
||||
/// Various status flags
|
||||
var/status = 0
|
||||
/// Lose a vital limb, die immediately.
|
||||
var/vital
|
||||
/// Current damage to the organ
|
||||
var/damage = 0
|
||||
/// Flag for what kind of robotic organ, if valid.
|
||||
var/robotic = 0
|
||||
/// If true, this organ can't feel pain.
|
||||
var/stapled_nerves = FALSE
|
||||
|
||||
//* Reference data. *//
|
||||
/// Current mob owning the organ.
|
||||
var/mob/living/carbon/human/owner
|
||||
/// Transplant match data.
|
||||
var/list/transplant_data
|
||||
/// Trauma data for forensics.
|
||||
var/list/autopsy_data = list()
|
||||
/// Traces of chemicals in the organ.
|
||||
var/list/trace_chemicals = list()
|
||||
/// Original DNA.
|
||||
var/datum/dna/dna
|
||||
/// Original species.
|
||||
var/datum/species/species
|
||||
var/s_base
|
||||
|
||||
//* Damage vars. *//
|
||||
/// Damage before considered bruised
|
||||
var/min_bruised_damage = 10
|
||||
/// Damage before becoming broken
|
||||
var/min_broken_damage = 30
|
||||
/// Damage cap
|
||||
var/max_damage
|
||||
/// Can this organ reject?
|
||||
var/can_reject = TRUE
|
||||
/// Is this organ already being rejected?
|
||||
var/rejecting
|
||||
/// Can this organ decay at all?
|
||||
var/decays = TRUE
|
||||
/// If true, prevent organ decay.
|
||||
var/preserved = FALSE
|
||||
|
||||
//* Language vars. Putting them here in case we decide to do something crazy with sign-or-other-nonverbal languages.
|
||||
var/list/will_assist_languages = list()
|
||||
var/list/datum/language/assists_languages = list()
|
||||
|
||||
//* Organ verb vars.
|
||||
/// Verbs added by the organ when present in the body.
|
||||
var/list/organ_verbs
|
||||
/// Is the parent supposed to be organic, robotic, assisted?
|
||||
var/list/target_parent_classes = list()
|
||||
/// Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
|
||||
var/forgiving_class = TRUE
|
||||
|
||||
/// Can we butcher this organ.
|
||||
var/butcherable = TRUE
|
||||
/// What does butchering, if possible, make?
|
||||
var/meat_type
|
||||
|
||||
/obj/item/organ/Initialize(mapload, internal)
|
||||
. = ..()
|
||||
var/mob/living/holder = loc
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
//Sideways override for nanoform limbs (ugh)
|
||||
/obj/item/organ/external/robotize(var/company, var/skip_prosthetics = FALSE, var/keep_organs = FALSE)
|
||||
var/original_robotic = robotic
|
||||
if(original_robotic >= ORGAN_NANOFORM)
|
||||
var/o_encased = encased
|
||||
var/o_max_damage = max_damage
|
||||
var/o_min_broken_damage = min_broken_damage
|
||||
robotic = FALSE
|
||||
. = ..(company = company, keep_organs = TRUE)
|
||||
robotic = original_robotic
|
||||
encased = o_encased
|
||||
max_damage = o_max_damage
|
||||
min_broken_damage = o_min_broken_damage
|
||||
else
|
||||
return ..()
|
||||
@@ -1,41 +0,0 @@
|
||||
|
||||
/****************************************************
|
||||
INTERNAL ORGANS DEFINES
|
||||
****************************************************/
|
||||
/obj/item/organ/internal
|
||||
var/dead_icon // Icon to use when the organ has died.
|
||||
|
||||
/obj/item/organ/internal/die()
|
||||
..()
|
||||
if((status & ORGAN_DEAD) && dead_icon)
|
||||
icon_state = dead_icon
|
||||
|
||||
/obj/item/organ/internal/Destroy()
|
||||
if(owner)
|
||||
owner.internal_organs.Remove(src)
|
||||
owner.internal_organs_by_name[organ_tag] = null
|
||||
owner.internal_organs_by_name -= organ_tag
|
||||
while(null in owner.internal_organs)
|
||||
owner.internal_organs -= null
|
||||
var/obj/item/organ/external/E = owner.organs_by_name[parent_organ]
|
||||
if(istype(E)) E.internal_organs -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/internal/remove_rejuv()
|
||||
if(owner)
|
||||
owner.internal_organs -= src
|
||||
owner.internal_organs_by_name[organ_tag] = null
|
||||
owner.internal_organs_by_name -= organ_tag
|
||||
while(null in owner.internal_organs)
|
||||
owner.internal_organs -= null
|
||||
var/obj/item/organ/external/E = owner.organs_by_name[parent_organ]
|
||||
if(istype(E)) E.internal_organs -= src
|
||||
..()
|
||||
|
||||
// Brain is defined in brain_item.dm.
|
||||
// Heart is defined in heart.dm
|
||||
// Lungs are defined in lungs.dm
|
||||
// Kidneys is defined in kidneys.dm
|
||||
// Eyes are defined in eyes.dm
|
||||
// Liver is defined in liver.dm. The process here was different than the process in liver.dm, so I just kept the one in liver.dm
|
||||
// Appendix is defined in appendix.dm
|
||||
@@ -1,2 +0,0 @@
|
||||
/obj/item/organ/external/head/vox //Enables old vox eyes.
|
||||
eye_icon = "vox_eyes_s_old"
|
||||
Reference in New Issue
Block a user