diff --git a/code/modules/client/preference_setup/loadout/loadout_augments.dm b/code/modules/client/preference_setup/loadout/loadout_augments.dm index 775af65a023..7f3e916b79f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_augments.dm +++ b/code/modules/client/preference_setup/loadout/loadout_augments.dm @@ -61,6 +61,19 @@ augs["retractable lighter, left hand"] = /obj/item/organ/internal/augment/tool/combitool/lighter/left gear_tweaks += new /datum/gear_tweak/path(augs) +/datum/gear/augment/pen + display_name = "retractable pen" + description = "An augment that allows the user to deploy a retractable pen." + path = /obj/item/organ/internal/augment/tool/pen + cost = 1 + +/datum/gear/augment/pen/New() + ..() + var/list/augs = list() + augs["retractable pen, right hand"] = /obj/item/organ/internal/augment/tool/pen + augs["retractable pen, left hand"] = /obj/item/organ/internal/augment/tool/pen/left + gear_tweaks += new /datum/gear_tweak/path(augs) + /datum/gear/augment/cochlear display_name = "cochlear implant" description = "A synthetic replacement for the structures within the ear, allowing the user to hear without requiring external tools." diff --git a/code/modules/organs/subtypes/augment.dm b/code/modules/organs/subtypes/augment.dm index 3b6783c084b..c0e6b13ceab 100644 --- a/code/modules/organs/subtypes/augment.dm +++ b/code/modules/organs/subtypes/augment.dm @@ -144,6 +144,19 @@ parent_organ = BP_L_HAND aug_slot = slot_l_hand +/obj/item/organ/internal/augment/tool/pen + name = "retractable pen" + icon_state = "combipen" + action_button_name = "Deploy Pen" + action_button_icon = "combipen" + organ_tag = BP_AUG_PEN + parent_organ = BP_R_HAND + augment_type = /obj/item/pen/augment + +/obj/item/organ/internal/augment/tool/pen/left + parent_organ = BP_L_HAND + aug_slot = slot_l_hand + /obj/item/organ/internal/augment/health_scanner name = "integrated health scanner" action_button_name = "Activate Health Scanner" diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 233e030d5b9..6fd81cee139 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -472,8 +472,8 @@ if(istype(i, /obj/item/pen/crayon)) iscrayon = TRUE - if(istype(i, /obj/item/pen/fountain)) - var/obj/item/pen/fountain/f = i + if(istype(i, /obj/item/pen/fountain) || istype(i, /obj/item/pen/augment)) + var/obj/item/pen/f = i if(f.cursive) isfountain = TRUE else diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 760217cb0d7..0310f66c64e 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -48,6 +48,7 @@ Pen exclusive commands var/colour = "black" //what colour the ink is! drop_sound = 'sound/items/drop/accessory.ogg' pickup_sound = 'sound/items/pickup/accessory.ogg' + var/cursive = FALSE //done here so other pen variants can access cursive variable /obj/item/pen/ispen() return TRUE @@ -139,7 +140,6 @@ Pen exclusive commands icon_state = "pen_fountain" throwforce = 1 //pointy colour = "#1c1713" //dark ashy brownish - var/cursive = FALSE /obj/item/pen/fountain/attack_self(var/mob/user) playsound(loc, 'sound/items/penclick.ogg', 50, 1) @@ -310,3 +310,40 @@ Pen exclusive commands /obj/item/pen/crayon/Initialize() . = ..() name = "[colourName] crayon" + +/* + * Augment Pens + */ + +/obj/item/pen/augment + name = "integrated pen" + desc = "An pen implanted directly into the hand, popping through the finger." + icon_state = "combipen" + item_state = "combipen" + colour = "#1c1713" //dark ashy brownish + cursive = FALSE + w_class = ITEMSIZE_TINY + +/obj/item/pen/augment/attack_self(mob/user) + var/choice = input(user, "Would you like to change colour or writing style?", "Pen Selector") as null|anything in list("Colour", "Style") + if(!choice) + return + + switch(choice) + if("Colour") + var/newcolour = input(user, "Which colour would you like to use?", "Colour Selector") as null|anything in list("black", "blue", "red", "green", "yellow") + if(newcolour) + colour = newcolour + to_chat(user, SPAN_NOTICE("Your pen synthesizes [newcolour] ink.")) + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + if("Style") + playsound(loc, 'sound/items/penclick.ogg', 50, 1) + to_chat(user, SPAN_NOTICE("You snap the nib into position to write [cursive ? "normally" : "in cursive"].")) + cursive = !cursive + +/obj/item/pen/augment/throw_at(atom/target, range, speed, mob/user) + user.drop_from_inventory(src) + +/obj/item/pen/augment/dropped() + loc = null + qdel(src) diff --git a/html/changelogs/Ben10083 - AugPens.yml b/html/changelogs/Ben10083 - AugPens.yml new file mode 100644 index 00000000000..eaf480ad58b --- /dev/null +++ b/html/changelogs/Ben10083 - AugPens.yml @@ -0,0 +1,13 @@ +# Your name. +author: Ben10083 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a augmented pen to loadout. It can change color and use cursive." diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 91d015ede64..743d1b9996b 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