diff --git a/code/__DEFINES/paperwork.dm b/code/__DEFINES/paperwork.dm
new file mode 100644
index 000000000000..8703f1be9bfc
--- /dev/null
+++ b/code/__DEFINES/paperwork.dm
@@ -0,0 +1,7 @@
+#define PAPER_CATEGORY_USCM "USCM"
+#define PAPER_CATEGORY_PROVOST "Provost"
+#define PAPER_CATEGORY_WEYYU "Weyland Yutani"
+#define PAPER_CATEGORY_UPP "UPP"
+#define PAPER_CATEGORY_CMB "CMB"
+#define PAPER_CATEGORY_MP "Military Police"
+#define PAPER_CATEGORY_LIAISON "WY Liaison"
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 40b23667636f..04918462a3d4 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -457,7 +457,7 @@
var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper)
var/obj/item/paper/P = new /obj/item/paper( src.loc )
P.name = text("Scan: [], []",record.fields["name"],worldtime2text())
- P.info += text("
Official Weyland-Yutani Document
Scan Record
[]
\n",record.fields["name"])
+ P.info += text("
Official Weyland-Yutani Document
Scan Record
[]
\n",record.fields["name"])
for(var/datum/data/record/R as anything in GLOB.data_core.medical)
if (R.fields["name"] == record.fields["name"])
if(R.fields["last_scan_time"] && R.fields["last_scan_result"])
diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm
index 85d08641bfdf..f9734a04bcc6 100644
--- a/code/game/machinery/vending/vending_types.dm
+++ b/code/game/machinery/vending/vending_types.dm
@@ -442,7 +442,7 @@
/obj/item/tool/pen = 10,
/obj/item/tool/pen/blue = 10,
/obj/item/tool/pen/red = 10,
- /obj/item/tool/pen/fountain = 3,
+ /obj/item/tool/pen/multicolor/fountain = 3,
/obj/item/storage/fancy/cigarettes/trading_card = 20,
/obj/item/storage/fancy/trading_card = 20,
/obj/item/toy/trading_card = 50,
@@ -473,7 +473,7 @@
/obj/item/tool/pen = 2,
/obj/item/tool/pen/blue = 2,
/obj/item/tool/pen/red = 2,
- /obj/item/tool/pen/fountain = 30,
+ /obj/item/tool/pen/multicolor/fountain = 30,
/obj/item/storage/fancy/cigarettes/trading_card = 30,
/obj/item/storage/fancy/trading_card = 20,
/obj/item/toy/trading_card = 5,
diff --git a/code/game/objects/effects/spawners/random.dm b/code/game/objects/effects/spawners/random.dm
index 388e9f289cd7..8df88e607efa 100644
--- a/code/game/objects/effects/spawners/random.dm
+++ b/code/game/objects/effects/spawners/random.dm
@@ -203,7 +203,7 @@
/obj/item/storage/belt/champion,\
/obj/item/tool/soap/deluxe,\
/obj/item/tool/pickaxe/silver,\
- /obj/item/tool/pen/invisible,\
+ /obj/item/tool/pen/white,\
/obj/item/explosive/grenade/smokebomb,\
/obj/item/corncob,\
/obj/item/poster,\
diff --git a/code/game/objects/items/gift_wrappaper.dm b/code/game/objects/items/gift_wrappaper.dm
index ea2c19639b7a..4009cf2a172f 100644
--- a/code/game/objects/items/gift_wrappaper.dm
+++ b/code/game/objects/items/gift_wrappaper.dm
@@ -72,7 +72,7 @@
/obj/item/storage/belt/champion,
/obj/item/tool/soap/deluxe,
/obj/item/tool/pickaxe/silver,
- /obj/item/tool/pen/invisible,
+ /obj/item/tool/pen/white,
/obj/item/explosive/grenade/smokebomb,
/obj/item/corncob,
/obj/item/poster,
diff --git a/code/game/objects/items/tools/misc_tools.dm b/code/game/objects/items/tools/misc_tools.dm
index b016f0e67b33..afa7ad0d2a41 100644
--- a/code/game/objects/items/tools/misc_tools.dm
+++ b/code/game/objects/items/tools/misc_tools.dm
@@ -58,10 +58,10 @@
if(isturf(A))
to_chat(user, SPAN_WARNING("The label won't stick to that."))
return
- if(istype(A, /obj/item/storage/pill_bottle))
+ if(istype(A, /obj/item/storage/pill_bottle))
var/obj/item/storage/pill_bottle/target_pill_bottle = A
target_pill_bottle.choose_color(user)
-
+
if(!label || !length(label))
remove_label(A, user)
return
@@ -186,6 +186,16 @@
if(on)
overlays += "+[pen_color]_tip"
+/obj/item/tool/pen/attack(mob/M as mob, mob/user as mob)
+ if(!ismob(M))
+ return
+ to_chat(user, SPAN_WARNING("You stab [M] with the pen."))
+ M.last_damage_data = create_cause_data(initial(name), user)
+ M.attack_log += text("\[[time_stamp()]\] Has been stabbed with [name] by [key_name(user)]")
+ user.attack_log += text("\[[time_stamp()]\] Used the [name] to stab [key_name(M)]")
+ msg_admin_attack("[key_name(user)] Used the [name] to stab [key_name(M)] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z)
+ return
+
/obj/item/tool/pen/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(!isobj(target))
@@ -275,77 +285,78 @@
name = "WY green pen"
clicky = TRUE
-/obj/item/tool/pen/invisible
- desc = "It's an invisible pen marker."
+/obj/item/tool/pen/white
+ desc = "It's a rare white ink pen."
pen_color = "white"
-/obj/item/tool/pen/fountain
+/obj/item/tool/pen/white/clicky
+ desc = "It's a WY brand extra clicky white ink pen."
+ name = "WY white pen"
+ clicky = TRUE
+
+/obj/item/tool/pen/multicolor
+ name = "multicolor pen"
+ desc = "A color switching pen!"
+ var/list/colour_list = list("red", "blue", "black")
+ var/current_colour_index = 1
+
+/obj/item/tool/pen/multicolor/attack_self(mob/living/carbon/human/user)
+ if(on)
+ current_colour_index = (current_colour_index % length(colour_list)) + 1
+ pen_color = colour_list[current_colour_index]
+ balloon_alert(user,"you twist the pen and change the ink color to [pen_color].")
+ if(clicky)
+ playsound(user.loc, 'sound/items/pen_click_on.ogg', 100, 1, 5)
+ update_pen_state()
+ else
+ ..()
+
+/obj/item/tool/pen/multicolor/fountain
desc = "A lavish testament to the ingenuity of ARMAT's craftsmanship, this fountain pen is a paragon of design and functionality. Detailed with golden accents and intricate mechanics, the pen allows for a swift change between a myriad of ink colors with a simple twist. A product of precision engineering, each mechanism inside the pen is designed to provide a seamless, effortless transition from one color to the next, creating an instrument of luxurious versatility."
desc_lore = "More than just a tool for writing, ARMAT's fountain pen is a symbol of distinction and authority within the ranks of the United States Colonial Marine Corps (USCM). It is a legacy item, exclusively handed out to the top-tier command personnel, each pen a tribute to the recipient's leadership and dedication.\n \nARMAT, renowned for their weapons technology, took a different approach in crafting this piece. The fountain pen, though seemingly a departure from their usual field, is deeply ingrained with the company's engineering philosophy, embodying precision, functionality, and robustness.\n \nThe golden accents are not mere embellishments; they're an identifier, setting apart these pens and their owners from the rest. The gold is meticulously alloyed with a durable metallic substance, granting it resilience to daily wear and tear. Such resilience is symbolic of the tenacity and perseverance required of USCM command personnel.\n \nEach pen is equipped with an intricate color changing mechanism, allowing the user to switch between various ink colors. This feature, inspired by the advanced targeting systems of ARMAT's weaponry, uses miniaturized actuators and precision-ground components to smoothly transition the ink flow. A simple twist of the pen's body activates the change, rotating the internal ink cartridges into place with mechanical grace, ready for the user's command.\n \nThe ink colors are not chosen arbitrarily. Each represents a different echelon within the USCM, allowing the pen's owner to write in the hue that corresponds with their rank or the rank of the recipient of their written orders. This acts as a silent testament to the authority of their words, as if each stroke of the pen echoes through the halls of USCM authority.\n \nDespite its ornate appearance, the pen is as robust as any ARMAT weapon, reflecting the company's commitment to reliability and durability. The metal components are corrosion-resistant, ensuring the pen's longevity, even under the challenging conditions often faced by USCM high command.\n \nThe fusion of luxury and utility, the blend of gold and metal, is an embodiment of the hard-won elegance of command, of the fusion between power and grace. It's more than a writing instrument - it's an emblem of leadership, an accolade to the dedication and strength of those who bear it. ARMAT's fountain pen stands as a monument to the precision, integrity, and courage embodied by the USCM's highest-ranking officers."
name = "fountain pen"
icon_state = "fountain_pen"
item_state = "fountain_pen"
matter = list("metal" = 20, "gold" = 10)
- var/static/list/color_list = list("red", "blue", "green", "yellow", "purple", "pink", "brown", "black", "orange") // Can add more colors as required
- var/current_color_index = 1
+ colour_list = list("red", "blue", "green", "yellow", "purple", "pink", "brown", "black", "orange") // Can add more colors as required
var/owner_name
-/obj/item/tool/pen/fountain/pickup(mob/user, silent)
+/obj/item/tool/pen/multicolor/fountain/pickup(mob/user, silent)
. = ..()
if(!owner_name)
RegisterSignal(user, COMSIG_POST_SPAWN_UPDATE, PROC_REF(set_owner), override = TRUE)
///Sets the owner of the pen to who it spawns with, requires var/source for signals
-/obj/item/tool/pen/fountain/proc/set_owner(datum/source)
+/obj/item/tool/pen/multicolor/fountain/proc/set_owner(datum/source)
SIGNAL_HANDLER
UnregisterSignal(source, COMSIG_POST_SPAWN_UPDATE)
var/mob/living/carbon/human/user = source
owner_name = user.name
-/obj/item/tool/pen/fountain/get_examine_text(mob/user)
+/obj/item/tool/pen/multicolor/fountain/get_examine_text(mob/user)
. = ..()
if(owner_name)
. += "There's a laser engraving of [owner_name] on it."
-/obj/item/tool/pen/fountain/attack_self(mob/living/carbon/human/user)
- if(on)
- current_color_index = (current_color_index % length(color_list)) + 1
- pen_color = color_list[current_color_index]
- balloon_alert(user,"you twist the pen and change the ink color to [pen_color].")
- if(clicky)
- playsound(user.loc, 'sound/items/pen_click_on.ogg', 100, 1, 5)
- update_pen_state()
- else
- ..()
-
-/obj/item/tool/pen/attack(mob/M as mob, mob/user as mob)
- if(!ismob(M))
- return
- to_chat(user, SPAN_WARNING("You stab [M] with the pen."))
-// to_chat(M, SPAN_WARNING("You feel a tiny prick!")) //That's a whole lot of meta!
- M.last_damage_data = create_cause_data(initial(name), user)
- M.attack_log += text("\[[time_stamp()]\] Has been stabbed with [name] by [key_name(user)]")
- user.attack_log += text("\[[time_stamp()]\] Used the [name] to stab [key_name(M)]")
- msg_admin_attack("[key_name(user)] Used the [name] to stab [key_name(M)] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z)
- return
-
+/obj/item/tool/pen/multicolor/provost
+ name = "provost pen"
+ desc = "A sleek black shell pen with the Provost Office sigil engraved into the side. It can change colors as needed for various functions within the Provost and Military Police."
+ icon_state = "provost_pen"
+ colour_list = list("blue", "green", "black", "orange", "red", "white")
/*
- * Sleepy Pens
+ * Antag pens
*/
/obj/item/tool/pen/sleepypen
desc = "It's a black ink pen with a sharp point and a carefully engraved \"Waffle Co.\""
flags_atom = FPRINT|OPENCONTAINER
flags_equip_slot = SLOT_WAIST
-
-
/obj/item/tool/pen/sleepypen/Initialize()
. = ..()
create_reagents(30)
reagents.add_reagent("chloralhydrate", 22)
-
/obj/item/tool/pen/sleepypen/attack(mob/M as mob, mob/user as mob)
if(!(istype(M,/mob)))
return
@@ -354,16 +365,10 @@
if(M.reagents) reagents.trans_to(M, 50)
return
-
-/*
- * Parapens
- */
/obj/item/tool/pen/paralysis
flags_atom = FPRINT|OPENCONTAINER
flags_equip_slot = SLOT_WAIST
-
-
/obj/item/tool/pen/paralysis/attack(mob/living/M as mob, mob/user as mob)
if(!(istype(M)))
return
@@ -378,6 +383,9 @@
reagents.add_reagent("zombiepowder", 10)
reagents.add_reagent("cryptobiolin", 15)
+/*
+ * Stamps
+ */
/obj/item/tool/stamp
name = "rubber stamp"
desc = "A rubber stamp for stamping important documents."
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index 8974eb36187f..fc5744dcbbf1 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -1141,7 +1141,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
temp += "Back to all categories
"
temp += SPAN_DANGER("ERR0R UNK7OWN C4T2G#!$0-
")
if(black_market_lockout)
- temp += "Unauthorized Access Removed.
This console is currently under CMB investigation.
Thank you for your cooperation. "
+ temp += "Unauthorized Access Removed.
This console is currently under CMB investigation.
Thank you for your cooperation. "
return
temp += "KHZKNHZH#0-"
if(!GLOB.supply_controller.mendoza_status) // he's daed
diff --git a/code/modules/admin/fax_templates.dm b/code/modules/admin/fax_templates.dm
index 2522acf92b3b..210915a3f7b8 100644
--- a/code/modules/admin/fax_templates.dm
+++ b/code/modules/admin/fax_templates.dm
@@ -7,7 +7,7 @@
dat += "body {"
dat += "margin:0 auto;"
dat += "padding:0;"
- dat += "background-image: url('[asset.get_url_mappings()["faxbackground.jpg"]]');"
+ dat += "background-image: url('[asset.get_url_mappings()["background_white.jpg"]]');"
dat += "font-family: monospace;"
dat += "}"
@@ -65,7 +65,7 @@
if(show_wy_logo)
dat += ""
- dat += "
"
+ dat += "
"
dat += "
"
dat += "