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