mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 16:10:02 +01:00
Converts jobs and admin equipment to use outfits (#5827)
Converts the jobs and admin equipment to use outfit datums.
This commit is contained in:
@@ -322,9 +322,9 @@
|
||||
return R
|
||||
|
||||
/proc/GetAssignment(var/mob/living/carbon/human/H)
|
||||
if(H.mind.role_alt_title)
|
||||
if(H.mind && H.mind.role_alt_title)
|
||||
return H.mind.role_alt_title
|
||||
else if(H.mind.assigned_role)
|
||||
else if(H.mind && H.mind.assigned_role)
|
||||
return H.mind.assigned_role
|
||||
else if(H.job)
|
||||
return H.job
|
||||
|
||||
@@ -0,0 +1,206 @@
|
||||
/datum/outfit
|
||||
var/name = "Naked"
|
||||
var/collect_not_del = FALSE
|
||||
|
||||
//The following vars can either be a path or a list of paths
|
||||
//If a list of paths is supplied a random item from that list is selected
|
||||
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/l_pocket = null
|
||||
var/r_pocket = null
|
||||
var/suit_store = null
|
||||
|
||||
//The following vars must be paths
|
||||
var/l_hand = null
|
||||
var/r_hand = null
|
||||
var/id = null
|
||||
var/pda = null
|
||||
|
||||
var/internals_slot = null //ID of slot containing a gas tank
|
||||
var/list/backpack_contents = list() //In the list(path=count,otherpath=count) format
|
||||
var/list/implants = null //A list of implants that should be implanted
|
||||
|
||||
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
//to be overriden for customization depending on client prefs,species etc
|
||||
return
|
||||
|
||||
// Used to equip an item to the mob. Mainly to prevent copypasta for collect_not_del.
|
||||
/datum/outfit/proc/equip_item(mob/living/carbon/human/H, path, slot)
|
||||
var/obj/item/I
|
||||
|
||||
if(isnum(path)) //Check if parameter is not numeric. Must be a path, list of paths or name of a gear datum
|
||||
CRASH("Outfit [name] - Parameter path: [path] is numeric.")
|
||||
|
||||
if(islist(path)) //If its a list, select a random item
|
||||
var/itempath = pick(path)
|
||||
I = new itempath(H)
|
||||
else if(gear_datums[path]) //If its something else, we´ll check if its a gearpath and try to spawn it
|
||||
var/datum/gear/G = gear_datums[path]
|
||||
I = G.spawn_random()
|
||||
else
|
||||
I = new path(H) //As fallback treat it as a path
|
||||
|
||||
if(collect_not_del)
|
||||
H.equip_or_collect(I, slot)
|
||||
else
|
||||
H.equip_to_slot_or_del(I, slot)
|
||||
|
||||
/datum/outfit/proc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
//to be overriden for changing items post equip (such as toggeling internals, ...)
|
||||
|
||||
/datum/outfit/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
//Start with uniform,suit,backpack for additional slots
|
||||
if(back)
|
||||
equip_item(H, back, slot_back)
|
||||
if(uniform)
|
||||
equip_item(H, uniform, slot_w_uniform)
|
||||
if(suit)
|
||||
equip_item(H, suit, slot_wear_suit)
|
||||
if(belt)
|
||||
equip_item(H, belt, slot_belt)
|
||||
if(gloves)
|
||||
equip_item(H, gloves, slot_gloves)
|
||||
if(shoes)
|
||||
equip_item(H, shoes, slot_shoes)
|
||||
if(head)
|
||||
equip_item(H, head, slot_head)
|
||||
if(mask)
|
||||
equip_item(H, mask, slot_wear_mask)
|
||||
if(l_ear)
|
||||
equip_item(H, l_ear, slot_l_ear)
|
||||
if(r_ear)
|
||||
equip_item(H, r_ear, slot_r_ear)
|
||||
if(glasses)
|
||||
equip_item(H, glasses, slot_glasses)
|
||||
|
||||
if(suit_store)
|
||||
equip_item(H, suit_store, 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(pda && !visualsOnly) //Dont equip and imprint the PDA in visuals only (preview) to avoid duplicates
|
||||
var/obj/item/I = new pda(H)
|
||||
imprint_pda(H,I)
|
||||
H.equip_or_collect(I, slot_wear_id)
|
||||
|
||||
if(id)
|
||||
var/obj/item/device/pda/P = H.wear_id
|
||||
var/obj/item/I = new id(H)
|
||||
imprint_idcard(H,I)
|
||||
if(istype(P))
|
||||
I.forceMove(P)
|
||||
P.id = I
|
||||
else
|
||||
H.equip_or_collect(I, slot_wear_id)
|
||||
|
||||
|
||||
if(!visualsOnly) // Items in pockets or backpack don't show up on mob's icon.
|
||||
if(l_pocket)
|
||||
equip_item(H, l_pocket, slot_l_store)
|
||||
if(r_pocket)
|
||||
equip_item(H, r_pocket, slot_r_store)
|
||||
|
||||
for(var/path in backpack_contents)
|
||||
var/number = backpack_contents[path]
|
||||
for(var/i in 1 to number)
|
||||
H.equip_or_collect(new path(H), slot_in_backpack)
|
||||
|
||||
post_equip(H, visualsOnly)
|
||||
|
||||
if(!visualsOnly)
|
||||
apply_fingerprints(H)
|
||||
|
||||
if(implants)
|
||||
for(var/implant_type in implants)
|
||||
var/obj/item/weapon/implant/I = new implant_type(H)
|
||||
if(I.implanted(H))
|
||||
I.forceMove(H)
|
||||
I.imp_in = H
|
||||
I.implanted = 1
|
||||
var/obj/item/organ/external/affected = H.get_organ("head")
|
||||
affected.implants += I
|
||||
I.part = affected
|
||||
|
||||
H.update_body()
|
||||
return 1
|
||||
|
||||
/datum/outfit/proc/apply_fingerprints(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
return
|
||||
if(H.back)
|
||||
H.back.add_fingerprint(H, 1) //The 1 sets a flag to ignore gloves
|
||||
for(var/obj/item/I in H.back.contents)
|
||||
I.add_fingerprint(H, 1)
|
||||
if(H.wear_id)
|
||||
H.wear_id.add_fingerprint(H, 1)
|
||||
if(H.w_uniform)
|
||||
H.w_uniform.add_fingerprint(H, 1)
|
||||
if(H.wear_suit)
|
||||
H.wear_suit.add_fingerprint(H, 1)
|
||||
if(H.wear_mask)
|
||||
H.wear_mask.add_fingerprint(H, 1)
|
||||
if(H.head)
|
||||
H.head.add_fingerprint(H, 1)
|
||||
if(H.shoes)
|
||||
H.shoes.add_fingerprint(H, 1)
|
||||
if(H.gloves)
|
||||
H.gloves.add_fingerprint(H, 1)
|
||||
if(H.l_ear)
|
||||
H.l_ear.add_fingerprint(H, 1)
|
||||
if(H.r_ear)
|
||||
H.r_ear.add_fingerprint(H, 1)
|
||||
if(H.glasses)
|
||||
H.glasses.add_fingerprint(H, 1)
|
||||
if(H.belt)
|
||||
H.belt.add_fingerprint(H, 1)
|
||||
for(var/obj/item/I in H.belt.contents)
|
||||
I.add_fingerprint(H, 1)
|
||||
if(H.s_store)
|
||||
H.s_store.add_fingerprint(H, 1)
|
||||
if(H.l_store)
|
||||
H.l_store.add_fingerprint(H, 1)
|
||||
if(H.r_store)
|
||||
H.r_store.add_fingerprint(H, 1)
|
||||
return 1
|
||||
|
||||
/datum/outfit/proc/imprint_idcard(mob/living/carbon/human/H, obj/item/weapon/card/id/C)
|
||||
if(istype(C))
|
||||
C.access = get_id_access(H)
|
||||
C.rank = get_id_rank(H)
|
||||
C.assignment = get_id_assignment(H)
|
||||
addtimer(CALLBACK(H, /mob/.proc/set_id_info, C), 1 SECOND) // Delay a moment to allow an icon update to happen.
|
||||
|
||||
if(H.mind && H.mind.initial_account)
|
||||
C.associated_account_number = H.mind.initial_account.account_number
|
||||
|
||||
/datum/outfit/proc/imprint_pda(mob/living/carbon/human/H, obj/item/device/pda/PDA)
|
||||
var/obj/item/weapon/card/id/C = PDA.id
|
||||
PDA.owner = H.real_name
|
||||
if(istype(PDA) && istype(C))
|
||||
PDA.ownjob = C.assignment
|
||||
PDA.ownrank = C.rank
|
||||
else //As a fallback if the id isnt inside of the PDA
|
||||
PDA.ownjob = get_id_assignment(H)
|
||||
PDA.ownrank = get_id_rank(H)
|
||||
PDA.name = "PDA-[H.real_name] ([PDA.ownjob])"
|
||||
|
||||
/datum/outfit/proc/get_id_access(mob/living/carbon/human/H)
|
||||
return list()
|
||||
|
||||
/datum/outfit/proc/get_id_assignment(mob/living/carbon/human/H)
|
||||
return GetAssignment(H)
|
||||
|
||||
/datum/outfit/proc/get_id_rank(mob/living/carbon/human/H)
|
||||
return GetAssignment(H)
|
||||
@@ -0,0 +1,416 @@
|
||||
/datum/outfit/admin/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(!visualsOnly)
|
||||
if(H.mind)
|
||||
H.mind.assigned_role = name
|
||||
H.job = name
|
||||
|
||||
|
||||
/datum/outfit/admin/syndicate
|
||||
name = "Syndicate Agent"
|
||||
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
back = /obj/item/weapon/storage/backpack
|
||||
belt = /obj/item/weapon/storage/belt/utility/full
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
l_ear = /obj/item/device/radio/headset/syndicate
|
||||
id = /obj/item/weapon/card/id/syndicate
|
||||
r_pocket = /obj/item/device/radio/uplink
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/engineer = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/weapon/card/emag = 1,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 1,
|
||||
/obj/item/device/multitool = 1
|
||||
)
|
||||
|
||||
var/id_icon = "syndie"
|
||||
var/id_access = "Syndicate Operative"
|
||||
var/uplink_uses = 20
|
||||
|
||||
/datum/outfit/admin/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/uplink/U = H.r_store
|
||||
if(istype(U))
|
||||
U.hidden_uplink.uplink_owner = "[H.key]"
|
||||
U.hidden_uplink.uses = uplink_uses
|
||||
|
||||
/datum/outfit/admin/syndicate/get_id_access()
|
||||
return get_syndicate_access(id_access)
|
||||
|
||||
|
||||
/datum/outfit/admin/syndicate/operative
|
||||
name = "Syndicate Operative"
|
||||
|
||||
suit = /obj/item/clothing/suit/space/void/merc
|
||||
belt = /obj/item/weapon/storage/belt/military
|
||||
head = /obj/item/clothing/head/helmet/space/void/merc
|
||||
mask = /obj/item/clothing/mask/gas/syndicate
|
||||
l_ear = /obj/item/device/radio/headset/syndicate
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
shoes = /obj/item/clothing/shoes/magboots
|
||||
l_pocket = /obj/item/weapon/pinpointer/nukeop
|
||||
l_hand = /obj/item/weapon/tank/jetpack/void
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/engineer = 1,
|
||||
/obj/item/weapon/reagent_containers/pill/cyanide = 1,
|
||||
/obj/item/weapon/gun/projectile/automatic/x9 = 1,
|
||||
/obj/item/ammo_magazine/c45x = 1,
|
||||
/obj/item/weapon/crowbar/red = 1,
|
||||
/obj/item/weapon/plastique = 1,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/clothing/shoes/combat = 1
|
||||
)
|
||||
|
||||
|
||||
/datum/outfit/admin/syndicate/officer
|
||||
name = "Syndicate Officer"
|
||||
|
||||
head = /obj/item/clothing/head/beret
|
||||
mask = /obj/item/clothing/mask/smokable/cigarette/cigar/havana
|
||||
belt = /obj/item/weapon/gun/projectile/deagle/camo
|
||||
l_ear = /obj/item/device/radio/headset/syndicate
|
||||
l_pocket = /obj/item/weapon/pinpointer/advpinpointer
|
||||
r_pocket = null // stop them getting a radio uplink, they get an implant instead
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/engineer = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/weapon/reagent_containers/pill/cyanide = 1,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 1,
|
||||
/obj/item/ammo_magazine/a50 = 2,
|
||||
/obj/item/clothing/shoes/magboots = 1,
|
||||
/obj/item/weapon/flame/lighter/zippo = 1
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/explosive
|
||||
)
|
||||
id_icon = "commander"
|
||||
id_access = "Syndicate Operative Leader"
|
||||
|
||||
|
||||
/datum/outfit/admin/syndicate/spy
|
||||
name = "Syndicate Spy"
|
||||
uniform = /obj/item/clothing/under/suit_jacket/really_black
|
||||
shoes = /obj/item/clothing/shoes/black/noslip
|
||||
uplink_uses = 40
|
||||
id_access = "Syndicate Agent"
|
||||
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/explosive
|
||||
)
|
||||
|
||||
|
||||
/datum/outfit/admin/nt
|
||||
name = "NanoTrasen Representative"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
gloves = /obj/item/clothing/gloves/white
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
l_ear = /obj/item/device/radio/headset/heads/hop
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/engineer = 1
|
||||
)
|
||||
|
||||
var/id_icon = "centcom"
|
||||
var/id_access = "NanoTrasen Representative"
|
||||
|
||||
/datum/outfit/admin/nt/get_id_access()
|
||||
return get_all_accesses() | get_centcom_access(id_access)
|
||||
|
||||
|
||||
/datum/outfit/admin/nt/officer
|
||||
name = "NanoTrasen Navy Officer"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom_officer
|
||||
l_ear = /obj/item/device/radio/headset/heads/captain
|
||||
head = /obj/item/clothing/head/beret/centcom/officer
|
||||
|
||||
|
||||
/datum/outfit/admin/nt/captain
|
||||
name = "NanoTrasen Navy 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
|
||||
|
||||
|
||||
/datum/outfit/admin/nt/protection_detail
|
||||
name = "ERT Protection Detail"
|
||||
|
||||
uniform = /obj/item/clothing/under/ccpolice
|
||||
suit = /obj/item/clothing/suit/storage/vest/heavy/ert/peacekeeper
|
||||
shoes = /obj/item/clothing/shoes/swat
|
||||
gloves = /obj/item/clothing/gloves/swat
|
||||
l_ear = /obj/item/device/radio/headset/ert
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/sechud
|
||||
head = /obj/item/clothing/head/beret/centcom/officer
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/gun/energy/gun = 1,
|
||||
/obj/item/clothing/head/helmet/swat/peacekeeper = 1,
|
||||
/obj/item/clothing/accessory/holster/hip = 1,
|
||||
/obj/item/weapon/gun/energy/pistol = 1
|
||||
)
|
||||
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/loyalty
|
||||
)
|
||||
|
||||
|
||||
/datum/outfit/admin/nt/ert_commander
|
||||
name = "ERT Commander"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom_commander
|
||||
suit = /obj/item/clothing/suit/storage/vest/heavy/ert/commander
|
||||
shoes = /obj/item/clothing/shoes/swat
|
||||
gloves = /obj/item/clothing/gloves/swat
|
||||
l_ear = /obj/item/device/radio/headset/ert
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/sechud
|
||||
head = /obj/item/clothing/head/beret/centcom/commander
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/fancy/cigar = 1,
|
||||
/obj/item/weapon/flame/lighter/zippo = 1,
|
||||
/obj/item/clothing/accessory/medal/gold/heroism = 1
|
||||
)
|
||||
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/loyalty
|
||||
)
|
||||
|
||||
|
||||
/datum/outfit/admin/nt/odinsec
|
||||
name = "NTCC Odin Security Specialist"
|
||||
|
||||
uniform = /obj/item/clothing/under/ccpolice
|
||||
suit = /obj/item/clothing/suit/storage/vest/heavy/ert/peacekeeper
|
||||
shoes = /obj/item/clothing/shoes/swat
|
||||
gloves = /obj/item/clothing/gloves/swat
|
||||
l_ear = /obj/item/device/radio/headset/ert
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/sechud/tactical
|
||||
mask = /obj/item/clothing/mask/gas/tactical
|
||||
head = /obj/item/clothing/head/helmet/swat/peacekeeper
|
||||
r_pocket = /obj/item/weapon/handcuffs/ziptie
|
||||
l_pocket = /obj/item/weapon/grenade/chem_grenade/gas
|
||||
l_hand = /obj/item/weapon/shield/riot/tact
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/gun/projectile/automatic/x9 = 1,
|
||||
/obj/item/ammo_magazine/c45x = 2,
|
||||
/obj/item/clothing/accessory/holster/hip = 1,
|
||||
/obj/item/weapon/gun/energy/gun = 1
|
||||
)
|
||||
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/loyalty
|
||||
)
|
||||
|
||||
|
||||
/datum/outfit/admin/nt/specops
|
||||
name = "Special Operations Officer"
|
||||
|
||||
uniform = /obj/item/clothing/under/syndicate/combat
|
||||
suit = /obj/item/clothing/suit/armor/swat/officer
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
l_ear = /obj/item/device/radio/headset/ert
|
||||
glasses = /obj/item/clothing/glasses/eyepatch/hud/thermal
|
||||
mask = /obj/item/clothing/mask/smokable/cigarette/cigar/havana
|
||||
head = /obj/item/clothing/head/helmet/space/deathsquad/beret
|
||||
belt = /obj/item/weapon/gun/energy/pulse/pistol
|
||||
r_pocket = /obj/item/weapon/flame/lighter/zippo
|
||||
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/loyalty
|
||||
)
|
||||
|
||||
id_access = "Death Commando"
|
||||
|
||||
|
||||
/datum/outfit/admin/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
|
||||
r_hand = /obj/item/weapon/melee/energy/sword/pirate
|
||||
|
||||
|
||||
/datum/outfit/admin/spacepirate
|
||||
name = "Space Pirate"
|
||||
|
||||
uniform = /obj/item/clothing/under/pirate
|
||||
suit = /obj/item/clothing/suit/space/pirate
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
head = /obj/item/clothing/head/helmet/space/pirate
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
r_hand = /obj/item/weapon/melee/energy/sword/pirate
|
||||
|
||||
|
||||
/datum/outfit/admin/sovietsoldier
|
||||
name = "Soviet Soldier"
|
||||
|
||||
uniform = /obj/item/clothing/under/soviet
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
head = /obj/item/clothing/head/ushanka
|
||||
|
||||
|
||||
/datum/outfit/admin/sovietsoldier
|
||||
name = "Soviet Admiral"
|
||||
|
||||
uniform = /obj/item/clothing/under/soviet
|
||||
suit = /obj/item/clothing/suit/hgpirate
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
head = /obj/item/clothing/head/hgpiratecap
|
||||
belt = /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
l_ear = /obj/item/device/radio/headset/heads/captain
|
||||
glasses = /obj/item/clothing/glasses/eyepatch/hud/thermal
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/admin/sovietsoldier/get_id_assignment()
|
||||
return "Admiral"
|
||||
|
||||
/datum/outfit/admin/sovietsoldier/get_id_rank()
|
||||
return "Admiral"
|
||||
|
||||
|
||||
/datum/outfit/admin/maskedkiller
|
||||
name = "Masked Killer"
|
||||
|
||||
uniform = /obj/item/clothing/under/overalls
|
||||
suit = /obj/item/clothing/suit/apron
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
gloves = /obj/item/clothing/gloves/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
|
||||
l_pocket = /obj/item/weapon/material/knife
|
||||
r_pocket = /obj/item/weapon/scalpel
|
||||
r_hand = /obj/item/weapon/material/twohanded/fireaxe
|
||||
id = null
|
||||
|
||||
/datum/outfit/admin/maskedkiller/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
for(var/obj/item/carried_item in H.contents)
|
||||
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
|
||||
carried_item.add_blood(H)//Oh yes, there will be blood...
|
||||
|
||||
|
||||
/datum/outfit/admin/assassin
|
||||
name = "Assassin"
|
||||
|
||||
uniform = /obj/item/clothing/under/suit_jacket
|
||||
suit = /obj/item/clothing/suit/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
|
||||
r_pocket = /obj/item/weapon/cloaking_device
|
||||
id = /obj/item/weapon/card/id/syndicate
|
||||
pda = /obj/item/device/pda/heads
|
||||
|
||||
/datum/outfit/admin/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
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/a357
|
||||
sec_briefcase.contents += new /obj/item/weapon/plastique
|
||||
H.equip_to_slot_or_del(sec_briefcase, slot_l_hand)
|
||||
|
||||
/datum/outfit/admin/assassin/get_id_access()
|
||||
return get_all_station_access()
|
||||
|
||||
|
||||
/datum/outfit/admin/random_employee
|
||||
name = "Random Employee"
|
||||
|
||||
/datum/outfit/admin/random_employee/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(!visualsOnly)
|
||||
//Select a random job, set the assigned_role / job var and equip it
|
||||
var/datum/job/job = SSjobs.GetRandomJob()
|
||||
var/alt_title = null
|
||||
if(job.alt_titles && prob(50))
|
||||
alt_title = pick(job.alt_titles)
|
||||
|
||||
if(H.mind)
|
||||
H.mind.assigned_role = alt_title ? alt_title : job.title
|
||||
H.job = alt_title ? alt_title : job.title
|
||||
|
||||
job.equip(H, FALSE, FALSE, alt_title)
|
||||
|
||||
|
||||
/datum/outfit/admin/random
|
||||
name = "Random Civilian"
|
||||
|
||||
uniform = "suit selection"
|
||||
shoes = "shoe selection"
|
||||
l_ear = /obj/item/device/radio/headset
|
||||
back = list(
|
||||
/obj/item/weapon/storage/backpack,
|
||||
/obj/item/weapon/storage/backpack/satchel_norm,
|
||||
/obj/item/weapon/storage/backpack/satchel,
|
||||
/obj/item/weapon/storage/backpack/duffel,
|
||||
/obj/item/weapon/storage/backpack/duffel
|
||||
)
|
||||
|
||||
/datum/outfit/admin/random/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(!visualsOnly)
|
||||
if(prob(10)) //Equip something smokable
|
||||
var/path = pick(list(
|
||||
/obj/item/clothing/mask/smokable/pipe,
|
||||
/obj/item/clothing/mask/smokable/pipe/cobpipe,
|
||||
/obj/item/weapon/storage/fancy/cigar,
|
||||
/obj/item/weapon/storage/fancy/cigarettes
|
||||
))
|
||||
H.equip_or_collect(new path(), slot_wear_mask)
|
||||
|
||||
if(prob(20)) //Equip some headgear
|
||||
var/datum/gear/G = gear_datums[pick(list("cap selection","beret, red","hat selection","hijab selection","turban selection"))]
|
||||
H.equip_or_collect(G.spawn_random(), slot_head)
|
||||
|
||||
if(prob(20)) //Equip some sunglasses
|
||||
var/path = pick(list(
|
||||
/obj/item/clothing/glasses/eyepatch,
|
||||
/obj/item/clothing/glasses/regular,
|
||||
/obj/item/clothing/glasses/gglasses,
|
||||
/obj/item/clothing/glasses/regular/hipster,
|
||||
/datum/gear/eyes/glasses/monocle,
|
||||
/datum/gear/eyes/shades/aviator,
|
||||
/datum/gear/eyes/glasses/fakesun
|
||||
))
|
||||
H.equip_or_collect(new path(), slot_glasses)
|
||||
|
||||
if(prob(20)) //Equip some gloves
|
||||
var/datum/gear/G = gear_datums["gloves selection"]
|
||||
H.equip_or_collect(G.spawn_random(), slot_gloves)
|
||||
|
||||
|
||||
/datum/outfit/admin/random/visitor
|
||||
name = "Random Visitor"
|
||||
|
||||
id = /obj/item/weapon/card/id
|
||||
pda = /obj/item/device/pda
|
||||
/datum/outfit/admin/random/visitor/get_id_assignment()
|
||||
return "Visitor"
|
||||
/datum/outfit/admin/random/visitor/get_id_rank()
|
||||
return "Visitor"
|
||||
Reference in New Issue
Block a user