mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 13:30:42 +01:00
Super Dismemberment (#11086)
This commit is contained in:
@@ -492,4 +492,7 @@
|
||||
|
||||
/mob/living/carbon/flash_eyes(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, visual = FALSE, type = /obj/screen/fullscreen/flash)
|
||||
if(eyecheck() < intensity || override_blindness_check)
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/get_contained_external_atoms()
|
||||
. = contents - internal_organs
|
||||
@@ -131,4 +131,15 @@
|
||||
/mob/living/carbon/human/proc/vr_disconnect()
|
||||
if(remote_network)
|
||||
SSvirtualreality.remove_robot(src, remote_network)
|
||||
remote_network = null
|
||||
remote_network = null
|
||||
|
||||
/mob/living/carbon/human/proc/drop_all_limbs(var/droplimb_type = DROPLIMB_BLUNT)
|
||||
for(var/thing in organs)
|
||||
var/obj/item/organ/external/limb = thing
|
||||
var/limb_can_amputate = (limb.limb_flags & ORGAN_CAN_AMPUTATE)
|
||||
limb.limb_flags |= ORGAN_CAN_AMPUTATE
|
||||
limb.droplimb(TRUE, droplimb_type, TRUE, TRUE)
|
||||
if(!QDELETED(limb) && !limb_can_amputate)
|
||||
limb.limb_flags &= ~ORGAN_CAN_AMPUTATE
|
||||
dump_contents()
|
||||
qdel(src)
|
||||
@@ -272,4 +272,7 @@
|
||||
if(species?.respawn_type)
|
||||
set_death_time(species.respawn_type, world.time)
|
||||
else
|
||||
set_death_time(CREW, world.time)
|
||||
set_death_time(CREW, world.time)
|
||||
|
||||
/mob/living/carbon/human/get_contained_external_atoms()
|
||||
. = ..() - organs
|
||||
@@ -1207,6 +1207,16 @@ proc/is_blind(A)
|
||||
/mob/proc/get_antag_datum(var/antag_role)
|
||||
return
|
||||
|
||||
/mob/dump_contents()
|
||||
for(var/thing in get_contained_external_atoms())
|
||||
var/atom/movable/AM = thing
|
||||
drop_from_inventory(AM, loc)
|
||||
if(ismob(AM))
|
||||
var/mob/M = AM
|
||||
if(M.client)
|
||||
M.client.eye = M.client.mob
|
||||
M.client.perspective = MOB_PERSPECTIVE
|
||||
|
||||
/mob/proc/in_neck_grab()
|
||||
for(var/thing in grabbed_by)
|
||||
var/obj/item/grab/G = thing
|
||||
|
||||
@@ -901,7 +901,10 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
victim.shock_stage += min_broken_damage
|
||||
victim.flash_strong_pain()
|
||||
|
||||
var/mob/living/carbon/human/last_owner = owner
|
||||
removed(null, ignore_children)
|
||||
if(istype(last_owner) && !QDELETED(last_owner) && length(last_owner.organs) <= 1)
|
||||
last_owner.drop_all_limbs(disintegrate) // drops the last remaining part, usually the torso, as an item
|
||||
|
||||
if(parent_organ)
|
||||
var/datum/wound/lost_limb/W = new(src, disintegrate, clean)
|
||||
|
||||
Reference in New Issue
Block a user