mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Merge pull request #7198 from Crazylemon64/organ_varname_refactor
Refactors "organs" to be "bodyparts" to end confusion once and for all
This commit is contained in:
@@ -480,7 +480,7 @@ client/proc/one_click_antag()
|
||||
new_vox.update_dna()
|
||||
new_vox.update_eyes()
|
||||
|
||||
for(var/obj/item/organ/external/limb in new_vox.organs)
|
||||
for(var/obj/item/organ/external/limb in new_vox.bodyparts)
|
||||
limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
|
||||
|
||||
//Now apply cortical stack.
|
||||
@@ -603,4 +603,4 @@ client/proc/one_click_antag()
|
||||
to_chat(newMember, "You are a member of the <font color = 'red'><b>RED</b></font> Thunderdome team! Gear up and help your team destroy the green team!")
|
||||
else
|
||||
return 0
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -2104,15 +2104,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
for(var/name in organ_data)
|
||||
|
||||
var/status = organ_data[name]
|
||||
var/obj/item/organ/external/O = character.organs_by_name[name]
|
||||
var/obj/item/organ/external/O = character.bodyparts_by_name[name]
|
||||
if(O)
|
||||
if(status == "amputated")
|
||||
character.organs_by_name[O.limb_name] = null
|
||||
character.organs -= O
|
||||
if(O.children) // This might need to become recursive.
|
||||
for(var/obj/item/organ/external/child in O.children)
|
||||
character.organs_by_name[child.limb_name] = null
|
||||
character.organs -= child
|
||||
qdel(O.remove(character))
|
||||
|
||||
else if(status == "cyborg")
|
||||
if(rlimb_data[name])
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
"<span class='notice'>You check yourself for injuries.</span>" \
|
||||
)
|
||||
|
||||
for(var/obj/item/organ/external/org in H.organs)
|
||||
for(var/obj/item/organ/external/org in H.bodyparts)
|
||||
var/status = ""
|
||||
var/brutedamage = org.brute_dam
|
||||
var/burndamage = org.burn_dam
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/proc/change_gender(var/new_gender, var/update_dna = 1)
|
||||
var/obj/item/organ/external/head/H = organs_by_name["head"]
|
||||
var/obj/item/organ/external/head/H = bodyparts_by_name["head"]
|
||||
if(gender == new_gender || (gender == PLURAL && species.has_gender))
|
||||
return
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
spawn()
|
||||
thing.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),5)
|
||||
|
||||
for(var/obj/item/organ/external/E in src.organs)
|
||||
for(var/obj/item/organ/external/E in bodyparts)
|
||||
if(istype(E, /obj/item/organ/external/chest))
|
||||
continue
|
||||
// Only make the limb drop if it's not too damaged
|
||||
@@ -177,7 +177,7 @@
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/ChangeToHusk()
|
||||
var/obj/item/organ/external/head/H = organs_by_name["head"]
|
||||
var/obj/item/organ/external/head/H = bodyparts_by_name["head"]
|
||||
if(HUSK in mutations) return
|
||||
|
||||
if(istype(H))
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
found_slime_bodypart = 1
|
||||
else
|
||||
for(var/obj/item/organ/external/L in organs) // if your limbs are squishy you can squish too!
|
||||
for(var/obj/item/organ/external/L in bodyparts) // if your limbs are squishy you can squish too!
|
||||
if(L.dna.species in list("Slime People"))
|
||||
on_CD = handle_emote_CD()
|
||||
found_slime_bodypart = 1
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
var/organ_descriptor = organ_data["descriptor"]
|
||||
is_destroyed["[organ_data["descriptor"]]"] = 1
|
||||
|
||||
var/obj/item/organ/external/E = organs_by_name[organ_tag]
|
||||
var/obj/item/organ/external/E = bodyparts_by_name[organ_tag]
|
||||
if(!E)
|
||||
wound_flavor_text["[organ_tag]"] = "<span class='warning'><b>[t_He] [t_is] missing [t_his] [organ_descriptor].</b></span>\n"
|
||||
else if(E.is_stump())
|
||||
@@ -303,7 +303,7 @@
|
||||
else
|
||||
continue
|
||||
|
||||
for(var/obj/item/organ/external/temp in organs)
|
||||
for(var/obj/item/organ/external/temp in bodyparts)
|
||||
if(temp && !temp.is_stump())
|
||||
if(temp.status & ORGAN_ROBOT)
|
||||
if(!(temp.brute_dam + temp.burn_dam))
|
||||
|
||||
@@ -65,9 +65,7 @@
|
||||
add_to_all_human_data_huds()
|
||||
|
||||
/mob/living/carbon/human/Destroy()
|
||||
for(var/atom/movable/organelle in organs)
|
||||
qdel(organelle)
|
||||
organs = list()
|
||||
QDEL_LIST(bodyparts)
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/dummy
|
||||
@@ -310,7 +308,7 @@
|
||||
|
||||
var/limbs_affected = pick(2,3,4)
|
||||
var/obj/item/organ/external/processing_dismember
|
||||
var/list/valid_limbs = organs.Copy()
|
||||
var/list/valid_limbs = bodyparts.Copy()
|
||||
|
||||
while(limbs_affected != 0 && valid_limbs.len > 0)
|
||||
processing_dismember = pick(valid_limbs)
|
||||
@@ -328,7 +326,7 @@
|
||||
|
||||
var/limbs_affected = 0
|
||||
var/obj/item/organ/external/processing_dismember
|
||||
var/list/valid_limbs = organs.Copy()
|
||||
var/list/valid_limbs = bodyparts.Copy()
|
||||
|
||||
if(prob(getarmor(null, "bomb")))
|
||||
b_loss = b_loss/1.5
|
||||
@@ -361,7 +359,7 @@
|
||||
|
||||
var/limbs_affected = pick(0, 1)
|
||||
var/obj/item/organ/external/processing_dismember
|
||||
var/list/valid_limbs = organs.Copy()
|
||||
var/list/valid_limbs = bodyparts.Copy()
|
||||
|
||||
while(limbs_affected != 0 && valid_limbs.len > 0)
|
||||
processing_dismember = pick(valid_limbs)
|
||||
@@ -1263,20 +1261,20 @@
|
||||
if(istype(organ, /obj/item/organ/external/stump)) //Get rid of all stumps.
|
||||
qdel(organ)
|
||||
H.contents -= organ //Making sure the list entry is removed.
|
||||
for(var/obj/item/organ/organ in H.organs)
|
||||
for(var/obj/item/organ/organ in H.bodyparts)
|
||||
if(istype(organ, /obj/item/organ/external/stump))
|
||||
qdel(organ)
|
||||
H.organs -= organ //Making sure the list entry is removed.
|
||||
for(var/organ_name in H.organs_by_name)
|
||||
var/obj/item/organ/organ = H.organs_by_name[organ_name]
|
||||
H.bodyparts -= organ //Making sure the list entry is removed.
|
||||
for(var/organ_name in H.bodyparts_by_name)
|
||||
var/obj/item/organ/organ = H.bodyparts_by_name[organ_name]
|
||||
if(istype(organ, /obj/item/organ/external/stump) || !organ) //The !organ check is to account for mechanical limb (prostheses) losses, since those are handled in a way that leaves indexed but null list entries instead of stumps.
|
||||
qdel(organ)
|
||||
H.organs_by_name -= organ_name //Making sure the list entry is removed.
|
||||
H.bodyparts_by_name -= organ_name //Making sure the list entry is removed.
|
||||
|
||||
//Replacing lost limbs with the species default.
|
||||
var/mob/living/carbon/human/temp_holder
|
||||
for(var/limb_type in H.species.has_limbs)
|
||||
if(!(limb_type in H.organs_by_name))
|
||||
if(!(limb_type in H.bodyparts_by_name))
|
||||
var/list/organ_data = H.species.has_limbs[limb_type]
|
||||
var/limb_path = organ_data["path"]
|
||||
var/obj/item/organ/external/O = new limb_path(temp_holder)
|
||||
@@ -1286,7 +1284,7 @@
|
||||
else
|
||||
O = new limb_path(H) //Create the limb on the player.
|
||||
O.owner = H
|
||||
H.organs |= H.organs_by_name[O.limb_name]
|
||||
H.bodyparts |= H.bodyparts_by_name[O.limb_name]
|
||||
|
||||
//Replacing lost organs with the species default.
|
||||
temp_holder = new /mob/living/carbon/human()
|
||||
@@ -1411,7 +1409,7 @@
|
||||
/mob/living/carbon/human/get_visible_implants(var/class = 0)
|
||||
|
||||
var/list/visible_implants = list()
|
||||
for(var/obj/item/organ/external/organ in src.organs)
|
||||
for(var/obj/item/organ/external/organ in bodyparts)
|
||||
for(var/obj/item/weapon/O in organ.implants)
|
||||
if(!istype(O,/obj/item/weapon/implant) && (O.w_class > class) && !istype(O,/obj/item/weapon/shard/shrapnel))
|
||||
visible_implants += O
|
||||
@@ -1427,7 +1425,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/handle_embedded_objects()
|
||||
|
||||
for(var/obj/item/organ/external/organ in src.organs)
|
||||
for(var/obj/item/organ/external/organ in bodyparts)
|
||||
if(organ.status & ORGAN_SPLINTED) //Splints prevent movement.
|
||||
continue
|
||||
for(var/obj/item/weapon/O in organ.implants)
|
||||
@@ -2052,7 +2050,7 @@
|
||||
return .
|
||||
|
||||
/mob/living/carbon/human/proc/change_icobase(var/new_icobase, var/new_deform, var/owner_sensitive)
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
O.change_organ_icobase(new_icobase, new_deform, owner_sensitive) //Change the icobase/deform of all our organs. If owner_sensitive is set, that means the proc won't mess with frankenstein limbs.
|
||||
|
||||
/mob/living/carbon/human/serialize()
|
||||
@@ -2074,8 +2072,8 @@
|
||||
data["uwear"] = underwear
|
||||
|
||||
// Limbs
|
||||
for(var/limb in organs_by_name)
|
||||
var/obj/item/organ/O = organs_by_name[limb]
|
||||
for(var/limb in bodyparts_by_name)
|
||||
var/obj/item/organ/O = bodyparts_by_name[limb]
|
||||
if(!O)
|
||||
limbs_list[limb] = "missing"
|
||||
continue
|
||||
@@ -2116,7 +2114,7 @@
|
||||
for(var/obj/item/organ/internal/iorgan in internal_organs)
|
||||
qdel(iorgan)
|
||||
|
||||
for(var/obj/item/organ/external/organ in organs)
|
||||
for(var/obj/item/organ/external/organ in bodyparts)
|
||||
qdel(organ)
|
||||
|
||||
for(var/limb in limbs_list)
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(istype(H))
|
||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||
var/obj/item/organ/external/temp = H.bodyparts_by_name["r_hand"]
|
||||
if(H.hand)
|
||||
temp = H.organs_by_name["l_hand"]
|
||||
temp = H.bodyparts_by_name["l_hand"]
|
||||
if(!temp || !temp.is_usable())
|
||||
to_chat(H, "<span class='warning'>You can't use your hand.</span>")
|
||||
return
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/total_burn = 0
|
||||
var/total_brute = 0
|
||||
|
||||
for(var/obj/item/organ/external/O in organs) //hardcoded to streamline things a bit
|
||||
for(var/obj/item/organ/external/O in bodyparts) //hardcoded to streamline things a bit
|
||||
total_brute += O.brute_dam //calculates health based on organ brute and burn
|
||||
total_burn += O.burn_dam
|
||||
|
||||
@@ -77,13 +77,13 @@
|
||||
//These procs fetch a cumulative total damage from all organs
|
||||
/mob/living/carbon/human/getBruteLoss()
|
||||
var/amount = 0
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
amount += O.brute_dam
|
||||
return amount
|
||||
|
||||
/mob/living/carbon/human/getFireLoss()
|
||||
var/amount = 0
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
amount += O.burn_dam
|
||||
return amount
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
if(species)
|
||||
amount = amount * species.brute_mod
|
||||
|
||||
if(organ_name in organs_by_name)
|
||||
if(organ_name in bodyparts_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
|
||||
if(amount > 0)
|
||||
@@ -122,7 +122,7 @@
|
||||
if(species)
|
||||
amount = amount * species.burn_mod
|
||||
|
||||
if(organ_name in organs_by_name)
|
||||
if(organ_name in bodyparts_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
|
||||
if(amount > 0)
|
||||
@@ -148,7 +148,7 @@
|
||||
if(amount > 0) //cloneloss is being added
|
||||
if(prob(mut_prob))
|
||||
var/list/obj/item/organ/external/candidates = list() //TYPECASTED LISTS ARE NOT A FUCKING THING WHAT THE FUCK
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(O.status & ORGAN_ROBOT)
|
||||
continue
|
||||
if(!(O.status & ORGAN_MUTATED))
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
else //cloneloss is being subtracted
|
||||
if(prob(heal_prob))
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(O.status & ORGAN_MUTATED)
|
||||
O.unmutate()
|
||||
to_chat(src, "<span class='notice'>Your [O.name] is shaped normally again.</span>")
|
||||
@@ -171,7 +171,7 @@
|
||||
|
||||
|
||||
if(getCloneLoss() < 1) //no cloneloss, fixes organs
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(O.status & ORGAN_MUTATED)
|
||||
O.unmutate()
|
||||
to_chat(src, "<span class='notice'>Your [O.name] is shaped normally again.</span>")
|
||||
@@ -203,7 +203,7 @@
|
||||
//Returns a list of damaged organs
|
||||
/mob/living/carbon/human/proc/get_damaged_organs(brute, burn, flags = AFFECT_ALL_ORGANS)
|
||||
var/list/obj/item/organ/external/parts = list()
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if((brute && O.brute_dam) || (burn && O.burn_dam))
|
||||
if(!(flags & AFFECT_ROBOTIC_ORGAN) && O.status & ORGAN_ROBOT)
|
||||
continue
|
||||
@@ -215,7 +215,7 @@
|
||||
//Returns a list of damageable organs
|
||||
/mob/living/carbon/human/proc/get_damageable_organs()
|
||||
var/list/obj/item/organ/external/parts = list()
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(O.brute_dam + O.burn_dam < O.max_damage)
|
||||
parts += O
|
||||
return parts
|
||||
@@ -313,7 +313,7 @@ This function restores the subjects blood to max.
|
||||
This function restores all organs.
|
||||
*/
|
||||
/mob/living/carbon/human/restore_all_organs()
|
||||
for(var/obj/item/organ/external/current_organ in organs)
|
||||
for(var/obj/item/organ/external/current_organ in bodyparts)
|
||||
current_organ.rejuvenate()
|
||||
|
||||
/mob/living/carbon/human/proc/HealDamage(zone, brute, burn)
|
||||
@@ -331,7 +331,7 @@ This function restores all organs.
|
||||
if(zone in list("eyes", "mouth"))
|
||||
zone = "head"
|
||||
|
||||
return organs_by_name[zone]
|
||||
return bodyparts_by_name[zone]
|
||||
|
||||
/mob/living/carbon/human/apply_damage(damage = 0, damagetype = BRUTE, def_zone = null, blocked = 0, sharp = 0, edge = 0, obj/used_weapon = null)
|
||||
//Handle other types of damage
|
||||
|
||||
@@ -83,7 +83,7 @@ emp_act
|
||||
//If a specific bodypart is targetted, check how that bodypart is protected and return the value.
|
||||
|
||||
//If you don't specify a bodypart, it checks ALL your bodyparts for protection, and averages out the values
|
||||
for(var/obj/item/organ/external/organ in organs)
|
||||
for(var/obj/item/organ/external/organ in bodyparts)
|
||||
armorval += getarmor_organ(organ, type)
|
||||
organnum++
|
||||
|
||||
@@ -100,8 +100,8 @@ emp_act
|
||||
if(bp && istype(bp ,/obj/item/clothing))
|
||||
var/obj/item/clothing/C = bp
|
||||
if(C.body_parts_covered & def_zone.body_part)
|
||||
protection += C.armor[type]
|
||||
|
||||
protection += C.armor[type]
|
||||
|
||||
return protection
|
||||
|
||||
//this proc returns the Siemens coefficient of electrical resistivity for a particular external organ.
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
eyes.update_colour()
|
||||
update_body()
|
||||
|
||||
/mob/living/carbon/human/var/list/organs = list()
|
||||
/mob/living/carbon/human/var/list/organs_by_name = list() // map organ names to organs
|
||||
/mob/living/carbon/human/var/list/bodyparts = list()
|
||||
/mob/living/carbon/human/var/list/bodyparts_by_name = list() // map organ names to organs
|
||||
|
||||
// Takes care of organ related updates, such as broken and missing limbs
|
||||
/mob/living/carbon/human/proc/handle_organs()
|
||||
@@ -18,7 +18,7 @@
|
||||
last_dam = damage_this_tick
|
||||
if(force_process)
|
||||
bad_external_organs.Cut()
|
||||
for(var/obj/item/organ/external/Ex in organs)
|
||||
for(var/obj/item/organ/external/Ex in bodyparts)
|
||||
bad_external_organs |= Ex
|
||||
|
||||
//processing internal organs is pretty cheap, do that first.
|
||||
@@ -69,7 +69,7 @@
|
||||
return
|
||||
|
||||
for(var/limb_tag in list("l_leg","r_leg","l_foot","r_foot"))
|
||||
var/obj/item/organ/external/E = organs_by_name[limb_tag]
|
||||
var/obj/item/organ/external/E = bodyparts_by_name[limb_tag]
|
||||
if(!E || (E.status & (ORGAN_DESTROYED|ORGAN_DEAD)) || E.is_malfunctioning())
|
||||
stance_damage += 2 // let it fail even if just foot&leg. Also malfunctioning happens sporadically so it should impact more when it procs
|
||||
else if(E.is_broken() || !E.is_usable())
|
||||
@@ -100,7 +100,7 @@
|
||||
if(!l_hand && !r_hand)
|
||||
return
|
||||
|
||||
for(var/obj/item/organ/external/E in organs)
|
||||
for(var/obj/item/organ/external/E in bodyparts)
|
||||
if(!E || !E.can_grasp || (E.status & ORGAN_SPLINTED))
|
||||
continue
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
/mob/living/carbon/human/proc/handle_trace_chems()
|
||||
//New are added for reagents to random organs.
|
||||
for(var/datum/reagent/A in reagents.reagent_list)
|
||||
var/obj/item/organ/internal/O = pick(organs)
|
||||
var/obj/item/organ/internal/O = pick(bodyparts)
|
||||
O.trace_chemicals[A.name] = 100
|
||||
|
||||
/*
|
||||
@@ -186,7 +186,7 @@ old_ue: Set this to a UE string, and this proc will overwrite the dna of organs
|
||||
*/
|
||||
/mob/living/carbon/human/proc/sync_organ_dna(var/assimilate = 1, var/old_ue = null)
|
||||
var/ue_to_compare = (old_ue) ? old_ue : dna.unique_enzymes
|
||||
var/list/all_bits = internal_organs|organs
|
||||
var/list/all_bits = internal_organs|bodyparts
|
||||
for(var/obj/item/organ/O in all_bits)
|
||||
if(assimilate || O.dna.unique_enzymes == ue_to_compare)
|
||||
O.set_dna(dna)
|
||||
@@ -204,9 +204,8 @@ I use this to standardize shadowling dethrall code
|
||||
|
||||
/mob/living/carbon/human/has_organic_damage()
|
||||
var/odmg = 0
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(O.status & ORGAN_ROBOT)
|
||||
odmg += O.brute_dam
|
||||
odmg += O.burn_dam
|
||||
return (health < (100 - odmg))
|
||||
|
||||
|
||||
@@ -268,20 +268,20 @@
|
||||
zone_sel.selecting = "chest"
|
||||
//arms
|
||||
if(prob((SNPC_FUZZY_CHANCE_LOW+SNPC_FUZZY_CHANCE_HIGH)/4))
|
||||
var/obj/item/organ/external/R = organs_by_name["r_arm"]
|
||||
var/obj/item/organ/external/R = bodyparts_by_name["r_arm"]
|
||||
if(R)
|
||||
R.robotize()
|
||||
else
|
||||
var/obj/item/organ/external/L = organs_by_name["l_arm"]
|
||||
var/obj/item/organ/external/L = bodyparts_by_name["l_arm"]
|
||||
if(L)
|
||||
L.robotize()
|
||||
//legs
|
||||
if(prob((SNPC_FUZZY_CHANCE_LOW+SNPC_FUZZY_CHANCE_HIGH)/4))
|
||||
var/obj/item/organ/external/R = organs_by_name["r_leg"]
|
||||
var/obj/item/organ/external/R = bodyparts_by_name["r_leg"]
|
||||
if(R)
|
||||
R.robotize()
|
||||
else
|
||||
var/obj/item/organ/external/L = organs_by_name["l_leg"]
|
||||
var/obj/item/organ/external/L = bodyparts_by_name["l_leg"]
|
||||
if(L)
|
||||
L.robotize()
|
||||
UpdateDamageIcon()
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/has_organ(name)
|
||||
var/obj/item/organ/external/O = organs_by_name[name]
|
||||
var/obj/item/organ/external/O = bodyparts_by_name[name]
|
||||
|
||||
return (O && !(O.status & ORGAN_DESTROYED) && !O.is_stump())
|
||||
|
||||
|
||||
@@ -255,8 +255,8 @@
|
||||
emote("gasp")
|
||||
updatehealth()
|
||||
|
||||
if(damage && organs.len)
|
||||
var/obj/item/organ/external/O = pick(organs)
|
||||
if(damage && bodyparts.len)
|
||||
var/obj/item/organ/external/O = pick(bodyparts)
|
||||
if(istype(O)) O.add_autopsy_data("Radiation Poisoning", damage)
|
||||
|
||||
/mob/living/carbon/human/breathe()
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
if(R.id == "milk")
|
||||
H.heal_overall_damage(4,4)
|
||||
if(prob(5)) // 5% chance per proc to find a random limb, and mend it
|
||||
var/list/our_organs = H.organs.Copy()
|
||||
var/list/our_organs = H.bodyparts.Copy()
|
||||
shuffle(our_organs)
|
||||
for(var/obj/item/organ/external/L in our_organs)
|
||||
if(istype(L))
|
||||
@@ -61,4 +61,4 @@
|
||||
H.say(pick("Thanks Mr Skeltal", "Thank for strong bones", "Doot doot!"))
|
||||
return 1
|
||||
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
@@ -184,20 +184,12 @@
|
||||
|
||||
/datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs.
|
||||
|
||||
for(var/obj/item/organ/internal/iorgan in H.internal_organs)
|
||||
if(iorgan in H.internal_organs)
|
||||
qdel(iorgan)
|
||||
QDEL_LIST(H.internal_organs)
|
||||
QDEL_LIST(H.bodyparts)
|
||||
|
||||
for(var/obj/item/organ/organ in H.contents)
|
||||
if(organ in H.organs)
|
||||
qdel(organ)
|
||||
|
||||
if(H.organs) H.organs.Cut()
|
||||
if(H.organs_by_name) H.organs_by_name.Cut()
|
||||
|
||||
H.organs = list()
|
||||
H.internal_organs = list()
|
||||
H.organs_by_name = list()
|
||||
LAZYREINITLIST(H.bodyparts)
|
||||
LAZYREINITLIST(H.bodyparts_by_name)
|
||||
LAZYREINITLIST(H.internal_organs)
|
||||
|
||||
for(var/limb_type in has_limbs)
|
||||
var/list/organ_data = has_limbs[limb_type]
|
||||
@@ -210,10 +202,10 @@
|
||||
// organ new code calls `insert` on its own
|
||||
new organ(H)
|
||||
|
||||
for(var/name in H.organs_by_name)
|
||||
H.organs |= H.organs_by_name[name]
|
||||
for(var/name in H.bodyparts_by_name)
|
||||
H.bodyparts |= H.bodyparts_by_name[name]
|
||||
|
||||
for(var/obj/item/organ/external/O in H.organs)
|
||||
for(var/obj/item/organ/external/O in H.bodyparts)
|
||||
O.owner = H
|
||||
|
||||
/datum/species/proc/handle_breath(var/datum/gas_mixture/breath, var/mob/living/carbon/human/H)
|
||||
@@ -551,7 +543,7 @@
|
||||
var/list/cached_overlays = H.healthdoll.cached_healthdoll_overlays
|
||||
// Use the dead health doll as the base, since we have proper "healthy" overlays now
|
||||
H.healthdoll.icon_state = "healthdoll_DEAD"
|
||||
for(var/obj/item/organ/external/O in H.organs)
|
||||
for(var/obj/item/organ/external/O in H.bodyparts)
|
||||
var/damage = O.burn_dam + O.brute_dam
|
||||
var/comparison = (O.max_damage/5)
|
||||
var/icon_num = 0
|
||||
|
||||
@@ -580,8 +580,8 @@
|
||||
H.g_skin = new_color_list[2]
|
||||
H.b_skin = new_color_list[3]
|
||||
if(world.time % SLIMEPERSON_ICON_UPDATE_PERIOD > SLIMEPERSON_ICON_UPDATE_PERIOD - 20) // The 20 is because this gets called every 2 seconds, from the mob controller
|
||||
for(var/organname in H.organs_by_name)
|
||||
var/obj/item/organ/external/E = H.organs_by_name[organname]
|
||||
for(var/organname in H.bodyparts_by_name)
|
||||
var/obj/item/organ/external/E = H.bodyparts_by_name[organname]
|
||||
if(istype(E) && E.dna.species == "Slime People")
|
||||
E.sync_colour_to_human(H)
|
||||
H.update_hair(0)
|
||||
@@ -634,13 +634,13 @@
|
||||
return
|
||||
|
||||
var/list/missing_limbs = list()
|
||||
for(var/l in organs_by_name)
|
||||
var/obj/item/organ/external/E = organs_by_name[l]
|
||||
for(var/l in bodyparts_by_name)
|
||||
var/obj/item/organ/external/E = bodyparts_by_name[l]
|
||||
if(!istype(E) || istype(E, /obj/item/organ/external/stump))
|
||||
var/list/limblist = species.has_limbs[l]
|
||||
var/obj/item/organ/external/limb = limblist["path"]
|
||||
var/parent_organ = initial(limb.parent_organ)
|
||||
var/obj/item/organ/external/parentLimb = organs_by_name[parent_organ]
|
||||
var/obj/item/organ/external/parentLimb = bodyparts_by_name[parent_organ]
|
||||
if(!istype(parentLimb) || parentLimb.is_stump())
|
||||
continue
|
||||
missing_limbs[initial(limb.name)] = l
|
||||
@@ -662,7 +662,7 @@
|
||||
to_chat(src, "<span class='warning'>You're too hungry to regenerate a limb!</span>")
|
||||
return
|
||||
|
||||
var/obj/item/organ/external/O = organs_by_name[chosen_limb]
|
||||
var/obj/item/organ/external/O = bodyparts_by_name[chosen_limb]
|
||||
|
||||
var/stored_brute = 0
|
||||
var/stored_burn = 0
|
||||
@@ -680,7 +680,7 @@
|
||||
var/limb_list = species.has_limbs[chosen_limb]
|
||||
var/obj/item/organ/external/limb_path = limb_list["path"]
|
||||
// Parent check
|
||||
var/obj/item/organ/external/potential_parent = organs_by_name[initial(limb_path.parent_organ)]
|
||||
var/obj/item/organ/external/potential_parent = bodyparts_by_name[initial(limb_path.parent_organ)]
|
||||
if(!istype(potential_parent) || potential_parent.is_stump())
|
||||
to_chat(src, "<span class='danger'>You've lost the organ that you've been growing your new part on!</span>")
|
||||
return // No rayman for you
|
||||
|
||||
@@ -171,7 +171,7 @@ var/global/list/damage_icon_parts = list()
|
||||
// first check whether something actually changed about damage appearance
|
||||
var/damage_appearance = ""
|
||||
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(O.is_stump())
|
||||
continue
|
||||
if(O.status & ORGAN_DESTROYED) damage_appearance += "d"
|
||||
@@ -189,7 +189,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/image/standing_image = new /image("icon" = standing)
|
||||
|
||||
// blend the individual damage states with our icons
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(O.is_stump())
|
||||
continue
|
||||
if(!(O.status & ORGAN_DESTROYED))
|
||||
@@ -240,7 +240,7 @@ var/global/list/damage_icon_parts = list()
|
||||
icon_key += "#000000"
|
||||
|
||||
for(var/organ_tag in species.has_limbs)
|
||||
var/obj/item/organ/external/part = organs_by_name[organ_tag]
|
||||
var/obj/item/organ/external/part = bodyparts_by_name[organ_tag]
|
||||
if(isnull(part) || part.is_stump() || (part.status & ORGAN_DESTROYED))
|
||||
icon_key += "0"
|
||||
else if(part.status & ORGAN_ROBOT)
|
||||
@@ -269,7 +269,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/obj/item/organ/external/chest = get_organ("chest")
|
||||
base_icon = chest.get_icon(skeleton)
|
||||
|
||||
for(var/obj/item/organ/external/part in organs)
|
||||
for(var/obj/item/organ/external/part in bodyparts)
|
||||
var/icon/temp = part.get_icon(skeleton)
|
||||
//That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST
|
||||
//And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part)
|
||||
@@ -1333,7 +1333,7 @@ var/global/list/damage_icon_parts = list()
|
||||
if(update_icons) update_icons()
|
||||
|
||||
/mob/living/carbon/human/proc/force_update_limbs()
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
O.sync_colour_to_human(src)
|
||||
update_body(0)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
// broken or ripped off organs will add quite a bit of pain
|
||||
if(istype(src,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/M = src
|
||||
for(var/obj/item/organ/external/organ in M.organs)
|
||||
for(var/obj/item/organ/external/organ in M.bodyparts)
|
||||
if(!organ)
|
||||
continue
|
||||
else if(organ.status & ORGAN_BROKEN || organ.open)
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
to_chat(user, "<span class='notice'>External prosthetics:</span>")
|
||||
var/organ_found
|
||||
if(H.internal_organs.len)
|
||||
for(var/obj/item/organ/external/E in H.organs)
|
||||
for(var/obj/item/organ/external/E in H.bodyparts)
|
||||
if(!(E.status & ORGAN_ROBOT))
|
||||
continue
|
||||
organ_found = 1
|
||||
|
||||
@@ -870,8 +870,8 @@ var/list/slot_equipment_priority = list( \
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(H.health <= config.health_threshold_softcrit)
|
||||
for(var/name in H.organs_by_name)
|
||||
var/obj/item/organ/external/e = H.organs_by_name[name]
|
||||
for(var/name in H.bodyparts_by_name)
|
||||
var/obj/item/organ/external/e = H.bodyparts_by_name[name]
|
||||
if(e && H.lying)
|
||||
if(((e.status & ORGAN_BROKEN && !(e.status & ORGAN_SPLINTED)) || e.status & ORGAN_BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100))
|
||||
return 1
|
||||
@@ -1117,7 +1117,7 @@ var/list/slot_equipment_priority = list( \
|
||||
var/mob/living/carbon/human/H = src
|
||||
var/obj/item/organ/external/affected
|
||||
|
||||
for(var/obj/item/organ/external/organ in H.organs) //Grab the organ holding the implant.
|
||||
for(var/obj/item/organ/external/organ in H.bodyparts) //Grab the organ holding the implant.
|
||||
for(var/obj/item/weapon/O in organ.implants)
|
||||
if(O == selection)
|
||||
affected = organ
|
||||
|
||||
@@ -352,7 +352,7 @@
|
||||
(affected.glasses && affected.glasses.flags_cover & GLASSESCOVERSEYES))
|
||||
to_chat(assailant, "<span class='danger'>You're going to need to remove the eye covering first.</span>")
|
||||
return
|
||||
if(!affected.internal_organs_by_name["eyes"])
|
||||
if(!affected.internal_bodyparts_by_name["eyes"])
|
||||
to_chat(assailant, "<span class='danger'>You cannot locate any eyes on [affecting]!</span>")
|
||||
return
|
||||
assailant.visible_message("<span class='danger'>[assailant] presses \his fingers into [affecting]'s eyes!</span>")
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/mob/living/carbon/human/isSynthetic()
|
||||
// If they are 100% robotic, they count as synthetic.
|
||||
for(var/obj/item/organ/external/E in organs)
|
||||
for(var/obj/item/organ/external/E in bodyparts)
|
||||
if(!(E.status & ORGAN_ROBOT))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
canmove = 0
|
||||
icon = null
|
||||
invisibility = 101
|
||||
for(var/t in organs)
|
||||
for(var/t in bodyparts)
|
||||
qdel(t)
|
||||
for(var/i in internal_organs)
|
||||
qdel(i)
|
||||
@@ -115,7 +115,7 @@
|
||||
canmove = 0
|
||||
icon = null
|
||||
invisibility = 101
|
||||
for(var/t in organs)
|
||||
for(var/t in bodyparts)
|
||||
qdel(t)
|
||||
|
||||
var/alien_caste = pick("Hunter","Sentinel","Drone")
|
||||
@@ -147,7 +147,7 @@
|
||||
canmove = 0
|
||||
icon = null
|
||||
invisibility = 101
|
||||
for(var/t in organs)
|
||||
for(var/t in bodyparts)
|
||||
qdel(t)
|
||||
|
||||
var/mob/living/carbon/slime/new_slime
|
||||
@@ -183,7 +183,7 @@
|
||||
canmove = 0
|
||||
icon = null
|
||||
invisibility = 101
|
||||
for(var/t in organs) //this really should not be necessary
|
||||
for(var/t in bodyparts) //this really should not be necessary
|
||||
qdel(t)
|
||||
|
||||
var/mob/living/simple_animal/pet/corgi/new_corgi = new /mob/living/simple_animal/pet/corgi (loc)
|
||||
@@ -212,7 +212,7 @@
|
||||
icon = null
|
||||
invisibility = 101
|
||||
|
||||
for(var/t in organs)
|
||||
for(var/t in bodyparts)
|
||||
qdel(t)
|
||||
|
||||
var/mob/new_mob = new mobpath(src.loc)
|
||||
@@ -252,7 +252,7 @@
|
||||
canmove = 0
|
||||
icon = null
|
||||
invisibility = 101
|
||||
for(var/t in organs) //this really should not be necessary
|
||||
for(var/t in bodyparts) //this really should not be necessary
|
||||
qdel(t)
|
||||
|
||||
var/obj/item/device/paicard/card = new(loc)
|
||||
|
||||
@@ -54,9 +54,9 @@
|
||||
/obj/item/weapon/paper_bin/attack_hand(mob/user as mob)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||
var/obj/item/organ/external/temp = H.bodyparts_by_name["r_hand"]
|
||||
if(H.hand)
|
||||
temp = H.organs_by_name["l_hand"]
|
||||
temp = H.bodyparts_by_name["l_hand"]
|
||||
if(temp && !temp.is_usable())
|
||||
to_chat(H, "<span class='notice'>You try to move your [temp.name], but cannot!")
|
||||
return
|
||||
|
||||
@@ -521,7 +521,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
|
||||
/obj/item/stack/cable_coil/attack(mob/M, mob/user)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting]
|
||||
var/obj/item/organ/external/S = H.bodyparts_by_name[user.zone_sel.selecting]
|
||||
|
||||
if(!S)
|
||||
return
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
target.adjustFireLoss(-4)
|
||||
if(ishuman(target))
|
||||
var/var/mob/living/carbon/human/H = target
|
||||
for(var/obj/item/organ/external/E in H.organs)
|
||||
for(var/obj/item/organ/external/E in H.bodyparts)
|
||||
if(prob(10))
|
||||
if(E.mend_fracture())
|
||||
E.perma_injury = 0
|
||||
|
||||
@@ -162,7 +162,7 @@ proc/wabbajack(mob/living/M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
// Make sure there are no organs or limbs to drop
|
||||
for(var/t in H.organs)
|
||||
for(var/t in H.bodyparts)
|
||||
qdel(t)
|
||||
for(var/i in H.internal_organs)
|
||||
qdel(i)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
for(var/name in H.internal_organs)
|
||||
var/obj/item/organ/internal/I = H.get_int_organ(name)
|
||||
I.damage = max(0, I.damage-5)
|
||||
for(var/obj/item/organ/external/E in H.organs)
|
||||
for(var/obj/item/organ/external/E in H.bodyparts)
|
||||
if(E.mend_fracture())
|
||||
E.perma_injury = 0
|
||||
M.SetEyeBlind(0)
|
||||
|
||||
@@ -652,7 +652,7 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/necrosis_prob = 40 * min((20 MINUTES), max((time_dead - (1 MINUTES)), 0)) / ((20 MINUTES) - (1 MINUTES))
|
||||
for(var/obj/item/organ/O in (H.organs | H.internal_organs))
|
||||
for(var/obj/item/organ/O in (H.bodyparts | H.internal_organs))
|
||||
// Per non-vital body part:
|
||||
// 0% chance of necrosis within 1 minute of death
|
||||
// 40% chance of necrosis after 20 minutes of death
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
if(ishuman(toucher))
|
||||
var/mob/living/carbon/human/H = toucher
|
||||
for(var/obj/item/organ/external/affecting in H.organs)
|
||||
for(var/obj/item/organ/external/affecting in H.bodyparts)
|
||||
if(affecting && istype(affecting))
|
||||
affecting.heal_damage(25 * weakness, 25 * weakness)
|
||||
//H:heal_organ_damage(25, 25)
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
user.visible_message("<span class='notice'>[user] has connected tendons and muscles in [target]'s [E.amputation_point] with [tool].</span>", \
|
||||
"<span class='notice'>You have connected tendons and muscles in [target]'s [E.amputation_point] with [tool].</span>")
|
||||
E.status &= ~ORGAN_DESTROYED
|
||||
var/obj/item/organ/external/stump = target.organs_by_name["limb stump"]
|
||||
var/obj/item/organ/external/stump = target.bodyparts_by_name["limb stump"]
|
||||
if(stump)
|
||||
stump.remove(target)
|
||||
if(E.children)
|
||||
@@ -248,7 +248,7 @@
|
||||
if(!organ_data)
|
||||
continue
|
||||
// This will break if there's more than one stump ever
|
||||
var/obj/item/organ/external/stump = target.organs_by_name["limb stump"]
|
||||
var/obj/item/organ/external/stump = target.bodyparts_by_name["limb stump"]
|
||||
if(stump)
|
||||
stump.remove(target)
|
||||
var/new_limb_type = organ_data["path"]
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
//Bleeding out
|
||||
var/blood_max = 0
|
||||
for(var/obj/item/organ/external/temp in organs)
|
||||
for(var/obj/item/organ/external/temp in bodyparts)
|
||||
if(!(temp.status & ORGAN_BLEEDING) || temp.status & ORGAN_ROBOT)
|
||||
continue
|
||||
for(var/datum/wound/W in temp.wounds)
|
||||
|
||||
@@ -43,6 +43,6 @@
|
||||
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 organs)
|
||||
for(var/obj/item/organ/external/O in bodyparts)
|
||||
if(limb_name == O.limb_name)
|
||||
return O
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
qdel(O)
|
||||
|
||||
if(owner)
|
||||
owner.organs_by_name[limb_name] = null
|
||||
owner.bodyparts_by_name[limb_name] = null
|
||||
|
||||
if(children)
|
||||
for(var/obj/item/organ/external/C in children)
|
||||
@@ -157,15 +157,15 @@
|
||||
status = status & ~ORGAN_DESTROYED
|
||||
forceMove(owner)
|
||||
if(istype(owner))
|
||||
if(!isnull(owner.organs_by_name[limb_name]))
|
||||
if(!isnull(owner.bodyparts_by_name[limb_name]))
|
||||
log_debug("Duplicate organ in slot \"[limb_name]\", mob '[target]'")
|
||||
owner.organs_by_name[limb_name] = src
|
||||
owner.organs |= src
|
||||
owner.bodyparts_by_name[limb_name] = src
|
||||
owner.bodyparts |= src
|
||||
for(var/atom/movable/stuff in src)
|
||||
stuff.attempt_become_organ(src, owner)
|
||||
|
||||
if(parent_organ)
|
||||
parent = owner.organs_by_name[src.parent_organ]
|
||||
parent = owner.bodyparts_by_name[src.parent_organ]
|
||||
if(parent)
|
||||
if(!parent.children)
|
||||
parent.children = list()
|
||||
@@ -726,7 +726,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(status & ORGAN_ROBOT)
|
||||
stump.robotize()
|
||||
stump.wounds |= W
|
||||
victim.organs |= stump
|
||||
victim.bodyparts |= stump
|
||||
stump.update_damages()
|
||||
parent = null
|
||||
|
||||
@@ -946,9 +946,9 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
thing.forceMove(src)
|
||||
|
||||
release_restraints(victim)
|
||||
victim.organs -= src
|
||||
victim.bodyparts -= src
|
||||
if(is_primary_organ(victim))
|
||||
victim.organs_by_name[limb_name] = null // Remove from owner's vars.
|
||||
victim.bodyparts_by_name[limb_name] = null // Remove from owner's vars.
|
||||
|
||||
//Robotic limbs explode if sabotaged.
|
||||
if(is_robotic && sabotaged)
|
||||
@@ -984,7 +984,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
O = owner
|
||||
if(!istype(O)) // You're not the primary organ of ANYTHING, bucko
|
||||
return 0
|
||||
return src == O.organs_by_name[limb_name]
|
||||
return src == O.bodyparts_by_name[limb_name]
|
||||
|
||||
// The callback we use to remove wounds from an un-processed limb
|
||||
/obj/item/organ/external/proc/cleanup_wounds(var/list/slated_wounds)
|
||||
|
||||
@@ -55,7 +55,7 @@ var/global/list/limb_icon_cache = list()
|
||||
|
||||
/obj/item/organ/external/head/sync_colour_to_human(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.get_int_organ(/obj/item/organ/internal/eyes)//owner.internal_organs_by_name["eyes"]
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.get_int_organ(/obj/item/organ/internal/eyes)//owner.internal_bodyparts_by_name["eyes"]
|
||||
if(eyes) eyes.update_colour()
|
||||
|
||||
/obj/item/organ/external/head/remove()
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
log_runtime(EXCEPTION("[src] attempted to insert into a [parent_organ], but [parent_organ] wasn't an organ! [atom_loc_line(M)]"), src)
|
||||
else
|
||||
parent.internal_organs |= src
|
||||
//M.internal_organs_by_name[src] |= src(H,1)
|
||||
//M.internal_bodyparts_by_name[src] |= src(H,1)
|
||||
loc = null
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
|
||||
@@ -92,7 +92,7 @@ mob/living/carbon/human/proc/handle_pain()
|
||||
return
|
||||
var/maxdam = 0
|
||||
var/obj/item/organ/external/damaged_organ = null
|
||||
for(var/obj/item/organ/external/E in organs)
|
||||
for(var/obj/item/organ/external/E in bodyparts)
|
||||
if(E.status & ORGAN_DEAD|ORGAN_ROBOT) continue
|
||||
var/dam = E.get_damage()
|
||||
// make the choice of the organ depend on damage,
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
/* /obj/item/organ/external/diona/removed()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
..()
|
||||
if(!istype(H) || !H.organs || !H.organs.len)
|
||||
if(!istype(H) || !H.bodyparts || !H.bodyparts.len)
|
||||
H.death()
|
||||
if(prob(50) && spawn_diona_nymph_from_organ(src))
|
||||
qdel(src) */
|
||||
@@ -141,7 +141,7 @@
|
||||
/*/obj/item/organ/diona/removed(var/mob/living/user)
|
||||
var/mob/living/carbon/human/H = owner
|
||||
..()
|
||||
if(!istype(H) || !H.organs || !H.organs.len)
|
||||
if(!istype(H) || !H.bodyparts || !H.bodyparts.len)
|
||||
H.death()
|
||||
if(prob(50) && spawn_diona_nymph_from_organ(src))
|
||||
qdel(src) */
|
||||
|
||||
Reference in New Issue
Block a user