Ports Bay's outfit system

This commit is contained in:
Anewbe
2017-10-01 02:31:37 -05:00
parent ab0c05bdf7
commit 1b7ecf6789
26 changed files with 1442 additions and 770 deletions

View File

@@ -0,0 +1,3 @@
#define OUTFIT_HAS_JETPACK 1
#define OUTFIT_HAS_BACKPACK 2
#define OUTFIT_EXTENDED_SURVIVAL 4

View File

@@ -0,0 +1,61 @@
/decl/hierarchy/outfit/tunnel_clown
name = "Tunnel clown"
uniform = /obj/item/clothing/under/rank/clown
shoes = /obj/item/clothing/shoes/clown_shoes
gloves = /obj/item/clothing/gloves/black
mask = /obj/item/clothing/mask/gas/clown_hat
head = /obj/item/clothing/head/chaplain_hood
l_ear = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/thermal/plain/monocle
suit = /obj/item/clothing/suit/storage/hooded/chaplain_hoodie
r_pocket = /obj/item/weapon/bikehorn
r_hand = /obj/item/weapon/material/twohanded/fireaxe
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/syndicate/station_access
id_pda_assignment = "Tunnel Clown!"
/decl/hierarchy/outfit/masked_killer
name = "Masked killer"
uniform = /obj/item/clothing/under/overalls
shoes = /obj/item/clothing/shoes/white
gloves = /obj/item/clothing/gloves/sterile/latex
mask = /obj/item/clothing/mask/surgical
head = /obj/item/clothing/head/welding
l_ear = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/thermal/plain/monocle
suit = /obj/item/clothing/suit/storage/apron
l_pocket = /obj/item/weapon/material/hatchet/tacknife
r_pocket = /obj/item/weapon/surgical/scalpel
r_hand = /obj/item/weapon/material/twohanded/fireaxe
/decl/hierarchy/outfit/masked_killer/post_equip(var/mob/living/carbon/human/H)
var/victim = get_mannequin(H.ckey)
for(var/obj/item/carried_item in H.get_equipped_items(TRUE))
carried_item.add_blood(victim) //Oh yes, there will be blood.. just not blood from the killer because that's odd
/decl/hierarchy/outfit/professional
name = "Professional"
uniform = /obj/item/clothing/under/suit_jacket{ starting_accessories=list(/obj/item/clothing/accessory/wcoat) }
shoes = /obj/item/clothing/shoes/black
gloves = /obj/item/clothing/gloves/black
l_ear = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/sunglasses
l_pocket = /obj/item/weapon/melee/energy/sword
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/syndicate/station_access
pda_slot = slot_belt
pda_type = /obj/item/device/pda/heads
/decl/hierarchy/outfit/professional/post_equip(var/mob/living/carbon/human/H)
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(H)
for(var/obj/item/briefcase_item in sec_briefcase)
qdel(briefcase_item)
for(var/i=3, i>0, i--)
sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000
sec_briefcase.contents += new /obj/item/weapon/gun/energy/crossbow
sec_briefcase.contents += new /obj/item/weapon/gun/projectile/revolver/mateba
sec_briefcase.contents += new /obj/item/ammo_magazine/s357
sec_briefcase.contents += new /obj/item/weapon/plastique
H.equip_to_slot_or_del(sec_briefcase, slot_l_hand)

View File

@@ -0,0 +1 @@
#define OUTFIT_JOB_NAME(job_name) ("Job - " + job_name)

View File

@@ -0,0 +1,28 @@
/decl/hierarchy/outfit/job/cargo
l_ear = /obj/item/device/radio/headset/headset_cargo
hierarchy_type = /decl/hierarchy/outfit/job/cargo
/decl/hierarchy/outfit/job/cargo/qm
name = OUTFIT_JOB_NAME("Cargo")
uniform = /obj/item/clothing/under/rank/cargo
shoes = /obj/item/clothing/shoes/brown
glasses = /obj/item/clothing/glasses/sunglasses
l_hand = /obj/item/weapon/clipboard
id_type = /obj/item/weapon/card/id/cargo/head
pda_type = /obj/item/device/pda/quartermaster
/decl/hierarchy/outfit/job/cargo/cargo_tech
name = OUTFIT_JOB_NAME("Cargo technician")
uniform = /obj/item/clothing/under/rank/cargotech
id_type = /obj/item/weapon/card/id/cargo/cargo_tech
pda_type = /obj/item/device/pda/cargo
/decl/hierarchy/outfit/job/cargo/mining
name = OUTFIT_JOB_NAME("Shaft miner")
uniform = /obj/item/clothing/under/rank/miner
backpack = /obj/item/weapon/storage/backpack/industrial
satchel_one = /obj/item/weapon/storage/backpack/satchel/eng
id_type = /obj/item/weapon/card/id/cargo/mining
pda_type = /obj/item/device/pda/shaftminer
backpack_contents = list(/obj/item/weapon/crowbar = 1, /obj/item/weapon/storage/bag/ore = 1)
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL

View File

