diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 4a69fdff87..84b06bc756 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -630,3 +630,5 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/proc/microwave_act(obj/machinery/microwave/M) if(M && M.dirty < 100) M.dirty++ + +/obj/item/proc/on_mob_death(mob/living/L, gibbed) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 9a4b3bdfec..8cceb69b83 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -578,6 +578,10 @@ . = ..() host = loc +/obj/item/borg/projectile_dampen/on_mob_death() + deactivate_field() + . = ..() + /obj/item/borg/projectile_dampen/process() process_recharge() process_usage() diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 4be1dfe851..4719688ebf 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -50,6 +50,8 @@ tod = worldtime2text() var/turf/T = get_turf(src) var/area/A = get_area(T) + for(var/obj/item/I in contents) + I.on_mob_death(src, gibbed) if(mind && mind.name && mind.active && (!(T.flags & NO_DEATHRATTLE))) var/rendered = "[mind.name] has died at [A.name]." deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE)