diff --git a/modular_citadel/code/game/machinery/cryopod.dm b/modular_citadel/code/game/machinery/cryopod.dm index 0c82a210..f8e8665e 100644 --- a/modular_citadel/code/game/machinery/cryopod.dm +++ b/modular_citadel/code/game/machinery/cryopod.dm @@ -306,23 +306,6 @@ announcer.announce("CRYOSTORAGE", mob_occupant.real_name, announce_rank, announce_job_title, list()) visible_message("\The [src] hums and hisses as it moves [mob_occupant.real_name] into storage.") - - 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("You're a Traitor![generic_plsnoleave_message]") caught = TRUE - + if(caught) target.client.cryo_warned = world.time return