@@ -0,0 +1,63 @@
/decl/hierarchy/outfit/job/assistant
name = OUTFIT_JOB_NAME("Assistant")
/decl/hierarchy/outfit/job/service
l_ear = /obj/item/device/radio/headset/headset_service
hierarchy_type = /decl/hierarchy/outfit/job/service
/decl/hierarchy/outfit/job/service/bartender
name = OUTFIT_JOB_NAME("Bartender")
uniform = /obj/item/clothing/under/rank/bartender
id_type = /obj/item/weapon/card/id/civilian/bartender
pda_type = /obj/item/device/pda/bar
/decl/hierarchy/outfit/job/service/chef
name = OUTFIT_JOB_NAME("Chef")
uniform = /obj/item/clothing/under/rank/chef
suit = /obj/item/clothing/suit/chef
head = /obj/item/clothing/head/chefhat
id_type = /obj/item/weapon/card/id/civilian/chef
pda_type = /obj/item/device/pda/chef
/decl/hierarchy/outfit/job/service/gardener
name = OUTFIT_JOB_NAME("Gardener")
uniform = /obj/item/clothing/under/rank/hydroponics
suit = /obj/item/clothing/suit/storage/apron
gloves = /obj/item/clothing/gloves/botanic_leather
r_pocket = /obj/item/device/analyzer/plant_analyzer
backpack = /obj/item/weapon/storage/backpack/hydroponics
satchel_one = /obj/item/weapon/storage/backpack/satchel/hyd
id_type = /obj/item/weapon/card/id/civilian/botanist
pda_type = /obj/item/device/pda/botanist
messenger_bag = /obj/item/weapon/storage/backpack/messenger/hyd
/decl/hierarchy/outfit/job/service/janitor
name = OUTFIT_JOB_NAME("Janitor")
uniform = /obj/item/clothing/under/rank/janitor
id_type = /obj/item/weapon/card/id/civilian/janitor
pda_type = /obj/item/device/pda/janitor
/decl/hierarchy/outfit/job/librarian
name = OUTFIT_JOB_NAME("Librarian")
uniform = /obj/item/clothing/under/suit_jacket/red
l_hand = /obj/item/weapon/barcodescanner
id_type = /obj/item/weapon/card/id/civilian/librarian
pda_type = /obj/item/device/pda/librarian
/decl/hierarchy/outfit/job/internal_affairs_agent
name = OUTFIT_JOB_NAME("Internal affairs agent")
l_ear = /obj/item/device/radio/headset/ia
uniform = /obj/item/clothing/under/rank/internalaffairs
suit = /obj/item/clothing/suit/storage/toggle/internalaffairs
shoes = /obj/item/clothing/shoes/brown
glasses = /obj/item/clothing/glasses/sunglasses/big
l_hand = /obj/item/weapon/storage/briefcase
id_type = /obj/item/weapon/card/id/civilian/internal_affairs_agent
pda_type = /obj/item/device/pda/lawyer
/decl/hierarchy/outfit/job/chaplain
name = OUTFIT_JOB_NAME("Chaplain")
uniform = /obj/item/clothing/under/rank/chaplain
l_hand = /obj/item/weapon/storage/bible
id_type = /obj/item/weapon/card/id/civilian/chaplain
pda_type = /obj/item/device/pda/chaplain

View File

@@ -0,0 +1,35 @@
/decl/hierarchy/outfit/job/captain
name = OUTFIT_JOB_NAME("Captain")
head = /obj/item/clothing/head/caphat
glasses = /obj/item/clothing/glasses/sunglasses
uniform = /obj/item/clothing/under/rank/captain
l_ear = /obj/item/device/radio/headset/heads/captain
shoes = /obj/item/clothing/shoes/brown
backpack = /obj/item/weapon/storage/backpack/captain
satchel_one = /obj/item/weapon/storage/backpack/satchel/cap
id_type = /obj/item/weapon/card/id/gold/captain
pda_type = /obj/item/device/pda/captain
backpack_contents = list(/obj/item/weapon/storage/box/ids = 1)
messenger_bag = /obj/item/weapon/storage/backpack/messenger/com
/decl/hierarchy/outfit/job/captain/post_equip(var/mob/living/carbon/human/H)
..()
if(H.age>49)
// Since we can have something other than the default uniform at this
// point, check if we can actually attach the medal
var/obj/item/clothing/uniform = H.w_uniform
if(uniform)
var/obj/item/clothing/accessory/medal/gold/captain/medal = new()
if(uniform.can_attach_accessory(medal))
uniform.attach_accessory(null, medal)
else
qdel(medal)
/decl/hierarchy/outfit/job/hop
name = OUTFIT_JOB_NAME("Head of Personnel")
uniform = /obj/item/clothing/under/rank/head_of_personnel
l_ear = /obj/item/device/radio/headset/heads/hop
shoes = /obj/item/clothing/shoes/brown
id_type = /obj/item/weapon/card/id/silver/hop
pda_type = /obj/item/device/pda/heads/hop
backpack_contents = list(/obj/item/weapon/storage/box/ids = 1)

View File

