diff --git a/aurorastation.dme b/aurorastation.dme index 2bd2926025f..efa250896ee 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -993,6 +993,7 @@ #include "code\game\objects\items\devices\auto_cpr.dm" #include "code\game\objects\items\devices\binoculars.dm" #include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\cosmetic_surgery_kit.dm" #include "code\game\objects\items\devices\debugger.dm" #include "code\game\objects\items\devices\dociler.dm" #include "code\game\objects\items\devices\flash.dm" diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 8dd7902160c..8caaf2ffd1a 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -219,6 +219,7 @@ #define APPEARANCE_ALL 65535 #define APPEARANCE_ALL_HAIR (APPEARANCE_HAIR|APPEARANCE_HAIR_COLOR|APPEARANCE_FACIAL_HAIR|APPEARANCE_FACIAL_HAIR_COLOR) #define APPEARANCE_PLASTICSURGERY (APPEARANCE_ALL & ~APPEARANCE_RACE) +#define APPEARANCE_SURGERYKIT (APPEARANCE_PLASTICSURGERY & ~APPEARANCE_LANGUAGE) // Click cooldown #define DEFAULT_ATTACK_COOLDOWN 8 //Default timeout for aggressive actions diff --git a/code/datums/uplink/stealth and camouflage items.dm b/code/datums/uplink/stealth and camouflage items.dm index e270c735545..ab7055066cf 100644 --- a/code/datums/uplink/stealth and camouflage items.dm +++ b/code/datums/uplink/stealth and camouflage items.dm @@ -22,6 +22,13 @@ bluecrystal_cost = 1 path = /obj/item/card/id/syndicate +/datum/uplink_item/item/stealth_items/cosmetic_surgery_kit + name = "Cosmetic Surgery Auto-Kit" + desc = "A small self-contained auto-surgery device that has the ability to conduct larynxial, facial and even melanin re-structuring surgery, in a (mostly) blood-less manner." + telecrystal_cost = 1 + bluecrystal_cost = 1 + path = /obj/item/device/cosmetic_surgery_kit + /datum/uplink_item/item/stealth_items/chameleon_kit name = "Chameleon Kit" telecrystal_cost = 1 diff --git a/code/game/objects/items/devices/cosmetic_surgery_kit.dm b/code/game/objects/items/devices/cosmetic_surgery_kit.dm new file mode 100644 index 00000000000..4d0dffb2cd6 --- /dev/null +++ b/code/game/objects/items/devices/cosmetic_surgery_kit.dm @@ -0,0 +1,54 @@ +/obj/item/device/cosmetic_surgery_kit + name = "cosmetic surgery auto-kit" + icon = 'icons/obj/device.dmi' + icon_state = "depthscanner" + item_state = "electronic" + slot_flags = SLOT_BELT + throwforce = 5 + throw_speed = 1 + throw_range = 5 + w_class = ITEMSIZE_SMALL + origin_tech = list( + TECH_ESOTERIC = 3, + TECH_MAGNET = 4 + ) + + /// Whether this cosmetic surgery kit is spent. + var/used = FALSE + + +/obj/item/device/cosmetic_surgery_kit/attack_self(mob/living/carbon/human/user) + if(used) + to_chat(user, SPAN_WARNING("\The [src] remains lifeless, as its armatures dangle uselessly, now.")) + return + if(!istype(user)) + return + user.visible_message( + SPAN_WARNING("\The [user] places \the [src] up to [user.get_pronoun("his")] face."), + SPAN_WARNING("You place \the [src] up to your face."), + range = 3 + ) + if(!do_after(user, 2 SECONDS)) + return + user.visible_message(SPAN_DANGER("\The [src] purrs maliciously and unfurls its armatures with frightening speed!"), range = 3) + playsound(user, 'sound/items/crank.ogg', 50, TRUE) + user.visible_message( + SPAN_DANGER("\The [src]'s armatures begin chipping away at \the [user]'s face!"), + SPAN_DANGER("\The [src]'s armatures begin chipping away at your face!"), + range = 3 + ) + user.custom_pain("Your face feels like it's being shredded apart!", 160) + playsound(user, 'sound/effects/squelch1.ogg', 25, TRUE) + if(!do_after(user, 2 SECONDS)) + return + user.change_appearance(APPEARANCE_SURGERYKIT, user) + used = TRUE + var/response = tgui_input_text(user, "What would you like to call your new self?", "Name Change") + response = sanitize(response, MAX_NAME_LEN) + if(!response) + return + user.real_name = response + user.name = response + user.dna.real_name = response + if(user.mind) + user.mind.name = user.name diff --git a/html/changelogs/geeves-cosmetic_surgery_kit.yml b/html/changelogs/geeves-cosmetic_surgery_kit.yml new file mode 100644 index 00000000000..3dd94b71d7f --- /dev/null +++ b/html/changelogs/geeves-cosmetic_surgery_kit.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Add a cosmetic auto-surgery kit to the uplink for 1TC or 1BC."