From 0e3eef37c8a34d353305330c40eecb8659cb6c8e Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Fri, 15 May 2026 18:31:46 +0100
Subject: [PATCH] several bugfixes (#7577)
---
code/datums/design/design.dm | 1 +
code/game/machinery/pda_multicaster.dm | 4 ++--
code/game/objects/items/devices/binoculars.dm | 7 ++++++-
.../structures/crates_lockers/closets/secure/medical.dm | 3 ++-
code/modules/mob/living/carbon/human/life.dm | 9 +++------
code/modules/multiz/structures/ladder.dm | 3 +++
code/modules/reagents/chemistry/reactions/paint.dm | 1 +
code/modules/reagents/chemistry/reagents/other/paint.dm | 4 ++--
code/modules/species/holosphere/holosphere.dm | 6 ++++--
tgui/packages/tgui/interfaces/common/Design.tsx | 1 +
.../tgui/interfaces/modules/TGUILatheControl.tsx | 4 ++--
11 files changed, 27 insertions(+), 16 deletions(-)
diff --git a/code/datums/design/design.dm b/code/datums/design/design.dm
index 6a2368cf518..4f34b59a747 100644
--- a/code/datums/design/design.dm
+++ b/code/datums/design/design.dm
@@ -143,6 +143,7 @@
/datum/prototype/design/proc/ui_data_list()
return list(
"name" = name,
+ "truncated_name" = length(name) <= 18 ? name : copytext(name, 1, 19) + "..",
"desc" = desc,
"id" = id,
"work" = work,
diff --git a/code/game/machinery/pda_multicaster.dm b/code/game/machinery/pda_multicaster.dm
index 16dcb4ad4f1..5cc9a7c6587 100644
--- a/code/game/machinery/pda_multicaster.dm
+++ b/code/game/machinery/pda_multicaster.dm
@@ -2,7 +2,7 @@
name = "\improper PDA multicaster"
desc = "This machine mirrors messages sent to it to specific departments."
icon = 'icons/obj/stationobjs.dmi'
- icon_state = "controller"
+ icon_state = "pdamulti"
density = 1
anchored = 1
circuit = /obj/item/circuitboard/telecomms/pda_multicaster
@@ -33,7 +33,7 @@
if(on)
icon_state = initial(icon_state)
else
- icon_state = "[initial(icon_state)]-p"
+ icon_state = "[initial(icon_state)]_off"
return ..()
/obj/machinery/pda_multicaster/attackby(obj/item/I, mob/user)
diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm
index 6ea610cda9a..7883fabc183 100644
--- a/code/game/objects/items/devices/binoculars.dm
+++ b/code/game/objects/items/devices/binoculars.dm
@@ -11,9 +11,14 @@
//materials_base = list("metal" = 50, MAT_GLASS = 50)
-
/obj/item/binoculars/attack_self(mob/user, datum/event_args/actor/actor)
. = ..()
if(.)
return
zoom()
+
+// the zoom proc needs taking out back but this fixes binoculars being janky for now
+/obj/item/binoculars/unequipped(mob/user, slot, flags)
+ . = ..()
+ if(zoom)
+ zoom()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index cdf9ffa818d..06f8089cb33 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -44,7 +44,8 @@
/obj/item/clothing/under/rank/nursesuit,
/obj/item/clothing/head/nursehat,
/obj/item/gps/medical,
- /obj/item/storage/box/freezer = 3)
+ /obj/item/storage/box/freezer = 3,
+ /obj/item/clothing/glasses/hud/health)
/obj/structure/closet/secure_closet/medical3/Initialize(mapload)
if(prob(50))
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index ca3af3d0729..a1252fd2c80 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1756,13 +1756,10 @@
if(modifiers && modifiers.len)
for(var/datum/modifier/mod in modifiers)
- if(isnull(modifier_set) && !isnull(mod.pulse_set_level))
+ if(isnull(mod.pulse_set_level))
+ continue
+ if(isnull(modifier_set) || mod.pulse_set_level > modifier_set)
modifier_set = round(mod.pulse_set_level) // Should be a whole number, but let's not take chances.
- else if(mod.pulse_set_level > modifier_set)
- modifier_set = round(mod.pulse_set_level)
-
- modifier_set = max(0, modifier_set) // No setting to negatives.
-
if(mod.pulse_modifier)
modifier_shift += mod.pulse_modifier
diff --git a/code/modules/multiz/structures/ladder.dm b/code/modules/multiz/structures/ladder.dm
index 56c5e45f6ef..b3dcf06ecad 100644
--- a/code/modules/multiz/structures/ladder.dm
+++ b/code/modules/multiz/structures/ladder.dm
@@ -94,6 +94,9 @@
if(incapacitated())
to_chat(src, "You are physically unable to climb \the [ladder].")
return FALSE
+ if(is_buckled())
+ to_chat(src, "You can't do this while buckled to \the [buckled]!")
+ return FALSE
return TRUE
/mob/observer/ghost/may_climb_ladders(var/ladder)
diff --git a/code/modules/reagents/chemistry/reactions/paint.dm b/code/modules/reagents/chemistry/reactions/paint.dm
index 6e753472a5e..ba52180a6cf 100644
--- a/code/modules/reagents/chemistry/reactions/paint.dm
+++ b/code/modules/reagents/chemistry/reactions/paint.dm
@@ -1,5 +1,6 @@
/datum/chemical_reaction/paint
abstract_type = /datum/chemical_reaction/paint
+ has_data_semantics = TRUE
var/result_color
/datum/chemical_reaction/paint/compute_result_data_initializer(datum/reagent_holder/holder, multiplier)
diff --git a/code/modules/reagents/chemistry/reagents/other/paint.dm b/code/modules/reagents/chemistry/reagents/other/paint.dm
index 6d201c72742..cc2cace8a0a 100644
--- a/code/modules/reagents/chemistry/reagents/other/paint.dm
+++ b/code/modules/reagents/chemistry/reagents/other/paint.dm
@@ -46,9 +46,9 @@
var/total_volume = old_volume + new_volume
var/old_hex = uppertext(old_data || "#ffffff")
var/new_hex = uppertext(new_data || "#ffffff")
+
return rgb(
((hex2num(copytext(old_hex, 2, 4)) * old_volume) + (hex2num(copytext(new_hex, 2, 4)))) / total_volume,
((hex2num(copytext(old_hex, 4, 6)) * old_volume) + (hex2num(copytext(new_hex, 4, 6)))) / total_volume,
- ((hex2num(copytext(old_hex, 6, 8)) * old_volume) + (hex2num(copytext(new_hex, 6, 8)))) / total_volume,
- ((hex2num(length(old_hex) > 7 ? copytext(old_hex, 8, 10) : 255) * old_volume) + (hex2num(length(new_hex) > 7 ? copytext(new_hex, 8, 10) : 255))) / total_volume,
+ ((hex2num(copytext(old_hex, 6, 8)) * old_volume) + (hex2num(copytext(new_hex, 6, 8)))) / total_volume
)
diff --git a/code/modules/species/holosphere/holosphere.dm b/code/modules/species/holosphere/holosphere.dm
index ae8e5bbcf1e..03d4b9154f7 100644
--- a/code/modules/species/holosphere/holosphere.dm
+++ b/code/modules/species/holosphere/holosphere.dm
@@ -163,8 +163,10 @@
// hotfix: they're synthetic without synthetic parts, oops!
/datum/species/shapeshifter/holosphere/get_blood_colour(mob/living/carbon/human/H)
- if(H)
- return blood_color
+ return blood_color
+
+/datum/species/shapeshifter/holosphere/get_blood_name(mob/living/carbon/human/H)
+ return "coolant"
/datum/species/shapeshifter/holosphere/get_valid_shapeshifter_forms()
return list(
diff --git a/tgui/packages/tgui/interfaces/common/Design.tsx b/tgui/packages/tgui/interfaces/common/Design.tsx
index 695f68cc069..1a26a655092 100644
--- a/tgui/packages/tgui/interfaces/common/Design.tsx
+++ b/tgui/packages/tgui/interfaces/common/Design.tsx
@@ -9,6 +9,7 @@ import { IngredientsNeeded } from "./Ingredients";
*/
export interface Design {
name: string;
+ truncated_name: string;
desc: string;
categories: string[];
subcategories: string[];
diff --git a/tgui/packages/tgui/interfaces/modules/TGUILatheControl.tsx b/tgui/packages/tgui/interfaces/modules/TGUILatheControl.tsx
index eaaca14b25a..920ec5aa78a 100644
--- a/tgui/packages/tgui/interfaces/modules/TGUILatheControl.tsx
+++ b/tgui/packages/tgui/interfaces/modules/TGUILatheControl.tsx
@@ -125,7 +125,7 @@ export const TGUILatheControl = (props: TGUILatheControlProps, context) => {
const windowProps: WindowProps = {
title: data.latheName,
- width: 1100,
+ width: 1200,
height: 700,
};
@@ -410,7 +410,7 @@ const LatheQueued = (props: LatheQueuedProps) => {
color="transparent"
title={
<>
- {`${props.entry.amount}x ${props.design !== undefined ? props.design.name : "Error - Design Unloaded"}`}
+ {`${props.entry.amount}x ${props.design !== undefined ? props.design.truncated_name : "Error - Design Unloaded"}`}
{progressRender}
>
}