From d78936e18453a6fd7616ea2fd119e9beba8a52da Mon Sep 17 00:00:00 2001 From: KazeEspada Date: Sat, 30 Jan 2016 19:01:55 -0700 Subject: [PATCH 1/2] You can now blow open secure storage containers such as digital safes, locked briefcases, etc. --- code/game/objects/items/weapons/explosives.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 925e19d9e7d..87d02549ffd 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -69,10 +69,16 @@ /obj/item/weapon/c4/afterattack(atom/movable/AM, mob/user, flag) if (!flag) return - if (ismob(AM) || istype(AM, /obj/item/weapon/storage/)) + if (ismob(AM)) return if(loc == AM) return + if((istype(AM, /obj/item/weapon/storage/)) && (!istype(AM, /obj/item/weapon/storage/secure))) //secure storage is a special case handled below. + return + if(istype(AM,/obj/item/weapon/storage/secure)) + var/obj/item/weapon/storage/secure/S = AM + if(!S.locked) + return user << "You start planting the bomb..." From 9980018b2a25fa4d1e959c7c8c37bfbf37889ab6 Mon Sep 17 00:00:00 2001 From: KazeEspada Date: Sun, 31 Jan 2016 13:01:36 -0700 Subject: [PATCH 2/2] Storage items now drop loot upon destruction. Lockboxes can now be blown open. --- code/game/objects/items/weapons/explosives.dm | 6 +++--- code/game/objects/items/weapons/storage/storage.dm | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 87d02549ffd..219a6ca3e94 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -73,11 +73,11 @@ return if(loc == AM) return - if((istype(AM, /obj/item/weapon/storage/)) && (!istype(AM, /obj/item/weapon/storage/secure))) //secure storage is a special case handled below. + if((istype(AM, /obj/item/weapon/storage/)) && !((istype(AM, /obj/item/weapon/storage/secure)) || (istype(AM, /obj/item/weapon/storage/lockbox)))) //If its storage but not secure storage OR a lockbox, then place it inside. return - if(istype(AM,/obj/item/weapon/storage/secure)) + if((istype(AM,/obj/item/weapon/storage/secure)) || (istype(AM, /obj/item/weapon/storage/lockbox))) var/obj/item/weapon/storage/secure/S = AM - if(!S.locked) + if(!S.locked) //Literal hacks, this works for lockboxes despite incorrect type casting, because they both share the locked var. But if its unlocked, place it inside, otherwise PLANTING C4! return user << "You start planting the bomb..." diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index ea8a135b4c0..ccd7d9d44b6 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -470,8 +470,8 @@ /obj/item/weapon/storage/Destroy() - for(var/obj/O in contents) - O.mouse_opacity = initial(O.mouse_opacity) + var/turf = get_turf(src) + empty_object_contents(0, turf) close_all() qdel(boxes)