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

Patch 0 - Bugfixes #4

Merged
merged 10 commits into from
Mar 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,7 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)

#define JOB_UACM_RDML "UACM Read Admiral (lower half)"
#define JOB_UACM_CMISRS_LT "CMISRS Intelligence Liaison"
#define JOB_UACM_PSTENG "UACM Station Engineer"


#define JOB_PREDATOR "Predator"
Expand Down
2 changes: 1 addition & 1 deletion code/game/area/ovpst.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
// soundscape_playlist = list('sound/effects/xylophone1.ogg', 'sound/effects/xylophone2.ogg', 'sound/effects/xylophone3.ogg')
ambience_exterior = AMBIENCE_ALMAYER
ceiling_muffle = FALSE
requires_power = TRUE
requires_power = FALSE
unlimited_power = TRUE

/area/ovpst/airlock
Expand Down
4 changes: 4 additions & 0 deletions code/game/jobs/job/uacm/admin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@
/datum/job/uacm/cmisrs_lt
title = JOB_UACM_CMISRS_LT
gear_preset = /datum/equipment_preset/uacm/cmisrs_lt

/datum/job/uacm/psteng
title = JOB_UACM_PSTENG
gear_preset = /datum/equipment_preset/uacm/psteng
28 changes: 26 additions & 2 deletions code/game/machinery/doors/multi_tile.dm
Original file line number Diff line number Diff line change
Expand Up @@ -578,8 +578,32 @@
desc_lore = "The so called 'general access' airlock is probably the most commonly used one in the galaxy, which is also why airlocks with this access level typically are the ones in their factory default colors, like this one."
req_access = list(ACCESS_SP_OVPST_GENERAL_DEFAULT)
icon = 'icons/obj/structures/doors/2x1comdoor.dmi'
opacity = FALSE
glass = TRUE
opacity = TRUE
glass = FALSE

/obj/structure/machinery/door/airlock/multi_tile/uacm/general/admin
req_access = list(ACCESS_SP_ADMIN)

/obj/structure/machinery/door/airlock/multi_tile/uacm/general/admin/elevator_inner
name = "elevator door"
desc = "A heavy looking metal door."
desc_lore = "Since time immemorial, people have taken great effort not to fall out of elevators in transit. These doors are one such method. Simple, yet effective. Spaceship freight elevators have not changed the game - people still hate falling down elevator shafts."
req_access = list()
icon = 'icons/obj/structures/doors/4x1_elevator.dmi'
icon_state = "door_closed"
width = 4
openspeed = 22
opacity = TRUE
glass = FALSE

/obj/structure/machinery/door/airlock/multi_tile/uacm/general/admin/elevator_outer
name = "elevator door"
desc = "A heavy looking metal door with an equally heavy looking glass panel that lets you peek inside."
desc_lore = "Since time immemorial, people have taken great effort not to fall out of elevators in transit. These doors are one such method. Simple, yet effective. Spaceship freight elevators have not changed the game - people still hate falling down elevator shafts."
req_access = list()
icon = 'icons/obj/structures/doors/4x1_elevator_access.dmi'
icon_state = "door_closed"
width = 4
openspeed = 22
opacity = FALSE
glass = TRUE
8 changes: 3 additions & 5 deletions code/game/objects/items/cards_ids.dm
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,6 @@
item_state = "dogtag"
pinned_on_uniform = FALSE
var/dogtag_taken = FALSE
var/list/rfid //UACM Rfid chips


/obj/item/card/id/dogtag/get_examine_text(mob/user)
Expand All @@ -373,26 +372,25 @@

/obj/item/card/id/dogtag/attackby(obj/item/W as obj, mob/user as mob)

if ( !(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER) || (istype(W, /obj/item/device/encryptionkey)) ))
if (!((HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) || (istype(W, /obj/item/device/uacmrfid))))
to_chat(user, SPAN_WARNING("You have no idea how to combine these two together."))
return

if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER))
var/turf/T = get_turf(user)
if(!T)
to_chat(user, "You cannot do it here.")
return
var/removed_rfid = FALSE
for (var/obj/item/device/uacmrfid/key in rfid)
for (var/obj/item/device/uacmrfid/key in contents)
key.forceMove(T)
rfid -= key
removed_rfid = TRUE
if(removed_rfid)
to_chat(user, SPAN_NOTICE("You wedge the RFID chip from the slot on the back of the dogtags."))

