mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 00:23:29 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into turfs
# Conflicts: # paradise.dme
This commit is contained in:
@@ -681,24 +681,6 @@ var/list/admin_verbs_ticket = list(
|
||||
|
||||
feedback_add_details("admin_verb","OT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/kill_air() // -- TLE
|
||||
set category = "Debug"
|
||||
set name = "Kill Air"
|
||||
set desc = "Toggle Air Processing"
|
||||
|
||||
if(!check_rights(R_DEBUG))
|
||||
return
|
||||
|
||||
if(air_processing_killed)
|
||||
air_processing_killed = 0
|
||||
to_chat(usr, "<b>Enabled air processing.</b>")
|
||||
else
|
||||
air_processing_killed = 1
|
||||
to_chat(usr, "<b>Disabled air processing.</b>")
|
||||
feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] used 'kill air'.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] used 'kill air'.</span>", 1)
|
||||
|
||||
/client/proc/deadmin_self()
|
||||
set name = "De-admin self"
|
||||
set category = "Admin"
|
||||
@@ -888,7 +870,7 @@ var/list/admin_verbs_ticket = list(
|
||||
return
|
||||
|
||||
var/list/jobs = list()
|
||||
for(var/datum/job/J in job_master.occupations)
|
||||
for(var/datum/job/J in SSjobs.occupations)
|
||||
if(J.current_positions >= J.total_positions && J.total_positions != -1)
|
||||
jobs += J.title
|
||||
if(!jobs.len)
|
||||
@@ -896,7 +878,7 @@ var/list/admin_verbs_ticket = list(
|
||||
return
|
||||
var/job = input("Please select job slot to free", "Free Job Slot") as null|anything in jobs
|
||||
if(job)
|
||||
job_master.FreeRole(job)
|
||||
SSjobs.FreeRole(job)
|
||||
log_admin("[key_name(usr)] has freed a job slot for [job].")
|
||||
message_admins("[key_name_admin(usr)] has freed a job slot for [job].")
|
||||
|
||||
|
||||
+24
-24
@@ -491,8 +491,8 @@
|
||||
if(!M.ckey) //sanity
|
||||
to_chat(usr, "This mob has no ckey")
|
||||
return
|
||||
if(!job_master)
|
||||
to_chat(usr, "Job Master has not been setup!")
|
||||
if(!SSjobs)
|
||||
to_chat(usr, "SSjobs has not been setup!")
|
||||
return
|
||||
|
||||
var/dat = ""
|
||||
@@ -512,7 +512,7 @@
|
||||
jobs += "<tr align='center' bgcolor='ccccff'><th colspan='[length(command_positions)]'><a href='?src=[UID()];jobban3=commanddept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Command Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in command_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -533,7 +533,7 @@
|
||||
jobs += "<tr bgcolor='ffddf0'><th colspan='[length(security_positions)]'><a href='?src=[UID()];jobban3=securitydept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Security Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in security_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -554,7 +554,7 @@
|
||||
jobs += "<tr bgcolor='fff5cc'><th colspan='[length(engineering_positions)]'><a href='?src=[UID()];jobban3=engineeringdept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Engineering Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in engineering_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -575,7 +575,7 @@
|
||||
jobs += "<tr bgcolor='ffeef0'><th colspan='[length(medical_positions)]'><a href='?src=[UID()];jobban3=medicaldept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Medical Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in medical_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -596,7 +596,7 @@
|
||||
jobs += "<tr bgcolor='e79fff'><th colspan='[length(science_positions)]'><a href='?src=[UID()];jobban3=sciencedept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Science Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in science_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -617,7 +617,7 @@
|
||||
jobs += "<tr bgcolor='dddddd'><th colspan='[length(support_positions)]'><a href='?src=[UID()];jobban3=supportdept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Support Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in support_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -638,7 +638,7 @@
|
||||
jobs += "<tr bgcolor='ccffcc'><th colspan='[length(nonhuman_positions)+1]'><a href='?src=[UID()];jobban3=nonhumandept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Non-human Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in nonhuman_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -707,7 +707,7 @@
|
||||
jobs += "<tr bgcolor='dddddd'><th colspan='[length(whitelisted_positions)]'><a href='?src=[UID()];jobban3=whitelistdept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Whitelisted Positions</a></th></tr><tr align='center'>"
|
||||
for(var/jobPos in whitelisted_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/job = job_master.GetJob(jobPos)
|
||||
var/datum/job/job = SSjobs.GetJob(jobPos)
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
@@ -743,8 +743,8 @@
|
||||
|
||||
var/ban_ckey_param = href_list["dbbanaddckey"]
|
||||
|
||||
if(!job_master)
|
||||
to_chat(usr, "Job Master has not been setup!")
|
||||
if(!SSjobs)
|
||||
to_chat(usr, "SSjobs has not been setup!")
|
||||
return
|
||||
|
||||
//get jobs for department if specified, otherwise just returnt he one job in a list.
|
||||
@@ -753,50 +753,50 @@
|
||||
if("commanddept")
|
||||
for(var/jobPos in command_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("securitydept")
|
||||
for(var/jobPos in security_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("engineeringdept")
|
||||
for(var/jobPos in engineering_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("medicaldept")
|
||||
for(var/jobPos in medical_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("sciencedept")
|
||||
for(var/jobPos in science_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("supportdept")
|
||||
for(var/jobPos in support_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("nonhumandept")
|
||||
joblist += "pAI"
|
||||
for(var/jobPos in nonhuman_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
if("whitelistdept")
|
||||
for(var/jobPos in whitelisted_positions)
|
||||
if(!jobPos) continue
|
||||
var/datum/job/temp = job_master.GetJob(jobPos)
|
||||
var/datum/job/temp = SSjobs.GetJob(jobPos)
|
||||
if(!temp) continue
|
||||
joblist += temp.title
|
||||
else
|
||||
@@ -2935,11 +2935,11 @@
|
||||
usr << browse(dat, "window=lawchanges;size=800x500")
|
||||
if("list_job_debug")
|
||||
var/dat = "<B>Job Debug info.</B><HR>"
|
||||
if(job_master)
|
||||
for(var/line in job_master.job_debug)
|
||||
if(SSjobs)
|
||||
for(var/line in SSjobs.job_debug)
|
||||
dat += "[line]<BR>"
|
||||
dat+= "*******<BR><BR>"
|
||||
for(var/datum/job/job in job_master.occupations)
|
||||
for(var/datum/job/job in SSjobs.occupations)
|
||||
if(!job) continue
|
||||
dat += "job: [job.title], current_positions: [job.current_positions], total_positions: [job.total_positions] <BR>"
|
||||
usr << browse(dat, "window=jobdebug;size=600x500")
|
||||
@@ -3029,7 +3029,7 @@
|
||||
M.req_one_access = list(access_brig,access_engine)
|
||||
message_admins("[key_name_admin(usr)] made all maint doors engineering and brig access-only.")
|
||||
if("infinite_sec")
|
||||
var/datum/job/J = job_master.GetJob("Security Officer")
|
||||
var/datum/job/J = SSjobs.GetJob("Security Officer")
|
||||
if(!J) return
|
||||
J.total_positions = -1
|
||||
J.spawn_positions = -1
|
||||
|
||||
@@ -612,7 +612,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
var/datum/job/jobdatum
|
||||
if(dresscode == "as job...")
|
||||
var/jobname = input("Select job", "Robust quick dress shop") as null|anything in get_all_jobs()
|
||||
jobdatum = job_master.GetJob(jobname)
|
||||
jobdatum = SSjobs.GetJob(jobname)
|
||||
|
||||
feedback_add_details("admin_verb", "SEQ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
if(dostrip)
|
||||
|
||||
@@ -435,8 +435,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
//Now for special roles and equipment.
|
||||
switch(new_character.mind.special_role)
|
||||
if("traitor")
|
||||
job_master.AssignRank(new_character, new_character.mind.assigned_role, 0)
|
||||
job_master.EquipRank(new_character, new_character.mind.assigned_role, 1)
|
||||
SSjobs.AssignRank(new_character, new_character.mind.assigned_role, 0)
|
||||
SSjobs.EquipRank(new_character, new_character.mind.assigned_role, 1)
|
||||
ticker.mode.equip_traitor(new_character)
|
||||
if("Wizard")
|
||||
new_character.loc = pick(wizardstart)
|
||||
@@ -466,8 +466,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
call(/datum/game_mode/proc/add_law_zero)(new_character)
|
||||
//Add aliens.
|
||||
else
|
||||
job_master.AssignRank(new_character, new_character.mind.assigned_role, 0)
|
||||
job_master.EquipRank(new_character, new_character.mind.assigned_role, 1)//Or we simply equip them.
|
||||
SSjobs.AssignRank(new_character, new_character.mind.assigned_role, 0)
|
||||
SSjobs.EquipRank(new_character, new_character.mind.assigned_role, 1)//Or we simply equip them.
|
||||
|
||||
//Announces the character on all the systems, based on the record.
|
||||
if(!issilicon(new_character))//If they are not a cyborg/AI.
|
||||
@@ -662,11 +662,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
if(job_master)
|
||||
if(SSjobs)
|
||||
var/currentpositiontally
|
||||
var/totalpositiontally
|
||||
to_chat(src, "<span class='notice'>Job Name: Filled job slot / Total job slots <b>(Free job slots)</b></span>")
|
||||
for(var/datum/job/job in job_master.occupations)
|
||||
for(var/datum/job/job in SSjobs.occupations)
|
||||
to_chat(src, "<span class='notice'>[job.title]: [job.current_positions] / \
|
||||
[job.total_positions == -1 ? "<b>UNLIMITED</b>" : job.total_positions] \
|
||||
<b>([job.total_positions == -1 ? "UNLIMITED" : job.total_positions - job.current_positions])</b></span>")
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
to_chat(usr, "This option is currently only usable during pregame. This may change at a later date.")
|
||||
return
|
||||
|
||||
if(job_master && ticker)
|
||||
var/datum/job/job = job_master.GetJob("AI")
|
||||
if(SSjobs && ticker)
|
||||
var/datum/job/job = SSjobs.GetJob("AI")
|
||||
if(!job)
|
||||
to_chat(usr, "Unable to locate the AI job")
|
||||
return
|
||||
|
||||
@@ -576,7 +576,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
|
||||
|
||||
/datum/preferences/proc/SetChoices(mob/user, limit = 13, list/splitJobs = list("Civilian","Research Director","AI","Bartender"), width = 760, height = 790)
|
||||
if(!job_master)
|
||||
if(!SSjobs)
|
||||
return
|
||||
|
||||
//limit - The amount of jobs allowed per column. Defaults to 17 to make it look nice.
|
||||
@@ -597,8 +597,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
|
||||
//The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
|
||||
var/datum/job/lastJob
|
||||
if(!job_master) return
|
||||
for(var/datum/job/job in job_master.occupations)
|
||||
if(!SSjobs)
|
||||
return
|
||||
for(var/datum/job/job in SSjobs.occupations)
|
||||
|
||||
if(job.admin_only)
|
||||
continue
|
||||
@@ -802,7 +803,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
return 0
|
||||
|
||||
/datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl)
|
||||
var/datum/job/job = job_master.GetJob(role)
|
||||
var/datum/job/job = SSjobs.GetJob(role)
|
||||
|
||||
if(!job)
|
||||
user << browse(null, "window=mob_occupation")
|
||||
@@ -908,7 +909,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
player_alt_titles[job.title] = new_title
|
||||
|
||||
/datum/preferences/proc/SetJob(mob/user, role)
|
||||
var/datum/job/job = job_master.GetJob(role)
|
||||
var/datum/job/job = SSjobs.GetJob(role)
|
||||
if(!job)
|
||||
user << browse(null, "window=mob_occupation")
|
||||
ShowChoices(user)
|
||||
|
||||
@@ -16,25 +16,39 @@
|
||||
"Grey" = 'icons/mob/species/grey/head.dmi'
|
||||
)
|
||||
|
||||
/obj/item/clothing/head/hardhat/attack_self(mob/user)
|
||||
/obj/item/clothing/head/hardhat/attack_self(mob/living/user)
|
||||
toggle_helmet_light(user)
|
||||
|
||||
/obj/item/clothing/head/hardhat/proc/toggle_helmet_light(mob/living/user)
|
||||
on = !on
|
||||
if(on)
|
||||
turn_on(user)
|
||||
else
|
||||
turn_off(user)
|
||||
update_icon()
|
||||
|
||||
/obj/item/clothing/head/hardhat/update_icon()
|
||||
icon_state = "hardhat[on]_[item_color]"
|
||||
item_state = "hardhat[on]_[item_color]"
|
||||
if(on)
|
||||
set_light(brightness_on)
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_head()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/hardhat/extinguish_light()
|
||||
/obj/item/clothing/head/hardhat/proc/turn_on(mob/user)
|
||||
set_light(brightness_on)
|
||||
|
||||
/obj/item/clothing/head/hardhat/proc/turn_off(mob/user)
|
||||
set_light(0)
|
||||
|
||||
/obj/item/clothing/head/hardhat/extinguish_light(mob/living/user)
|
||||
if(on)
|
||||
on = FALSE
|
||||
set_light(0)
|
||||
icon_state = "hardhat0_[item_color]"
|
||||
item_state = "hardhat0_[item_color]"
|
||||
turn_off(user)
|
||||
update_icon()
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
/obj/item/clothing/head/hardhat/orange
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
for(var/obj/item/W in H)
|
||||
H.unEquip(W)
|
||||
var/datum/job/clown/C = job_master.GetJob("Clown")
|
||||
var/datum/job/clown/C = SSjobs.GetJob("Clown")
|
||||
C.equip(H)
|
||||
affected_targets.Add(H)
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
return
|
||||
|
||||
var/list/jobs[0]
|
||||
for(var/datum/job/j in job_master.occupations)
|
||||
for(var/datum/job/j in SSjobs.occupations)
|
||||
if(j.title != "AI" && j.title != "Cyborg")
|
||||
jobs[j.title] = j
|
||||
jobs = sortAssoc(jobs)
|
||||
|
||||
@@ -1005,12 +1005,12 @@
|
||||
if(prob(2))
|
||||
var/obj/item/clothing/mask/M = H.wear_mask
|
||||
if(M && (M.flags_cover & MASKCOVERSMOUTH))
|
||||
return
|
||||
continue
|
||||
if(NO_BREATHE in H.dna.species.species_traits)
|
||||
return //no puking if you can't smell!
|
||||
continue //no puking if you can't smell!
|
||||
// Humans can lack a mind datum, y'know
|
||||
if(H.mind && (H.mind.assigned_role == "Detective" || H.mind.assigned_role == "Coroner"))
|
||||
return //too cool for puke
|
||||
continue //too cool for puke
|
||||
to_chat(H, "<span class='warning'>You smell something foul...</span>")
|
||||
H.fakevomit()
|
||||
|
||||
@@ -1102,4 +1102,4 @@
|
||||
|
||||
// Need this in species.
|
||||
//#undef HUMAN_MAX_OXYLOSS
|
||||
//#undef HUMAN_CRIT_MAX_OXYLOSS
|
||||
//#undef HUMAN_CRIT_MAX_OXYLOSS
|
||||
|
||||
@@ -27,7 +27,7 @@ var/global/list/empty_playable_ai_cores = list()
|
||||
//Handle job slot/tater cleanup.
|
||||
var/job = mind.assigned_role
|
||||
|
||||
job_master.FreeRole(job)
|
||||
SSjobs.FreeRole(job)
|
||||
|
||||
if(mind.objectives.len)
|
||||
mind.objectives.Cut()
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
new_player_panel()
|
||||
|
||||
/mob/new_player/proc/IsJobAvailable(rank)
|
||||
var/datum/job/job = job_master.GetJob(rank)
|
||||
var/datum/job/job = SSjobs.GetJob(rank)
|
||||
if(!job) return 0
|
||||
if(!job.is_position_available()) return 0
|
||||
if(jobban_isbanned(src,rank)) return 0
|
||||
@@ -269,9 +269,9 @@
|
||||
if(config.assistantlimit)
|
||||
if(job.title == "Civilian")
|
||||
var/count = 0
|
||||
var/datum/job/officer = job_master.GetJob("Security Officer")
|
||||
var/datum/job/warden = job_master.GetJob("Warden")
|
||||
var/datum/job/hos = job_master.GetJob("Head of Security")
|
||||
var/datum/job/officer = SSjobs.GetJob("Security Officer")
|
||||
var/datum/job/warden = SSjobs.GetJob("Warden")
|
||||
var/datum/job/hos = SSjobs.GetJob("Head of Security")
|
||||
count += (officer.current_positions + warden.current_positions + hos.current_positions)
|
||||
if(job.current_positions > (config.assistantratio * count))
|
||||
if(count >= 5) // if theres more than 5 security on the station just let assistants join regardless, they should be able to handle the tide
|
||||
@@ -280,21 +280,21 @@
|
||||
return 1
|
||||
|
||||
/mob/new_player/proc/IsAdminJob(rank)
|
||||
var/datum/job/job = job_master.GetJob(rank)
|
||||
var/datum/job/job = SSjobs.GetJob(rank)
|
||||
if(job.admin_only)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/mob/new_player/proc/IsERTSpawnJob(rank)
|
||||
var/datum/job/job = job_master.GetJob(rank)
|
||||
var/datum/job/job = SSjobs.GetJob(rank)
|
||||
if(job.spawn_ert)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/mob/new_player/proc/IsSyndicateCommand(rank)
|
||||
var/datum/job/job = job_master.GetJob(rank)
|
||||
var/datum/job/job = SSjobs.GetJob(rank)
|
||||
if(job.syndicate_command)
|
||||
return 1
|
||||
else
|
||||
@@ -312,15 +312,15 @@
|
||||
if(!IsJobAvailable(rank))
|
||||
to_chat(src, alert("[rank] is not available. Please try another."))
|
||||
return 0
|
||||
var/datum/job/thisjob = job_master.GetJob(rank)
|
||||
var/datum/job/thisjob = SSjobs.GetJob(rank)
|
||||
if(thisjob.barred_by_disability(client))
|
||||
to_chat(src, alert("[rank] is not available due to your character's disability. Please try another."))
|
||||
return 0
|
||||
|
||||
job_master.AssignRole(src, rank, 1)
|
||||
SSjobs.AssignRole(src, rank, 1)
|
||||
|
||||
var/mob/living/character = create_character() //creates the human and transfers vars and mind
|
||||
character = job_master.AssignRank(character, rank, 1) //equips the human
|
||||
character = SSjobs.AssignRank(character, rank, 1) //equips the human
|
||||
|
||||
// AIs don't need a spawnpoint, they must spawn at an empty core
|
||||
if(character.mind.assigned_role == "AI")
|
||||
@@ -367,7 +367,7 @@
|
||||
character.buckled.loc = character.loc
|
||||
character.buckled.dir = character.dir
|
||||
|
||||
character = job_master.EquipRank(character, rank, 1) //equips the human
|
||||
character = SSjobs.EquipRank(character, rank, 1) //equips the human
|
||||
EquipCustomItems(character)
|
||||
|
||||
ticker.mode.latespawn(character)
|
||||
@@ -384,8 +384,8 @@
|
||||
callHook("latespawn", list(character))
|
||||
AddEmploymentContract(character)
|
||||
|
||||
if(!thisjob.is_position_available() && thisjob in job_master.prioritized_jobs)
|
||||
job_master.prioritized_jobs -= thisjob
|
||||
if(!thisjob.is_position_available() && thisjob in SSjobs.prioritized_jobs)
|
||||
SSjobs.prioritized_jobs -= thisjob
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -452,11 +452,11 @@
|
||||
else if(SSshuttle.emergency.mode >= SHUTTLE_CALL)
|
||||
dat += "<font color='red'>The station is currently undergoing evacuation procedures.</font><br>"
|
||||
|
||||
if(length(job_master.prioritized_jobs))
|
||||
if(length(SSjobs.prioritized_jobs))
|
||||
dat += "<font color='lime'>The station has flagged these jobs as high priority: "
|
||||
var/amt = length(job_master.prioritized_jobs)
|
||||
var/amt = length(SSjobs.prioritized_jobs)
|
||||
var/amt_count
|
||||
for(var/datum/job/a in job_master.prioritized_jobs)
|
||||
for(var/datum/job/a in SSjobs.prioritized_jobs)
|
||||
amt_count++
|
||||
if(amt_count != amt)
|
||||
dat += " [a.title], "
|
||||
@@ -478,7 +478,7 @@
|
||||
"Science" = list(jobs = list(), titles = science_positions, color = "#e6b3e6"),
|
||||
"Supply" = list(jobs = list(), titles = supply_positions, color = "#ead4ae"),
|
||||
)
|
||||
for(var/datum/job/job in job_master.occupations)
|
||||
for(var/datum/job/job in SSjobs.occupations)
|
||||
if(job && IsJobAvailable(job.title) && !job.barred_by_disability(client))
|
||||
activePlayers[job] = 0
|
||||
var/categorized = 0
|
||||
@@ -512,7 +512,7 @@
|
||||
dat += "<fieldset style='border: 2px solid [color]; display: inline'>"
|
||||
dat += "<legend align='center' style='color: [color]'>[jobcat]</legend>"
|
||||
for(var/datum/job/job in categorizedJobs[jobcat]["jobs"])
|
||||
if(job in job_master.prioritized_jobs)
|
||||
if(job in SSjobs.prioritized_jobs)
|
||||
dat += "<a href='byond://?src=[UID()];SelectedJob=[job.title]'><font color='lime'><B>[job.title] ([job.current_positions]) (Active: [activePlayers[job]])</B></font></a><br>"
|
||||
else
|
||||
dat += "<a href='byond://?src=[UID()];SelectedJob=[job.title]'>[job.title] ([job.current_positions]) (Active: [activePlayers[job]])</a><br>"
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
/datum/computer_file/program/card_mod/proc/format_job_slots()
|
||||
var/list/formatted = list()
|
||||
for(var/datum/job/job in job_master.occupations)
|
||||
for(var/datum/job/job in SSjobs.occupations)
|
||||
if(job_blacklisted(job))
|
||||
continue
|
||||
formatted.Add(list(list(
|
||||
@@ -127,10 +127,10 @@
|
||||
/datum/computer_file/program/card_mod/proc/can_prioritize_job(datum/job/job)
|
||||
if(job)
|
||||
if(!job_blacklisted(job))
|
||||
if(job in job_master.prioritized_jobs)
|
||||
if(job in SSjobs.prioritized_jobs)
|
||||
return 2
|
||||
else
|
||||
if(job_master.prioritized_jobs.len >= 3)
|
||||
if(SSjobs.prioritized_jobs.len >= 3)
|
||||
return 0
|
||||
if(job.total_positions <= job.current_positions)
|
||||
return 0
|
||||
@@ -320,7 +320,7 @@
|
||||
// MAKE ANOTHER JOB POSITION AVAILABLE FOR LATE JOINERS
|
||||
if(is_authenticated(usr))
|
||||
var/edit_job_target = href_list["job"]
|
||||
var/datum/job/j = job_master.GetJob(edit_job_target)
|
||||
var/datum/job/j = SSjobs.GetJob(edit_job_target)
|
||||
if(!j)
|
||||
return 1
|
||||
if(can_open_job(j) != 1)
|
||||
@@ -335,7 +335,7 @@
|
||||
// MAKE JOB POSITION UNAVAILABLE FOR LATE JOINERS
|
||||
if(is_authenticated(usr))
|
||||
var/edit_job_target = href_list["job"]
|
||||
var/datum/job/j = job_master.GetJob(edit_job_target)
|
||||
var/datum/job/j = SSjobs.GetJob(edit_job_target)
|
||||
if(!j)
|
||||
return 1
|
||||
if(can_close_job(j) != 1)
|
||||
@@ -352,16 +352,16 @@
|
||||
// TOGGLE WHETHER JOB APPEARS AS PRIORITIZED IN THE LOBBY
|
||||
if(is_authenticated(usr))
|
||||
var/priority_target = href_list["job"]
|
||||
var/datum/job/j = job_master.GetJob(priority_target)
|
||||
var/datum/job/j = SSjobs.GetJob(priority_target)
|
||||
if(!j)
|
||||
return 0
|
||||
// Unlike the proper ID computer, this does not check job_in_department
|
||||
var/priority = TRUE
|
||||
if(j in job_master.prioritized_jobs)
|
||||
job_master.prioritized_jobs -= j
|
||||
if(j in SSjobs.prioritized_jobs)
|
||||
SSjobs.prioritized_jobs -= j
|
||||
priority = FALSE
|
||||
else if(job_master.prioritized_jobs.len < 3)
|
||||
job_master.prioritized_jobs += j
|
||||
else if(SSjobs.prioritized_jobs.len < 3)
|
||||
SSjobs.prioritized_jobs += j
|
||||
else
|
||||
return 0
|
||||
log_game("[key_name(usr)] [priority ? "prioritized" : "unprioritized"] the job \"[j.title]\".")
|
||||
|
||||
@@ -178,7 +178,7 @@ var/ert_request_answered = FALSE
|
||||
ticker.mode.ert += M.mind
|
||||
M.forceMove(spawn_location)
|
||||
|
||||
job_master.CreateMoneyAccount(M, class, null)
|
||||
SSjobs.CreateMoneyAccount(M, class, null)
|
||||
|
||||
active_team.equip_officer(class, M)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user