diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 33d7fb5d8a49..677647192c0d 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -2055,7 +2055,7 @@ /obj/structure/table/glass, /obj/item/paper{ desc = "Standard Nanotrasen typeface for important documents."; - info = "Welcome to the NNTVS 'Not Nanotrasen Vault Station'! We are never happier to have people on board than when we get new arrivals ready to betray and renounce their allegiance to the coporate egregory known as Nanotrasen! "; + default_raw_text = "Welcome to the NNTVS 'Not Nanotrasen Vault Station'! We are never happier to have people on board than when we get new arrivals ready to betray and renounce their allegiance to the coporate egregory known as Nanotrasen! "; name = "Corporate Desertion and You!" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm index 89b9b6bff392..1d6aaa0388d5 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm @@ -4242,7 +4242,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/defibrillator, /obj/item/paper/fluff/ruins/oldstation/protosleep{ - info = "*Prototype Sleeper*

We have deliverted the lastest in medical technology to the medical bay for your use." + default_raw_text = "*Prototype Sleeper*

We have deliverted the lastest in medical technology to the medical bay for your use." }, /obj/machinery/power/apc{ dir = 1; @@ -8454,7 +8454,7 @@ /obj/machinery/light/directional/east, /obj/structure/table/reinforced, /obj/item/paper/fluff/ruins/oldstation/protosing{ - info = "fucking uhhh tesla -I'll finish this later, Professor Fiddler"; + default_raw_text = "fucking uhhh tesla -I'll finish this later, Professor Fiddler"; name = "Tesla Generator" }, /turf/open/floor/plasteel/white, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_slimelab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_slimelab.dmm index 32f417e9f44a..0f812e83d41f 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_slimelab.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_slimelab.dmm @@ -4701,7 +4701,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/cell_charger, /obj/item/paper{ - info = "I don't know how long we're gonna be asleep for, so I've gone ahead and turned off the atmospherics systems. When you get back up. Turn them on! The base won't work long without it." + default_raw_text = "I don't know how long we're gonna be asleep for, so I've gone ahead and turned off the atmospherics systems. When you get back up. Turn them on! The base won't work long without it." }, /turf/open/floor/plasteel, /area/ruin/powered/slimelab/lava) diff --git a/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm b/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm index bee78bf439cd..d141676c0616 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm @@ -2698,7 +2698,7 @@ /area/ruin/jungle) "Pu" = ( /obj/item/paper/crumpled/bloody{ - info = "Those damn bastards came and shot up the place. I refused to give them my knowledge. I don't have much longer. Keep it safe, please..."; + default_raw_text = "Those damn bastards came and shot up the place. I refused to give them my knowledge. I don't have much longer. Keep it safe, please..."; pixel_x = 8; pixel_y = 4; desc = "A hastily written note." diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm index 38563f5e513c..7aa1aa7bfd2c 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm @@ -92,7 +92,7 @@ dir = 10 }, /obj/item/paper/pamphlet{ - info = "

Welcome at MedTech Ltd.!


MedTech is a professional chemical and pharmaceutical manufacturing company with a leading position in the galactinc market.

Our goal is to provide all relevant medical and industrial chemicals to every customer in the galaxy within a short time, and at a affordable price. We achieve this goal by diversifying our manufacturing sites across the all frontiers and by sourcing all raw materials locally.

Special orders are avalible now!

Buy our products or visit one of our manufacturing plants today!


MedTech Ltd. takes no liability for any misuse or side effects of their products including diarrhea, dizziness, heart issues (palpitations, irregular heartbeats), death, and all other forms of possible pre- and post-mortem agony.

"; + default_raw_text = "

Welcome at MedTech Ltd.!


MedTech is a professional chemical and pharmaceutical manufacturing company with a leading position in the galactinc market.

Our goal is to provide all relevant medical and industrial chemicals to every customer in the galaxy within a short time, and at a affordable price. We achieve this goal by diversifying our manufacturing sites across the all frontiers and by sourcing all raw materials locally.

Special orders are avalible now!

Buy our products or visit one of our manufacturing plants today!


MedTech Ltd. takes no liability for any misuse or side effects of their products including diarrhea, dizziness, heart issues (palpitations, irregular heartbeats), death, and all other forms of possible pre- and post-mortem agony.

"; name = "MedTech flyer"; pixel_x = 6; pixel_y = 3 @@ -362,7 +362,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/item/paper/crumpled/bloody{ desc = "written hastly on a blood stained peace of paper."; - info = "They breached all the doors, I am the last one, its over for me.."; + default_raw_text = "They breached all the doors, I am the last one, its over for me.."; name = "MedTech chmist's last note"; pixel_x = 15; pixel_y = 1 @@ -379,7 +379,7 @@ "hF" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/item/paper{ - info = "

Export expectations

By the end of the month facility No.475-24 is expected to provide the following amounts of medicine to be ready for export:

  1. 300u of Perfluorodecalin
  2. 270u of Thializid
  3. 50 Burnpatches
  4. 65 Synthflesh patches
  5. 275u of atropine

Production is to be proceeded with imidiately.

"; + default_raw_text = "

Export expectations

By the end of the month facility No.475-24 is expected to provide the following amounts of medicine to be ready for export:

  1. 300u of Perfluorodecalin
  2. 270u of Thializid
  3. 50 Burnpatches
  4. 65 Synthflesh patches
  5. 275u of atropine

Production is to be proceeded with imidiately.

"; name = "Export orders"; pixel_x = 4; pixel_y = 5 @@ -1502,7 +1502,7 @@ /obj/effect/decal/cleanable/blood/bubblegum, /obj/item/paper/crumpled/fluff{ desc = "Written as with a dying hand.."; - info = "I bolted down my door to keep them out for w while, one of them got me in the arm. I hope the response unit will arrive soon..."; + default_raw_text = "I bolted down my door to keep them out for w while, one of them got me in the arm. I hope the response unit will arrive soon..."; name = "Hastly scribbled note" }, /turf/open/floor/wood, @@ -1676,7 +1676,7 @@ }, /obj/item/paper/crumpled/bloody{ desc = "written hastly on a blood stained peace of paper."; - info = "Hilbert welded himself in maintainance from the inside. Perhaps a death from starvation is better than the fate that awaits us when the doors bust..."; + default_raw_text = "Hilbert welded himself in maintainance from the inside. Perhaps a death from starvation is better than the fate that awaits us when the doors bust..."; name = "Office clerks last note"; pixel_x = -13; pixel_y = -6 @@ -2860,7 +2860,7 @@ /obj/effect/decal/cleanable/blood/bubblegum, /obj/item/paper/crumpled/bloody{ desc = "This is probably a document you were not supposed to see"; - info = "

TOP SECRET - EYES ONLY!

Pricing reqest

The Syndicate is interested to place an order for several hundred units of a chemical known as romerol. Hereby a request is placed to set a pricetag for such an order.

A small sample of the regent in question has been attached for testing purposes.

The contents of this document is to be treated highly confidential, any suspicion that informatin cantained in this letter has been forwarded will be met with recogninzing MedTech Ltd. as a enemy side of the conflict by The Syndicate.

We are lookig forward for a reply that will ensure our long-term cooperation.


Death to Nanotrasen!

The Syndicate

TOP SECRET - EYES ONLY!

"; + default_raw_text = "

TOP SECRET - EYES ONLY!

Pricing reqest

The Syndicate is interested to place an order for several hundred units of a chemical known as romerol. Hereby a request is placed to set a pricetag for such an order.

A small sample of the regent in question has been attached for testing purposes.

The contents of this document is to be treated highly confidential, any suspicion that informatin cantained in this letter has been forwarded will be met with recogninzing MedTech Ltd. as a enemy side of the conflict by The Syndicate.

We are lookig forward for a reply that will ensure our long-term cooperation.


Death to Nanotrasen!

The Syndicate

TOP SECRET - EYES ONLY!

"; name = "Top Secret Syndicate Romerol price request" }, /turf/open/floor/carpet/blue, @@ -3093,7 +3093,7 @@ dir = 10 }, /obj/item/paper/pamphlet{ - info = "

Welcome at MedTech Ltd.!


MedTech is a professional chemical and pharmaceutical manufacturing company with a leading position in the galactinc market.

Our goal is to provide all relevant medical and industrial chemicals to every customer in the galaxy within a short time, and at a affordable price. We achieve this goal by diversifying our manufacturing sites across the all frontiers and by sourcing all raw materials locally.

Special orders are avalible now!

Buy our products or visit one of our manufacturing plants today!


MedTech Ltd. takes no liability for any misuse or side effects of their products including diarrhea, dizziness, heart issues (palpitations, irregular heartbeats), death, and all other forms of possible pre- and post-mortem agony.

"; + default_raw_text = "

Welcome at MedTech Ltd.!


MedTech is a professional chemical and pharmaceutical manufacturing company with a leading position in the galactinc market.

Our goal is to provide all relevant medical and industrial chemicals to every customer in the galaxy within a short time, and at a affordable price. We achieve this goal by diversifying our manufacturing sites across the all frontiers and by sourcing all raw materials locally.

Special orders are avalible now!

Buy our products or visit one of our manufacturing plants today!


MedTech Ltd. takes no liability for any misuse or side effects of their products including diarrhea, dizziness, heart issues (palpitations, irregular heartbeats), death, and all other forms of possible pre- and post-mortem agony.

"; name = "MedTech flyer"; pixel_x = -5; pixel_y = 3 diff --git a/_maps/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm b/_maps/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm index d9bb927f619a..b4d280ba7a17 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm @@ -224,7 +224,7 @@ "S" = ( /obj/structure/table/wood, /obj/item/paper{ - info = "Forgot I had this paper on me, so I might as well use it as a diary. Today is the 23rd of July, or atleast that's what I made up in my head, and I am currently fulfilling my dream career of carving coffins. Yep, I'm living my best life here. I tamed a monkey a while back, named him Palmo, little guy's been a dear friend since. Until activity picks up on this planet I'm just gonna live a nice and quiet life, and then sell my masterfully crafted coffins to all those in need of them. Also, I found some peculiar fruit earlier, tastes pretty good but I think I probably ingested a few of the seeds. Shouldn't be TOO bad for me. Either way, I'm going to go to bed. Hopefully I find some more paper to use so I can keep writing."; + default_raw_text = "Forgot I had this paper on me, so I might as well use it as a diary. Today is the 23rd of July, or atleast that's what I made up in my head, and I am currently fulfilling my dream career of carving coffins. Yep, I'm living my best life here. I tamed a monkey a while back, named him Palmo, little guy's been a dear friend since. Until activity picks up on this planet I'm just gonna live a nice and quiet life, and then sell my masterfully crafted coffins to all those in need of them. Also, I found some peculiar fruit earlier, tastes pretty good but I think I probably ingested a few of the seeds. Shouldn't be TOO bad for me. Either way, I'm going to go to bed. Hopefully I find some more paper to use so I can keep writing."; pixel_x = 3; pixel_y = 3 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_surface_ikea_ai.dmm b/_maps/RandomRuins/JungleRuins/jungle_surface_ikea_ai.dmm index d9a5d8f13436..6cb02b13e8d8 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_surface_ikea_ai.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_surface_ikea_ai.dmm @@ -145,7 +145,7 @@ /area/ruin/powered) "Q" = ( /obj/item/paper{ - info = "Welcome to your Space Ikea Brand Full AI Kit! There are all the amenities needed to create a functional AI for your installation in this easy to use kit! Note: Warranty void if exposed to: High Humidity, High Temperatures, Grass, Mud, The Jungle. Thank you for shopping Space Ikea!" + default_raw_text = "Welcome to your Space Ikea Brand Full AI Kit! There are all the amenities needed to create a functional AI for your installation in this easy to use kit! Note: Warranty void if exposed to: High Humidity, High Temperatures, Grass, Mud, The Jungle. Thank you for shopping Space Ikea!" }, /turf/open/floor/wood, /area/ruin/powered) diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm index 00dfec4c66ac..018739e20dc4 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm @@ -1330,7 +1330,7 @@ "OW" = ( /obj/structure/table/reinforced, /obj/item/trash/syndi_cakes, -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /turf/open/floor/plating, /area/ruin/jungle/syndifort/jerry) "Ph" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm index ca534b98f6f4..8b39b0a6faa8 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm @@ -172,7 +172,7 @@ "M" = ( /obj/structure/table, /obj/item/paper/crumpled{ - info = "Objective is to locate and secure the reliquary holding the supernatural items, then swing them back to HQ for containment. Simple job for Mystery Inc."; + default_raw_text = "Objective is to locate and secure the reliquary holding the supernatural items, then swing them back to HQ for containment. Simple job for Mystery Inc."; name = "Mission Statement"; pixel_x = -5 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm index b6ee8b8d370a..5001fd7a1831 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ashwalker_shrine.dmm @@ -481,7 +481,7 @@ /obj/structure/stone_tile/slab, /obj/item/paper{ desc = "A hastily written note, written in the Lizard language."; - info = "To all brethren who may read this, we are sorry. We failed to defend the Necropolis, and those from the sky destroyed our home. I write this in my last dying breath, to warn you to not make our mistakes. Don't let them fool you with their actions, all of those who come from the sky are not your friends. They wish to loot and pillage your villages. Please do not make our same mistakes." + default_raw_text = "To all brethren who may read this, we are sorry. We failed to defend the Necropolis, and those from the sky destroyed our home. I write this in my last dying breath, to warn you to not make our mistakes. Don't let them fool you with their actions, all of those who come from the sky are not your friends. They wish to loot and pillage your villages. Please do not make our same mistakes." }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/overmap_encounter/planetoid/lava/explored) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm index 24213d0c1e45..6cad8f589b78 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm @@ -83,7 +83,7 @@ /obj/structure/table/reinforced, /obj/item/paper/crumpled/awaymissions/moonoutpost19/hastey_note{ desc = "It seems like it was written in a hurry"; - info = "Hey, you're probably reading this after having killed me, but that's alright. I probably shot first. Names' Yuto, Syndicate Radio Operator, there used to be another op here, a nice one too. Had syndicate command not forgotten about this post, we'd of probably been executed for sentinmental attachments on the job. Although she didn't have to worry about that, the local fauna got her first. I guess this note is my way of saying sorry. Take what you want from this station and my body, you need it more than I do now. Good luck out there, whoever you are. - Syndicate Radio

e f."; + default_raw_text = "Hey, you're probably reading this after having killed me, but that's alright. I probably shot first. Names' Yuto, Syndicate Radio Operator, there used to be another op here, a nice one too. Had syndicate command not forgotten about this post, we'd of probably been executed for sentinmental attachments on the job. Although she didn't have to worry about that, the local fauna got her first. I guess this note is my way of saying sorry. Take what you want from this station and my body, you need it more than I do now. Good luck out there, whoever you are. - Syndicate Radio

e f."; pixel_x = -3; pixel_y = 2 }, diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm index 8927bf98d6ba..2e167f56d1ef 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm @@ -1724,7 +1724,7 @@ /area/ruin/powered) "ZJ" = ( /obj/item/paper{ - info = "First, pack the medpens in a box, this is nessarary or else the launchpad won't take the pens. Second, leave them on the pad, and click send. From there, they will be managed and transported to mining vendors all over the galaxy."; + default_raw_text = "First, pack the medpens in a box, this is nessarary or else the launchpad won't take the pens. Second, leave them on the pad, and click send. From there, they will be managed and transported to mining vendors all over the galaxy."; name = "Factory loading instructions" }, /turf/open/floor/engine, diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm index 107597ef5d44..00a0e830f8c2 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm @@ -751,7 +751,7 @@ /obj/effect/decal/cleanable/ash, /obj/item/paper{ desc = null; - info = "Well, we failed. The undoable has been done. We were taken out. The great Starfury is stuck in orbit, and many of our systems are damaged. There is no other choice but to evacuate. However, me and a group of talented indviduals will go with me. I will activate the hyperdrive, one last time to scuttle the ship before Nanotrasen can get their grubby little hands on it, on the planet of our greatest victory. If you are worried about me, I have my tegu plushie and all i need to survive for a year. Men and women, its been a honour."; + default_raw_text = "Well, we failed. The undoable has been done. We were taken out. The great Starfury is stuck in orbit, and many of our systems are damaged. There is no other choice but to evacuate. However, me and a group of talented indviduals will go with me. I will activate the hyperdrive, one last time to scuttle the ship before Nanotrasen can get their grubby little hands on it, on the planet of our greatest victory. If you are worried about me, I have my tegu plushie and all i need to survive for a year. Men and women, its been a honour."; name = "Starfury Status Report - January 15th, 2501" }, /turf/open/floor/plating{ diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm index 9afa19fa8b0b..bafc48460b64 100644 --- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm +++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm @@ -933,7 +933,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/paper{ - info = "
NSV Astraeus Ammunition Inventory


Current Time:18:30
Shipment Number:04

Equipment in this shipment:
Leave blank or write 0 if none

Shells: HE - x15,
Shells: Shield Piercing - x8,
Shells: Smart Homing - x5,

  • Clown: Hilarious - x1


  • Master At Arms' signature:"; + default_raw_text = "
    NSV Astraeus Ammunition Inventory


    Current Time:18:30
    Shipment Number:04

    Equipment in this shipment:
    Leave blank or write 0 if none

    Shells: HE - x15,
    Shells: Shield Piercing - x8,
    Shells: Smart Homing - x5,

  • Clown: Hilarious - x1


  • Master At Arms' signature:"; name = "paper - Munitions Inventory"; pixel_x = 7 }, diff --git a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm index ee1685c11dd8..63442dfeb7bf 100644 --- a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm +++ b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm @@ -1009,7 +1009,7 @@ /area/ruin/space) "yv" = ( /obj/structure/table/wood, -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /turf/open/floor/wood, /area/ruin/space/has_grav/corporatemine/crewquarters) "yD" = ( diff --git a/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm b/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm index 0ec82a5068cc..01606dfa8a35 100644 --- a/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm +++ b/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm @@ -369,7 +369,7 @@ /obj/item/paper{ name = "console log"; text = "SPECIMIN BREACH, ACTIVATING LOCKDOWN PRTOCOLS, ACTIVATING EXPLOSIVE DECOUPLE CHARGES."; - info = "SPECIMEN BREACHED FROM CRYO CELL, ACTIVATING LOCKDOWN PRTOCOLS, ACTIVATING DECOUPLING CHARGES. THE SPECIMEN MUST NOT GET TO THE MAIN STATION. RECONTAIN AT ALL COSTS." + default_raw_text = "SPECIMEN BREACHED FROM CRYO CELL, ACTIVATING LOCKDOWN PRTOCOLS, ACTIVATING DECOUPLING CHARGES. THE SPECIMEN MUST NOT GET TO THE MAIN STATION. RECONTAIN AT ALL COSTS." }, /turf/open/floor/plasteel/dark/airless, /area/ruin/unpowered) diff --git a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm index 8b9730281073..0a2e572e6796 100644 --- a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm @@ -2208,7 +2208,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /obj/item/paper/crumpled{ - info = "the buttons... open the doors... did i ever mention how the buttons open the doors?" + default_raw_text = "the buttons... open the doors... did i ever mention how the buttons open the doors?" }, /turf/open/floor/vault, /area/ruin/powered) diff --git a/_maps/RandomRuins/SpaceRuins/oldcodeops.dmm b/_maps/RandomRuins/SpaceRuins/oldcodeops.dmm index 0ea7853aba99..3f8adfb07e98 100644 --- a/_maps/RandomRuins/SpaceRuins/oldcodeops.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldcodeops.dmm @@ -218,7 +218,7 @@ /area/ruin/powered) "KT" = ( /obj/item/paper{ - info = "Nuclear Explosives 101:\n\tHello and thank you for choosing the Syndicate for your nuclear information needs.\nToday's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.\nFirst and foremost, DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.\nPressing any button on the compacted bomb will cause it to extend and bolt itself into place.\nIf this is done to unbolt it one must compeltely log in which at this time may not be possible.\nTo make the device functional:\n1. Place bomb in designated detonation zone\n2. Extend and anchor bomb (attack with hand).\n3. Insert Nuclear Auth. Disk into slot.\n4. Type numeric code into keypad ([]).\n\tNote: If you make a mistake press R to reset the device.\n5. Press the E button to log onto the device\nYou now have activated the device. To deactivate the buttons at anytime for example when\nyou've already prepped the bomb for detonation remove the auth disk OR press the R ont he keypad.\nNow the bomb CAN ONLY be detonated using the timer. A manual det. is not an option.\n\tNote: Nanotrasen is a pain in the neck.\nToggle off the SAFETY.\n\tNote: You wouldn't believe how many Syndicate Operatives with doctorates have forgotten this step\nSo use the - - and + + to set a det time between 5 seconds and 10 minutes.\nThen press the timer toggle button to start the countdown.\nNow remove the auth. disk so that the buttons deactivate.\n\tNote: THE BOMB IS STILL SET AND WILL DETONATE\nNow before you remvoe the disk if you need to mvoe the bomb you can:\nToggle off the anchor, move it, and re-anchor.\n\nGood luck. Remember the order:\nDisk, Code, Safety, Timer, Disk, RUN\nGood luck.\nIntelligence Analysts believe that they are hiding the disk in the control room emergency room" + default_raw_text = "Nuclear Explosives 101:\n\tHello and thank you for choosing the Syndicate for your nuclear information needs.\nToday's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.\nFirst and foremost, DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.\nPressing any button on the compacted bomb will cause it to extend and bolt itself into place.\nIf this is done to unbolt it one must compeltely log in which at this time may not be possible.\nTo make the device functional:\n1. Place bomb in designated detonation zone\n2. Extend and anchor bomb (attack with hand).\n3. Insert Nuclear Auth. Disk into slot.\n4. Type numeric code into keypad ([]).\n\tNote: If you make a mistake press R to reset the device.\n5. Press the E button to log onto the device\nYou now have activated the device. To deactivate the buttons at anytime for example when\nyou've already prepped the bomb for detonation remove the auth disk OR press the R ont he keypad.\nNow the bomb CAN ONLY be detonated using the timer. A manual det. is not an option.\n\tNote: Nanotrasen is a pain in the neck.\nToggle off the SAFETY.\n\tNote: You wouldn't believe how many Syndicate Operatives with doctorates have forgotten this step\nSo use the - - and + + to set a det time between 5 seconds and 10 minutes.\nThen press the timer toggle button to start the countdown.\nNow remove the auth. disk so that the buttons deactivate.\n\tNote: THE BOMB IS STILL SET AND WILL DETONATE\nNow before you remvoe the disk if you need to mvoe the bomb you can:\nToggle off the anchor, move it, and re-anchor.\n\nGood luck. Remember the order:\nDisk, Code, Safety, Timer, Disk, RUN\nGood luck.\nIntelligence Analysts believe that they are hiding the disk in the control room emergency room" }, /obj/structure/table/greyscale, /turf/open/floor/oldshuttle, diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 20d903582dbe..05c9e5aca1c8 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -2074,7 +2074,7 @@ "hX" = ( /obj/structure/table, /obj/item/paper{ - info = "Whatever happens. Happens." + default_raw_text = "Whatever happens. Happens." }, /obj/item/pen, /obj/item/reagent_containers/food/drinks/soda_cans/starkist{ @@ -2138,7 +2138,7 @@ "ih" = ( /obj/structure/table/reinforced, /obj/item/paper{ - info = "They're outside now. I don't know what happened, but I've managed to secure the firing range. I can't get out. Maybe someone will stumble by and we'll be saved. God damn those engineers for insisting on not including communications equipment on station."; + default_raw_text = "They're outside now. I don't know what happened, but I've managed to secure the firing range. I can't get out. Maybe someone will stumble by and we'll be saved. God damn those engineers for insisting on not including communications equipment on station."; pixel_y = 8 }, /turf/open/floor/carpet/nanoweave/purple, diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index c87fb0b62138..dc7fd7e0b454 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1329,7 +1329,7 @@ /obj/effect/turf_decal/corner/transparent/black/diagonal, /obj/item/paper{ name = "Cheap Kalixcian Phrasebook"; - info = "Rsku suok sz zalo - My sugarcube is full of eels." + default_raw_text = "Rsku suok sz zalo - My sugarcube is full of eels." }, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel, diff --git a/_maps/RandomRuins/SpaceRuins/transport18.dmm b/_maps/RandomRuins/SpaceRuins/transport18.dmm index 78fadec146b0..45f5392d89e2 100644 --- a/_maps/RandomRuins/SpaceRuins/transport18.dmm +++ b/_maps/RandomRuins/SpaceRuins/transport18.dmm @@ -1246,7 +1246,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /obj/item/paper/crumpled/fluff{ - info = "Well, journal, it's just you, me, and twelve tons of beer. Haven't heard back from the engineer in about a day since he cooked up that crazy plan to fuel the thrusters with beer, so I reckon I'll go out with a bang. At least I'll die happy." + default_raw_text = "Well, journal, it's just you, me, and twelve tons of beer. Haven't heard back from the engineer in about a day since he cooked up that crazy plan to fuel the thrusters with beer, so I reckon I'll go out with a bang. At least I'll die happy." }, /obj/item/trash/can{ pixel_x = -7; diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm index 10b065eb679d..66ab48f18a92 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm @@ -401,7 +401,7 @@ /area/ruin/powered) "dT" = ( /obj/structure/table/wood, -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /turf/open/floor/plating, /area/ruin/powered) "dU" = ( @@ -752,7 +752,7 @@ "gW" = ( /obj/structure/table/wood, /obj/item/paper/crumpled{ - info = "Please leave money and pawned items on this table. Thank you! -R"; + default_raw_text = "Please leave money and pawned items on this table. Thank you! -R"; pixel_x = 5; pixel_y = 4 }, @@ -2027,7 +2027,7 @@ "sB" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/item/paper/crumpled{ - info = "You know you want to do it. Give in to your pyromaniacal urges. DO IT." + default_raw_text = "You know you want to do it. Give in to your pyromaniacal urges. DO IT." }, /turf/open/floor/plating/rust, /area/ruin/powered) @@ -3732,7 +3732,7 @@ "IG" = ( /obj/structure/table, /obj/item/paper/crumpled{ - info = "Everything on a table or in a container is altogether 100 credits or an item of equivalent value." + default_raw_text = "Everything on a table or in a container is altogether 100 credits or an item of equivalent value." }, /turf/open/floor/plating, /area/ruin/powered) @@ -4076,7 +4076,7 @@ /obj/effect/decal/cleanable/vomit/old, /obj/effect/decal/cleanable/blood/old, /obj/item/paper/crumpled/bloody{ - info = "this place is hell. im done. meet me there, guys."; + default_raw_text = "this place is hell. im done. meet me there, guys."; pixel_x = -8; pixel_y = 6 }, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_tarpit.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_tarpit.dmm index 63f76d83d92e..945c2a49521a 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_tarpit.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_tarpit.dmm @@ -352,7 +352,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/item/paper{ - info = "First, take a scoop out of the pit. Go ahead,d try it out! Second, mix it with raw cement. Then simply add some sand to it, doesn't matter. Then you got yourself some pavement. Simply pour it on some catwalk and you got yourself some roadway. More efficent this way too. Enjoy. On a side note, I hear something outside, better check that out. I'll finish his later." + default_raw_text = "First, take a scoop out of the pit. Go ahead,d try it out! Second, mix it with raw cement. Then simply add some sand to it, doesn't matter. Then you got yourself some pavement. Simply pour it on some catwalk and you got yourself some roadway. More efficent this way too. Enjoy. On a side note, I hear something outside, better check that out. I'll finish his later." }, /turf/open/floor/concrete, /area/ruin/unpowered) diff --git a/_maps/deprecated/Ships/Syndicate_Cascade.dmm b/_maps/deprecated/Ships/Syndicate_Cascade.dmm index 40e4273fe576..cb15ea4de4f8 100644 --- a/_maps/deprecated/Ships/Syndicate_Cascade.dmm +++ b/_maps/deprecated/Ships/Syndicate_Cascade.dmm @@ -1297,7 +1297,7 @@ /obj/machinery/computer/scan_consolenew, /obj/machinery/light/directional/north, /obj/item/paper/crumpled/awaymissions/moonoutpost19/hastey_note{ - info = "oh yea... totally forgot! just a reminder to connect this bad boy to the Research Server. tend to... not work if you forget it... smell ya later!"; + default_raw_text = "oh yea... totally forgot! just a reminder to connect this bad boy to the Research Server. tend to... not work if you forget it... smell ya later!"; name = "PS. about the console" }, /obj/effect/turf_decal/corner/opaque/lime/border{ diff --git a/_maps/deprecated/Ships/independent_high.dmm b/_maps/deprecated/Ships/independent_high.dmm index fc3499dc98be..f0970571986c 100644 --- a/_maps/deprecated/Ships/independent_high.dmm +++ b/_maps/deprecated/Ships/independent_high.dmm @@ -2746,7 +2746,7 @@ /obj/effect/turf_decal/siding/blue{ dir = 9 }, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/machinery/light/directional/west, /turf/open/floor/carpet/nanoweave/blue, /area/ship/bridge) diff --git a/_maps/deprecated/Ships/minutemen_carina.dmm b/_maps/deprecated/Ships/minutemen_carina.dmm index 39a6ff725242..f3c74f713347 100644 --- a/_maps/deprecated/Ships/minutemen_carina.dmm +++ b/_maps/deprecated/Ships/minutemen_carina.dmm @@ -3998,7 +3998,7 @@ pixel_y = 32 }, /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /turf/open/floor/plasteel/dark, /area/ship/bridge) "WE" = ( diff --git a/_maps/deprecated/Ships/syndicate_geneva.dmm b/_maps/deprecated/Ships/syndicate_geneva.dmm index a8a3c806964b..5d86bf0b52f6 100644 --- a/_maps/deprecated/Ships/syndicate_geneva.dmm +++ b/_maps/deprecated/Ships/syndicate_geneva.dmm @@ -50,7 +50,7 @@ pixel_y = 10 }, /obj/item/paper/natural{ - info = "

    Potato battery build instructions

    Did you know that the simplest way to obtain renewable energy sources is to simply grow them in your garden? Everything you need are just easily avalible household items.
    With that said we introduce: the potato battery!
    Follow the instructions below to build one of your own:

    1. Grow a average sized potato
    2. Attach 5 pieces of cable coil
    3. Your potato battery is ready for use

    Remember to be always cautious around electricity!

    SURGEONS NOTE:
    The maximum charge of the battery is proportional to the potency of the grown potato.Remember that the defibrillator requires a cell with a rating of minimum 1000kJ, not every potato will be good enough for it.
    Perhaps some plant traits would affect the cell capacity as well?

    "; + default_raw_text = "

    Potato battery build instructions

    Did you know that the simplest way to obtain renewable energy sources is to simply grow them in your garden? Everything you need are just easily avalible household items.
    With that said we introduce: the potato battery!
    Follow the instructions below to build one of your own:

    1. Grow a average sized potato
    2. Attach 5 pieces of cable coil
    3. Your potato battery is ready for use

    Remember to be always cautious around electricity!

    SURGEONS NOTE:
    The maximum charge of the battery is proportional to the potency of the grown potato.Remember that the defibrillator requires a cell with a rating of minimum 1000kJ, not every potato will be good enough for it.
    Perhaps some plant traits would affect the cell capacity as well?

    "; name = "Potato battery build instructions"; pixel_x = -4; pixel_y = 5 @@ -930,7 +930,7 @@ /area/ship/cargo) "wa" = ( /obj/structure/table/glass, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, diff --git a/_maps/outpost/hangar/test_2_20x20.dmm b/_maps/outpost/hangar/test_2_20x20.dmm index da747c09c0c4..e9b8744419eb 100644 --- a/_maps/outpost/hangar/test_2_20x20.dmm +++ b/_maps/outpost/hangar/test_2_20x20.dmm @@ -1224,7 +1224,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /turf/open/floor/plasteel/dark, /area/hangar) "OF" = ( diff --git a/_maps/outpost/hangar/test_2_40x20.dmm b/_maps/outpost/hangar/test_2_40x20.dmm index 13bb1e35223d..6a724f987ee6 100644 --- a/_maps/outpost/hangar/test_2_40x20.dmm +++ b/_maps/outpost/hangar/test_2_40x20.dmm @@ -1514,7 +1514,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /obj/effect/turf_decal/techfloor{ dir = 4 }, diff --git a/_maps/outpost/outpost_test_2.dmm b/_maps/outpost/outpost_test_2.dmm index e4f50e5e1ffb..5884b870792c 100644 --- a/_maps/outpost/outpost_test_2.dmm +++ b/_maps/outpost/outpost_test_2.dmm @@ -3468,7 +3468,7 @@ /area/outpost/crew/library) "mZ" = ( /obj/structure/table/wood, -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /turf/open/floor/plasteel, /area/outpost/crew/canteen) "na" = ( @@ -10835,7 +10835,7 @@ /turf/open/floor/grass/snow/safe, /area/outpost/hallway/starboard) "Mn" = ( -/obj/machinery/photocopier{ +/obj/machinery/photocopier/nt{ pixel_y = 3 }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/shuttles/shiptest/independent_beluga.dmm b/_maps/shuttles/shiptest/independent_beluga.dmm index 0294a6eb0d8e..8737c51a64e6 100644 --- a/_maps/shuttles/shiptest/independent_beluga.dmm +++ b/_maps/shuttles/shiptest/independent_beluga.dmm @@ -322,9 +322,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/photocopier/faxmachine/longrange{ - department = "Internal Affairs" - }, +/obj/machinery/fax, /obj/machinery/airalarm/directional/north, /obj/machinery/camera/autoname{ dir = 6 diff --git a/_maps/shuttles/shiptest/independent_box.dmm b/_maps/shuttles/shiptest/independent_box.dmm index 37c10aefcca5..0a011231ffbd 100644 --- a/_maps/shuttles/shiptest/independent_box.dmm +++ b/_maps/shuttles/shiptest/independent_box.dmm @@ -2562,7 +2562,7 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew) "OF" = ( -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /obj/structure/table/reinforced, /obj/machinery/light/small/directional/north, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/shiptest/independent_caravan.dmm b/_maps/shuttles/shiptest/independent_caravan.dmm index 951d2e93c3ed..8f9837c4065f 100644 --- a/_maps/shuttles/shiptest/independent_caravan.dmm +++ b/_maps/shuttles/shiptest/independent_caravan.dmm @@ -396,7 +396,7 @@ dir = 8 }, /obj/item/paper/crumpled{ - info = "A mix of 67/33 ratio of oxygen (node 1) and plasma (node 2) works very well, even at 500 kPa." + default_raw_text = "A mix of 67/33 ratio of oxygen (node 1) and plasma (node 2) works very well, even at 500 kPa." }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -1685,7 +1685,7 @@ /obj/item/weldingtool, /obj/item/weldingtool, /obj/item/paper{ - info = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber."; + default_raw_text = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber."; pixel_x = -6 }, /obj/machinery/button/door/incinerator_vent_atmos_aux{ diff --git a/_maps/shuttles/shiptest/independent_halftrack.dmm b/_maps/shuttles/shiptest/independent_halftrack.dmm index 9ceca58b3505..b2a10b35c53e 100644 --- a/_maps/shuttles/shiptest/independent_halftrack.dmm +++ b/_maps/shuttles/shiptest/independent_halftrack.dmm @@ -271,7 +271,7 @@ /area/ship/security/range) "hF" = ( /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /turf/open/floor/plasteel/dark, /area/ship/bridge) "hH" = ( diff --git a/_maps/shuttles/shiptest/independent_junker.dmm b/_maps/shuttles/shiptest/independent_junker.dmm index 17fd847cc8ff..d740a30838a9 100644 --- a/_maps/shuttles/shiptest/independent_junker.dmm +++ b/_maps/shuttles/shiptest/independent_junker.dmm @@ -104,7 +104,7 @@ }, /obj/machinery/computer/helm/retro, /obj/item/paper/construction{ - info = "Yeah, just so you know, I left the fuel and air pumps OFF when I dropped this thing of for you, you're gonna have to go outside and turn em on to start up the engines

    The pumps are outside on the tank things to the left and right on the back of the ship, there's also one in each engine room you'll need to get going." + default_raw_text = "Yeah, just so you know, I left the fuel and air pumps OFF when I dropped this thing of for you, you're gonna have to go outside and turn em on to start up the engines

    The pumps are outside on the tank things to the left and right on the back of the ship, there's also one in each engine room you'll need to get going." }, /turf/open/floor/plating, /area/ship/bridge) @@ -360,7 +360,7 @@ /obj/effect/turf_decal/industrial/warning/dust, /obj/machinery/airalarm/directional/east, /obj/item/paper/construction{ - info = "

    Airlock Instructions


    Because none of you numbnuts can remember them


    1: Bolt the door behind you so you dont bump into it and lose all our air.
    Bolt is the LEFT BUTTON
    2: Go to the air alarm, set it to siphon
    3: When at least most of the gas is out, turn OFF siphon
    4: You can now open the shutters
    I shouldnt have to tell you this, but theyre the RIGHT button

    To go back IN


    1: Close the shutters behind you
    2: Set the air alarm to SIPHON again
    3: When all of the dangerous gas is out, set the air alarm to FILL
    3: Once the pressure is at least 50 kpa, you can set the air alarm back to normal, and unbolt the door

    I still can't fucking believe I have to write this." + default_raw_text = "

    Airlock Instructions


    Because none of you numbnuts can remember them


    1: Bolt the door behind you so you dont bump into it and lose all our air.
    Bolt is the LEFT BUTTON
    2: Go to the air alarm, set it to siphon
    3: When at least most of the gas is out, turn OFF siphon
    4: You can now open the shutters
    I shouldnt have to tell you this, but theyre the RIGHT button

    To go back IN


    1: Close the shutters behind you
    2: Set the air alarm to SIPHON again
    3: When all of the dangerous gas is out, set the air alarm to FILL
    3: Once the pressure is at least 50 kpa, you can set the air alarm back to normal, and unbolt the door

    I still can't fucking believe I have to write this." }, /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -2160,12 +2160,12 @@ /obj/item/paper/crumpled{ pixel_y = 4; pixel_x = -23; - info = "Attempt 301. Longitudinal traction was applied to the upper protruding flesh appendage. Muffled screaming (possibly Jeff?) was observed. Spontaneous amputation occurred and the screaming ceased. Duct tape applied.

    Results: Reployer remains unfunctioning." + default_raw_text = "Attempt 301. Longitudinal traction was applied to the upper protruding flesh appendage. Muffled screaming (possibly Jeff?) was observed. Spontaneous amputation occurred and the screaming ceased. Duct tape applied.

    Results: Reployer remains unfunctioning." }, /obj/item/paper/crumpled{ pixel_y = -12; pixel_x = -3; - info = "Attempt 1180. Salt circle was established with regular rituals. 30mL of blood was dripped directly onto the reployer, and chanting begun 1 minute after the beginning of the attempt. Despite using only lighting from tallow candles, soapbucket scrying was ineffective in troubleshooting the problem.

    Results: Reployer remains unfunctioning." + default_raw_text = "Attempt 1180. Salt circle was established with regular rituals. 30mL of blood was dripped directly onto the reployer, and chanting begun 1 minute after the beginning of the attempt. Despite using only lighting from tallow candles, soapbucket scrying was ineffective in troubleshooting the problem.

    Results: Reployer remains unfunctioning." }, /obj/effect/decal/cleanable/greenglow/filled, /obj/item/screwdriver/old{ diff --git a/_maps/shuttles/shiptest/independent_kilo.dmm b/_maps/shuttles/shiptest/independent_kilo.dmm index 0afc9385d25e..2c9d8a006140 100644 --- a/_maps/shuttles/shiptest/independent_kilo.dmm +++ b/_maps/shuttles/shiptest/independent_kilo.dmm @@ -1588,7 +1588,7 @@ pixel_y = 6 }, /obj/item/paper/crumpled/bloody{ - info = "We struck gold, literally. We found some good rocks out near Centurai-II rich with the stuff. Kae said he and Milos found something out while prospecting, some sort of glowing cube. It's jammed in there good, so we're anchoring until we sort this out..."; + default_raw_text = "We struck gold, literally. We found some good rocks out near Centurai-II rich with the stuff. Kae said he and Milos found something out while prospecting, some sort of glowing cube. It's jammed in there good, so we're anchoring until we sort this out..."; pixel_x = 4; pixel_y = 4 }, diff --git a/_maps/shuttles/shiptest/independent_lagoon.dmm b/_maps/shuttles/shiptest/independent_lagoon.dmm index d36ac91ca88c..c015f0c262a1 100644 --- a/_maps/shuttles/shiptest/independent_lagoon.dmm +++ b/_maps/shuttles/shiptest/independent_lagoon.dmm @@ -5030,7 +5030,7 @@ /obj/structure/table/reinforced, /obj/machinery/recharger, /obj/item/paper{ - info = "Reminder that passengers are NOT permitted to carry weapons on board."; + default_raw_text = "Reminder that passengers are NOT permitted to carry weapons on board."; pixel_x = 4 }, /obj/machinery/computer/helm/viewscreen/directional/east, diff --git a/_maps/shuttles/shiptest/independent_litieguai.dmm b/_maps/shuttles/shiptest/independent_litieguai.dmm index ada476b0d40b..b2317cebc331 100644 --- a/_maps/shuttles/shiptest/independent_litieguai.dmm +++ b/_maps/shuttles/shiptest/independent_litieguai.dmm @@ -285,7 +285,7 @@ /area/ship/storage) "hF" = ( /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /turf/open/floor/plasteel/dark, /area/ship/bridge) "hH" = ( diff --git a/_maps/shuttles/shiptest/independent_nemo.dmm b/_maps/shuttles/shiptest/independent_nemo.dmm index baa8f5731877..35c7e0deb6fd 100644 --- a/_maps/shuttles/shiptest/independent_nemo.dmm +++ b/_maps/shuttles/shiptest/independent_nemo.dmm @@ -417,7 +417,7 @@ }, /obj/structure/frame/machine, /obj/item/paper{ - info = "Missing protolathe. Lost in transit." + default_raw_text = "Missing protolathe. Lost in transit." }, /turf/open/floor/plasteel/dark, /area/ship/science) @@ -1002,7 +1002,7 @@ /obj/item/weldingtool, /obj/item/weldingtool, /obj/item/paper{ - info = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber." + default_raw_text = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber." }, /obj/effect/turf_decal/trimline/opaque/red/line{ dir = 6 @@ -2618,7 +2618,7 @@ }, /obj/machinery/light/directional/east, /obj/item/paper/crumpled{ - info = "A mix of 67/33 ratio of oxygen (node 1) and plasma (node 2) works very well, even at 500 kPa." + default_raw_text = "A mix of 67/33 ratio of oxygen (node 1) and plasma (node 2) works very well, even at 500 kPa." }, /obj/effect/turf_decal/trimline/opaque/blue/line{ dir = 1 diff --git a/_maps/shuttles/shiptest/independent_rigger.dmm b/_maps/shuttles/shiptest/independent_rigger.dmm index 56318a84d956..00347dae6852 100644 --- a/_maps/shuttles/shiptest/independent_rigger.dmm +++ b/_maps/shuttles/shiptest/independent_rigger.dmm @@ -1607,7 +1607,7 @@ "un" = ( /obj/structure/table/reinforced, /obj/machinery/firealarm/directional/west, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/machinery/light/directional/south, /turf/open/floor/carpet/blue, /area/ship/bridge) diff --git a/_maps/shuttles/shiptest/independent_rube_goldberg.dmm b/_maps/shuttles/shiptest/independent_rube_goldberg.dmm index ee5030ed8edf..dd2ae86feb2e 100644 --- a/_maps/shuttles/shiptest/independent_rube_goldberg.dmm +++ b/_maps/shuttles/shiptest/independent_rube_goldberg.dmm @@ -3686,7 +3686,7 @@ "Ju" = ( /obj/structure/table/wood, /obj/machinery/light/directional/east, -/obj/machinery/photocopier/faxmachine{ +/obj/machinery/fax{ pixel_y = -5 }, /obj/effect/turf_decal/corner/opaque/yellow/border{ diff --git a/_maps/shuttles/shiptest/independent_schmiedeberg.dmm b/_maps/shuttles/shiptest/independent_schmiedeberg.dmm index 9dc8f3669a3e..5aa7e7a2ea36 100644 --- a/_maps/shuttles/shiptest/independent_schmiedeberg.dmm +++ b/_maps/shuttles/shiptest/independent_schmiedeberg.dmm @@ -2010,7 +2010,7 @@ /obj/item/gps{ gpstag = "PHARM1" }, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/machinery/button/door{ dir = 4; id = "pharmbridge"; diff --git a/_maps/shuttles/shiptest/independent_shepherd.dmm b/_maps/shuttles/shiptest/independent_shepherd.dmm index adbfee6ac1e6..611beb40135b 100644 --- a/_maps/shuttles/shiptest/independent_shepherd.dmm +++ b/_maps/shuttles/shiptest/independent_shepherd.dmm @@ -51,7 +51,7 @@ "at" = ( /obj/item/paper/natural{ icon_state = "paper_words"; - info = "

    Trappist Recipe


    By Pater Noster

    Servings: 2 Prep Time: 10 mins Cook Time: 1-2 hrs Difficulty: Easy
    Trappist beer is a rich and pleasant beer traditionally brewed by monks.

    Ingredients


    Ale:
    Ale! The core of any good drink. Easily obtainable by fermenting oats in a barrel for a while. This will be the basis of our brew, giving it it's fruity taste and color!
    Holy water:
    This is what a makes a trappist a trappist and not a trapisst, the religion! Real easy to get if you are reading this where you are supposed to be reading this! If the chaplain can't bothered it's also easily harvestable from holymelons as long as you bother to separate it.
    Sugar:
    Sugar is what's gonna make it all come together sweetening the brew and mixing well with the ale from earlier. It's easy to obtain from grinding sugarcanes. Feel free to add liberally.

    Preparation


    1. Mix the ale and holy water together.
    2. Add some sugar to the mix as you keep stirring it for 1 minute.
    3. At this point you're free to just use it as is! But feel free to experiment by adding new flavours and really making it your own!

    Closing statement


    And that's it! Hopefully this guide has been somewhat helpful. A final tip I have is to drink it with bread and cheese, really finishes of the package."; + default_raw_text = "

    Trappist Recipe


    By Pater Noster

    Servings: 2 Prep Time: 10 mins Cook Time: 1-2 hrs Difficulty: Easy
    Trappist beer is a rich and pleasant beer traditionally brewed by monks.

    Ingredients


    Ale:
    Ale! The core of any good drink. Easily obtainable by fermenting oats in a barrel for a while. This will be the basis of our brew, giving it it's fruity taste and color!
    Holy water:
    This is what a makes a trappist a trappist and not a trapisst, the religion! Real easy to get if you are reading this where you are supposed to be reading this! If the chaplain can't bothered it's also easily harvestable from holymelons as long as you bother to separate it.
    Sugar:
    Sugar is what's gonna make it all come together sweetening the brew and mixing well with the ale from earlier. It's easy to obtain from grinding sugarcanes. Feel free to add liberally.

    Preparation


    1. Mix the ale and holy water together.
    2. Add some sugar to the mix as you keep stirring it for 1 minute.
    3. At this point you're free to just use it as is! But feel free to experiment by adding new flavours and really making it your own!

    Closing statement


    And that's it! Hopefully this guide has been somewhat helpful. A final tip I have is to drink it with bread and cheese, really finishes of the package."; name = "paper - Trappist Recipe"; pixel_x = 2; pixel_y = 4 diff --git a/_maps/shuttles/shiptest/independent_shetland.dmm b/_maps/shuttles/shiptest/independent_shetland.dmm index 5bb8ff410f9f..f361632c2ccb 100644 --- a/_maps/shuttles/shiptest/independent_shetland.dmm +++ b/_maps/shuttles/shiptest/independent_shetland.dmm @@ -1490,7 +1490,7 @@ /obj/effect/turf_decal/corner/opaque/bottlegreen/full, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/table/wood, -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /turf/open/floor/plasteel, /area/ship/security) "pC" = ( @@ -2035,7 +2035,7 @@ /obj/effect/turf_decal/corner/opaque/neutral/half{ dir = 1 }, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/item/radio/intercom/directional/south, /turf/open/floor/plasteel/dark, /area/ship/bridge) diff --git a/_maps/shuttles/shiptest/inteq_colossus.dmm b/_maps/shuttles/shiptest/inteq_colossus.dmm index 05e44de71783..17bdf1f38f25 100644 --- a/_maps/shuttles/shiptest/inteq_colossus.dmm +++ b/_maps/shuttles/shiptest/inteq_colossus.dmm @@ -226,7 +226,7 @@ dir = 1 }, /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /turf/open/floor/plasteel/dark, /area/ship/bridge) "cM" = ( diff --git a/_maps/shuttles/shiptest/inteq_hound.dmm b/_maps/shuttles/shiptest/inteq_hound.dmm index 9f198cc11041..5df3e85787e5 100644 --- a/_maps/shuttles/shiptest/inteq_hound.dmm +++ b/_maps/shuttles/shiptest/inteq_hound.dmm @@ -2075,7 +2075,7 @@ "RM" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /turf/open/floor/carpet/orange, /area/ship/bridge) "Sh" = ( diff --git a/_maps/shuttles/shiptest/inteq_talos.dmm b/_maps/shuttles/shiptest/inteq_talos.dmm index 8ecab4702df7..052d1010728b 100644 --- a/_maps/shuttles/shiptest/inteq_talos.dmm +++ b/_maps/shuttles/shiptest/inteq_talos.dmm @@ -799,7 +799,7 @@ pixel_y = -32 }, /obj/item/paper/fluff{ - info = "Artificer team: The AAC is finicky and has a habit of malfunctioning over time. If this happens, remember how to reset it. Swipe your ID card on the control unit and make sure all settings are correct. One airlock should be set to internal, one to external. Once this is done, cycle the airlock to re-enable automatic mode and lift any stuck bolts. If you aren't an artificer, don't mess with it. You shouldn't have access anyway." + default_raw_text = "Artificer team: The AAC is finicky and has a habit of malfunctioning over time. If this happens, remember how to reset it. Swipe your ID card on the control unit and make sure all settings are correct. One airlock should be set to internal, one to external. Once this is done, cycle the airlock to re-enable automatic mode and lift any stuck bolts. If you aren't an artificer, don't mess with it. You shouldn't have access anyway." }, /turf/open/floor/plasteel/tech, /area/ship/engineering) @@ -6255,7 +6255,7 @@ /area/ship/security) "ON" = ( /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/machinery/button/door{ id = "talos_bridge"; name = "Bridge Shutters"; diff --git a/_maps/shuttles/shiptest/minutemen_asclepius.dmm b/_maps/shuttles/shiptest/minutemen_asclepius.dmm index e7a860a9ab66..787be58f3cd0 100644 --- a/_maps/shuttles/shiptest/minutemen_asclepius.dmm +++ b/_maps/shuttles/shiptest/minutemen_asclepius.dmm @@ -2796,9 +2796,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/photocopier/faxmachine/longrange{ - department = "Internal Affairs" - }, +/obj/machinery/fax, /turf/open/floor/plasteel/dark, /area/ship/bridge) "BQ" = ( diff --git a/_maps/shuttles/shiptest/minutemen_cepheus.dmm b/_maps/shuttles/shiptest/minutemen_cepheus.dmm index e2d3237396a9..5196010b4bf5 100644 --- a/_maps/shuttles/shiptest/minutemen_cepheus.dmm +++ b/_maps/shuttles/shiptest/minutemen_cepheus.dmm @@ -3960,7 +3960,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 8 }, diff --git a/_maps/shuttles/shiptest/minutemen_corvus.dmm b/_maps/shuttles/shiptest/minutemen_corvus.dmm index 8d24f0bfba68..edcdbd0fe6ea 100644 --- a/_maps/shuttles/shiptest/minutemen_corvus.dmm +++ b/_maps/shuttles/shiptest/minutemen_corvus.dmm @@ -2726,7 +2726,7 @@ /obj/effect/turf_decal/techfloor{ dir = 6 }, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /turf/open/floor/plasteel/tech, /area/ship/bridge) "Zt" = ( diff --git a/_maps/shuttles/shiptest/minutemen_vela.dmm b/_maps/shuttles/shiptest/minutemen_vela.dmm index cd5468bdc60e..037e1d33c1bb 100644 --- a/_maps/shuttles/shiptest/minutemen_vela.dmm +++ b/_maps/shuttles/shiptest/minutemen_vela.dmm @@ -5848,7 +5848,7 @@ "FK" = ( /obj/machinery/airalarm/directional/south, /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /turf/open/floor/plasteel/tech, /area/ship/bridge) "FN" = ( diff --git a/_maps/shuttles/shiptest/nanotrasen_delta.dmm b/_maps/shuttles/shiptest/nanotrasen_delta.dmm index a25589a9a0be..673dc0cb88ea 100644 --- a/_maps/shuttles/shiptest/nanotrasen_delta.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_delta.dmm @@ -1233,7 +1233,7 @@ /obj/item/folder/yellow, /obj/item/radio/intercom/directional/east, /obj/item/paper/fluff{ - info = "As a reminder, older ore processing lines may come unlinked from their control terminals. In such cases simply use a multitool to restore the data link."; + default_raw_text = "As a reminder, older ore processing lines may come unlinked from their control terminals. In such cases simply use a multitool to restore the data link."; name = "Memo - Processor Reliability" }, /obj/item/multitool{ diff --git a/_maps/shuttles/shiptest/nanotrasen_gecko.dmm b/_maps/shuttles/shiptest/nanotrasen_gecko.dmm index 5b0e55cdb2fa..bba93f324f62 100644 --- a/_maps/shuttles/shiptest/nanotrasen_gecko.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_gecko.dmm @@ -3574,7 +3574,7 @@ /area/ship/maintenance/fore) "JV" = ( /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/structure/sign/poster/retro/random{ pixel_y = 32 }, diff --git a/_maps/shuttles/shiptest/nanotrasen_osprey.dmm b/_maps/shuttles/shiptest/nanotrasen_osprey.dmm index 9d5bb94917aa..27564870d7a9 100644 --- a/_maps/shuttles/shiptest/nanotrasen_osprey.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_osprey.dmm @@ -2958,9 +2958,7 @@ /area/ship/science) "tc" = ( /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange{ - department = "Internal Affairs" - }, +/obj/machinery/fax, /obj/effect/turf_decal/corner/opaque/ntblue, /obj/effect/turf_decal/corner/opaque/ntblue{ dir = 4 diff --git a/_maps/shuttles/shiptest/nanotrasen_skipper.dmm b/_maps/shuttles/shiptest/nanotrasen_skipper.dmm index e36ac484014a..29f6ee5dfbdb 100644 --- a/_maps/shuttles/shiptest/nanotrasen_skipper.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_skipper.dmm @@ -1249,7 +1249,7 @@ name = "Chamber Mixer" }, /obj/item/paper/crumpled{ - info = "A mix of 67/33 ratio of oxygen (node 2) and plasma (node 1) works very well, even at 500 kPa." + default_raw_text = "A mix of 67/33 ratio of oxygen (node 2) and plasma (node 1) works very well, even at 500 kPa." }, /obj/structure/catwalk/over, /turf/open/floor/plating, @@ -1568,9 +1568,7 @@ /obj/effect/turf_decal/corner/transparent/grey/half{ dir = 8 }, -/obj/machinery/photocopier/faxmachine/longrange{ - department = "Internal Affairs" - }, +/obj/machinery/fax, /obj/structure/table, /turf/open/floor/plasteel/dark, /area/ship/crew/office) @@ -5742,7 +5740,7 @@ }, /obj/machinery/disposal/bin, /obj/item/paper{ - info = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber." + default_raw_text = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber." }, /obj/item/weldingtool, /obj/structure/disposalpipe/trunk{ diff --git a/_maps/shuttles/shiptest/pirate_ember.dmm b/_maps/shuttles/shiptest/pirate_ember.dmm index 79b559e7bf88..02cdfcd4d301 100644 --- a/_maps/shuttles/shiptest/pirate_ember.dmm +++ b/_maps/shuttles/shiptest/pirate_ember.dmm @@ -6490,7 +6490,6 @@ /area/ship/security) "Fi" = ( /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine, /obj/structure/table/reinforced{ color = "#c1b6a5" }, @@ -6498,6 +6497,7 @@ /obj/machinery/light_switch{ pixel_y = 24 }, +/obj/machinery/fax/frontiersmen, /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) "Fo" = ( diff --git a/_maps/shuttles/shiptest/pirate_noderider.dmm b/_maps/shuttles/shiptest/pirate_noderider.dmm index 99ccf5354ac2..788d140f2304 100644 --- a/_maps/shuttles/shiptest/pirate_noderider.dmm +++ b/_maps/shuttles/shiptest/pirate_noderider.dmm @@ -923,7 +923,7 @@ }, /obj/item/storage/part_replacer, /obj/item/paper{ - info = "Install the capacitors into the SMESes. You will need them." + default_raw_text = "Install the capacitors into the SMESes. You will need them." }, /turf/open/floor/plasteel/dark, /area/ship/engineering) diff --git a/_maps/shuttles/shiptest/solgov_chronicle.dmm b/_maps/shuttles/shiptest/solgov_chronicle.dmm index 0305b1eb8327..ccc23de3d241 100644 --- a/_maps/shuttles/shiptest/solgov_chronicle.dmm +++ b/_maps/shuttles/shiptest/solgov_chronicle.dmm @@ -771,7 +771,7 @@ /area/ship/crew) "hr" = ( /obj/structure/table/wood/fancy/purple, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/item/desk_flag/solgov{ pixel_x = 8; pixel_y = 13 @@ -2986,7 +2986,7 @@ /turf/open/floor/plasteel/white, /area/ship/security/armory) "CU" = ( -/obj/machinery/photocopier/faxmachine, +/obj/machinery/fax, /obj/structure/table/wood, /obj/machinery/light/small/directional/south, /turf/open/floor/wood, @@ -3558,7 +3558,7 @@ /area/ship/security/armory) "Jh" = ( /obj/structure/table/wood/fancy/blue, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/item/desk_flag/solgov{ pixel_x = -9; pixel_y = 14 diff --git a/_maps/shuttles/shiptest/solgov_paracelsus.dmm b/_maps/shuttles/shiptest/solgov_paracelsus.dmm index cca72fb7ad84..d687b8decc11 100644 --- a/_maps/shuttles/shiptest/solgov_paracelsus.dmm +++ b/_maps/shuttles/shiptest/solgov_paracelsus.dmm @@ -3172,12 +3172,12 @@ /turf/open/floor/wood, /area/ship/crew/crewtwo) "EM" = ( -/obj/machinery/photocopier, /obj/machinery/light_switch{ dir = 4; pixel_x = -24; pixel_y = 5 }, +/obj/machinery/photocopier, /turf/open/floor/wood/ebony, /area/ship/crew/crewtwo) "EQ" = ( diff --git a/_maps/shuttles/shiptest/syndicate_aegis.dmm b/_maps/shuttles/shiptest/syndicate_aegis.dmm index a49b08f1d188..6f807bf52bd3 100644 --- a/_maps/shuttles/shiptest/syndicate_aegis.dmm +++ b/_maps/shuttles/shiptest/syndicate_aegis.dmm @@ -720,7 +720,7 @@ pixel_y = 9 }, /obj/item/radio/intercom/wideband/directional/north, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/effect/turf_decal/siding/wood{ dir = 5 }, diff --git a/_maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm index 1d0d359212f8..d6b4fcd4a79a 100644 --- a/_maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm +++ b/_maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm @@ -175,7 +175,7 @@ /obj/item/modular_computer/tablet/preset/advanced, /obj/item/modular_computer/tablet/preset/advanced, /obj/item/paper{ - info = "Congratulations on your purchase of Cybersun G-1010 Long Range Communication Tables (Chat client installed seperately)" + default_raw_text = "Congratulations on your purchase of Cybersun G-1010 Long Range Communication Tables (Chat client installed seperately)" }, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) @@ -607,7 +607,7 @@ /turf/open/floor/plasteel/tech, /area/ship/crew/dorm) "pa" = ( -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/item/toy/figure/detective{ name = "Intel Buddy"; pixel_x = 5; @@ -1827,7 +1827,7 @@ /obj/item/reagent_containers/pill/cyanide, /obj/item/reagent_containers/pill/cyanide, /obj/item/paper/crumpled{ - info = "Hand this stuff out to the field agents. They'll have a blast." + default_raw_text = "Hand this stuff out to the field agents. They'll have a blast." }, /obj/item/clothing/mask/chameleon, /obj/item/card/id/syndicate/anyone, diff --git a/_maps/shuttles/shiptest/syndicate_gec_lugol.dmm b/_maps/shuttles/shiptest/syndicate_gec_lugol.dmm index 5c4536f92994..04e7a8d4b46c 100644 --- a/_maps/shuttles/shiptest/syndicate_gec_lugol.dmm +++ b/_maps/shuttles/shiptest/syndicate_gec_lugol.dmm @@ -5606,7 +5606,7 @@ dir = 4 }, /obj/item/paper{ - info = "Engineers are advised against constructing singularities and teslas aboard the GEC Engineering Project. Field generators are liable to fail when the vessel docks and undocks - the results of such an event being catastrophic, should a singularity or tesla be kept inside.

    In the event of a singuloose, or a tesloose, crew should fling themselves out of the nearest airlock, in the hopes that their corpse is discovered in the future.

    Have a safe day, GEC management."; + default_raw_text = "Engineers are advised against constructing singularities and teslas aboard the GEC Engineering Project. Field generators are liable to fail when the vessel docks and undocks - the results of such an event being catastrophic, should a singularity or tesla be kept inside.

    In the event of a singuloose, or a tesloose, crew should fling themselves out of the nearest airlock, in the hopes that their corpse is discovered in the future.

    Have a safe day, GEC management."; name = "Warning" }, /turf/open/floor/plating/airless, diff --git a/_maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm b/_maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm index 9f000006780e..98d65bc0b7da 100644 --- a/_maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm @@ -2550,7 +2550,7 @@ pixel_x = 11; pixel_y = -3 }, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/borderfloorblack{ dir = 1 diff --git a/_maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm b/_maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm index b865c4d5ddf6..10558626c75d 100644 --- a/_maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm @@ -5013,7 +5013,7 @@ pixel_x = -4; pixel_y = 5 }, -/obj/machinery/photocopier/faxmachine/longrange{ +/obj/machinery/fax{ pixel_x = 4; pixel_y = 0 }, diff --git a/_maps/shuttles/shiptest/syndicate_luxembourg.dmm b/_maps/shuttles/shiptest/syndicate_luxembourg.dmm index 4542a7bc01ba..2248c1f12c6b 100644 --- a/_maps/shuttles/shiptest/syndicate_luxembourg.dmm +++ b/_maps/shuttles/shiptest/syndicate_luxembourg.dmm @@ -984,7 +984,7 @@ }, /obj/item/paper{ desc = "A piece of paper depicting a extremely pissed up upper manager"; - info = "YOU ARENT SUPPOSED TO BE MINING, HEAR ME!?!! YOU'RE SUPPOSED TO BE SELLING SHIT TO THE CONSUMERS YOU HEAR!! AS PUNISHMENT FOR THE LAST SHIFT, I HAVE REMOVED ALLL OF YOUR MINING TOOLS!! NOW GET BACK TO WORK!!"; + default_raw_text = "YOU ARENT SUPPOSED TO BE MINING, HEAR ME!?!! YOU'RE SUPPOSED TO BE SELLING SHIT TO THE CONSUMERS YOU HEAR!! AS PUNISHMENT FOR THE LAST SHIFT, I HAVE REMOVED ALLL OF YOUR MINING TOOLS!! NOW GET BACK TO WORK!!"; name = "angry letter from upper management" }, /obj/machinery/door/firedoor, @@ -2679,7 +2679,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, /obj/item/paper{ desc = "A piece of paper depicting a extremely pissed up upper manager"; - info = "YOU DAMNNED FOOLS! YOU ARENT SUPPOSED TO USE YOUR STOCK, YOU'RE SUPPOSED TO SELL THEM!! WE AREN'T WASTING MY MONEY ARE WE!?! NOW GET BACK TO WORK!!!"; + default_raw_text = "YOU DAMNNED FOOLS! YOU ARENT SUPPOSED TO USE YOUR STOCK, YOU'RE SUPPOSED TO SELL THEM!! WE AREN'T WASTING MY MONEY ARE WE!?! NOW GET BACK TO WORK!!!"; name = "angry letter from upper management" }, /turf/open/floor/plasteel/patterned/cargo_one, diff --git a/_maps/shuttles/shiptest/syndicate_twinkleshine.dmm b/_maps/shuttles/shiptest/syndicate_twinkleshine.dmm index 9d2a2d9e215a..3a7d800a4f22 100644 --- a/_maps/shuttles/shiptest/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/shiptest/syndicate_twinkleshine.dmm @@ -6604,7 +6604,7 @@ /area/ship/security) "Nm" = ( /obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange, +/obj/machinery/fax, /obj/effect/turf_decal/corner/opaque/syndiered/half{ dir = 8 }, diff --git a/_maps/shuttles/subshuttles/independent_kunai.dmm b/_maps/shuttles/subshuttles/independent_kunai.dmm index 5638e2b3e89f..cdc0efe873f5 100644 --- a/_maps/shuttles/subshuttles/independent_kunai.dmm +++ b/_maps/shuttles/subshuttles/independent_kunai.dmm @@ -5,7 +5,7 @@ network = "KunaiComms" }, /obj/item/paper/crumpled{ - info = "USE THE MULTITOOL TO FILTER YOUR RADIO FREQUENCY" + default_raw_text = "USE THE MULTITOOL TO FILTER YOUR RADIO FREQUENCY" }, /obj/item/multitool, /obj/effect/turf_decal/techfloor{ diff --git a/check_regex.yaml b/check_regex.yaml index bd612289c160..6d12924537bf 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -38,13 +38,13 @@ standards: - exactly: [ - 291, + 290, "non-bitwise << uses", '(?LOGS)" -#define ADMIN_FAX(user, fax, faxtype, sent) "(FAX)" #define ADMIN_PUNISHMENT_BREAK_BONES "Break all bones" #define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt" diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 41de4353ee7e..5814f8f27a1f 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -26,11 +26,14 @@ //EndWS #define COLOR_WHITE "#FFFFFF" +#define COLOR_OFF_WHITE "#FFF5ED" #define COLOR_VERY_LIGHT_GRAY "#EEEEEE" #define COLOR_SILVER "#C0C0C0" #define COLOR_GRAY "#808080" #define COLOR_FLOORTILE_GRAY "#a3a2a0" +#define COLOR_WEBSAFE_DARK_GRAY "#484848" #define COLOR_ALMOST_BLACK "#333333" +#define COLOR_FULL_TONER_BLACK "#101010" #define COLOR_BLACK "#000000" #define COLOR_HALF_TRANSPARENT_BLACK "#0000007A" @@ -70,12 +73,14 @@ #define COLOR_PINK "#FFC0CB" #define COLOR_MOSTLY_PURE_PINK "#E4005B" #define COLOR_BLUSH_PINK "#D84C59" +#define COLOR_FADED_PINK "#ff80d5" #define COLOR_BLUSH_TEAL "#009696" #define COLOR_MAGENTA "#FF00FF" #define COLOR_STRONG_MAGENTA "#B800B8" #define COLOR_PURPLE "#800080" #define COLOR_VIOLET "#B900F7" #define COLOR_STRONG_VIOLET "#6927c5" +#define COLOR_DARK_PURPLE "#551A8B" #define COLOR_ORANGE "#FF9900" #define COLOR_TAN_ORANGE "#FF7B00" diff --git a/code/__DEFINES/fonts.dm b/code/__DEFINES/fonts.dm new file mode 100644 index 000000000000..446a40998898 --- /dev/null +++ b/code/__DEFINES/fonts.dm @@ -0,0 +1,21 @@ +//FONTS: Used by Paper, PhotoCopier, PDA's Notekeeper, NewsCaster, NewsPaper, ModularComputers (and PaperBin once a year). +/// Font used by regular pens +#define PEN_FONT "Verdana" +/// Font used by fancy pens +#define FOUNTAIN_PEN_FONT "Segoe Script" +/// Font used by crayons +#define CRAYON_FONT "Comic Sans MS" +/// Font used by printers +#define PRINTER_FONT "Times New Roman" +/// Font used by charcoal pens +#define CHARCOAL_FONT "Candara" +/// Font used when signing on paper. +#define SIGNATURE_FONT "Segoe Script" + +//pda fonts +#define MONO "Monospaced" +#define VT "VT323" +#define ORBITRON "Orbitron" +#define SHARE "Share Tech Mono" + +GLOBAL_LIST_INIT(pda_styles, sortList(list(MONO, VT, ORBITRON, SHARE))) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index ace9c1222ea2..03796c87e897 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -74,18 +74,6 @@ #define GAME_STATE_PLAYING 3 #define GAME_STATE_FINISHED 4 -//FONTS: -// Used by Paper and PhotoCopier (and PaperBin once a year). -// Used by PDA's Notekeeper. -// 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" -#define CHARCOAL_FONT "Candara" - #define RESIZE_DEFAULT_SIZE 1 //transfer_ai() defines. Main proc in ai_core.dm @@ -203,13 +191,6 @@ GLOBAL_LIST_INIT(ghost_accs_options, list(GHOST_ACCS_NONE, GHOST_ACCS_DIR, GHOST GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DEFAULT_SPRITE, GHOST_OTHERS_THEIR_SETTING)) //Same as ghost_accs_options. -//pda fonts -#define MONO "Monospaced" -#define VT "VT323" -#define ORBITRON "Orbitron" -#define SHARE "Share Tech Mono" - -GLOBAL_LIST_INIT(pda_styles, sortList(list(MONO, VT, ORBITRON, SHARE))) ///////////////////////////////////// // atom.appearence_flags shortcuts // diff --git a/code/__DEFINES/paper.dm b/code/__DEFINES/paper.dm index 7d68f92abb87..cccb3f7b8714 100644 --- a/code/__DEFINES/paper.dm +++ b/code/__DEFINES/paper.dm @@ -1,14 +1,15 @@ +/// Maximimum number of characters that we allow on paper. #define MAX_PAPER_LENGTH 5000 -#define MAX_PAPER_STAMPS 30 // Too low? +/// Max number of stamps that can be applied to the paper in tgui. +#define MAX_PAPER_STAMPS 30 +/// Max number of stamp overlays that we'll add to a piece of paper's icon. #define MAX_PAPER_STAMPS_OVERLAYS 4 +/// Maximum length of input fields. Input fields greater than this length are clamped tgui-side. Input field text input greater than this length is rejected tgui-side, discarded + logged if it reaches DM-side. +#define MAX_PAPER_INPUT_FIELD_LENGTH MAX_NAME_LEN + +/// Should not be able to write on or stamp paper. #define MODE_READING 0 +/// Should be able to write on paper. #define MODE_WRITING 1 +/// Should be able to stamp paper. #define MODE_STAMPING 2 - -///Index access defines for paper/var/add_info_style -#define ADD_INFO_COLOR 1 -#define ADD_INFO_FONT 2 -#define ADD_INFO_SIGN 3 - -///Adds a html style to a text string. Hacky, but that's how inputted text appear on paper sheets after going through the UI. -#define PAPER_MARK_TEXT(text, color, font) "[text]\n \n" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 7ea317c2adc0..39dccd4e64d7 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -28,6 +28,7 @@ #define LAZYADDASSOCLIST(L, K, V) if(!L) { L = list(); } L[K] += list(V); #define LAZYREMOVEASSOC(L, K, V) if(L) { if(L[K]) { L[K] -= V; if(!length(L[K])) L -= K; } if(!length(L)) L = null; } #define LAZYACCESSASSOC(L, I, K) L ? L[I] ? L[I][K] ? L[I][K] : null : null : null +#define LAZYNULL(L) L = null #define QDEL_LAZYLIST(L) for(var/I in L) qdel(I); L = null; /// ORs two lazylists together without inserting errant nulls, returning a new list and not modifying the existing lists. #define LAZY_LISTS_OR(left_list, right_list)\ diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 5cc098cec6c7..87e4beb62c8d 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -546,7 +546,7 @@ GLOBAL_LIST_INIT(binary, list("0","1")) t = parsemarkdown_basic_step1(t) - t = replacetext(t, regex("%s(?:ign)?(?=\\s|$)", "igm"), user ? "[user.real_name]" : "") + t = replacetext(t, regex("%s(?:ign)?(?=\\s|$)", "igm"), user ? "[user.real_name]" : "") t = replacetext(t, regex("%f(?:ield)?(?=\\s|$)", "igm"), "") t = parsemarkdown_basic_step2(t) diff --git a/code/_globalvars/lists/faxes.dm b/code/_globalvars/lists/faxes.dm new file mode 100644 index 000000000000..4051e489e1d6 --- /dev/null +++ b/code/_globalvars/lists/faxes.dm @@ -0,0 +1,26 @@ +/** + * This defines the list of faxes managed by the server administrators. They are not physically present in + * the game, but are shown in the fax list as existing. + * Lists: + * * additional_faxes_list - A list of "legal" faxes available with authorization. + * * frontier_faxes_list - List of faxes available after hacking. + * + * The list consists of the following elements: + * * fax_name - The name displayed in the fax list. + * * button_color - The color of this fax button in the list of all faxes. + */ +GLOBAL_LIST_INIT(additional_faxes_list, list( + list("fax_name" = "NanoTrasen Central Command", "button_color" = "#46B946"), + list("fax_name" = "Inteq Management Field Command", "button_color" = "#FACE65"), + list("fax_name" = "Colonial Minutemen Headquarters", "button_color" = "#538ACF"), + list("fax_name" = "Saint-Roumain Council of Huntsmen", "button_color" = "#6B443D"), + list("fax_name" = "SolGov Department of Administrative Affairs", "button_color" = "#536380"), + list("fax_name" = "Syndicate Coordination Center", "button_color" = "#B22C20"), + list("fax_name" = "Outpost Administration", "button_color" = "#dddfc9"), +)) + +GLOBAL_LIST_INIT(frontier_faxes_list, list( + list("fax_name" = "Frontiersmen Communications Outpost", "button_color" = "#70654C") +)) + +GLOBAL_LIST_EMPTY(fax_machines) //list of all fax machines diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index d72feb90a3d1..555de9ba3fad 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -37,10 +37,10 @@ SUBSYSTEM_DEF(communications) var/datum/comm_message/M = new(sending.title,sending.content,sending.possible_answers.Copy()) C.add_message(M) if(print) - var/obj/item/paper/P = new /obj/item/paper(C.loc) - P.name = "paper - '[sending.title]'" - P.info = sending.content - P.update_icon() + var/obj/item/paper/printed_paper = new /obj/item/paper(C.loc) + printed_paper.name = "paper - '[sending.title]'" + printed_paper.add_raw_text(sending.content) + printed_paper.update_appearance() #undef COMMUNICATION_COOLDOWN #undef COMMUNICATION_COOLDOWN_AI diff --git a/code/datums/wires/fax.dm b/code/datums/wires/fax.dm new file mode 100644 index 000000000000..3a0193e5a4c2 --- /dev/null +++ b/code/datums/wires/fax.dm @@ -0,0 +1,51 @@ +/datum/wires/fax + holder_type = /obj/machinery/fax + proper_name = "Fax Unit" + +/datum/wires/fax/New(atom/holder) + wires = list(WIRE_SHOCK, WIRE_SIGNAL, WIRE_THROW, WIRE_LOADCHECK,) + add_duds(1) + return ..() + +/datum/wires/fax/interactable(mob/user) + . = ..() + if(!.) + return FALSE + var/obj/machinery/fax/machine = holder + if(!issilicon(user) && machine.seconds_electrified && machine.shock(user, 100)) + return FALSE + if(machine.panel_open) + return TRUE + +/datum/wires/fax/get_status() + var/obj/machinery/fax/machine = holder + var/list/status = list() + status += "A red light is [machine.seconds_electrified ? "blinking" : "off"]." + status += "The network light is [machine.visible_to_network ? "on" : "off"]." + status += "The output servo is [machine.hurl_contents ? "spinning rapidly" : "on"]." + status += "The input servo is [machine.allow_exotic_faxes ? "spinning rapidly" : "on"]." + return status + +/datum/wires/fax/on_pulse(wire) + var/obj/machinery/fax/machine = holder + switch(wire) + if(WIRE_SHOCK) + machine.seconds_electrified = MACHINE_DEFAULT_ELECTRIFY_TIME + if(WIRE_SIGNAL) + machine.visible_to_network = !machine.visible_to_network + if(WIRE_THROW) + machine.hurl_contents = !machine.hurl_contents + if(WIRE_LOADCHECK) + machine.allow_exotic_faxes = !machine.allow_exotic_faxes + +/datum/wires/fax/on_cut(wire, mend) + var/obj/machinery/fax/machine = holder + switch(wire) + if(WIRE_SHOCK) + machine.seconds_electrified = (mend) ? MACHINE_NOT_ELECTRIFIED : MACHINE_ELECTRIFIED_PERMANENT + if(WIRE_SIGNAL) + machine.visible_to_network = mend + if(WIRE_THROW) + machine.hurl_contents = !mend + if(WIRE_LOADCHECK) + machine.allow_exotic_faxes = !mend diff --git a/code/game/MapData/shuttles/nanotrasen_mimir.dm b/code/game/MapData/shuttles/nanotrasen_mimir.dm index 8a64f99f2813..93dc3c7fe3ad 100644 --- a/code/game/MapData/shuttles/nanotrasen_mimir.dm +++ b/code/game/MapData/shuttles/nanotrasen_mimir.dm @@ -40,7 +40,7 @@ /obj/item/paper/fluff/mimir/treasure name = "Bluejack's Note" - info = "To whomever finds this note, \ + default_raw_text = "To whomever finds this note, \ I've left behind some things behind that may help your endeavors. The first of them, \ a bag found where the condemned swirl spirits in a whirlpool. The second, a bag \ found under my seat of chance and uncanny luck. The third and final bag can be found \ @@ -49,9 +49,9 @@ /obj/item/paper/fluff/mimir/jacket name = "Warden's Secret" - info = "A warden's seat is their place of rest. Look under where your ass rests best." + default_raw_text = "A warden's seat is their place of rest. Look under where your ass rests best." /obj/item/paper/fluff/mimir/recycler name = "TURN ON THE RECYCLER!!!" - info = "IMPORTANT!!!! TURN ON THE AIR RECYCLER IN THIS ROOM!!! JUST TURN ON AND MAX\ + default_raw_text = "IMPORTANT!!!! TURN ON THE AIR RECYCLER IN THIS ROOM!!! JUST TURN ON AND MAX\ ALL THE ATMOS IN THIS ROOM!!!!!!!!" diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 5ecfdcb5c4f0..17219e83ebfc 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -43,6 +43,9 @@ var/internal_light = TRUE //Whether it can light up when an AI views it + /// A copy of the last paper object that was shown to this camera. + var/obj/item/paper/last_shown_paper + /obj/machinery/camera/preset/toxins //Bomb test site in space name = "Hardened Bomb-Test Camera" desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site. An external light is attached to the top." @@ -106,6 +109,7 @@ if(bug.current == src) bug.current = null bug = null + QDEL_NULL(last_shown_paper) return ..() /obj/machinery/camera/examine(mob/user) @@ -260,74 +264,87 @@ return TRUE -/obj/machinery/camera/attackby(obj/item/I, mob/living/user, params) +/obj/machinery/camera/attackby(obj/item/attacking_item, mob/living/user, params) // UPGRADES if(panel_open) - if(I.tool_behaviour == TOOL_ANALYZER) + if(attacking_item.tool_behaviour == TOOL_ANALYZER) if(!isXRay(TRUE)) //don't reveal it was already upgraded if was done via MALF AI Upgrade Camera Network ability - if(!user.temporarilyRemoveItemFromInventory(I)) + if(!user.temporarilyRemoveItemFromInventory(attacking_item)) return upgradeXRay(FALSE, TRUE) - to_chat(user, "You attach [I] into [assembly]'s inner circuits.") - qdel(I) + to_chat(user, "You attach [attacking_item] into [assembly]'s inner circuits.") + qdel(attacking_item) else to_chat(user, "[src] already has that upgrade!") return - else if(istype(I, /obj/item/stack/sheet/mineral/plasma)) + else if(istype(attacking_item, /obj/item/stack/sheet/mineral/plasma)) if(!isEmpProof(TRUE)) //don't reveal it was already upgraded if was done via MALF AI Upgrade Camera Network ability - if(I.use_tool(src, user, 0, amount=1)) + if(attacking_item.use_tool(src, user, 0, amount=1)) upgradeEmpProof(FALSE, TRUE) - to_chat(user, "You attach [I] into [assembly]'s inner circuits.") + to_chat(user, "You attach [attacking_item] into [assembly]'s inner circuits.") else to_chat(user, "[src] already has that upgrade!") return - else if(istype(I, /obj/item/assembly/prox_sensor)) + else if(istype(attacking_item, /obj/item/assembly/prox_sensor)) if(!isMotion()) - if(!user.temporarilyRemoveItemFromInventory(I)) + if(!user.temporarilyRemoveItemFromInventory(attacking_item)) return upgradeMotion() - to_chat(user, "You attach [I] into [assembly]'s inner circuits.") - qdel(I) + to_chat(user, "You attach [attacking_item] into [assembly]'s inner circuits.") + qdel(attacking_item) else to_chat(user, "[src] already has that upgrade!") return // OTHER - if((istype(I, /obj/item/paper) || istype(I, /obj/item/pda)) && isliving(user)) - var/mob/living/U = user - var/obj/item/paper/X = null - var/obj/item/pda/P = null - - var/itemname = "" - var/info = "" - if(istype(I, /obj/item/paper)) - X = I - itemname = X.name - info = X.info - else - P = I - itemname = P.name - info = P.notehtml - to_chat(U, "You hold \the [itemname] up to the camera...") - U.changeNext_move(CLICK_CD_MELEE) - for(var/mob/O in GLOB.player_list) - if(isAI(O)) - var/mob/living/silicon/ai/AI = O - if(AI.control_disabled || (AI.stat == DEAD)) - return - if(U.name == "Unknown") - to_chat(AI, "[U] holds \a [itemname] up to one of your cameras ...") + if(istype(attacking_item, /obj/item/paper) && isliving(user)) + // Grab the paper, sanitise the name as we're about to just throw it into chat wrapped in HTML tags. + var/obj/item/paper/paper = attacking_item + + // Make a complete copy of the paper, store a ref to it locally on the camera. + last_shown_paper = paper.copy(paper.type, null); + + // Then sanitise the name because we're putting it directly in chat later. + var/item_name = sanitize(last_shown_paper.name) + + // Start the process of holding it up to the camera. + to_chat(user, span_notice("You hold \the [item_name] up to the camera...")) + user.log_talk(item_name, LOG_GAME, log_globally=TRUE, tag="Pressed to camera") + user.changeNext_move(CLICK_CD_MELEE) + + // And make a weakref we can throw around to all potential viewers. + last_shown_paper.camera_holder = WEAKREF(src) + + // Iterate over all living mobs and check if anyone is elibile to view the paper. + // This is backwards, but cameras don't store a list of people that are looking through them, + // and we'll have to iterate this list anyway so we can use it to pull out AIs too. + for(var/mob/potential_viewer in GLOB.player_list) + // All AIs view through cameras, so we need to check them regardless. + if(isAI(potential_viewer)) + var/mob/living/silicon/ai/ai = potential_viewer + if(ai.control_disabled || (ai.stat == DEAD)) + continue + + log_paper("[key_name(user)] held [last_shown_paper] up to [src], requesting [key_name(ai)] read it.") + + if(user.name == "Unknown") + to_chat(ai, "[span_name(user)] holds \a [item_name] up to one of your cameras ...") else - to_chat(AI, "[U] holds \a [itemname] up to one of your cameras ...") - AI.last_paper_seen = "[itemname][info]" - else if (O.client.eye == src) - to_chat(O, "[U] holds \a [itemname] up to one of the cameras ...") - O << browse(text("[][]", itemname, info), text("window=[]", itemname)) + to_chat(ai, "[user] holds \a [item_name] up to one of your cameras ...") + continue + + // If it's not an AI, eye if the client's eye is set to the camera. I wonder if this even works anymore with tgui camera apps and stuff? + if (potential_viewer.client?.eye == src) + log_paper("[key_name(user)] held [last_shown_paper] up to [src], and [key_name(potential_viewer)] may read it.") + to_chat(potential_viewer, "[span_name(user)] holds \a [item_name] up to your camera...") + return + + if(istype(attacking_item, /obj/item/camera_bug)) return - else if(istype(I, /obj/item/camera_bug)) + else if(istype(attacking_item, /obj/item/camera_bug)) if(!can_use()) to_chat(user, "Camera non-functional.") return @@ -337,12 +354,12 @@ bug = null else to_chat(user, "Camera bugged.") - bug = I + bug = attacking_item bug.bugged_cameras[src.c_tag] = src return - else if(istype(I, /obj/item/pai_cable)) - var/obj/item/pai_cable/cable = I + else if(istype(attacking_item, /obj/item/pai_cable)) + var/obj/item/pai_cable/cable = attacking_item cable.plugin(src, user) return diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 6e1164882573..991a89ffb8bc 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -591,7 +591,7 @@ /obj/item/paper/guides/jobs/medical/cloning name = "paper - 'H-87 Cloning Apparatus Manual" - info = {"

    Getting Started

    + default_raw_text = {"

    Getting Started

    Congratulations, you have has purchased the H-87 industrial cloning device!
    Using the H-87 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the scan option to create a new profile!
    That's all there is to it!
    diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index a95f8c4b51cb..39f86e7ca889 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -605,12 +605,12 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) if (!(printing)) printing = 1 sleep(50) - var/obj/item/paper/P = new /obj/item/paper(loc) + var/obj/item/paper/printed_paper = new /obj/item/paper(loc) var/t1 = "Crew Manifest:
    " for(var/datum/data/record/t in sortRecord(GLOB.data_core.general)) t1 += t.fields["name"] + " - " + t.fields["rank"] + "
    " - P.info = t1 - P.name = "paper- 'Crew Manifest'" + printed_paper.add_raw_text(t1) + printed_paper.name = "paper- 'Crew Manifest'" printing = null playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) if (inserted_modify_id) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index e549a01ed6ea..498342d62891 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -506,26 +506,27 @@ GLOB.data_core.medicalPrintCount++ playsound(loc, 'sound/items/poster_being_created.ogg', 100, TRUE) sleep(30) - var/obj/item/paper/P = new /obj/item/paper(loc) - P.info = "
    Medical Record - (MR-[GLOB.data_core.medicalPrintCount])

    " + var/obj/item/paper/printed_paper = new /obj/item/paper(loc) + var/final_paper_text = "
    Medical Record - (MR-[GLOB.data_core.medicalPrintCount])

    " if(active1 in GLOB.data_core.general) - P.info += text("Name: [] ID: []
    \nGender: []
    \nAge: []
    ", active1.fields["name"], active1.fields["id"], active1.fields["gender"], active1.fields["age"]) - P.info += "\nSpecies: [active1.fields["species"]]
    " - P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) + final_paper_text += text("Name: [] ID: []
    \nGender: []
    \nAge: []
    ", active1.fields["name"], active1.fields["id"], active1.fields["gender"], active1.fields["age"]) + final_paper_text += "\nSpecies: [active1.fields["species"]]
    " + final_paper_text += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) else - P.info += "General Record Lost!
    " + final_paper_text += "General Record Lost!
    " if(active2 in GLOB.data_core.medical) - P.info += text("
    \n
    Medical Data

    \nBlood Type: []
    \nDNA: []
    \n
    \nMinor Disabilities: []
    \nDetails: []
    \n
    \nMajor Disabilities: []
    \nDetails: []
    \n
    \nAllergies: []
    \nDetails: []
    \n
    \nCurrent Diseases: [] (per disease info placed in log/comment section)
    \nDetails: []
    \n
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", active2.fields["blood_type"], active2.fields["b_dna"], active2.fields["mi_dis"], active2.fields["mi_dis_d"], active2.fields["ma_dis"], active2.fields["ma_dis_d"], active2.fields["alg"], active2.fields["alg_d"], active2.fields["cdi"], active2.fields["cdi_d"], active2.fields["notes"]) + final_paper_text += text("
    \n
    Medical Data

    \nBlood Type: []
    \nDNA: []
    \n
    \nMinor Disabilities: []
    \nDetails: []
    \n
    \nMajor Disabilities: []
    \nDetails: []
    \n
    \nAllergies: []
    \nDetails: []
    \n
    \nCurrent Diseases: [] (per disease info placed in log/comment section)
    \nDetails: []
    \n
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", active2.fields["blood_type"], active2.fields["b_dna"], active2.fields["mi_dis"], active2.fields["mi_dis_d"], active2.fields["ma_dis"], active2.fields["ma_dis_d"], active2.fields["alg"], active2.fields["alg_d"], active2.fields["cdi"], active2.fields["cdi_d"], active2.fields["notes"]) var/counter = 1 while(active2.fields[text("com_[]", counter)]) - P.info += text("[]
    ", active2.fields[text("com_[]", counter)]) + final_paper_text += text("[]
    ", active2.fields[text("com_[]", counter)]) counter++ - P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, active1.fields["name"]) + printed_paper.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, active1.fields["name"]) else - P.info += "Medical Record Lost!
    " - P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, "Record Lost") - P.info += "" - P.update_icon() + final_paper_text += "Medical Record Lost!
    " + printed_paper.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, "Record Lost") + final_paper_text += "" + printed_paper.add_raw_text(final_paper_text) + printed_paper.update_appearance() printing = null add_fingerprint(usr) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index eaef9722c862..de05cce3ac77 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -373,19 +373,19 @@ What a mess.*/ GLOB.data_core.securityPrintCount++ playsound(loc, 'sound/items/poster_being_created.ogg', 100, TRUE) sleep(30) - var/obj/item/paper/P = new /obj/item/paper(loc) - P.info = "
    Security Record - (SR-[GLOB.data_core.securityPrintCount])

    " + var/obj/item/paper/printed_paper = new /obj/item/paper(loc) + var/final_paper_text = "
    Security Record - (SR-[GLOB.data_core.securityPrintCount])

    " if((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))) - P.info += text("Name: [] ID: []
    \nGender: []
    \nAge: []
    ", active1.fields["name"], active1.fields["id"], active1.fields["gender"], active1.fields["age"]) - P.info += "\nSpecies: [active1.fields["species"]]
    " - P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) + final_paper_text += text("Name: [] ID: []
    \nGender: []
    \nAge: []
    ", active1.fields["name"], active1.fields["id"], active1.fields["gender"], active1.fields["age"]) + final_paper_text += "\nSpecies: [active1.fields["species"]]
    " + final_paper_text += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) else - P.info += "General Record Lost!
    " + final_paper_text += "General Record Lost!
    " if((istype(active2, /datum/data/record) && GLOB.data_core.security.Find(active2))) - P.info += text("
    \n
    Security Data

    \nCriminal Status: []", active2.fields["criminal"]) + final_paper_text += text("
    \n
    Security Data

    \nCriminal Status: []", active2.fields["criminal"]) - P.info += "
    \n
    \nCrimes:
    \n" - P.info +={" + final_paper_text += "
    \n
    \nCrimes:
    \n" + final_paper_text +={"
    @@ -393,24 +393,25 @@ What a mess.*/ "} for(var/datum/data/crime/c in active2.fields["crim"]) - P.info += "" - P.info += "" - P.info += "" - P.info += "" - P.info += "" - P.info += "
    Crime DetailsTime Added
    [c.crimeName][c.crimeDetails][c.author][c.time]
    " - - P.info += text("
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", active2.fields["notes"]) + final_paper_text += "[c.crimeName]" + final_paper_text += "[c.crimeDetails]" + final_paper_text += "[c.author]" + final_paper_text += "[c.time]" + final_paper_text += "" + final_paper_text += "" + + final_paper_text += text("
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", active2.fields["notes"]) var/counter = 1 while(active2.fields[text("com_[]", counter)]) - P.info += text("[]
    ", active2.fields[text("com_[]", counter)]) + final_paper_text += text("[]
    ", active2.fields[text("com_[]", counter)]) counter++ - P.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, active1.fields["name"]) + printed_paper.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, active1.fields["name"]) else - P.info += "Security Record Lost!
    " - P.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, "Record Lost") - P.info += "" - P.update_icon() + final_paper_text += "Security Record Lost!
    " + printed_paper.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, "Record Lost") + final_paper_text += "" + printed_paper.add_raw_text(final_paper_text) + printed_paper.update_appearance() printing = null if("Print Poster") if(!(printing)) diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index f11bb3234f66..ca93d30dfdda 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -98,20 +98,20 @@ if(record) name = "paper - [record.name]" - info += {"

    [record.name]

    + add_raw_text ({"

    [record.name]

    "} +
  • Shockwave Radius: [record.factual_radius["shockwave_radius"]]
  • "}) if(length(record.theory_radius)) - info += {""}) - update_icon() + update_appearance() /obj/machinery/doppler_array/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_WRENCH) diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index a05da266e123..cc9f8f6d3d59 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -189,4 +189,4 @@ /obj/item/paper/guides/quantumpad name = "Quantum Pad For Dummies" - info = "
    Dummies Guide To Quantum Pads


    Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

    How to set up your Quantum Pad(tm)


    1.Unscrew the Quantum Pad(tm) you wish to link.
    2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
    3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

    If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
    " + default_raw_text = "
    Dummies Guide To Quantum Pads


    Do you hate the concept of having to use your legs, let alone walk to places? Well, with the Quantum Pad (tm), never again will the fear of cardio keep you from going places!

    How to set up your Quantum Pad(tm)


    1.Unscrew the Quantum Pad(tm) you wish to link.
    2. Use your multi-tool to cache the buffer of the Quantum Pad(tm) you wish to link.
    3. Apply the multi-tool to the secondary Quantum Pad(tm) you wish to link to the first Quantum Pad(tm)

    If you followed these instructions carefully, your Quantum Pad(tm) should now be properly linked together for near-instant movement across the station! Bear in mind that this is technically a one-way teleport, so you'll need to do the same process with the secondary pad to the first one if you wish to travel between both.
    " diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index eabe2c75fa72..1d002076874e 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -204,6 +204,6 @@ /obj/item/paper/guides/recycler name = "paper - 'garbage duty instructions'" - info = "

    New Assignment

    You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect the said trash.

    There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!" + default_raw_text = "

    New Assignment

    You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect the said trash.

    There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!" #undef SAFETY_COOLDOWN diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 6eff93068c3b..d3bf1657273f 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -55,9 +55,9 @@ screen = MSG_MON_SCREEN_HACKED spark_system.set_up(5, 0, src) spark_system.start() - var/obj/item/paper/monitorkey/MK = new(loc, linkedServer) + var/obj/item/paper/monitorkey/monitor_key_paper = new(loc, linkedServer) // Will help make emagging the console not so easy to get away with. - MK.info += "

    £%@%(*$%&(£&?*(%&£/{}" + monitor_key_paper.add_raw_text("

    £%@%(*$%&(£&?*(%&£/{}") var/time = 100 * length(linkedServer.decryptkey) addtimer(CALLBACK(src, .proc/UnmagConsole), time) message = rebootmsg @@ -469,8 +469,9 @@ return INITIALIZE_HINT_LATELOAD /obj/item/paper/monitorkey/proc/print(obj/machinery/telecomms/message_server/server) - info = "

    Daily Key Reset


    The new message monitor key is '[server.decryptkey]'.
    Please keep this a secret and away from the clown.
    If necessary, change the password to a more secure one." + add_raw_text("

    Daily Key Reset


    The new message monitor key is '[server.decryptkey]'.
    Please keep this a secret and away from the clown.
    If necessary, change the password to a more secure one.") add_overlay("paper_words") + update_appearance() /obj/item/paper/monitorkey/LateInitialize() for (var/obj/machinery/telecomms/message_server/preset/server in GLOB.telecomms_list) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c51f86cbbcd9..2153f2cd993d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1103,3 +1103,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/proc/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker) if(SEND_SIGNAL(src, COMSIG_ITEM_OFFER_TAKEN, offerer, taker) & COMPONENT_OFFER_INTERRUPT) return TRUE + +/** + * Returns null if this object cannot be used to interact with physical writing mediums such as paper. + * Returns a list of key attributes for this object interacting with paper otherwise. + */ +/obj/item/proc/get_writing_implement_details() + return null diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index ee8d1261c64e..d410dfef0d7d 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -228,6 +228,8 @@ M.name = replacetext(M.name,oldtitle,title) for(var/obj/machinery/door/M in A) M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/fax/M in A) + M.fax_name = replacetext(M.fax_name,oldtitle,title) //TODO: much much more. Unnamed airlocks, cameras, etc. /obj/item/areaeditor/shuttle diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 67085568371d..7e7bd499a19b 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -683,6 +683,14 @@ req_components = list( /obj/item/stack/sheet/glass = 1, /obj/item/vending_refill/donksoft = 1) +/obj/item/circuitboard/machine/fax + name = "Fax Machine" + build_path = /obj/machinery/fax + req_components = list( + /obj/item/stock_parts/subspace/crystal = 1, + /obj/item/stock_parts/scanning_module = 1, + /obj/item/stock_parts/micro_laser = 1, + /obj/item/stock_parts/manipulator = 1,) //Medical diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 2022d7b2dec4..9c6809cf3dbc 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -83,7 +83,7 @@ /obj/item/paper/fluff/stations/soap name = "ancient janitorial poem" desc = "An old paper that has passed many hands." - info = "The legend of the omega soap

    Essence of potato. Juice, not grind.

    A cactus brew, fermented into wine.

    powder of monkey, to help the workload.

    Some Krokodil, because meth would explode.

    Nitric acid and Baldium, for organic dissolving.

    A cup filled with Hooch, for sinful absolving

    Some Bluespace Dust, for removal of stains.

    A syringe full of Pump-up, it's security's bane.

    Add a can of Space Cola, because we've been paid.

    Heat as hot as you can, let the soap be your blade.

    Ten units of each regent create a soap that could topple all others." + default_raw_text = "The legend of the omega soap

    Essence of potato. Juice, not grind.

    A cactus brew, fermented into wine.

    powder of monkey, to help the workload.

    Some Krokodil, because meth would explode.

    Nitric acid and Baldium, for organic dissolving.

    A cup filled with Hooch, for sinful absolving

    Some Bluespace Dust, for removal of stains.

    A syringe full of Pump-up, it's security's bane.

    Add a can of Space Cola, because we've been paid.

    Heat as hot as you can, let the soap be your blade.

    Ten units of each regent create a soap that could topple all others." /obj/item/soap/proc/decreaseUses(mob/user) var/skillcheck = user.mind.get_skill_modifier(/datum/skill/cleaning, SKILL_SPEED_MODIFIER) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 5485d17bdfa4..de828a547d4d 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -16,6 +16,14 @@ * Crayons */ +/obj/item/toy/crayon/get_writing_implement_details() + return list( + interaction_mode = MODE_WRITING, + font = CRAYON_FONT, + color = paint_color, + use_bold = TRUE, + ) + /obj/item/toy/crayon name = "crayon" desc = "A colourful crayon. Looks tasty. Mmmm..." diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index be28bb08da02..d507e1594f5f 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -974,10 +974,10 @@ GLOBAL_LIST_EMPTY(PDAs) if(!scanmode && istype(A, /obj/item/paper) && owner) var/obj/item/paper/PP = A - if(!PP.info) + if(!PP.get_total_length()) to_chat(user, "Unable to scan! Paper is blank.") return - notehtml = PP.info + notehtml = PP.get_raw_text() note = replacetext(notehtml, "
    ", "\[br\]") note = replacetext(note, "
  • ", "\[*\]") note = replacetext(note, "