mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-01 13:12:23 +00:00
* Adds the check components * Adds in trailing newlines * Converts all CRLF to LF * Post merge EOF * Post merge line endings * Final commit
126 lines
2.8 KiB
Plaintext
126 lines
2.8 KiB
Plaintext
/mob/proc/get_int_organ(typepath) //int stands for internal
|
|
return
|
|
|
|
/mob/proc/get_organs_zone(zone)
|
|
return
|
|
|
|
/mob/proc/get_organ_slot(slot) //is it a brain, is it a brain_tumor?
|
|
return
|
|
|
|
/mob/proc/get_int_organ_tag(tag) //is it a brain, is it a brain_tumor?
|
|
return
|
|
|
|
/mob/living/proc/get_organ(zone)
|
|
return
|
|
|
|
/mob/living/carbon/get_int_organ(typepath)
|
|
return (locate(typepath) in internal_organs)
|
|
|
|
|
|
/mob/living/carbon/get_organs_zone(zone, var/subzones = 0)
|
|
var/list/returnorg = list()
|
|
if(subzones)
|
|
// Include subzones - groin for chest, eyes and mouth for head
|
|
//Fethas note:We have check_zone, i may need to remove the below
|
|
if(zone == "head")
|
|
returnorg = get_organs_zone("eyes") + get_organs_zone("mouth")
|
|
if(zone == "chest")
|
|
returnorg = get_organs_zone("groin")
|
|
|
|
for(var/obj/item/organ/internal/O in internal_organs)
|
|
if(zone == O.parent_organ)
|
|
returnorg += O
|
|
return returnorg
|
|
|
|
/mob/living/carbon/get_organ_slot(slot)
|
|
return internal_organs_slot[slot]
|
|
|
|
/mob/living/carbon/get_int_organ_tag(tag)
|
|
for(var/obj/item/organ/internal/O in internal_organs)
|
|
if(tag == O.organ_tag)
|
|
return O
|
|
|
|
/proc/is_int_organ(atom/A)
|
|
return istype(A, /obj/item/organ/internal)
|
|
|
|
/mob/living/carbon/human/proc/get_limb_by_name(limb_name) //Look for a limb with the given limb name in the source mob, and return it if found.
|
|
for(var/obj/item/organ/external/O in bodyparts)
|
|
if(limb_name == O.limb_name)
|
|
return O
|
|
|
|
|
|
/mob/proc/has_left_hand()
|
|
return TRUE
|
|
|
|
/mob/living/carbon/human/has_left_hand()
|
|
if(has_organ("l_hand"))
|
|
return TRUE
|
|
return FALSE
|
|
|
|
|
|
/mob/proc/has_right_hand()
|
|
return TRUE
|
|
|
|
/mob/living/carbon/human/has_right_hand()
|
|
if(has_organ("r_hand"))
|
|
return TRUE
|
|
return FALSE
|
|
|
|
|
|
//Limb numbers
|
|
/mob/proc/get_num_arms()
|
|
return 2
|
|
|
|
/mob/living/carbon/human/get_num_arms()
|
|
. = 0
|
|
for(var/X in bodyparts)
|
|
var/obj/item/organ/external/affecting = X
|
|
if(affecting.body_part == ARM_RIGHT)
|
|
.++
|
|
if(affecting.body_part == ARM_LEFT)
|
|
.++
|
|
|
|
//sometimes we want to ignore that we don't have the required amount of arms.
|
|
/mob/proc/get_arm_ignore()
|
|
return FALSE
|
|
|
|
|
|
/mob/proc/get_num_legs()
|
|
return 2
|
|
|
|
/mob/living/carbon/human/get_num_legs()
|
|
. = 0
|
|
for(var/X in bodyparts)
|
|
var/obj/item/organ/external/affecting = X
|
|
if(affecting.body_part == LEG_RIGHT)
|
|
.++
|
|
if(affecting.body_part == LEG_LEFT)
|
|
.++
|
|
|
|
//sometimes we want to ignore that we don't have the required amount of legs.
|
|
/mob/proc/get_leg_ignore()
|
|
return FALSE
|
|
|
|
|
|
/mob/living/carbon/human/get_leg_ignore()
|
|
|
|
if(flying == 1)
|
|
return TRUE
|
|
|
|
var/obj/item/tank/jetpack/J
|
|
if(istype(back,/obj/item/tank/jetpack))
|
|
J = back
|
|
if(J.on == 1)
|
|
return TRUE
|
|
return FALSE
|
|
|
|
/mob/living/proc/get_missing_limbs()
|
|
return list()
|
|
|
|
/mob/living/carbon/human/get_missing_limbs()
|
|
var/list/full = list("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg")
|
|
for(var/zone in full)
|
|
if(has_organ(zone))
|
|
full -= zone
|
|
return full
|