mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
[MIRROR] Refactors Regenerate Organs, and a few organ helpers [MDB IGNORE] (#20094)
* Refactors Regenerate Organs, and a few organ helpers * MERGE CONFLICTS * GETORGANSLOT > GET_ORGAN_SLOT * GETORGAN > get_organ_by_type * lint repairs * more lint * Update tgstation.dme * Update surgery_step.dm --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
This commit is contained in:
co-authored by
Zephyr
Gandalf
parent
3c4c1ade1e
commit
3464b6bfb2
@@ -23,7 +23,7 @@
|
||||
victim.Stun(100)
|
||||
victim.adjust_stutter(30 SECONDS)
|
||||
victim.set_jitter_if_lower(1000 SECONDS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
ears?.adjustEarDamage(10, 15)
|
||||
to_chat(victim, "<font color='red' size='8'>HONK</font>")
|
||||
var/obj/item/clothing/shoes/victim_shoes = victim.get_item_by_slot(ITEM_SLOT_FEET)
|
||||
@@ -35,13 +35,13 @@
|
||||
victim.Paralyze(20)
|
||||
victim.Stun(50)
|
||||
victim.set_jitter_if_lower(500 SECONDS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
ears?.adjustEarDamage(7, 10)
|
||||
to_chat(victim, "<font color='red' size='5'>HONK</font>")
|
||||
|
||||
for(var/mob/living/carbon/victim in lightly_honked)
|
||||
victim.Knockdown(20)
|
||||
victim.set_jitter_if_lower(200 SECONDS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = victim.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
ears?.adjustEarDamage(4, 5)
|
||||
to_chat(victim, "<font color='red' size='2'>HONK</font>")
|
||||
|
||||
@@ -347,7 +347,7 @@ Versioning
|
||||
"lakey" = L.lastattackerckey,
|
||||
"brute" = L.getBruteLoss(),
|
||||
"fire" = L.getFireLoss(),
|
||||
"brain" = L.getOrganLoss(ORGAN_SLOT_BRAIN) || BRAIN_DAMAGE_DEATH, //getOrganLoss returns null without a brain but a value is required for this column
|
||||
"brain" = L.get_organ_loss(ORGAN_SLOT_BRAIN) || BRAIN_DAMAGE_DEATH, //get_organ_loss returns null without a brain but a value is required for this column
|
||||
"oxy" = L.getOxyLoss(),
|
||||
"tox" = L.getToxLoss(),
|
||||
"clone" = L.getCloneLoss(),
|
||||
|
||||
@@ -327,7 +327,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
|
||||
iter_human.increment_scar_slot()
|
||||
iter_human.load_persistent_scars()
|
||||
SSpersistence.load_modular_persistence(iter_human.getorganslot(ORGAN_SLOT_BRAIN)) // SKYRAT EDIT ADDITION - MODULAR_PERSISTENCE
|
||||
SSpersistence.load_modular_persistence(iter_human.get_organ_slot(ORGAN_SLOT_BRAIN)) // SKYRAT EDIT ADDITION - MODULAR_PERSISTENCE
|
||||
|
||||
if(!iter_human.hardcore_survival_score)
|
||||
continue
|
||||
|
||||
@@ -94,7 +94,7 @@ have ways of interacting with a specific mob and control it.
|
||||
|
||||
/datum/ai_controller/monkey/proc/set_trip_mode(mode = TRUE)
|
||||
var/mob/living/carbon/regressed_monkey = pawn
|
||||
var/brain = regressed_monkey.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/brain = regressed_monkey.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(istype(brain, /obj/item/organ/internal/brain/primate)) // In case we are a monkey AI in a human brain by who was previously controlled by a client but it now not by some marvel
|
||||
var/obj/item/organ/internal/brain/primate/monkeybrain = brain
|
||||
monkeybrain.tripping = mode
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
// For carbonss we also want to clear out the stomach of any holywater
|
||||
if(iscarbon(target))
|
||||
var/mob/living/carbon/carbon_target = target
|
||||
var/obj/item/organ/internal/stomach/belly = carbon_target.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/belly = carbon_target.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(belly)
|
||||
holy_to_unholy += belly.reagents.get_reagent_amount(/datum/reagent/water/holywater)
|
||||
belly.reagents.del_reagent(/datum/reagent/water/holywater)
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
tox_loss = L.getToxLoss()
|
||||
oxy_loss = L.getOxyLoss()
|
||||
stamina_loss = L.getStaminaLoss()
|
||||
brain_loss = L.getOrganLoss(ORGAN_SLOT_BRAIN)
|
||||
brain_loss = L.get_organ_loss(ORGAN_SLOT_BRAIN)
|
||||
rewind_type = PROC_REF(rewind_living)
|
||||
|
||||
if(iscarbon(parent))
|
||||
|
||||
@@ -442,7 +442,7 @@ Behavior that's still missing from this component that original food items had t
|
||||
//Invoke the eater's stomach's after_eat callback if valid
|
||||
if(iscarbon(eater))
|
||||
var/mob/living/carbon/carbon_eater = eater
|
||||
var/obj/item/organ/internal/stomach/stomach = carbon_eater.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/stomach = carbon_eater.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(istype(stomach))
|
||||
stomach.after_eat(owner)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
var/mob/living/carbon/C = parent
|
||||
E = C.getorganslot(ORGAN_SLOT_EYES)
|
||||
E = C.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
|
||||
if(E)
|
||||
START_PROCESSING(SSdcs, src)
|
||||
@@ -60,7 +60,7 @@
|
||||
to_chat(C, span_userdanger("Your eyes begin to wither, you need to blink!"))
|
||||
warn_dying = TRUE
|
||||
|
||||
E.applyOrganDamage(damage_rate)
|
||||
E.apply_organ_damage(damage_rate)
|
||||
else if(world.time > (last_blink + check_every))
|
||||
if(!warn_grace)
|
||||
to_chat(C, span_danger("You feel a need to blink!"))
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
var/mob/living/carbon/C = parent
|
||||
L = C.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
L = C.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
|
||||
if(L)
|
||||
START_PROCESSING(SSdcs, src)
|
||||
@@ -61,7 +61,7 @@
|
||||
to_chat(C, span_userdanger("You begin to suffocate, you need to [next_text]!"))
|
||||
warn_dying = TRUE
|
||||
|
||||
L.applyOrganDamage(damage_rate)
|
||||
L.apply_organ_damage(damage_rate)
|
||||
C.losebreath += 0.8
|
||||
else if(world.time > (last_breath + check_every))
|
||||
if(!warn_grace)
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
var/mob/living/carbon/human/lich = new(parent_turf)
|
||||
ADD_TRAIT(lich, TRAIT_NO_SOUL, LICH_TRAIT)
|
||||
|
||||
var/obj/item/organ/internal/brain/new_lich_brain = lich.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/new_lich_brain = lich.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(new_lich_brain) // Prevent MMI cheese
|
||||
new_lich_brain.organ_flags &= ~ORGAN_VITAL
|
||||
new_lich_brain.decoy_override = TRUE
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
SIGNAL_HANDLER
|
||||
|
||||
var/mob/living/carbon/carbon_parent = parent
|
||||
var/obj/item/organ/internal/tongue/tongue = carbon_parent.getorganslot(ORGAN_SLOT_TONGUE)
|
||||
var/obj/item/organ/internal/tongue/tongue = carbon_parent.get_organ_slot(ORGAN_SLOT_TONGUE)
|
||||
if(tongue)
|
||||
tongue.temp_say_mod = "signs"
|
||||
//this speech relies on hands, which we have our own way of garbling speech when they're occupied, so we can have this always on
|
||||
@@ -93,7 +93,7 @@
|
||||
SIGNAL_HANDLER
|
||||
|
||||
var/mob/living/carbon/carbon_parent = parent
|
||||
var/obj/item/organ/internal/tongue/tongue = carbon_parent.getorganslot(ORGAN_SLOT_TONGUE)
|
||||
var/obj/item/organ/internal/tongue/tongue = carbon_parent.get_organ_slot(ORGAN_SLOT_TONGUE)
|
||||
if(tongue)
|
||||
tongue.temp_say_mod = ""
|
||||
REMOVE_TRAIT(carbon_parent, TRAIT_SPEAKS_CLEARLY, SPEAKING_FROM_HANDS)
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/tongue/licking_tongue = user.getorganslot(ORGAN_SLOT_TONGUE)
|
||||
var/obj/item/organ/internal/tongue/licking_tongue = user.get_organ_slot(ORGAN_SLOT_TONGUE)
|
||||
if(licking_tongue)
|
||||
dust_mob(source, user,
|
||||
span_danger("As [user] hesitantly leans in and licks [atom_source] everything goes silent before [user.p_their()] body starts to glow and burst into flames before flashing to ash!"),
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
defense_mod += 2
|
||||
|
||||
|
||||
var/obj/item/organ/external/tail/lizard/el_tail = tackle_target.getorganslot(ORGAN_SLOT_EXTERNAL_TAIL)
|
||||
var/obj/item/organ/external/tail/lizard/el_tail = tackle_target.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL)
|
||||
if(HAS_TRAIT(tackle_target, TRAIT_TACKLING_TAILED_DEFENDER) && !el_tail)
|
||||
defense_mod -= 1
|
||||
if(el_tail && (el_tail.wag_flags & WAG_WAGGING)) // lizard tail wagging is robust and can swat away assailants!
|
||||
@@ -319,10 +319,10 @@
|
||||
attack_mod += 2
|
||||
|
||||
if(HAS_TRAIT(sacker, TRAIT_TACKLING_WINGED_ATTACKER))
|
||||
var/obj/item/organ/external/wings/moth/sacker_moth_wing = sacker.getorganslot(ORGAN_SLOT_EXTERNAL_WINGS)
|
||||
var/obj/item/organ/external/wings/moth/sacker_moth_wing = sacker.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS)
|
||||
if(!sacker_moth_wing || sacker_moth_wing.burnt)
|
||||
attack_mod -= 2
|
||||
var/obj/item/organ/external/wings/sacker_wing = sacker.getorganslot(ORGAN_SLOT_EXTERNAL_WINGS)
|
||||
var/obj/item/organ/external/wings/sacker_wing = sacker.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS)
|
||||
if(sacker_wing)
|
||||
attack_mod += 2
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
if(!.)
|
||||
return
|
||||
var/mob/living/carbon/infected_mob = A.affected_mob
|
||||
var/obj/item/organ/internal/ears/ears = infected_mob.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = infected_mob.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
if(!ears)
|
||||
return //cutting off your ears to cure the deafness: the ultimate own
|
||||
switch(A.stage)
|
||||
@@ -55,7 +55,7 @@
|
||||
if(ears.damage < ears.maxHealth)
|
||||
to_chat(infected_mob, span_userdanger("Your ears pop painfully and start bleeding!"))
|
||||
// Just absolutely murder me man
|
||||
ears.applyOrganDamage(ears.maxHealth)
|
||||
ears.apply_organ_damage(ears.maxHealth)
|
||||
infected_mob.emote("scream")
|
||||
ADD_TRAIT(infected_mob, TRAIT_DEAF, DISEASE_TRAIT)
|
||||
else
|
||||
|
||||
@@ -91,18 +91,18 @@
|
||||
var/mob/living/carbon/ill_mob = source_disease.affected_mob
|
||||
switch(source_disease.stage)
|
||||
if(4, 5)
|
||||
var/obj/item/organ/internal/ears/ears = ill_mob.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = ill_mob.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
if(ears)
|
||||
ears.adjustEarDamage(-4, -4)
|
||||
|
||||
ill_mob.adjust_temp_blindness(-4 SECONDS)
|
||||
ill_mob.adjust_eye_blur(-4 SECONDS)
|
||||
|
||||
var/obj/item/organ/internal/eyes/eyes = ill_mob.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = ill_mob.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!eyes) // only dealing with eye stuff from here on out
|
||||
return
|
||||
|
||||
eyes.applyOrganDamage(-2)
|
||||
eyes.apply_organ_damage(-2)
|
||||
if(prob(20))
|
||||
if(ill_mob.is_blind_from(EYE_DAMAGE))
|
||||
to_chat(ill_mob, span_warning("Your vision slowly returns..."))
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
if(!.)
|
||||
return
|
||||
var/mob/living/carbon/ill_mob = source_disease.affected_mob
|
||||
var/obj/item/organ/internal/eyes/eyes = ill_mob.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = ill_mob.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!eyes)
|
||||
return // can't do much
|
||||
|
||||
@@ -53,15 +53,15 @@
|
||||
if(3, 4)
|
||||
to_chat(ill_mob, span_boldwarning("Your eyes burn!"))
|
||||
ill_mob.set_eye_blur_if_lower(20 SECONDS)
|
||||
eyes.applyOrganDamage(1)
|
||||
eyes.apply_organ_damage(1)
|
||||
|
||||
else
|
||||
ill_mob.set_eye_blur_if_lower(40 SECONDS)
|
||||
eyes.applyOrganDamage(5)
|
||||
eyes.apply_organ_damage(5)
|
||||
|
||||
// Applies nearsighted at minimum
|
||||
if(!ill_mob.is_nearsighted_from(EYE_DAMAGE) && eyes.damage <= eyes.low_threshold)
|
||||
eyes.setOrganDamage(eyes.low_threshold)
|
||||
eyes.set_organ_damage(eyes.low_threshold)
|
||||
|
||||
if(prob(eyes.damage - eyes.low_threshold + 1))
|
||||
if(remove_eyes)
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
else if(!ill_mob.is_blind_from(EYE_DAMAGE))
|
||||
to_chat(ill_mob, span_userdanger("You go blind!"))
|
||||
eyes.applyOrganDamage(eyes.maxHealth)
|
||||
eyes.apply_organ_damage(eyes.maxHealth)
|
||||
|
||||
else
|
||||
to_chat(ill_mob, span_userdanger("Your eyes burn horrifically!"))
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if(!.)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/liver/affected_liver = affected_mob.getorgan(/obj/item/organ/internal/liver)
|
||||
var/obj/item/organ/internal/liver/affected_liver = affected_mob.get_organ_by_type(/obj/item/organ/internal/liver)
|
||||
if(!affected_liver)
|
||||
affected_mob.visible_message(span_notice("<B>[affected_mob]'s liver is covered in tiny larva! They quickly shrivel and die after being exposed to the open air.</B>"))
|
||||
cure()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
var/mob/living/carbon/human/human_pawn = source_controller.pawn
|
||||
//make current organs noticable
|
||||
for(var/organ_slot_key in noticable_organ_examines)
|
||||
var/obj/item/organ/found = human_pawn.getorganslot(organ_slot_key)
|
||||
var/obj/item/organ/found = human_pawn.get_organ_slot(organ_slot_key)
|
||||
if(!found)
|
||||
continue
|
||||
make_organ_noticable(organ_slot_key, found, human_pawn)
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
/datum/element/earhealing/process(delta_time)
|
||||
for(var/i in user_by_item)
|
||||
var/mob/living/carbon/user = user_by_item[i]
|
||||
var/obj/item/organ/internal/ears/ears = user.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = user.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
if(!ears || !ears.damage || ears.organ_flags & ORGAN_FAILING)
|
||||
continue
|
||||
ears.deaf = max(ears.deaf - 0.25 * delta_time, (ears.damage < ears.maxHealth ? 0 : 1)) // Do not clear deafness if our ears are too damaged
|
||||
ears.applyOrganDamage(-0.025 * delta_time)
|
||||
ears.apply_organ_damage(-0.025 * delta_time)
|
||||
CHECK_TICK
|
||||
|
||||
@@ -89,12 +89,12 @@
|
||||
|
||||
log_combat(user, target, "attacked", "[item.name]", "(Combat mode: [user.combat_mode ? "On" : "Off"])")
|
||||
|
||||
var/obj/item/organ/internal/eyes/eyes = target.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = target.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if (!eyes)
|
||||
return
|
||||
|
||||
target.adjust_eye_blur_up_to(6 SECONDS, EYESTAB_MAX_BLUR)
|
||||
eyes.applyOrganDamage(rand(2, 4))
|
||||
eyes.apply_organ_damage(rand(2, 4))
|
||||
|
||||
if(eyes.damage < EYESTAB_BLEEDING_THRESHOLD)
|
||||
return
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
// At over 10 damage, we cause at least enough eye damage to force nearsightedness
|
||||
if (!target.is_nearsighted_from(EYE_DAMAGE) && eyes.damage <= eyes.low_threshold)
|
||||
eyes.setOrganDamage(eyes.low_threshold)
|
||||
eyes.set_organ_damage(eyes.low_threshold)
|
||||
|
||||
// At over 10 damage, there is a 50% chance they drop all their items
|
||||
if (prob(50))
|
||||
@@ -119,7 +119,7 @@
|
||||
// At over 10 damage, there is a chance (based on eye damage) of going blind
|
||||
if (prob(eyes.damage - eyes.low_threshold + 1))
|
||||
if (!target.is_blind_from(EYE_DAMAGE))
|
||||
eyes.setOrganDamage(eyes.maxHealth)
|
||||
eyes.set_organ_damage(eyes.maxHealth)
|
||||
// Also cause some temp blindness, so that they're still blind even if they get healed
|
||||
target.adjust_temp_blindness_up_to(20 SECONDS, 1 MINUTES)
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
var/selected_zone = user.zone_selected
|
||||
var/obj/item/bodypart/leg/right = target.get_bodypart(BODY_ZONE_R_LEG)
|
||||
var/obj/item/bodypart/leg/left = target.get_bodypart(BODY_ZONE_L_LEG)
|
||||
var/obj/item/organ/internal/brain/target_brain = target.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
|
||||
if(!ishuman(target))
|
||||
return
|
||||
|
||||
@@ -313,7 +313,7 @@
|
||||
var/mob/living/carbon/human/loud_mouth = user
|
||||
if(HAS_TRAIT(loud_mouth, TRAIT_MIMING)) // vow of silence prevents outloud noises
|
||||
return FALSE
|
||||
if(!loud_mouth.getorganslot(ORGAN_SLOT_TONGUE))
|
||||
if(!loud_mouth.get_organ_slot(ORGAN_SLOT_TONGUE))
|
||||
return FALSE
|
||||
|
||||
if(only_forced_audio && intentional)
|
||||
|
||||
@@ -490,17 +490,17 @@
|
||||
|
||||
if(new_stat != HARD_CRIT)
|
||||
return
|
||||
var/list/organs = owner.getorganszone(BODY_ZONE_HEAD, TRUE)
|
||||
var/list/organs = owner.get_organs_for_zone(BODY_ZONE_HEAD, TRUE)
|
||||
|
||||
for(var/obj/item/organ/I in organs)
|
||||
qdel(I)
|
||||
|
||||
explosion(owner, light_impact_range = 2, adminlog = TRUE, explosion_cause = src)
|
||||
for(var/mob/living/carbon/human/splashed in view(2, owner))
|
||||
var/obj/item/organ/internal/eyes/eyes = splashed.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = splashed.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(eyes)
|
||||
to_chat(splashed, span_userdanger("You are blinded by a shower of blood!"))
|
||||
eyes.applyOrganDamage(5)
|
||||
eyes.apply_organ_damage(5)
|
||||
else
|
||||
to_chat(splashed, span_userdanger("You are knocked down by a wave of... blood?!"))
|
||||
splashed.Stun(2 SECONDS)
|
||||
@@ -523,7 +523,7 @@
|
||||
. = ..()
|
||||
if(.)//cant add
|
||||
return TRUE
|
||||
var/obj/item/organ/internal/brain/brain = owner.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(brain)
|
||||
brain.zone = BODY_ZONE_CHEST
|
||||
|
||||
@@ -541,7 +541,7 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
return TRUE
|
||||
var/obj/item/organ/internal/brain/brain = owner.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(brain) //so this doesn't instantly kill you. we could delete the brain, but it lets people cure brain issues they /really/ shouldn't be
|
||||
brain.zone = BODY_ZONE_HEAD
|
||||
UnregisterSignal(owner, COMSIG_ATTEMPT_CARBON_ATTACH_LIMB)
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
return
|
||||
|
||||
var/mob/living/carbon/possible_throwable = user.pulling
|
||||
if(!possible_throwable.getorganslot(ORGAN_SLOT_EXTERNAL_TAIL))
|
||||
if(!possible_throwable.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL))
|
||||
return
|
||||
|
||||
if(ishuman(possible_throwable))
|
||||
|
||||
@@ -873,7 +873,7 @@
|
||||
. = ..()
|
||||
quirk_holder.add_mob_memory(/datum/memory/key/quirk_smoker, protagonist = quirk_holder, preferred_brand = initial(drug_container_type.name))
|
||||
// smoker lungs have 25% less health and healing
|
||||
var/obj/item/organ/internal/lungs/smoker_lungs = quirk_holder.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
var/obj/item/organ/internal/lungs/smoker_lungs = quirk_holder.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
if (smoker_lungs && !(smoker_lungs.organ_flags & ORGAN_SYNTHETIC)) // robotic lungs aren't affected
|
||||
smoker_lungs.maxHealth = smoker_lungs.maxHealth * 0.75
|
||||
smoker_lungs.healing_factor = smoker_lungs.healing_factor * 0.75
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
human_holder.eye_color_heterochromatic = TRUE
|
||||
human_holder.eye_color_right = color
|
||||
|
||||
var/obj/item/organ/internal/eyes/eyes_of_the_holder = quirk_holder.getorgan(/obj/item/organ/internal/eyes)
|
||||
var/obj/item/organ/internal/eyes/eyes_of_the_holder = quirk_holder.get_organ_by_type(/obj/item/organ/internal/eyes)
|
||||
if(!eyes_of_the_holder)
|
||||
return
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
|
||||
/datum/quirk/night_vision/proc/refresh_quirk_holder_eyes()
|
||||
var/mob/living/carbon/human/human_quirk_holder = quirk_holder
|
||||
var/obj/item/organ/internal/eyes/eyes = human_quirk_holder.getorgan(/obj/item/organ/internal/eyes)
|
||||
var/obj/item/organ/internal/eyes/eyes = human_quirk_holder.get_organ_by_type(/obj/item/organ/internal/eyes)
|
||||
if(!eyes || eyes.lighting_cutoff)
|
||||
return
|
||||
// We've either added or removed TRAIT_NIGHT_VISION before calling this proc. Just refresh the eyes.
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
/datum/saymode/vocalcords/handle_message(mob/living/user, message, datum/language/language)
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
var/obj/item/organ/internal/vocal_cords/V = C.getorganslot(ORGAN_SLOT_VOICE)
|
||||
var/obj/item/organ/internal/vocal_cords/V = C.get_organ_slot(ORGAN_SLOT_VOICE)
|
||||
if(V?.can_speak_with())
|
||||
V.handle_speech(message) //message
|
||||
V.speak_with(message) //action
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
// Handle the Ballmer Peak.
|
||||
// If our owner is a scientist (has the trait "TRAIT_BALLMER_SCIENTIST"), there's a 5% chance
|
||||
// that they'll say one of the special "ballmer message" lines, depending their drunk-ness level.
|
||||
var/obj/item/organ/internal/liver/liver_organ = owner.getorganslot(ORGAN_SLOT_LIVER)
|
||||
var/obj/item/organ/internal/liver/liver_organ = owner.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(liver_organ && HAS_TRAIT(liver_organ, TRAIT_BALLMER_SCIENTIST) && prob(5))
|
||||
if(drunk_value >= BALLMER_PEAK_LOW_END && drunk_value <= BALLMER_PEAK_HIGH_END)
|
||||
owner.say(pick_list_replacements(VISTA_FILE, "ballmer_good_msg"), forced = "ballmer")
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/datum/status_effect/strandling/proc/on_breathe(mob/living/source)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(source.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
if(source.get_organ_slot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
return
|
||||
|
||||
source.losebreath++
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
if(user.is_mouth_covered())
|
||||
to_chat(user, span_warning("Your mouth is covered, you can't lick [victim]'s wounds!"))
|
||||
return
|
||||
if(!user.getorganslot(ORGAN_SLOT_TONGUE))
|
||||
if(!user.get_organ_slot(ORGAN_SLOT_TONGUE))
|
||||
to_chat(user, span_warning("You can't lick wounds without a tongue!")) // f in chat
|
||||
return
|
||||
|
||||
|
||||
@@ -807,7 +807,7 @@
|
||||
candidates = living_players
|
||||
for(var/mob/living/carbon/human/candidate in candidates)
|
||||
if( \
|
||||
!candidate.getorgan(/obj/item/organ/internal/brain) \
|
||||
!candidate.get_organ_by_type(/obj/item/organ/internal/brain) \
|
||||
|| candidate.mind.has_antag_datum(/datum/antagonist/obsessed) \
|
||||
|| candidate.stat == DEAD \
|
||||
|| !(ROLE_OBSESSED in candidate.client?.prefs?.be_special) \
|
||||
|
||||
@@ -317,7 +317,7 @@ GLOBAL_LIST_EMPTY(objectives) //SKYRAT EDIT ADDITION
|
||||
/datum/objective/protect/check_completion()
|
||||
var/obj/item/organ/internal/brain/brain_target
|
||||
if(human_check)
|
||||
brain_target = target.current?.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
brain_target = target.current?.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
//Protect will always suceed when someone suicides
|
||||
return !target || (target.current && HAS_TRAIT(target.current, TRAIT_SUICIDED)) || considered_alive(target, enforce_human = human_check) || (brain_target && HAS_TRAIT(brain_target, TRAIT_SUICIDED))
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
var/list/obj/item/organ/potential_new_organs = infusing_into.output_organs.Copy()
|
||||
// Remove organ typepaths from the list if they're incompatible with target.
|
||||
for(var/obj/item/organ/new_organ as anything in infusing_into.output_organs)
|
||||
var/obj/item/organ/old_organ = target.getorganslot(initial(new_organ.slot))
|
||||
var/obj/item/organ/old_organ = target.get_organ_slot(initial(new_organ.slot))
|
||||
if(old_organ)
|
||||
if((old_organ.type != new_organ) && (old_organ.status != ORGAN_ROBOTIC))
|
||||
continue // Old organ can be mutated!
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
|
||||
var/trauma_status = "Patient is free of unique brain trauma."
|
||||
var/clone_loss = patient.getCloneLoss()
|
||||
var/brain_loss = patient.getOrganLoss(ORGAN_SLOT_BRAIN)
|
||||
var/brain_loss = patient.get_organ_loss(ORGAN_SLOT_BRAIN)
|
||||
var/brain_status = "Brain patterns normal."
|
||||
if(LAZYLEN(patient.get_traumas()))
|
||||
var/list/trauma_text = list()
|
||||
@@ -264,7 +264,7 @@
|
||||
chemical_list += list(list("name" = reagent.name, "volume" = round(reagent.volume, 0.01)))
|
||||
if(reagent.overdosed)
|
||||
overdose_list += list(list("name" = reagent.name))
|
||||
var/obj/item/organ/internal/stomach/belly = patient.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/belly = patient.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(belly?.reagents.reagent_list.len) //include the stomach contents if it exists
|
||||
for(var/bile in belly.reagents.reagent_list)
|
||||
var/datum/reagent/bit = bile
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
if(is_species(H, scan_species))
|
||||
beep = TRUE
|
||||
if(detect_species == SCANGATE_ZOMBIE) //Can detect dormant zombies
|
||||
if(H.getorganslot(ORGAN_SLOT_ZOMBIE))
|
||||
if(H.get_organ_slot(ORGAN_SLOT_ZOMBIE))
|
||||
beep = TRUE
|
||||
if(SCANGATE_GUNS)
|
||||
for(var/I in M.get_contents())
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
data["occupant"]["toxLoss"] = mob_occupant.getToxLoss()
|
||||
data["occupant"]["fireLoss"] = mob_occupant.getFireLoss()
|
||||
data["occupant"]["cloneLoss"] = mob_occupant.getCloneLoss()
|
||||
data["occupant"]["brainLoss"] = mob_occupant.getOrganLoss(ORGAN_SLOT_BRAIN)
|
||||
data["occupant"]["brainLoss"] = mob_occupant.get_organ_loss(ORGAN_SLOT_BRAIN)
|
||||
data["occupant"]["reagents"] = list()
|
||||
if(mob_occupant.reagents && mob_occupant.reagents.reagent_list.len)
|
||||
for(var/datum/reagent/R in mob_occupant.reagents.reagent_list)
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/item/airlock_painter/suicide_act(mob/living/user)
|
||||
var/obj/item/organ/internal/lungs/L = user.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
var/obj/item/organ/internal/lungs/L = user.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
|
||||
if(can_use(user) && L)
|
||||
user.visible_message(span_suicide("[user] is inhaling toner from [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
|
||||
@@ -336,7 +336,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
return
|
||||
|
||||
reagents.expose(smoker, INGEST, min(to_smoke / reagents.total_volume, 1))
|
||||
var/obj/item/organ/internal/lungs/lungs = smoker.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
var/obj/item/organ/internal/lungs/lungs = smoker.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
if(lungs && !(lungs.organ_flags & ORGAN_SYNTHETIC))
|
||||
var/smoker_resistance = HAS_TRAIT(smoker, TRAIT_SMOKER) ? 0.5 : 1
|
||||
smoker.adjustOrganLoss(ORGAN_SLOT_LUNGS, lung_harm*smoker_resistance)
|
||||
|
||||
@@ -583,7 +583,7 @@
|
||||
if(do_after(user, 3 SECONDS, H, extra_checks = CALLBACK(src, PROC_REF(is_wielded)))) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
user.visible_message(span_notice("[user] places [src] on [H]'s chest."), span_warning("You place [src] on [H]'s chest."))
|
||||
playsound(src, 'sound/machines/defib_charge.ogg', 75, FALSE)
|
||||
var/obj/item/organ/internal/heart = H.getorgan(/obj/item/organ/internal/heart)
|
||||
var/obj/item/organ/internal/heart = H.get_organ_by_type(/obj/item/organ/internal/heart)
|
||||
if(do_after(user, 2 SECONDS, H, extra_checks = CALLBACK(src, PROC_REF(is_wielded)))) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
|
||||
if((!combat && !req_defib) || (req_defib && !defib.combat))
|
||||
for(var/obj/item/clothing/C in H.get_equipped_items())
|
||||
@@ -657,7 +657,7 @@
|
||||
log_combat(user, H, "revived", defib)
|
||||
do_success()
|
||||
return
|
||||
else if (!H.getorgan(/obj/item/organ/internal/heart))
|
||||
else if (!H.get_organ_by_type(/obj/item/organ/internal/heart))
|
||||
user.visible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Patient's heart is missing. Operation aborted."))
|
||||
playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE)
|
||||
else if(H.undergoing_cardiac_arrest())
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
to_chat(user, span_warning("You're going to need to remove that [(M.head && M.head.flags_cover & HEADCOVERSEYES) ? "helmet" : (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSEYES) ? "mask": "glasses"] first!"))
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/eyes/E = M.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/E = M.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!E)
|
||||
to_chat(user, span_warning("[M] doesn't have any eyes!"))
|
||||
return
|
||||
@@ -645,7 +645,7 @@
|
||||
if(!fuel)
|
||||
user.visible_message(span_suicide("[user] is trying to squirt [src]'s fluids into [user.p_their()] eyes... but it's empty!"))
|
||||
return SHAME
|
||||
var/obj/item/organ/internal/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = user.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!eyes)
|
||||
user.visible_message(span_suicide("[user] is trying to squirt [src]'s fluids into [user.p_their()] eyes... but [user.p_they()] don't have any!"))
|
||||
return SHAME
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
render_list += "<span class='alert ml-1'>Cellular damage level: [target.getCloneLoss()].</span>\n"
|
||||
else
|
||||
render_list += "<span class='alert ml-1'>Subject appears to have [target.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.</span>\n"
|
||||
if (!target.getorganslot(ORGAN_SLOT_BRAIN)) // kept exclusively for soul purposes
|
||||
if (!target.get_organ_slot(ORGAN_SLOT_BRAIN)) // kept exclusively for soul purposes
|
||||
render_list += "<span class='alert ml-1'>Subject lacks a brain.</span>\n"
|
||||
|
||||
if(iscarbon(target))
|
||||
@@ -198,7 +198,7 @@
|
||||
var/mob/living/carbon/carbontarget = target
|
||||
|
||||
// Ear status
|
||||
var/obj/item/organ/internal/ears/ears = carbontarget.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = carbontarget.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
if(istype(ears))
|
||||
if(HAS_TRAIT_FROM(carbontarget, TRAIT_DEAF, GENETIC_MUTATION))
|
||||
render_list = "<span class='alert ml-2'>Subject is genetically deaf.\n</span>"
|
||||
@@ -213,7 +213,7 @@
|
||||
render_list += "<span class='alert ml-2'>Subject is [ears.damage > ears.maxHealth ? "permanently ": "temporarily "] deaf.\n</span>"
|
||||
|
||||
// Eye status
|
||||
var/obj/item/organ/internal/eyes/eyes = carbontarget.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = carbontarget.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(istype(eyes))
|
||||
if(carbontarget.is_blind())
|
||||
render_list += "<span class='alert ml-2'>Subject is blind.\n</span>"
|
||||
@@ -271,21 +271,21 @@
|
||||
|
||||
var/datum/species/the_dudes_species = humantarget.dna.species
|
||||
var/missing_organs = list()
|
||||
if(!humantarget.getorganslot(ORGAN_SLOT_BRAIN))
|
||||
if(!humantarget.get_organ_slot(ORGAN_SLOT_BRAIN))
|
||||
missing_organs += "brain"
|
||||
if(!HAS_TRAIT(humantarget, TRAIT_NOBLOOD) && !humantarget.getorganslot(ORGAN_SLOT_HEART))
|
||||
if(!HAS_TRAIT(humantarget, TRAIT_NOBLOOD) && !humantarget.get_organ_slot(ORGAN_SLOT_HEART))
|
||||
missing_organs += "heart"
|
||||
if(!(TRAIT_NOBREATH in the_dudes_species.inherent_traits) && !humantarget.getorganslot(ORGAN_SLOT_LUNGS))
|
||||
if(!(TRAIT_NOBREATH in the_dudes_species.inherent_traits) && !humantarget.get_organ_slot(ORGAN_SLOT_LUNGS))
|
||||
missing_organs += "lungs"
|
||||
if(!(TRAIT_NOMETABOLISM in the_dudes_species.inherent_traits) && !humantarget.getorganslot(ORGAN_SLOT_LIVER))
|
||||
if(!(TRAIT_NOMETABOLISM in the_dudes_species.inherent_traits) && !humantarget.get_organ_slot(ORGAN_SLOT_LIVER))
|
||||
missing_organs += "liver"
|
||||
if(the_dudes_species.mutantstomach && !humantarget.getorganslot(ORGAN_SLOT_STOMACH))
|
||||
if(the_dudes_species.mutantstomach && !humantarget.get_organ_slot(ORGAN_SLOT_STOMACH))
|
||||
missing_organs += "stomach"
|
||||
if(the_dudes_species.mutanttongue && !humantarget.getorganslot(ORGAN_SLOT_TONGUE))
|
||||
if(the_dudes_species.mutanttongue && !humantarget.get_organ_slot(ORGAN_SLOT_TONGUE))
|
||||
missing_organs += "tongue"
|
||||
if(!humantarget.getorganslot(ORGAN_SLOT_EARS))
|
||||
if(!humantarget.get_organ_slot(ORGAN_SLOT_EARS))
|
||||
missing_organs += "ears"
|
||||
if(!humantarget.getorganslot(ORGAN_SLOT_EYES))
|
||||
if(!humantarget.get_organ_slot(ORGAN_SLOT_EYES))
|
||||
missing_organs += "eyes"
|
||||
|
||||
if(length(missing_organs))
|
||||
@@ -314,7 +314,7 @@
|
||||
|| targetspecies.mutantliver != initial(targetspecies.mutantliver) \
|
||||
|| targetspecies.mutantstomach != initial(targetspecies.mutantstomach) \
|
||||
|| targetspecies.mutantappendix != initial(targetspecies.mutantappendix) \
|
||||
|| istype(humantarget.getorganslot(ORGAN_SLOT_EXTERNAL_WINGS), /obj/item/organ/external/wings/functional)
|
||||
|| istype(humantarget.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS), /obj/item/organ/external/wings/functional)
|
||||
|
||||
render_list += "<span class='info ml-1'>Species: [targetspecies.name][mutant ? "-derived mutant" : ""]</span>\n"
|
||||
render_list += "<span class='info ml-1'>Core temperature: [round(humantarget.coretemperature-T0C,0.1)] °C ([round(humantarget.coretemperature*1.8-459.67,0.1)] °F)</span>\n"
|
||||
@@ -413,7 +413,7 @@
|
||||
render_block.Cut()
|
||||
|
||||
// Stomach reagents
|
||||
var/obj/item/organ/internal/stomach/belly = target.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/belly = target.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(belly)
|
||||
if(belly.reagents.reagent_list.len)
|
||||
for(var/bile in belly.reagents.reagent_list)
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
user.visible_message(span_suicide("[user] begins spinning way too fast! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
|
||||
var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)//stole from chainsaw code
|
||||
var/obj/item/organ/internal/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/B = user.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
B.organ_flags &= ~ORGAN_VITAL //this cant possibly be a good idea
|
||||
var/randdir
|
||||
for(var/i in 1 to 24)//like a headless chicken!
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
///Override for checkliked in edible component, because all cops LOVE donuts
|
||||
/obj/item/food/donut/proc/check_liked(fraction, mob/living/carbon/human/consumer)
|
||||
var/obj/item/organ/internal/liver/liver = consumer.getorganslot(ORGAN_SLOT_LIVER)
|
||||
var/obj/item/organ/internal/liver/liver = consumer.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(!HAS_TRAIT(consumer, TRAIT_AGEUSIA) && liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
return FOOD_LIKED
|
||||
|
||||
|
||||
@@ -617,8 +617,8 @@
|
||||
if(!iscarbon(target))
|
||||
return
|
||||
var/mob/living/carbon/heartbreakee = target
|
||||
var/obj/item/organ/internal/heart/dont_go_breakin_my_heart = heartbreakee.getorganslot(ORGAN_SLOT_HEART)
|
||||
dont_go_breakin_my_heart.applyOrganDamage(999)
|
||||
var/obj/item/organ/internal/heart/dont_go_breakin_my_heart = heartbreakee.get_organ_slot(ORGAN_SLOT_HEART)
|
||||
dont_go_breakin_my_heart.apply_organ_damage(999)
|
||||
|
||||
|
||||
/obj/projectile/kiss/french
|
||||
|
||||
@@ -322,7 +322,7 @@
|
||||
|
||||
/obj/item/melee/baton/telescopic/suicide_act(mob/living/user)
|
||||
var/mob/living/carbon/human/human_user = user
|
||||
var/obj/item/organ/internal/brain/our_brain = human_user.getorgan(/obj/item/organ/internal/brain)
|
||||
var/obj/item/organ/internal/brain/our_brain = human_user.get_organ_by_type(/obj/item/organ/internal/brain)
|
||||
|
||||
user.visible_message(span_suicide("[user] stuffs [src] up [user.p_their()] nose and presses the 'extend' button! It looks like [user.p_theyre()] trying to clear [user.p_their()] mind."))
|
||||
if(active)
|
||||
|
||||
@@ -378,7 +378,7 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
if(user.getorgan(/obj/item/organ/internal/alien/plasmavessel))
|
||||
if(user.get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel))
|
||||
switch(status)
|
||||
if(BURSTING)
|
||||
to_chat(user, span_notice("The child is hatching out."))
|
||||
@@ -446,7 +446,7 @@
|
||||
return
|
||||
|
||||
var/mob/living/carbon/C = AM
|
||||
if(C.stat == CONSCIOUS && C.getorgan(/obj/item/organ/internal/body_egg/alien_embryo))
|
||||
if(C.stat == CONSCIOUS && C.get_organ_by_type(/obj/item/organ/internal/body_egg/alien_embryo))
|
||||
return
|
||||
|
||||
Burst(kill=FALSE)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
for(var/buck in buckled_mobs) //breaking a nest releases all the buckled mobs, because the nest isn't holding them down anymore
|
||||
var/mob/living/M = buck
|
||||
|
||||
if(user.getorgan(/obj/item/organ/internal/alien/plasmavessel))
|
||||
if(user.get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel))
|
||||
unbuckle_mob(M)
|
||||
add_fingerprint(user)
|
||||
return
|
||||
@@ -52,9 +52,9 @@
|
||||
if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.incapacitated() || M.buckled )
|
||||
return
|
||||
|
||||
if(M.getorgan(/obj/item/organ/internal/alien/plasmavessel))
|
||||
if(M.get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel))
|
||||
return
|
||||
if(!user.getorgan(/obj/item/organ/internal/alien/plasmavessel))
|
||||
if(!user.get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel))
|
||||
return
|
||||
|
||||
if(has_buckled_mobs())
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
petrified_mob.investigate_log("has been dusted by statue deconstruction.", INVESTIGATE_DEATHS)
|
||||
if(iscarbon(petrified_mob))
|
||||
var/mob/living/carbon/petrified_carbon = petrified_mob
|
||||
var/obj/item/organ/internal/brain/carbon_brain = petrified_carbon.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/carbon_brain = petrified_carbon.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
carbon_brain.Remove(petrified_carbon)
|
||||
carbon_brain.forceMove(get_turf(src))
|
||||
carbon_brain.name = "petrified [carbon_brain.name]"
|
||||
|
||||
@@ -657,7 +657,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
|
||||
clear_reagents_to_vomit_pool(M, V, purge_ratio)
|
||||
|
||||
/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V, purge_ratio = 0.1)
|
||||
var/obj/item/organ/internal/stomach/belly = M.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/belly = M.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(!belly?.reagents.total_volume)
|
||||
return
|
||||
var/chemicals_lost = belly.reagents.total_volume * purge_ratio
|
||||
|
||||
@@ -861,7 +861,7 @@
|
||||
status = "<font color='red'><b>Dead</b></font>"
|
||||
health_description = "Status: [status]"
|
||||
health_description += "<br>Brute: [lifer.getBruteLoss()] - Burn: [lifer.getFireLoss()] - Toxin: [lifer.getToxLoss()] - Suffocation: [lifer.getOxyLoss()]"
|
||||
health_description += "<br>Clone: [lifer.getCloneLoss()] - Brain: [lifer.getOrganLoss(ORGAN_SLOT_BRAIN)] - Stamina: [lifer.getStaminaLoss()]"
|
||||
health_description += "<br>Clone: [lifer.getCloneLoss()] - Brain: [lifer.get_organ_loss(ORGAN_SLOT_BRAIN)] - Stamina: [lifer.getStaminaLoss()]"
|
||||
else
|
||||
health_description = "This mob type has no health to speak of."
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
for(var/obj/item/item in human_target.get_equipped_items(delete_pocket))
|
||||
qdel(item)
|
||||
|
||||
var/obj/item/organ/internal/brain/human_brain = human_target.getorganslot(BRAIN)
|
||||
var/obj/item/organ/internal/brain/human_brain = human_target.get_organ_slot(BRAIN)
|
||||
human_brain.destroy_all_skillchips() // get rid of skillchips to prevent runtimes
|
||||
|
||||
if(dresscode != "Naked")
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
newamt = L.getOxyLoss()
|
||||
if("brain")
|
||||
L.adjustOrganLoss(ORGAN_SLOT_BRAIN, amount)
|
||||
newamt = L.getOrganLoss(ORGAN_SLOT_BRAIN)
|
||||
newamt = L.get_organ_loss(ORGAN_SLOT_BRAIN)
|
||||
if("clone")
|
||||
L.adjustCloneLoss(amount, forced = TRUE)
|
||||
newamt = L.getCloneLoss()
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
//Equip
|
||||
var/mob/living/carbon/human/H = owner.current
|
||||
H.set_species(/datum/species/abductor)
|
||||
var/obj/item/organ/internal/tongue/abductor/T = H.getorganslot(ORGAN_SLOT_TONGUE)
|
||||
var/obj/item/organ/internal/tongue/abductor/T = H.get_organ_slot(ORGAN_SLOT_TONGUE)
|
||||
T.mothership = "[team.name]"
|
||||
|
||||
H.real_name = "[team.name] [sub_role]"
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
/obj/item/abductor/mind_device/proc/mind_control(atom/target, mob/living/user)
|
||||
if(iscarbon(target))
|
||||
var/mob/living/carbon/C = target
|
||||
var/obj/item/organ/internal/heart/gland/G = C.getorganslot("heart")
|
||||
var/obj/item/organ/internal/heart/gland/G = C.get_organ_slot("heart")
|
||||
if(!istype(G))
|
||||
to_chat(user, span_warning("Your target does not have an experimental gland!"))
|
||||
return
|
||||
@@ -616,7 +616,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
if(temp)
|
||||
helptext = span_warning("Experimental gland detected!")
|
||||
else
|
||||
if (L.getorganslot(ORGAN_SLOT_HEART))
|
||||
if (L.get_organ_slot(ORGAN_SLOT_HEART))
|
||||
helptext = span_notice("Subject suitable for experiments.")
|
||||
else
|
||||
helptext = span_warning("Subject unsuitable for experiments.")
|
||||
|
||||
@@ -21,27 +21,27 @@
|
||||
reject_cyberimp(organ)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/appendix/appendix = owner.getorganslot(ORGAN_SLOT_APPENDIX)
|
||||
var/obj/item/organ/internal/appendix/appendix = owner.get_organ_slot(ORGAN_SLOT_APPENDIX)
|
||||
if((!appendix && !HAS_TRAIT(owner, TRAIT_NOHUNGER)) || (appendix && ((appendix.organ_flags & ORGAN_FAILING) || (appendix.organ_flags & ORGAN_SYNTHETIC))))
|
||||
replace_appendix(appendix)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/liver/liver = owner.getorganslot(ORGAN_SLOT_LIVER)
|
||||
var/obj/item/organ/internal/liver/liver = owner.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if((!liver && !HAS_TRAIT(owner, TRAIT_NOMETABOLISM)) || (liver && ((liver.damage > liver.high_threshold) || (liver.organ_flags & ORGAN_SYNTHETIC))))
|
||||
replace_liver(liver)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/lungs/lungs = owner.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
var/obj/item/organ/internal/lungs/lungs = owner.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
if((!lungs && !HAS_TRAIT(owner, TRAIT_NOBREATH)) || (lungs && ((lungs.damage > lungs.high_threshold) || (lungs.organ_flags & ORGAN_SYNTHETIC))))
|
||||
replace_lungs(lungs)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/stomach/stomach = owner.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/stomach = owner.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if((!stomach && !HAS_TRAIT(owner, TRAIT_NOHUNGER)) || (stomach && ((stomach.damage > stomach.high_threshold) || (stomach.organ_flags & ORGAN_SYNTHETIC))))
|
||||
replace_stomach(stomach)
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!eyes || (eyes && ((eyes.damage > eyes.low_threshold) || (eyes.organ_flags & ORGAN_SYNTHETIC))))
|
||||
replace_eyes(eyes)
|
||||
return
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
RegisterSignal(living_mob, COMSIG_MOB_HUD_CREATED, PROC_REF(on_hud_created))
|
||||
|
||||
// Brains are optional for lings.
|
||||
var/obj/item/organ/internal/brain/our_ling_brain = living_mob.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/our_ling_brain = living_mob.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(our_ling_brain)
|
||||
our_ling_brain.organ_flags &= ~ORGAN_VITAL
|
||||
our_ling_brain.decoy_override = TRUE
|
||||
@@ -232,7 +232,7 @@
|
||||
if(!iscarbon(owner.current))
|
||||
return
|
||||
var/mob/living/carbon/carbon_owner = owner.current
|
||||
var/obj/item/organ/internal/brain/not_ling_brain = carbon_owner.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/not_ling_brain = carbon_owner.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(not_ling_brain && (not_ling_brain.decoy_override != initial(not_ling_brain.decoy_override)))
|
||||
not_ling_brain.organ_flags |= ORGAN_VITAL
|
||||
not_ling_brain.decoy_override = FALSE
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/datum/action/changeling/augmented_eyesight/on_purchase(mob/user) //The ability starts inactive, so we should be protected from flashes.
|
||||
..()
|
||||
var/obj/item/organ/internal/eyes/E = user.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/E = user.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if (E)
|
||||
E.flash_protect = FLASH_PROTECTION_WELDER //Adjust the user's eyes' flash protection
|
||||
to_chat(user, "We adjust our eyes to protect them from bright lights.")
|
||||
@@ -23,7 +23,7 @@
|
||||
if(!istype(user))
|
||||
return
|
||||
..()
|
||||
var/obj/item/organ/internal/eyes/E = user.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/E = user.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(E)
|
||||
if(!active)
|
||||
E.sight_flags |= SEE_MOBS | SEE_OBJS | SEE_TURFS //Add sight flags to the user's eyes
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
|
||||
/datum/action/changeling/augmented_eyesight/Remove(mob/user) //Get rid of x-ray vision and flash protection when the user refunds this ability
|
||||
var/obj/item/organ/internal/eyes/E = user.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/E = user.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(E)
|
||||
if (active)
|
||||
E.sight_flags ^= SEE_MOBS | SEE_OBJS | SEE_TURFS
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
|
||||
..()
|
||||
var/datum/mind/stored_mind = user.mind
|
||||
var/list/organs = user.getorganszone(BODY_ZONE_HEAD, TRUE)
|
||||
var/list/organs = user.get_organs_for_zone(BODY_ZONE_HEAD, TRUE)
|
||||
|
||||
explosion(user, light_impact_range = 2, adminlog = TRUE, explosion_cause = src)
|
||||
for(var/mob/living/carbon/human/blinded_human in range(2, user))
|
||||
var/obj/item/organ/internal/eyes/eyes = blinded_human.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = blinded_human.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!eyes || blinded_human.is_blind())
|
||||
continue
|
||||
to_chat(blinded_human, span_userdanger("You are blinded by a shower of blood!"))
|
||||
|
||||
@@ -11,12 +11,11 @@
|
||||
/datum/action/changeling/panacea/sting_action(mob/user)
|
||||
to_chat(user, span_notice("We cleanse impurities from our form."))
|
||||
..()
|
||||
// SKYRAT EDIT ADDITION: BORER EGG
|
||||
var/list/bad_organs = list(
|
||||
user.getorgan(/obj/item/organ/internal/body_egg),
|
||||
user.getorgan(/obj/item/organ/internal/zombie_infection),
|
||||
user.getorgan(/obj/item/organ/internal/empowered_borer_egg))
|
||||
// SKYRAT EDIT END
|
||||
user.get_organ_by_type(/obj/item/organ/internal/empowered_borer_egg), // SKYRAT EDIT ADDITION
|
||||
user.get_organ_by_type(/obj/item/organ/internal/body_egg),
|
||||
user.get_organ_by_type(/obj/item/organ/internal/zombie_infection))
|
||||
|
||||
|
||||
try_to_mutant_cure(user) //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
// Make sure the brain's nonvital
|
||||
// Shouldn't be necessary but you can never be certain with lingcode
|
||||
var/obj/item/organ/internal/brain/replacement_brain = user.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/replacement_brain = user.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
replacement_brain.organ_flags &= ~ORGAN_VITAL
|
||||
replacement_brain.decoy_override = TRUE
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(!C.mind || !C.mind.has_antag_datum(/datum/antagonist/changeling))
|
||||
var/obj/item/organ/internal/ears/ears = C.getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = C.get_organ_slot(ORGAN_SLOT_EARS)
|
||||
if(ears)
|
||||
ears.adjustEarDamage(0, 30)
|
||||
C.adjust_confusion(25 SECONDS)
|
||||
|
||||
@@ -206,14 +206,14 @@
|
||||
dna_cost = 1
|
||||
|
||||
/datum/action/changeling/sting/blind/sting_action(mob/user, mob/living/carbon/target)
|
||||
var/obj/item/organ/internal/eyes/eyes = target.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = target.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!eyes)
|
||||
user.balloon_alert(user, "no eyes!")
|
||||
return FALSE
|
||||
|
||||
log_combat(user, target, "stung", "blind sting")
|
||||
to_chat(target, span_danger("Your eyes burn horrifically!"))
|
||||
eyes.applyOrganDamage(eyes.maxHealth * 0.8)
|
||||
eyes.apply_organ_damage(eyes.maxHealth * 0.8)
|
||||
target.adjust_temp_blindness(40 SECONDS)
|
||||
target.set_eye_blur_if_lower(80 SECONDS)
|
||||
return TRUE
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/datum/antagonist/nukeop/clownop/equip_op()
|
||||
. = ..()
|
||||
var/mob/living/current_mob = owner.current
|
||||
var/obj/item/organ/internal/liver/liver = current_mob.getorganslot(ORGAN_SLOT_LIVER)
|
||||
var/obj/item/organ/internal/liver/liver = current_mob.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(liver)
|
||||
ADD_TRAIT(liver, TRAIT_COMEDY_METABOLISM, CLOWNOP_TRAIT)
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
/datum/antagonist/nukeop/leader/clownop/equip_op()
|
||||
. = ..()
|
||||
var/mob/living/L = owner.current
|
||||
var/obj/item/organ/internal/liver/liver = L.getorganslot(ORGAN_SLOT_LIVER)
|
||||
var/obj/item/organ/internal/liver/liver = L.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(liver)
|
||||
ADD_TRAIT(liver, TRAIT_COMEDY_METABOLISM, CLOWNOP_TRAIT)
|
||||
|
||||
|
||||
@@ -931,7 +931,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
no_brain = TRUE
|
||||
. = ..()
|
||||
|
||||
/mob/living/carbon/human/cult_ghost/getorganszone(zone, include_children)
|
||||
/mob/living/carbon/human/cult_ghost/get_organs_for_zone(zone, include_children)
|
||||
. = ..()
|
||||
for(var/obj/item/organ/internal/brain/B in .) //they're not that smart, really
|
||||
. -= B
|
||||
|
||||
@@ -676,7 +676,7 @@
|
||||
* and returns HERETIC_HAS_LIVING_HEART if they have a living heart
|
||||
*/
|
||||
/datum/antagonist/heretic/proc/has_living_heart()
|
||||
var/obj/item/organ/our_living_heart = owner.current?.getorganslot(living_heart_organ_slot)
|
||||
var/obj/item/organ/our_living_heart = owner.current?.get_organ_slot(living_heart_organ_slot)
|
||||
if(!our_living_heart)
|
||||
return HERETIC_NO_HEART_ORGAN
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
if(target.is_blind())
|
||||
return
|
||||
|
||||
if(!target.getorganslot(ORGAN_SLOT_EYES))
|
||||
if(!target.get_organ_slot(ORGAN_SLOT_EYES))
|
||||
return
|
||||
|
||||
to_chat(target, span_danger("A bright green light burns your eyes horrifically!"))
|
||||
|
||||
@@ -54,7 +54,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge())
|
||||
/datum/heretic_knowledge/living_heart/on_research(mob/user, datum/antagonist/heretic/our_heretic)
|
||||
. = ..()
|
||||
|
||||
var/obj/item/organ/where_to_put_our_heart = user.getorganslot(our_heretic.living_heart_organ_slot)
|
||||
var/obj/item/organ/where_to_put_our_heart = user.get_organ_slot(our_heretic.living_heart_organ_slot)
|
||||
// Our heart slot is not valid to put a heart
|
||||
if(!is_valid_heart(where_to_put_our_heart))
|
||||
where_to_put_our_heart = null
|
||||
@@ -68,7 +68,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge())
|
||||
)
|
||||
|
||||
for(var/backup_slot in backup_organs)
|
||||
var/obj/item/organ/look_for_backup = user.getorganslot(backup_slot)
|
||||
var/obj/item/organ/look_for_backup = user.get_organ_slot(backup_slot)
|
||||
// This backup slot is not a valid slot to put a heart
|
||||
if(!is_valid_heart(look_for_backup))
|
||||
continue
|
||||
@@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge())
|
||||
to_chat(user, span_boldnotice("You don't have a heart, or any chest organs for that matter. You didn't get a Living Heart because of it."))
|
||||
|
||||
/datum/heretic_knowledge/living_heart/on_lose(mob/user, datum/antagonist/heretic/our_heretic)
|
||||
var/obj/item/organ/our_living_heart = user.getorganslot(our_heretic.living_heart_organ_slot)
|
||||
var/obj/item/organ/our_living_heart = user.get_organ_slot(our_heretic.living_heart_organ_slot)
|
||||
if(our_living_heart)
|
||||
qdel(our_living_heart.GetComponent(/datum/component/living_heart))
|
||||
|
||||
@@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge())
|
||||
|
||||
/datum/heretic_knowledge/living_heart/recipe_snowflake_check(mob/living/user, list/atoms, list/selected_atoms, turf/loc)
|
||||
var/datum/antagonist/heretic/our_heretic = IS_HERETIC(user)
|
||||
var/obj/item/organ/our_living_heart = user.getorganslot(our_heretic.living_heart_organ_slot)
|
||||
var/obj/item/organ/our_living_heart = user.get_organ_slot(our_heretic.living_heart_organ_slot)
|
||||
// Obviously you need a heart in your chest to do a ritual on your... heart
|
||||
if(!our_living_heart)
|
||||
loc.balloon_alert(user, "ritual failed, you have no [our_heretic.living_heart_organ_slot]!") // "you have no heart!"
|
||||
@@ -143,7 +143,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge())
|
||||
|
||||
/datum/heretic_knowledge/living_heart/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc)
|
||||
var/datum/antagonist/heretic/our_heretic = IS_HERETIC(user)
|
||||
var/obj/item/organ/our_new_heart = user.getorganslot(our_heretic.living_heart_organ_slot)
|
||||
var/obj/item/organ/our_new_heart = user.get_organ_slot(our_heretic.living_heart_organ_slot)
|
||||
|
||||
// Our heart is robotic or synthetic - we need to replace it, and we fortunately should have one by here
|
||||
if(!is_valid_heart(our_new_heart))
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
var/organ_hp_to_heal = to_heal.maxHealth * organ_percent_healing
|
||||
if(to_heal.damage < organ_hp_to_heal)
|
||||
to_heal.setOrganDamage(organ_hp_to_heal)
|
||||
to_heal.set_organ_damage(organ_hp_to_heal)
|
||||
to_heal.balloon_alert(caster, "organ healed")
|
||||
playsound(to_heal, 'sound/magic/staff_healing.ogg', 30)
|
||||
new /obj/effect/temp_visual/cult/sparks(get_turf(to_heal))
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
if(!istype(C))
|
||||
to_chat(admin, "[roundend_category] come from a brain trauma, so they need to at least be a carbon!")
|
||||
return
|
||||
if(!C.getorgan(/obj/item/organ/internal/brain)) // If only I had a brain
|
||||
if(!C.get_organ_by_type(/obj/item/organ/internal/brain)) // If only I had a brain
|
||||
to_chat(admin, "[roundend_category] come from a brain trauma, so they need to HAVE A BRAIN.")
|
||||
return
|
||||
message_admins("[key_name_admin(admin)] made [key_name_admin(new_owner)] into [name].")
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
/datum/antagonist/rev/head/on_removal()
|
||||
if(give_hud)
|
||||
var/mob/living/carbon/C = owner.current
|
||||
var/obj/item/organ/internal/cyberimp/eyes/hud/security/syndicate/S = C.getorganslot(ORGAN_SLOT_HUD)
|
||||
var/obj/item/organ/internal/cyberimp/eyes/hud/security/syndicate/S = C.get_organ_slot(ORGAN_SLOT_HUD)
|
||||
if(S)
|
||||
S.Remove(C)
|
||||
return ..()
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
continue
|
||||
|
||||
var/mob/living/carbon/human/targets_current = possible_target.current
|
||||
if(!targets_current.getorgan(/obj/item/organ/internal/eyes))
|
||||
if(!targets_current.get_organ_by_type(/obj/item/organ/internal/eyes))
|
||||
continue
|
||||
|
||||
possible_targets += possible_target
|
||||
@@ -159,7 +159,7 @@
|
||||
if(used || !istype(target) || !target.Adjacent(user)) //Works only once, no TK use
|
||||
return ..()
|
||||
|
||||
var/obj/item/organ/internal/eyes/eyeballies = target.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyeballies = target.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/bodypart/head/head = target.get_bodypart(BODY_ZONE_HEAD)
|
||||
|
||||
if(!head || !eyeballies || target.is_eyes_covered())
|
||||
@@ -185,7 +185,7 @@
|
||||
span_userdanger("Something penetrates your skull, horribly mutilating your eyes! Holy fuck!"),
|
||||
span_hear("You hear a sickening sound of metal piercing flesh!")
|
||||
)
|
||||
eyeballies.applyOrganDamage(eyeballies.maxHealth)
|
||||
eyeballies.apply_organ_damage(eyeballies.maxHealth)
|
||||
target.emote("scream")
|
||||
playsound(target, "sound/effects/wounds/crackandbleed.ogg", 100)
|
||||
log_combat(user, target, "cracked the skull of (eye snatching)", src)
|
||||
@@ -224,7 +224,7 @@
|
||||
|
||||
if(eyeballies.owner != target)
|
||||
return FALSE
|
||||
var/obj/item/organ/internal/eyes/eyes = target.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = target.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
//got different eyes or doesn't own the head... somehow
|
||||
if(head.owner != target || eyes != eyeballies)
|
||||
return FALSE
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
. = ..()
|
||||
if(!.)
|
||||
return FALSE
|
||||
var/obj/item/organ/internal/brain/target_brain = target.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(!target_brain)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
target.dna.update_body_size()
|
||||
|
||||
for(var/organ_key in list(ORGAN_SLOT_VAGINA, ORGAN_SLOT_PENIS, ORGAN_SLOT_BREASTS, ORGAN_SLOT_ANUS))
|
||||
var/obj/item/organ/external/genital/gent = target.getorganslot(organ_key)
|
||||
var/obj/item/organ/external/genital/gent = target.get_organ_slot(organ_key)
|
||||
if(gent)
|
||||
gent.aroused = prefs.arousal_preview
|
||||
gent.update_sprite_suffix()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
if(!hetero)
|
||||
target.eye_color_right = value
|
||||
|
||||
var/obj/item/organ/internal/eyes/eyes_organ = target.getorgan(/obj/item/organ/internal/eyes)
|
||||
var/obj/item/organ/internal/eyes/eyes_organ = target.get_organ_by_type(/obj/item/organ/internal/eyes)
|
||||
if (!eyes_organ || !istype(eyes_organ))
|
||||
return
|
||||
|
||||
|
||||
@@ -63,14 +63,14 @@
|
||||
/obj/item/clothing/glasses/proc/thermal_overload()
|
||||
if(ishuman(src.loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
var/obj/item/organ/internal/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
|
||||
var/obj/item/organ/internal/eyes/eyes = H.get_organ_slot(ORGAN_SLOT_EYES)
|
||||
if(!H.is_blind())
|
||||
if(H.glasses == src)
|
||||
to_chat(H, span_danger("[src] overloads and blinds you!"))
|
||||
H.flash_act(visual = 1)
|
||||
H.adjust_temp_blindness(6 SECONDS)
|
||||
H.set_eye_blur_if_lower(10 SECONDS)
|
||||
eyes.applyOrganDamage(5)
|
||||
eyes.apply_organ_damage(5)
|
||||
|
||||
/obj/item/clothing/glasses/AltClick(mob/user)
|
||||
. = ..() //SKYRAT EDIT ADDITION
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
return SHAME
|
||||
var/mob/living/living_user = user
|
||||
user.visible_message(span_suicide("[user] looks through [src] and looks overwhelmed with the information! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
if(living_user.getOrganLoss(ORGAN_SLOT_BRAIN) >= BRAIN_DAMAGE_SEVERE)
|
||||
if(living_user.get_organ_loss(ORGAN_SLOT_BRAIN) >= BRAIN_DAMAGE_SEVERE)
|
||||
var/mob/thing = pick((/mob in view()) - user)
|
||||
if(thing)
|
||||
user.say("VALID MAN IS WANTER, ARREST HE!!")
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
";WE REPEAT OUR LIVES DAILY WITHOUT FURTHER QUESTIONS!!"
|
||||
)
|
||||
user.say(pick(conspiracy_line), forced=type)
|
||||
var/obj/item/organ/internal/brain/brain = user.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/brain = user.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(brain)
|
||||
brain.setOrganDamage(BRAIN_DAMAGE_DEATH)
|
||||
brain.set_organ_damage(BRAIN_DAMAGE_DEATH)
|
||||
return OXYLOSS
|
||||
|
||||
@@ -189,8 +189,8 @@
|
||||
var/heart_strength = span_danger("no")
|
||||
var/lung_strength = span_danger("no")
|
||||
|
||||
var/obj/item/organ/internal/heart/heart = carbon_patient.getorganslot(ORGAN_SLOT_HEART)
|
||||
var/obj/item/organ/internal/lungs/lungs = carbon_patient.getorganslot(ORGAN_SLOT_LUNGS)
|
||||
var/obj/item/organ/internal/heart/heart = carbon_patient.get_organ_slot(ORGAN_SLOT_HEART)
|
||||
var/obj/item/organ/internal/lungs/lungs = carbon_patient.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
|
||||
if(carbon_patient.stat != DEAD && !(HAS_TRAIT(carbon_patient, TRAIT_FAKEDEATH)))
|
||||
if(istype(heart))
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
continue
|
||||
if(H.stat == DEAD) // What are you doing in this list
|
||||
continue
|
||||
if(!H.getorgan(/obj/item/organ/internal/brain)) // If only I had a brain
|
||||
if(!H.get_organ_by_type(/obj/item/organ/internal/brain)) // If only I had a brain
|
||||
continue
|
||||
if(!(H.mind.assigned_role.job_flags & JOB_CREW_MEMBER)) //please stop giving my centcom admin gimmicks full body paralysis
|
||||
continue
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
continue
|
||||
if(H.mind.has_antag_datum(/datum/antagonist/obsessed))
|
||||
continue
|
||||
if(!H.getorgan(/obj/item/organ/internal/brain))
|
||||
if(!H.get_organ_by_type(/obj/item/organ/internal/brain))
|
||||
continue
|
||||
H.gain_trauma(/datum/brain_trauma/special/obsessed)
|
||||
announce_to_ghosts(H)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
/obj/item/experi_scanner/proc/make_meat_toilet(mob/living/carbon/user)
|
||||
///The suicide victim's brain that will be placed inside the toilet's cistern
|
||||
var/obj/item/organ/internal/brain/toilet_brain = user.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/toilet_brain = user.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
///The toilet we're about to unleash unto this cursed plane of existence
|
||||
var/obj/structure/toilet/greyscale/result_toilet = new (drop_location())
|
||||
|
||||
|
||||
@@ -456,7 +456,7 @@
|
||||
|
||||
/obj/machinery/smartfridge/organ/process(delta_time)
|
||||
for(var/obj/item/organ/organ in contents)
|
||||
organ.applyOrganDamage(-repair_rate * organ.maxHealth * delta_time)
|
||||
organ.apply_organ_damage(-repair_rate * organ.maxHealth * delta_time)
|
||||
|
||||
/obj/machinery/smartfridge/organ/Exited(atom/movable/gone, direction)
|
||||
. = ..()
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
///Clowns will always like bananas.
|
||||
/obj/item/food/grown/banana/proc/check_liked(fraction, mob/living/carbon/human/consumer)
|
||||
var/obj/item/organ/internal/liver/liver = consumer.getorganslot(ORGAN_SLOT_LIVER)
|
||||
var/obj/item/organ/internal/liver/liver = consumer.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if (!HAS_TRAIT(consumer, TRAIT_AGEUSIA) && liver && HAS_TRAIT(liver, TRAIT_COMEDY_METABOLISM))
|
||||
return FOOD_LIKED
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
if(length(mind_traits))
|
||||
spawned.mind.add_traits(mind_traits, JOB_TRAIT)
|
||||
|
||||
var/obj/item/organ/internal/liver/liver = spawned.getorganslot(ORGAN_SLOT_LIVER)
|
||||
var/obj/item/organ/internal/liver/liver = spawned.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(liver && length(liver_traits))
|
||||
liver.add_traits(liver_traits, JOB_TRAIT)
|
||||
|
||||
|
||||
@@ -228,7 +228,7 @@
|
||||
.["slots_max"] = null
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
|
||||
// If there's no brain, we don't need to worry either.
|
||||
if(QDELETED(occupant_brain))
|
||||
@@ -271,7 +271,7 @@
|
||||
return TRUE
|
||||
var/chipref = params["ref"]
|
||||
var/mob/living/carbon/carbon_occupant = occupant
|
||||
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(QDELETED(carbon_occupant) || QDELETED(occupant_brain))
|
||||
return TRUE
|
||||
var/obj/item/skillchip/to_be_removed = locate(chipref) in occupant_brain.skillchips
|
||||
@@ -296,7 +296,7 @@
|
||||
stack_trace("[usr] tried to toggle skillchip activation when [src] was in an invalid state.")
|
||||
return TRUE
|
||||
var/mob/living/carbon/carbon_occupant = occupant
|
||||
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/occupant_brain = carbon_occupant.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(QDELETED(carbon_occupant) || QDELETED(occupant_brain))
|
||||
return TRUE
|
||||
var/obj/item/skillchip/to_be_removed = locate(chipref) in occupant_brain.skillchips
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
return "Incompatible lifeform detected."
|
||||
|
||||
// No brain
|
||||
var/obj/item/organ/internal/brain/brain = target.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/brain = target.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
if(QDELETED(brain))
|
||||
return "No brain detected."
|
||||
|
||||
|
||||
@@ -540,7 +540,7 @@
|
||||
if((methods & INGEST) && show_message)
|
||||
to_chat(exposed_human, span_notice("<i>You feel nothing but a terrible aftertaste.</i>"))
|
||||
return
|
||||
if(exposed_mob.getorganslot(ORGAN_SLOT_EXTERNAL_WINGS)) //Skyrat Edit
|
||||
if(exposed_human.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS))
|
||||
to_chat(exposed_human, span_userdanger("A terrible pain travels down your back as your wings change shape!"))
|
||||
else
|
||||
to_chat(exposed_human, span_userdanger("A terrible pain travels down your back as wings burst out!"))
|
||||
|
||||
@@ -236,7 +236,7 @@
|
||||
|
||||
humanc.increment_scar_slot()
|
||||
humanc.load_persistent_scars()
|
||||
SSpersistence.load_modular_persistence(humanc.getorganslot(ORGAN_SLOT_BRAIN)) // SKYRAT EDIT ADDITION - MODULAR_PERSISTENCE
|
||||
SSpersistence.load_modular_persistence(humanc.get_organ_slot(ORGAN_SLOT_BRAIN)) // SKYRAT EDIT ADDITION - MODULAR_PERSISTENCE
|
||||
|
||||
if(GLOB.curse_of_madness_triggered)
|
||||
give_madness(humanc, GLOB.curse_of_madness_triggered)
|
||||
|
||||
@@ -290,7 +290,7 @@ Works together with spawning an observer, noted above.
|
||||
return
|
||||
if(ishuman(usr)) //following code only applies to those capable of having an ethereal heart, ie humans
|
||||
var/mob/living/carbon/human/crystal_fella = usr
|
||||
var/our_heart = crystal_fella.getorganslot(ORGAN_SLOT_HEART)
|
||||
var/our_heart = crystal_fella.get_organ_slot(ORGAN_SLOT_HEART)
|
||||
if(istype(our_heart, /obj/item/organ/internal/heart/ethereal)) //so you got the heart?
|
||||
var/obj/item/organ/internal/heart/ethereal/ethereal_heart = our_heart
|
||||
ethereal_heart.stop_crystalization_process(crystal_fella) //stops the crystallization process
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
var/obj/item/organ/internal/brain/newbrain = H.getorgan(/obj/item/organ/internal/brain)
|
||||
var/obj/item/organ/internal/brain/newbrain = H.get_organ_by_type(/obj/item/organ/internal/brain)
|
||||
newbrain.forceMove(src)
|
||||
brain = newbrain
|
||||
else if(!brain)
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
var/amount = O.reagents.get_reagent_amount(/datum/reagent/medicine/mannitol)
|
||||
var/healto = max(0, damage - amount * 2)
|
||||
O.reagents.remove_all(ROUND_UP(O.reagents.total_volume / amount * (damage - healto) * 0.5)) //only removes however much solution is needed while also taking into account how much of the solution is mannitol
|
||||
setOrganDamage(healto) //heals 2 damage per unit of mannitol, and by using "setorgandamage", we clear the failing variable if that was up
|
||||
set_organ_damage(healto) //heals 2 damage per unit of mannitol, and by using "set_organ_damage", we clear the failing variable if that was up
|
||||
return
|
||||
|
||||
// Cutting out skill chips.
|
||||
@@ -197,7 +197,7 @@
|
||||
if(O.force != 0 && !(O.item_flags & NOBLUDGEON))
|
||||
user.do_attack_animation(src)
|
||||
playsound(loc, 'sound/effects/meatslap.ogg', 50)
|
||||
setOrganDamage(maxHealth) //fails the brain as the brain was attacked, they're pretty fragile.
|
||||
set_organ_damage(maxHealth) //fails the brain as the brain was attacked, they're pretty fragile.
|
||||
visible_message(span_danger("[user] hits [src] with [O]!"))
|
||||
to_chat(user, span_danger("You hit [src] with [O]!"))
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
if(user.zone_selected != BODY_ZONE_HEAD)
|
||||
return ..()
|
||||
|
||||
var/target_has_brain = C.getorgan(/obj/item/organ/internal/brain)
|
||||
var/target_has_brain = C.get_organ_by_type(/obj/item/organ/internal/brain)
|
||||
|
||||
if(!target_has_brain && C.is_eyes_covered())
|
||||
to_chat(user, span_warning("You're going to need to remove [C.p_their()] head cover first!"))
|
||||
@@ -346,10 +346,10 @@
|
||||
/obj/item/organ/internal/brain/machine_wash(obj/machinery/washing_machine/brainwasher)
|
||||
. = ..()
|
||||
if(HAS_TRAIT(brainwasher, TRAIT_BRAINWASHING))
|
||||
setOrganDamage(0)
|
||||
set_organ_damage(0)
|
||||
cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY)
|
||||
else
|
||||
setOrganDamage(BRAIN_DAMAGE_DEATH)
|
||||
set_organ_damage(BRAIN_DAMAGE_DEATH)
|
||||
|
||||
/obj/item/organ/internal/brain/zombie
|
||||
name = "zombie brain"
|
||||
@@ -493,7 +493,7 @@
|
||||
amount_cured++
|
||||
return amount_cured
|
||||
|
||||
/obj/item/organ/internal/brain/applyOrganDamage(damage_amount, maximum, required_organtype)
|
||||
/obj/item/organ/internal/brain/apply_organ_damage(damage_amount, maximum, required_organtype)
|
||||
. = ..()
|
||||
if(!owner)
|
||||
return
|
||||
@@ -512,7 +512,7 @@
|
||||
|
||||
/// Brains REALLY like ghosting people. we need special tricks to avoid that, namely removing the old brain with no_id_transfer
|
||||
/obj/item/organ/internal/brain/replace_into(mob/living/carbon/new_owner)
|
||||
var/obj/item/organ/internal/brain/old_brain = new_owner.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
var/obj/item/organ/internal/brain/old_brain = new_owner.get_organ_slot(ORGAN_SLOT_BRAIN)
|
||||
old_brain.Remove(new_owner, special = TRUE, no_id_transfer = TRUE)
|
||||
qdel(old_brain)
|
||||
Insert(new_owner, special = TRUE, drop_if_replaced = FALSE, no_id_transfer = TRUE)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
else if(istype(loc, /obj/item/organ/internal/brain))
|
||||
BR = loc
|
||||
if(BR)
|
||||
BR.setOrganDamage(BRAIN_DAMAGE_DEATH) //beaten to a pulp
|
||||
BR.set_organ_damage(BRAIN_DAMAGE_DEATH) //beaten to a pulp
|
||||
|
||||
/mob/living/brain/proc/handle_emp_damage(delta_time, times_fired)
|
||||
if(!emp_damage)
|
||||
|
||||
@@ -139,7 +139,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
|
||||
if(!can_consume(lucky_winner))
|
||||
return TRUE
|
||||
|
||||
var/obj/item/organ/internal/stomach/alien/melting_pot = getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/alien/melting_pot = get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(!istype(melting_pot))
|
||||
visible_message(span_clown("[src] can't seem to consume [lucky_winner]!"), \
|
||||
span_alien("You feel a pain in your... chest? You can't get [lucky_winner] down."))
|
||||
|
||||
@@ -378,7 +378,7 @@ Doesn't work on other aliens/AI.*/
|
||||
if(!iscarbon(owner))
|
||||
return
|
||||
var/mob/living/carbon/alien/adult/alieninated_owner = owner
|
||||
var/obj/item/organ/internal/stomach/alien/melting_pot = alieninated_owner.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
var/obj/item/organ/internal/stomach/alien/melting_pot = alieninated_owner.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(!melting_pot)
|
||||
owner.visible_message(span_clown("[src] gags, and spits up a bit of purple liquid. Ewwww."), \
|
||||
span_alien("You feel a pain in your... chest? There's nothing there there's nothing there no no n-"))
|
||||
@@ -395,14 +395,14 @@ Doesn't work on other aliens/AI.*/
|
||||
|
||||
/// Gets the plasma level of this carbon's plasma vessel, or -1 if they don't have one
|
||||
/mob/living/carbon/proc/getPlasma()
|
||||
var/obj/item/organ/internal/alien/plasmavessel/vessel = getorgan(/obj/item/organ/internal/alien/plasmavessel)
|
||||
var/obj/item/organ/internal/alien/plasmavessel/vessel = get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel)
|
||||
if(!vessel)
|
||||
return -1
|
||||
return vessel.stored_plasma
|
||||
|
||||
/// Adjusts the plasma level of the carbon's plasma vessel if they have one
|
||||
/mob/living/carbon/proc/adjustPlasma(amount)
|
||||
var/obj/item/organ/internal/alien/plasmavessel/vessel = getorgan(/obj/item/organ/internal/alien/plasmavessel)
|
||||
var/obj/item/organ/internal/alien/plasmavessel/vessel = get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel)
|
||||
if(!vessel)
|
||||
return FALSE
|
||||
vessel.stored_plasma = max(vessel.stored_plasma + amount,0)
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/alien/adult/royal/evolver = owner
|
||||
var/obj/item/organ/internal/alien/hivenode/node = evolver.getorgan(/obj/item/organ/internal/alien/hivenode)
|
||||
var/obj/item/organ/internal/alien/hivenode/node = evolver.get_organ_by_type(/obj/item/organ/internal/alien/hivenode)
|
||||
// Players are Murphy's Law. We may not expect
|
||||
// there to ever be a living xeno with no hivenode,
|
||||
// but they _WILL_ make it happen.
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/alien/adult/royal/evolver = owner
|
||||
var/obj/item/organ/internal/alien/hivenode/node = evolver.getorgan(/obj/item/organ/internal/alien/hivenode)
|
||||
var/obj/item/organ/internal/alien/hivenode/node = evolver.get_organ_by_type(/obj/item/organ/internal/alien/hivenode)
|
||||
if(!node || node.recent_queen_death)
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
|
||||
if(C == src) //Make sure not to proc it on ourselves.
|
||||
continue
|
||||
var/obj/item/organ/internal/alien/hivenode/node = C.getorgan(/obj/item/organ/internal/alien/hivenode)
|
||||
var/obj/item/organ/internal/alien/hivenode/node = C.get_organ_by_type(/obj/item/organ/internal/alien/hivenode)
|
||||
if(istype(node)) // just in case someone would ever add a diffirent node to hivenode slot
|
||||
node.queen_death()
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ Des: Gives the client of the alien an image on each infected mob.
|
||||
for (var/i in GLOB.mob_living_list)
|
||||
var/mob/living/L = i
|
||||
if(HAS_TRAIT(L, TRAIT_XENO_HOST))
|
||||
var/obj/item/organ/internal/body_egg/alien_embryo/A = L.getorgan(/obj/item/organ/internal/body_egg/alien_embryo)
|
||||
var/obj/item/organ/internal/body_egg/alien_embryo/A = L.get_organ_by_type(/obj/item/organ/internal/body_egg/alien_embryo)
|
||||
if(A)
|
||||
var/I = image('icons/mob/nonhuman-player/alien.dmi', loc = L, icon_state = "infected[A.stage]")
|
||||
client.images += I
|
||||
|
||||
@@ -103,7 +103,7 @@ In all, this is a lot like the monkey code. /N
|
||||
if(QDELETED(src))
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/ears/ears = getorganslot(ORGAN_SLOT_EARS)
|
||||
var/obj/item/organ/internal/ears/ears = get_organ_slot(ORGAN_SLOT_EARS)
|
||||
switch (severity)
|
||||
if (EXPLODE_DEVASTATE)
|
||||
gib()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user