diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index ed4db359b58..b139ef6713b 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -28,6 +28,8 @@ #define ACCESS_ALL_PERSONAL_LOCKERS "all_personal_lockers" /// Access used for Access-Changing Programs, this one will unlock all options that can be ever given via that program. #define ACCESS_CHANGE_IDS "change_ids" +/// Access the PDA shopping app checks for to see if you can only request or place orders immediately +#define ACCESS_BUDGET "department_budget" /// Access used for the Captain's personal quarters in mapping, as well as what allows one to order emergency shuttles. #define ACCESS_CAPTAIN "captain" /// Access used for the Head of Personnel's personal quarters in mapping, as well as the security console and other HoP-related things. @@ -296,6 +298,7 @@ ACCESS_BIT_DEN, \ ACCESS_BRIG, \ ACCESS_BRIG_ENTRANCE, \ + ACCESS_BUDGET, \ ACCESS_CARGO, \ ACCESS_CHAPEL_OFFICE, \ ACCESS_CONSTRUCTION, \ @@ -351,6 +354,7 @@ ACCESS_AI_UPLOAD, \ ACCESS_ALL_PERSONAL_LOCKERS, \ ACCESS_ARMORY, \ + ACCESS_BUDGET, \ ACCESS_CHANGE_IDS, \ ACCESS_COMMAND, \ ACCESS_EVA, \ @@ -430,6 +434,7 @@ /// Used to seed the accesses_by_region list in SSid_access. A list of general service accesses that are overseen by the HoP. #define REGION_ACCESS_GENERAL list( \ ACCESS_BAR, \ + ACCESS_BUDGET, \ ACCESS_CHAPEL_OFFICE, \ ACCESS_CREMATORIUM, \ ACCESS_HYDROPONICS, \ @@ -447,6 +452,7 @@ ACCESS_ARMORY, \ ACCESS_BRIG, \ ACCESS_BRIG_ENTRANCE, \ + ACCESS_BUDGET, \ ACCESS_COURT, \ ACCESS_DETECTIVE, \ ACCESS_HOS, \ @@ -458,6 +464,7 @@ #define REGION_MEDBAY "Medbay" /// Used to seed the accesses_by_region list in SSid_access. A list of all medbay regional accesses that are overseen by the CMO. #define REGION_ACCESS_MEDBAY list( \ + ACCESS_BUDGET, \ ACCESS_CMO, \ ACCESS_MECH_MEDICAL, \ ACCESS_MEDICAL, \ @@ -475,6 +482,7 @@ /// Used to seed the accesses_by_region list in SSid_access. A list of all research regional accesses that are overseen by the RD. #define REGION_ACCESS_RESEARCH list( \ ACCESS_AI_UPLOAD, \ + ACCESS_BUDGET, \ ACCESS_GENETICS, \ ACCESS_MECH_SCIENCE, \ ACCESS_MINISAT, \ @@ -493,6 +501,7 @@ #define REGION_ACCESS_ENGINEERING list( \ ACCESS_ATMOSPHERICS, \ ACCESS_AUX_BASE, \ + ACCESS_BUDGET, \ ACCESS_CE, \ ACCESS_CONSTRUCTION, \ ACCESS_ENGINEERING, \ @@ -509,6 +518,7 @@ /// Used to seed the accesses_by_region list in SSid_access. A list of all cargo regional accesses that are overseen by the HoP. #define REGION_ACCESS_SUPPLY list( \ ACCESS_BIT_DEN, \ + ACCESS_BUDGET, \ ACCESS_CARGO, \ ACCESS_MECH_MINING, \ ACCESS_MINERAL_STOREROOM, \ @@ -524,6 +534,7 @@ #define REGION_ACCESS_COMMAND list( \ ACCESS_AI_UPLOAD, \ ACCESS_ALL_PERSONAL_LOCKERS, \ + ACCESS_BUDGET, \ ACCESS_CAPTAIN, \ ACCESS_CHANGE_IDS, \ ACCESS_COMMAND, \ diff --git a/code/controllers/subsystem/networks/id_access.dm b/code/controllers/subsystem/networks/id_access.dm index 548d892ce81..94793f31114 100644 --- a/code/controllers/subsystem/networks/id_access.dm +++ b/code/controllers/subsystem/networks/id_access.dm @@ -273,6 +273,7 @@ SUBSYSTEM_DEF(id_access) desc_by_access[ACCESS_AI_UPLOAD] = "AI Chambers" desc_by_access[ACCESS_TELEPORTER] = "Teleporter" desc_by_access[ACCESS_EVA] = "EVA" + desc_by_access[ACCESS_BUDGET] = "Department Budget" desc_by_access[ACCESS_COMMAND] = "Command" desc_by_access[ACCESS_CAPTAIN] = "Captain" desc_by_access[ACCESS_ALL_PERSONAL_LOCKERS] = "Personal Lockers" diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm index e15d5fecff2..eb9f063d64f 100644 --- a/code/datums/id_trim/jobs.dm +++ b/code/datums/id_trim/jobs.dm @@ -291,6 +291,7 @@ subdepartment_color = COLOR_CARGO_BROWN sechud_icon_state = SECHUD_CARGO_TECHNICIAN minimal_access = list( + ACCESS_BUDGET, ACCESS_CARGO, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MINING, @@ -375,6 +376,7 @@ ACCESS_ATMOSPHERICS, ACCESS_AUX_BASE, ACCESS_BRIG_ENTRANCE, + ACCESS_BUDGET, ACCESS_CE, ACCESS_COMMAND, ACCESS_CONSTRUCTION, @@ -418,6 +420,7 @@ extra_wildcard_access = list() minimal_access = list( ACCESS_BRIG_ENTRANCE, + ACCESS_BUDGET, ACCESS_COMMAND, ACCESS_KEYCARD_AUTH, ACCESS_PLUMBING, @@ -634,6 +637,7 @@ ACCESS_AUX_BASE, ACCESS_BAR, ACCESS_BRIG_ENTRANCE, + ACCESS_BUDGET, ACCESS_CARGO, ACCESS_CHAPEL_OFFICE, ACCESS_CHANGE_IDS, @@ -692,6 +696,7 @@ ACCESS_BIT_DEN, ACCESS_BRIG, ACCESS_BRIG_ENTRANCE, + ACCESS_BUDGET, ACCESS_CARGO, ACCESS_COMMAND, ACCESS_CONSTRUCTION, @@ -951,6 +956,7 @@ minimal_access = list( ACCESS_AUX_BASE, ACCESS_BIT_DEN, + ACCESS_BUDGET, ACCESS_CARGO, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MINING, @@ -994,6 +1000,7 @@ ACCESS_AI_UPLOAD, ACCESS_AUX_BASE, ACCESS_BRIG_ENTRANCE, + ACCESS_BUDGET, ACCESS_COMMAND, ACCESS_CONSTRUCTION, ACCESS_EVA, @@ -1335,6 +1342,7 @@ ACCESS_MINERAL_STOREROOM, ACCESS_SECURITY, ACCESS_WEAPONS, + ACCESS_BUDGET, ) // See /datum/job/warden/get_access() extra_access = list( ACCESS_DETECTIVE, diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/code/modules/modular_computers/computers/item/role_tablet_presets.dm index 8f046748514..87f18a285d4 100644 --- a/code/modules/modular_computers/computers/item/role_tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/role_tablet_presets.dm @@ -133,6 +133,7 @@ starting_programs = list( /datum/computer_file/program/records/security, /datum/computer_file/program/robocontrol, + /datum/computer_file/program/budgetorders, ) /** diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index 6e4651e8bfa..f17a6337380 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -67,7 +67,7 @@ var/obj/item/card/id/id_card = computer.stored_id?.GetID() if(id_card?.registered_account) buyer = SSeconomy.get_dep_account(id_card?.registered_account.account_job.paycheck_department) - if((ACCESS_COMMAND in id_card.access)) + if((ACCESS_BUDGET in id_card.access)) requestonly = FALSE can_approve_requests = TRUE // If buyer is a departmental budget, replaces "Cargo" with that budget - we're not using the cargo budget here