@@ -0,0 +1,34 @@
/decl/hierarchy/outfit/job/engineering
hierarchy_type = /decl/hierarchy/outfit/job/engineering
belt = /obj/item/weapon/storage/belt/utility/full
l_ear = /obj/item/device/radio/headset/headset_eng
shoes = /obj/item/clothing/shoes/boots/workboots
backpack = /obj/item/weapon/storage/backpack/industrial
satchel_one = /obj/item/weapon/storage/backpack/satchel/eng
messenger_bag = /obj/item/weapon/storage/backpack/messenger/engi
pda_slot = slot_l_store
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL
/decl/hierarchy/outfit/job/engineering/chief_engineer
name = OUTFIT_JOB_NAME("Chief engineer")
head = /obj/item/clothing/head/hardhat/white
uniform = /obj/item/clothing/under/rank/chief_engineer
l_ear = /obj/item/device/radio/headset/heads/ce
gloves = /obj/item/clothing/gloves/black
id_type = /obj/item/weapon/card/id/engineering/head
pda_type = /obj/item/device/pda/heads/ce
/decl/hierarchy/outfit/job/engineering/engineer
name = OUTFIT_JOB_NAME("Engineer")
head = /obj/item/clothing/head/hardhat
uniform = /obj/item/clothing/under/rank/engineer
r_pocket = /obj/item/device/t_scanner
id_type = /obj/item/weapon/card/id/engineering/engineer
pda_type = /obj/item/device/pda/engineering
/decl/hierarchy/outfit/job/engineering/atmos
name = OUTFIT_JOB_NAME("Atmospheric technician")
uniform = /obj/item/clothing/under/rank/atmospheric_technician
belt = /obj/item/weapon/storage/belt/utility/atmostech
id_type = /obj/item/weapon/card/id/engineering/atmos
pda_type = /obj/item/device/pda/atmos

View File

@@ -0,0 +1,21 @@
/decl/hierarchy/outfit/job
name = "Standard Gear"
hierarchy_type = /decl/hierarchy/outfit/job
uniform = /obj/item/clothing/under/color/grey
l_ear = /obj/item/device/radio/headset
shoes = /obj/item/clothing/shoes/black
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/civilian
pda_slot = slot_belt
pda_type = /obj/item/device/pda
flags = OUTFIT_HAS_BACKPACK
/decl/hierarchy/outfit/job/equip_id(mob/living/carbon/human/H)
var/obj/item/weapon/card/id/C = ..()
if(H.mind)
if(H.mind.initial_account)
C.associated_account_number = H.mind.initial_account.account_number
return C

View File

@@ -0,0 +1,105 @@
/decl/hierarchy/outfit/job/medical
hierarchy_type = /decl/hierarchy/outfit/job/medical
l_ear = /obj/item/device/radio/headset/headset_med
shoes = /obj/item/clothing/shoes/white
pda_type = /obj/item/device/pda/medical
pda_slot = slot_l_store
backpack = /obj/item/weapon/storage/backpack/medic
satchel_one = /obj/item/weapon/storage/backpack/satchel/med
messenger_bag = /obj/item/weapon/storage/backpack/messenger/med
/decl/hierarchy/outfit/job/medical/cmo
name = OUTFIT_JOB_NAME("Chief Medical Officer")
l_ear =/obj/item/device/radio/headset/heads/cmo
uniform = /obj/item/clothing/under/rank/chief_medical_officer
suit = /obj/item/clothing/suit/storage/toggle/labcoat/cmo
shoes = /obj/item/clothing/shoes/brown
l_hand = /obj/item/weapon/storage/firstaid/adv
r_pocket = /obj/item/device/flashlight/pen
id_type = /obj/item/weapon/card/id/medical/head
pda_type = /obj/item/device/pda/heads/cmo
/decl/hierarchy/outfit/job/medical/doctor
name = OUTFIT_JOB_NAME("Medical Doctor")
uniform = /obj/item/clothing/under/rank/medical
suit = /obj/item/clothing/suit/storage/toggle/labcoat
l_hand = /obj/item/weapon/storage/firstaid/adv
r_pocket = /obj/item/device/flashlight/pen
id_type = /obj/item/weapon/card/id/medical/doctor
/decl/hierarchy/outfit/job/medical/doctor/emergency_physician
name = OUTFIT_JOB_NAME("Emergency physician")
suit = /obj/item/clothing/suit/storage/toggle/fr_jacket
/decl/hierarchy/outfit/job/medical/doctor/surgeon
name = OUTFIT_JOB_NAME("Surgeon")
uniform = /obj/item/clothing/under/rank/medical/scrubs
head = /obj/item/clothing/head/surgery/blue
/decl/hierarchy/outfit/job/medical/doctor/virologist
name = OUTFIT_JOB_NAME("Virologist")
uniform = /obj/item/clothing/under/rank/virologist
suit = /obj/item/clothing/suit/storage/toggle/labcoat/virologist
mask = /obj/item/clothing/mask/surgical
backpack = /obj/item/weapon/storage/backpack/virology
satchel_one = /obj/item/weapon/storage/backpack/satchel/vir
/decl/hierarchy/outfit/job/medical/doctor/nurse
name = OUTFIT_JOB_NAME("Nurse")
suit = null
/decl/hierarchy/outfit/job/medical/doctor/nurse/pre_equip(mob/living/carbon/human/H)
..()
if(H.gender == FEMALE)
if(prob(50))
uniform = /obj/item/clothing/under/rank/nursesuit
else
uniform = /obj/item/clothing/under/rank/nurse
head = /obj/item/clothing/head/nursehat
else
uniform = /obj/item/clothing/under/rank/medical/scrubs/purple
head = null
/decl/hierarchy/outfit/job/medical/chemist
name = OUTFIT_JOB_NAME("Chemist")
uniform = /obj/item/clothing/under/rank/chemist
suit = /obj/item/clothing/suit/storage/toggle/labcoat/chemist
backpack = /obj/item/weapon/storage/backpack/chemistry
satchel_one = /obj/item/weapon/storage/backpack/satchel/chem
id_type = /obj/item/weapon/card/id/medical/chemist
pda_type = /obj/item/device/pda/chemist
/decl/hierarchy/outfit/job/medical/geneticist
name = OUTFIT_JOB_NAME("Geneticist")
uniform = /obj/item/clothing/under/rank/geneticist
suit = /obj/item/clothing/suit/storage/toggle/labcoat/genetics
backpack = /obj/item/weapon/storage/backpack/genetics
r_pocket = /obj/item/device/flashlight/pen
satchel_one = /obj/item/weapon/storage/backpack/satchel/gen
id_type = /obj/item/weapon/card/id/medical/geneticist
pda_type = /obj/item/device/pda/geneticist
/decl/hierarchy/outfit/job/medical/psychiatrist
name = OUTFIT_JOB_NAME("Psychiatrist")
uniform = /obj/item/clothing/under/rank/psych
suit = /obj/item/clothing/suit/storage/toggle/labcoat
shoes = /obj/item/clothing/shoes/laceup
id_type = /obj/item/weapon/card/id/medical/psychiatrist
/decl/hierarchy/outfit/job/medical/psychiatrist/psychologist
name = OUTFIT_JOB_NAME("Psychologist")
uniform = /obj/item/clothing/under/rank/psych/turtleneck
/decl/hierarchy/outfit/job/medical/paramedic
name = OUTFIT_JOB_NAME("Paramedic")
uniform = /obj/item/clothing/under/rank/medical/scrubs/black
suit = /obj/item/clothing/suit/storage/toggle/fr_jacket
shoes = /obj/item/clothing/shoes/boots/jackboots
l_hand = /obj/item/weapon/storage/firstaid/adv
belt = /obj/item/weapon/storage/belt/medical/emt
id_type = /obj/item/weapon/card/id/medical/paramedic
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL
/decl/hierarchy/outfit/job/medical/paramedic/emt
name = OUTFIT_JOB_NAME("Emergency medical technician")
uniform = /obj/item/clothing/under/rank/medical/paramedic

