From 18ff288a923d3ff146789236dd514178c6f2179f Mon Sep 17 00:00:00 2001
From: RustingWithYou <63625389+RustingWithYou@users.noreply.github.com>
Date: Mon, 15 Apr 2024 20:45:45 +1200
Subject: [PATCH] Survey Probe Language Output (#18920)
Survey probes can now output in different languages. Survey probes with
appropriate languages have also been added to the SCC Scout Ship, COC
Surveyor, Database Freighter and House Volvalaad ships, as these are
scientific/exploration vessels.
---
code/game/objects/structures/survey_probe.dm | 69 ++++++++++++++++---
html/changelogs/RustingWithYou - probing.yml | 41 +++++++++++
.../ships/coc/coc_surveyor/coc_surveyor.dmm | 41 ++++++++---
.../dominian_science_vessel.dmm | 63 ++++++++++++-----
.../database_freighter/database_freighter.dmm | 32 ++++++++-
maps/away/ships/scc/scc_scout_ship.dmm | 21 ++++--
6 files changed, 224 insertions(+), 43 deletions(-)
create mode 100644 html/changelogs/RustingWithYou - probing.yml
diff --git a/code/game/objects/structures/survey_probe.dm b/code/game/objects/structures/survey_probe.dm
index 5a5691b477a..1913a6703c8 100644
--- a/code/game/objects/structures/survey_probe.dm
+++ b/code/game/objects/structures/survey_probe.dm
@@ -6,9 +6,7 @@
desc_extended = "\
It has different devices, samplers, and drill bits, as well as internal processing computers, \
to inspect the atmosphere, ground, soil, crust, and many other properties and qualities of planetary bodies. \
- Commonly used by surveyors, explorers, pioneers, all over the Spur, looking for planets that are actually worth settling or exploiting for resources. \
- This probe was manufactured by Orion Express, but it is based on on older model designed by Hephaestus Industries.\
- "
+ Commonly used by surveyors, explorers, pioneers, all over the Spur, looking for planets that are actually worth settling or exploiting for resources. "
desc_info = "\
The probe has to be deployed first before it is used. Wrench it to deploy, then click with empty hand to activate.\
"
@@ -21,6 +19,18 @@
/// Timer of the survey process.
/// If null, it is not currently surveying.
var/timer_id = null
+ /// The language that the report will output in.
+ var/report_language
+ /// Should this probe start deployed? Used for mapped-in probes
+ var/start_deployed = FALSE
+ ///Extra information for variant types - manufacturer, faction, etc.
+ var/desc_extra = "This probe was manufactured by Orion Express, but it is based on on older model designed by Hephaestus Industries."
+
+/obj/structure/survey_probe/Initialize(mapload)
+ . = ..()
+ desc_extended += desc_extra
+ if(start_deployed)
+ deploy()
/obj/structure/survey_probe/attackby(obj/item/item, mob/living/user)
if(!timer_id && item.iswrench())
@@ -30,18 +40,14 @@
SPAN_NOTICE("You unfasten the locking bolts on \the [src], and it deploys, lowering its devices and drill bits to the ground. It is ready to survey."),
)
item.play_tool_sound(user, 30)
- anchored = TRUE
- density = TRUE
- icon_state = "surveying_probe_deployed"
+ deploy()
else
user.visible_message(
SPAN_NOTICE("\The [user] fastens the locking bolts on \the [src], stowing it."),
SPAN_NOTICE("You fasten the locking bolts \the [src], stowing it. It retracts its devices and drill bits."),
)
item.play_tool_sound(user, 30)
- anchored = FALSE
- density = FALSE
- icon_state = "surveying_probe"
+ undeploy()
/obj/structure/survey_probe/attack_hand(mob/user as mob)
if(timer_id)
@@ -58,6 +64,16 @@
else
to_chat(user, SPAN_NOTICE("You try to activate \the [src], but its devices and drill bits are not deployed yet."))
+/obj/structure/survey_probe/proc/deploy()
+ anchored = TRUE
+ density = TRUE
+ icon_state = "surveying_probe_deployed"
+
+/obj/structure/survey_probe/proc/undeploy()
+ anchored = FALSE
+ density = FALSE
+ icon_state = "surveying_probe"
+
/obj/structure/survey_probe/proc/survey_end()
if(timer_id)
// message
@@ -125,6 +141,13 @@
\
\
"
+ // Translate to a specific written language
+ if(report_language)
+ var/datum/language/L = GLOB.all_languages[report_language]
+ if(L && L.written_style)
+ var/languagetext = "\[lang=[L.key]]"
+ languagetext += "[report_contents]\[/lang]"
+ report_contents = languagetext
// print the report
playsound(get_turf(src), 'sound/machines/dotprinter.ogg', 30, 1)
@@ -134,3 +157,31 @@
timer_id = null
icon_state = "surveying_probe_deployed"
+// Language-specific probe versions for mapping.
+/obj/structure/survey_probe/sol
+ desc_extra = "This probe is an older model, manufactured by Hephaestus Industries. A small emblem on the side bears the flag of the Solarian Alliance."
+ report_language = LANGUAGE_SOL_COMMON
+
+/obj/structure/survey_probe/pra
+ desc_extra = "This probe is manufactured by NanoTrasen, based on an older Hephaestus design. A small emblem on the side bears the flag of the People's Republic of Adhomai."
+ report_language = LANGUAGE_SIIK_MAAS
+
+/obj/structure/survey_probe/elyra
+ desc_extra = "This probe is a newer model manufactured by the Elyra-based Elco corporation for phoron deposit survey. A small emblem on the side bears the flag of the Republic of Elyra."
+ report_language = LANGUAGE_ELYRAN_STANDARD
+
+/obj/structure/survey_probe/coc
+ desc_extra = "This probe was manufactured by Orion Express, but it is based on on older model designed by Hephaestus Industries. A small emblem on the side bears the flag of the Coalition of Colonies."
+ report_language = LANGUAGE_GUTTER
+
+/obj/structure/survey_probe/hegemony
+ desc_extra = "This probe is a newer model designed and manufactured by Hephaestus Industries. A small emblem on the side bears the flag of the Izweski Hegemony."
+ report_language = LANGUAGE_UNATHI
+
+/obj/structure/survey_probe/dominia
+ desc_extra = "This probe is a newer model designed and manufactured by the Imperial Engineering and Shipbuilding Conglomerate, in collaboration with Zavodskoi Interstellar. A small emblem on the side bears the flag of the Empire of Dominia."
+ report_language = LANGUAGE_TRADEBAND
+
+/obj/structure/survey_probe/skrell
+ desc_extra = "This probe is a newer model designed and manufactured by Tuz'qlip Researchers, in collaboration with Einstein Engines. A small emblem on the side bears the flag of the Nralakk Federation."
+ report_language = LANGUAGE_SKRELLIAN
diff --git a/html/changelogs/RustingWithYou - probing.yml b/html/changelogs/RustingWithYou - probing.yml
new file mode 100644
index 00000000000..282a067d0b7
--- /dev/null
+++ b/html/changelogs/RustingWithYou - probing.yml
@@ -0,0 +1,41 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: RustingWithYou
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Survey probes can now print their output in different languages."
diff --git a/maps/away/ships/coc/coc_surveyor/coc_surveyor.dmm b/maps/away/ships/coc/coc_surveyor/coc_surveyor.dmm
index 12a4a468945..fcd842c49ea 100644
--- a/maps/away/ships/coc/coc_surveyor/coc_surveyor.dmm
+++ b/maps/away/ships/coc/coc_surveyor/coc_surveyor.dmm
@@ -271,7 +271,12 @@
/turf/simulated/floor/tiled,
/area/coc_survey_ship/quarters)
"cG" = (
-/obj/machinery/mining/drill,
+/obj/machinery/mining/brace{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner_wide/orange{
+ dir = 10
+ },
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled,
/area/coc_survey_ship/miningeva)
@@ -2351,6 +2356,8 @@
/obj/effect/floor_decal/corner_wide/orange{
dir = 10
},
+/obj/effect/floor_decal/industrial/outline/engineering,
+/obj/structure/survey_probe/coc,
/turf/simulated/floor/tiled,
/area/coc_survey_ship/miningeva)
"ux" = (
@@ -2573,6 +2580,17 @@
},
/turf/simulated/floor/carpet/rubber,
/area/coc_survey_ship/engineering)
+"wC" = (
+/obj/machinery/light,
+/obj/machinery/mining/brace{
+ dir = 4
+ },
+/obj/effect/floor_decal/corner_wide/orange{
+ dir = 10
+ },
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled,
+/area/coc_survey_ship/miningeva)
"wF" = (
/obj/item/flame/lighter/zippo/coalition,
/obj/item/flame/lighter/zippo/coalition,
@@ -3790,10 +3808,11 @@
/turf/simulated/floor/carpet/rubber,
/area/coc_survey_ship/engineering)
"FB" = (
-/obj/machinery/mining/brace{
- dir = 8
+/obj/effect/floor_decal/corner_wide/orange{
+ dir = 10
},
-/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/effect/floor_decal/industrial/outline/engineering,
+/obj/structure/survey_probe/coc,
/turf/simulated/floor/tiled,
/area/coc_survey_ship/miningeva)
"FC" = (
@@ -3842,11 +3861,9 @@
/turf/simulated/floor/tiled,
/area/coc_survey_ship/atmos)
"FU" = (
-/obj/structure/sign/flag/himeo{
- pixel_y = -32
- },
-/obj/machinery/mining/brace{
- dir = 4
+/obj/machinery/mining/drill,
+/obj/effect/floor_decal/corner_wide/orange{
+ dir = 10
},
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled,
@@ -5079,6 +5096,8 @@
dir = 10
},
/obj/machinery/light,
+/obj/effect/floor_decal/industrial/outline/engineering,
+/obj/structure/survey_probe/coc,
/turf/simulated/floor/tiled,
/area/coc_survey_ship/miningeva)
"Ql" = (
@@ -11353,7 +11372,7 @@ YW
cr
oo
Lr
-Qh
+wC
Vh
rn
zj
@@ -11863,7 +11882,7 @@ Vh
Vh
WN
Lr
-oS
+FB
Vh
oX
Dz
diff --git a/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dmm b/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dmm
index c0018db0553..59d80a8ca40 100644
--- a/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dmm
+++ b/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dmm
@@ -159,11 +159,8 @@
/turf/simulated/floor/plating,
/area/shuttle/dominian_science_shuttle)
"atQ" = (
-/obj/structure/table/steel,
-/obj/item/crowbar/rescue_axe,
-/obj/item/crowbar/rescue_axe,
-/obj/item/crowbar,
-/obj/item/crowbar,
+/obj/structure/survey_probe/dominia,
+/obj/effect/floor_decal/industrial/outline/research,
/turf/simulated/floor/tiled/dark,
/area/ship/dominian_science_vessel/eva)
"axE" = (
@@ -5084,11 +5081,8 @@
/turf/simulated/floor/plating,
/area/ship/dominian_science_vessel/aft_dock)
"qYW" = (
-/obj/structure/table/steel,
-/obj/item/storage/firstaid/regular{
- pixel_y = 6;
- pixel_x = 3
- },
+/obj/effect/floor_decal/industrial/outline/research,
+/obj/structure/survey_probe/dominia,
/turf/simulated/floor/tiled/dark,
/area/ship/dominian_science_vessel/eva)
"rex" = (
@@ -5808,10 +5802,13 @@
/turf/simulated/floor/carpet/rubber,
/area/ship/dominian_science_vessel/bridge)
"tEo" = (
-/obj/structure/filingcabinet,
+/obj/structure/filingcabinet{
+ pixel_x = 14
+ },
/obj/effect/floor_decal/corner/purple{
dir = 5
},
+/obj/structure/closet/excavation,
/turf/simulated/floor/tiled/white,
/area/ship/dominian_science_vessel/research)
"tEV" = (
@@ -6205,7 +6202,6 @@
/turf/simulated/wall/shuttle,
/area/ship/dominian_science_vessel/port_propulsion)
"vjQ" = (
-/obj/structure/closet/emcloset,
/obj/effect/floor_decal/corner/purple{
dir = 5
},
@@ -6214,6 +6210,7 @@
inserted_light = /obj/item/light/tube/colored/blue;
icon_state = "tube_empty"
},
+/obj/structure/closet/excavation,
/turf/simulated/floor/tiled/white,
/area/ship/dominian_science_vessel/research)
"vjT" = (
@@ -6275,10 +6272,35 @@
/turf/simulated/floor/tiled/dark,
/area/ship/dominian_science_vessel/port_hall)
"vuF" = (
-/obj/structure/closet/emcloset,
/obj/effect/floor_decal/corner/purple{
dir = 5
},
+/obj/item/clothing/head/hazmat/anomaly,
+/obj/item/clothing/suit/hazmat/anomaly,
+/obj/item/clothing/suit/hazmat/anomaly,
+/obj/item/clothing/head/hazmat/anomaly,
+/obj/item/clothing/gloves/latex,
+/obj/item/clothing/gloves/latex,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
+/obj/structure/table/rack{
+ dir = 8;
+ layer = 2.9
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/window/southleft{
+ name = "Anomaly Suits"
+ },
/turf/simulated/floor/tiled/white,
/area/ship/dominian_science_vessel/research)
"vwC" = (
@@ -6519,6 +6541,10 @@
/obj/machinery/light{
dir = 4
},
+/obj/item/crowbar,
+/obj/item/crowbar/rescue_axe,
+/obj/item/crowbar,
+/obj/item/crowbar/rescue_axe,
/turf/simulated/floor/tiled/dark,
/area/ship/dominian_science_vessel/eva)
"wzs" = (
@@ -7161,6 +7187,11 @@
},
/turf/simulated/floor/marble/dark,
/area/ship/dominian_science_vessel/chapel)
+"xRu" = (
+/obj/effect/floor_decal/industrial/outline/research,
+/obj/machinery/suspension_gen,
+/turf/simulated/floor/carpet/rubber,
+/area/shuttle/dominian_science_shuttle)
"xRX" = (
/turf/template_noop,
/area/space)
@@ -39962,11 +39993,11 @@ lri
qdL
jZe
tjB
-tyS
+qYW
qYW
wvN
atQ
-tyS
+atQ
tjB
str
bpc
@@ -40464,7 +40495,7 @@ aaJ
uJi
tSP
wny
-inf
+xRu
cYy
iJz
cQs
diff --git a/maps/away/ships/pra/database_freighter/database_freighter.dmm b/maps/away/ships/pra/database_freighter/database_freighter.dmm
index 9a535459c21..411cfc4647c 100644
--- a/maps/away/ships/pra/database_freighter/database_freighter.dmm
+++ b/maps/away/ships/pra/database_freighter/database_freighter.dmm
@@ -337,6 +337,8 @@
dir = 8
},
/obj/machinery/light,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/structure/survey_probe/pra,
/turf/simulated/floor/tiled/dark{
temperature = 278.15
},
@@ -4651,6 +4653,13 @@
temperature = 278.15
},
/area/database_freighter/engineering)
+"So" = (
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/structure/survey_probe/pra,
+/turf/simulated/floor/tiled/dark{
+ temperature = 278.15
+ },
+/area/database_freighter/hangar)
"SV" = (
/obj/effect/floor_decal/corner/red{
dir = 6
@@ -4702,6 +4711,16 @@
temperature = 278.15
},
/area/database_freighter/captain_quarters)
+"To" = (
+/obj/structure/sign/vacuum{
+ pixel_x = 32
+ },
+/obj/structure/survey_probe/pra,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled/dark{
+ temperature = 278.15
+ },
+/area/database_freighter/hangar)
"Tu" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor{
@@ -4966,6 +4985,13 @@
temperature = 278.15
},
/area/database_freighter)
+"XH" = (
+/obj/structure/survey_probe/pra,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled/dark{
+ temperature = 278.15
+ },
+/area/database_freighter/hangar)
"XZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/wood{
@@ -15164,7 +15190,7 @@ Ni
pH
rj
xw
-Nf
+XH
Nf
rH
Ql
@@ -15326,7 +15352,7 @@ YC
zh
uY
xw
-gT
+To
Nf
Nf
Nf
@@ -15342,7 +15368,7 @@ Nf
Nf
Nf
gT
-Nf
+So
yo
cq
tR
diff --git a/maps/away/ships/scc/scc_scout_ship.dmm b/maps/away/ships/scc/scc_scout_ship.dmm
index 4ecc2dfca1d..345697effe5 100644
--- a/maps/away/ships/scc/scc_scout_ship.dmm
+++ b/maps/away/ships/scc/scc_scout_ship.dmm
@@ -735,6 +735,8 @@
/area/ship/scc_scout_ship/maint_propulsion_port)
"dQ" = (
/obj/effect/floor_decal/industrial/outline/research,
+/obj/structure/survey_probe,
+/obj/structure/survey_probe,
/turf/simulated/floor/carpet/rubber,
/area/shuttle/scc_scout_ship_shuttle/cargo)
"dS" = (
@@ -1351,8 +1353,9 @@
/turf/simulated/floor/plating,
/area/ship/scc_scout_ship/maint_propulsion_port)
"gP" = (
-/obj/effect/floor_decal/industrial/outline/grey,
/obj/random/dirt_75,
+/obj/structure/survey_probe,
+/obj/effect/floor_decal/industrial/outline/research,
/turf/simulated/floor/carpet/rubber,
/area/shuttle/scc_scout_ship_shuttle/cargo)
"gU" = (
@@ -3430,6 +3433,11 @@
},
/turf/simulated/floor/plating,
/area/ship/scc_scout_ship/maint_atmos)
+"tv" = (
+/obj/structure/survey_probe,
+/obj/effect/floor_decal/industrial/outline/research,
+/turf/simulated/floor/carpet/rubber,
+/area/shuttle/scc_scout_ship_shuttle/cargo)
"tw" = (
/obj/effect/floor_decal/corner/blue{
dir = 10
@@ -4734,6 +4742,11 @@
},
/turf/simulated/floor/plating,
/area/ship/scc_scout_ship/maint_atmos)
+"CB" = (
+/obj/effect/floor_decal/industrial/outline/research,
+/obj/structure/survey_probe,
+/turf/simulated/floor/carpet/rubber,
+/area/shuttle/scc_scout_ship_shuttle/cargo)
"CP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/red{
dir = 10
@@ -41621,7 +41634,7 @@ SX
aa
xG
FF
-gP
+nB
CX
lK
FN
@@ -42136,7 +42149,7 @@ qJ
WP
qA
dQ
-sN
+tv
sG
HR
SF
@@ -42393,7 +42406,7 @@ aa
rW
hd
gP
-nB
+CB
Mn
FN
FN