Merge pull request #427 from ZomgPonies/cargo

Crates are mailed with manifests taped to the outside
This commit is contained in:
Mark van Alphen
2015-02-26 19:20:24 +01:00
4 changed files with 90 additions and 16 deletions
@@ -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 << "<span class='notice'>You tear the manifest off of the crate.</span>"
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 << "<span class='notice'>The crate has been [locked ? null : "un"]locked by [user].</span>"
overlays.Cut()
overlays += locked ? redlight : greenlight
update_icon()
else
user << "<span class='notice'>Access Denied</span>"
@@ -240,23 +276,31 @@
usr << "<span class='warning'>This mob type can't use this verb.</span>"
/obj/structure/closet/crate/secure/attack_hand(mob/user as mob)
src.add_fingerprint(user)
if(manifest)
user << "<span class='notice'>You tear the manifest off of the crate.</span>"
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 << "<span class='notice'>You unlock \the [src].</span>"
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()
@@ -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 << "<span class='notice'>You need a crowbar to pry this open!</span>"
return
if(manifest)
user << "<span class='notice'>You tear the manifest off of the crate.</span>"
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 << "<span class='notice'>You need a crowbar to pry this open!</span>"
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)
+10 -2
View File
@@ -290,8 +290,16 @@ var/list/mechtoys = list(
//manifest finalisation
slip.info += "</ul><br>"
slip.info += "CHECK CONTENTS AND STAMP BELOW THE LINE TO CONFIRM RECEIPT OF GOODS<hr>"
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