Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds Security Assistants! #1662

Merged
merged 22 commits into from
May 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f1b0df1
Security Assistants!
Absolucy Apr 14, 2024
f1d2b24
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 15, 2024
a5d8dfd
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 16, 2024
48d1f08
Continue work on sec ass
Absolucy Apr 16, 2024
6326582
remove redundant comment
Absolucy Apr 16, 2024
de0fb61
i forgot a quote
Absolucy Apr 16, 2024
2b1a451
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 17, 2024
dab6447
okay should be ready (inb4 i forgot something important)
Absolucy Apr 17, 2024
39d2acc
how did i fuck that up
Absolucy Apr 17, 2024
fa41c93
i don't care about kilo
Absolucy Apr 17, 2024
88cb506
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 18, 2024
e420438
new doohickey sprite by cannibalhunter
Absolucy Apr 18, 2024
2c747ca
Fix typo
Absolucy Apr 18, 2024
96b5e20
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 23, 2024
58e27ec
Add alt titles + crew monitor ordering
Absolucy Apr 23, 2024
10e162e
weh
Absolucy Apr 23, 2024
7337c3b
outfit changes
Absolucy Apr 23, 2024
aeb3437
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 1, 2024
b4f06b9
secass trims + hud
Absolucy May 1, 2024
ffa4cbc
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 1, 2024
889d265
Ensure secass can't be antag
Absolucy May 1, 2024
c675cc8
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
675 changes: 350 additions & 325 deletions _maps/map_files/BoxStation/BoxStation.dmm

Large diffs are not rendered by default.

1,498 changes: 758 additions & 740 deletions _maps/map_files/Deltastation/DeltaStation2.dmm

Large diffs are not rendered by default.

1,039 changes: 526 additions & 513 deletions _maps/map_files/IceBoxStation/IceBoxStation.dmm

Large diffs are not rendered by default.

636 changes: 323 additions & 313 deletions _maps/map_files/MetaStation/MetaStation.dmm

Large diffs are not rendered by default.

612 changes: 306 additions & 306 deletions _maps/map_files/NorthStar/north_star.dmm

Large diffs are not rendered by default.

842 changes: 423 additions & 419 deletions _maps/map_files/tramstation/tramstation.dmm

Large diffs are not rendered by default.

15 changes: 9 additions & 6 deletions code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -290,8 +290,8 @@
ACCESS_COURT, \
ACCESS_CREMATORIUM, \
ACCESS_DETECTIVE, \
ACCESS_ENGINE_EQUIP, \
ACCESS_ENGINEERING, \
ACCESS_ENGINE_EQUIP, \
ACCESS_EXTERNAL_AIRLOCKS, \
ACCESS_GENETICS, \
ACCESS_HYDROPONICS, \
Expand All @@ -300,11 +300,11 @@
ACCESS_LAWYER, \
ACCESS_LIBRARY, \
ACCESS_MAINT_TUNNELS, \
ACCESS_MECH_MINING, \
ACCESS_MECH_ENGINE, \
ACCESS_MECH_MEDICAL, \
ACCESS_MECH_SECURITY, \
ACCESS_MECH_MINING, \
ACCESS_MECH_SCIENCE, \
ACCESS_MECH_ENGINE, \
ACCESS_MECH_SECURITY, \
ACCESS_MEDICAL, \
ACCESS_MINERAL_STOREROOM, \
ACCESS_MINING, \
Expand All @@ -313,6 +313,7 @@
ACCESS_NETWORK, \
ACCESS_ORDNANCE, \
ACCESS_ORDNANCE_STORAGE, \
ACCESS_PERMABRIG, \
ACCESS_PHARMACY, \
ACCESS_PLUMBING, \
ACCESS_PSYCHOLOGY, \
Expand All @@ -328,7 +329,7 @@
ACCESS_VIROLOGY, \
ACCESS_WEAPONS, \
ACCESS_XENOBIOLOGY, \
)
) /* monkestation edit: add permabrig-only access */