View File

@@ -0,0 +1,11 @@
/decl/hierarchy/outfit/job/silicon
head = /obj/item/clothing/head/cardborg
hierarchy_type = /decl/hierarchy/outfit/job/silicon
/decl/hierarchy/outfit/job/silicon/ai
name = OUTFIT_JOB_NAME("AI")
suit = /obj/item/clothing/suit/straight_jacket
/decl/hierarchy/outfit/job/silicon/cyborg
name = OUTFIT_JOB_NAME("Cyborg")
suit = /obj/item/clothing/suit/cardborg

View File

@@ -0,0 +1,41 @@
/decl/hierarchy/outfit/job/science
hierarchy_type = /decl/hierarchy/outfit/job/science
l_ear = /obj/item/device/radio/headset/headset_sci
suit = /obj/item/clothing/suit/storage/toggle/labcoat
shoes = /obj/item/clothing/shoes/white
pda_type = /obj/item/device/pda/science
backpack = /obj/item/weapon/storage/backpack/toxins
satchel_one = /obj/item/weapon/storage/backpack/satchel/tox
messenger_bag = /obj/item/weapon/storage/backpack/messenger/tox
/decl/hierarchy/outfit/job/science/rd
name = OUTFIT_JOB_NAME("Research Director")
l_ear = /obj/item/device/radio/headset/heads/rd
uniform = /obj/item/clothing/under/rank/research_director
shoes = /obj/item/clothing/shoes/brown
l_hand = /obj/item/weapon/clipboard
id_type = /obj/item/weapon/card/id/science/head
pda_type = /obj/item/device/pda/heads/rd
/decl/hierarchy/outfit/job/science/scientist
name = OUTFIT_JOB_NAME("Scientist")
uniform = /obj/item/clothing/under/rank/scientist
id_type = /obj/item/weapon/card/id/science/scientist
suit = /obj/item/clothing/suit/storage/toggle/labcoat/science
/decl/hierarchy/outfit/job/science/xenobiologist
name = OUTFIT_JOB_NAME("Xenobiologist")
uniform = /obj/item/clothing/under/rank/scientist
id_type = /obj/item/weapon/card/id/science/xenobiologist
suit = /obj/item/clothing/suit/storage/toggle/labcoat/science
/decl/hierarchy/outfit/job/science/roboticist
name = OUTFIT_JOB_NAME("Roboticist")
uniform = /obj/item/clothing/under/rank/scientist
shoes = /obj/item/clothing/shoes/black
belt = /obj/item/weapon/storage/belt/utility/full
id_type = /obj/item/weapon/card/id/science/roboticist
pda_slot = slot_r_store
pda_type = /obj/item/device/pda/roboticist
backpack = /obj/item/weapon/storage/backpack
satchel_one = /obj/item/weapon/storage/backpack/satchel/norm

