diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index 51c0a6924d8..e79ddc66aaf 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -676,10 +676,12 @@ uninstall(part) return if(part in mod_parts) + if(!wearer) + part.forceMove(src) + return retract(wearer, part) if(active) INVOKE_ASYNC(src, .proc/toggle_activate, wearer, TRUE) - return /obj/item/mod/control/proc/on_part_destruction(obj/item/part, damage_flag) SIGNAL_HANDLER diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index dbdfa805695..2dfeebafd1a 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -42,8 +42,9 @@ if(!deleting) SEND_SIGNAL(src, COMSIG_TRY_STORAGE_QUICK_EMPTY, drop_location()) SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SET_LOCKSTATE, TRUE) + /obj/item/mod/module/storage/proc/on_chestplate_unequip(obj/item/source, force, atom/newloc, no_move, invdrop, silent) - if(QDELETED(source) || newloc == mod.wearer || !mod.wearer.s_store) + if(QDELETED(source) || !mod.wearer || newloc == mod.wearer || !mod.wearer.s_store) return to_chat(mod.wearer, span_notice("[src] tries to store [mod.wearer.s_store] inside itself.")) SEND_SIGNAL(src, COMSIG_TRY_STORAGE_INSERT, mod.wearer.s_store, mod.wearer, TRUE) @@ -75,7 +76,6 @@ max_combined_w_class = 60 max_items = 21 - ///Ion Jetpack - Lets the user fly freely through space using battery charge. /obj/item/mod/module/jetpack name = "MOD ion jetpack module"