if(istype(W, /obj/item/device/uacmrfid))
if(user.drop_held_item())
W.forceMove(src)
rfid += W
to_chat(user, SPAN_NOTICE("The RFID slots into the dog tag with a click."))
return
/obj/item/dogtag
Expand Down
14 changes: 7 additions & 7 deletions code/game/objects/items/devices/uacmrfid.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@
var/set_name
var/set_rank

/obj/item/device/uacmrfid/attack_self()
/obj/item/device/uacmrfid/attack_self(mob/user)
..()
if(!set_name)
set_name = tgui_input_text (usr, "Name not found. Setting:", "Name:", max_length = MAX_MESSAGE_LEN, timeout = 0)
if(!set_name) return
if(!set_rank)
set_rank = tgui_input_text (usr, "Rank not found. Setting:", "Rank:", max_length = MAX_MESSAGE_LEN, timeout = 0)
if(!set_rank) return
if(set_name && set_rank && icon_state == "rfid")
name = "set UACM RFID chip"
icon_state = "rfid_set"
desc = "A small chip with what looks like a capsule with a translucent, slightly blue colored liquid in the middle. The liquid appears to be swirling lazily and gives of the slightest of glows, only visible in almost absolute darkness."
desc_lore = "The UACM using RFID chips as ways of tagging their crews for on-board AIs is fairly common practice. This chip utilizes a small amount of Liquid Data, which is a prototype solution implemented currently only on the PST. This one seems to have been set to someone's biometrics and is very likely to engage an alarm if pried apart from its designated dog tags for too long."
if(!set_name)
set_name = tgui_input_text (src, "Name not found. Setting:", "Name:", max_length = MAX_MESSAGE_LEN, timeout = 0)
if(!set_name) return
if(!set_rank)
set_rank = tgui_input_text (src, "Rank not found. Setting:", "Rank:", max_length = MAX_MESSAGE_LEN, timeout = 0)
if(!set_rank) return
return
2 changes: 2 additions & 0 deletions code/game/objects/items/sectorpatrol/cargo_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@
name = "book"
desc = "Sheets of paper with text and images bound together with a soft cover material."
desc_lore = "The printed word industry was quite literally saved by the sudden explosion of intergalactic travel. For the longest time, the written word remained the most trusted way to transfer information, news, and entertainment among the colonies. The ascent of the Civ, Mil and Corp Nets following the Colony Wars meant that most colonists with a permanent home got all these directly from Earth via electronic devices. Physical books, however, are still collected, used, and cherished by Spacers, who often find themselves out of the range of Liquid Data uplinks and can't sync with any of the general networks. Most colonies maintain a small 'printing' facility for visiting spacers, often offering access to a shared galaxy spanning repository from which any book can be accessed and printed on-site for a fee. Most books found on spaceships are likely to have been created this way. Using the book while its in your active hand will let you scan it for information, if there is any to gain."
icon = 'icons/obj/items/sp_cargo.dmi'
icon_state = "book"
flags_item = NOBLUDGEON
var/book_searched = 0
Expand All @@ -125,6 +126,7 @@
name = "bound notebook"
desc = "Handwritten notes printed on sheets of paper, bound together with a soft cover, much like a book."
desc_lore = "Notebook scanning is a relatively new service offered in the Neroid Sector for the past decade or so and pioneered by a small group of colonists calling themselves 'Bookworms'. The Bookworms formed a formal Corporation under the Corporate Standard and are the exclusive patent holders and distributors of scanner technology that seemingly seamlessly and without error scans even the most illegible of handwriting, parses and edits them into a standardized colony print format, uploads them to a shared, global, Liquid Data based repository and prints it out in the same way colony books are created, preserving the knowledge, musings, vulgar poetry and whatever else bored spacers write and doodle into their personal notebooks. Using the notebook while its in your active hand will let you scan it for information, if there is any to gain."
icon = 'icons/obj/items/sp_cargo.dmi'
icon_state = "book_rough"
flags_item = NOBLUDGEON
var/book_searched = 0
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
/obj/structure/eventterminal/admin_event_terminal
name = "local network terminal"
desc = "A standard computer terminal with the words 'LNT' imprinted on its side. Activated by standing in its proximity. It appears to be in standby mode."
desc_lore = "Local Network Terminals typically regulate local functions of a given area or are used to interface with bigger systems on a ship or installation. They distinction technically means that the terminal interfaces with the local AI somehow, but few outside of systems engineers use the term for its actual intended purpose, sometimes mistaking other terminal types for LNTs."
icon = 'icons/obj/structures/machinery/clio_term.dmi'
plane = GAME_PLANE //These likely can be split since they arent complicated
// req_access = list(ACCESS_SP_ADMIN)
plane = GAME_PLANE
req_access = list(ACCESS_SP_ADMIN)