View File

@@ -0,0 +1,52 @@
/decl/hierarchy/outfit/job/security
hierarchy_type = /decl/hierarchy/outfit/job/security
glasses = /obj/item/clothing/glasses/sunglasses/sechud
l_ear = /obj/item/device/radio/headset/headset_sec
gloves = /obj/item/clothing/gloves/black
shoes = /obj/item/clothing/shoes/boots/jackboots
backpack = /obj/item/weapon/storage/backpack/security
satchel_one = /obj/item/weapon/storage/backpack/satchel/sec
backpack_contents = list(/obj/item/weapon/handcuffs = 1)
messenger_bag = /obj/item/weapon/storage/backpack/messenger/sec
/decl/hierarchy/outfit/job/security/hos
name = OUTFIT_JOB_NAME("Head of security")
l_ear = /obj/item/device/radio/headset/heads/hos
uniform = /obj/item/clothing/under/rank/head_of_security
id_type = /obj/item/weapon/card/id/security/head
pda_type = /obj/item/device/pda/heads/hos
backpack_contents = list(/obj/item/weapon/handcuffs = 1)
/decl/hierarchy/outfit/job/security/warden
name = OUTFIT_JOB_NAME("Warden")
uniform = /obj/item/clothing/under/rank/warden
l_pocket = /obj/item/device/flash
id_type = /obj/item/weapon/card/id/security //warden
pda_type = /obj/item/device/pda/warden
/decl/hierarchy/outfit/job/security/detective
name = OUTFIT_JOB_NAME("Detective")
head = /obj/item/clothing/head/det
uniform = /obj/item/clothing/under/det
suit = /obj/item/clothing/suit/storage/det_trench
l_pocket = /obj/item/weapon/flame/lighter/zippo
shoes = /obj/item/clothing/shoes/laceup
r_hand = /obj/item/weapon/storage/briefcase/crimekit
id_type = /obj/item/weapon/card/id/security //detective
pda_type = /obj/item/device/pda/detective
backpack = /obj/item/weapon/storage/backpack
satchel_one = /obj/item/weapon/storage/backpack/satchel/norm
backpack_contents = list(/obj/item/weapon/storage/box/evidence = 1)
/decl/hierarchy/outfit/job/security/detective/forensic
name = OUTFIT_JOB_NAME("Forensic technician")
head = null
suit = /obj/item/clothing/suit/storage/forensics/blue
/decl/hierarchy/outfit/job/security/officer
name = OUTFIT_JOB_NAME("Security Officer")
uniform = /obj/item/clothing/under/rank/security
l_pocket = /obj/item/device/flash
r_pocket = /obj/item/weapon/handcuffs
id_type = /obj/item/weapon/card/id/security
pda_type = /obj/item/device/pda/security

View File

@@ -0,0 +1,55 @@
/decl/hierarchy/outfit/standard_space_gear
name = "Standard space gear"
shoes = /obj/item/clothing/shoes/black
head = /obj/item/clothing/head/helmet/space
suit = /obj/item/clothing/suit/space
uniform = /obj/item/clothing/under/color/grey
back = /obj/item/weapon/tank/jetpack/oxygen
mask = /obj/item/clothing/mask/breath
flags = OUTFIT_HAS_JETPACK
/decl/hierarchy/outfit/emergency_space_gear
name = "Emergency space gear"
shoes = /obj/item/clothing/shoes/black
head = /obj/item/clothing/head/helmet/space/emergency
suit = /obj/item/clothing/suit/space/emergency
uniform = /obj/item/clothing/under/color/grey
back = /obj/item/weapon/tank/oxygen
mask = /obj/item/clothing/mask/breath
/decl/hierarchy/outfit/soviet_soldier
name = "Soviet soldier"
uniform = /obj/item/clothing/under/soviet
shoes = /obj/item/clothing/shoes/boots/combat
head = /obj/item/clothing/head/ushanka
gloves = /obj/item/clothing/gloves/combat
back = /obj/item/weapon/storage/backpack/satchel
belt = /obj/item/weapon/gun/projectile/revolver/mateba
/decl/hierarchy/outfit/soviet_soldier/admiral
name = "Soviet admiral"
head = /obj/item/clothing/head/hgpiratecap
l_ear = /obj/item/device/radio/headset/heads/captain
glasses = /obj/item/clothing/glasses/thermal/plain/eyepatch
suit = /obj/item/clothing/suit/hgpirate
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/centcom //station
id_pda_assignment = "Admiral"
/decl/hierarchy/outfit/merchant
name = "Merchant"
shoes = /obj/item/clothing/shoes/black
l_ear = /obj/item/device/radio/headset
uniform = /obj/item/clothing/under/color/grey
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/civilian //merchant
pda_slot = slot_r_store
pda_type = /obj/item/device/pda/chef //cause I like the look
id_pda_assignment = "Merchant"
/decl/hierarchy/outfit/merchant/vox
name = "Merchant - Vox"
shoes = /obj/item/clothing/shoes/boots/jackboots/toeless
uniform = /obj/item/clothing/under/vox/vox_robes
suit = /obj/item/clothing/suit/armor/vox_scrap

