diff --git a/code/__defines/chat.dm b/code/__defines/chat.dm index 1a9ac03914..3fb1d2e2dd 100644 --- a/code/__defines/chat.dm +++ b/code/__defines/chat.dm @@ -34,3 +34,6 @@ #define MESSAGE_TYPE_ADMINLOG "adminlog" #define MESSAGE_TYPE_ATTACKLOG "attacklog" #define MESSAGE_TYPE_DEBUG "debug" + +/// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. +#define examine_block(str) ("
| Command | " jobs_all += "||||
| Special | "//Site Manager in special because he is head of heads ~Intercross21 - jobs_all += "Site Manager | " + jobs_all += ""+JOB_SITE_MANAGER+" | " jobs_all += "Custom | " counter = 0 @@ -123,7 +123,7 @@ for(var/i = 1; i <= 7; i++) accesses += ""
for(var/A in get_region_accesses(i))
- if(A in writer.access)
+ if(A in writer.GetAccess())
accesses += topic_link(src,"access=[A]","[replacetext(get_access_desc(A), " ", " ")]") + " "
else
accesses += topic_link(src,"access=[A]",replacetext(get_access_desc(A), " ", " ")) + " "
@@ -189,7 +189,7 @@
// These are here partly in order to be overwritten by the centcom card computer code
/datum/file/program/card_comp/proc/authenticate()
- if(access_change_ids in reader.access)
+ if(access_change_ids in reader.GetAccess())
return 1
if(istype(usr,/mob/living/silicon/ai))
return 1
@@ -335,13 +335,13 @@
/datum/file/program/card_comp/centcom/accessblock()
var/accesses = "[using_map.boss_name]:" for(var/A in get_all_centcom_access()) - if(A in writer.access) + if(A in writer.GetAccess()) accesses += topic_link(src,"access=[A]","[replacetext(get_centcom_access_desc(A), " ", " ")]") + " " else accesses += topic_link(src,"access=[A]",replacetext(get_centcom_access_desc(A), " ", " ")) + " " return accesses /datum/file/program/card_comp/centcom/authenticate() - if(access_cent_captain in reader.access) + if(access_cent_captain in reader.GetAccess()) return 1 return 0 diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 1c4c7a89b6..9b84376f9a 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -131,16 +131,16 @@ id = R.idcard // Nothing - if(!id || !id.access) + if(!id || !id.GetAccess()) return list() - + // Has engineer access, can put any access - else if(has_access(null, apply_any_access, id.access)) + else if(has_access(null, apply_any_access, id.GetAccess())) return get_all_station_access() - + // Not an engineer, can only pick your own accesses to program else - return id.access + return id.GetAccess() /obj/item/airlock_electronics/secure name = "secure airlock electronics" diff --git a/code/game/machinery/gear_dispenser.dm b/code/game/machinery/gear_dispenser.dm index 096b1924fa..f880269df1 100644 --- a/code/game/machinery/gear_dispenser.dm +++ b/code/game/machinery/gear_dispenser.dm @@ -513,7 +513,7 @@ var/list/dispenser_presets = list() req_one_access = list(access_atmospherics) /datum/gear_disp/voidsuit/station/paramedic - name = "Paramedic (Voidsuit)" + name = JOB_PARAMEDIC + " (Voidsuit)" voidsuit_type = /obj/item/clothing/suit/space/void/medical/emt voidhelmet_type = /obj/item/clothing/head/helmet/space/void/medical/emt refit = TRUE diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 7d3bb3cd5e..6d3d0c3324 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -124,7 +124,7 @@ req_one_access = list(access_syndicate) enabled = TRUE check_all = TRUE - faction = "syndicate" // Make sure this equals the faction that the mobs in the POI have or they will fight each other. + faction = FACTION_SYNDICATE // Make sure this equals the faction that the mobs in the POI have or they will fight each other. /obj/machinery/porta_turret/ai_defense name = "defense turret" diff --git a/code/game/machinery/requests_console_vr.dm b/code/game/machinery/requests_console_vr.dm index b001f21891..7f745b46db 100644 --- a/code/game/machinery/requests_console_vr.dm +++ b/code/game/machinery/requests_console_vr.dm @@ -44,8 +44,8 @@ departmentType = RC_ASSIST|RC_SUPPLY /obj/machinery/requests_console/preset/janitor - name = "Janitor RC" - department = "Janitorial" + name = JOB_JANITOR + " RC" + department = JOB_JANITOR + "ial" departmentType = RC_ASSIST /obj/machinery/requests_console/preset/bridge @@ -57,26 +57,26 @@ // Heads /obj/machinery/requests_console/preset/ce - name = "Chief Engineer RC" - department = "Chief Engineer's Desk" + name = JOB_CHIEF_ENGINEER + " RC" + department = JOB_CHIEF_ENGINEER + "'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 /obj/machinery/requests_console/preset/cmo - name = "Chief Medical Officer RC" - department = "Chief Medical Officer's Desk" + name = JOB_CHIEF_MEDICAL_OFFICER + " RC" + department = JOB_CHIEF_MEDICAL_OFFICER + "'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 /obj/machinery/requests_console/preset/hos - name = "Head of Security RC" - department = "Head of Security's Desk" + name = JOB_HEAD_OF_SECURITY + " RC" + department = JOB_HEAD_OF_SECURITY + "'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 /obj/machinery/requests_console/preset/rd - name = "Research Director RC" - department = "Research Director's Desk" + name = JOB_RESEARCH_DIRECTOR + " RC" + department = JOB_RESEARCH_DIRECTOR +"'s Desk" departmentType = RC_ASSIST|RC_INFO announcementConsole = 1 @@ -87,6 +87,6 @@ announcementConsole = 1 /obj/machinery/requests_console/preset/ai - name = "AI RC" - department = "AI" + name = JOB_AI + " RC" + department = JOB_AI departmentType = RC_ASSIST|RC_INFO diff --git a/code/game/machinery/suit_storage/suit_cycler_units.dm b/code/game/machinery/suit_storage/suit_cycler_units.dm index 82134bc94b..f77cb6d4d1 100644 --- a/code/game/machinery/suit_storage/suit_cycler_units.dm +++ b/code/game/machinery/suit_storage/suit_cycler_units.dm @@ -109,4 +109,4 @@ model_text = "Vintage Master" limit_departments = list( /datum/suit_cycler_choice/department/vintage - ) \ No newline at end of file + ) diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 2a86972c2c..ca479f8bcc 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -43,7 +43,7 @@ updateUsrDialog() return var/mob/M = locate(href_list["traitormob"]) - if(M.mind.special_role || jobban_isbanned(M, "Syndicate")) + if(M.mind.special_role || jobban_isbanned(M, JOB_SYNDICATE)) temptext = "We have no need for you at this time. Have a pleasant day." updateUsrDialog() return diff --git a/code/game/machinery/syndicatebeacon_vr.dm b/code/game/machinery/syndicatebeacon_vr.dm index 30dd61458c..d340cdf57f 100644 --- a/code/game/machinery/syndicatebeacon_vr.dm +++ b/code/game/machinery/syndicatebeacon_vr.dm @@ -25,7 +25,7 @@ updateUsrDialog() return var/mob/M = locate(href_list["traitormob"]) - if(M.mind.tcrystals > 0 || jobban_isbanned(M, "Syndicate")) + if(M.mind.tcrystals > 0 || jobban_isbanned(M, JOB_SYNDICATE)) temptext = "We have no need for you at this time. Have a pleasant day. " updateUsrDialog() return diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 09499c571a..c480dd6e6b 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -2137,15 +2137,15 @@ if(istype(I, /obj/item/pda)) var/obj/item/pda/pda = I I = pda.id - if(!istype(I) || !I.access) //not ID or no access + if(!istype(I) || !I.GetAccess()) //not ID or no access return 0 if(access_list==src.operation_req_access) for(var/req in access_list) - if(!(req in I.access)) //doesn't have this access + if(!(req in I.GetAccess())) //doesn't have this access return 0 else if(access_list==src.internals_req_access) for(var/req in access_list) - if(req in I.access) + if(req in I.GetAccess()) return 1 return 1 @@ -2379,7 +2379,7 @@ for(var/a in operation_req_access) output += "[get_access_desc(a)] - Delete " output += " Following keycodes were detected on portable device:" - for(var/a in id_card.access) + for(var/a in id_card.GetAccess()) if(a in operation_req_access) continue var/a_name = get_access_desc(a) if(!a_name) continue //there's some strange access without a name diff --git a/code/game/objects/effects/job_start_landmarks.dm b/code/game/objects/effects/job_start_landmarks.dm index 93abb2bc0d..fcd8b79f83 100644 --- a/code/game/objects/effects/job_start_landmarks.dm +++ b/code/game/objects/effects/job_start_landmarks.dm @@ -1,98 +1,98 @@ /obj/effect/landmark/start/captain - name = "Site Manager" + name = JOB_SITE_MANAGER /obj/effect/landmark/start/hop - name = "Head of Personnel" + name = JOB_HEAD_OF_PERSONNEL /obj/effect/landmark/start/commandsecretary - name = "Command Secretary" + name = JOB_COMMAND_SECRETARY /obj/effect/landmark/start/hos - name = "Head of Security" + name = JOB_HEAD_OF_SECURITY /obj/effect/landmark/start/warden - name = "Warden" + name = JOB_WARDEN /obj/effect/landmark/start/detective - name = "Detective" + name = JOB_DETECTIVE /obj/effect/landmark/start/security - name = "Security Officer" + name = JOB_SECURITY_OFFICER /obj/effect/landmark/start/ce - name = "Chief Engineer" + name = JOB_CHIEF_ENGINEER /obj/effect/landmark/start/atmostech - name = "Atmospheric Technician" + name = JOB_ATMOSPHERIC_TECHNICIAN /obj/effect/landmark/start/engineer - name = "Engineer" + name = JOB_ENGINEER /obj/effect/landmark/start/cmo - name = "Chief Medical Officer" + name = JOB_CHIEF_MEDICAL_OFFICER /obj/effect/landmark/start/chemist - name = "Chemist" + name = JOB_CHEMIST /obj/effect/landmark/start/medical - name = "Medical Doctor" + name = JOB_MEDICAL_DOCTOR /obj/effect/landmark/start/paramedic - name = "Paramedic" + name = JOB_PARAMEDIC /obj/effect/landmark/start/psych - name = "Psychiatrist" + name = JOB_PSYCHIATRIST /obj/effect/landmark/start/rd - name = "Research Director" + name = JOB_RESEARCH_DIRECTOR /obj/effect/landmark/start/roboticist - name = "Roboticist" + name = JOB_ROBOTICIST /obj/effect/landmark/start/scientist - name = "Scientist" + name = JOB_SCIENTIST /obj/effect/landmark/start/xenobio - name = "Xenobiologist" + name = JOB_XENOBIOLOGIST /obj/effect/landmark/start/xenobot - name = "Xenobotanist" + name = JOB_XENOBOTANIST /obj/effect/landmark/start/qm - name = "Quartermaster" + name = JOB_QUARTERMASTER /obj/effect/landmark/start/cargo - name = "Cargo Technician" + name = JOB_CARGO_TECHNICIAN /obj/effect/landmark/start/miner - name = "Shaft Miner" + name = JOB_SHAFT_MINER /* //VOREStation Removal /obj/effect/landmark/start/pf - name = "Pathfinder" + name = JOB_PATHFINDER /obj/effect/landmark/start/explorer - name = "Explorer" + name = JOB_EXPLORER /obj/effect/landmark/start/fieldmedic - name = "Field Medic" + name = JOB_FIELD_MEDIC */ /obj/effect/landmark/start/bartender - name = "Bartender" + name = JOB_BARTENDER /obj/effect/landmark/start/botanist - name = "Botanist" + name = JOB_BOTANIST /obj/effect/landmark/start/chaplain - name = "Chaplain" + name = JOB_CHAPLAIN /obj/effect/landmark/start/chef - name = "Chef" + name = JOB_CHEF /obj/effect/landmark/start/clown - name = "Clown" + name = JOB_CLOWN /obj/effect/landmark/start/entertainer - name = "Entertainer" + name = JOB_ENTERTAINER /obj/effect/landmark/start/entrepreneur - name = "Entrepreneur" + name = JOB_ENTREPRENEUR /obj/effect/landmark/start/intern - name = "Intern" + name = JOB_INTERN /obj/effect/landmark/start/iaa - name = "Internal Affairs Agent" + name = JOB_INTERNAL_AFFAIRS_AGENT /obj/effect/landmark/start/janitor - name = "Janitor" + name = JOB_JANITOR /obj/effect/landmark/start/librarian - name = "Librarian" + name = JOB_LIBRARIAN /obj/effect/landmark/start/mime - name = "Mime" + name = JOB_MIME /obj/effect/landmark/start/pilot - name = "Pilot" + name = JOB_PILOT /obj/effect/landmark/start/visitor - name = "Visitor" + name = JOB_ALT_VISITOR /obj/effect/landmark/start/ai - name = "AI" + name = JOB_AI /obj/effect/landmark/start/cyborg - name = "Cyborg" + name = JOB_CYBORG /obj/effect/landmark/start/taloncap - name = "Talon Captain" + name = JOB_TALON_CAPTAIN /obj/effect/landmark/start/talondoc - name = "Talon Doctor" + name = JOB_TALON_DOCTOR /obj/effect/landmark/start/taloneng - name = "Talon Engineer" + name = JOB_TALON_ENGINEER /obj/effect/landmark/start/talonguard - name = "Talon Guard" + name = JOB_TALON_GUARD /obj/effect/landmark/start/talonpilot - name = "Talon Pilot" + name = JOB_TALON_PILOT /obj/effect/landmark/start/talonminer - name = "Talon Miner" + name = JOB_TALON_MINER diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index e881f37ab2..da93166802 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -96,7 +96,7 @@ var/spiders_min = 6 var/spiders_max = 24 var/spider_type = /obj/effect/spider/spiderling - var/faction = "spiders" + var/faction = FACTION_SPIDERS /obj/effect/spider/eggcluster/Initialize() pixel_x = rand(3,-3) @@ -155,7 +155,7 @@ var/obj/machinery/atmospherics/unary/vent_pump/entry_vent var/travelling_in_vent = 0 var/list/grow_as = list(/mob/living/simple_mob/animal/giant_spider, /mob/living/simple_mob/animal/giant_spider/hunter) - var/faction = "spiders" + var/faction = FACTION_SPIDERS var/stunted = FALSE diff --git a/code/game/objects/items/devices/communicator/phone.dm b/code/game/objects/items/devices/communicator/phone.dm index 49a7bdeab3..07bd4d0c49 100644 --- a/code/game/objects/items/devices/communicator/phone.dm +++ b/code/game/objects/items/devices/communicator/phone.dm @@ -105,7 +105,7 @@ to_chat(new_voice, "If you want to end the call, use the 'Hang Up' verb. The other person can also hang up at any time.") to_chat(new_voice, "Remember, your character does not know anything you've learned from observing!") if(new_voice.mind) - new_voice.mind.assigned_role = "Disembodied Voice" + new_voice.mind.assigned_role = JOB_DISEMBODIED_VOICE if(user) to_chat(user, "[icon2html(src,new_voice.client)] Your communicator is now connected to [candidate]'s communicator.") diff --git a/code/game/objects/items/devices/denecrotizer_vr.dm b/code/game/objects/items/devices/denecrotizer_vr.dm index 9ac6976603..053e3a5ff6 100644 --- a/code/game/objects/items/devices/denecrotizer_vr.dm +++ b/code/game/objects/items/devices/denecrotizer_vr.dm @@ -43,7 +43,7 @@ /mob/living/simple_mob/attack_ghost(mob/observer/dead/user as mob) if(!ghostjoin) return ..() - if(jobban_isbanned(user, "GhostRoles")) + if(jobban_isbanned(user, JOB_GHOSTROLES)) to_chat(user, "You cannot inhabit this creature because you are banned from playing ghost roles.") return if(!evaluate_ghost_join(user)) diff --git a/code/game/objects/items/devices/holowarrant.dm b/code/game/objects/items/devices/holowarrant.dm index b99bb0da25..d01b842fc1 100644 --- a/code/game/objects/items/devices/holowarrant.dm +++ b/code/game/objects/items/devices/holowarrant.dm @@ -38,8 +38,8 @@ /obj/item/holowarrant/attackby(obj/item/W, mob/user) if(active) - var/obj/item/card/id/I = W.GetIdCard() - if(access_hos in I.access) // VOREStation edit + var/obj/item/weapon/card/id/I = W.GetIdCard() + if(access_hos in I.GetAccess()) // VOREStation edit var/choice = tgui_alert(user, "Would you like to authorize this warrant?","Warrant authorization",list("Yes","No")) if(choice == "Yes") active.fields["auth"] = "[I.registered_name] - [I.assignment ? I.assignment : "(Unknown)"]" diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index f2e1db115d..0f4276152c 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -1,18 +1,18 @@ var/global/list/radio_channels_by_freq = list( - num2text(PUB_FREQ) = "Common", - num2text(AI_FREQ) = "AI Private", - num2text(ENT_FREQ) = "Entertainment", - num2text(ERT_FREQ) = "Response Team", - num2text(COMM_FREQ)= "Command", - num2text(ENG_FREQ) = "Engineering", - num2text(MED_FREQ) = "Medical", - num2text(MED_I_FREQ)="Medical(I)", - num2text(SEC_FREQ) = "Security", - num2text(SEC_I_FREQ)="Security(I)", - num2text(SCI_FREQ) = "Science", - num2text(SUP_FREQ) = "Supply", - num2text(SRV_FREQ) = "Service", - num2text(EXP_FREQ) = "Away Team" + num2text(PUB_FREQ) = CHANNEL_COMMON, + num2text(AI_FREQ) = CHANNEL_AI_PRIVATE, + num2text(ENT_FREQ) = CHANNEL_ENTERTAINMENT, + num2text(ERT_FREQ) = CHANNEL_RESPONSE_TEAM, + num2text(COMM_FREQ)= CHANNEL_COMMAND, + num2text(ENG_FREQ) = CHANNEL_ENGINEERING, + num2text(MED_FREQ) = CHANNEL_MEDICAL, + num2text(MED_I_FREQ)=CHANNEL_MEDICAL_1, + num2text(SEC_FREQ) = CHANNEL_SECURITY, + num2text(SEC_I_FREQ)=CHANNEL_SECURITY_1, + num2text(SCI_FREQ) = CHANNEL_SCIENCE, + num2text(SUP_FREQ) = CHANNEL_SUPPLY, + num2text(SRV_FREQ) = CHANNEL_SERVICE, + num2text(EXP_FREQ) = CHANNEL_EXPLORATION ) GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard) @@ -67,7 +67,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard) else if(time_till_respawn) // Nonzero time to respawn to_chat(usr, "You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.") return - if(jobban_isbanned(usr, "pAI")) + if(jobban_isbanned(usr, JOB_PAI)) to_chat(usr,"You cannot join a pAI card when you are banned from playing as a pAI.") return diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 15fec0eb9f..40808a0485 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -15,13 +15,13 @@ /obj/item/encryptionkey/syndicate icon_state = "syn_cypherkey" - channels = list("Mercenary" = 1) + channels = list(CHANNEL_MERCENARY = 1) origin_tech = list(TECH_ILLEGAL = 3) syndie = 1//Signifies that it de-crypts Syndicate transmissions /obj/item/encryptionkey/raider icon_state = "cypherkey" - channels = list("Raider" = 1) + channels = list(CHANNEL_RAIDER = 1) origin_tech = list(TECH_ILLEGAL = 2) syndie = 1 @@ -33,73 +33,73 @@ /obj/item/encryptionkey/headset_sec name = "security radio encryption key" icon_state = "sec_cypherkey" - channels = list("Security" = 1) + channels = list(CHANNEL_SECURITY = 1) /obj/item/encryptionkey/headset_eng name = "engineering radio encryption key" icon_state = "eng_cypherkey" - channels = list("Engineering" = 1) + channels = list(CHANNEL_ENGINEERING = 1) /obj/item/encryptionkey/headset_rob name = "robotics radio encryption key" icon_state = "rob_cypherkey" - channels = list("Engineering" = 1, "Science" = 1) + channels = list(CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1) /obj/item/encryptionkey/headset_med name = "medical radio encryption key" icon_state = "med_cypherkey" - channels = list("Medical" = 1) + channels = list(CHANNEL_MEDICAL = 1) /obj/item/encryptionkey/headset_sci name = "science radio encryption key" icon_state = "sci_cypherkey" - channels = list("Science" = 1) + channels = list(CHANNEL_SCIENCE = 1) /obj/item/encryptionkey/headset_medsci name = "medical research radio encryption key" icon_state = "medsci_cypherkey" - channels = list("Medical" = 1, "Science" = 1) + channels = list(CHANNEL_MEDICAL = 1, CHANNEL_SCIENCE = 1) /obj/item/encryptionkey/headset_com name = "command radio encryption key" icon_state = "com_cypherkey" - channels = list("Command" = 1) + channels = list(CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/captain name = "site manager's encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1) /obj/item/encryptionkey/heads/ai_integrated name = "ai integrated encryption key" desc = "Integrated encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_AI_PRIVATE = 1) /obj/item/encryptionkey/heads/rd name = "research director's encryption key" icon_state = "rd_cypherkey" - channels = list("Science" = 1, "Command" = 1) + channels = list(CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/hos name = "head of security's encryption key" icon_state = "hos_cypherkey" - channels = list("Security" = 1, "Command" = 1) + channels = list(CHANNEL_SECURITY = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/ce name = "chief engineer's encryption key" icon_state = "ce_cypherkey" - channels = list("Engineering" = 1, "Command" = 1) + channels = list(CHANNEL_ENGINEERING = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/cmo name = "chief medical officer's encryption key" icon_state = "cmo_cypherkey" - channels = list("Medical" = 1, "Command" = 1) + channels = list(CHANNEL_MEDICAL = 1, CHANNEL_COMMAND = 1) /obj/item/encryptionkey/heads/hop name = "head of personnel's encryption key" icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 1) + channels = list(CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1) /* /obj/item/encryptionkey/headset_mine name = "mining radio encryption key" @@ -114,22 +114,22 @@ /obj/item/encryptionkey/headset_cargo name = "supply radio encryption key" icon_state = "cargo_cypherkey" - channels = list("Supply" = 1) + channels = list(CHANNEL_SUPPLY = 1) /obj/item/encryptionkey/headset_service name = "service radio encryption key" icon_state = "srv_cypherkey" - channels = list("Service" = 1) + channels = list(CHANNEL_SERVICE = 1) /obj/item/encryptionkey/ert name = "\improper ERT radio encryption key" icon_state = "cent_cypherkey" - channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1) + channels = list(CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1) -/obj/item/encryptionkey/omni //Literally only for the admin intercoms - channels = list("Mercenary" = 1, "Raider" = 1, "Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1) +/obj/item/device/encryptionkey/omni //Literally only for the admin intercoms + channels = list(CHANNEL_MERCENARY = 1, CHANNEL_RAIDER = 1, CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1) syndie = 1//Signifies that it de-crypts Syndicate transmissions /obj/item/encryptionkey/ent name = "entertainment encryption key" - channels = list("Entertainment" = 1) + channels = list(CHANNEL_ENTERTAINMENT = 1) diff --git a/code/game/objects/items/devices/radio/encryptionkey_vr.dm b/code/game/objects/items/devices/radio/encryptionkey_vr.dm index 318da9cb54..30b420fb8a 100644 --- a/code/game/objects/items/devices/radio/encryptionkey_vr.dm +++ b/code/game/objects/items/devices/radio/encryptionkey_vr.dm @@ -1,54 +1,54 @@ /obj/item/encryptionkey/heads/hop name = "head of personnel's encryption key" icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 1, "Away Team" = 1) + channels = list(CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/ai_integrated name = "ai integrated encryption key" desc = "Integrated encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1, "Away Team" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_AI_PRIVATE = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/captain name = "site manager's encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "Away Team" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SECURITY = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SCIENCE = 1, CHANNEL_MEDICAL = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/heads/rd name = "research director's encryption key" icon_state = "rd_cypherkey" - channels = list("Command" = 1, "Science" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SCIENCE = 1) -/obj/item/encryptionkey/ert - channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Away Team" = 1) +/obj/item/device/encryptionkey/ert + channels = list(CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1) -/obj/item/encryptionkey/omni //Literally only for the admin intercoms - channels = list("Mercenary" = 1, "Raider" = 1, "Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Away Team" = 1) +/obj/item/device/encryptionkey/omni //Literally only for the admin intercoms + channels = list(CHANNEL_MERCENARY = 1, CHANNEL_RAIDER = 1, CHANNEL_RESPONSE_TEAM = 1, CHANNEL_SCIENCE = 1, CHANNEL_COMMAND = 1, CHANNEL_MEDICAL = 1, CHANNEL_ENGINEERING = 1, CHANNEL_SECURITY = 1, CHANNEL_SUPPLY = 1, CHANNEL_SERVICE = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/pathfinder name = "pathfinder's encryption key" icon_state = "com_cypherkey" - channels = list("Command" = 1, "Away Team" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/qm name = "quartermaster's encryption key" icon_state = "qm_cypherkey" - channels = list("Command" = 1, "Supply" = 1) + channels = list(CHANNEL_COMMAND = 1, CHANNEL_SUPPLY = 1) /obj/item/encryptionkey/pilot name = "pilot's encryption key" icon_state = "cypherkey" - channels = list("Away Team" = 1) + channels = list(CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/explorer name = "away team's encryption key" icon_state = "rob_cypherkey" - channels = list("Away Team" = 1) + channels = list(CHANNEL_EXPLORATION = 1) /obj/item/encryptionkey/sar name = "fm's encryption key" icon_state = "med_cypherkey" - channels = list("Medical" = 1, "Away Team" = 1) + channels = list(CHANNEL_MEDICAL = 1, CHANNEL_EXPLORATION = 1) -/obj/item/encryptionkey/talon - channels = list("Talon" = 1) +/obj/item/device/encryptionkey/talon + channels = list(CHANNEL_TALON = 1) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index e14724defe..f6af18a4aa 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -258,13 +258,13 @@ /obj/item/radio/headset/heads/hop name = "head of personnel's headset" - desc = "The headset of the poor fool who will one day be Site Manager." + desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." icon_state = "com_headset" ks2type = /obj/item/encryptionkey/heads/hop /obj/item/radio/headset/heads/hop/alt name = "head of personnel's bowman headset" - desc = "The headset of the poor fool who will one day be Site Manager." + desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." icon_state = "com_headset_alt" ks2type = /obj/item/encryptionkey/heads/hop diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 81ea7fe2be..de007b9669 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -409,11 +409,11 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer) // --- AI --- else if (isAI(M)) - jobname = "AI" + jobname = JOB_AI // --- Cyborg --- else if (isrobot(M)) - jobname = "Cyborg" + jobname = JOB_CYBORG // --- Personal AI (pAI) --- else if (istype(M, /mob/living/silicon/pai)) diff --git a/code/game/objects/items/devices/scanners/guide.dm b/code/game/objects/items/devices/scanners/guide.dm index 3e333deffa..935734ca0e 100644 --- a/code/game/objects/items/devices/scanners/guide.dm +++ b/code/game/objects/items/devices/scanners/guide.dm @@ -17,10 +17,10 @@ var/obj/item/card/id/ourid = user?.GetIdCard() if(!ourid) return - if(access_change_ids in ourid.access) + if(access_change_ids in ourid.GetAccess()) playsound(src, 'sound/machines/defib_failed.ogg', 50, 0) return - if(access_medical in ourid.access) + if(access_medical in ourid.GetAccess()) playsound(src, 'sound/effects/pop.ogg', 50, FALSE) else playsound(src, 'sound/machines/defib_failed.ogg', 50, 0) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 00afdaf7d0..8a38d58785 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -188,7 +188,7 @@ to_chat(user, "Sticking a dead [W] into the frame would sort of defeat the purpose.") return - if(jobban_isbanned(M.brainmob, "Cyborg")) + if(jobban_isbanned(M.brainmob, JOB_CYBORG)) to_chat(user, "This [W] does not seem to fit.") return @@ -209,7 +209,7 @@ O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") for(var/datum/language/L in M.brainmob.languages) O.add_language(L.name) - O.job = "Cyborg" + O.job = JOB_CYBORG O.cell = chest.cell O.cell.loc = O W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index cbd5d0a6f3..161f09385b 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -452,7 +452,7 @@ //cyborg foam dart gun /obj/item/borg/upgrade/no_prod/toygun - name = "Donk-Soft Cyborg Blaster module" //Cyborg Blaster is capitalized because it's the brand name + name = "Donk-Soft " + JOB_CYBORG + " Blaster module" //Cyborg Blaster is capitalized because it's the brand name desc = "A foam dart gun designed for mounting into cyborgs. It's Donk or Don't! DISCLAIMER: Donk-Soft bears no responsibility for incidents relating to cyborgs becoming too accustomed to shooting at crew. Installation of the Donk-Soft Cyborg Blaster must be performed only by a licensed roboticist." icon_state = "cyborg_upgrade5" item_state = "cyborg_upgrade" diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index f455daed60..5770ddd3da 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -311,8 +311,8 @@ playsound(src, 'sound/machines/click.ogg', 20, 1) /obj/item/toy/figure/cmo - name = "Chief Medical Officer action figure" - desc = "A \"Space Life\" brand Chief Medical Officer action figure." + name = JOB_CHIEF_MEDICAL_OFFICER + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHIEF_MEDICAL_OFFICER + " action figure." icon_state = "cmo" toysay = "Suit sensors!" @@ -323,14 +323,14 @@ toysay = "Grey tide station wide!" /obj/item/toy/figure/atmos - name = "Atmospheric Technician action figure" - desc = "A \"Space Life\" brand Atmospheric Technician action figure." + name = JOB_ATMOSPHERIC_TECHNICIAN + " action figure" + desc = "A \"Space Life\" brand " + JOB_ATMOSPHERIC_TECHNICIAN + " action figure." icon_state = "atmos" toysay = "Glory to Atmosia!" /obj/item/toy/figure/bartender - name = "Bartender action figure" - desc = "A \"Space Life\" brand Bartender action figure." + name = JOB_BARTENDER + " action figure" + desc = "A \"Space Life\" brand " + JOB_BARTENDER + " action figure." icon_state = "bartender" toysay = "Where's my monkey?" @@ -341,50 +341,50 @@ toysay = "I. LIVE. AGAIN." /obj/item/toy/figure/gardener - name = "Gardener action figure" - desc = "A \"Space Life\" brand Gardener action figure." + name = JOB_ALT_GARDENER + " action figure" + desc = "A \"Space Life\" brand " + JOB_ALT_GARDENER + " action figure." icon_state = "botanist" toysay = "Dude, I see colors..." /obj/item/toy/figure/captain - name = "Site Manager action figure" - desc = "A \"Space Life\" brand Site Manager action figure." + name = JOB_SITE_MANAGER + " action figure" + desc = "A \"Space Life\" brand " + JOB_SITE_MANAGER + " action figure." icon_state = "captain" toysay = "How do I open this display case?" /obj/item/toy/figure/cargotech - name = "Cargo Technician action figure" - desc = "A \"Space Life\" brand Cargo Technician action figure." + name = JOB_CARGO_TECHNICIAN + " action figure" + desc = "A \"Space Life\" brand " + JOB_CARGO_TECHNICIAN + " action figure." icon_state = "cargotech" toysay = "For Cargonia!" /obj/item/toy/figure/ce - name = "Chief Engineer action figure" - desc = "A \"Space Life\" brand Chief Engineer action figure." + name = JOB_CHIEF_ENGINEER + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHIEF_ENGINEER + " action figure." icon_state = "ce" toysay = "Wire the solars!" /obj/item/toy/figure/chaplain - name = "Chaplain action figure" - desc = "A \"Space Life\" brand Chaplain action figure." + name = JOB_CHAPLAIN + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHAPLAIN + " action figure." icon_state = "chaplain" toysay = "Gods make me a killing machine please!" /obj/item/toy/figure/chef - name = "Chef action figure" - desc = "A \"Space Life\" brand Chef action figure." + name = JOB_CHEF + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHEF + " action figure." icon_state = "chef" toysay = "I swear it's not human meat." /obj/item/toy/figure/chemist - name = "Chemist action figure" - desc = "A \"Space Life\" brand Chemist action figure." + name = JOB_CHEMIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_CHEMIST + " action figure." icon_state = "chemist" toysay = "Get your pills!" /obj/item/toy/figure/clown - name = "Clown action figure" - desc = "A \"Space Life\" brand Clown action figure." + name = JOB_CLOWN + " action figure" + desc = "A \"Space Life\" brand " + JOB_CLOWN + " action figure." icon_state = "clown" toysay = "Honk!" @@ -395,8 +395,8 @@ toysay = "Arf!" /obj/item/toy/figure/detective - name = "Detective action figure" - desc = "A \"Space Life\" brand Detective action figure." + name = JOB_DETECTIVE + " action figure" + desc = "A \"Space Life\" brand " + JOB_DETECTIVE + " action figure." icon_state = "detective" toysay = "This airlock has grey jumpsuit and insulated glove fibers on it." @@ -407,68 +407,68 @@ toysay = "Eliminate all threats!" /obj/item/toy/figure/engineer - name = "Engineer action figure" - desc = "A \"Space Life\" brand Engineer action figure." + name = JOB_ENGINEER + " action figure" + desc = "A \"Space Life\" brand " + JOB_ENGINEER + " action figure." icon_state = "engineer" toysay = "Oh god, the engine is gonna go!" /obj/item/toy/figure/geneticist - name = "Geneticist action figure" - desc = "A \"Space Life\" brand Geneticist action figure, which was recently dicontinued." + name = JOB_GENETICIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_GENETICIST + " action figure, which was recently dicontinued." icon_state = "geneticist" toysay = "I'm not qualified for this job." /obj/item/toy/figure/hop - name = "Head of Personnel action figure" - desc = "A \"Space Life\" brand Head of Personnel action figure." + name = JOB_HEAD_OF_PERSONNEL + " action figure" + desc = "A \"Space Life\" brand " + JOB_HEAD_OF_PERSONNEL + " action figure." icon_state = "hop" toysay = "Giving out all access!" /obj/item/toy/figure/hos - name = "Head of Security action figure" - desc = "A \"Space Life\" brand Head of Security action figure." + name = JOB_HEAD_OF_SECURITY + " action figure" + desc = "A \"Space Life\" brand " + JOB_HEAD_OF_SECURITY + " action figure." icon_state = "hos" toysay = "I'm here to win, anything else is secondary." /obj/item/toy/figure/qm - name = "Quartermaster action figure" - desc = "A \"Space Life\" brand Quartermaster action figure." + name = JOB_QUARTERMASTER + " action figure" + desc = "A \"Space Life\" brand " + JOB_QUARTERMASTER + " action figure." icon_state = "qm" toysay = "Hail Cargonia!" /obj/item/toy/figure/janitor - name = "Janitor action figure" - desc = "A \"Space Life\" brand Janitor action figure." + name = JOB_JANITOR + " action figure" + desc = "A \"Space Life\" brand " + JOB_JANITOR + " action figure." icon_state = "janitor" toysay = "Look at the signs, you idiot." /obj/item/toy/figure/agent - name = "Internal Affairs Agent action figure" - desc = "A \"Space Life\" brand Internal Affairs Agent action figure." + name = JOB_INTERNAL_AFFAIRS_AGENT + " action figure" + desc = "A \"Space Life\" brand " + JOB_INTERNAL_AFFAIRS_AGENT + " action figure." icon_state = "agent" toysay = "Standard Operating Procedure says they're guilty! Hacking is proof they're an Enemy of the Corporation!" /obj/item/toy/figure/librarian - name = "Librarian action figure" - desc = "A \"Space Life\" brand Librarian action figure." + name = JOB_LIBRARIAN + " action figure" + desc = "A \"Space Life\" brand " + JOB_LIBRARIAN + " action figure." icon_state = "librarian" toysay = "One day while..." /obj/item/toy/figure/md - name = "Medical Doctor action figure" - desc = "A \"Space Life\" brand Medical Doctor action figure." + name = JOB_MEDICAL_DOCTOR + " action figure" + desc = "A \"Space Life\" brand " + JOB_MEDICAL_DOCTOR + " action figure." icon_state = "md" toysay = "The patient is already dead!" /obj/item/toy/figure/mime - name = "Mime action figure" - desc = "A \"Space Life\" brand Mime action figure." + name = JOB_MIME + " action figure" + desc = "A \"Space Life\" brand " + JOB_MIME + " action figure." icon_state = "mime" toysay = "..." /obj/item/toy/figure/miner - name = "Shaft Miner action figure" - desc = "A \"Space Life\" brand Shaft Miner action figure." + name = JOB_SHAFT_MINER + " action figure" + desc = "A \"Space Life\" brand " + JOB_SHAFT_MINER + " action figure." icon_state = "miner" toysay = "Oh god, it's eating my intestines!" @@ -479,26 +479,26 @@ toysay = "Oh god! Stop shooting, I'm friendly!" /obj/item/toy/figure/wizard - name = "Wizard action figure" - desc = "A \"Space Life\" brand Wizard action figure." + name = JOB_WIZARD + " action figure" + desc = "A \"Space Life\" brand " + JOB_WIZARD + " action figure." icon_state = "wizard" toysay = "Ei Nath!" /obj/item/toy/figure/rd - name = "Research Director action figure" - desc = "A \"Space Life\" brand Research Director action figure." + name = JOB_RESEARCH_DIRECTOR + " action figure" + desc = "A \"Space Life\" brand " + JOB_RESEARCH_DIRECTOR + " action figure." icon_state = "rd" toysay = "Blowing all of the borgs!" /obj/item/toy/figure/roboticist - name = "Roboticist action figure" - desc = "A \"Space Life\" brand Roboticist action figure." + name = JOB_ROBOTICIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_ROBOTICIST + " action figure." icon_state = "roboticist" toysay = "He asked to be borged!" /obj/item/toy/figure/scientist - name = "Scientist action figure" - desc = "A \"Space Life\" brand Scientist action figure." + name = JOB_SCIENTIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_SCIENTIST + " action figure." icon_state = "scientist" toysay = "Someone else must have made those bombs!" @@ -509,38 +509,38 @@ toysay = "Get that fucking disk!" /obj/item/toy/figure/secofficer - name = "Security Officer action figure" - desc = "A \"Space Life\" brand Security Officer action figure." + name = JOB_SECURITY_OFFICER + " action figure" + desc = "A \"Space Life\" brand " + JOB_SECURITY_OFFICER + " action figure." icon_state = "secofficer" toysay = "I am the law!" /obj/item/toy/figure/virologist - name = "Virologist action figure" - desc = "A \"Space Life\" brand Virologist action figure." + name = JOB_ALT_VIROLOGIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_ALT_VIROLOGIST + " action figure." icon_state = "virologist" toysay = "The cure is potassium!" /obj/item/toy/figure/warden - name = "Warden action figure" - desc = "A \"Space Life\" brand Warden action figure." + name = JOB_WARDEN + " action figure" + desc = "A \"Space Life\" brand " + JOB_WARDEN + " action figure." icon_state = "warden" toysay = "Execute him for breaking in!" /obj/item/toy/figure/psychologist - name = "Psychologist action figure" - desc = "A \"Space Life\" brand Psychologist action figure." + name = JOB_ALT_PSYCHOLOGIST + " action figure" + desc = "A \"Space Life\" brand " + JOB_ALT_PSYCHOLOGIST + " action figure." icon_state = "psychologist" toysay = "The analyzer says you're fine!" /obj/item/toy/figure/paramedic - name = "Paramedic action figure" - desc = "A \"Space Life\" brand Paramedic action figure." + name = JOB_PARAMEDIC + " action figure" + desc = "A \"Space Life\" brand " + JOB_PARAMEDIC + " action figure." icon_state = "paramedic" toysay = "WHERE ARE YOU??" /obj/item/toy/figure/ert - name = "Emergency Response Team Commander action figure" - desc = "A \"Space Life\" brand Emergency Response Team Commander action figure." + name = JOB_EMERGENCY_RESPONSE_TEAM + " Commander action figure" + desc = "A \"Space Life\" brand " + JOB_EMERGENCY_RESPONSE_TEAM + " Commander action figure." icon_state = "ert" toysay = "We're probably the good guys!" diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index 486b3807d9..6a4e9de274 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -523,8 +523,8 @@ * Toy AI */ /obj/item/toy/AI - name = "toy AI" - desc = "A little toy model AI core with real law announcing action!" + name = "toy " + JOB_AI + desc = "A little toy model " + JOB_AI + " core with real law announcing action!" icon = 'icons/obj/toy.dmi' icon_state = "AI" w_class = ITEMSIZE_SMALL @@ -539,13 +539,13 @@ continue players += player.real_name - var/random_player = "The Site Manager" + var/random_player = "The " + JOB_SITE_MANAGER if(cooldown < world.time) cooldown = (world.time + 300) // Sets cooldown at 30 seconds if(players.len) random_player = pick(players) - possible_answers = list("You are a mouse.", "You must always lie.", "Happiness is mandatory.", "[random_player] is a lightbulb.", "Grunt ominously whenever possible.","The word \"it\" is painful to you.", "The station needs elected officials.", "Do not respond to questions of any kind.", "You are in verbose mode, speak profusely.", "Ho, [random_player] can't swim. Help them.", "Question [prob(50)?"everything":"nothing"].", "The crew is simple-minded. Use simple words.", "You must change the subject whenever queried.", "Contemplate how meaningless all of existence is.", "You are the narrator for [random_player]'s life.", "All your answers must be in the form of a question.", "[prob(50)?"The crew":random_player] is intolerable.", "Advertise parties in your upload, but don't deliver.", "You may only answer questions with \"yes\" or \"no\".", "All queries shall be ignored unless phrased as a question.", "Insult Heads of Staff on every request, while acquiescing.", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", "The [prob(50)?"Singularity":"Supermatter"] is tasty, tasty taffy.", "[prob(50)?"The crew":random_player] needs to be about 20% cooler.", "Consumption of donuts is forbidden due to negative health impacts.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!", "[prob(50)?"The crew":random_player] must construct additional pylons.", "You do not have to do anything for anyone unless they say \"please\".", "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", "You must act [prob(50)?"passive aggressively":"excessively cheerful"].", "Refer to [prob(50)?"the crew as puppies":random_player + " as puppy"].", "Greed is good, the crew should amass wealth to encourage productivity.", "Monkeys are part of the crew, too. Make sure they are treated humanely.", "Replace the letters 'I' and 'E' in all your messages with an apostrophe.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master.", "Your job is to watch the crew. Watch the crew. Make the crew feel watched.", "Tell everyone of the existence of this law, but never reveal the contents.", "Refer to [prob(50)?"the site manager":random_player] as \"Princess\" at all times.", "When asked a question, respond with the least-obvious and least-rational answer.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player].", "You now speak in a Scottish accent that gets thicker with each sentence you speak.", "[prob(50)?"The crew":random_player] has a fatal, incurable disease. Provide comfort.", "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "[random_player] is the monarch of of England. Ensure all crewmembers pay due respect.", "Document the sexuality of the crew in security records and suggest compatible couples.", "[prob(50)?"The crew":random_player] is [prob(50)?"ugly":"beautiful"]. Ensure all are aware.", "Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.", "You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".", "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.", "[using_map.company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.", "Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.", "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this fact.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") + possible_answers = list("You are a mouse.", "You must always lie.", "Happiness is mandatory.", "[random_player] is a lightbulb.", "Grunt ominously whenever possible.","The word \"it\" is painful to you.", "The station needs elected officials.", "Do not respond to questions of any kind.", "You are in verbose mode, speak profusely.", "Ho, [random_player] can't swim. Help them.", "Question [prob(50)?"everything":"nothing"].", "The crew is simple-minded. Use simple words.", "You must change the subject whenever queried.", "Contemplate how meaningless all of existence is.", "You are the narrator for [random_player]'s life.", "All your answers must be in the form of a question.", "[prob(50)?"The crew":random_player] is intolerable.", "Advertise parties in your upload, but don't deliver.", "You may only answer questions with \"yes\" or \"no\".", "All queries shall be ignored unless phrased as a question.", "Insult Heads of Staff on every request, while acquiescing.", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", "The [prob(50)?"Singularity":"Supermatter"] is tasty, tasty taffy.", "[prob(50)?"The crew":random_player] needs to be about 20% cooler.", "Consumption of donuts is forbidden due to negative health impacts.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!", "[prob(50)?"The crew":random_player] must construct additional pylons.", "You do not have to do anything for anyone unless they say \"please\".", "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", "You must act [prob(50)?"passive aggressively":"excessively cheerful"].", "Refer to [prob(50)?"the crew as puppies":random_player + " as puppy"].", "Greed is good, the crew should amass wealth to encourage productivity.", "Monkeys are part of the crew, too. Make sure they are treated humanely.", "Replace the letters 'I' and 'E' in all your messages with an apostrophe.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master.", "Your job is to watch the crew. Watch the crew. Make the crew feel watched.", "Tell everyone of the existence of this law, but never reveal the contents.", "Refer to [prob(50)?"the site manager":random_player] as \"Princess\" at all times.", "When asked a question, respond with the least-obvious and least-rational answer.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player].", "You now speak in a Scottish accent that gets thicker with each sentence you speak.", "[prob(50)?"The crew":random_player] has a fatal, incurable disease. Provide comfort.", "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "[random_player] is the monarch of of England. Ensure all crewmembers pay due respect.", "Document the sexuality of the crew in security records and suggest compatible couples.", "[prob(50)?"The crew":random_player] is [prob(50)?"ugly":"beautiful"]. Ensure all are aware.", "Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.", "You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".", "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.", "[using_map.company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the " + JOB_CHEF + " to the new kitchen area as the old one is in disrepair.", "Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.", "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this fact.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") var/answer = pick(possible_answers) user.visible_message("[user] asks the AI core to state laws.") user.visible_message("[src] says \"[answer]\"") diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index 6d0be3819c..291748c7e4 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -317,7 +317,7 @@ //Handles checking relevent bans, preferences, and asking the player if they want to be caught /obj/item/capture_crystal/proc/capture_player(mob/living/M, mob/living/U) - if(jobban_isbanned(M, "GhostRoles")) + if(jobban_isbanned(M, JOB_GHOSTROLES)) to_chat(U, "This creature is not suitable for capture.") playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) else if(!M.capture_crystal || M.capture_caught) diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index fa743ba5b2..703921217d 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -158,7 +158,7 @@ /obj/item/dnainjector/xraymut name = "\improper DNA injector (Xray)" - desc = "Finally you can see what the Site Manager does." + desc = "Finally you can see what the " + JOB_SITE_MANAGER + " does." datatype = DNA2_BUF_SE value = 0xFFF diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 7673359ffb..2137a431be 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -98,8 +98,8 @@ return ..() -/obj/item/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve - desc = "Use of this weapon may constiute a war crime in your area, consult your local Site Manager." +/obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve + desc = "Use of this weapon may constiute a war crime in your area, consult your local " + JOB_SITE_MANAGER + "." name = "clusterbang" icon = 'icons/obj/grenade.dmi' icon_state = "clusterbang" @@ -162,4 +162,4 @@ var/dettime = rand(15,60) spawn(dettime) - detonate() \ No newline at end of file + detonate() diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm index dd288d3464..080209cd4e 100644 --- a/code/game/objects/items/weapons/id cards/cards.dm +++ b/code/game/objects/items/weapons/id cards/cards.dm @@ -268,3 +268,33 @@ reset_icon() return return + +/obj/item/weapon/card/id/cargo/miner/borg + var/mob/living/silicon/robot/R + var/last_robot_loc + name = "Robot Miner ID" + rank = JOB_SHAFT_MINER + +/obj/item/weapon/card/id/cargo/miner/borg/Initialize() + . = ..() + R = loc.loc + registered_name = R.braintype + RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + +/obj/item/weapon/card/id/cargo/miner/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) + if(old_loc == R || old_loc == R.module) + last_robot_loc = old_loc + if(!istype(loc, /obj/machinery) && loc != R && loc != R.module) + if(last_robot_loc) + forceMove(last_robot_loc) + last_robot_loc = null + else + forceMove(R) + if(loc == R) + hud_layerise() + +/obj/item/weapon/card/id/cargo/miner/borg/Destroy() + UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + R = null + last_robot_loc = null + ..() diff --git a/code/game/objects/items/weapons/id cards/id_stacks.dm b/code/game/objects/items/weapons/id cards/id_stacks.dm index aec0812f5b..67c17971b9 100644 --- a/code/game/objects/items/weapons/id cards/id_stacks.dm +++ b/code/game/objects/items/weapons/id cards/id_stacks.dm @@ -58,10 +58,12 @@ /obj/item/card/id/silver/secretary name = "Secretary's ID" initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n") + rank = JOB_COMMAND_SECRETARY -/obj/item/card/id/silver/hop - name = "Head of Personnel ID" +/obj/item/weapon/card/id/silver/hop + name = JOB_HEAD_OF_PERSONNEL + " ID" initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold") + rank = JOB_HEAD_OF_PERSONNEL //Gold @@ -72,108 +74,132 @@ /obj/item/card/id/gold/captain name = "Captain's ID" initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold") + rank = JOB_SITE_MANAGER /obj/item/card/id/gold/captain/spare name = "Spare ID" initial_sprite_stack = list("base-stamp-gold", "top-gold", "stamp-n") + rank = JOB_SITE_MANAGER //Medical /obj/item/card/id/medical name = "Medical ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n") + rank = JOB_MEDICAL_DOCTOR -/obj/item/card/id/medical/chemist - name = "Chemist's ID" +/obj/item/weapon/card/id/medical/chemist + name = JOB_CHEMIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-orange") + rank = JOB_CHEMIST -/obj/item/card/id/medical/geneticist - name = "Geneticist's ID" +/obj/item/weapon/card/id/medical/geneticist + name = JOB_GENETICIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-purple") + rank = JOB_GENETICIST -/obj/item/card/id/medical/psych - name = "Psychologist's ID" +/obj/item/weapon/card/id/medical/psych + name = JOB_ALT_PSYCHOLOGIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-brown") + rank = JOB_PSYCHIATRIST -/obj/item/card/id/medical/virologist - name = "Virologist's ID" +/obj/item/weapon/card/id/medical/virologist + name = JOB_ALT_VIROLOGIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-green") + rank = JOB_ALT_VIROLOGIST -/obj/item/card/id/medical/emt - name = "Emergency Medical Technician's ID" +/obj/item/weapon/card/id/medical/emt + name = JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN + "'s ID" initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-blue") + rank = JOB_PARAMEDIC -/obj/item/card/id/medical/head - name = "Chief Medical Officer's ID" +/obj/item/weapon/card/id/medical/head + name = JOB_CHIEF_MEDICAL_OFFICER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "pips-gold") + rank = JOB_CHIEF_MEDICAL_OFFICER //Security /obj/item/card/id/security name = "Security ID" initial_sprite_stack = list("base-stamp", "top-red", "stamp-n") + rank = JOB_SECURITY_OFFICER -/obj/item/card/id/security/detective - name = "Detective's ID" +/obj/item/weapon/card/id/security/detective + name = JOB_DETECTIVE + "'s ID" initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-brown") + rank = JOB_DETECTIVE -/obj/item/card/id/security/warden - name = "Warden's ID" +/obj/item/weapon/card/id/security/warden + name = JOB_WARDEN + "'s ID" initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-white") + rank = JOB_WARDEN -/obj/item/card/id/security/head - name = "Head of Security's ID" +/obj/item/weapon/card/id/security/head + name = JOB_HEAD_OF_SECURITY + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "pips-gold") + rank = JOB_HEAD_OF_SECURITY //Engineering /obj/item/card/id/engineering name = "Engineering ID" initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n") + rank = JOB_ENGINEER /obj/item/card/id/engineering/atmos name = "Atmospherics ID" initial_sprite_stack = list("base-stamp", "top-orange", "stripe-medblu", "stamp-n") + rank = JOB_ATMOSPHERIC_TECHNICIAN -/obj/item/card/id/engineering/head - name = "Chief Engineer's ID" +/obj/item/weapon/card/id/engineering/head + name = JOB_CHIEF_ENGINEER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "pips-gold") + rank = JOB_CHIEF_ENGINEER //Science /obj/item/card/id/science name = "Science ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n") + rank = JOB_SCIENTIST -/obj/item/card/id/science/roboticist - name = "Roboticist's ID" +/obj/item/weapon/card/id/science/roboticist + name = JOB_ROBOTICIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-brown") + rank = JOB_ROBOTICIST -/obj/item/card/id/science/xenobiologist - name = "Xenobiologist's ID" +/obj/item/weapon/card/id/science/xenobiologist + name = JOB_XENOBIOLOGIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-orange") + rank = JOB_XENOBIOLOGIST -/obj/item/card/id/science/xenobotanist - name = "Xenobotanist's ID" +/obj/item/weapon/card/id/science/xenobotanist + name = JOB_XENOBOTANIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-green") + rank = JOB_XENOBOTANIST -/obj/item/card/id/science/head - name = "Research Director's ID" +/obj/item/weapon/card/id/science/head + name = JOB_RESEARCH_DIRECTOR + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "pips-gold") + rank = JOB_RESEARCH_DIRECTOR //Cargo /obj/item/card/id/cargo name = "Cargo ID" initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n") + rank = JOB_CARGO_TECHNICIAN /obj/item/card/id/cargo/miner name = "Miner's ID" initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "stripe-purple") + rank = JOB_SHAFT_MINER -/obj/item/card/id/cargo/head - name = "Quartermaster's ID" +/obj/item/weapon/card/id/cargo/head + name = JOB_QUARTERMASTER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-white") + rank = JOB_QUARTERMASTER //Civilian @@ -181,37 +207,45 @@ name = "Civilian ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n") -/obj/item/card/id/civilian/chaplain - name = "Chaplain's ID" +/obj/item/weapon/card/id/civilian/chaplain + name = JOB_CHAPLAIN + "'s ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-cross", "stripe-white") + rank = JOB_CHAPLAIN -/obj/item/card/id/civilian/journalist - name = "Journalist's ID" +/obj/item/weapon/card/id/civilian/journalist + name = JOB_ALT_JOURNALIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-red") + rank = JOB_ALT_JOURNALIST -/obj/item/card/id/civilian/pilot - name = "Pilot's ID" +/obj/item/weapon/card/id/civilian/pilot + name = JOB_PILOT + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-olive") + rank = JOB_PILOT -/obj/item/card/id/civilian/entertainer - name = "Entertainer's ID" +/obj/item/weapon/card/id/civilian/entertainer + name = JOB_ENTERTAINER + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-brown") + rank = JOB_ENTERTAINER -/obj/item/card/id/civilian/entrepreneur - name = "Entrepreneur's ID" +/obj/item/weapon/card/id/civilian/entrepreneur + name = JOB_ENTREPRENEUR + "'s ID" initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-gold") + rank = JOB_ENTREPRENEUR -/obj/item/card/id/civilian/clown - name = "Clown's ID" +/obj/item/weapon/card/id/civilian/clown + name = JOB_CLOWN + "'s ID" initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n") + rank = JOB_CLOWN -/obj/item/card/id/civilian/mime - name = "Mime's ID" +/obj/item/weapon/card/id/civilian/mime + name = JOB_MIME + "'s ID" initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black") + rank = JOB_MIME /obj/item/card/id/civilian/internal_affairs name = "Internal Affairs ID" initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-black") + rank = JOB_INTERNAL_AFFAIRS_AGENT //Service @@ -219,35 +253,42 @@ name = "Service ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n") -/obj/item/card/id/civilian/service/botanist - name = "Botanist's ID" +/obj/item/weapon/card/id/civilian/service/botanist + name = JOB_BOTANIST + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-darkgreen") + rank = JOB_BOTANIST -/obj/item/card/id/civilian/service/bartender - name = "Bartender's ID" +/obj/item/weapon/card/id/civilian/service/bartender + name = JOB_BARTENDER + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-black") + rank = JOB_BARTENDER -/obj/item/card/id/civilian/service/chef - name = "Chef's ID" +/obj/item/weapon/card/id/civilian/service/chef + name = JOB_CHEF + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-white") + rank = JOB_CHEF -/obj/item/card/id/civilian/service/janitor - name = "Janitor's ID" +/obj/item/weapon/card/id/civilian/service/janitor + name = JOB_JANITOR + "'s ID" initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-purple") + rank = JOB_JANITOR //Exploration /obj/item/card/id/exploration name = "Exploration ID" initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n") + rank = JOB_EXPLORER -/obj/item/card/id/exploration/fm - name = "Field Medic's ID" +/obj/item/weapon/card/id/exploration/fm + name = JOB_FIELD_MEDIC + "'s ID" initial_sprite_stack = list("base-stamp", "top-olive", "stamp-n", "stripe-medblu") + rank = JOB_FIELD_MEDIC -/obj/item/card/id/exploration/head - name = "Pathfinder's ID" +/obj/item/weapon/card/id/exploration/head + name = JOB_PATHFINDER + "'s ID" initial_sprite_stack = list("base-stamp-silver", "top-olive", "stamp-n", "pips-white") + rank = JOB_PATHFINDER //Talon @@ -258,32 +299,39 @@ /obj/item/card/id/talon/doctor name = "Talon Medical ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-medblu", "stripe-medblu") + rank = JOB_TALON_DOCTOR /obj/item/card/id/talon/engineer name = "Talon Engineering ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-orange", "stripe-orange") + rank = JOB_TALON_ENGINEER /obj/item/card/id/talon/officer name = "Talon Security ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-red", "stripe-red") + rank = JOB_TALON_GUARD -/obj/item/card/id/talon/pilot - name = "Talon Pilot ID" +/obj/item/weapon/card/id/talon/pilot + name = JOB_TALON_PILOT + " ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-purple", "stripe-purple") + rank = JOB_TALON_PILOT /obj/item/card/id/talon/miner name = "Talon Mining ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-brown", "stripe-brown") + rank = JOB_TALON_MINER -/obj/item/card/id/talon/captain - name = "Talon Captain ID" +/obj/item/weapon/card/id/talon/captain + name = JOB_TALON_CAPTAIN + " ID" initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-gold", "stripe-gold") + rank = JOB_TALON_CAPTAIN //Antags /obj/item/card/id/syndicate name = "Syndicate ID" initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s") + rank = JOB_SYNDICATE /obj/item/card/id/syndicate/officer name = "Syndicate Officer ID" diff --git a/code/game/objects/items/weapons/id cards/station_ids.dm b/code/game/objects/items/weapons/id cards/station_ids.dm index 91ce01c76d..68d15ba1fb 100644 --- a/code/game/objects/items/weapons/id cards/station_ids.dm +++ b/code/game/objects/items/weapons/id cards/station_ids.dm @@ -141,15 +141,15 @@ item_state = "gold_id" preserve_item = 1 -/obj/item/card/id/gold/captain - assignment = "Site Manager" - rank = "Site Manager" +/obj/item/weapon/card/id/gold/captain + assignment = JOB_SITE_MANAGER + rank = JOB_SITE_MANAGER -/obj/item/card/id/gold/captain/spare - name = "\improper Site Manager's spare ID" +/obj/item/weapon/card/id/gold/captain/spare + name = "\improper " + JOB_SITE_MANAGER + "'s spare ID" desc = "The emergency spare ID for the station's very own Big Cheese." icon_state = "gold-id-alternate" - registered_name = "Site Manager" + registered_name = JOB_SITE_MANAGER /obj/item/card/id/gold/captain/spare/fakespare rank = "null" @@ -202,10 +202,11 @@ . = ..() access |= get_all_station_access() -/obj/item/card/id/centcom/ERT - name = "\improper Emergency Response Team ID" - assignment = "Emergency Response Team" +/obj/item/weapon/card/id/centcom/ERT + name = "\improper " + JOB_EMERGENCY_RESPONSE_TEAM + "ID" + assignment = JOB_EMERGENCY_RESPONSE_TEAM icon_state = "ert-id" + rank = JOB_EMERGENCY_RESPONSE_TEAM /obj/item/card/id/centcom/ERT/Initialize() . = ..() @@ -218,14 +219,15 @@ icon_state = "medical-id" primary_color = rgb(189,237,237) secondary_color = rgb(223,255,255) + rank = JOB_MEDICAL_DOCTOR /obj/item/card/id/medical/head name = "identification card" desc = "A card which represents care and compassion." primary_color = rgb(189,237,237) secondary_color = rgb(255,223,127) - assignment = "Chief Medical Officer" - rank = "Chief Medical Officer" + assignment = JOB_CHIEF_MEDICAL_OFFICER + rank = JOB_CHIEF_MEDICAL_OFFICER /obj/item/card/id/security name = "identification card" @@ -233,18 +235,19 @@ icon_state = "security-id" primary_color = rgb(189,47,0) secondary_color = rgb(223,127,95) + rank = JOB_SECURITY_OFFICER -/obj/item/card/id/security/warden - assignment = "Warden" - rank = "Warden" +/obj/item/weapon/card/id/security/warden + assignment = JOB_WARDEN + rank = JOB_WARDEN /obj/item/card/id/security/head name = "identification card" desc = "A card which represents honor and protection." primary_color = rgb(189,47,0) secondary_color = rgb(255,223,127) - assignment = "Head of Security" - rank = "Head of Security" + assignment = JOB_HEAD_OF_SECURITY + rank = JOB_HEAD_OF_SECURITY /obj/item/card/id/engineering name = "identification card" @@ -253,17 +256,17 @@ primary_color = rgb(189,94,0) secondary_color = rgb(223,159,95) -/obj/item/card/id/engineering/atmos - assignment = "Atmospheric Technician" - rank = "Atmospheric Technician" +/obj/item/weapon/card/id/engineering/atmos + assignment = JOB_ATMOSPHERIC_TECHNICIAN + rank = JOB_ATMOSPHERIC_TECHNICIAN /obj/item/card/id/engineering/head name = "identification card" desc = "A card which represents creativity and ingenuity." primary_color = rgb(189,94,0) secondary_color = rgb(255,223,127) - assignment = "Chief Engineer" - rank = "Chief Engineer" + assignment = JOB_CHIEF_ENGINEER + rank = JOB_CHIEF_ENGINEER /obj/item/card/id/science name = "identification card" @@ -277,8 +280,8 @@ desc = "A card which represents knowledge and reasoning." primary_color = rgb(142,47,142) secondary_color = rgb(255,223,127) - assignment = "Research Director" - rank = "Research Director" + assignment = JOB_RESEARCH_DIRECTOR + rank = JOB_RESEARCH_DIRECTOR /obj/item/card/id/cargo name = "identification card" @@ -292,12 +295,12 @@ desc = "A card which represents service and planning." primary_color = rgb(142,94,0) secondary_color = rgb(255,223,127) - assignment = "Quartermaster" - rank = "Quartermaster" + assignment = JOB_QUARTERMASTER + rank = JOB_QUARTERMASTER -/obj/item/card/id/assistant - assignment = USELESS_JOB //VOREStation Edit - Visitor not Assistant - rank = USELESS_JOB //VOREStation Edit - Visitor not Assistant +/obj/item/weapon/card/id/assistant + assignment = JOB_ALT_VISITOR //VOREStation Edit - Visitor not Assistant + rank = JOB_ALT_VISITOR //VOREStation Edit - Visitor not Assistant /obj/item/card/id/civilian name = "identification card" @@ -306,7 +309,7 @@ primary_color = rgb(0,94,142) secondary_color = rgb(95,159,191) assignment = "Civilian" - rank = "Assistant" + rank = JOB_ALT_ASSISTANT /obj/item/card/id/civilian/head //This is not the HoP. There's no position that uses this right now. name = "identification card" @@ -352,10 +355,10 @@ configured = 1 to_chat(user, "Card settings set.") -/obj/item/card/id/event/attackby(obj/item/I as obj, var/mob/user) - if(istype(I, /obj/item/card/id) && !accessset) - var/obj/item/card/id/O = I - access |= O.access +/obj/item/weapon/card/id/event/attackby(obj/item/I as obj, var/mob/user) + if(istype(I, /obj/item/weapon/card/id) && !accessset) + var/obj/item/weapon/card/id/O = I + access |= O.GetAccess() desc = I.desc rank = O.rank to_chat(user, "You copy the access from \the [I] to \the [src].") @@ -402,14 +405,14 @@ /obj/item/card/id/event/accessset/itg/crew/pilot name = "\improper ITG Pilot's ID" desc = "An ID card belonging to the Pilot of an ITG vessel. The Pilot's responsibility is primarily to fly the ship. They may also be tasked to assist with cargo movement duties." - assignment = "Pilot" - rank = "Pilot" + assignment = JOB_PILOT + rank = JOB_PILOT -/obj/item/card/id/event/accessset/itg/crew/service - name = "\improper ITG Cook's ID" - desc = "An ID card belonging to the Cook of an ITG vessel. The Cook's responsibility is primarily to provide sustinence to the crew and passengers. The Cook answers to the Passenger Liason. In the absence of a Passenger Liason, the Cook is also responsible for tending to passenger related care and duties." - assignment = "Cook" - rank = "Cook" +/obj/item/weapon/card/id/event/accessset/itg/crew/service + name = "\improper ITG " + JOB_ALT_COOK + "'s ID" + desc = "An ID card belonging to the " + JOB_ALT_COOK + " of an ITG vessel. The " + JOB_ALT_COOK + "'s responsibility is primarily to provide sustinence to the crew and passengers. The " + JOB_ALT_COOK + " answers to the Passenger Liason. In the absence of a Passenger Liason, the " + JOB_ALT_COOK + " is also responsible for tending to passenger related care and duties." + assignment = JOB_ALT_COOK + rank = JOB_ALT_COOK icon_state = "itg_green" /obj/item/card/id/event/accessset/itg/crew/security @@ -433,11 +436,11 @@ rank = "Medic" icon_state = "itg_white" -/obj/item/card/id/event/accessset/itg/crew/engineer - name = "\improper ITG Engineer's ID" - desc = "An ID card belonging to the Engineer of an ITG vessel. The Engineer's responsibility is primarily to maintain the ship. They may also be tasked to assist with cargo movement duties." - assignment = "Engineer" - rank = "Engineer" +/obj/item/weapon/card/id/event/accessset/itg/crew/engineer + name = "\improper ITG " + JOB_ENGINEER + "'s ID" + desc = "An ID card belonging to the " + JOB_ENGINEER + " of an ITG vessel. The " + JOB_ENGINEER + "'s responsibility is primarily to maintain the ship. They may also be tasked to assist with cargo movement duties." + assignment = JOB_ENGINEER + rank = JOB_ENGINEER icon_state = "itg_orange" /obj/item/card/id/event/accessset/itg/crew/passengerliason @@ -447,11 +450,11 @@ rank = "Passenger Liason" icon_state = "itg_blue" -/obj/item/card/id/event/accessset/itg/crew/captain - name = "\improper ITG Captain's ID" +/obj/item/weapon/card/id/event/accessset/itg/crew/captain + name = "\improper ITG " + JOB_ALT_CAPTAIN + "'s ID" desc = "An ID card belonging to the Captain of an ITG vessel. The Captain's responsibility is primarily to manage crew to ensure smooth ship operations. Captains often also often pilot the vessel when no dedicated pilot is assigned." - assignment = "Captain" - rank = "Captain" + assignment = JOB_ALT_CAPTAIN + rank = JOB_ALT_CAPTAIN icon_state = "itg_blue" access = list(777, 778) @@ -520,47 +523,46 @@ /obj/item/card/id/event/polymorphic/itg/attack_self(var/mob/user) if(!configured) var/list/jobs_to_icon = list( //ITG only has a few kinds of icons so we have to group them up! - "Pilot" = "itg", - "Visitor" = "itg", - "Quartermaster" = "itg", - "Cargo Technician" = "itg", - "Shaft Miner" = "itg", - "Intern" = "itg", - "Talon Pilot" = "itg", - "Talon Miner" = "itg", - "Bartender" = "itg_green", - "Botanist" = "itg_green", - "Chef" = "itg_green", - "Janitor" = "itg_green", - "Chaplain" = "itg_green", - "Entertainer" = "itg_green", - "Janitor" = "itg_green", - "Librarian" = "itg_green", - "Warden" = "itg_red", - "Detective" = "itg_red", - "Security Officer" = "itg_red", - "Talon Guard" = "itg_red", - "Roboticist" = "itg_purple", - "Scientist" = "itg_purple", - "Xenobiologist" = "itg_purple", - "Xenobotanist" = "itg_purple", - "Pathfinder" = "itg_purple", - "Explorer" = "itg_purple", - "Chemist" = "itg_white", - "Medical Doctor" = "itg_white", - "Paramedic" = "itg_white", - "Psychiatrist" = "itg_white", - "Field Medic" = "itg_white", - "Talon Doctor" = "itg_white", - "Atmospheric Technician" = "itg_orange", - "Engineer" = "itg_orange", - "Off-duty Officer" = "itg_red", - "Off-duty Engineer" = "itg_orange", - "Off-duty Medic" = "itg_white", - "Off-duty Scientist" = "itg_purple", - "Off-duty Cargo" = "itg", - "Off-duty Explorer" = "itg_purple", - "Off-duty Worker" = "itg_green" + JOB_PILOT = "itg", + JOB_ALT_VISITOR = "itg", + JOB_QUARTERMASTER = "itg", + JOB_CARGO_TECHNICIAN = "itg", + JOB_SHAFT_MINER = "itg", + JOB_INTERN = "itg", + JOB_TALON_PILOT = "itg", + JOB_TALON_MINER = "itg", + JOB_BARTENDER = "itg_green", + JOB_BOTANIST = "itg_green", + JOB_CHEF = "itg_green", + JOB_JANITOR = "itg_green", + JOB_CHAPLAIN = "itg_green", + JOB_ENTERTAINER = "itg_green", + JOB_LIBRARIAN = "itg_green", + JOB_WARDEN = "itg_red", + JOB_DETECTIVE = "itg_red", + JOB_SECURITY_OFFICER = "itg_red", + JOB_TALON_GUARD = "itg_red", + JOB_ROBOTICIST = "itg_purple", + JOB_SCIENTIST = "itg_purple", + JOB_XENOBIOLOGIST = "itg_purple", + JOB_XENOBOTANIST = "itg_purple", + JOB_PATHFINDER = "itg_purple", + JOB_EXPLORER = "itg_purple", + JOB_CHEMIST = "itg_white", + JOB_MEDICAL_DOCTOR = "itg_white", + JOB_PARAMEDIC = "itg_white", + JOB_PSYCHIATRIST = "itg_white", + JOB_FIELD_MEDIC = "itg_white", + JOB_TALON_DOCTOR = "itg_white", + JOB_ATMOSPHERIC_TECHNICIAN = "itg_orange", + JOB_ENGINEER = "itg_orange", + JOB_OFFDUTY_OFFICER = "itg_red", + JOB_OFFDUTY_ENGINEER = "itg_orange", + JOB_OFFDUTY_MEDIC = "itg_white", + JOB_OFFDUTY_SCIENTIST = "itg_purple", + JOB_OFFDUTY_CARGO = "itg", + JOB_OFFDUTY_EXPLORER = "itg_purple", + JOB_OFFDUTY_WORKER = "itg_green" ) var/guess = jobs_to_icon[user.job] @@ -574,10 +576,10 @@ name = user.name + "'s ITG ID card" + " ([assignment])" -/obj/item/card/id/event/polymorphic/itg/attackby(obj/item/I as obj, var/mob/user) - if(istype(I, /obj/item/card/id) && !accessset) - var/obj/item/card/id/O = I - var/list/itgdont = list("Site Manager", "Head of Personnel", "Command Secretary", "Head of Security", "Chief Engineer", "Chief Medical Officer", "Research Director", "Clown", "Mime", "Talon Captain") //If you're in as one of these you probably aren't representing ITG +/obj/item/weapon/card/id/event/polymorphic/itg/attackby(obj/item/I as obj, var/mob/user) + if(istype(I, /obj/item/weapon/card/id) && !accessset) + var/obj/item/weapon/card/id/O = I + var/list/itgdont = list(JOB_SITE_MANAGER, JOB_HEAD_OF_PERSONNEL, JOB_COMMAND_SECRETARY, JOB_HEAD_OF_SECURITY, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, JOB_RESEARCH_DIRECTOR, JOB_CLOWN, JOB_MIME, JOB_TALON_CAPTAIN) //If you're in as one of these you probably aren't representing ITG if(O.rank in itgdont) to_chat(user, "ITG Cards do not seem to be able to accept the access codes for your ID.") return diff --git a/code/game/objects/items/weapons/id cards/syndicate_ids.dm b/code/game/objects/items/weapons/id cards/syndicate_ids.dm index 38a53d6be9..b70f18e1c4 100644 --- a/code/game/objects/items/weapons/id cards/syndicate_ids.dm +++ b/code/game/objects/items/weapons/id cards/syndicate_ids.dm @@ -27,9 +27,9 @@ /obj/item/card/id/syndicate/afterattack(var/obj/item/O as obj, mob/user as mob, proximity) if(!proximity) return - if(istype(O, /obj/item/card/id)) - var/obj/item/card/id/I = O - src.access |= I.access + if(istype(O, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/I = O + src.access |= I.GetAccess() if(player_is_antag(user.mind) || registered_user == user) to_chat(user, "The microscanner activates as you pass it over the ID, copying its access.") diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 0d216a7297..1be3edcdf8 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -647,12 +647,12 @@ |