/obj/structure/eventterminal/admin_event_terminal/attack_hand(mob/user as mob)

Expand Down
86 changes: 58 additions & 28 deletions code/game/objects/structures/sectorpatrol/endpoint/002.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,14 @@
item_serial = "UACM-OVPST-D31-CARINT"

/obj/structure/eventterminal/puzzle02/cargoparse/attack_hand(mob/user as mob)
var/user_loc_start = get_turf(user)
if(!puzzlebox_user)
puzzlebox_user = usr.real_name
puzzlebox_user_loc = get_turf(usr)
var/user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
if(puzzlebox_user != usr.real_name)
for (var/mob/living/carbon/human/h in range(2, src))
if (h.real_name == puzzlebox_user)
Expand Down Expand Up @@ -57,8 +62,8 @@
terminal_speak("-XOXO Aly.")
puzzlebox_parser_mode = "HOME_INPUT"
if (puzzlebox_parser_mode == "HOME_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -153,8 +158,8 @@
terminal_speak("LIST to list available modes, HELP for help screen, EXIT to exit.")
puzzlebox_parser_mode = "MANIFEST_INPUT"
if (puzzlebox_parser_mode == "MANIFEST_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -288,8 +293,8 @@
terminal_speak("LIST to list available modes, HELP for help screen, EXIT to exit.")
puzzlebox_parser_mode = "MESSAGE_INPUT"
if (puzzlebox_parser_mode == "MESSAGE_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -386,9 +391,14 @@
item_serial = "UACM-OVPST-D31-SCN02LOGTERM"

/obj/structure/eventterminal/puzzle02/cargoparse/attack_hand(mob/user as mob)
var/user_loc_start = get_turf(user)
if(!puzzlebox_user)
puzzlebox_user = usr.real_name
puzzlebox_user_loc = get_turf(usr)
var/user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
if(puzzlebox_user != usr.real_name)
for (var/mob/living/carbon/human/h in range(2, src))
if (h.real_name == puzzlebox_user)
Expand Down Expand Up @@ -419,8 +429,8 @@
puzzlebox_parser_mode = "HOME_INPUT"
attack_hand(user)
if (puzzlebox_parser_mode == "HOME_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -491,8 +501,8 @@
terminal_speak("LIST to list available modes, HELP for help screen, EXIT to exit.")
puzzlebox_parser_mode = "MESSAGE_INPUT"
if (puzzlebox_parser_mode == "MESSAGE_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -583,8 +593,8 @@
puzzlebox_parser_mode = "RECORD_INPUT"
attack_hand(user)
if (puzzlebox_parser_mode == "RECORD_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -657,9 +667,14 @@
item_serial = "UACM-OVPST-D31-LDDIAG"

/obj/structure/eventterminal/puzzle02/ldmainframediag/attack_hand(mob/user as mob)
var/user_loc_start = get_turf(user)
if(!puzzlebox_user)
puzzlebox_user = usr.real_name
puzzlebox_user_loc = get_turf(usr)
var/user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
if(puzzlebox_user != usr.real_name)
for (var/mob/living/carbon/human/h in range(2, src))
if (h.real_name == puzzlebox_user)
Expand Down Expand Up @@ -704,8 +719,8 @@
puzzlebox_parser_mode = "HOME_INPUT"
attack_hand(user)
if (puzzlebox_parser_mode == "HOME_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand All @@ -726,8 +741,9 @@
terminal_speak("In each chamber, first use the processor's terminal and run command 'pom.sync global_override' followed by a space and the serial number of THIS very terminal, which you should probably note down somewhere.")
terminal_speak("This should let you access the calibration port, or rather the hatch covering the port which you will need a screwdriver to open.")
terminal_speak("Once you can access the port, plug in your multitool and send a standard testing phrase to the terminal.")
terminal_speak("When the multitool is done and beeps, you need to remember to close the port or the terminal will not know you are done.")
terminal_speak("Check the terminals output. What you should see is digits going from zero to nine, followed by the 26 basic alphabet letters, lowercase then uppercase.")
terminal_speak("You see ANYTHING else, close the port, use the processor's terminal and use command 'pom.calibrate' and again, the serial number of THIS terminal.")
terminal_speak("You see ANYTHING else, use the processor's terminal and use command 'pom.calibrate' and again, the serial number of THIS terminal.")
terminal_speak("Keep in mind that if you do it on the wrong terminal, it's going to be a while until you can use the command again, so don't just try and guess it. Or do, see if you're lucky. ")
terminal_speak("- XOXO, Aly.")
attack_hand(user)
Expand Down Expand Up @@ -777,8 +793,8 @@
terminal_speak("LIST to list available modes, HELP for help screen, EXIT to exit.")
puzzlebox_parser_mode = "MESSAGE_INPUT"
if (puzzlebox_parser_mode == "MESSAGE_INPUT")
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -874,6 +890,10 @@
desc_lore = "While using Liquid Data enables faster than light communication, practical applications have mostly been successful in utilizing it for large bursts instead of continuous communication. As such Liquid Data machines are typically of large sizes and usually clustered into pairs and constantly checked for integrity. This cluster seems to go against both these principles - it seems to be a trio, not a pair of computers and maintains a continuous connection to whatever its source is."
icon = 'icons/obj/structures/machinery/clio_bigboi.dmi'
puzzlebox_id = "LD_Mainframe"
bound_x = 64
bound_y = 32
density = TRUE
opacity = TRUE
var/puzzlebox_panel_open = FALSE
var/puzzlebox_panel_locked = TRUE
var/puzzlebox_panel_phrasepased = FALSE
Expand All @@ -883,7 +903,7 @@

/obj/structure/eventterminal/puzzle02/ldmainframe_master/proc/lockout()
puzzlebox_lockout = TRUE
sleep(5 MINUTES)
sleep(2 MINUTES)
puzzlebox_lockout = FALSE
if(!puzzlebox_id) puzzlebox_id = "I forgot to set an ID. Oops."
log_game("[puzzlebox_id] has lifted its lockdown!")
Expand All @@ -894,9 +914,14 @@


/obj/structure/eventterminal/puzzle02/ldmainframe_master/correct/attack_hand(mob/user as mob)
var/user_loc_start = get_turf(user)
if(!puzzlebox_user)
puzzlebox_user = usr.real_name
puzzlebox_user_loc = get_turf(usr)
var/user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
if(puzzlebox_user != usr.real_name)
for (var/mob/living/carbon/human/h in range(2, src))
if (h.real_name == puzzlebox_user)
Expand Down Expand Up @@ -937,8 +962,8 @@
puzzlebox_user = null
return
if (puzzlebox_parser_mode == "HOME_INPUT" && puzzlebox_panel_phrasepased == FALSE)
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand Down Expand Up @@ -1030,9 +1055,14 @@


/obj/structure/eventterminal/puzzle02/ldmainframe_master/incorrect/attack_hand(mob/user as mob)
var/user_loc_start = get_turf(user)
if(!puzzlebox_user)
puzzlebox_user = usr.real_name
puzzlebox_user_loc = get_turf(usr)
var/user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
if(puzzlebox_user != usr.real_name)
for (var/mob/living/carbon/human/h in range(2, src))
if (h.real_name == puzzlebox_user)
Expand Down Expand Up @@ -1073,8 +1103,8 @@
puzzlebox_user = null
return
if (puzzlebox_parser_mode == "HOME_INPUT" && puzzlebox_panel_phrasepased == FALSE)
var/user_loc_current = get_turf(user)
if (user_loc_start != user_loc_current)
user_loc_current = get_turf(user)
if (puzzlebox_user_loc != user_loc_current)
to_chat(user, narrate_body("You moved away from the console!"))
puzzlebox_user = null
return
Expand All @@ -1100,7 +1130,7 @@
return
if (puzzlebox_parser_input == "pom.calibrate UACM-OVPST-D31-LDDIAG")
terminal_speak("Deploying recalibration buffer.", 50)
terminal_speak("Error: No effect on error flag. Either the wrong terminal was recalibrated, or more than one terminal is faulty. Calibration buffer resetting, ETA until completion: 5 minutes.")
terminal_speak("Error: No effect on error flag. Either the wrong terminal was recalibrated, or more than one terminal is faulty. Calibration buffer resetting, ETA until completion: 2 minutes.")
log_game("[key_name(usr)] used the debug phrase on the wrong terminal and triggered a lockout. Point and laugh.")
message_admins("[key_name(usr)] used the debug phrase on the wrong terminal and triggered a lockout. Point and laugh.")
for (var/obj/structure/eventterminal/puzzle02/ldmainframe_master/T in world)
Expand Down
Loading
Loading