View File

@@ -0,0 +1,32 @@
/decl/hierarchy/outfit/nanotrasen
hierarchy_type = /decl/hierarchy/outfit/nanotrasen
uniform = /obj/item/clothing/under/rank/centcom
shoes = /obj/item/clothing/shoes/laceup
gloves = /obj/item/clothing/gloves/white
l_ear = /obj/item/device/radio/headset/heads/hop
glasses = /obj/item/clothing/glasses/sunglasses
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/centcom //station
pda_slot = slot_r_store
pda_type = /obj/item/device/pda/heads
/decl/hierarchy/outfit/nanotrasen/representative
name = "Nanotrasen representative"
belt = /obj/item/weapon/clipboard
id_pda_assignment = "NanoTrasen Navy Representative"
/decl/hierarchy/outfit/nanotrasen/officer
name = "Nanotrasen officer"
head = /obj/item/clothing/head/beret/centcom/officer
l_ear = /obj/item/device/radio/headset/heads/captain
belt = /obj/item/weapon/gun/energy
id_pda_assignment = "NanoTrasen Navy Officer"
/decl/hierarchy/outfit/nanotrasen/captain
name = "Nanotrasen captain"
uniform = /obj/item/clothing/under/rank/centcom_captain
l_ear = /obj/item/device/radio/headset/heads/captain
head = /obj/item/clothing/head/beret/centcom/captain
belt = /obj/item/weapon/gun/energy
id_pda_assignment = "NanoTrasen Navy Captain"

View File

@@ -0,0 +1,187 @@
var/list/outfits_decls_
var/list/outfits_decls_root_
var/list/outfits_decls_by_type_
/proc/outfit_by_type(var/outfit_type)
if(!outfits_decls_root_)
init_outfit_decls()
return outfits_decls_by_type_[outfit_type]
/proc/outfits()
if(!outfits_decls_root_)
init_outfit_decls()
return outfits_decls_
/proc/init_outfit_decls()
if(outfits_decls_root_)
return
outfits_decls_ = list()
outfits_decls_by_type_ = list()
outfits_decls_root_ = new/decl/hierarchy/outfit()
/decl/hierarchy/outfit
name = "Naked"
var/uniform = null
var/suit = null
var/back = null
var/belt = null
var/gloves = null
var/shoes = null
var/head = null
var/mask = null
var/l_ear = null
var/r_ear = null
var/glasses = null
var/id = null
var/l_pocket = null
var/r_pocket = null
var/suit_store = null
var/r_hand = null
var/l_hand = null
var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format
var/id_type
var/id_desc
var/id_slot
var/pda_type
var/pda_slot
var/id_pda_assignment
var/backpack = /obj/item/weapon/storage/backpack
var/satchel_one = /obj/item/weapon/storage/backpack/satchel/norm
var/satchel_two = /obj/item/weapon/storage/backpack/satchel
var/messenger_bag = /obj/item/weapon/storage/backpack/messenger
var/flags // Specific flags
/decl/hierarchy/outfit/New()
..()
if(is_hidden_category())
return
outfits_decls_by_type_[type] = src
dd_insertObjectList(outfits_decls_, src)
/decl/hierarchy/outfit/proc/pre_equip(mob/living/carbon/human/H)
if(flags & OUTFIT_HAS_BACKPACK)
switch(H.backbag)
if(2) back = backpack
if(3) back = satchel_one
if(4) back = satchel_two
if(5) back = messenger_bag
else back = null
/decl/hierarchy/outfit/proc/post_equip(mob/living/carbon/human/H)
if(flags & OUTFIT_HAS_JETPACK)
var/obj/item/weapon/tank/jetpack/J = locate(/obj/item/weapon/tank/jetpack) in H
if(!J)
return
J.toggle()
J.toggle_valve()
// A proc for non-human species, specially Unathi and Tajara, since they e.g.
// can't normally wear gloves as humans. Correct this issue by trying again, but
// apply some changes to the said item.
//
// Currently checks for gloves
//
// If you want to add more items that has species restriction, consider follow-
// ing the same format as the gloves shown in the code below. Thanks.
/decl/hierarchy/outfit/proc/check_and_try_equip_xeno(mob/living/carbon/human/H)
var/datum/species/S = H.species
if (!S || istype(S, /datum/species/human)) // null failcheck & get out here you damn humans
return
// end of check_and_try_equip_xeno
/decl/hierarchy/outfit/proc/equip(mob/living/carbon/human/H, var/rank, var/assignment)
equip_base(H)
rank = id_pda_assignment || rank
assignment = id_pda_assignment || assignment || rank
var/obj/item/weapon/card/id/W = equip_id(H, rank, assignment)
if(W)
rank = W.rank
assignment = W.assignment
equip_pda(H, rank, assignment)
for(var/path in backpack_contents)
var/number = backpack_contents[path]
for(var/i=0,i<number,i++)
H.equip_to_slot_or_del(new path(H), slot_in_backpack)
post_equip(H)
H.regenerate_icons()
if(W) // We set ID info last to ensure the ID photo is as correct as possible.
H.set_id_info(W)
return 1
/decl/hierarchy/outfit/proc/equip_base(mob/living/carbon/human/H)
pre_equip(H)
//Start with uniform,suit,backpack for additional slots
if(uniform)
H.equip_to_slot_or_del(new uniform(H),slot_w_uniform)
if(suit)
H.equip_to_slot_or_del(new suit(H),slot_wear_suit)
if(back)
H.equip_to_slot_or_del(new back(H),slot_back)
if(belt)
H.equip_to_slot_or_del(new belt(H),slot_belt)
if(gloves)
H.equip_to_slot_or_del(new gloves(H),slot_gloves)
if(shoes)
H.equip_to_slot_or_del(new shoes(H),slot_shoes)
if(mask)
H.equip_to_slot_or_del(new mask(H),slot_wear_mask)
if(head)
H.equip_to_slot_or_del(new head(H),slot_head)
if(l_ear)
H.equip_to_slot_or_del(new l_ear(H),slot_l_ear)
if(r_ear)
H.equip_to_slot_or_del(new r_ear(H),slot_r_ear)
if(glasses)
H.equip_to_slot_or_del(new glasses(H),slot_glasses)
if(id)
H.equip_to_slot_or_del(new id(H),slot_wear_id)
if(l_pocket)
H.equip_to_slot_or_del(new l_pocket(H),slot_l_store)
if(r_pocket)
H.equip_to_slot_or_del(new r_pocket(H),slot_r_store)
if(suit_store)
H.equip_to_slot_or_del(new suit_store(H),slot_s_store)
if(l_hand)
H.put_in_l_hand(new l_hand(H))
if(r_hand)
H.put_in_r_hand(new r_hand(H))
if(H.species)
H.species.equip_survival_gear(H, flags&OUTFIT_EXTENDED_SURVIVAL)
check_and_try_equip_xeno(H)
/decl/hierarchy/outfit/proc/equip_id(mob/living/carbon/human/H, rank, assignment)
if(!id_slot || !id_type)
return
var/obj/item/weapon/card/id/W = new id_type(H)
if(id_desc)
W.desc = id_desc
if(rank)
W.rank = rank
if(assignment)
W.assignment = assignment
H.set_id_info(W)
if(H.equip_to_slot_or_del(W, id_slot))
return W
/decl/hierarchy/outfit/proc/equip_pda(mob/living/carbon/human/H, assignment)
if(!pda_slot || !pda_type)
return
var/obj/item/device/pda/heads/pda = new pda_type(H)
if(H.equip_to_slot_or_del(pda, pda_slot))
return pda
/decl/hierarchy/outfit/dd_SortValue()
return name

