Files
CHOMPStation2/code/defines/obj/closet.dm

782 lines
21 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/detective
name = "Detective's Closet"
desc = "Holds the detective's clothes while his coat rack is being repaired."
/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. Contains the janitor's gear."
/obj/structure/closet/jcloset2
name = "Cleaner's Closet"
desc = "A bulky (yet mobile) closet. Contains various items for cleaning."
/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 security jumpsuits."
icon_state = "red"
icon_closed = "red"
/obj/structure/closet/wardrobe/warden
name = "Warden's Wardrobe"
desc = "Contains the warden's security uniform."
icon_state = "red"
icon_closed = "red"
/obj/structure/closet/wardrobe/hos
name = "Head of Security's Wardrobe"
desc = "Contains the Head of Security's uniform."
icon_state = "red"
icon_closed = "red"
/obj/structure/closet/wardrobe/hop
name = "Head of Personnel's Wardrobe"
desc = "Contains the Head of Personnel's uniform."
icon_state = "blue"
icon_closed = "blue"
/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/chemistry_white
name = "Chemistry Wardrobe"
desc = "Contains chemistry jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/nurse
name = "Nurse's Wardrobe"
desc = "Contains nurse uniforms."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/cmo
name = "Chief Medical Officer's Wardrobe"
desc = "Contains the Chief Medical Officer's clothing."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/rd
name = "Research Director's Wardrobe"
desc = "Contains the Research Director's clothing."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/scientist
name = "Scientist's Wardrobe"
desc = "Contains the scientist's clothing."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/virology_white
name = "Virology Wardrobe"
desc = "Contains virologist jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/structure/closet/wardrobe/yellow
name = "Yellow Wardrobe"
desc = "Contains yellow jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/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/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