mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-15 00:53:23 +01:00
Adds IPC plastic surgery (#19554)
* Adds IPC plastic surgery * Added gender option * Adds null checks, fixes grammar * Improved code flow * Added adjacency check * Added extra genders, limited surgery to head only * Spans, man * Small tweaks * Changed surgery name for grammar
This commit is contained in:
@@ -666,3 +666,52 @@
|
||||
user.visible_message("<span class='warning'> [user]'s [tool.name] slips, failing to reprogram [target]'s [affected.name].</span>",
|
||||
"<span class='warning'> Your [tool.name] slips, failing to reprogram [target]'s [affected.name].</span>")
|
||||
return SURGERY_STEP_RETRY
|
||||
|
||||
/datum/surgery/robotics/reconfigure_id
|
||||
name = "Identity Reconfiguration"
|
||||
steps = list(
|
||||
/datum/surgery_step/robotics/external/unscrew_hatch,
|
||||
/datum/surgery_step/robotics/external/open_hatch,
|
||||
/datum/surgery_step/robotics/edit_serial,
|
||||
/datum/surgery_step/robotics/external/close_hatch
|
||||
)
|
||||
possible_locs = list(BODY_ZONE_HEAD)
|
||||
|
||||
/datum/surgery_step/robotics/edit_serial
|
||||
name = "edit serial number"
|
||||
allowed_tools = list(TOOL_MULTITOOL = 100)
|
||||
time = 4.8 SECONDS
|
||||
|
||||
/datum/surgery_step/robotics/edit_serial/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
user.visible_message(
|
||||
"[user] begins to edit [target]'s identity parameters with [tool].",
|
||||
"You begin to alter [target]'s identity parameters with [tool]."
|
||||
)
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/robotics/edit_serial/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
var/new_name = copytext(reject_bad_text(input(user, "Choose a name for this machine.", "Set Name", "[target.real_name]") as null|text), 1, MAX_NAME_LEN)
|
||||
if(!new_name)
|
||||
to_chat(user, "<span class='warning'>Invalid name! Please try again.</span>")
|
||||
return SURGERY_STEP_INCOMPLETE
|
||||
else if(!target.Adjacent(user))
|
||||
to_chat(user, "<span class='warning'>The multitool is out of range! Please try again.</span>")
|
||||
return SURGERY_STEP_INCOMPLETE
|
||||
var/static/list/gender_list = list("Male" = MALE, "Female" = FEMALE, "Genderless" = PLURAL, "Object" = NEUTER)
|
||||
var/gender_key = input(user, "Choose a gender for this machine.", "Select Gender", target.gender) as null|anything in gender_list
|
||||
if(!gender_key)
|
||||
to_chat(user, "<span class='warning'>You must choose a gender! Please try again.</span>")
|
||||
return SURGERY_STEP_INCOMPLETE
|
||||
else if(!target.Adjacent(user))
|
||||
to_chat(user, "<span class='warning'>The multitool is out of range! Please try again.</span>")
|
||||
return SURGERY_STEP_INCOMPLETE
|
||||
var/new_gender = gender_list[gender_key]
|
||||
var/old_name = target.real_name
|
||||
target.real_name = new_name
|
||||
target.gender = new_gender
|
||||
user.visible_message(
|
||||
"<span class='notice'>[user] edits [old_name]'s identity parameters with [tool]; [target.p_they()] [target.p_are()] now known as [new_name].</span>",
|
||||
"<span class='notice'>You alter [old_name]'s identity parameters with [tool]; [target.p_they()] [target.p_are()] now known as [new_name].</span>"
|
||||
)
|
||||
return SURGERY_STEP_CONTINUE
|
||||
|
||||
Reference in New Issue
Block a user