View File

@@ -0,0 +1,17 @@
/decl/hierarchy/outfit/pirate
hierarchy_type = /decl/hierarchy/outfit/pirate
name = "Pirate"
uniform = /obj/item/clothing/under/pirate
shoes = /obj/item/clothing/shoes/brown
head = /obj/item/clothing/head/bandana
glasses = /obj/item/clothing/glasses/eyepatch
l_hand = /obj/item/weapon/melee/energy/sword/pirate
/decl/hierarchy/outfit/pirate/norm
/decl/hierarchy/outfit/pirate/space
name = "Pirate - Space"
head = /obj/item/clothing/head/helmet/space
suit = /obj/item/clothing/suit/pirate
back = /obj/item/weapon/tank/jetpack/oxygen
flags = OUTFIT_HAS_JETPACK

View File

@@ -0,0 +1,69 @@
/decl/hierarchy/outfit/spec_op_officer
name = "Special ops - Officer"
uniform = /obj/item/clothing/under/syndicate/combat
suit = /obj/item/clothing/suit/armor/swat/officer
l_ear = /obj/item/device/radio/headset/ert
glasses = /obj/item/clothing/glasses/thermal/plain/eyepatch
mask = /obj/item/clothing/mask/smokable/cigarette/cigar/havana
head = /obj/item/clothing/head/beret //deathsquad
belt = /obj/item/weapon/gun/energy/pulse_rifle/M1911
back = /obj/item/weapon/storage/backpack/satchel
shoes = /obj/item/clothing/shoes/boots/combat
gloves = /obj/item/clothing/gloves/combat
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/centcom/ERT
id_desc = "Special operations ID."
id_pda_assignment = "Special Operations Officer"
/decl/hierarchy/outfit/spec_op_officer/space
name = "Special ops - Officer in space"
suit = /obj/item/clothing/suit/armor/swat //obj/item/clothing/suit/space/void/swat
back = /obj/item/weapon/tank/jetpack/oxygen
mask = /obj/item/clothing/mask/gas/swat
flags = OUTFIT_HAS_JETPACK
/decl/hierarchy/outfit/ert
name = "Spec ops - Emergency response team"
uniform = /obj/item/clothing/under/ert
shoes = /obj/item/clothing/shoes/boots/swat
gloves = /obj/item/clothing/gloves/swat
l_ear = /obj/item/device/radio/headset/ert
belt = /obj/item/weapon/gun/energy/gun
glasses = /obj/item/clothing/glasses/sunglasses
back = /obj/item/weapon/storage/backpack/satchel
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/centcom/ERT
/decl/hierarchy/outfit/death_command
name = "Spec ops - Death commando"
/decl/hierarchy/outfit/death_command/equip(var/mob/living/carbon/human/H)
deathsquad.equip(H)
return 1
/decl/hierarchy/outfit/syndicate_command
name = "Spec ops - Syndicate commando"
/decl/hierarchy/outfit/syndicate_command/equip(var/mob/living/carbon/human/H)
commandos.equip(H)
return 1
/decl/hierarchy/outfit/mercenary
name = "Spec ops - Mercenary"
uniform = /obj/item/clothing/under/syndicate
shoes = /obj/item/clothing/shoes/boots/combat
l_ear = /obj/item/device/radio/headset/syndicate
belt = /obj/item/weapon/storage/belt/security
glasses = /obj/item/clothing/glasses/sunglasses
gloves = /obj/item/clothing/gloves/swat
l_pocket = /obj/item/weapon/reagent_containers/pill/cyanide
id_slot = slot_wear_id
id_type = /obj/item/weapon/card/id/syndicate
id_pda_assignment = "Mercenary"
flags = OUTFIT_HAS_BACKPACK

