Merge pull request #993 from DragonTrance/borg-cyropod

Cyborgs no longer drop items when cryo-ing
This commit is contained in:
QuoteFox
2021-02-24 09:41:00 +00:00
committed by GitHub
+19 -18
View File
@@ -306,23 +306,6 @@
announcer.announce("CRYOSTORAGE", mob_occupant.real_name, announce_rank, announce_job_title, list())
visible_message("<span class='notice'>\The [src] hums and hisses as it moves [mob_occupant.real_name] into storage.</span>")
for(var/obj/item/W in mob_occupant.GetAllContents())
if(W.loc.loc && (( W.loc.loc == loc ) || (W.loc.loc == control_computer)))
continue//means we already moved whatever this thing was in
//I'm a professional, okay
for(var/T in preserve_items)
if(istype(W, T))
if(control_computer && control_computer.allow_items)
control_computer.frozen_items += W
mob_occupant.transferItemToLoc(W, control_computer, TRUE)
else
mob_occupant.transferItemToLoc(W, loc, TRUE)
for(var/obj/item/W in mob_occupant.GetAllContents())
qdel(W)//because we moved all items to preserve away
//and yes, this totally deletes their bodyparts one by one, I just couldn't bother
if(iscyborg(mob_occupant))
var/mob/living/silicon/robot/R = occupant
if(!istype(R)) return ..()
@@ -330,6 +313,24 @@
R.contents -= R.mmi
qdel(R.mmi)
QDEL_NULL_LIST(R.contents)
else
for(var/obj/item/W in mob_occupant.GetAllContents())
if(W.loc.loc && (( W.loc.loc == loc ) || (W.loc.loc == control_computer)))
continue//means we already moved whatever this thing was in
//I'm a professional, okay
for(var/T in preserve_items)
if(istype(W, T))
if(control_computer && control_computer.allow_items)
control_computer.frozen_items += W
mob_occupant.transferItemToLoc(W, control_computer, TRUE)
else
mob_occupant.transferItemToLoc(W, loc, TRUE)
for(var/obj/item/W in mob_occupant.GetAllContents())
qdel(W)//because we moved all items to preserve away
//and yes, this totally deletes their bodyparts one by one, I just couldn't bother
// Ghost and delete the mob.
if(!mob_occupant.get_ghost(1))
mob_occupant.ghostize(0) // Players who cryo out may not re-enter the round
@@ -387,7 +388,7 @@
if(target.mind.special_role == ROLE_TRAITOR)
alert("<span class='userdanger'>You're a Traitor![generic_plsnoleave_message]</span>")
caught = TRUE
if(caught)
target.client.cryo_warned = world.time
return