Files
Polaris/code/game/objects/storage/crates.dm
noisomehollow@lycos.com 7b280b791a #Fixed ninja teleporting. It will not blackscreen when Phase Jaunting near the map edge.
#Phase Shift will no-longer show up in the Ninja verb panel. You can right-click on turfs only to use it.
#Ninjas can now spawn a sword in their active hand. Besides killing dudes, it's also useful for slicing through doors, lockers, walls, and so on. It'll disappear if dropped or thrown, and it cannot be placed in containers.
#Ninja mask now works differently when mimicking voice. You start out as "Unknown" and when toggling the voice changer it will randomly change your name with some variations.
#If you switch the name back to "Unknown" you will re-active voice masking which is much less silly this time. The only way for someone to determine your true name is to remove the mask. Postmodern Space Bushido demands that you only reveal your identity in honorable combat!
#Slightly updated sprites for ninja suit and accessories. Or as I'd like to call them, the Tron suit. Probably wip until I get enough motivation to redo it from scratch.

#People that respawn as death commandos are now manually chosen by an admin.
#Death commandos use the new suit sprites.
#Added a global proc for animations. Currently only used by ninjas.
#Moved around suit icons so they are grouped better.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1433 316c924e-a436-60f5-8080-3fe189b3f50e
2011-04-10 22:41:23 +00:00

325 lines
8.0 KiB
Plaintext