View File

@@ -0,0 +1,49 @@
/decl/hierarchy/outfit/tournament_gear
hierarchy_type = /decl/hierarchy/outfit/tournament_gear
head = /obj/item/clothing/head/helmet/thunderdome
suit = /obj/item/clothing/suit/armor/vest
l_hand = /obj/item/weapon/material/knife
r_hand = /obj/item/weapon/gun/energy/pulse_rifle/destroyer
r_pocket = /obj/item/weapon/grenade/smokebomb
shoes = /obj/item/clothing/shoes/black
/decl/hierarchy/outfit/tournament_gear/red
name = "Tournament - Red"
uniform = /obj/item/clothing/under/color/red
/decl/hierarchy/outfit/tournament_gear/green
name = "Tournament gear - Green"
uniform = /obj/item/clothing/under/color/green
/decl/hierarchy/outfit/tournament_gear/gangster
name = "Tournament gear - Gangster"
head = /obj/item/clothing/head/det
uniform = /obj/item/clothing/under/det
suit_store = /obj/item/clothing/suit/storage/det_trench
glasses = /obj/item/clothing/glasses/thermal/plain/monocle
r_hand = /obj/item/weapon/gun/projectile/revolver
l_pocket = /obj/item/ammo_magazine/s357
/decl/hierarchy/outfit/tournament_gear/chef
name = "Tournament gear - Chef"
head = /obj/item/clothing/head/chefhat
uniform = /obj/item/clothing/under/rank/chef
suit = /obj/item/clothing/suit/chef
r_hand = /obj/item/weapon/material/kitchen/rollingpin
l_pocket = /obj/item/weapon/material/hatchet/tacknife
r_pocket = /obj/item/weapon/material/hatchet/tacknife
/decl/hierarchy/outfit/tournament_gear/janitor
name = "Tournament gear - Janitor"
uniform = /obj/item/clothing/under/rank/janitor
back = /obj/item/weapon/storage/backpack
r_hand = /obj/item/weapon/mop
l_hand = /obj/item/weapon/reagent_containers/glass/bucket
l_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner
r_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner
backpack_contents = list(/obj/item/stack/tile/floor = 6)
/decl/hierarchy/outfit/tournament_gear/janitor/post_equip(var/mob/living/carbon/human/H)
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = locate(/obj/item/weapon/reagent_containers/glass/bucket) in H
if(bucket)
bucket.reagents.add_reagent(/datum/reagent/water, 70)

View File

@@ -0,0 +1,26 @@
/decl/hierarchy/outfit/wizard
uniform = /obj/item/clothing/under/color/lightpurple
shoes = /obj/item/clothing/shoes/sandal
l_ear = /obj/item/device/radio/headset
r_pocket = /obj/item/weapon/teleportation_scroll
l_hand = /obj/item/weapon/staff
r_hand = /obj/item/weapon/spellbook
back = /obj/item/weapon/storage/backpack
backpack_contents = list(/obj/item/weapon/storage/box = 1)
hierarchy_type = /decl/hierarchy/outfit/wizard
/decl/hierarchy/outfit/wizard/blue
name = "Wizard - Blue"
head = /obj/item/clothing/head/wizard
suit = /obj/item/clothing/suit/wizrobe
/decl/hierarchy/outfit/wizard/red
name = "Wizard - Red"
head = /obj/item/clothing/head/wizard/red
suit = /obj/item/clothing/suit/wizrobe/red
/decl/hierarchy/outfit/wizard/marisa
name = "Wizard - Marisa"
head = /obj/item/clothing/head/wizard/marisa
suit = /obj/item/clothing/suit/wizrobe/marisa
shoes = /obj/item/clothing/shoes/sandal/marisa