diff --git a/code/game/antagonist/outsider/ninja.dm b/code/game/antagonist/outsider/ninja.dm index 4dd40c508ec..40347168aae 100644 --- a/code/game/antagonist/outsider/ninja.dm +++ b/code/game/antagonist/outsider/ninja.dm @@ -114,7 +114,7 @@ var/datum/antagonist/ninja/ninjas player.put_in_hands(ninjasuit) player.equip_to_slot_or_del(ninjasuit,slot_back) if(ninjasuit) - ninjasuit.toggle_seals(src,1) + ninjasuit.toggle_seals(src,TRUE,TRUE) ninjasuit.seal_delay = initial(ninjasuit.seal_delay) if(istype(player.back,/obj/item/rig)) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 40abbe93334..6c74731b043 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -94,9 +94,9 @@ GLOBAL_LIST_EMPTY(GPS_list) STOP_PROCESSING(SSobj, src) is_in_processing_list = FALSE GLOB.GPS_list -= src - . = ..() update_holder() QDEL_NULL(compass) + . = ..() /obj/item/gps/proc/can_track(var/obj/item/gps/other, var/reachable_z_levels) if(!other.tracking || other.emped || other.hide_signal) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index f2461801689..0a5e08a791c 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -274,14 +274,17 @@ toggle_piece("chest", loc, ONLY_RETRACT, TRUE) update_icon(1) -/obj/item/rig/proc/toggle_seals(var/mob/living/carbon/human/M,var/instant) +/obj/item/rig/proc/toggle_seals(mob/living/carbon/human/M, instant, destructive) if(sealing) return if(!check_power_cost(M)) return 0 - deploy(M,instant) + //NOTE: DESTRUCTIVE SHOULD ONLY BE CALLED ONCE (DURING THE INITIAL DEPLOYMENT) + //DESTRUCTIVE WILL DELETE ANY CLOTHING THAT WOULD OTHERWISE BE BLOCKING IT. + //IF DESTRUCTIVE IS CALLED WHILE THE RIG IS ALREADY DEPLOYED, THE RIG WILL DELETE ITSELF. + deploy(M,destructive) var/seal_target = !canremove var/failed_to_seal @@ -754,7 +757,7 @@ if(piece == "helmet" && helmet?.light_system == STATIC_LIGHT) helmet.update_light() -/obj/item/rig/proc/deploy(mob/M,var/sealed) +/obj/item/rig/proc/deploy(mob/M,destructive) var/mob/living/carbon/human/H = M @@ -763,7 +766,7 @@ if(H.back != src && H.belt != src) return - if(sealed) + if(destructive) if(H.head) var/obj/item/garbage = H.head H.drop_from_inventory(garbage) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 0c74ca4d0f3..b6766f602b8 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -23,8 +23,8 @@ return ..() /obj/item/electronic_assembly/Destroy() - battery = null // It will be qdel'd by ..() if still in our contents STOP_PROCESSING(SSobj, src) + battery = null // It will be qdel'd by ..() if still in our contents return ..() /obj/item/electronic_assembly/process() diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm index ea70e366224..4ea84af1a23 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm @@ -246,7 +246,7 @@ if(dead) switch(dead) if(1) - if(W.is_screwdriver()) + if(W.has_tool_quality(TOOL_SCREWDRIVER)) playsound(src, W.usesound, 50, 1) if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE)) to_chat(user, span_notice("You unscrew the maintenace panel on the [src].")) @@ -321,7 +321,7 @@ mod.installed(src) update_icon() return 1 - else if(W.is_wrench()) + else if(W.has_tool_quality(TOOL_WRENCH)) if(!air_supply) to_chat(user, "There is no tank to remove.") return @@ -333,7 +333,7 @@ to_chat(user, "You detach and remove \the [air_supply].") air_supply = null return - else if(W.is_screwdriver()) + else if(W.has_tool_quality(TOOL_SCREWDRIVER)) var/list/possible_removals = list() for(var/obj/item/rig_module/module in installed_modules) if(module.permanent) @@ -365,7 +365,6 @@ else if(istype(W,/obj/item/storage/backpack)) AssimilateBag(user,0,W) - ..() /obj/item/rig/protean/proc/make_alive(var/mob/living/carbon/human/H, var/partial) if(H) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm index 478a8710f22..93b66212644 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm @@ -668,7 +668,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have? /mob/living/simple_mob/vore/alienanimals/teppi/Life() . =..() - if(!.) + if(!. || QDELETED(src)) return wantpet += rand(0,2) * affection_factor amount_grown += rand(1,5) diff --git a/code/modules/vore/eating/soulcatcher.dm b/code/modules/vore/eating/soulcatcher.dm index 99065c7490a..589cda58523 100644 --- a/code/modules/vore/eating/soulcatcher.dm +++ b/code/modules/vore/eating/soulcatcher.dm @@ -159,7 +159,7 @@ //If they have these values, apply them if(isliving(M)) var/mob/living/L = M - brainmob.dna = L.dna + brainmob.dna = L.dna.Clone() brainmob.ooc_notes = L.ooc_notes brainmob.ooc_notes_likes = L.ooc_notes_likes brainmob.ooc_notes_dislikes = L.ooc_notes_dislikes