diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm
index 7e210b513dd..daefb23ef22 100644
--- a/code/game/jobs/job/captain.dm
+++ b/code/game/jobs/job/captain.dm
@@ -83,8 +83,8 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
minimal_player_age = 5
economic_modifier = 7
- access = list(access_heads)
- minimal_access = list(access_heads)
+ access = list(access_heads, access_keycard_auth)
+ minimal_access = list(access_heads, access_keycard_auth)
outfit_type = /decl/hierarchy/outfit/job/secretary
- alt_titles = list("Command Liaison", "Bridge Secretary")
\ No newline at end of file
+ alt_titles = list("Command Liaison", "Bridge Secretary")
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index dc678213011..8bf00b4ace5 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -40,19 +40,19 @@
if(!usr || usr.stat || usr.lying) return
if(scan)
- usr << "You remove \the [scan] from \the [src]."
+ to_chat(usr, "You remove \the [scan] from \the [src].")
scan.forceMove(get_turf(src))
if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human))
usr.put_in_hands(scan)
scan = null
else if(modify)
- usr << "You remove \the [modify] from \the [src]."
+ to_chat(usr, "You remove \the [modify] from \the [src].")
modify.forceMove(get_turf(src))
if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human))
usr.put_in_hands(modify)
modify = null
else
- usr << "There is nothing to remove from the console."
+ to_chat(usr, "There is nothing to remove from the console.")
return
/obj/machinery/computer/card/attackby(obj/item/weapon/card/id/id_card, mob/user)
@@ -82,12 +82,15 @@
/obj/machinery/computer/card/ui_interact(mob/user, ui_key="main", var/datum/nanoui/ui = null, var/force_open = 1)
user.set_machine(src)
+ if(data_core)
+ data_core.get_manifest_list()
+
var/data[0]
data["src"] = "\ref[src]"
data["station_name"] = station_name()
data["mode"] = mode
data["printing"] = printing
- data["manifest"] = data_core ? data_core.get_manifest(0) : null
+ data["manifest"] = PDA_Manifest
data["target_name"] = modify ? modify.name : "-----"
data["target_owner"] = modify && modify.registered_name ? modify.registered_name : "-----"
data["target_rank"] = get_target_rank()
@@ -99,13 +102,16 @@
data["all_centcom_access"] = null
data["regions"] = null
- data["engineering_jobs"] = format_jobs(engineering_positions)
- data["medical_jobs"] = format_jobs(medical_positions)
- data["science_jobs"] = format_jobs(science_positions)
- data["security_jobs"] = format_jobs(security_positions)
- data["cargo_jobs"] = format_jobs(cargo_positions)
- data["civilian_jobs"] = format_jobs(civilian_positions)
- data["centcom_jobs"] = format_jobs(get_all_centcom_jobs())
+ data["jobs"] = list(
+ list("cat" = "Engineering", "jobs" = format_jobs(engineering_positions)),
+ list("cat" = "Medical", "jobs" = format_jobs(medical_positions)),
+ list("cat" = "Science", "jobs" = format_jobs(science_positions)),
+ list("cat" = "Security", "jobs" = format_jobs(security_positions)),
+ list("cat" = "Cargo", "jobs" = format_jobs(cargo_positions)),
+ list("cat" = "Planetside", "jobs" = format_jobs(planet_positions)),
+ list("cat" = "Civilian", "jobs" = format_jobs(civilian_positions)),
+ list("cat" = "CentCom", "jobs" = format_jobs(get_all_centcom_jobs()))
+ )
if (modify && is_centcom())
var/list/all_centcom_access = list()
@@ -209,7 +215,7 @@
jobdatum = J
break
if(!jobdatum)
- usr << "No log exists for this job: [t1]"
+ to_chat(usr, "No log exists for this job: [t1]")
return
access = jobdatum.get_access()
diff --git a/html/changelogs/Atermonera - id_comp.yml b/html/changelogs/Atermonera - id_comp.yml
new file mode 100644
index 00000000000..503495635e5
--- /dev/null
+++ b/html/changelogs/Atermonera - id_comp.yml
@@ -0,0 +1,6 @@
+author: Atermonera
+
+delete-after: True
+changes:
+ - tweak: "ID computer can set command secretary and IAA access"
+ - tweak: "Command secretary has keycard auth. access"
diff --git a/nano/templates/identification_computer.tmpl b/nano/templates/identification_computer.tmpl
index c023b508d51..feb58a705a7 100644
--- a/nano/templates/identification_computer.tmpl
+++ b/nano/templates/identification_computer.tmpl
@@ -1,247 +1,202 @@
{{if data.printing}}
-
The computer is currently busy.
-
-
Printing...
-
-
- Thank you for your patience!
-
+ The computer is currently busy.
+
+
Printing...
+
+
+ Thank you for your patience!
+
{{else}}
- {{:helper.link('Access Modification', 'home', {'choice' : 'mode', 'mode_target' : 0}, !data.mode ? 'disabled' : null)}}
- {{:helper.link('Crew Manifest', 'folder-open', {'choice' : 'mode', 'mode_target' : 1}, data.mode ? 'disabled' : null)}}
- {{:helper.link('Print', 'print', {'choice' : 'print'}, (data.mode || data.has_modify) ? null : 'disabled')}}
+ {{:helper.link('Access Modification', 'home', {'choice' : 'mode', 'mode_target' : 0}, !data.mode ? 'disabled' : null)}}
+ {{:helper.link('Crew Manifest', 'folder-open', {'choice' : 'mode', 'mode_target' : 1}, data.mode ? 'disabled' : null)}}
+ {{:helper.link('Print', 'print', {'choice' : 'print'}, (data.mode || data.has_modify) ? null : 'disabled')}}
- {{if data.mode}}
-
-
Crew Manifest
-
-
- {{:data.manifest}}
-
- {{else}}
-
-
Access Modification
-
+ {{if data.mode}}
+
+
Crew Manifest
+
+
+
+ {{for data.manifest}}
+ {{if value.elems.length}}
+ | {{:value.cat}} |
+ {{for value.elems :itemValue:itemIndex}}
+
+ | {{:itemValue.name}} |
+ {{:itemValue.rank}} |
+ {{:itemValue.active}} |
+
+ {{/for}}
+ {{/if}}
+ {{/for}}
+
+
+ {{else}}
+
+
Access Modification
+
- {{if !data.authenticated}}
- Please insert the IDs into the terminal to proceed.
- {{/if}}
+ {{if !data.authenticated}}
+ Please insert the IDs into the terminal to proceed.
+ {{/if}}
-
-
- Target Identity:
-
-
- {{:helper.link(data.target_name, 'eject', {'choice' : 'modify'})}}
-
-
-
-
- Authorized Identity:
-
-
- {{:helper.link(data.scan_name, 'eject', {'choice' : 'scan'})}}
-
-
-
+
+
+ Target Identity:
+
+
+ {{:helper.link(data.target_name, 'eject', {'choice' : 'modify'})}}
+
+
+
+
+ Authorized Identity:
+
+
+ {{:helper.link(data.scan_name, 'eject', {'choice' : 'scan'})}}
+
+
+
- {{if data.authenticated}}
-
+ {{if data.authenticated}}
+
- {{if data.has_modify}}
-
-
Details
-
+ {{if data.has_modify}}
+
+
Details
+
-
+
-
+
-
-
- Terminations:
-
-
- {{:helper.link('Terminate ' + data.target_owner, 'gear', {'choice' : 'terminate'}, data.target_rank == "Terminated" ? 'disabled' : null, data.target_rank == "Terminated" ? 'disabled' : 'linkDanger')}}
-
-
+
+
+ Terminations:
+
+
+ {{:helper.link('Terminate ' + data.target_owner, 'gear', {'choice' : 'terminate'}, data.target_rank == "Terminated" ? 'disabled' : null, data.target_rank == "Terminated" ? 'disabled' : 'linkDanger')}}
+
+
-
-
Assignment
-
+
+
Assignment
+
-
-
-
-
-
- | Command |
-
-
- | Special |
-
- {{:helper.link("Colony Director", '', {'choice' : 'assign', 'assign_target' : 'Colony Director'}, data.target_rank == 'Colony Director' ? 'disabled' : null)}}
- {{:helper.link("Custom", '', {'choice' : 'assign', 'assign_target' : 'Custom'})}}
- |
-
-
- | Engineering |
-
- {{for data.engineering_jobs}}
- {{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
- {{/for}}
- |
-
-
- | Medical |
-
- {{for data.medical_jobs}}
- {{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
- {{/for}}
- |
-
-
- | Science |
-
- {{for data.science_jobs}}
- {{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
- {{/for}}
- |
-
-
- | Security |
-
- {{for data.security_jobs}}
- {{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
- {{/for}}
- |
-
-
- | Supply |
-
- {{for data.cargo_jobs}}
- {{if index && index % 6 === 0}}
- |
|
- {{/if}}
- {{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
- {{/for}}
- |
-
-
- | Civilian |
-
- {{for data.civilian_jobs}}
- {{if index && index % 6 === 0}}
- |
|
- {{/if}}
- {{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
- {{/for}}
- |
-
- {{if data.centcom_access}}
-
- | CentCom |
-
- {{for data.centcom_jobs}}
- {{if index % 6 === 0}}
- |
|
- {{/if}}
+
+
+
+
+
+ | Special |
+
+ {{:helper.link("Colony Director", '', {'choice' : 'assign', 'assign_target' : 'Colony Director'}, data.target_rank == 'Colony Director' ? 'disabled' : null)}}
+ {{:helper.link("Command Secretary", '', {'choice' : 'assign', 'assign_target' : 'Command Secretary'}, data.target_rank == 'Command Secretary' ? 'disabled' : null)}}
+ {{:helper.link("Internal Affairs Agent", '', {'choice' : 'assign', 'assign_target' : 'Internal Affairs Agent'}, data.target_rank == 'Internal Affairs Agent' ? 'disabled' : null)}}
+ {{:helper.link("Custom", '', {'choice' : 'assign', 'assign_target' : 'Custom'})}}
+ |
+
+ {{for data.jobs}}
+ {{if data.centcom_access || value.cat != "CentCom"}}
+
+ | {{:value.cat}} |
+
+ {{for value.jobs :itemValue:itemIndex}}
+ {{:helper.link(itemValue.display_name, '', {'choice' : 'assign', 'assign_target' : itemValue.job}, data.target_rank == itemValue.job ? 'disabled' : null)}}
+ {{/for}}
+ |
+
+ {{/if}}
+ {{/for}}
+
+
+
- {{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
- {{/for}}
- |
-
- {{/if}}
-
-
-
-
- {{if data.centcom_access}}
-
-
Central Command
-
-
- {{for data.all_centcom_access}}
-
- {{:helper.link(value.desc, '', {'choice' : 'access', 'access_target' : value.ref, 'allowed' : value.allowed}, null, value.allowed ? 'selected' : null)}}
-
- {{/for}}
-
- {{else}}
-
-
{{:data.station_name}}
-
-
- {{for data.regions}}
-
-
{{:value.name}}
- {{for value.accesses :accessValue:accessKey}}
-
- {{:helper.link(accessValue.desc, '', {'choice' : 'access', 'access_target' : accessValue.ref, 'allowed' : accessValue.allowed}, null, accessValue.allowed ? 'selected' : null)}}
-
- {{/for}}
-
- {{/for}}
-
- {{/if}}
- {{/if}}
- {{/if}}
- {{/if}}
+ {{if data.centcom_access}}
+
+
Central Command
+
+
+ {{for data.all_centcom_access}}
+
+ {{:helper.link(value.desc, '', {'choice' : 'access', 'access_target' : value.ref, 'allowed' : value.allowed}, null, value.allowed ? 'selected' : null)}}
+
+ {{/for}}
+
+ {{else}}
+
+
{{:data.station_name}}
+
+
+ {{for data.regions}}
+
+
{{:value.name}}
+ {{for value.accesses :accessValue:accessKey}}
+
+ {{:helper.link(accessValue.desc, '', {'choice' : 'access', 'access_target' : accessValue.ref, 'allowed' : accessValue.allowed}, null, accessValue.allowed ? 'selected' : null)}}
+
+ {{/for}}
+
+
+ {{/for}}
+
+ {{/if}}
+ {{/if}}
+ {{/if}}
+ {{/if}}
{{/if}}