diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index bea1d7975688..cf6d6c64d9a9 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -163,9 +163,10 @@
#define MATRIX_NVG 1
#define MATRIX_WIDE 2
-#define RESEARCH_UPGRADE_NULL null
+#define RESEARCH_UPGRADE_NOTHING_TO_PASS null
#define RESEARCH_UPGRADE_EXCLUDE_BUY -2
#define RESEARCH_UPGRADE_CATEGORY -1 //lord forgive me
+#define RESEARCH_UPGRADE_ITEM 1
#define RESEARCH_UPGRADE_TIER_1 1
#define RESEARCH_UPGRADE_TIER_2 2
#define RESEARCH_UPGRADE_TIER_3 3
diff --git a/code/__pragmas.dm b/code/__pragmas.dm
index 39c14e1bbc95..84fcc0dfc307 100644
--- a/code/__pragmas.dm
+++ b/code/__pragmas.dm
@@ -12,7 +12,6 @@
#pragma SoftReservedKeyword error
#pragma DuplicateVariable error
#pragma DuplicateProcDefinition error
-#pragma TooManyArguments error
#pragma PointlessParentCall error
#pragma PointlessBuiltinCall error
#pragma SuspiciousMatrixCall error
diff --git a/code/datums/global_variables.dm b/code/datums/global_variables.dm
index 953f42f1723f..53e9c0391e17 100644
--- a/code/datums/global_variables.dm
+++ b/code/datums/global_variables.dm
@@ -118,15 +118,11 @@
/client/proc/debug_global_variable(name, value, level)
var/html = ""
- var/change = 0
//to make the value bold if changed
if(!(admin_holder.rights & R_DEBUG))
return html
html += "
EC "
- if(value != initial(global.vars[name]))
- html += ""
- change = 1
if (isnull(value))
html += "[name] = null"
@@ -175,8 +171,6 @@
else
html += "[name] = [value]"
- if(change)
- html += ""
html += ""
@@ -353,7 +347,6 @@
if(admin_holder && admin_holder.marked_datum)
possible_classes += "marked datum"
possible_classes += "edit referenced object"
- possible_classes += "restore to default"
class = tgui_input_list(usr, "What kind of variable?","Variable Type", possible_classes)
if(!class)
@@ -365,9 +358,6 @@
mod_list(global.vars[variable])
return
- if("restore to default")
- global.vars[variable] = initial(global.vars[variable])
-
if("edit referenced object")
return .(global.vars[variable])
diff --git a/code/datums/research_upgrade_datum.dm b/code/datums/research_upgrade_datum.dm
index 8b19bafad1cd..fd571afdfcf0 100644
--- a/code/datums/research_upgrade_datum.dm
+++ b/code/datums/research_upgrade_datum.dm
@@ -3,8 +3,10 @@
var/name = "Upgrade."
///name of upgrades, not items. Items are at research_upgrades.dm somewhere in item folder.
var/desc = "something is broken. yippee!!"
- ///which behavior should this type follow. Should this be completely excluded from the buy menu? should it be one of the dropdown options? This is also what gets passed to the initizialize of an item, this can be any number *but* it cannot be -1 or -2, as it messes with the buy menu.
+ ///which behavior should this type follow. Should this be completely excluded from the buy menu? should it be one of the dropdown options? or a normal item?
var/behavior = RESEARCH_UPGRADE_EXCLUDE_BUY // should this be on the list?
+ //This is what gets passed to the initizialize of an item, RESEARCH_UPGRADE_NOTHING_TO_PASS to not pass anything.
+ var/on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
/// the price of the upgrade, refer to this: 500 is a runner, 8k is queen. T3 is usually 3k, woyer is 2k.
var/value_upgrade = 1000
/// actual path to the item.(upgrade)
@@ -33,28 +35,32 @@
/datum/research_upgrades/machinery/autodoc/internal_bleed
name = "AutoDoc Internal Bleeding Repair"
desc = "A data and instruction set for the AutoDoc, making it capable of rapidly fixing internal bleeding."
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_TIER_1
+ behavior = RESEARCH_UPGRADE_ITEM
value_upgrade = 200
clearance_req = 1
/datum/research_upgrades/machinery/autodoc/broken_bone
name = "AutoDoc Bone Fracture Repair"
desc = "A data instruction set for the AutoDoc, making it capable of setting fractures and applying bonegel."
- behavior = RESEARCH_UPGRADE_TIER_2
+ on_init_argument = RESEARCH_UPGRADE_TIER_2
+ behavior = RESEARCH_UPGRADE_ITEM
value_upgrade = 2000
clearance_req = 3
/datum/research_upgrades/machinery/autodoc/organ_damage
name = "AutoDoc Broken Organ Repair"
desc = "A data and instruction set for the AutoDoc, making it capable of fixing organ damage."
- behavior = RESEARCH_UPGRADE_TIER_3
+ on_init_argument = RESEARCH_UPGRADE_TIER_3
+ behavior = RESEARCH_UPGRADE_ITEM
value_upgrade = 1500
clearance_req = 2
/datum/research_upgrades/machinery/autodoc/larva_removal
name = "AutoDoc Embryo Removal"
desc = "Data and instruction set for AutoDoc making it mildly proficient in removing parasites left by unknown organism."
- behavior = RESEARCH_UPGRADE_TIER_4
+ on_init_argument = RESEARCH_UPGRADE_TIER_4
+ behavior = RESEARCH_UPGRADE_ITEM
value_upgrade = 4000
clearance_req = 6
@@ -62,7 +68,8 @@
/datum/research_upgrades/machinery/sleeper
name = "Sleeper Upgrade"
desc = "Research upgrade for Sleeper system, technology on this disk is used on a sleeper to allow wider spectrum of chemicals to be administered, as well as upgrading dialysis software."
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
value_upgrade = 500
item_reference = /obj/item/research_upgrades/sleeper
upgrade_type = ITEM_MACHINERY_UPGRADE
@@ -77,7 +84,8 @@
desc = "Sell the data acquired to the nearest Weyland-Yutani Science division team for 8 or 9 points."
value_upgrade = 2000
item_reference = /obj/item/research_upgrades/credits
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
upgrade_type = ITEM_ACCESSORY_UPGRADE
change_purchase = 500
maximum_price = 5000
@@ -88,7 +96,8 @@
desc = "An advanced, robust version of the normal scalpel, allowing it to pierce through thick skin and chitin alike with extreme ease."
value_upgrade = 3000
item_reference = /obj/item/tool/surgery/scalpel/laser/advanced
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
upgrade_type = ITEM_ACCESSORY_UPGRADE
clearance_req = 3
@@ -97,7 +106,8 @@
desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision, allowing for the immediate commencement of therapeutic steps."
value_upgrade = 3000
item_reference = /obj/item/tool/surgery/scalpel/manager
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
upgrade_type = ITEM_ACCESSORY_UPGRADE
clearance_req = 4
@@ -109,7 +119,8 @@
change_purchase = -200
minimum_price = 200
item_reference = /obj/item/stack/medical/splint/nano/research
- behavior = RESEARCH_UPGRADE_TIER_5 //adjust this to change amount of nanosplints in a stack, cant be higher than five, go change max_amount in the nanosplint itself, then change it.
+ on_init_argument = RESEARCH_UPGRADE_TIER_5 //adjust this to change amount of nanosplints in a stack, cant be higher than five, go change max_amount in the nanosplint itself, then change it.
+ behavior = RESEARCH_UPGRADE_ITEM
upgrade_type = ITEM_ACCESSORY_UPGRADE
/datum/research_upgrades/item/flamer_tank
@@ -121,7 +132,8 @@
minimum_price = 100
maximum_price = 1000
item_reference = /obj/item/ammo_magazine/flamer_tank/custom/upgraded
- behavior = RESEARCH_UPGRADE_NULL
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
upgrade_type = ITEM_ACCESSORY_UPGRADE
/datum/research_upgrades/item/flamer_tank/smoke
@@ -142,7 +154,8 @@
name = "Universal Translator Plate"
desc = "A uniform-attachable plate capable of translating any unknown language heard by the wearer."
value_upgrade = 2000
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
clearance_req = 6
upgrade_type = ITEM_ARMOR_UPGRADE
item_reference = /obj/item/clothing/accessory/health/research_plate/translator
@@ -152,7 +165,8 @@
name = "Active Blood Coagulator Plate"
desc = "A uniform-attachable plate capable of coagulating any bleeding wounds the user possesses."
value_upgrade = 1200
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
clearance_req = 2
change_purchase = -200
minimum_price = 200
@@ -164,7 +178,8 @@
desc = "A medical plate with two buttons on the sides and a hefty chemical tank. Attached to a uniform and on a simultaneous press, it injects an emergency dose of medical chemicals much larger than a normal emergency autoinjector. Single time use and is recycled in biomass printer. Features overdose protection."
value_upgrade = 250
clearance_req = 1
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
change_purchase = -100
minimum_price = 100
upgrade_type = ITEM_ARMOR_UPGRADE
@@ -175,7 +190,8 @@
desc = "A strong trauma plate, able to protect the user from a large amount of bullets. Completely useless against sharp objects."
value_upgrade = 500
clearance_req = 4
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
upgrade_type = ITEM_ARMOR_UPGRADE
change_purchase = -50
minimum_price = 200
@@ -183,10 +199,11 @@
/datum/research_upgrades/armor/preservation
name = "Death Preservation Plate"
- desc = "preservation plate which activates once the user is dead, uses variety of different substances and sensors to slow down the decay and increase the time before the user is permanently dead, due to small tank of preservatives, it needs to be replaced on each death. Extends time to permadeath by around four minutes."
+ desc = "Preservation plate which activates once the user is dead, uses variety of different substances and sensors to slow down the decay and increase the time before the user is permanently dead, due to small tank of preservatives, it needs to be replaced on each death. Extends time to permadeath by around four minutes."
value_upgrade = 500
clearance_req = 4
- behavior = RESEARCH_UPGRADE_TIER_1
+ on_init_argument = RESEARCH_UPGRADE_NOTHING_TO_PASS
+ behavior = RESEARCH_UPGRADE_ITEM
upgrade_type = ITEM_ARMOR_UPGRADE
change_purchase = -100
minimum_price = 100
diff --git a/code/game/bioscans.dm b/code/game/bioscans.dm
index 5be3c9fbe3fd..edd0b174212d 100644
--- a/code/game/bioscans.dm
+++ b/code/game/bioscans.dm
@@ -151,7 +151,7 @@ GLOBAL_DATUM_INIT(bioscan_data, /datum/bioscan_data, new)
var/planet_location = "[marines_on_planet && marine_planet_location ? ", including one in [marine_planet_location]" : ""]"
var/title = SPAN_XENOANNOUNCE("The Queen Mother reaches into your mind from worlds away.")
- var/content = SPAN_XENOANNOUNCE("To my children and their Queen. I sense [metalhive_hosts] host[plural] in the metal hive [metalhive_location] and [planet_hosts] scattered elsewhere[planet_location].")
+ var/content = SPAN_XENOANNOUNCE("To my children and their Queen: I sense [metalhive_hosts] host[plural] in the metal hive[metalhive_location] and [planet_hosts] scattered elsewhere[planet_location].")
log_game("BIOSCAN: Queen Mother bioscan completed. [content]")
/// Shout it at everyone
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
index b5f8bdd17213..9d42eb982d2e 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
@@ -1,8 +1,8 @@
/datum/caste_datum/facehugger
caste_type = XENO_CASTE_FACEHUGGER
tier = 0
- plasma_gain = 0.1
- plasma_max = 10
+ plasma_gain = XENO_PLASMA_GAIN_TIER_1
+ plasma_max = XENO_NO_PLASMA
melee_damage_lower = 5
melee_damage_upper = 5
max_health = XENO_HEALTH_LARVA
diff --git a/code/modules/reagents/chemistry_machinery/xenomorph_analyzer.dm b/code/modules/reagents/chemistry_machinery/xenomorph_analyzer.dm
index 5bf6561b28f4..62ceb37386ff 100644
--- a/code/modules/reagents/chemistry_machinery/xenomorph_analyzer.dm
+++ b/code/modules/reagents/chemistry_machinery/xenomorph_analyzer.dm
@@ -96,7 +96,7 @@
data["upgrades"] += list(list(
"name" = capitalize_first_letters(upgrade.name),
"desc" = upgrade.desc,
- "vari" = upgrade.behavior,
+ "vari" = upgrade.on_init_argument,
"cost" = price_adjustment,
"ref" = upgrade.item_reference,
"category" = upgrade.upgrade_type,
@@ -158,7 +158,7 @@
upgrade = datum_upgrades
if(upgrade.behavior == RESEARCH_UPGRADE_CATEGORY || upgrade.behavior == RESEARCH_UPGRADE_EXCLUDE_BUY)
continue
- if(produce_path == upgrade.item_reference && upgrade.behavior == variation)
+ if(produce_path == upgrade.item_reference && upgrade.on_init_argument == variation)
path_exists = TRUE
break
if(!path_exists)
@@ -178,5 +178,8 @@
/obj/structure/machinery/xenoanalyzer/proc/print_upgrade(produce_path, variation)
busy = FALSE
- new produce_path(get_turf(src), variation)
+ if(variation != RESEARCH_UPGRADE_NOTHING_TO_PASS)
+ new produce_path(get_turf(src), variation)
+ return
+ new produce_path(get_turf(src))
diff --git a/html/changelogs/AutoChangeLog-pr-6493.yml b/html/changelogs/AutoChangeLog-pr-6493.yml
new file mode 100644
index 000000000000..57d67e75aca3
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-6493.yml
@@ -0,0 +1,4 @@
+author: "HeresKozmos"
+delete-after: True
+changes:
+ - maptweak: "Filled in a hole in the map."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-6494.yml b/html/changelogs/AutoChangeLog-pr-6494.yml
new file mode 100644
index 000000000000..cf50283ef6a2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-6494.yml
@@ -0,0 +1,4 @@
+author: "HeresKozmos"
+delete-after: True
+changes:
+ - maptweak: "Fixed an area in the easter egg section of Sorokyne"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-6507.yml b/html/changelogs/AutoChangeLog-pr-6507.yml
new file mode 100644
index 000000000000..7153d4e603a2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-6507.yml
@@ -0,0 +1,4 @@
+author: "kiVts"
+delete-after: True
+changes:
+ - code_imp: "Prevented potential unintended behavior with research upgrade items on initialize"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-6555.yml b/html/changelogs/AutoChangeLog-pr-6555.yml
new file mode 100644
index 000000000000..ed55fd0f3534
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-6555.yml
@@ -0,0 +1,4 @@
+author: "coldironwarrior"
+delete-after: True
+changes:
+ - spellcheck: "fixed a few typos in the xeno bioscan announcement"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-6558.yml b/html/changelogs/AutoChangeLog-pr-6558.yml
new file mode 100644
index 000000000000..bc921a138301
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-6558.yml
@@ -0,0 +1,4 @@
+author: "private-tristan"
+delete-after: True
+changes:
+ - qol: "Facehuggers no longer show as having any plasma"
\ No newline at end of file
diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm
index ec598eebd59c..0c8e8c275bbe 100644
--- a/maps/map_files/DesertDam/Desert_Dam.dmm
+++ b/maps/map_files/DesertDam/Desert_Dam.dmm
@@ -421,9 +421,6 @@
dir = 8
},
/area/desert_dam/exterior/valley/valley_labs)
-"abt" = (
-/turf/open/desert/rock,
-/area/desert_dam/exterior/rock)
"abu" = (
/obj/effect/blocker/toxic_water,
/turf/open/gm/river/desert/shallow_edge{
@@ -57199,9 +57196,6 @@
},
/turf/open/asphalt,
/area/desert_dam/exterior/river/riverside_south)
-"dTI" = (
-/turf/open/desert/rock,
-/area/desert_dam/building/hydroponics/hydroponics_breakroom)
"dTK" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/asphalt/cement_sunbleached{
@@ -92967,8 +92961,8 @@ dTs
dTs
dTs
dTs
-dTI
-dTI
+dTs
+dTs
cPL
cTk
cTO
@@ -93201,8 +93195,8 @@ dTs
dTs
dTs
dTs
-dTI
-dTI
+dTs
+dTs
cPL
cTl
cTO
@@ -93436,7 +93430,7 @@ dTs
dTs
dTs
dTs
-abt
+dTs
cPL
cTm
cTO
diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
index db1f07a8b3b1..12b8bb793c40 100644
--- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
+++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
@@ -30513,9 +30513,6 @@
icon_state = "darkyellowfull2"
},
/area/strata/ag/exterior/research_decks)
-"eqV" = (
-/turf/closed/wall/wood,
-/area/strata/ag/interior/mountain)
"era" = (
/obj/structure/machinery/power/apc{
dir = 1;
@@ -30535,9 +30532,6 @@
/obj/structure/barricade/snow,
/turf/open/auto_turf/ice/layer2,
/area/strata/ag/exterior/north_lz_caves)
-"esJ" = (
-/turf/open/auto_turf/snow/brown_base/layer4,
-/area/strata/ag/interior/mountain)
"euc" = (
/obj/structure/platform_decoration/strata{
dir = 4
@@ -46384,8 +46378,8 @@ aac
aac
aac
aac
-esJ
-eqV
+byi
+lAc
mhc
qxi
wfE