Merge pull request #16301 from Kashargul/robotMiningIDfix

Job rank and radio channel rework
This commit is contained in:
Heroman3003
2024-09-16 07:26:11 +10:00
committed by GitHub
418 changed files with 2890 additions and 2253 deletions
+95 -62
View File
@@ -1,3 +1,20 @@
// Station ranks
#define RANK_HEADS "Heads"
#define RANK_SECURITY "Security"
#define RANK_ENGINEERING "Engineering"
#define RANK_RESEARCH "Research"
#define RANK_MEDICAL "Medical"
#define RANK_CE_STATION_ENGINEER "CE_Station_Engineer"
#define RANK_CE_ATMOSPHERIC_TECH "CE_Atmospheric_Tech"
#define RANK_CE_SHAFT_MINER "CE_Shaft_Miner"
#define RANK_CHEMIST_RD_CMO "Chemist_RD_CMO"
#define RANK_GENETIST_RD_CMO "Geneticist_RD_CMO"
#define RANK_MD_CMO "MD_CMO"
#define RANK_SCIENTIST_RD "Scientist_RD"
#define RANK_AI_CYBORG "AI_Cyborg"
#define RANK_DETECTIVE_HOS "Detective_HoS"
#define RANK_VIROLOGIST_RD_CMO "Virologist_RD_CMO"
var/savefile/Banlistjob
@@ -61,82 +78,82 @@ var/savefile/Banlistjob
if (temp)
UpdateTime()
bantimestamp = CMinutes + minutes
if(rank == "Heads")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Personnel")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Site Manager")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
if(rank == RANK_HEADS)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_PERSONNEL)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SITE_MANAGER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
return 1
if(rank == "Security")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Warden")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Detective")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Security Officer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
if(rank == RANK_SECURITY)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_WARDEN)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_DETECTIVE)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SECURITY_OFFICER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
return 1
if(rank == "Engineering")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Engineer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Atmospheric Technician")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
if(rank == RANK_ENGINEERING)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ENGINEER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ATMOSPHERIC_TECHNICIAN)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
return 1
if(rank == "Research")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Scientist")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
if(rank == RANK_RESEARCH)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SCIENTIST)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
return 1
if(rank == "Medical")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Medical Doctor")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chemist")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
if(rank == RANK_MEDICAL)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_MEDICAL_DOCTOR)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHEMIST)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
return 1
if(rank == "CE_Station_Engineer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Engineer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
if(rank == RANK_CE_STATION_ENGINEER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ENGINEER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
return 1
if(rank == "CE_Atmospheric_Tech")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Atmospheric Technician")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
if(rank == RANK_CE_ATMOSPHERIC_TECH)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ATMOSPHERIC_TECHNICIAN)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
return 1
if(rank == "CE_Shaft_Miner")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Shaft Miner")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
if(rank == RANK_CE_SHAFT_MINER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SHAFT_MINER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
return 1
if(rank == "Chemist_RD_CMO")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chemist")
if(rank == RANK_CHEMIST_RD_CMO)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHEMIST)
return 1
if(rank == "Geneticist_RD_CMO")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist")
if(rank == RANK_GENETIST_RD_CMO)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST)
return 1
if(rank == "MD_CMO")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Medical Doctor")
if(rank == RANK_MD_CMO)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_MEDICAL_DOCTOR)
return 1
if(rank == "Scientist_RD")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Scientist")
if(rank == RANK_SCIENTIST_RD)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SCIENTIST)
return 1
if(rank == "AI_Cyborg")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "AI")
if(rank == RANK_AI_CYBORG)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_AI)
return 1
if(rank == "Detective_HoS")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Detective")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security")
if(rank == RANK_DETECTIVE_HOS)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_DETECTIVE)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY)
return 1
if(rank == "Virologist_RD_CMO")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Virologist")
if(rank == RANK_VIROLOGIST_RD_CMO)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ALT_VIROLOGIST)
return 1
Banlistjob.cd = "/base"
@@ -272,3 +289,19 @@ var/savefile/Banlistjob
Banlistjob.cd = "/base"
for (var/A in Banlistjob.dir)
RemoveBanjob(A, "full")
#undef RANK_HEADS
#undef RANK_SECURITY
#undef RANK_ENGINEERING
#undef RANK_RESEARCH
#undef RANK_MEDICAL
#undef RANK_CE_STATION_ENGINEER
#undef RANK_CE_ATMOSPHERIC_TECH
#undef RANK_CE_SHAFT_MINER
#undef RANK_CHEMIST_RD_CMO
#undef RANK_GENETIST_RD_CMO
#undef RANK_MD_CMO
#undef RANK_SCIENTIST_RD
#undef RANK_AI_CYBORG
#undef RANK_DETECTIVE_HOS
#undef RANK_VIROLOGIST_RD_CMO
+13 -13
View File
@@ -230,38 +230,38 @@
if(ishuman(M))
M_job = M.job
else if(isslime(M))
M_job = "slime"
M_job = JOB_SLIME
else if(issmall(M))
M_job = "Monkey"
M_job = JOB_MONKEY
else if(isalien(M))
M_job = "Alien"
M_job = JOB_ALIEN
else
M_job = "Carbon-based"
M_job = JOB_CARBON_BASED
else if(issilicon(M)) //silicon
if(isAI(M))
M_job = "AI"
M_job = JOB_AI
else if(ispAI(M))
M_job = "pAI"
M_job = JOB_PAI
else if(isrobot(M))
M_job = "Cyborg"
M_job = JOB_CYBORG
else
M_job = "Silicon-based"
M_job = JOB_SILICON_BASED
else if(isanimal(M)) //simple animals
if(iscorgi(M))
M_job = "Corgi"
M_job = JOB_CORGI
else
M_job = "Animal"
M_job = JOB_ANIMAL
else
M_job = "Living"
M_job = JOB_LIVING
else if(istype(M,/mob/new_player))
M_job = "New player"
M_job = JOB_NEW_PLAYER
else if(isobserver(M))
M_job = "Ghost"
M_job = JOB_GHOST
M_job = replacetext(M_job, "'", "")
M_job = replacetext(M_job, "\"", "")
@@ -18,7 +18,7 @@
H.Paralyse(5)
if(H.wear_id)
var/obj/item/weapon/card/id/id = H.get_idcard()
for(var/A in id.access)
for(var/A in id.GetAccess())
if(A == access_security)
security++
if(!security)
+5 -5
View File
@@ -600,10 +600,10 @@
jobs += "</tr><tr align='center'>"
counter = 0
if(jobban_isbanned(M, "Internal Affairs Agent"))
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3=Internal Affairs Agent;jobban4=\ref[M]'><font color=red>Internal Affairs Agent</font></a></td>"
if(jobban_isbanned(M, JOB_INTERNAL_AFFAIRS_AGENT))
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3="+JOB_INTERNAL_AFFAIRS_AGENT+";jobban4=\ref[M]'><font color=red>"+JOB_INTERNAL_AFFAIRS_AGENT+"</font></a></td>"
else
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3=Internal Affairs Agent;jobban4=\ref[M]'>Internal Affairs Agent</a></td>"
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3="+JOB_INTERNAL_AFFAIRS_AGENT+";jobban4=\ref[M]'>"+JOB_INTERNAL_AFFAIRS_AGENT+"</a></td>"
jobs += "</tr></table>"
@@ -629,7 +629,7 @@
//Antagonist (Orange)
counter = 0
var/isbanned_dept = jobban_isbanned(M, "Syndicate")
var/isbanned_dept = jobban_isbanned(M, JOB_SYNDICATE)
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='ffeeaa'><th colspan='[length(all_antag_types)]'><a href='?src=\ref[src];[HrefToken()];jobban3=Syndicate;jobban4=\ref[M]'>Antagonist Positions</a></th></tr><tr align='center'>"
@@ -652,7 +652,7 @@
//Misc 'roles'
counter = 0
var/list/misc_roles = list("Dionaea", "Graffiti", "Custom loadout", "pAI", "GhostRoles", "AntagHUD")
var/list/misc_roles = list(JOB_DIONAEA, JOB_GRAFFITI, JOB_CUSTOM_LOADOUT, JOB_PAI, JOB_GHOSTROLES, JOB_ANTAGHUD)
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='ccccff'><th colspan='[length(misc_roles)]'>Other Roles</th></tr><tr align='center'>"
for(var/entry in misc_roles)
+1 -1
View File
@@ -293,7 +293,7 @@
id.icon_state = "gold"
id.access = get_all_accesses().Copy()
id.registered_name = H.real_name
id.assignment = "Site Manager"
id.assignment = JOB_SITE_MANAGER
id.name = "[id.registered_name]'s ID Card ([id.assignment])"
H.equip_to_slot_or_del(id, slot_wear_id)
H.update_inv_wear_id()
+9 -9
View File
@@ -229,13 +229,13 @@
var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to add", "Channels", available_channels)
if(!selected_radio_channel || selected_radio_channel == "Cancel")
break
if(selected_radio_channel == "Special Ops")
if(selected_radio_channel == CHANNEL_SPECIAL_OPS)
target.radio.centComm = 1
if(selected_radio_channel == "Raider")
if(selected_radio_channel == CHANNEL_RAIDER)
qdel(target.radio.keyslot)
target.radio.keyslot = new /obj/item/device/encryptionkey/raider(target)
target.radio.syndie = 1
if(selected_radio_channel == "Mercenary")
if(selected_radio_channel == CHANNEL_MERCENARY)
qdel(target.radio.keyslot)
target.radio.keyslot = new /obj/item/device/encryptionkey/syndicate(target)
target.radio.syndie = 1
@@ -249,10 +249,10 @@
var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to remove", "Channels", target.radio.channels)
if(!selected_radio_channel || selected_radio_channel == "Cancel")
break
if(selected_radio_channel == "Special Ops")
if(selected_radio_channel == CHANNEL_SPECIAL_OPS)
target.radio.centComm = 0
target.module.channels -= selected_radio_channel
if((selected_radio_channel == "Mercenary" || selected_radio_channel == "Raider") && !(target.module.channels["Raider"] || target.module.channels["Mercenary"]))
if((selected_radio_channel == CHANNEL_MERCENARY || selected_radio_channel == CHANNEL_RAIDER) && !(target.module.channels[CHANNEL_RAIDER] || target.module.channels[CHANNEL_MERCENARY]))
qdel(target.radio.keyslot)
target.radio.keyslot = null
target.radio.syndie = 0
@@ -345,9 +345,9 @@
continue
target.module_reset(FALSE)
if(MODIFIY_ROBOT_TOGGLE_STATION_ACCESS)
if(target?.idcard?.access)
if(target?.idcard?.GetAccess())
var/obj/item/weapon/card/id/synthetic/card = target.idcard
if(access_synth in card.access)
if(access_synth in card.GetAccess())
card.access -= get_all_station_access()
card.access -= access_synth
to_chat(usr, "<span class='danger'>You revoke station access from [target].</span>")
@@ -356,9 +356,9 @@
card.access |= access_synth
to_chat(usr, "<span class='danger'>You grant station access to [target].</span>")
if(MODIFIY_ROBOT_TOGGLE_CENT_ACCESS)
if(target?.idcard?.access)
if(target?.idcard?.GetAccess())
var/obj/item/weapon/card/id/synthetic/card = target.idcard
if(access_cent_specops in card.access)
if(access_cent_specops in card.GetAccess())
card.access -= get_all_centcom_access()
to_chat(usr, "<span class='danger'>You revoke central access from [target].</span>")
else
+2 -2
View File
@@ -432,8 +432,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
return
if(samejob == "Yes")
charjob = record_found.fields["real_rank"]
else if(samejob == USELESS_JOB) //VOREStation Edit - Visitor not Assistant
charjob = USELESS_JOB //VOREStation Edit - Visitor not Assistant
else if(samejob == JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant
charjob = JOB_ALT_VISITOR //VOREStation Edit - Visitor not Assistant
else
records = tgui_alert(src,"No data core entry detected. Would you like add them to the manifest, and sec/med/HR records?","Records",list("No", "Yes", "Cancel"))
if(!records || records == "Cancel")
+1 -1
View File
@@ -7,7 +7,7 @@
return
if(job_master && ticker)
var/datum/job/job = job_master.GetJob("AI")
var/datum/job/job = job_master.GetJob(JOB_AI)
if(!job)
to_chat(usr, "Unable to locate the AI job")
return