mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 16:38:22 +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:
@@ -85,3 +85,10 @@
|
||||
* Parameters: var/obj/structure/closet/crate/sold, var/area/shuttle
|
||||
*/
|
||||
/hook/sell_crate
|
||||
|
||||
/**
|
||||
* Captain spawned.
|
||||
* Called whenever a captain is spawned.
|
||||
* Parameters: var/mob/living/carbon/human
|
||||
*/
|
||||
/hook/captain_spawned
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
// Vars.
|
||||
var/list/occupations = list()
|
||||
var/list/name_occupations = list() //Dict of all jobs, keys are titles
|
||||
var/list/type_occupations = list() //Dict of all jobs, keys are titles
|
||||
var/list/unassigned = list()
|
||||
var/list/job_debug = list()
|
||||
|
||||
@@ -43,7 +45,11 @@
|
||||
var/datum/job/job = new J()
|
||||
if(!job || job.faction != faction)
|
||||
continue
|
||||
if(!job.faction in faction)
|
||||
continue
|
||||
occupations += job
|
||||
name_occupations[job.title] = job
|
||||
type_occupations[J] = job
|
||||
if (config && config.use_age_restriction_for_jobs)
|
||||
job.fetch_age_restriction()
|
||||
|
||||
@@ -53,13 +59,16 @@
|
||||
if (!rank)
|
||||
return null
|
||||
|
||||
for (var/thing in occupations)
|
||||
var/datum/job/J = thing
|
||||
if (!J)
|
||||
continue
|
||||
return name_occupations[rank]
|
||||
|
||||
if (J.title == rank)
|
||||
return J
|
||||
/datum/controller/subsystem/jobs/proc/GetJobType(jobtype)
|
||||
if(!jobtype)
|
||||
return null
|
||||
|
||||
return type_occupations[jobtype]
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/GetRandomJob()
|
||||
return pick(occupations)
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/ShouldCreateRecords(var/rank)
|
||||
if(!rank) return 0
|
||||
@@ -315,22 +324,20 @@
|
||||
var/datum/job/job = GetJob(rank)
|
||||
var/list/spawn_in_storage = list()
|
||||
|
||||
H.job = rank
|
||||
|
||||
if(job)
|
||||
var/list/custom_equip_slots = list() //If more than one item takes the same slot, all after the first one spawn in storage.
|
||||
var/list/custom_equip_leftovers = list()
|
||||
//Equip job items.
|
||||
if(!megavend) //Equip custom gear loadout.
|
||||
Debug("ER/([H]): Equipping custom loadout.")
|
||||
job.equip_backpack(H)
|
||||
job.pre_equip(H)
|
||||
job.setup_account(H)
|
||||
|
||||
EquipCustom(H, job, H.client.prefs, custom_equip_leftovers, spawn_in_storage, custom_equip_slots)
|
||||
|
||||
// This goes after custom loadout it doesn't prevent custom loadout stuff from being equipped.
|
||||
job.equip_survival(H)
|
||||
|
||||
job.equip(H)
|
||||
job.apply_fingerprints(H)
|
||||
|
||||
// Randomize nutrition and hydration. Defines are in __defines/mobs.dm
|
||||
|
||||
@@ -343,9 +350,7 @@
|
||||
if (!megavend)
|
||||
spawn_in_storage += EquipCustomDeferred(H, H.client.prefs, custom_equip_leftovers, custom_equip_slots)
|
||||
else
|
||||
H << "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator."
|
||||
|
||||
H.job = rank
|
||||
to_chat(H,"Your job is [rank] and the game just can't handle it! Please report this bug to an administrator.")
|
||||
|
||||
if(!joined_late || job.latejoin_at_spawnpoints)
|
||||
var/obj/S = get_roundstart_spawnpoint(rank)
|
||||
@@ -384,9 +389,6 @@
|
||||
if("AI")
|
||||
Debug("ER/([H]): Job is AI, returning early.")
|
||||
return H
|
||||
if("Captain")
|
||||
var/sound/announce_sound = (SSticker.current_state <= GAME_STATE_SETTING_UP)? null : sound('sound/misc/boatswain.ogg', volume=20)
|
||||
captain_announcement.Announce("All hands, Captain [H.real_name] on deck!", new_sound=announce_sound)
|
||||
|
||||
//Deferred item spawning.
|
||||
if(!megavend && LAZYLEN(spawn_in_storage))
|
||||
@@ -408,11 +410,6 @@
|
||||
if(job.supervisors)
|
||||
H << "<b>As the [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>"
|
||||
|
||||
if(job.idtype)
|
||||
spawnId(H, rank, alt_title)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_l_ear)
|
||||
H << "<b>To speak on your department's radio channel use :h. For the use of other channels, examine your headset.</b>"
|
||||
|
||||
if(job.req_admin_notify)
|
||||
H << "<b>You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp.</b>"
|
||||
|
||||
@@ -512,11 +509,13 @@
|
||||
|
||||
var/datum/job/job = GetJob(rank)
|
||||
|
||||
H.job = rank
|
||||
|
||||
if(spawning_at != "Arrivals Shuttle" || job.latejoin_at_spawnpoints)
|
||||
return EquipRank(H, rank, 1)
|
||||
|
||||
var/list/spawn_in_storage = list()
|
||||
H <<"<span class='notice'>You have ten minutes to reach the station before you will be forced there.</span>"
|
||||
to_chat(H,"<span class='notice'>You have ten minutes to reach the station before you will be forced there.</span>")
|
||||
|
||||
if(job)
|
||||
//Equip custom gear loadout.
|
||||
@@ -525,19 +524,16 @@
|
||||
|
||||
EquipCustom(H, job, H.client.prefs, custom_equip_leftovers, spawn_in_storage, custom_equip_slots)
|
||||
|
||||
Debug("EP/([H]): EC Complated, running pre_equip and late_equip.")
|
||||
|
||||
//Equip job items.
|
||||
job.pre_equip(H) // Spawn in the backpack
|
||||
job.late_equip(H)
|
||||
job.equip_backpack(H)
|
||||
job.equip_survival(H)
|
||||
job.setup_account(H)
|
||||
|
||||
spawn_in_storage += EquipCustomDeferred(H, H.client.prefs, custom_equip_leftovers, custom_equip_slots)
|
||||
|
||||
job.apply_fingerprints(H)
|
||||
else
|
||||
H << "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator."
|
||||
|
||||
H.job = rank
|
||||
to_chat(H,"Your job is [rank] and the game just can't handle it! Please report this bug to an administrator.")
|
||||
|
||||
if(LAZYLEN(spawn_in_storage))
|
||||
EquipItemsStorage(H, H.client.prefs, spawn_in_storage)
|
||||
@@ -574,47 +570,6 @@
|
||||
|
||||
return H
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/spawnId(mob/living/carbon/human/H, rank, title)
|
||||
if (!H)
|
||||
return FALSE
|
||||
|
||||
Debug("SI/([H]): Entry; rank=[rank],title=[title].")
|
||||
|
||||
var/obj/item/weapon/card/id/C = null
|
||||
|
||||
var/datum/job/job = GetJob(rank)
|
||||
|
||||
if(job)
|
||||
if(job.title == "Cyborg")
|
||||
Debug("SI/([H]): Abort; job is cyborg.")
|
||||
return
|
||||
else
|
||||
C = new job.idtype(H)
|
||||
C.access = job.get_access(title)
|
||||
else
|
||||
C = new /obj/item/weapon/card/id(H)
|
||||
if(C)
|
||||
C.rank = rank
|
||||
C.assignment = title ? title : rank
|
||||
addtimer(CALLBACK(H, /mob/.proc/set_id_info, C), 1 SECOND) // Delay a moment to allow an icon update to happen.
|
||||
|
||||
//put the player's account number onto the ID
|
||||
if(H.mind && H.mind.initial_account)
|
||||
C.associated_account_number = H.mind.initial_account.account_number
|
||||
|
||||
H.equip_to_slot_or_del(C, slot_wear_id)
|
||||
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda(H), slot_belt)
|
||||
if(locate(/obj/item/device/pda,H))
|
||||
var/obj/item/device/pda/pda = locate(/obj/item/device/pda,H)
|
||||
pda.owner = H.real_name
|
||||
pda.ownjob = C.assignment
|
||||
pda.ownrank = C.rank
|
||||
pda.name = "PDA-[H.real_name] ([pda.ownjob])"
|
||||
|
||||
Debug("SI/([H]): Completed.")
|
||||
return TRUE
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/LoadJobs(jobsfile)
|
||||
if (!config.load_jobs_from_txt)
|
||||
return FALSE
|
||||
@@ -792,14 +747,14 @@
|
||||
// This is a miserable way to fix the loadout overwrite bug, but the alternative requires
|
||||
// adding an arg to a bunch of different procs. Will look into it after this merge. ~ Z
|
||||
var/metadata = prefs.gear[G.display_name]
|
||||
var/obj/item/CI = G.spawn_item(H,metadata)
|
||||
var/obj/item/CI = G.spawn_item(null,metadata)
|
||||
if (G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
|
||||
if (leftovers)
|
||||
leftovers += thing
|
||||
Debug("EC/([H]): [thing] failed mask/suit/head check; leftovers=[!!leftovers]")
|
||||
else if (H.equip_to_slot_or_del(CI, G.slot))
|
||||
CI.autodrobe_no_remove = TRUE
|
||||
H << "<span class='notice'>Equipping you with \a [thing]!</span>"
|
||||
to_chat(H, "<span class='notice'>Equipping you with [thing]!</span>")
|
||||
custom_equip_slots += G.slot
|
||||
Debug("EC/([H]): Equipped [CI] successfully.")
|
||||
else if (leftovers)
|
||||
@@ -827,7 +782,7 @@
|
||||
var/metadata = prefs.gear[G.display_name]
|
||||
var/obj/item/CI = G.spawn_item(H, metadata)
|
||||
if (H.equip_to_slot_or_del(CI, G.slot))
|
||||
to_chat(H, "<span class='notice'>Equipping you with \a [thing]!</span>")
|
||||
to_chat(H, "<span class='notice'>Equipping you with [thing]!</span>")
|
||||
used_slots += G.slot
|
||||
CI.autodrobe_no_remove = TRUE
|
||||
Debug("ECD/([H]): Equipped [thing] successfully.")
|
||||
|
||||
@@ -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"
|
||||
@@ -9,7 +9,7 @@
|
||||
player.drop_from_inventory(thing)
|
||||
if(thing.loc != player)
|
||||
qdel(thing)
|
||||
player.species.equip_survival_gear(player)
|
||||
player.species.before_equip(player)
|
||||
return 1
|
||||
|
||||
/datum/antagonist/proc/unequip(var/mob/living/carbon/human/player)
|
||||
|
||||
@@ -53,6 +53,8 @@
|
||||
return list(access_cent_general, access_cent_living, access_cent_medical)
|
||||
if("Death Commando")
|
||||
return list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
|
||||
if("NanoTrasen Representative")
|
||||
return list(access_cent_general, access_cent_living, access_cent_storage, access_cent_thunder, access_cent_medical, access_cent_specops, access_cent_teleporter)
|
||||
if("Research Officer")
|
||||
return list(access_cent_general, access_cent_specops, access_cent_medical, access_cent_teleporter, access_cent_storage)
|
||||
if("BlackOps Commander")
|
||||
@@ -63,6 +65,21 @@
|
||||
return list(access_cent_general, access_cent_captain, access_cent_living, access_cent_storage)
|
||||
if("Emergency Response Team")
|
||||
return list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
|
||||
log_debug("Invalid job [job] passed to get_centcom_access")
|
||||
return list()
|
||||
|
||||
/proc/get_syndicate_access(job)
|
||||
switch(job)
|
||||
if("Syndicate Operative")
|
||||
return list(access_syndicate)
|
||||
if("Syndicate Operative Leader")
|
||||
return list(access_syndicate, access_syndicate_leader)
|
||||
if("Syndicate Agent")
|
||||
return list(access_syndicate, access_maint_tunnels)
|
||||
if("Syndicate Commando")
|
||||
return list(access_syndicate, access_syndicate_leader)
|
||||
log_debug("Invalid job [job] passed to get_syndicate_access")
|
||||
return list()
|
||||
|
||||
/var/list/datum/access/priv_all_access_datums
|
||||
/proc/get_all_access_datums()
|
||||
|
||||
@@ -490,6 +490,11 @@ var/const/access_journalist = 70//journalist's office access
|
||||
id = access_syndicate
|
||||
access_type = ACCESS_TYPE_SYNDICATE
|
||||
|
||||
/var/const/access_syndicate_leader = 151 //Syndie Commander Access
|
||||
/datum/access/syndicate_leader
|
||||
id = access_syndicate_leader
|
||||
access_type = ACCESS_TYPE_SYNDICATE
|
||||
|
||||
/*******
|
||||
* Misc *
|
||||
*******/
|
||||
|
||||
@@ -13,20 +13,17 @@
|
||||
minimal_access = list() //See /datum/job/assistant/get_access()
|
||||
//alt_titles = list("Technical Assistant","Medical Intern","Research Assistant","Security Cadet", "Visitor")
|
||||
alt_titles = list("Visitor")
|
||||
|
||||
/datum/job/assistant/equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
var/obj/item/clothing/under/color/grey/G = new /obj/item/clothing/under/color/grey(H)
|
||||
if(H.equip_to_slot_or_del(G, slot_w_uniform))
|
||||
G.autodrobe_no_remove = TRUE
|
||||
var/obj/item/clothing/shoes/black/B = new /obj/item/clothing/shoes/black(H)
|
||||
if(H.equip_to_slot_or_del(B, slot_shoes))
|
||||
B.autodrobe_no_remove = TRUE
|
||||
return TRUE
|
||||
outfit = /datum/outfit/job/assistant
|
||||
|
||||
/datum/job/assistant/get_access()
|
||||
if(config.assistant_maint)
|
||||
return list(access_maint_tunnels)
|
||||
else
|
||||
return list()
|
||||
|
||||
/datum/outfit/job/assistant
|
||||
name = "Assistant"
|
||||
jobtype = /datum/job/assistant
|
||||
|
||||
uniform = /obj/item/clothing/under/color/grey
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
@@ -11,7 +11,6 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
spawn_positions = 1
|
||||
supervisors = "company officials and Corporate Regulations"
|
||||
selection_color = "#ccccff"
|
||||
idtype = /obj/item/weapon/card/id/gold
|
||||
req_admin_notify = 1
|
||||
access = list() //See get_access()
|
||||
minimal_access = list() //See get_access()
|
||||
@@ -20,43 +19,49 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
|
||||
ideal_character_age = 70 // Old geezer captains ftw
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/captain
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_cap
|
||||
alt_satchel_type = /obj/item/weapon/storage/backpack/satchel
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/cap
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/com
|
||||
outfit = /datum/outfit/job/captain
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/captain(H), slot_w_uniform)
|
||||
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
|
||||
var/obj/item/clothing/accessory/medal/gold/captain/medal = new()
|
||||
if(uniform && uniform.can_attach_accessory(medal))
|
||||
uniform.attach_accessory(null, medal)
|
||||
else
|
||||
qdel(medal)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/captain(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/caphat(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_l_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack)
|
||||
/datum/outfit/job/captain
|
||||
name = "Captain"
|
||||
jobtype = /datum/job/captain
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/captain
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
head = /obj/item/clothing/head/caphat
|
||||
l_ear = /obj/item/device/radio/headset/heads/captain
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
id = /obj/item/weapon/card/id/gold
|
||||
pda = /obj/item/device/pda/captain
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/ids = 1
|
||||
)
|
||||
|
||||
H.implant_loyalty(H)
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/loyalty
|
||||
)
|
||||
|
||||
return TRUE
|
||||
backpack = /obj/item/weapon/storage/backpack/captain
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_cap
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/cap
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/com
|
||||
|
||||
get_access()
|
||||
/datum/outfit/job/captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(H && H.w_uniform)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
var/obj/item/clothing/accessory/medal/gold/captain/medal = new()
|
||||
U.attach_accessory(null, medal)
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/job/captain/get_access()
|
||||
return get_all_station_access()
|
||||
|
||||
/datum/job/captain/announce(mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
captain_announcement.Announce("All hands, Captain [H.real_name] on deck!")
|
||||
callHook("captain_spawned", list(H))
|
||||
|
||||
/datum/job/hop
|
||||
title = "Head of Personnel"
|
||||
flag = HOP
|
||||
@@ -68,12 +73,13 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
spawn_positions = 1
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ddddff"
|
||||
idtype = /obj/item/weapon/card/id/silver
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 10
|
||||
economic_modifier = 10
|
||||
ideal_character_age = 50
|
||||
|
||||
outfit = /datum/outfit/job/hop
|
||||
|
||||
access = list(access_sec_doors, access_medical, access_engine, access_change_ids, access_eva, access_heads,
|
||||
access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction,
|
||||
access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics,
|
||||
@@ -85,16 +91,17 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
access_chapel_office, access_library, access_research, access_mining, access_mining_station, access_janitor,
|
||||
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_weapons, access_journalist)
|
||||
|
||||
/datum/outfit/job/hop
|
||||
name = "Head of Personnel"
|
||||
jobtype = /datum/job/hop
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_personnel(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/hop(H), slot_belt)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_l_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/head_of_personnel
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
l_ear = /obj/item/device/radio/headset/heads/hop
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
pda = /obj/item/device/pda/heads/hop
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/ids = 1
|
||||
)
|
||||
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/com
|
||||
+149
-131
@@ -12,15 +12,17 @@
|
||||
access = list(access_hydroponics, access_bar, access_kitchen)
|
||||
minimal_access = list(access_bar)
|
||||
alt_titles = list("Barista")
|
||||
outfit = /datum/outfit/job/bartender
|
||||
|
||||
/datum/outfit/job/bartender
|
||||
name = "Bartender"
|
||||
jobtype = /datum/job/bartender
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/bartender
|
||||
pda = /obj/item/device/pda/bar
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/bar(H), slot_belt)
|
||||
return TRUE
|
||||
|
||||
/datum/job/chef
|
||||
title = "Chef"
|
||||
@@ -35,23 +37,22 @@
|
||||
access = list(access_hydroponics, access_bar, access_kitchen)
|
||||
minimal_access = list(access_kitchen)
|
||||
alt_titles = list("Cook")
|
||||
outfit = /datum/outfit/job/chef
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/chef(H), slot_belt)
|
||||
/datum/outfit/job/chef
|
||||
name = "Chef"
|
||||
jobtype = /datum/job/chef
|
||||
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/produce(H), slot_l_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/produce(H.back), slot_in_backpack)
|
||||
uniform = /obj/item/clothing/under/rank/chef
|
||||
suit = /obj/item/clothing/suit/chef
|
||||
head = /obj/item/clothing/head/chefhat
|
||||
pda = /obj/item/device/pda/chef
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
|
||||
return TRUE
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/produce = 1
|
||||
)
|
||||
|
||||
/datum/job/hydro
|
||||
title = "Gardener"
|
||||
@@ -66,28 +67,32 @@
|
||||
access = list(access_hydroponics, access_bar, access_kitchen)
|
||||
minimal_access = list(access_hydroponics)
|
||||
alt_titles = list("Hydroponicist")
|
||||
outfit = /datum/outfit/job/hydro
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/hydroponics
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_hyd
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/hyd
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/hyd
|
||||
/datum/outfit/job/hydro
|
||||
name = "Gardener"
|
||||
jobtype = /datum/job/hydro
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/analyzer/plant_analyzer(H), slot_s_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/botanist(H), slot_belt)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/hydroponics
|
||||
suit = /obj/item/clothing/suit/apron
|
||||
pda = /obj/item/device/pda/botanist
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
suit_store = /obj/item/device/analyzer/plant_analyzer
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/hydroponics
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_hyd
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/hyd
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/hyd
|
||||
|
||||
/datum/outfit/job/hydro/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(istajara(H))
|
||||
H.equip_or_collect(new /obj/item/clothing/gloves/botanic_leather/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_or_collect(new /obj/item/clothing/gloves/botanic_leather/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_or_collect(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves)
|
||||
|
||||
//Cargo
|
||||
/datum/job/qm
|
||||
@@ -107,16 +112,19 @@
|
||||
|
||||
ideal_character_age = 40
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/quartermaster(H), slot_belt)
|
||||
// H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
|
||||
return 1
|
||||
outfit = /datum/outfit/job/qm
|
||||
|
||||
/datum/outfit/job/qm
|
||||
name = "Quartermaster"
|
||||
jobtype = /datum/job/qm
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/cargo
|
||||
pda = /obj/item/device/pda/quartermaster
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
l_ear = /obj/item/device/radio/headset/headset_cargo
|
||||
l_hand = /obj/item/weapon/clipboard
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
|
||||
|
||||
/datum/job/cargo_tech
|
||||
title = "Cargo Technician"
|
||||
@@ -130,15 +138,17 @@
|
||||
selection_color = "#dddddd"
|
||||
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
||||
minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting)
|
||||
outfit = /datum/outfit/job/cargo_tech
|
||||
|
||||
/datum/outfit/job/cargo_tech
|
||||
name = "Cargo Technician"
|
||||
jobtype = /datum/job/cargo_tech
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/cargotech
|
||||
pda = /obj/item/device/pda/cargo
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
l_ear = /obj/item/device/radio/headset/headset_cargo
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/cargo(H), slot_belt)
|
||||
// H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
return 1
|
||||
|
||||
/datum/job/mining
|
||||
title = "Shaft Miner"
|
||||
@@ -153,33 +163,27 @@
|
||||
economic_modifier = 5
|
||||
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
||||
minimal_access = list(access_mining, access_mining_station, access_mailsorting)
|
||||
outfit = /datum/outfit/job/mining
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
/datum/outfit/job/mining
|
||||
name = "Shaft Miner"
|
||||
jobtype = /datum/job/mining
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/shaftminer(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
// H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/crowbar(H), slot_l_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/ore(H), slot_l_store)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/crowbar(H), slot_in_backpack)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/ore(H), slot_in_backpack)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/miner
|
||||
pda = /obj/item/device/pda/shaftminer
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_cargo
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/crowbar = 1,
|
||||
/obj/item/weapon/storage/bag/ore = 1
|
||||
)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
|
||||
equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.species.equip_survival_gear(H,1)
|
||||
return TRUE
|
||||
|
||||
//Not engineers, just the mop boys
|
||||
/datum/job/janitor
|
||||
@@ -194,20 +198,16 @@
|
||||
selection_color = "#dddddd"
|
||||
access = list(access_janitor, access_maint_tunnels, access_engine, access_research, access_sec_doors, access_medical)
|
||||
minimal_access = list(access_janitor, access_maint_tunnels, access_engine, access_research, access_sec_doors, access_medical)
|
||||
outfit = /datum/outfit/job/janitor
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_norm
|
||||
duffel_type = /obj/item/weapon/storage/backpack/satchel
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/duffel
|
||||
/datum/outfit/job/janitor
|
||||
name = "Janitor"
|
||||
jobtype = /datum/job/janitor
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/janitor(H), slot_belt)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/janitor
|
||||
pda = /obj/item/device/pda/janitor
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
|
||||
/datum/job/journalist
|
||||
title = "Corporate Reporter"
|
||||
@@ -222,20 +222,35 @@
|
||||
access = list(access_journalist, access_maint_tunnels)
|
||||
minimal_access = list(access_journalist, access_maint_tunnels)
|
||||
alt_titles = list("Freelance Journalist")
|
||||
alt_outfits = list("Freelance Journalist" = /datum/outfit/job/journalistf)
|
||||
title_accesses = list("Corporate Reporter" = list(access_medical, access_sec_doors, access_research, access_engine))
|
||||
outfit = /datum/outfit/job/journalist
|
||||
|
||||
/datum/outfit/job/journalist
|
||||
name = "Corporate Reporter"
|
||||
jobtype = /datum/job/journalist
|
||||
|
||||
uniform = /obj/item/clothing/under/suit_jacket/red
|
||||
pda = /obj/item/device/pda/librarian
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/clothing/accessory/badge/press = 1
|
||||
)
|
||||
|
||||
/datum/outfit/job/journalistf
|
||||
name = "Freelance Journalist"
|
||||
jobtype = /datum/job/journalist
|
||||
|
||||
uniform = /obj/item/clothing/under/suit_jacket/red
|
||||
pda = /obj/item/device/pda/librarian
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/clothing/accessory/badge/press/independent = 1
|
||||
)
|
||||
|
||||
/datum/job/journalist/equip(var/mob/living/carbon/human/H, var/alt_title)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/red(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/librarian(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
if(has_alt_title(H, alt_title,"Corporate Reporter"))
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/accessory/badge/press(H), slot_in_backpack)
|
||||
else if(has_alt_title(H, alt_title,"Freelance Journalist"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/accessory/badge/press/independent(H), slot_in_backpack)
|
||||
return TRUE
|
||||
|
||||
/datum/job/librarian
|
||||
title = "Librarian"
|
||||
@@ -249,19 +264,20 @@
|
||||
selection_color = "#dddddd"
|
||||
access = list(access_library, access_maint_tunnels)
|
||||
minimal_access = list(access_library)
|
||||
outfit = /datum/outfit/job/librarian
|
||||
|
||||
/datum/outfit/job/librarian
|
||||
name = "Librarian"
|
||||
jobtype = /datum/job/librarian
|
||||
|
||||
uniform = /obj/item/clothing/under/suit_jacket/red
|
||||
pda = /obj/item/device/pda/librarian
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
r_pocket = /obj/item/weapon/barcodescanner
|
||||
l_hand = /obj/item/weapon/storage/bag/books
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/red(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/librarian(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/barcodescanner(H), slot_r_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/books(H), slot_l_hand)
|
||||
return TRUE
|
||||
|
||||
//var/global/lawyer = 0//Checks for another lawyer //This changed clothes on 2nd lawyer, both IA get the same dreds.
|
||||
/datum/job/lawyer
|
||||
title = "Internal Affairs Agent"
|
||||
flag = LAWYER
|
||||
@@ -275,18 +291,20 @@
|
||||
economic_modifier = 7
|
||||
access = list(access_lawyer, access_sec_doors, access_maint_tunnels, access_heads)
|
||||
minimal_access = list(access_lawyer, access_sec_doors, access_heads)
|
||||
outfit = /datum/outfit/job/iaa
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/ia(H), slot_l_ear)
|
||||
/datum/outfit/job/iaa
|
||||
name = "Internal Affairs Agent"
|
||||
jobtype = /datum/job/lawyer
|
||||
|
||||
H.implant_loyalty(H)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/internalaffairs(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/internalaffairs(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(H), slot_glasses)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/lawyer(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/briefcase(H), slot_l_hand)
|
||||
uniform = /obj/item/clothing/under/rank/internalaffairs
|
||||
suit = /obj/item/clothing/suit/storage/toggle/internalaffairs
|
||||
pda = /obj/item/device/pda/lawyer
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/big
|
||||
l_ear = /obj/item/device/radio/headset/ia
|
||||
l_hand = /obj/item/weapon/storage/briefcase
|
||||
|
||||
return TRUE
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/loyalty
|
||||
)
|
||||
@@ -12,151 +12,156 @@
|
||||
access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels)
|
||||
minimal_access = list(access_morgue, access_chapel_office, access_crematorium)
|
||||
alt_titles = list("Presbyter","Rabbi","Imam","Priest","Shaman","Counselor")
|
||||
outfit = /datum/outfit/job/chaplain
|
||||
|
||||
/datum/outfit/job/chaplain
|
||||
name = "Chaplain"
|
||||
jobtype = /datum/job/chaplain
|
||||
|
||||
equip(var/mob/living/carbon/human/H, var/alt_title, var/ask_questions = TRUE)
|
||||
if(!H)
|
||||
return FALSE
|
||||
uniform = /obj/item/clothing/under/rank/chaplain
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
pda = /obj/item/device/pda/chaplain
|
||||
|
||||
var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible(H) //BS12 EDIT
|
||||
H.equip_to_slot_or_del(B, slot_r_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/chaplain(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
if(!ask_questions)
|
||||
return 1
|
||||
/datum/outfit/job/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
|
||||
spawn(0)
|
||||
var/religion_name = "Christianity"
|
||||
var/new_religion = sanitize(input(H, "You are the crew services officer. Would you like to change your religion? Default is Christianity, in SPACE.", "Name change", religion_name), MAX_NAME_LEN)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
if (!new_religion)
|
||||
new_religion = religion_name
|
||||
var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible(H) //BS12 EDIT
|
||||
H.equip_or_collect(B, slot_r_hand)
|
||||
|
||||
switch(lowertext(new_religion))
|
||||
if("christianity")
|
||||
B.name = pick("The Holy Bible","The Dead Sea Scrolls")
|
||||
if("satanism")
|
||||
B.name = "The Unholy Bible"
|
||||
if("cthulu")
|
||||
B.name = "The Necronomicon"
|
||||
if("islam")
|
||||
B.name = "Quran"
|
||||
if("scientology")
|
||||
B.name = pick("The Biography of L. Ron Hubbard","Dianetics")
|
||||
if("chaos")
|
||||
B.name = "The Book of Lorgar"
|
||||
if("imperium")
|
||||
B.name = "Uplifting Primer"
|
||||
if("toolboxia")
|
||||
B.name = "Toolbox Manifesto"
|
||||
if("homosexuality")
|
||||
B.name = "Guys Gone Wild"
|
||||
if("moroz holy tribunal","moroz","holy tribunal")
|
||||
B.name = "Tribunal Codex"
|
||||
//if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks")
|
||||
// B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition")
|
||||
// H.setBrainLoss(100) // starts off retarded as fuck
|
||||
if("science")
|
||||
B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition")
|
||||
else
|
||||
B.name = "The Holy Book of [new_religion]"
|
||||
feedback_set_details("religion_name","[new_religion]")
|
||||
CALLBACK(src, .proc/select_religion_name, H, B)
|
||||
|
||||
spawn(1)
|
||||
var/deity_name = "Space Jesus"
|
||||
var/new_deity = sanitize(input(H, "Would you like to change your deity? Default is Space Jesus.", "Name change", deity_name), MAX_NAME_LEN)
|
||||
return TRUE
|
||||
|
||||
if ((length(new_deity) == 0) || (new_deity == "Space Jesus") )
|
||||
new_deity = deity_name
|
||||
B.deity_name = new_deity
|
||||
/datum/outfit/job/chaplain/proc/select_religion_name(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B)
|
||||
var/religion_name = "Christianity"
|
||||
var/new_religion = sanitize(input(H, "You are the crew services officer. Would you like to change your religion? Default is Christianity, in SPACE.", "Name change", religion_name), MAX_NAME_LEN)
|
||||
|
||||
var/accepted = 0
|
||||
var/outoftime = 0
|
||||
spawn(200) // 20 seconds to choose
|
||||
outoftime = 1
|
||||
var/new_book_style = "Bible"
|
||||
if (!new_religion)
|
||||
new_religion = religion_name
|
||||
|
||||
while(!accepted)
|
||||
if(!B) break // prevents possible runtime errors
|
||||
new_book_style = input(H,"Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Creeper", "White Bible", "Holy Light", "Athiest", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon")
|
||||
switch(new_book_style)
|
||||
if("Koran")
|
||||
B.icon_state = "koran"
|
||||
B.item_state = "koran"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(4)
|
||||
if("Scrapbook")
|
||||
B.icon_state = "scrapbook"
|
||||
B.item_state = "scrapbook"
|
||||
if("Creeper")
|
||||
B.icon_state = "creeper"
|
||||
B.item_state = "syringe_kit"
|
||||
if("White Bible")
|
||||
B.icon_state = "white"
|
||||
B.item_state = "syringe_kit"
|
||||
if("Holy Light")
|
||||
B.icon_state = "holylight"
|
||||
B.item_state = "syringe_kit"
|
||||
if("Athiest")
|
||||
B.icon_state = "athiest"
|
||||
B.item_state = "syringe_kit"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(10)
|
||||
if("Tome")
|
||||
B.icon_state = "tome"
|
||||
B.item_state = "syringe_kit"
|
||||
if("The King in Yellow")
|
||||
B.icon_state = "kingyellow"
|
||||
B.item_state = "kingyellow"
|
||||
if("Ithaqua")
|
||||
B.icon_state = "ithaqua"
|
||||
B.item_state = "ithaqua"
|
||||
if("Scientology")
|
||||
B.icon_state = "scientology"
|
||||
B.item_state = "scientology"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(8)
|
||||
if("the bible melts")
|
||||
B.icon_state = "melted"
|
||||
B.item_state = "melted"
|
||||
if("Necronomicon")
|
||||
B.icon_state = "necronomicon"
|
||||
B.item_state = "necronomicon"
|
||||
else
|
||||
// if christian bible, revert to default
|
||||
B.icon_state = "bible"
|
||||
B.item_state = "bible"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(2)
|
||||
switch(lowertext(new_religion))
|
||||
if("christianity")
|
||||
B.name = pick("The Holy Bible","The Dead Sea Scrolls")
|
||||
if("satanism")
|
||||
B.name = "The Unholy Bible"
|
||||
if("cthulu")
|
||||
B.name = "The Necronomicon"
|
||||
if("islam")
|
||||
B.name = "Quran"
|
||||
if("scientology")
|
||||
B.name = pick("The Biography of L. Ron Hubbard","Dianetics")
|
||||
if("chaos")
|
||||
B.name = "The Book of Lorgar"
|
||||
if("imperium")
|
||||
B.name = "Uplifting Primer"
|
||||
if("toolboxia")
|
||||
B.name = "Toolbox Manifesto"
|
||||
if("homosexuality")
|
||||
B.name = "Guys Gone Wild"
|
||||
if("moroz holy tribunal","moroz","holy tribunal")
|
||||
B.name = "Tribunal Codex"
|
||||
//if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks")
|
||||
// B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition")
|
||||
// H.setBrainLoss(100) // starts off retarded as fuck
|
||||
if("science")
|
||||
B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition")
|
||||
else
|
||||
B.name = "The Holy Book of [new_religion]"
|
||||
feedback_set_details("religion_name","[new_religion]")
|
||||
CALLBACK(src, .proc/select_deity_name, H, B)
|
||||
|
||||
H.update_inv_l_hand() // so that it updates the bible's item_state in his hand
|
||||
/datum/outfit/job/chaplain/proc/select_deity_name(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B)
|
||||
var/deity_name = "Space Jesus"
|
||||
var/new_deity = sanitize(input(H, "Would you like to change your deity? Default is Space Jesus.", "Name change", deity_name), MAX_NAME_LEN)
|
||||
|
||||
switch(input(H,"Look at your bible - is this what you want?") in list("Yes","No"))
|
||||
if("Yes")
|
||||
accepted = 1
|
||||
if("No")
|
||||
if(outoftime)
|
||||
H << "Welp, out of time, buddy. You're stuck. Next time choose faster."
|
||||
accepted = 1
|
||||
if ((length(new_deity) == 0) || (new_deity == "Space Jesus") )
|
||||
new_deity = deity_name
|
||||
B.deity_name = new_deity
|
||||
|
||||
SSticker.Bible_icon_state = B.icon_state
|
||||
SSticker.Bible_item_state = B.item_state
|
||||
SSticker.Bible_name = B.name
|
||||
SSticker.Bible_deity_name = B.deity_name
|
||||
feedback_set_details("religion_deity","[new_deity]")
|
||||
feedback_set_details("religion_book","[new_book_style]")
|
||||
return TRUE
|
||||
var/accepted = 0
|
||||
var/outoftime = 0
|
||||
spawn(200) // 20 seconds to choose
|
||||
outoftime = 1
|
||||
var/new_book_style = "Bible"
|
||||
|
||||
while(!accepted)
|
||||
if(!B) break // prevents possible runtime errors
|
||||
new_book_style = input(H,"Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Creeper", "White Bible", "Holy Light", "Athiest", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon")
|
||||
switch(new_book_style)
|
||||
if("Koran")
|
||||
B.icon_state = "koran"
|
||||
B.item_state = "koran"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(4)
|
||||
if("Scrapbook")
|
||||
B.icon_state = "scrapbook"
|
||||
B.item_state = "scrapbook"
|
||||
if("Creeper")
|
||||
B.icon_state = "creeper"
|
||||
B.item_state = "syringe_kit"
|
||||
if("White Bible")
|
||||
B.icon_state = "white"
|
||||
B.item_state = "syringe_kit"
|
||||
if("Holy Light")
|
||||
B.icon_state = "holylight"
|
||||
B.item_state = "syringe_kit"
|
||||
if("Athiest")
|
||||
B.icon_state = "athiest"
|
||||
B.item_state = "syringe_kit"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(10)
|
||||
if("Tome")
|
||||
B.icon_state = "tome"
|
||||
B.item_state = "syringe_kit"
|
||||
if("The King in Yellow")
|
||||
B.icon_state = "kingyellow"
|
||||
B.item_state = "kingyellow"
|
||||
if("Ithaqua")
|
||||
B.icon_state = "ithaqua"
|
||||
B.item_state = "ithaqua"
|
||||
if("Scientology")
|
||||
B.icon_state = "scientology"
|
||||
B.item_state = "scientology"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(8)
|
||||
if("the bible melts")
|
||||
B.icon_state = "melted"
|
||||
B.item_state = "melted"
|
||||
if("Necronomicon")
|
||||
B.icon_state = "necronomicon"
|
||||
B.item_state = "necronomicon"
|
||||
else
|
||||
// if christian bible, revert to default
|
||||
B.icon_state = "bible"
|
||||
B.item_state = "bible"
|
||||
for(var/area/chapel/main/A in the_station_areas)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.set_dir(2)
|
||||
|
||||
/datum/job/chaplain/equip_preview(var/mob/living/carbon/human/H, var/alt_title)
|
||||
return equip(H, alt_title, FALSE)
|
||||
H.update_inv_l_hand() // so that it updates the bible's item_state in his hand
|
||||
|
||||
switch(input(H,"Look at your bible - is this what you want?") in list("Yes","No"))
|
||||
if("Yes")
|
||||
accepted = 1
|
||||
if("No")
|
||||
if(outoftime)
|
||||
to_chat(H, "Welp, out of time, buddy. You're stuck. Next time choose faster.")
|
||||
accepted = 1
|
||||
|
||||
SSticker.Bible_icon_state = B.icon_state
|
||||
SSticker.Bible_item_state = B.item_state
|
||||
SSticker.Bible_name = B.name
|
||||
SSticker.Bible_deity_name = B.deity_name
|
||||
feedback_set_details("religion_deity","[new_deity]")
|
||||
feedback_set_details("religion_book","[new_book_style]")
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
spawn_positions = 1
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ffeeaa"
|
||||
idtype = /obj/item/weapon/card/id/silver
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 10
|
||||
|
||||
@@ -25,36 +24,33 @@
|
||||
access_heads, access_construction, access_sec_doors, access_research, access_medical,
|
||||
access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload)
|
||||
minimal_player_age = 7
|
||||
outfit = /datum/outfit/job/chief_engineer
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
alt_satchel_type = /obj/item/weapon/storage/backpack/satchel
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
/datum/outfit/job/chief_engineer
|
||||
name = "Chief Engineer"
|
||||
jobtype = /datum/job/chief_engineer
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/chief_engineer
|
||||
head = /obj/item/clothing/head/hardhat/white
|
||||
belt = /obj/item/weapon/storage/belt/utility/full
|
||||
pda = /obj/item/device/pda/heads/ce
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
shoes = /obj/item/clothing/shoes/workboots
|
||||
l_ear = /obj/item/device/radio/headset/heads/ce
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_engineer(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/ce(H), slot_l_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
return 1
|
||||
|
||||
equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.species.equip_survival_gear(H,1)
|
||||
return TRUE
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
|
||||
/datum/outfit/job/chief_engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
|
||||
/datum/job/engineer
|
||||
title = "Station Engineer"
|
||||
@@ -70,36 +66,24 @@
|
||||
access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics)
|
||||
minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction)
|
||||
alt_titles = list("Maintenance Technician","Engine Technician","Electrician")
|
||||
outfit = /datum/outfit/job/engineer
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
alt_satchel_type = /obj/item/weapon/storage/backpack/satchel
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
/datum/outfit/job/engineer
|
||||
name = "Engineer"
|
||||
jobtype = /datum/job/engineer
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
|
||||
switch(H.backbag)
|
||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
|
||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/duffel/eng(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/t_scanner(H), slot_r_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/engineering(H), slot_l_store)
|
||||
return TRUE
|
||||
|
||||
equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.species.equip_survival_gear(H,1)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/engineer
|
||||
head = /obj/item/clothing/head/hardhat
|
||||
belt = /obj/item/weapon/storage/belt/utility/full
|
||||
pda = /obj/item/device/pda/engineering
|
||||
shoes = /obj/item/clothing/shoes/workboots
|
||||
l_ear = /obj/item/device/radio/headset/headset_eng
|
||||
r_pocket = /obj/item/device/t_scanner
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
|
||||
/datum/job/atmos
|
||||
title = "Atmospheric Technician"
|
||||
@@ -114,23 +98,19 @@
|
||||
economic_modifier = 5
|
||||
access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks)
|
||||
minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks)
|
||||
outfit = /datum/outfit/job/atmos
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
/datum/outfit/job/atmos
|
||||
name = "Atmospheric Technician"
|
||||
jobtype = /datum/job/atmos
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/atmospheric_technician(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/atmos(H), slot_l_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/atmostech/(H), slot_belt)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/atmospheric_technician
|
||||
belt = /obj/item/weapon/storage/belt/utility/atmostech
|
||||
pda = /obj/item/device/pda/atmos
|
||||
shoes = /obj/item/clothing/shoes/workboots
|
||||
l_ear = /obj/item/device/radio/headset/headset_eng
|
||||
|
||||
equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.species.equip_survival_gear(H,1)
|
||||
return TRUE
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
@@ -0,0 +1,107 @@
|
||||
/datum/job/intern_sec
|
||||
title = "Security Cadet"
|
||||
flag = INTERN_SEC
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Head of Security"
|
||||
selection_color = "#ffeeee"
|
||||
access = list(access_security, access_sec_doors, access_maint_tunnels)
|
||||
minimal_access = list(access_security, access_sec_doors, access_maint_tunnels)
|
||||
outfit = /datum/outfit/job/intern_sec
|
||||
|
||||
/datum/outfit/job/intern_sec
|
||||
name = "Security Cadet"
|
||||
jobtype = /datum/job/intern_sec
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/security2
|
||||
head = /obj/item/clothing/head/beret/sec
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_ear = /obj/item/device/radio/headset/headset_sec
|
||||
r_pocket = /obj/item/device/t_scanner
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
|
||||
/datum/job/intern_med
|
||||
title = "Medical Resident"
|
||||
flag = INTERN_MED
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Chief Medical Officer"
|
||||
selection_color = "#ffeef0"
|
||||
access = list(access_medical, access_surgery, access_medical_equip)
|
||||
minimal_access = list(access_medical, access_surgery, access_medical_equip)
|
||||
alt_titles = list("Medical Intern")
|
||||
outfit = /datum/outfit/job/intern_med
|
||||
|
||||
/datum/outfit/job/intern_med
|
||||
name = "Medical Resident"
|
||||
jobtype = /datum/job/intern_med
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/medical
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
l_ear = /obj/item/device/radio/headset/headset_med
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/medic
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_med
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/med
|
||||
|
||||
/datum/job/intern_sci
|
||||
title = "Lab Assistant"
|
||||
flag = INTERN_SCI
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Research Director"
|
||||
selection_color = "#ffeeff"
|
||||
access = list(access_research, access_tox)
|
||||
minimal_access = list(access_research, access_tox)
|
||||
outfit = /datum/outfit/job/intern_sci
|
||||
|
||||
/datum/outfit/job/intern_sci
|
||||
name = "Lab Assistant"
|
||||
jobtype = /datum/job/intern_sci
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/scientist
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
l_ear = /obj/item/device/radio/headset/headset_sci
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
|
||||
/datum/job/intern_eng
|
||||
title = "Engineering Apprentice"
|
||||
flag = INTERN_ENG
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Chief Engineer"
|
||||
selection_color = "#fff5cc"
|
||||
access = list(access_maint_tunnels, access_construction, access_engine_equip, access_engine)
|
||||
minimal_access = list(access_maint_tunnels, access_construction, access_engine_equip, access_engine)
|
||||
outfit = /datum/outfit/job/intern_eng
|
||||
|
||||
/datum/outfit/job/intern_eng
|
||||
name = "Engineering Apprentice"
|
||||
jobtype = /datum/job/intern_eng
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/engineer
|
||||
shoes = /obj/item/clothing/shoes/orange
|
||||
head = /obj/item/clothing/head/beret/engineering
|
||||
l_ear = /obj/item/device/radio/headset/headset_eng
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
+103
-46
@@ -13,7 +13,6 @@
|
||||
var/current_positions = 0 // How many players have this job
|
||||
var/supervisors = null // Supervisors, who this person answers to directly
|
||||
var/selection_color = "#ffffff" // Selection screen color
|
||||
var/idtype = /obj/item/weapon/card/id // The type of the ID the player will have
|
||||
var/list/alt_titles // List of alternate titles, if any
|
||||
var/list/title_accesses // A map of title -> list of accesses to add if the person has this title.
|
||||
var/req_admin_notify // If this is set to 1, a text is printed to the player when jobs are assigned, telling him that he should let admins know that he has to disconnect.
|
||||
@@ -29,41 +28,41 @@
|
||||
var/economic_modifier = 2 // With how much does this job modify the initial account amount?
|
||||
var/create_record = 1 // Do we announce/make records for people who spawn on this job?
|
||||
|
||||
var/bag_type = /obj/item/weapon/storage/backpack
|
||||
var/satchel_type = /obj/item/weapon/storage/backpack/satchel_norm
|
||||
var/alt_satchel_type = /obj/item/weapon/storage/backpack/satchel
|
||||
var/duffel_type = /obj/item/weapon/storage/backpack/duffel
|
||||
var/messenger_bag_type = /obj/item/weapon/storage/backpack/messenger
|
||||
var/datum/outfit/outfit = null
|
||||
var/list/alt_outfits = null // A list of special outfits for the alt titles list("alttitle" = /datum/outfit)
|
||||
|
||||
/datum/job/proc/equip(var/mob/living/carbon/human/H)
|
||||
return 1
|
||||
//Only override this proc
|
||||
/datum/job/proc/after_spawn(mob/living/carbon/human/H)
|
||||
|
||||
/datum/job/proc/equip_backpack(var/mob/living/carbon/human/H)
|
||||
var/type_to_spawn
|
||||
var/use_job_specific = H.backbag_style == 1
|
||||
switch (H.backbag)
|
||||
//if (1) // No bag selected.
|
||||
// Hard-coding bagtype for now since there's only two options.
|
||||
if (2)
|
||||
type_to_spawn = use_job_specific ? bag_type : /obj/item/weapon/storage/backpack
|
||||
if (3)
|
||||
type_to_spawn = use_job_specific ? satchel_type : /obj/item/weapon/storage/backpack/satchel_norm
|
||||
if (4)
|
||||
type_to_spawn = use_job_specific ? alt_satchel_type : /obj/item/weapon/storage/backpack/satchel
|
||||
if (5)
|
||||
type_to_spawn = use_job_specific ? duffel_type : /obj/item/weapon/storage/backpack/duffel
|
||||
if (6)
|
||||
type_to_spawn = use_job_specific ? messenger_bag_type : /obj/item/weapon/storage/backpack/messenger
|
||||
/datum/job/proc/announce(mob/living/carbon/human/H)
|
||||
|
||||
if (type_to_spawn)
|
||||
var/obj/item/bag = new type_to_spawn
|
||||
if (H.equip_to_slot_or_del(bag, slot_back))
|
||||
bag.autodrobe_no_remove = TRUE
|
||||
/datum/job/proc/get_outfit(mob/living/carbon/human/H, alt_title=null)
|
||||
//Check if we have a speical outfit for that alt title
|
||||
if (alt_outfits && alt_title)
|
||||
return alt_outfits[alt_title]
|
||||
else if(alt_outfits && H.mind && H.mind.role_alt_title in alt_outfits)
|
||||
return alt_outfits[H.mind.role_alt_title]
|
||||
else if (!H.mind && H.job in alt_outfits)
|
||||
return alt_outfits[H.job]
|
||||
else if(outfit)
|
||||
return outfit
|
||||
|
||||
/datum/job/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, alt_title = null)
|
||||
if(!H)
|
||||
return 0
|
||||
|
||||
/datum/job/proc/equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.species.equip_survival_gear(H,0)
|
||||
return 1
|
||||
H.species.before_equip(H, visualsOnly, src)
|
||||
H.preEquipOutfit(get_outfit(H, alt_title), visualsOnly)
|
||||
|
||||
/datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, alt_title = null)
|
||||
if(!H)
|
||||
return 0
|
||||
H.equipOutfit(get_outfit(H, alt_title), visualsOnly)
|
||||
|
||||
H.species.after_equip(H, visualsOnly, src)
|
||||
|
||||
if(!visualsOnly && announce)
|
||||
announce(H)
|
||||
|
||||
/datum/job/proc/setup_account(var/mob/living/carbon/human/H)
|
||||
if(!account_allowed || (H.mind && H.mind.initial_account))
|
||||
@@ -104,7 +103,8 @@
|
||||
|
||||
// overrideable separately so AIs/borgs can have cardborg hats without unneccessary new()/del()
|
||||
/datum/job/proc/equip_preview(mob/living/carbon/human/H, var/alt_title)
|
||||
. = equip(H, alt_title)
|
||||
pre_equip(H, TRUE)
|
||||
. = equip(H, TRUE, FALSE, alt_title=alt_title)
|
||||
|
||||
/datum/job/proc/get_access(selected_title)
|
||||
if(!config || config.jobs_have_minimal_access)
|
||||
@@ -115,19 +115,6 @@
|
||||
if (LAZYLEN(title_accesses) && title_accesses[selected_title])
|
||||
. += title_accesses[selected_title]
|
||||
|
||||
/datum/job/proc/apply_fingerprints(var/mob/living/carbon/human/target)
|
||||
if(!istype(target))
|
||||
return 0
|
||||
for(var/obj/item/item in target.contents)
|
||||
apply_fingerprints_to_item(target, item)
|
||||
return 1
|
||||
|
||||
/datum/job/proc/apply_fingerprints_to_item(var/mob/living/carbon/human/holder, var/obj/item/item)
|
||||
item.add_fingerprint(holder,1)
|
||||
if(item.contents.len)
|
||||
for(var/obj/item/sub_item in item.contents)
|
||||
apply_fingerprints_to_item(holder, sub_item)
|
||||
|
||||
/datum/job/proc/is_position_available()
|
||||
return (current_positions < total_positions) || (total_positions == -1)
|
||||
|
||||
@@ -144,6 +131,8 @@
|
||||
if(!H)
|
||||
return 0
|
||||
|
||||
H.species.before_equip(H, FALSE, src)
|
||||
|
||||
var/loyalty = 1
|
||||
if(H.client)
|
||||
switch(H.client.prefs.nanotrasen_relation)
|
||||
@@ -183,3 +172,71 @@
|
||||
|
||||
/datum/job/proc/has_alt_title(var/mob/H, var/supplied_title, var/desired_title)
|
||||
return (supplied_title == desired_title) || (H.mind && H.mind.role_alt_title == desired_title)
|
||||
|
||||
/datum/outfit/job
|
||||
name = "Standard Gear"
|
||||
var/base_name = null
|
||||
collect_not_del = FALSE
|
||||
|
||||
var/allow_loadout = TRUE
|
||||
var/allow_backbag_choice = TRUE
|
||||
var/jobtype = null
|
||||
|
||||
uniform = /obj/item/clothing/under/color/grey
|
||||
id = /obj/item/weapon/card/id
|
||||
l_ear = /obj/item/device/radio/headset
|
||||
back = /obj/item/weapon/storage/backpack
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
pda = /obj/item/device/pda
|
||||
|
||||
var/backpack = /obj/item/weapon/storage/backpack
|
||||
var/satchel = /obj/item/weapon/storage/backpack/satchel_norm
|
||||
var/satchel_alt = /obj/item/weapon/storage/backpack/satchel
|
||||
var/dufflebag = /obj/item/weapon/storage/backpack/duffel
|
||||
var/messengerbag = /obj/item/weapon/storage/backpack/messenger
|
||||
var/box = /obj/item/weapon/storage/box/survival
|
||||
|
||||
/datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(allow_backbag_choice)
|
||||
var/use_job_specific = H.backbag_style == 1
|
||||
switch(H.backbag)
|
||||
if (2)
|
||||
back = use_job_specific ? backpack : /obj/item/weapon/storage/backpack
|
||||
if (3)
|
||||
back = use_job_specific ? satchel : /obj/item/weapon/storage/backpack/satchel_norm
|
||||
if (4)
|
||||
back = use_job_specific ? satchel_alt : /obj/item/weapon/storage/backpack/satchel
|
||||
if (5)
|
||||
back = use_job_specific ? dufflebag : /obj/item/weapon/storage/backpack/duffel
|
||||
if (6)
|
||||
back = use_job_specific ? messengerbag : /obj/item/weapon/storage/backpack/messenger
|
||||
else
|
||||
back = backpack //Department backpack
|
||||
equip_item(H, back, slot_back)
|
||||
|
||||
if(istype(H.back,/obj/item/weapon/storage/backpack))
|
||||
var/obj/item/weapon/storage/backpack/B = H.back
|
||||
B.autodrobe_no_remove = TRUE
|
||||
|
||||
/datum/outfit/job/equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(box)
|
||||
var/spawnbox = box
|
||||
backpack_contents.Insert(1, spawnbox) // Box always takes a first slot in backpack
|
||||
backpack_contents[spawnbox] = 1
|
||||
. = ..()
|
||||
|
||||
/datum/outfit/job/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
|
||||
/datum/outfit/job/get_id_access(mob/living/carbon/human/H)
|
||||
var/datum/job/J = SSjobs.GetJobType(jobtype)
|
||||
if(!J)
|
||||
J = SSjobs.GetJob(H.job)
|
||||
return J.get_access(get_id_assignment(H))
|
||||
|
||||
/datum/outfit/job/get_id_rank(mob/living/carbon/human/H)
|
||||
var/datum/job/J = SSjobs.GetJobType(jobtype)
|
||||
if(!J)
|
||||
J = SSjobs.GetJob(H.job)
|
||||
return J.title
|
||||
+131
-126
@@ -9,7 +9,6 @@
|
||||
spawn_positions = 1
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ffddf0"
|
||||
idtype = /obj/item/weapon/card/id/silver
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 10
|
||||
access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads,
|
||||
@@ -23,23 +22,25 @@
|
||||
|
||||
minimal_player_age = 10
|
||||
ideal_character_age = 50
|
||||
outfit = /datum/outfit/job/cmo
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/medic
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_med
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/med
|
||||
/datum/outfit/job/cmo
|
||||
name = "Chief Medical Officer"
|
||||
jobtype = /datum/job/cmo
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/cmo(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/chief_medical_officer
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/cmo
|
||||
suit_store = /obj/item/device/flashlight/pen
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
l_ear = /obj/item/device/radio/headset/heads/cmo
|
||||
pda = /obj/item/device/pda/heads/cmo
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
l_hand = /obj/item/weapon/storage/firstaid/adv
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/medic
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_med
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/med
|
||||
|
||||
/datum/job/doctor
|
||||
title = "Medical Doctor"
|
||||
@@ -55,67 +56,69 @@
|
||||
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_eva)
|
||||
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_virology, access_eva)
|
||||
alt_titles = list("Surgeon","Emergency Physician","Nurse","Virologist")
|
||||
outfit = /datum/outfit/job/doctor
|
||||
alt_outfits = list(
|
||||
"Virologist"=/datum/outfit/job/doctor/virologist,
|
||||
"Emergency Physician"=/datum/outfit/job/doctor/emergency_physician,
|
||||
"Surgeon"=/datum/outfit/job/doctor/surgeon,
|
||||
"Nurse"=/datum/outfit/job/doctor/nurse
|
||||
)
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/medic
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_med
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/med
|
||||
/datum/outfit/job/doctor
|
||||
name = "Medical Doctor"
|
||||
base_name = "Medical Doctor"
|
||||
jobtype = /datum/job/doctor
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/medical
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
l_ear = /obj/item/device/radio/headset/headset_med
|
||||
pda = /obj/item/device/pda/medical
|
||||
suit_store = /obj/item/device/flashlight/pen
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/medic
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_med
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/med
|
||||
|
||||
/datum/outfit/job/doctor/virologist
|
||||
name = "Virologist"
|
||||
jobtype = /datum/job/doctor
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/virologist
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/virologist
|
||||
mask = /obj/item/clothing/mask/surgical
|
||||
pda = /obj/item/device/pda/viro
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/virology
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_vir
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/viro
|
||||
|
||||
/datum/outfit/job/doctor/emergency_physician
|
||||
name = "Emergency Physician"
|
||||
jobtype = /datum/job/doctor
|
||||
|
||||
suit = /obj/item/clothing/suit/storage/toggle/fr_jacket
|
||||
mask = /obj/item/clothing/mask/surgical
|
||||
l_hand = /obj/item/weapon/storage/firstaid/adv
|
||||
|
||||
/datum/outfit/job/doctor/surgeon
|
||||
name = "Surgeon"
|
||||
jobtype = /datum/job/doctor
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/medical/blue
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat
|
||||
head = /obj/item/clothing/head/surgery/blue
|
||||
|
||||
/datum/outfit/job/doctor/nurse
|
||||
name = "Nurse"
|
||||
jobtype = /datum/job/doctor
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/medical/purple
|
||||
suit = null
|
||||
head = /obj/item/clothing/head/nursehat
|
||||
|
||||
|
||||
/datum/job/doctor/equip_backpack(var/mob/living/carbon/human/H, var/alt_title)
|
||||
if(has_alt_title(H, alt_title,"Virologist"))
|
||||
bag_type = /obj/item/weapon/storage/backpack/virology
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_vir
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/viro
|
||||
..()
|
||||
bag_type = initial(bag_type)
|
||||
satchel_type = initial(satchel_type)
|
||||
duffel_type = initial(duffel_type)
|
||||
messenger_bag_type = initial(messenger_bag_type)
|
||||
else
|
||||
..()
|
||||
|
||||
/datum/job/doctor/equip(var/mob/living/carbon/human/H, var/alt_title)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand)
|
||||
|
||||
if(has_alt_title(H, alt_title,"Emergency Physician"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/fr_jacket(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
|
||||
else if(has_alt_title(H, alt_title,"Surgeon"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/blue(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
|
||||
else if(has_alt_title(H, alt_title,"Virologist"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/viro(H), slot_belt)
|
||||
else if(has_alt_title(H, alt_title,"Nurse"))
|
||||
if(H.gender == FEMALE)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/nursehat(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
|
||||
else if(has_alt_title(H, alt_title,"Medical Doctor"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
|
||||
return TRUE
|
||||
|
||||
|
||||
|
||||
//Chemist is a medical job damnit //YEAH FUCK YOU SCIENCE -Pete //Guys, behave -Erro
|
||||
/datum/job/chemist
|
||||
title = "Chemist"
|
||||
flag = CHEMIST
|
||||
@@ -130,21 +133,22 @@
|
||||
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics)
|
||||
minimal_access = list(access_medical, access_medical_equip, access_chemistry)
|
||||
alt_titles = list("Pharmacist")
|
||||
outfit = /datum/outfit/job/chemist
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/chemistry
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_chem
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/chem
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/chem
|
||||
/datum/outfit/job/chemist
|
||||
name = "Chemist"
|
||||
jobtype = /datum/job/chemist
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chemist(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(H), slot_wear_suit)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/chemist
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/chemist
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
l_ear = /obj/item/device/radio/headset/headset_med
|
||||
pda = /obj/item/device/pda/chemist
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/chemistry
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_chem
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/chem
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/chem
|
||||
|
||||
/datum/job/psychiatrist
|
||||
title = "Psychiatrist"
|
||||
@@ -160,20 +164,25 @@
|
||||
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_psychiatrist)
|
||||
minimal_access = list(access_medical, access_medical_equip, access_psychiatrist)
|
||||
alt_titles = list("Psychologist")
|
||||
outfit = /datum/outfit/job/psychiatrist
|
||||
alt_outfits = list("Psychologist" = /datum/outfit/job/psychiatrist/psycho)
|
||||
|
||||
equip(var/mob/living/carbon/human/H, var/alt_title)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
||||
if(has_alt_title(H, alt_title,"Psychiatrist"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/psych(H), slot_w_uniform)
|
||||
else if(has_alt_title(H, alt_title,"Psychologist"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/psych/turtleneck(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||
/datum/outfit/job/psychiatrist
|
||||
name = "Psychiatrist"
|
||||
base_name = "Psychiatrist"
|
||||
jobtype = /datum/job/psychiatrist
|
||||
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/psych
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
l_ear = /obj/item/device/radio/headset/headset_med
|
||||
pda = /obj/item/device/pda/chemist
|
||||
|
||||
/datum/outfit/job/psychiatrist/psycho
|
||||
name = "Psychologist"
|
||||
jobtype = /datum/job/psychiatrist
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/psych/turtleneck
|
||||
|
||||
|
||||
/datum/job/paramedic
|
||||
@@ -190,33 +199,29 @@
|
||||
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist, access_paramedic)
|
||||
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_eva, access_maint_tunnels, access_external_airlocks, access_paramedic)
|
||||
alt_titles = list("Emergency Medical Technician")
|
||||
outfit = /datum/outfit/job/paramedic
|
||||
alt_outfits = list("Emergency Medical Technician"=/datum/outfit/job/paramedic/emt)
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/medic
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_med
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/med
|
||||
/datum/outfit/job/paramedic
|
||||
name = "Paramedic"
|
||||
base_name = "Paramedic"
|
||||
jobtype = /datum/job/paramedic
|
||||
|
||||
equip(var/mob/living/carbon/human/H, var/alt_title)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand)
|
||||
if(has_alt_title(H, alt_title,"Emergency Medical Technician"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/paramedic(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/fr_jacket(H), slot_wear_suit)
|
||||
else if(has_alt_title(H, alt_title,"Paramedic"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/black(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/fr_jacket(H), slot_wear_suit)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/medical/emt(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_l_store)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/medical/black
|
||||
suit = /obj/item/clothing/suit/storage/toggle/fr_jacket
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_ear = /obj/item/device/radio/headset/headset_med
|
||||
l_hand = /obj/item/weapon/storage/firstaid/adv
|
||||
belt = /obj/item/weapon/storage/belt/medical/emt
|
||||
pda = /obj/item/device/pda/medical
|
||||
|
||||
equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.species.equip_survival_gear(H,1)
|
||||
return TRUE
|
||||
backpack = /obj/item/weapon/storage/backpack/medic
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_med
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/med
|
||||
|
||||
/datum/outfit/job/paramedic/emt
|
||||
name = "Emergency Medical Technician"
|
||||
jobtype = /datum/job/paramedic
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/medical/paramedic
|
||||
@@ -8,7 +8,6 @@
|
||||
spawn_positions = 0
|
||||
supervisors = "yourself and the market"
|
||||
selection_color = "#515151"
|
||||
idtype = /obj/item/weapon/card/id/merchant
|
||||
minimal_player_age = 10
|
||||
economic_modifier = 5
|
||||
ideal_character_age = 30
|
||||
@@ -20,17 +19,24 @@
|
||||
|
||||
latejoin_at_spawnpoints = TRUE
|
||||
|
||||
/datum/job/merchant/equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/merchant(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/price_scanner(H), slot_r_store)
|
||||
outfit = /datum/outfit/job/merchant
|
||||
|
||||
H << "You are a merchant heading to the [station_name()] to make profit, your main objective is to sell and trade with the crew."
|
||||
/datum/outfit/job/merchant
|
||||
name = "Merchant"
|
||||
jobtype = /datum/job/merchant
|
||||
|
||||
return TRUE
|
||||
uniform =/obj/item/clothing/under/color/grey
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
id = /obj/item/weapon/card/id/merchant
|
||||
pda = /obj/item/device/pda/merchant
|
||||
r_pocket = /obj/item/device/price_scanner
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/evidence = 1
|
||||
)
|
||||
|
||||
/datum/job/merchant/announce(mob/living/carbon/human/H)
|
||||
to_chat(H,"You are a merchant heading to the [station_name()] to make profit, your main objective is to sell and trade with the crew.")
|
||||
|
||||
/datum/job/merchant/New()
|
||||
..()
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
spawn_positions = 1
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ffddff"
|
||||
idtype = /obj/item/weapon/card/id/silver
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 15
|
||||
access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_eva, access_external_airlocks,
|
||||
@@ -22,23 +21,24 @@
|
||||
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network, access_maint_tunnels)
|
||||
minimal_player_age = 14
|
||||
ideal_character_age = 50
|
||||
outfit = /datum/outfit/job/rd
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
/datum/outfit/job/rd
|
||||
name = "Research Director"
|
||||
jobtype = /datum/job/rd
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/rd(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/research_director(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/rd(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/research_director
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/science
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
l_ear = /obj/item/device/radio/headset/heads/rd
|
||||
pda = /obj/item/device/pda/heads/rd
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
l_hand = /obj/item/weapon/clipboard
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
|
||||
|
||||
/datum/job/scientist
|
||||
@@ -57,21 +57,22 @@
|
||||
alt_titles = list("Xenoarcheologist", "Anomalist", "Phoron Researcher")
|
||||
|
||||
minimal_player_age = 14
|
||||
outfit = /datum/outfit/job/scientist
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
/datum/outfit/job/scientist
|
||||
name = "Scientist"
|
||||
jobtype = /datum/job/scientist
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/scientist
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat/science
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
l_ear = /obj/item/device/radio/headset/headset_sci
|
||||
pda = /obj/item/device/pda/science
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
|
||||
/datum/job/xenobiologist
|
||||
title = "Xenobiologist"
|
||||
@@ -90,21 +91,11 @@
|
||||
|
||||
minimal_player_age = 14
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
outfit = /datum/outfit/job/scientist/xenobiologist
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit)
|
||||
|
||||
return TRUE
|
||||
/datum/outfit/job/scientist/xenobiologist
|
||||
name = "Xenobiologist"
|
||||
jobtype = /datum/job/xenobiologist
|
||||
|
||||
/datum/job/roboticist
|
||||
title = "Roboticist"
|
||||
@@ -123,13 +114,20 @@
|
||||
|
||||
minimal_player_age = 7
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/roboticist(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/roboticist(H), slot_l_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||
return TRUE
|
||||
outfit = /datum/outfit/job/roboticist
|
||||
|
||||
/datum/outfit/job/roboticist
|
||||
name = "Roboticist"
|
||||
jobtype = /datum/job/roboticist
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/roboticist
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
l_ear = /obj/item/device/radio/headset/headset_sci
|
||||
pda = /obj/item/device/pda/roboticist
|
||||
belt = /obj/item/weapon/storage/belt/utility/full
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
+135
-108
@@ -9,7 +9,6 @@
|
||||
spawn_positions = 1
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ffdddd"
|
||||
idtype = /obj/item/weapon/card/id/silver
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 10
|
||||
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory,
|
||||
@@ -23,32 +22,40 @@
|
||||
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks,
|
||||
access_detective, access_weapons)
|
||||
minimal_player_age = 14
|
||||
outfit = /datum/outfit/job/hos
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/security
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
/datum/outfit/job/hos
|
||||
name = "Head of Security"
|
||||
jobtype = /datum/job/hos
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/hos(H), slot_belt)
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/head(H), slot_glasses)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_l_store)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack)
|
||||
H.implant_loyalty(H)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/head_of_security
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_ear = /obj/item/device/radio/headset/heads/hos
|
||||
pda = /obj/item/device/pda/heads/hos
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/sechud/head
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/ids = 1
|
||||
)
|
||||
|
||||
implants = list(
|
||||
/obj/item/weapon/implant/loyalty
|
||||
)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
|
||||
/datum/outfit/job/hos/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
|
||||
|
||||
/datum/job/warden
|
||||
@@ -65,35 +72,36 @@
|
||||
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks, access_weapons)
|
||||
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks, access_weapons)
|
||||
minimal_player_age = 7
|
||||
outfit = /datum/outfit/job/warden
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/security
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
/datum/outfit/job/warden
|
||||
name = "Warden"
|
||||
jobtype = /datum/job/warden
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/warden(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/warden(H), slot_belt)
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(H), slot_glasses)
|
||||
// H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(H), slot_wear_mask) //Grab one from the armory you donk
|
||||
H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_l_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack)
|
||||
uniform = /obj/item/clothing/under/rank/warden
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_ear = /obj/item/device/radio/headset/headset_sec
|
||||
pda = /obj/item/device/pda/warden
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/sechud/head
|
||||
l_pocket = /obj/item/device/flash
|
||||
|
||||
return TRUE
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/ids = 1
|
||||
)
|
||||
|
||||
/datum/outfit/job/warden/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
|
||||
|
||||
/datum/job/detective
|
||||
@@ -110,27 +118,30 @@
|
||||
access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_detective, access_weapons)
|
||||
minimal_access = list(access_security, access_sec_doors, access_morgue, access_maint_tunnels, access_detective, access_weapons)
|
||||
minimal_player_age = 7
|
||||
outfit = /datum/outfit/job/detective
|
||||
|
||||
/datum/outfit/job/detective
|
||||
name = "Detective"
|
||||
jobtype = /datum/job/detective
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/det(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/detective(H), slot_belt)
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/evidence(H), slot_l_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/evidence(H), slot_in_backpack)
|
||||
uniform = /obj/item/clothing/under/det
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
l_ear = /obj/item/device/radio/headset/headset_sec
|
||||
pda = /obj/item/device/pda/detective
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/evidence = 1
|
||||
)
|
||||
|
||||
/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/job/forensics
|
||||
title = "Forensic Technician"
|
||||
@@ -146,31 +157,38 @@
|
||||
minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_weapons)
|
||||
alt_titles = list("Crime Scene Investigator")
|
||||
minimal_player_age = 3
|
||||
outfit = /datum/outfit/job/forensics
|
||||
alt_outfits = list("Crime Scene Investigator"=/datum/outfit/job/forensics/csi)
|
||||
|
||||
equip(var/mob/living/carbon/human/H, var/alt_title)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/det/slob(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/detective(H), slot_belt)
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
if(has_alt_title(H, alt_title,"Crime Scene Investigator"))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/vest/csi(H), slot_wear_suit)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||
/datum/outfit/job/forensics
|
||||
name = "Forensic Technician"
|
||||
jobtype = /datum/job/forensics
|
||||
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/evidence(H), slot_l_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/evidence(H), slot_in_backpack)
|
||||
uniform = /obj/item/clothing/under/det/slob
|
||||
suit = /obj/item/clothing/suit/storage/vest/csi
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
l_ear = /obj/item/device/radio/headset/headset_sec
|
||||
pda = /obj/item/device/pda/detective
|
||||
|
||||
return TRUE
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/evidence = 1
|
||||
)
|
||||
|
||||
/datum/outfit/job/forensics/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
|
||||
|
||||
/datum/outfit/job/forensics/csi
|
||||
name = "Crime Scene Investigator"
|
||||
jobtype = /datum/job/forensics
|
||||
|
||||
suit = /obj/item/clothing/suit/storage/toggle/labcoat
|
||||
|
||||
/datum/job/officer
|
||||
title = "Security Officer"
|
||||
@@ -187,23 +205,32 @@
|
||||
access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks, access_weapons)
|
||||
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_external_airlocks, access_weapons)
|
||||
minimal_player_age = 7
|
||||
outfit = /datum/outfit/job/officer
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/security
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
/datum/outfit/job/officer
|
||||
name = "Security Officer"
|
||||
jobtype = /datum/job/officer
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return FALSE
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/security(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_s_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_l_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack)
|
||||
return TRUE
|
||||
uniform = /obj/item/clothing/under/rank/security
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_ear = /obj/item/device/radio/headset/headset_sec
|
||||
pda = /obj/item/device/pda/security
|
||||
l_pocket = /obj/item/device/flash
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messengerbag = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/handcuffs = 1
|
||||
)
|
||||
|
||||
/datum/outfit/job/officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(istajara(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
|
||||
else if(isunathi(H))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
|
||||
@@ -15,14 +15,6 @@
|
||||
if(!H) return 0
|
||||
return 1
|
||||
|
||||
equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
return 1
|
||||
|
||||
equip_backpack(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
return 1
|
||||
|
||||
/datum/job/ai/is_position_available()
|
||||
return (empty_playable_ai_cores.len != 0)
|
||||
|
||||
@@ -49,15 +41,6 @@
|
||||
if(!H) return 0
|
||||
return 1
|
||||
|
||||
equip_survival(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
return 1
|
||||
|
||||
equip_backpack(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
return 1
|
||||
return 1
|
||||
|
||||
/datum/job/cyborg/equip_preview(mob/living/carbon/human/H)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/cardborg(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/cardborg(H), slot_head)
|
||||
|
||||
@@ -32,24 +32,30 @@
|
||||
megavend(H)
|
||||
|
||||
/obj/machinery/megavendor/proc/megavend(var/mob/living/carbon/human/H)
|
||||
|
||||
if(H.megavend)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/storage/box/gearbox = new(null, TRUE)
|
||||
gearbox.name = "personal possessions box"
|
||||
gearbox.desc = "All of the personal effects of [H.real_name], packaged neatly by the AutoDrobe."
|
||||
for(var/obj/item/W in H.contents)
|
||||
for(var/obj/item/W in H.contents) //Strip 'em
|
||||
if(istype(W,/obj/item/organ))
|
||||
continue
|
||||
if(W.autodrobe_no_remove)
|
||||
continue
|
||||
H.drop_from_inventory(W,gearbox)
|
||||
H.put_in_any_hand_if_possible(gearbox)
|
||||
|
||||
H << "<span class='notice'>You feel a pleasant breeze as the autolocker whisks away all of your clothes, packing them neatly in a box.</span>"
|
||||
to_chat(H,"<span class='notice'>You feel a pleasant breeze as the autolocker whisks away all of your clothes, packing them neatly in a box.</span>")
|
||||
|
||||
SSjobs.EquipRank(H, H.job, 1, 1)
|
||||
SSjobs.EquipRank(H, H.job, 1, 1) //Equip 'em
|
||||
H.megavend = 1
|
||||
|
||||
//Give them the box
|
||||
if(istype(H.back,/obj/item/weapon/storage/backpack))
|
||||
var/obj/item/weapon/storage/backpack/B = H.back
|
||||
if(!B.insert_into_storage(gearbox))
|
||||
H.put_in_any_hand_if_possible(gearbox)
|
||||
else
|
||||
H.put_in_any_hand_if_possible(gearbox)
|
||||
|
||||
return
|
||||
|
||||
@@ -319,7 +319,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
/obj/item/device/pda/Initialize(mapload)
|
||||
. = ..()
|
||||
PDAs += src
|
||||
if(!(src in PDAs))
|
||||
PDAs += src
|
||||
if (!mapload)
|
||||
try_sort_pda_list()
|
||||
if(default_cartridge)
|
||||
@@ -1227,12 +1228,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
user << "<span class='notice'>\The [src] rejects the ID.</span>"
|
||||
return
|
||||
if(!owner)
|
||||
owner = idcard.registered_name
|
||||
ownjob = idcard.assignment
|
||||
ownrank = idcard.rank
|
||||
name = "PDA-[owner] ([ownjob])"
|
||||
user << "<span class='notice'>Card scanned.</span>"
|
||||
try_sort_pda_list()
|
||||
update_userinfo(idcard,user)
|
||||
else
|
||||
//Basic safety check. If either both objects are held by user or PDA is on ground and card is in hand.
|
||||
if(((src in user.contents) && (C in user.contents)) || (istype(loc, /turf) && in_range(src, user) && (C in user.contents)) )
|
||||
@@ -1256,6 +1252,15 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
user << "<span class='notice'>You slide \the [C] into \the [src].</span>"
|
||||
return
|
||||
|
||||
/obj/item/device/pda/proc/update_userinfo(var/obj/item/weapon/card/id/idcard, var/mob/living/user)
|
||||
owner = idcard.registered_name
|
||||
ownjob = idcard.assignment
|
||||
ownrank = idcard.rank
|
||||
name = "PDA-[owner] ([ownjob])"
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>Card scanned.</span>")
|
||||
try_sort_pda_list()
|
||||
|
||||
/obj/item/device/pda/attack(mob/living/C as mob, mob/living/user as mob)
|
||||
if (istype(C, /mob/living/carbon))
|
||||
switch(scanmode)
|
||||
@@ -1398,8 +1403,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
/obj/item/device/pda/Destroy()
|
||||
PDAs -= src
|
||||
if (src.id && prob(90)) //IDs are kept in 90% of the cases
|
||||
src.id.forceMove(get_turf(src.loc))
|
||||
QDEL_NULL(id)
|
||||
QDEL_NULL(pen)
|
||||
if (LAZYLEN(linked_consoles))
|
||||
for(var/A in linked_consoles)
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
var/choice = input("Do you wish to become a Vox? This is not reversible.") as null|anything in list("No","Yes")
|
||||
if(choice == "Yes")
|
||||
user.set_species("Vox")
|
||||
user.species.equip_survival_gear(user)
|
||||
user.species.before_equip(user)
|
||||
|
||||
var/newname = sanitizeSafe(input(user,"Enter a name, or leave blank for the default name.", "Name change","") as text, MAX_NAME_LEN)
|
||||
if(!newname || newname == "")
|
||||
|
||||
@@ -378,489 +378,67 @@
|
||||
set category = "Fun"
|
||||
set name = "Select equipment"
|
||||
|
||||
if(!check_rights(R_FUN))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/M = input("Select mob.", "Select equipment.") as null|anything in human_mob_list
|
||||
if(!M) return
|
||||
|
||||
//log_admin("[key_name(src)] has alienized [M.key].")
|
||||
var/list/dresspacks = list(
|
||||
var/list/choices = list(
|
||||
"strip",
|
||||
"job",
|
||||
"standard space gear",
|
||||
"tournament standard red",
|
||||
"tournament standard green",
|
||||
"tournament gangster",
|
||||
"tournament chef",
|
||||
"tournament janitor",
|
||||
"pirate",
|
||||
"space pirate",
|
||||
"soviet admiral",
|
||||
"tunnel clown",
|
||||
"masked killer",
|
||||
"assassin",
|
||||
"death commando",
|
||||
"syndicate commando",
|
||||
"special ops officer",
|
||||
"blue wizard",
|
||||
"red wizard",
|
||||
"marisa wizard",
|
||||
"emergency response team",
|
||||
"nanotrasen representative",
|
||||
"nanotrasen officer",
|
||||
"nanotrasen captain",
|
||||
"protection detail",
|
||||
"leading trooper",
|
||||
"ert commander",
|
||||
"odin security"
|
||||
)
|
||||
var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in dresspacks
|
||||
"as job...",
|
||||
"emergency response team"
|
||||
)
|
||||
|
||||
var/admin_outfits = subtypesof(/datum/outfit/admin)
|
||||
for(var/type in admin_outfits)
|
||||
var/datum/outfit/O = type
|
||||
var/name = initial(O.name)
|
||||
if(name != "Naked")
|
||||
choices[initial(O.name)] = type
|
||||
|
||||
var/dostrip = 0
|
||||
switch(alert("Strip [M] before dressing?", "Strip?", "Yes", "No", "Cancel"))
|
||||
if("Yes")
|
||||
dostrip = 1
|
||||
if("Cancel")
|
||||
return
|
||||
|
||||
var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in choices
|
||||
if (isnull(dresscode))
|
||||
return
|
||||
|
||||
feedback_add_details("admin_verb","SEQ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
for (var/obj/item/I in M)
|
||||
if (istype(I, /obj/item/weapon/implant))
|
||||
continue
|
||||
M.drop_from_inventory(I)
|
||||
if(I.loc != M)
|
||||
qdel(I)
|
||||
switch(dresscode)
|
||||
if ("strip")
|
||||
//do nothing
|
||||
if ("job")
|
||||
var/selected_job = input("Select job", "Robust quick dress shop") as null|anything in joblist
|
||||
if (isnull(selected_job))
|
||||
return
|
||||
|
||||
var/datum/job/job = SSjobs.GetJob(selected_job)
|
||||
if(!job)
|
||||
return
|
||||
|
||||
job.equip(M)
|
||||
job.apply_fingerprints(M)
|
||||
SSjobs.spawnId(M, selected_job)
|
||||
|
||||
if ("standard space gear")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space(M), slot_head)
|
||||
var /obj/item/weapon/tank/jetpack/J = new /obj/item/weapon/tank/jetpack/oxygen(M)
|
||||
M.equip_to_slot_or_del(J, slot_back)
|
||||
J.toggle()
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(M), slot_wear_mask)
|
||||
J.Topic(null, list("stat" = 1))
|
||||
if ("tournament standard red","tournament standard green") //we think stunning weapon is too overpowered to use it on tournaments. --rastaf0
|
||||
if (dresscode=="tournament standard red")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/red(M), slot_w_uniform)
|
||||
else
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/thunderdome(M), slot_head)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/rifle/pulse/destroyer(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/smokebomb(M), slot_r_store)
|
||||
|
||||
|
||||
if ("tournament gangster") //gangster are supposed to fight each other. --rastaf0
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/det(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/det_trench(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/monocle(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/det(M), slot_head)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_magazine/a357(M), slot_l_store)
|
||||
|
||||
if ("tournament chef") //Steven Seagal FTW
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(M), slot_head)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/material/kitchen/rollingpin(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_s_store)
|
||||
|
||||
if ("tournament janitor")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
var/obj/item/weapon/storage/backpack/backpack = new(M)
|
||||
for(var/obj/item/I in backpack)
|
||||
|
||||
if(dostrip)
|
||||
for (var/obj/item/I in M)
|
||||
if (istype(I, /obj/item/weapon/implant))
|
||||
continue
|
||||
M.drop_from_inventory(I)
|
||||
if(I.loc != M)
|
||||
qdel(I)
|
||||
M.equip_to_slot_or_del(backpack, slot_back)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/mop(M), slot_r_hand)
|
||||
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = new(M)
|
||||
bucket.reagents.add_reagent("water", 70)
|
||||
M.equip_to_slot_or_del(bucket, slot_l_hand)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/chem_grenade/cleaner(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/chem_grenade/cleaner(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
||||
|
||||
if ("pirate")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/pirate(M), slot_r_hand)
|
||||
|
||||
if ("space pirate")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/pirate(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/pirate(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
|
||||
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/pirate(M), slot_r_hand)
|
||||
|
||||
if ("soviet soldier")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(M), slot_head)
|
||||
|
||||
if("tunnel clown")//Tunnel clowns rule!
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/chaplain_hood(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/monocle(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/chaplain_hoodie(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_r_store)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.access = get_all_station_access()
|
||||
W.assignment = "Tunnel Clown!"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
var/obj/item/weapon/material/twohanded/fireaxe/fire_axe = new(M)
|
||||
M.equip_to_slot_or_del(fire_axe, slot_r_hand)
|
||||
|
||||
if("masked killer")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/monocle(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store)
|
||||
|
||||
var/obj/item/weapon/material/twohanded/fireaxe/fire_axe = new(M)
|
||||
M.equip_to_slot_or_del(fire_axe, slot_r_hand)
|
||||
|
||||
for(var/obj/item/carried_item in M.contents)
|
||||
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
|
||||
carried_item.add_blood(M)//Oh yes, there will be blood...
|
||||
|
||||
if("assassin")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wcoat(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store)
|
||||
|
||||
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M)
|
||||
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
|
||||
M.equip_to_slot_or_del(sec_briefcase, slot_l_hand)
|
||||
|
||||
var/obj/item/device/pda/heads/pda = new(M)
|
||||
pda.owner = M.real_name
|
||||
pda.ownjob = "Reaper"
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
|
||||
M.equip_to_slot_or_del(pda, slot_belt)
|
||||
|
||||
var/obj/item/weapon/card/id/syndicate/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.access = get_all_station_access()
|
||||
W.assignment = "Reaper"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("death commando")//Was looking to add this for a while.
|
||||
deathsquad.equip(M)
|
||||
|
||||
if("syndicate commando")
|
||||
commandos.equip(M)
|
||||
|
||||
if("nanotrasen representative")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(M), slot_l_ear)
|
||||
|
||||
var/obj/item/device/pda/heads/pda = new(M)
|
||||
pda.owner = M.real_name
|
||||
pda.ownjob = "NanoTrasen Navy Representative"
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
|
||||
M.equip_to_slot_or_del(pda, slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/clipboard(M), slot_belt)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.item_state = "id_inv"
|
||||
W.access = get_all_station_access()
|
||||
W.access += list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer")
|
||||
W.assignment = "NanoTrasen Navy Representative"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("nanotrasen officer")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
|
||||
|
||||
var/obj/item/device/pda/heads/pda = new(M)
|
||||
pda.owner = M.real_name
|
||||
pda.ownjob = "NanoTrasen Navy Officer"
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
|
||||
M.equip_to_slot_or_del(pda, slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pistol(M), slot_belt)
|
||||
|
||||
var/obj/item/weapon/card/id/centcom/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "NanoTrasen Navy Officer"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
|
||||
if("nanotrasen captain")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_captain(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/captain(M), slot_head)
|
||||
|
||||
var/obj/item/device/pda/heads/pda = new(M)
|
||||
pda.owner = M.real_name
|
||||
pda.ownjob = "NanoTrasen Navy Captain"
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
|
||||
M.equip_to_slot_or_del(pda, slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pistol(M), slot_belt)
|
||||
|
||||
var/obj/item/weapon/card/id/centcom/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "NanoTrasen Navy Captain"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
switch(dresscode)
|
||||
if("strip")
|
||||
//do nothing
|
||||
|
||||
if("as job...")
|
||||
var/datum/job/jobdatum
|
||||
var/jobname = input("Select job", "Robust quick dress shop") as null|anything in get_all_jobs()
|
||||
jobdatum = SSjobs.GetJob(jobname)
|
||||
if(jobdatum)
|
||||
dresscode = "[jobdatum.title]"
|
||||
M.job = jobdatum.title
|
||||
jobdatum.equip(M)
|
||||
|
||||
if("emergency response team")
|
||||
ert.equip(M)
|
||||
|
||||
if("protection detail")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/ccpolice(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/vest/heavy/ert/peacekeeper(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat/peacekeeper(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/accessory/holster/hip(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pistol(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "ERT Protection Detail"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("leading trooper")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/ert(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/vest/heavy/ert/lead(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/accessory/holster/hip(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "Leading Trooper"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("ert commander")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_commander(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/vest/heavy/ert/commander(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/fancy/cigar(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/flame/lighter/zippo(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/accessory/medal/gold/heroism(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom/commander(M), slot_head)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "ERT Commander"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("odin security")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/ccpolice(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/vest/heavy/ert/peacekeeper(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/tactical(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/tactical(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat/peacekeeper(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/x9(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_magazine/c45x(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_magazine/c45x(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/accessory/holster/hip(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/handcuffs/ziptie(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/chem_grenade/gas(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/tact(M), slot_l_hand)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "[current_map.dock_name] Security Specialist"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("special ops officer")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate/combat(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/swat/officer(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch/hud/thermal(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/flame/lighter/zippo(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "Special Operations Officer"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("blue wizard")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
|
||||
if("red wizard")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
|
||||
if("marisa wizard")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/marisa(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/marisa(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/marisa(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
|
||||
if("soviet admiral")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch/hud/thermal(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_station_access()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "Admiral"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
else
|
||||
var/datum/outfit/O = choices[dresscode]
|
||||
if(O)
|
||||
M.preEquipOutfit(O,FALSE)
|
||||
M.equipOutfit(O,FALSE)
|
||||
|
||||
M.regenerate_icons()
|
||||
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
/datum/gear_tweak/proc/get_default()
|
||||
return
|
||||
|
||||
/datum/gear_tweak/proc/get_random()
|
||||
return get_default()
|
||||
|
||||
/datum/gear_tweak/proc/tweak_gear_data(var/metadata, var/datum/gear_data)
|
||||
return
|
||||
|
||||
@@ -32,6 +35,9 @@ var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
|
||||
/datum/gear_tweak/color/get_default()
|
||||
return valid_colors ? valid_colors[1] : COLOR_GRAY
|
||||
|
||||
/datum/gear_tweak/color/get_random()
|
||||
return valid_colors ? pick(valid_colors) : COLOR_GRAY
|
||||
|
||||
/datum/gear_tweak/color/get_metadata(var/user, var/metadata)
|
||||
if(valid_colors)
|
||||
return input(user, "Choose an item color.", "Character Preference", metadata) as null|anything in valid_colors
|
||||
@@ -59,6 +65,9 @@ Path adjustment
|
||||
/datum/gear_tweak/path/get_default()
|
||||
return valid_paths[1]
|
||||
|
||||
/datum/gear_tweak/path/get_random()
|
||||
return pick(valid_paths)
|
||||
|
||||
/datum/gear_tweak/path/get_metadata(var/user, var/metadata)
|
||||
return input(user, "Choose a type.", "Character Preference", metadata) as null|anything in valid_paths
|
||||
|
||||
@@ -116,8 +125,6 @@ Content adjustment
|
||||
/*
|
||||
Reagents adjustment
|
||||
*/
|
||||
|
||||
|
||||
/datum/gear_tweak/reagents
|
||||
var/list/valid_reagents
|
||||
|
||||
|
||||
@@ -238,8 +238,23 @@ var/list/gear_datums = list()
|
||||
/datum/gear/proc/spawn_item(var/location, var/metadata)
|
||||
var/datum/gear_data/gd = new(path, location)
|
||||
for(var/datum/gear_tweak/gt in gear_tweaks)
|
||||
gt.tweak_gear_data(metadata["[gt]"], gd)
|
||||
if(metadata["[gt]"])
|
||||
gt.tweak_gear_data(metadata["[gt]"], gd)
|
||||
else
|
||||
gt.tweak_gear_data(gt.get_default(), gd)
|
||||
var/item = new gd.path(gd.location)
|
||||
for(var/datum/gear_tweak/gt in gear_tweaks)
|
||||
gt.tweak_item(item, metadata["[gt]"])
|
||||
if(metadata["[gt]"])
|
||||
gt.tweak_item(item, metadata["[gt]"])
|
||||
else
|
||||
gt.tweak_item(item, gt.get_default())
|
||||
return item
|
||||
|
||||
/datum/gear/proc/spawn_random(var/location)
|
||||
var/datum/gear_data/gd = new(path, location)
|
||||
for(var/datum/gear_tweak/gt in gear_tweaks)
|
||||
gt.tweak_gear_data(gt.get_random(), gd)
|
||||
var/item = new gd.path(gd.location)
|
||||
for(var/datum/gear_tweak/gt in gear_tweaks)
|
||||
gt.tweak_item(item, gt.get_random())
|
||||
return item
|
||||
@@ -8,6 +8,9 @@
|
||||
heat_protection = FEET
|
||||
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
|
||||
/obj/item/clothing/shoes/black/noslip
|
||||
item_flags = NOSLIP
|
||||
|
||||
/obj/item/clothing/shoes/brown
|
||||
name = "brown shoes"
|
||||
desc = "A pair of brown shoes."
|
||||
|
||||
@@ -206,9 +206,9 @@
|
||||
continue
|
||||
|
||||
// Check for required access.
|
||||
var/obj/item/weapon/card/id/current_id = M.wear_id
|
||||
var/obj/item/I = M.wear_id
|
||||
if(citem.req_access && citem.req_access > 0)
|
||||
if(!(istype(current_id) && (citem.req_access in current_id.access)))
|
||||
if(!(istype(I) && (citem.req_access in I.GetAccess())))
|
||||
continue
|
||||
|
||||
// Check for required job title.
|
||||
@@ -224,8 +224,8 @@
|
||||
|
||||
// ID cards and PDAs are applied directly to the existing object rather than spawned fresh.
|
||||
var/obj/item/existing_item
|
||||
if(citem.item_path == /obj/item/weapon/card/id && istype(current_id)) //Set earlier.
|
||||
existing_item = M.wear_id
|
||||
if(citem.item_path == /obj/item/weapon/card/id)
|
||||
existing_item = locate(/obj/item/weapon/card/id) in M.get_contents() //TODO: Improve this ?
|
||||
else if(citem.item_path == /obj/item/device/pda)
|
||||
existing_item = locate(/obj/item/device/pda) in M.contents
|
||||
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
/datum/job/intern_sec
|
||||
title = "Security Cadet"
|
||||
flag = INTERN_SEC
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Head of Security"
|
||||
selection_color = "#ffeeee"
|
||||
access = list(access_security, access_sec_doors, access_maint_tunnels)
|
||||
minimal_access = list(access_security, access_sec_doors, access_maint_tunnels)
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/security
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/sec
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/sec
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security2(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec(H), slot_head)
|
||||
return 1
|
||||
|
||||
/datum/job/intern_med
|
||||
title = "Medical Resident"
|
||||
flag = INTERN_MED
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Chief Medical Officer"
|
||||
selection_color = "#ffeef0"
|
||||
access = list(access_medical, access_surgery, access_medical_equip)
|
||||
minimal_access = list(access_medical, access_surgery, access_medical_equip)
|
||||
alt_titles = list("Medical Intern")
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/medic
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_med
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/med
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/med
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
||||
return 1
|
||||
|
||||
/datum/job/intern_sci
|
||||
title = "Lab Assistant"
|
||||
flag = INTERN_SCI
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Research Director"
|
||||
selection_color = "#ffeeff"
|
||||
access = list(access_research, access_tox)
|
||||
minimal_access = list(access_research, access_tox)
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/toxins
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/tox
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/tox
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
||||
return 1
|
||||
|
||||
/datum/job/intern_eng
|
||||
title = "Engineering Apprentice"
|
||||
flag = INTERN_ENG
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
supervisors = "the Chief Engineer"
|
||||
selection_color = "#fff5cc"
|
||||
access = list(access_maint_tunnels, access_construction, access_engine_equip, access_engine)
|
||||
minimal_access = list(access_maint_tunnels, access_construction, access_engine_equip, access_engine)
|
||||
|
||||
bag_type = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel_type = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
duffel_type = /obj/item/weapon/storage/backpack/duffel/eng
|
||||
messenger_bag_type = /obj/item/weapon/storage/backpack/messenger/engi
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/engineering(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
|
||||
return 1
|
||||
@@ -425,9 +425,6 @@ INITIALIZE_IMMEDIATE(/mob/abstract/new_player)
|
||||
|
||||
if(mind)
|
||||
mind.active = 0 //we wish to transfer the key manually
|
||||
if(mind.assigned_role == "Clown") //give them a clownname if they are a clown
|
||||
new_character.real_name = pick(clown_names) //I hate this being here of all places but unfortunately dna is based on real_name!
|
||||
new_character.rename_self("clown")
|
||||
mind.original = new_character
|
||||
mind.transfer_to(new_character) //won't transfer key since the mind is not active
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
qdel(W)
|
||||
else
|
||||
if(!disable_warning)
|
||||
src << "<span class='warning'>You are unable to equip that.</span>" //Only print if del_on_fail is false
|
||||
to_chat(src, "<span class='warning'>You are unable to equip [W].</span>") //Only print if del_on_fail is false
|
||||
return 0
|
||||
|
||||
equip_to_slot(W, slot, redraw_mob) //This proc should not ever fail.
|
||||
@@ -43,7 +43,29 @@
|
||||
|
||||
//This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the rounds tarts and when events happen and such.
|
||||
/mob/proc/equip_to_slot_or_del(obj/item/W as obj, slot)
|
||||
. = equip_to_slot_if_possible(W, slot, TRUE, TRUE, FALSE, ignore_blocked = TRUE)
|
||||
. = equip_to_slot_if_possible(W, slot, TRUE, TRUE, FALSE, TRUE)
|
||||
|
||||
// Convinience proc. Collects crap that fails to equip either onto the mob's back, or drops it.
|
||||
// Used in job equipping so shit doesn't pile up at the start loc.
|
||||
/mob/living/carbon/human/proc/equip_or_collect(var/obj/item/W, var/slot)
|
||||
if(!istype(W))
|
||||
log_debug("MobEquip: Error when equipping [W] for [src] in [slot]")
|
||||
return
|
||||
if(W.mob_can_equip(src, slot, TRUE, TRUE))
|
||||
//Mob can equip. Equip it.
|
||||
equip_to_slot_or_del(W, slot)
|
||||
else
|
||||
//Mob can't equip it. Put it their backpack or toss it on the floor
|
||||
if(istype(back, /obj/item/weapon/storage))
|
||||
var/obj/item/weapon/storage/S = back
|
||||
//Now, B represents a container we can insert W into.
|
||||
S.handle_item_insertion(W,1)
|
||||
return S
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
if(istype(T))
|
||||
W.forceMove(T)
|
||||
return T
|
||||
|
||||
//The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot.
|
||||
var/list/slot_equipment_priority = list( \
|
||||
@@ -345,3 +367,30 @@ var/list/slot_equipment_priority = list( \
|
||||
qdel(entry)
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE)
|
||||
var/datum/outfit/O = null
|
||||
|
||||
if(ispath(outfit))
|
||||
O = new outfit
|
||||
else
|
||||
O = outfit
|
||||
if(!istype(O))
|
||||
return FALSE
|
||||
if(!O)
|
||||
return FALSE
|
||||
|
||||
return O.equip(src, visualsOnly)
|
||||
|
||||
/mob/living/carbon/human/proc/preEquipOutfit(outfit, visualsOnly = FALSE)
|
||||
var/datum/outfit/O = null
|
||||
|
||||
if(ispath(outfit))
|
||||
O = new outfit
|
||||
else
|
||||
O = outfit
|
||||
if(!istype(O))
|
||||
return FALSE
|
||||
if(!O)
|
||||
return FALSE
|
||||
|
||||
return O.pre_equip(src, visualsOnly)
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
/mob/living/bot/farmbot/proc/check_tank()
|
||||
if(!tank)
|
||||
return FALSE
|
||||
return ((!target && refills_water && tank.reagents.total_volume < tank.reagents.maximum_volume) || ((tank.reagents.total_volume ) / reagents.maximum_volume) <= 0.3)
|
||||
return ((!target && refills_water && tank.reagents.total_volume < tank.reagents.maximum_volume) || ((tank.reagents.total_volume ) / tank.reagents.maximum_volume) <= 0.3)
|
||||
|
||||
/obj/item/weapon/farmbot_arm_assembly
|
||||
name = "water tank/robot arm assembly"
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
default_h_style = "Short Vox Quills"
|
||||
|
||||
/datum/species/vox/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
/datum/species/vox/before_equip(mob/living/carbon/human/H, visualsOnly, datum/job/J)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(H), slot_wear_mask)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/tank/nitrogen(H), slot_back)
|
||||
|
||||
@@ -267,13 +267,11 @@
|
||||
return "unknown"
|
||||
return species_language.get_random_name(gender)
|
||||
|
||||
/datum/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 1)
|
||||
if(H.backbag == 1)
|
||||
if (extendedtank) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H), slot_r_hand)
|
||||
else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
|
||||
else
|
||||
if (extendedtank) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H.back), slot_in_backpack)
|
||||
else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
|
||||
/datum/species/proc/before_equip(mob/living/carbon/human/H, visualsOnly = FALSE, datum/job/J)
|
||||
return
|
||||
|
||||
/datum/species/proc/after_equip(mob/living/carbon/human/H, visualsOnly = FALSE, datum/job/J)
|
||||
return
|
||||
|
||||
/datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs.
|
||||
|
||||
|
||||
@@ -65,7 +65,8 @@
|
||||
/datum/species/machine/shell/handle_death(var/mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
/datum/species/machine/shell/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
/datum/species/machine/shell/before_equip(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
check_tag(H, H.client)
|
||||
|
||||
/datum/species/machine/industrial
|
||||
|
||||
@@ -119,8 +119,8 @@
|
||||
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
|
||||
|
||||
/datum/species/unathi/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
/datum/species/unathi/before_equip(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)
|
||||
if(H.equip_to_slot_or_del(S,slot_shoes))
|
||||
S.autodrobe_no_remove = 1
|
||||
@@ -191,8 +191,8 @@
|
||||
|
||||
default_h_style = "Tajaran Ears"
|
||||
|
||||
/datum/species/tajaran/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
/datum/species/tajaran/before_equip(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)
|
||||
if(H.equip_to_slot_or_del(S,slot_shoes))
|
||||
S.autodrobe_no_remove = 1
|
||||
@@ -379,7 +379,8 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/species/diona/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
/datum/species/diona/before_equip(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
var/obj/item/device/flashlight/flare/F = new /obj/item/device/flashlight/flare(H)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(F, slot_r_hand)
|
||||
@@ -641,7 +642,8 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
if ("yellow IPC screen")
|
||||
return LIGHT_COLOR_YELLOW
|
||||
|
||||
/datum/species/machine/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
/datum/species/machine/before_equip(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
check_tag(H, H.client)
|
||||
H.gender = NEUTER
|
||||
|
||||
@@ -746,7 +748,8 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
|
||||
|
||||
/datum/species/bug/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
/datum/species/bug/before_equip(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
H.gender = NEUTER
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vaurca(H), slot_r_hand)
|
||||
|
||||
@@ -78,9 +78,6 @@
|
||||
/mob/living/carbon/human/proc/hivenet
|
||||
)
|
||||
|
||||
/datum/species/bug/type_c/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
/datum/species/bug/type_c/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
H.gender = FEMALE
|
||||
@@ -154,9 +151,6 @@
|
||||
"filtration bit" = /obj/item/organ/vaurca/filtrationbit
|
||||
)
|
||||
|
||||
/datum/species/bug/type_big/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
/datum/species/bug/type_big/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
H.mutations.Add(HULK)
|
||||
return ..()
|
||||
Reference in New Issue
Block a user