Files
VOREStation/code/defines/obj/closet.dm
SkyMarshal cd5e2476bd Added a new object, for storing premade outfits, that is in clothing closets.
Added clothing closets for several new jobs (Chef, Bartender, Virologist, etc.) and outfitted them.
Paper can now be burned, and acts as a hotspot and a light source when it is on fire.
Tweaked the Allinone broadcasters
Nerfed electrical storms
Response Team leader gets a special assignment/title.
Remapped to add Copiers, Filing Cabinets, and wardrobes
2012-01-26 22:19:33 -07:00

726 lines
20 KiB
Plaintext

/obj/structure/closet
name = "Closet"
desc = "It's a closet!"
icon = 'closet.dmi'
icon_state = "closed"
density = 1
var/icon_closed = "closed"
var/icon_opened = "open"
var/opened = 0
var/welded = 0
var/wall_mounted = 0 //never solid (You can always pass over it)
flags = FPRINT
var/health = 100 //Might be a bit much, dono can always change later //Nerfed -Pete
var/lastbang //
var/lasttry = 0
/obj/structure/closet/acloset
name = "Strange closet"
desc = "It looks weird!"
icon_state = "acloset"
icon_closed = "acloset"
icon_opened = "aclosetopen"
/obj/structure/closet/cabinet
name = "Cabinet"
desc = "Old will forever be in fashion."
icon_state = "cabinet_closed"
icon_closed = "cabinet_closed"
icon_opened = "cabinet_open"
/obj/effect/spresent
name = "strange present"
desc = "It's a ... present?"
icon = 'items.dmi'
icon_state = "strangepresent"
density = 1
anchored = 0
/obj/structure/closet/gmcloset
name = "Formal closet"
desc = "A bulky (yet mobile) closet. Comes with formal clothes"
/obj/structure/closet/emcloset
name = "Emergency Closet"
desc = "A bulky (yet mobile) closet. Comes prestocked with a gasmask and o2 tank for emergencies."
icon_state = "emergency"
icon_closed = "emergency"
icon_opened = "emergencyopen"
/obj/structure/closet/firecloset
name = "Fire Closet"
desc = "A bulky (yet mobile) closet. Comes with supplies to fight fire."
icon_state = "firecloset"
icon_closed = "firecloset"
icon_opened = "fireclosetopen"
/obj/structure/closet/hydrant //wall mounted fire closet
name = "Fire Closet"
desc = "A wall mounted closet which comes with supplies to fight fire."
icon_state = "hydrant"
icon_closed = "hydrant"
icon_opened = "hydrant_open"
anchored = 1
density = 0
wall_mounted = 1
/obj/structure/closet/medical_wall //wall mounted medical closet
name = "First Aid Closet"
desc = "A wall mounted closet which should have some first aid."
icon_state = "medical_wall"
icon_closed = "medical_wall"
icon_opened = "medical_wall_open"
anchored = 1
density = 0
wall_mounted = 1
/obj/structure/closet/fireaxecabinet
name = "Fire Axe Cabinet"
desc = "There is small label that reads \"For Emergency use only\" along with details for safe use of the axe."
var/obj/item/weapon/fireaxe/fireaxe = new/obj/item/weapon/fireaxe
icon_state = "fireaxe1000"
icon_closed = "fireaxe1000"
icon_opened = "fireaxe1100"
anchored = 1
density = 0
var/localopened = 0 //Setting this to keep it from behaviouring like a normal closet and obstructing movement in the map. -Agouri
opened = 1
var/hitstaken = 0
var/locked = 1
var/smashed = 0
attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
//..() //That's very useful, Erro
var/hasaxe = 0 //gonna come in handy later~
if(fireaxe)
hasaxe = 1
if (isrobot(usr) || src.locked)
if(istype(O, /obj/item/device/multitool))
user << "\red Resetting circuitry..."
playsound(user, 'lockreset.ogg', 50, 1)
sleep(50) // Sleeping time~
src.locked = 0
user << "\blue You disable the locking modules."
update_icon()
return
if(istype(O, /obj/item/weapon))
var/obj/item/weapon/W = O
if(src.smashed)
return
else
playsound(user, 'Glasshit.ogg', 100, 1) //We don't want this playing every time
if(W.force < 15)
user << "\blue The cabinet's protective glass glances off the hit."
else
src.hitstaken++
if(src.hitstaken == 4)
playsound(user, 'Glassbr3.ogg', 100, 1) //Break cabinet, receive goodies. Cabinet's fucked for life after that.
src.smashed = 1
src.locked = 0
src.localopened = 1
update_icon()
return
if (istype(O, /obj/item/weapon/fireaxe) && src.localopened)
if(!fireaxe)
if(O.wielded)
user << "\red Unwield the axe first."
return
fireaxe = O
user.drop_item(O)
src.contents += O
user << "\blue You place the fire axe back in the [src.name]."
update_icon()
else
if(src.smashed)
return
else
localopened = !localopened
if(localopened)
icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
if(src.smashed)
return
if(istype(O, /obj/item/device/multitool))
if(localopened)
localopened = 0
icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
return
else
user << "\red Resetting circuitry..."
sleep(50)
src.locked = 1
user << "\blue You re-enable the locking modules."
playsound(user, 'lockenable.ogg', 50, 1)
return
else
localopened = !localopened
if(localopened)
icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
attack_hand(mob/user as mob)
var/hasaxe = 0
if(fireaxe)
hasaxe = 1
if(src.locked)
user <<"\red The cabinet won't budge!"
return
if(localopened)
if(fireaxe)
user.put_in_hand(fireaxe)
fireaxe = null
user << "\blue You take the fire axe from the [name]."
src.add_fingerprint(user)
update_icon()
else
if(src.smashed)
return
else
localopened = !localopened
if(localopened)
src.icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
src.icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
localopened = !localopened //I'm pretty sure we don't need an if(src.smashed) in here. In case I'm wrong and it fucks up teh cabinet, **MARKER**. -Agouri
if(localopened)
src.icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
src.icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
verb/toggle_openness() //nice name, huh? HUH?! -Erro //YEAH -Agouri
set name = "Open/Close"
set category = "Object"
if (isrobot(usr) || src.locked || src.smashed)
if(src.locked)
usr << "\red The cabinet won't budge!"
else if(src.smashed)
usr << "\blue The protective glass is broken!"
return
localopened = !localopened
update_icon()
verb/remove_fire_axe()
set name = "Remove Fire Axe"
set category = "Object"
if (isrobot(usr))
return
if (localopened)
if(fireaxe)
usr.put_in_hand(fireaxe)
fireaxe = null
usr << "\blue You take the Fire axe from the [name]."
else
usr << "\blue The [src.name] is empty."
else
usr << "\blue The [src.name] is closed."
update_icon()
attack_paw(mob/user as mob)
attack_hand(user)
return
attack_ai(mob/user as mob)
if(src.smashed)
user << "\red The security of the cabinet is compromised."
return
else
locked = !locked
if(locked)
user << "\red Cabinet locked."
else
user << "\blue Cabinet unlocked."
return
update_icon() //Template: fireaxe[has fireaxe][is opened][hits taken][is smashed]. If you want the opening or closing animations, add "opening" or "closing" right after the numbers
var/hasaxe = 0
if(fireaxe)
hasaxe = 1
icon_state = text("fireaxe[][][][]",hasaxe,src.localopened,src.hitstaken,src.smashed)
open()
return
close()
return
/obj/structure/closet/toolcloset
name = "Tool Closet"
desc = "A bulky (yet mobile) closet. Contains tools."
icon_state = "toolcloset"
icon_closed = "toolcloset"
icon_opened = "toolclosetopen"
/obj/structure/closet/jcloset
name = "Custodial Closet"
desc = "A bulky (yet mobile) closet. Comes with janitor's clothes and gear."
/obj/structure/closet/lawcloset
name = "Legal Closet"
desc = "A bulky (yet mobile) closet. Comes with lawyer apparel and items."
/obj/structure/closet/coffin
name = "coffin"
desc = "A burial receptacle for the dearly departed."
icon_state = "coffin"
icon_closed = "coffin"
icon_opened = "coffin_open"
/obj/structure/closet/bombcloset
name = "EOD closet"
desc = "A bulky (yet mobile) closet. Comes prestocked with a level 4 bombsuit."
icon_state = "bombsuit"
icon_closed = "bombsuit"
icon_opened = "bombsuitopen"
/obj/structure/closet/bombclosetsecurity
name = "EOD closet"
desc = "A bulky (yet mobile) closet. Comes prestocked with a level 4 bombsuit."
icon_state = "bombsuitsec"
icon_closed = "bombsuitsec"
icon_opened = "bombsuitsecopen"
/obj/structure/closet/l3closet
name = "Level 3 Biohazard Suit"
desc = "A bulky (yet mobile) closet. Comes prestocked with level 3 biohazard gear for emergencies."
icon_state = "bio"
icon_closed = "bio"
icon_opened = "bioopen"
/obj/structure/closet/l3closet/general
icon_state = "bio_general"
icon_closed = "bio_general"
icon_opened = "bio_generalopen"
/obj/structure/closet/l3closet/virology
icon_state = "bio_virology"
icon_closed = "bio_virology"
icon_opened = "bio_virologyopen"
/obj/structure/closet/l3closet/security
icon_state = "bio_security"
icon_closed = "bio_security"
icon_opened = "bio_securityopen"
/obj/structure/closet/l3closet/janitor
icon_state = "bio_janitor"
icon_closed = "bio_janitor"
icon_opened = "bio_janitoropen"
/obj/structure/closet/l3closet/scientist
icon_state = "bio_scientist"
icon_closed = "bio_scientist"
icon_opened = "bio_scientistopen"
/obj/structure/closet/syndicate
name = "Weapons Closet"
desc = "Why is this here?"
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
/obj/structure/closet/syndicate/personal
desc = "Gear preperations closet."
/obj/structure/closet/syndicate/nuclear
desc = "Nuclear preperations closet."
// Inserting the gimmick clothing stuff here for generic items, IE Tacticool stuff
/obj/structure/closet/extinguisher
name = "Extinguisher closet"
desc = "A small wall mounted cabinet designed to hold a fire extinguisher."
icon_state = "extinguisher10"
icon_opened = "extinguisher11"
icon_closed = "extinguisher10"
opened = 1
anchored = 1
density = 0
var/obj/item/weapon/extinguisher/EXTINGUISHER = new/obj/item/weapon/extinguisher
var/localopened = 1
open()
return
close()
return
attackby(var/obj/item/O as obj, var/mob/user as mob)
if (isrobot(usr))
return
if (istype(O, /obj/item/weapon/extinguisher))
if(!EXTINGUISHER)
user.drop_item(O)
src.contents += O
EXTINGUISHER = O
user << "\blue You place the extinguisher in the [src.name]."
else
localopened = !localopened
else
localopened = !localopened
update_icon()
attack_hand(mob/user as mob)
if(localopened)
if(EXTINGUISHER)
user.put_in_hand(EXTINGUISHER)
EXTINGUISHER = null
user << "\blue You take the extinguisher from the [name]."
else
localopened = !localopened
else
localopened = !localopened
update_icon()
verb/toggle_openness() //nice name, huh? HUH?!
set name = "Open/Close"
set category = "Object"
if (isrobot(usr))
return
localopened = !localopened
update_icon()
verb/remove_extinguisher()
set name = "Remove Extinguisher"
set category = "Object"
if (isrobot(usr))
return
if (localopened)
if(EXTINGUISHER)
usr.put_in_hand(EXTINGUISHER)
EXTINGUISHER = null
usr << "\blue You take the extinguisher from the [name]."
else
usr << "\blue The [name] is empty."
else
usr << "\blue The [name] is closed."
update_icon()
attack_paw(mob/user as mob)
attack_hand(user)
return
attack_ai(mob/user as mob)
return
update_icon()
var/hasextinguisher = 0
if(EXTINGUISHER)
hasextinguisher = 1
icon_state = text("extinguisher[][]",hasextinguisher,src.localopened)
/obj/structure/closet/gimmick
name = "Administrative Supply Closet"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
desc = "Closet of things that have no right being here."
anchored = 0
/obj/structure/closet/gimmick/russian
name = "Russian Surplus"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
desc = "Russian Surplus Closet"
/obj/structure/closet/gimmick/tacticool
name = "Tacticool Gear"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
desc = "Tacticool Gear Closet"
/obj/structure/closet/thunderdome
desc = "Everything you need!"
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
name = "Thunderdome closet."
anchored = 1
/obj/structure/closet/thunderdome/tdred
desc = "Everything you need!"
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
name = "Thunderdome closet."
/obj/structure/closet/thunderdome/tdgreen
desc = "Everything you need!"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
name = "Thunderdome closet."
/obj/structure/closet/malf/suits
desc = "Gear preparations closet."
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
/obj/structure/closet/wardrobe
desc = "A bulky (yet mobile) wardrobe closet. Comes prestocked with 6 changes of clothes."
name = "Wardrobe"
icon_state = "blue"
icon_closed = "blue"
/obj/structure/closet/wardrobe/black
name = "Black Wardrobe"
desc = "Contains black jumpsuits."
icon_state = "black"
icon_closed = "black"
/obj/structure/closet/wardrobe/chaplain_black
name = "Chaplain Wardrobe"
desc = "Closet of basic chaplain clothes."
icon_state = "black"
icon_closed = "black"
/obj/structure/closet/wardrobe/green
name = "Green Wardrobe"
desc = "Contains green jumpsuits."
icon_state = "green"
icon_closed = "green"
/obj/structure/closet/wardrobe/mixed
name = "Mixed Wardrobe"
desc = "This appears to contain several different sets of clothing."
icon_state = "mixed"
icon_closed = "mixed"
/obj/structure/closet/wardrobe/orange
name = "Prisoners Wardrobe"
desc = "Contains orange jumpsuits."
icon_state = "orange"
icon_closed = "orange"
/obj/structure/closet/wardrobe/pink
name = "Pink Wardrobe"
desc = "Contains pink jumpsuits."
icon_state = "pink"
icon_closed = "pink"
/obj/structure/closet/wardrobe/red
name = "Red Wardrobe"
desc = "Contains red jumpsuits."
icon_state = "red"
icon_closed = "red"
/obj/structure/closet/wardrobe/white
name = "White Wardrobe"
desc = "Contains white jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/toxins_white
name = "Toxins Wardrobe"
desc = "Contains toxins jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/genetics_white
name = "Genetics Wardrobe"
desc = "Contains genetics jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/medic_white
name = "Doctor's Wardrobe"
desc = "Contains medical jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/yellow
name = "Yellow Wardrobe"
desc = "Contains yellow jumpsuits."
icon_state = "wardrobe-y"
icon_closed = "wardrobe-y"
/obj/structure/closet/wardrobe/engineering_yellow
name = "Engineering Wardrobe"
desc = "Contains engineering jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/obj/structure/closet/wardrobe/robotics_yellow
name = "Robotics Wardrobe"
desc = "Contains robotics jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/obj/structure/closet/wardrobe/atmospherics_yellow
name = "Atmospherics Wardrobe"
desc = "Contains atmospheric jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/obj/structure/closet/wardrobe/grey
name = "Grey Wardrobe"
desc = "Contains grey jumpsuits."
icon_state = "grey"
icon_closed = "grey"
/obj/structure/closet/wardrobe/bartender_black
name = "Bartender Wardrobe"
desc = "Closet of basic bartending clothes."
icon_state = "black"
icon_closed = "black"
/obj/structure/closet/wardrobe/chef_white
name = "Chef's Wardrobe"
desc = "Contains chef jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/hydro_green
name = "Hydroponics Wardrobe"
desc = "Contains botanist jumpsuits."
icon_state = "green"
icon_closed = "green"
/obj/structure/closet/wardrobe/librarian_red
name = "Librarian Wardrobe"
desc = "Contains librarian jumpsuits."
icon_state = "red"
icon_closed = "red"
/obj/structure/closet/wardrobe/cargo_yellow
name = "Cargo Tech Wardrobe"
desc = "Contains cargo tech jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/obj/structure/closet/wardrobe/qm_yellow
name = "Quartermaster Wardrobe"
desc = "Contains quartermaster jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/obj/structure/closet/wardrobe/virology_white
name = "Virology Wardrobe"
desc = "Contains virologist jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/secure_closet
desc = "An immobile card-locked storage closet."
name = "Security Locker"
icon = 'closet.dmi'
icon_state = "secure1"
density = 1
opened = 0
var/locked = 1
var/broken = 0
var/large = 1
icon_closed = "secure"
var/icon_locked = "secure1"
icon_opened = "secureopen"
var/icon_broken = "securebroken"
var/icon_off = "secureoff"
wall_mounted = 0 //never solid (You can always pass over it)
health = 200
/obj/structure/closet/secure_closet/medical_wall
name = "First Aid Closet"
desc = "A wall mounted closet which --should-- contain medical supplies."
icon_state = "medical_wall_locked"
icon_closed = "medical_wall_unlocked"
icon_locked = "medical_wall_locked"
icon_opened = "medical_wall_open"
icon_broken = "medical_wall_spark"
icon_off = "medical_wall_off"
anchored = 1
density = 0
wall_mounted = 1
req_access = list(access_medical)
/obj/structure/closet/secure_closet/personal
desc = "The first card swiped gains control."
name = "Personal Closet"
/obj/structure/closet/secure_closet/personal/patient
name = "Patient's closet"
/obj/structure/closet/secure_closet/kitchen
name = "Kitchen Cabinet"
req_access = list(access_kitchen)
/obj/structure/closet/secure_closet/kitchen/mining
req_access = list()
/obj/structure/closet/secure_closet/meat
name = "Meat Fridge"
icon_state = "fridge1"
icon_closed = "fridge"
icon_locked = "fridge1"
icon_opened = "fridgeopen"
icon_broken = "fridgebroken"
icon_off = "fridge1"
/obj/structure/closet/secure_closet/fridge
name = "Refrigerator"
icon_state = "fridge1"
icon_closed = "fridge"
icon_locked = "fridge1"
icon_opened = "fridgeopen"
icon_broken = "fridgebroken"
icon_off = "fridge1"
/obj/structure/closet/secure_closet/money_freezer
name = "Freezer"
icon_state = "fridge1"
icon_closed = "fridge"
icon_locked = "fridge1"
icon_opened = "fridgeopen"
icon_broken = "fridgebroken"
icon_off = "fridge1"
req_access = list(access_heads_vault)
/obj/structure/closet/secure_closet/wall
name = "wall locker"
req_access = list(access_security)
icon_state = "wall-locker1"
density = 1
icon_closed = "wall-locker"
icon_locked = "wall-locker1"
icon_opened = "wall-lockeropen"
icon_broken = "wall-lockerbroken"
icon_off = "wall-lockeroff"
//too small to put a man in
large = 0