/obj/crate
desc = "A crate."
name = "Crate"
icon = 'storage.dmi'
icon_state = "crate"
density = 1
var/openicon = "crateopen"
var/closedicon = "crate"
req_access = null
var/opened = 0
var/locked = 0
flags = FPRINT
m_amt = 7500
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
/obj/crate/internals
desc = "A internals crate."
name = "Internals crate"
icon = 'storage.dmi'
icon_state = "o2crate"
density = 1
openicon = "o2crateopen"
closedicon = "o2crate"
/obj/crate/trashcart
desc = "A heavy, metal trashcart with wheels."
name = "Trash Cart"
icon = 'storage.dmi'
icon_state = "trashcart"
density = 1
openicon = "trashcartopen"
closedicon = "trashcart"
/obj/crate/medical
desc = "A medical crate."
name = "Medical crate"
icon = 'storage.dmi'
icon_state = "medicalcrate"
density = 1
openicon = "medicalcrateopen"
closedicon = "medicalcrate"
/obj/crate/rcd
desc = "A crate for the storage of the RCD."
name = "RCD crate"
icon = 'storage.dmi'
icon_state = "crate"
density = 1
openicon = "crateopen"
closedicon = "crate"
/obj/crate/freezer
desc = "A freezer."
name = "Freezer"
icon = 'storage.dmi'
icon_state = "freezer"
density = 1
openicon = "freezeropen"
closedicon = "freezer"
/obj/crate/bin
desc = "A large bin."
name = "Large bin"
icon = 'storage.dmi'
icon_state = "largebin"
density = 1
openicon = "largebinopen"
closedicon = "largebin"
/obj/crate/radiation
desc = "A crate with a radiation sign on it."
name = "Radioactive gear crate"
icon = 'storage.dmi'
icon_state = "radiation"
density = 1
openicon = "radiationopen"
closedicon = "radiation"
/obj/item/clothing/suit/radiation
/obj/crate/secure/weapon
desc = "A secure weapons crate."
name = "Weapons crate"
icon = 'storage.dmi'
icon_state = "weaponcrate"
density = 1
openicon = "weaponcrateopen"
closedicon = "weaponcrate"
/obj/crate/secure/plasma
desc = "A secure plasma crate."
name = "Plasma crate"
icon = 'storage.dmi'
icon_state = "plasmacrate"
density = 1
openicon = "plasmacrateopen"
closedicon = "plasmacrate"
/obj/crate/secure/gear
desc = "A secure gear crate."
name = "Gear crate"
icon = 'storage.dmi'
icon_state = "secgearcrate"
density = 1
openicon = "secgearcrateopen"
closedicon = "secgearcrate"
/obj/crate/secure/bin
desc = "A secure bin."
name = "Secure bin"
icon_state = "largebins"
openicon = "largebinsopen"
closedicon = "largebins"
redlight = "largebinr"
greenlight = "largebing"
sparks = "largebinsparks"
emag = "largebinemag"
/obj/crate/secure
desc = "A secure crate."
name = "Secure crate"
icon_state = "securecrate"
openicon = "securecrateopen"
closedicon = "securecrate"
var/redlight = "securecrater"
var/greenlight = "securecrateg"
var/sparks = "securecratesparks"
var/emag = "securecrateemag"
var/broken = 0
locked = 1
/obj/crate/hydroponics
name = "Hydroponics crate"
desc = "All you need to destroy those pesky weeds and pests."
icon = 'storage.dmi'
icon_state = "hydrocrate"
openicon = "hydrocrateopen"
closedicon = "hydrocrate"
density = 1
/* New() // This stuff shouldn't be here, it should be in /datum/supply_packs/hydroponics
..()
new /obj/item/weapon/plantbgone(src)
new /obj/item/weapon/plantbgone(src)
new /obj/item/weapon/plantbgone(src)
new /obj/item/weapon/minihoe(src)
new /obj/item/weapon/weedspray(src)
new /obj/item/weapon/weedspray(src)
new /obj/item/weapon/pestspray(src)
new /obj/item/weapon/pestspray(src)
new /obj/item/weapon/pestspray(src) */
/obj/crate/hydroponics/prespawned
//This exists so the prespawned hydro crates spawn with their contents.
/* name = "Hydroponics crate"
desc = "All you need to destroy those pesky weeds and pests."
icon = 'storage.dmi'
icon_state = "hydrocrate"
openicon = "hydrocrateopen"
closedicon = "hydrocrate"
density = 1*/
New()
..()
new /obj/item/weapon/plantbgone(src)
new /obj/item/weapon/plantbgone(src)
new /obj/item/weapon/plantbgone(src)
new /obj/item/weapon/minihoe(src)
// new /obj/item/weapon/weedspray(src)
// new /obj/item/weapon/weedspray(src)
// new /obj/item/weapon/pestspray(src)
// new /obj/item/weapon/pestspray(src)
// new /obj/item/weapon/pestspray(src)
/obj/crate/New()
..()
spawn(1)
if(!opened) // if closed, any item at the crate's loc is put in the contents
for(var/obj/item/I in src.loc)
if(I.density || I.anchored || I == src) continue
I.loc = src
/obj/crate/secure/New()
..()
if(locked)
overlays = null
overlays += redlight
else
overlays = null
overlays += greenlight
/obj/crate/rcd/New()
..()
new /obj/item/weapon/rcd_ammo(src)
new /obj/item/weapon/rcd_ammo(src)
new /obj/item/weapon/rcd_ammo(src)
new /obj/item/weapon/rcd(src)
/obj/crate/radiation/New()
..()
new /obj/item/clothing/suit/radiation(src)
new /obj/item/clothing/suit/radiation(src)
new /obj/item/clothing/suit/radiation(src)
new /obj/item/clothing/suit/radiation(src)
new /obj/item/clothing/head/radiation(src)
new /obj/item/clothing/head/radiation(src)
new /obj/item/clothing/head/radiation(src)
new /obj/item/clothing/head/radiation(src)
/obj/crate/proc/open()
playsound(src.loc, 'click.ogg', 15, 1, -3)
for(var/obj/O in src)
O.loc = get_turf(src)
for(var/mob/M in src)
M.loc = get_turf(src)
icon_state = openicon
src.opened = 1
/obj/crate/proc/close()
playsound(src.loc, 'click.ogg', 15, 1, -3)
for(var/obj/O in get_turf(src))
if(O.density || O.anchored || O == src) continue
O.loc = src
icon_state = closedicon
src.opened = 0
/obj/crate/attack_hand(mob/user as mob)
if(!locked)
if(opened) close()
else open()
else
user << "\red It's locked."
return
/obj/crate/secure/attack_hand(mob/user as mob)
if(locked && allowed(user) && !broken)
user << "\blue You unlock the [src]."
src.locked = 0
overlays = null
overlays += greenlight
return ..()
/obj/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/card) && src.allowed(user) && !locked && !opened && !broken)
user << "\red You lock the [src]."
src.locked = 1
overlays = null
overlays += redlight
return
else if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/blade)) && locked &&!broken)
overlays = null
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, 'sparks4.ogg', 75, 1)
src.locked = 0
src.broken = 1
user << "\blue You unlock the [src]."
return
return ..()
/obj/crate/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/packageWrap))
var/obj/item/weapon/packageWrap/O = W
if (O.amount > 3)
var/obj/bigDelivery/P = new /obj/bigDelivery(get_turf(src.loc))
P.wrapped = src
src.loc = P
O.amount -= 3
else if(opened)
if(isrobot(user))
return
user.drop_item()
if(W)
W.loc = src.loc
else return attack_hand(user)
/obj/crate/secure/emp_act(severity)
for(var/obj/O in src)
O.emp_act(severity)
if(!broken && !opened && prob(50/severity))
if(!locked)
src.locked = 1
overlays = null
overlays += redlight
else
overlays = null
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, 'sparks4.ogg', 75, 1)
src.locked = 0
if(!opened && prob(20/severity))
if(!locked)
open()
else
src.req_access = list()
src.req_access += pick(get_all_accesses())
..()
/obj/crate/ex_act(severity)
switch(severity)
if(1.0)
for(var/obj/O in src.contents)
del(O)
del(src)
return
if(2.0)
for(var/obj/O in src.contents)
if(prob(50))
del(O)
del(src)
return
if(3.0)
if (prob(50))
del(src)
return
else
return