/// Command staff/secure accesses, think bridge/armoury, ai_upload, notably access to modify ID cards themselves. Do not use direct, access via SSid_access.get_flag_access_list(ACCESS_FLAG_COMMAND)
#define COMMAND_ACCESS list( \
Expand Down Expand Up @@ -434,9 +435,11 @@
ACCESS_DETECTIVE, \
ACCESS_HOS, \
ACCESS_MECH_SECURITY, \
ACCESS_PERMABRIG, \
ACCESS_SECURITY, \
ACCESS_WEAPONS, \
)
) /* monkestation edit: add permabrig-only access */

/// Name for the Medbay region.
#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.
Expand Down
3 changes: 2 additions & 1 deletion code/__DEFINES/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,8 @@
#define JOB_DISPLAY_ORDER_WARDEN 33
#define JOB_DISPLAY_ORDER_DETECTIVE 34
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 35
#define JOB_DISPLAY_ORDER_PRISONER 36
#define JOB_DISPLAY_ORDER_SECURITY_ASSISTANT 36 // monkestation edit: security assistants
#define JOB_DISPLAY_ORDER_PRISONER 37


#define DEPARTMENT_UNASSIGNED "No Department"
Expand Down
5 changes: 5 additions & 0 deletions code/__DEFINES/~monkestation/access.dm
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
/// Access to clockwork cult stuff.
//Special, for anything that's basically internal
#define ACCESS_CLOCKCULT "clockcult"

/// Access to permabrig. [ACCESS_BRIG] also grants permabrig access, this is just for ONLY permabrig accesss, for security assistants.
#define ACCESS_PERMABRIG "permabrig"
1 change: 1 addition & 0 deletions code/__DEFINES/~monkestation/atom_hud.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define SECHUD_SECURITY_ASSISTANT "hudsecass"
1 change: 1 addition & 0 deletions code/__DEFINES/~monkestation/jobs.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define JOB_SECURITY_ASSISTANT "Security Assistant"
1 change: 1 addition & 0 deletions code/controllers/subsystem/id_access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,7 @@ SUBSYSTEM_DEF(id_access)
desc_by_access["[ACCESS_CENT_CAPTAIN]"] = "Code Gold"
desc_by_access["[ACCESS_CENT_BAR]"] = "Code Scotch"
desc_by_access["[ACCESS_BIT_DEN]"] = "Bitrunner Den"
desc_by_access["[ACCESS_PERMABRIG]"] = "Permabrig" // monkestation edit: add permabrig-only access

