From 887e4b93f765e507a38b9232995158ec883709a1 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Wed, 25 Feb 2015 14:02:14 -0500 Subject: [PATCH] Ported outside crate manifest --- .../structures/crates_lockers/crates.dm | 65 ++++++++++++++---- .../structures/crates_lockers/largecrate.dm | 29 +++++++- code/game/supplyshuttle.dm | 12 +++- icons/obj/storage.dmi | Bin 67138 -> 67233 bytes 4 files changed, 90 insertions(+), 16 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 9bf8bfb5e5a..59edffe4b0d 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -10,6 +10,17 @@ climbable = 1 // mouse_drag_pointer = MOUSE_ACTIVE_POINTER //??? var/rigged = 0 + var/obj/item/weapon/paper/manifest/manifest + +/obj/structure/closet/crate/New() + ..() + update_icon() + +/obj/structure/closet/crate/update_icon() + ..() + overlays.Cut() + if(manifest) + overlays += "manifest" /obj/structure/closet/crate/can_open() return 1 @@ -183,6 +194,29 @@ else return +/obj/structure/closet/crate/attack_hand(mob/user as mob) + if(manifest) + user << "You tear the manifest off of the crate." + playsound(src.loc, 'sound/items/poster_ripped.ogg', 75, 1) + manifest.loc = loc + if(ishuman(user)) + user.put_in_hands(manifest) + manifest = null + update_icon() + return + else + if(rigged && locate(/obj/item/device/radio/electropack) in src) + if(isliving(user)) + var/mob/living/L = user + if(L.electrocute_act(17, src)) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + return + src.add_fingerprint(user) + src.toggle(user) + return + /obj/structure/closet/crate/secure desc = "A secure crate." name = "Secure crate" @@ -196,13 +230,16 @@ var/broken = 0 var/locked = 1 -/obj/structure/closet/crate/secure/New() +/obj/structure/closet/crate/secure/update_icon() ..() + overlays.Cut() + if(manifest) + overlays += "manifest" if(locked) - overlays.Cut() overlays += redlight + else if(broken) + overlays += emag else - overlays.Cut() overlays += greenlight /obj/structure/closet/crate/secure/can_open() @@ -220,8 +257,7 @@ for(var/mob/O in viewers(user, 3)) if((O.client && !( O.blinded ))) O << "The crate has been [locked ? null : "un"]locked by [user]." - overlays.Cut() - overlays += locked ? redlight : greenlight + update_icon() else user << "Access Denied" @@ -240,23 +276,31 @@ usr << "This mob type can't use this verb." /obj/structure/closet/crate/secure/attack_hand(mob/user as mob) - src.add_fingerprint(user) + if(manifest) + user << "You tear the manifest off of the crate." + playsound(src.loc, 'sound/items/poster_ripped.ogg', 75, 1) + manifest.loc = loc + if(ishuman(user)) + user.put_in_hands(manifest) + manifest = null + update_icon() + return if(locked) src.togglelock(user) else src.toggle(user) + /obj/structure/closet/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob, params) if(is_type_in_list(W, list(/obj/item/stack/packageWrap, /obj/item/stack/cable_coil, /obj/item/device/radio/electropack, /obj/item/weapon/wirecutters))) return ..() if(locked && (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade))) - overlays.Cut() - overlays += emag overlays += sparks spawn(6) overlays -= sparks //Tried lots of stuff but nothing works right. so i have to use this *sadface* playsound(src.loc, "sparks", 60, 1) src.locked = 0 src.broken = 1 + update_icon() user << "You unlock \the [src]." return if(!opened) @@ -270,15 +314,12 @@ if(!broken && !opened && prob(50/severity)) if(!locked) src.locked = 1 - overlays.Cut() - overlays += redlight else - overlays.Cut() - overlays += emag overlays += sparks spawn(6) overlays -= sparks //Tried lots of stuff but nothing works right. so i have to use this *sadface* playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) src.locked = 0 + update_icon() if(!opened && prob(20/severity)) if(!locked) open() diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 3668a530ed6..3d50826e03a 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -4,13 +4,38 @@ icon = 'icons/obj/storage.dmi' icon_state = "densecrate" density = 1 + var/obj/item/weapon/paper/manifest/manifest + +/obj/structure/largecrate/New() + ..() + update_icon() + +/obj/structure/largecrate/update_icon() + ..() + overlays.Cut() + if(manifest) + overlays += "manifest" /obj/structure/largecrate/attack_hand(mob/user as mob) - user << "You need a crowbar to pry this open!" - return + if(manifest) + user << "You tear the manifest off of the crate." + playsound(src.loc, 'sound/items/poster_ripped.ogg', 75, 1) + manifest.loc = loc + if(ishuman(user)) + user.put_in_hands(manifest) + manifest = null + update_icon() + return + else + user << "You need a crowbar to pry this open!" + return /obj/structure/largecrate/attackby(obj/item/weapon/W as obj, mob/user as mob, params) if(istype(W, /obj/item/weapon/crowbar)) + if(manifest) + manifest.loc = loc + manifest = null + update_icon() new /obj/item/stack/sheet/wood(src) var/turf/T = get_turf(src) for(var/obj/O in contents) diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index e251f9a5777..808d333a3a1 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -290,8 +290,16 @@ var/list/mechtoys = list( //manifest finalisation slip.info += "
" slip.info += "CHECK CONTENTS AND STAMP BELOW THE LINE TO CONFIRM RECEIPT OF GOODS
" - if (SP.contraband) slip.loc = null //we are out of blanks for Form #44-D Ordering Illicit Drugs. - + if(!SP.contraband) + if(istype(A, /obj/structure/closet/crate)) + var/obj/structure/closet/crate/CR = A + CR.manifest = slip + CR.update_icon() + if(istype(A, /obj/structure/largecrate)) + var/obj/structure/largecrate/LC = A + LC.manifest = slip + LC.update_icon() + else slip.loc = null //we are out of blanks for Form #44-D Ordering Illicit Drugs. shoppinglist.Cut() return diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index e74d32e907ee6747b90f92e30e659b490feb9e26..30c8906634e30f8297145ebbe9b389b4939bf36d 100644 GIT binary patch delta 6453 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 delta 6357 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 LhBr$z?4SJ)g!hHs