diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index f9de982db6..e6155c1edb 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -178,6 +178,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s // Used by NewsCaster and NewsPaper. // Used by Modular Computers #define PEN_FONT "Verdana" +#define FOUNTAIN_PEN_FONT "Segoe Script" #define CRAYON_FONT "Comic Sans MS" #define PRINTER_FONT "Times New Roman" #define SIGNFONT "Times New Roman" diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index daabbf326a..98a871fa14 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -57,15 +57,18 @@ GLOBAL_LIST_EMPTY(PDAs) var/obj/item/inserted_item //Used for pen, crayon, and lipstick insertion or removal. Same as above. var/overlays_x_offset = 0 //x offset to use for certain overlays -/obj/item/device/pda/New() - ..() +/obj/item/device/pda/Initialize() + . = ..() if(fon) set_light(f_lum) GLOB.PDAs += src if(default_cartridge) cartridge = new default_cartridge(src) - inserted_item = new /obj/item/weapon/pen(src) + if(inserted_item) + inserted_item = new inserted_item(src) + else + inserted_item = new /obj/item/weapon/pen(src) update_icon() /obj/item/device/pda/proc/update_label() diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index 166ef212fa..aece468dd6 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -111,11 +111,13 @@ /obj/item/device/pda/heads/rd name = "research director PDA" default_cartridge = /obj/item/weapon/cartridge/rd + inserted_item = /obj/item/weapon/pen/fountain icon_state = "pda-rd" /obj/item/device/pda/captain name = "captain PDA" default_cartridge = /obj/item/weapon/cartridge/captain + inserted_item = /obj/item/weapon/pen/fountain/captain icon_state = "pda-captain" detonate = 0 @@ -127,6 +129,7 @@ /obj/item/device/pda/quartermaster name = "quartermaster PDA" default_cartridge = /obj/item/weapon/cartridge/quartermaster + inserted_item = /obj/item/weapon/pen/fountain icon_state = "pda-qm" /obj/item/device/pda/shaftminer @@ -148,6 +151,7 @@ /obj/item/device/pda/lawyer name = "lawyer PDA" default_cartridge = /obj/item/weapon/cartridge/lawyer + inserted_item = /obj/item/weapon/pen/fountain icon_state = "pda-lawyer" ttone = "objection" @@ -166,6 +170,7 @@ icon_state = "pda-library" icon_alert = "pda-r-library" default_cartridge = /obj/item/weapon/cartridge/curator + inserted_item = /obj/item/weapon/pen/fountain desc = "A portable microcomputer by Thinktronic Systems, LTD. This model is a WGW-11 series e-reader." note = "Congratulations, your station has chosen the Thinktronic 5290 WGW-11 Series E-reader and Personal Data Assistant!" silent = 1 //Quiet in the library! @@ -184,6 +189,7 @@ /obj/item/device/pda/bar name = "bartender PDA" icon_state = "pda-bartender" + inserted_item = /obj/item/weapon/pen/fountain /obj/item/device/pda/atmos name = "atmospherics PDA" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index f35cff56a9..5a997b1e57 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -879,3 +879,11 @@ /obj/item/weapon/storage/box/silver_sulf/PopulateContents() for(var/i in 1 to 7) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + + +/obj/item/weapon/storage/box/fountainpens + name = "box of fountain pens" + +/obj/item/weapon/storage/box/fountainpens/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/weapon/pen/fountain(src) \ No newline at end of file diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 6c09b82402..f7bfcab89a 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1423,6 +1423,7 @@ /obj/item/weapon/pen/fourcolor, /obj/item/weapon/pen/fourcolor, /obj/item/weapon/pen, + /obj/item/weapon/pen/fountain, /obj/item/weapon/pen/blue, /obj/item/weapon/pen/red, /obj/item/weapon/folder/blue, @@ -1434,6 +1435,12 @@ /obj/item/weapon/stamp/denied) crate_name = "bureaucracy crate" +/datum/supply_pack/misc/fountainpens + name = "Calligraphy Crate" + cost = 700 + contains = list(/obj/item/weapon/storage/box/fountainpens) + crate_type = /obj/structure/closet/crate/wooden + /datum/supply_pack/misc/toner name = "Toner Crate" cost = 1000 diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index c5f46916bb..e5ca868ff5 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -214,7 +214,7 @@ t = replacetext(t, "\[list\]", "") - t = "[t]" + t = "[t]" else // If it is a crayon, and he still tries to use these, make them empty! var/obj/item/toy/crayon/C = P t = replacetext(t, "\[*\]", "") diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 276b4d8109..2bdc8a5310 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -26,6 +26,7 @@ var/colour = "black" //what colour the ink is! var/traitor_unlock_degrees = 0 var/degrees = 0 + var/font = PEN_FONT /obj/item/weapon/pen/suicide_act(mob/user) user.visible_message("[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...") @@ -64,6 +65,42 @@ to_chat(user, "\The [src] will now write in [colour].") desc = "It's a fancy four-color ink pen, set to [colour]." +/obj/item/weapon/pen/fountain + name = "fountain pen" + desc = "It's a common fountain pen, with a faux wood body." + icon_state = "pen-fountain" + font = FOUNTAIN_PEN_FONT + +/obj/item/weapon/pen/fountain/captain + name = "captain's fountain pen" + desc = "It's an expensive Oak fountain pen. The nib is quite sharp." + icon_state = "pen-fountain-o" + force = 5 + throwforce = 5 + throw_speed = 4 + colour = "crimson" + materials = list(MAT_GOLD = 750) + sharpness = IS_SHARP + resistance_flags = FIRE_PROOF + var/unique_reskin = TRUE + var/list/skins = list("Oak" = "pen-fountain-o", "Gold" = "pen-fountain-g", "Rosewood" = "pen-fountain-r", "Black and Silver" = "pen-fountain-b","Command Blue" = "pen-fountain-cb") + +/obj/item/weapon/pen/fountain/captain/AltClick() + var/mob/living/carbon/user = usr + if(!istype(user)) + return + if(unique_reskin) + var/choice = input(user,"Choose the finish for your pen.","Reskin Pen") as null|anything in skins + if(!QDELETED(src) && choice && !user.incapacitated() && in_range(user,src)) + icon_state = skins[choice] + unique_reskin = FALSE + to_chat(user, "Your pen now has a [choice] finish.") + desc = "It's an expensive [choice] fountain pen. The nib is quite sharp." + +/obj/item/weapon/pen/fountain/captain/examine(mob/user) + ..() + if(unique_reskin) + to_chat(user, "This item can be reskinned. Alt-click to select a skin.") /obj/item/weapon/pen/attack_self(mob/living/carbon/user) var/deg = input(user, "What angle would you like to rotate the pen head to? (1-360)", "Rotate Pen Head") as null|num diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index e91e4c0d83..b1c11a67e8 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