/**
* Returns the access bitflags associated with any given access level.
Expand Down
3 changes: 3 additions & 0 deletions code/datums/id_trim/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,7 @@
ACCESS_SERVICE,
ACCESS_SHIPPING,
ACCESS_WEAPONS,
ACCESS_PERMABRIG, // monkestation edit: add permabrig-only access
)
minimal_wildcard_access = list(
ACCESS_HOS,
Expand Down Expand Up @@ -939,6 +940,7 @@
ACCESS_MINERAL_STOREROOM,
ACCESS_SECURITY,
ACCESS_WEAPONS,
ACCESS_PERMABRIG, // monkestation edit: add permabrig-only access
)
extra_access = list(
ACCESS_DETECTIVE,
Expand Down Expand Up @@ -1151,6 +1153,7 @@
ACCESS_MINERAL_STOREROOM,
ACCESS_SECURITY,
ACCESS_WEAPONS,
ACCESS_PERMABRIG, // monkestation edit: add permabrig-only access
) // See /datum/job/warden/get_access()
extra_access = list(
ACCESS_DETECTIVE,
Expand Down
3 changes: 3 additions & 0 deletions code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
JOB_HEAD_OF_PERSONNEL,
JOB_HEAD_OF_SECURITY,
JOB_SECURITY_OFFICER,
JOB_SECURITY_ASSISTANT,
JOB_WARDEN,
)
restricted_roles = list(
Expand Down Expand Up @@ -104,6 +105,7 @@
JOB_QUARTERMASTER,
JOB_RESEARCH_DIRECTOR,
JOB_SECURITY_OFFICER,
JOB_SECURITY_ASSISTANT,
JOB_WARDEN,
)
enemy_roles = list(
Expand Down Expand Up @@ -201,6 +203,7 @@
JOB_HEAD_OF_SECURITY,
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_SECURITY_ASSISTANT,
JOB_WARDEN,
)
restricted_roles = list(
Expand Down
2 changes: 2 additions & 0 deletions code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@
JOB_HEAD_OF_SECURITY,
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_SECURITY_ASSISTANT,
JOB_WARDEN,
)
restricted_roles = list(
Expand Down Expand Up @@ -437,6 +438,7 @@
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_WARDEN,
JOB_SECURITY_ASSISTANT,
)
restricted_roles = list(
JOB_AI,
Expand Down
3 changes: 3 additions & 0 deletions code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_WARDEN,
JOB_SECURITY_ASSISTANT,
)
restricted_roles = list(
JOB_AI,
Expand Down Expand Up @@ -170,6 +171,7 @@
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_WARDEN,
JOB_SECURITY_ASSISTANT,
)
restricted_roles = list(
JOB_AI,
Expand Down Expand Up @@ -226,6 +228,7 @@
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_WARDEN,
JOB_SECURITY_ASSISTANT,
)
restricted_roles = list(
JOB_AI,
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/computer/crew.dm
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
JOB_SECURITY_OFFICER_SCIENCE = 15,
JOB_SECURITY_OFFICER_SUPPLY = 16,
JOB_DETECTIVE = 17,
JOB_SECURITY_ASSISTANT = 18, // monkestation edit: add security assistants
// 20-29: Medbay
JOB_CHIEF_MEDICAL_OFFICER = 20,
JOB_CHEMIST = 21,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@
/datum/job/bartender,
/datum/job/cook,
/datum/job/curator,
// Monkestation edit: security assistants
/datum/job/security_assistant,
)

/datum/traitor_objective/destroy_heirloom/rare
Expand Down
1 change: 1 addition & 0 deletions code/modules/vending/security.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
/obj/item/clothing/head/guardmanhelmet = 1, //monkestation edit: Guardman
/obj/item/clothing/under/guardmanuniform = 1, //monkestation edit: Guardman
/obj/item/clothing/suit/armor/guardmanvest = 1, //monkestation edit: Guardman
/obj/item/citationinator = 3 // monkestation edit: security assistants
)
refill_canister = /obj/item/vending_refill/security
default_price = PAYCHECK_CREW
Expand Down
Binary file modified icons/mob/huds/hud.dmi
Binary file not shown.
Binary file modified icons/obj/card.dmi
Binary file not shown.
3 changes: 3 additions & 0 deletions monkestation/code/game/objects/effects/landmark.dm
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,6 @@
/obj/effect/landmark/navigate_destination/centcom/dresser
location = "Dressing Room"

/obj/effect/landmark/start/security_assistant
name = "Security Assistant"
icon_state = "Security Officer"
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
/datum/job/paramedic,
// Service
/datum/job/cook,
// Monkestation edit: security assistants
/datum/job/security_assistant,
)
alive_bonus = 4

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// Command
JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER,
// Security
JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE,
JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_SECURITY_ASSISTANT,
// Curator
JOB_CURATOR,
)
Expand Down Expand Up @@ -63,7 +63,7 @@
protected_roles = list(
JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY,
JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE,
JOB_CURATOR,
JOB_CURATOR, JOB_SECURITY_ASSISTANT,
)
restricted_roles = list(JOB_AI, JOB_CYBORG, "Positronic Brain")
required_candidates = 1
Expand Down Expand Up @@ -112,7 +112,7 @@
protected_roles = list(
JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY,
JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE,
JOB_CURATOR,
JOB_CURATOR, JOB_SECURITY_ASSISTANT,
)
restricted_roles = list(JOB_AI, JOB_CYBORG)
required_candidates = 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ GLOBAL_LIST_INIT(monster_antagonist_types, list(
JOB_HEAD_OF_SECURITY,
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_SECURITY_ASSISTANT,
JOB_WARDEN,
JOB_CHIEF_ENGINEER,
JOB_CHIEF_MEDICAL_OFFICER,
Expand Down
91 changes: 91 additions & 0 deletions monkestation/code/modules/jobs/job_types/security_assistant.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/datum/job/security_assistant
title = JOB_SECURITY_ASSISTANT
description = "Fine people for trivial things. Be an glorified hall monitor."
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
department_head = list(JOB_HEAD_OF_SECURITY)
faction = FACTION_STATION
total_positions = 5
spawn_positions = 5
supervisors = "the Head of Security, the Warden, and any proper security officers"
minimal_player_age = 7
exp_requirements = 300
exp_required_type = EXP_TYPE_CREW
exp_granted_type = EXP_TYPE_CREW
config_tag = "SECURITY_ASSISTANT"

outfit = /datum/outfit/job/security_assistant
plasmaman_outfit = /datum/outfit/plasmaman/security

paycheck = PAYCHECK_CREW
paycheck_department = ACCOUNT_SEC

liver_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)

display_order = JOB_DISPLAY_ORDER_SECURITY_ASSISTANT
bounty_types = CIV_JOB_SEC
departments_list = list(/datum/job_department/security)

family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec)

mail_goodies = list(
/obj/item/food/donut/caramel = 10,
/obj/item/food/donut/matcha = 10,
/obj/item/food/donut/blumpkin = 5
)
rpg_title = "Guard"
job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN

alt_titles = list(
"Security Assistant",
"Deputy",
"Hall Monitor",
"Assistant Officer",
"Professional Snitch"
)

/datum/outfit/job/security_assistant
name = "Security Assistant"
jobtype = /datum/job/security_assistant

id_trim = /datum/id_trim/job/security_assistant
uniform = /obj/item/clothing/under/rank/security/officer/grey
backpack_contents = list(
/obj/item/restraints/handcuffs/cable/zipties = 1,
/obj/item/reagent_containers/spray/pepper = 1
)
belt = /obj/item/modular_computer/pda/security
ears = /obj/item/radio/headset/headset_sec
shoes = /obj/item/clothing/shoes/sneakers/black
l_pocket = /obj/item/citationinator
r_pocket = /obj/item/assembly/flash/handheld
glasses = /obj/item/clothing/glasses/hud/security
gloves = /obj/item/clothing/gloves/tackler/dolphin

backpack = /obj/item/storage/backpack/security
satchel = /obj/item/storage/backpack/satchel/sec
duffelbag = /obj/item/storage/backpack/duffelbag/sec

box = /obj/item/storage/box/survival/security

implants = list(/obj/item/implant/mindshield) // i think this is stupid but this was apparently agreed upon ~lucy

/datum/id_trim/job/security_assistant
assignment = "Security Assistant"
trim_state = "trim_secass"
department_color = COLOR_SECURITY_RED
subdepartment_color = COLOR_SECURITY_RED
sechud_icon_state = SECHUD_SECURITY_ASSISTANT
minimal_access = list(
ACCESS_BRIG_ENTRANCE,
ACCESS_SECURITY,
ACCESS_PERMABRIG
)
extra_access = list(
ACCESS_MAINT_TUNNELS
)
template_access = list(
ACCESS_CAPTAIN,
ACCESS_CHANGE_IDS,
ACCESS_HOS
)
job = /datum/job/security_assistant
4 changes: 4 additions & 0 deletions monkestation/code/modules/mapping/access_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,7 @@

/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/west_offset
offset_dir = WEST

/obj/effect/mapping_helpers/airlock/access/any/security/permabrig/get_access()
. = ..()
. += list(ACCESS_PERMABRIG, ACCESS_BRIG)
Loading
Loading