diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 6dc1433bc8..980ec38909 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -184,14 +184,23 @@
/obj/screen/alert/hot
name = "Too Hot"
- desc = "You're flaming hot! Get somewhere cooler and take off any insulating clothing like a fire suit."
+ desc = "The air around you is pretty toasty! Consider putting on some insulating clothing, or moving to a cooler area."
icon_state = "hot"
/obj/screen/alert/cold
name = "Too Cold"
- desc = "You're freezing cold! Get somewhere warmer and take off any insulating clothing like a space suit."
+ desc = "The air around you is pretty cold! Consider wearing a coat, or moving to a warmer area."
icon_state = "cold"
+/obj/screen/alert/sweat
+ name = "Sweating"
+ desc = "You're sweating! Get somewhere cooler and take off any insulating clothing like a fire suit."
+ icon_state = "sweat"
+
+/obj/screen/alert/shiver
+ name = "Shivering"
+ desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit."
+
/obj/screen/alert/lowpressure
name = "Low Pressure"
desc = "The air around you is hazardously thin. A space suit would protect you."
diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm
index 659d50c077..2e6353b8a8 100644
--- a/code/game/gamemodes/dynamic/dynamic.dm
+++ b/code/game/gamemodes/dynamic/dynamic.dm
@@ -204,10 +204,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null)
var/threatadd = input("Specify how much threat to add (negative to subtract). This can inflate the threat level.", "Adjust Threat", 0) as null|num
if(!threatadd)
return
- if(threatadd > 0)
- create_threat(threatadd)
- else
- remove_threat(threatadd)
+ create_threat(threatadd)
else if (href_list["injectlate"])
latejoin_injection_cooldown = 0
forced_injection = TRUE
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 767f8fc395..277d132b12 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -394,8 +394,6 @@
to_chat(user, "[src] are recharging!")
return
- user.stop_pulling() //User has hands full, and we don't care about anyone else pulling on it, their problem. CLEAR!!
-
if(user.a_intent == INTENT_DISARM)
do_disarm(M, user)
return
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index af36c9432a..f2531f4369 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1958,19 +1958,19 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.adjust_bodytemperature(natural*(1/(thermal_protection+1)) + min(thermal_protection * (loc_temp - H.bodytemperature) / BODYTEMP_HEAT_DIVISOR, BODYTEMP_HEATING_MAX))
switch((loc_temp - H.bodytemperature)*thermal_protection)
if(-INFINITY to -50)
- H.throw_alert("temp", /obj/screen/alert/cold, 3)
+ H.throw_alert("tempfeel", /obj/screen/alert/cold, 3)
if(-50 to -35)
- H.throw_alert("temp", /obj/screen/alert/cold, 2)
+ H.throw_alert("tempfeel", /obj/screen/alert/cold, 2)
if(-35 to -20)
- H.throw_alert("temp", /obj/screen/alert/cold, 1)
+ H.throw_alert("tempfeel", /obj/screen/alert/cold, 1)
if(-20 to 0) //This is the sweet spot where air is considered normal
- H.clear_alert("temp")
+ H.clear_alert("tempfeel")
if(0 to 15) //When the air around you matches your body's temperature, you'll start to feel warm.
- H.throw_alert("temp", /obj/screen/alert/hot, 1)
+ H.throw_alert("tempfeel", /obj/screen/alert/hot, 1)
if(15 to 30)
- H.throw_alert("temp", /obj/screen/alert/hot, 2)
+ H.throw_alert("tempfeel", /obj/screen/alert/hot, 2)
if(30 to INFINITY)
- H.throw_alert("temp", /obj/screen/alert/hot, 3)
+ H.throw_alert("tempfeel", /obj/screen/alert/hot, 3)
// +/- 50 degrees from 310K is the 'safe' zone, where no damage is dealt.
if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTHEAT))
@@ -1988,6 +1988,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
else
firemodifier = min(firemodifier, 0)
burn_damage = max(log(2-firemodifier,(H.bodytemperature-BODYTEMP_NORMAL))-5,0) // this can go below 5 at log 2.5
+ if (burn_damage)
+ switch(burn_damage)
+ if(0 to 2)
+ H.throw_alert("temp", /obj/screen/alert/sweat, 1)
+ if(2 to 4)
+ H.throw_alert("temp", /obj/screen/alert/sweat, 2)
+ else
+ H.throw_alert("temp", /obj/screen/alert/sweat, 3)
burn_damage = burn_damage * heatmod * H.physiology.heat_mod
if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4) //40% for level 3 damage on humans
H.emote("scream")
@@ -2000,14 +2008,18 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR))
switch(H.bodytemperature)
if(200 to BODYTEMP_COLD_DAMAGE_LIMIT)
+ H.throw_alert("temp", /obj/screen/alert/shiver, 1)
H.apply_damage(COLD_DAMAGE_LEVEL_1*coldmod*H.physiology.cold_mod, BURN)
if(120 to 200)
+ H.throw_alert("temp", /obj/screen/alert/shiver, 2)
H.apply_damage(COLD_DAMAGE_LEVEL_2*coldmod*H.physiology.cold_mod, BURN)
else
+ H.throw_alert("temp", /obj/screen/alert/shiver, 3)
H.apply_damage(COLD_DAMAGE_LEVEL_3*coldmod*H.physiology.cold_mod, BURN)
else
H.remove_movespeed_modifier(/datum/movespeed_modifier/cold)
+ H.clear_alert("temp")
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold")
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot")
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index fd8f900552..d4e3f6ad0d 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -985,6 +985,13 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
layer = ABOVE_MOB_LAYER
moveable = TRUE
+/obj/machinery/power/supermatter_crystal/shard/examine(mob/user)
+ . = ..()
+ if(anchored)
+ . += "[src] is anchored to the floor."
+ else
+ . += "[src] is unanchored, but can be bolted down."
+
/obj/machinery/power/supermatter_crystal/shard/engine
name = "anchored supermatter shard"
is_main_engine = TRUE
diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm
index 1b608060ce..75e862778a 100644
--- a/code/modules/research/designs/misc_designs.dm
+++ b/code/modules/research/designs/misc_designs.dm
@@ -469,7 +469,7 @@
build_type = PROTOLATHE
materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000)
build_path = /obj/item/holosign_creator/engineering
- category = list("Equipment")
+ category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
/datum/design/holosignatmos
@@ -479,7 +479,7 @@
build_type = PROTOLATHE
materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000)
build_path = /obj/item/holosign_creator/atmos
- category = list("Equipment")
+ category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
/datum/design/holosignfirelock
@@ -489,7 +489,7 @@
build_type = PROTOLATHE
materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000)
build_path = /obj/item/holosign_creator/firelock
- category = list("Equipment")
+ category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
/datum/design/holosigncombifan
@@ -499,7 +499,7 @@
build_type = PROTOLATHE
materials = list(/datum/material/iron = 7500, /datum/material/glass = 2500, /datum/material/silver = 2500, /datum/material/gold = 2500, /datum/material/titanium = 1750)
build_path = /obj/item/holosign_creator/combifan
- category = list("Equipment")
+ category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
/datum/design/forcefield_projector
@@ -509,7 +509,7 @@
build_type = PROTOLATHE
materials = list(/datum/material/iron = 2500, /datum/material/glass = 1000)
build_path = /obj/item/forcefield_projector
- category = list("Equipment")
+ category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
/datum/design/holobarrier_med
diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
index d97eae5766..4859fcfca0 100644
--- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm
+++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
@@ -183,6 +183,13 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337)
. = ..()
promptAndCheckIn(user)
+/obj/item/hilbertshotel/ghostdojo/linkTurfs(datum/turf_reservation/currentReservation, currentRoomnumber)
+ . = ..()
+ var/area/hilbertshotel/currentArea = get_area(locate(currentReservation.bottom_left_coords[1], currentReservation.bottom_left_coords[2], currentReservation.bottom_left_coords[3]))
+ for(var/turf/closed/indestructible/hoteldoor/door in currentArea)
+ door.parentSphere = src
+ door.desc = "The door to this hotel room. Strange, this door doesnt even seem openable. The doorknob, however, seems to buzz with unusual energy...
Alt-Click to look through the peephole."
+
//Template Stuff
/datum/map_template/hilbertshotel
name = "Hilbert's Hotel Room"
diff --git a/html/changelogs/AutoChangeLog-pr-13321.yml b/html/changelogs/AutoChangeLog-pr-13321.yml
new file mode 100644
index 0000000000..6ef5e6c391
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13321.yml
@@ -0,0 +1,4 @@
+author: "Putnam3145"
+delete-after: True
+changes:
+ - tweak: "Hilbert hotel flavor text for one particular snowflake hotel changed."
diff --git a/html/changelogs/AutoChangeLog-pr-13331.yml b/html/changelogs/AutoChangeLog-pr-13331.yml
new file mode 100644
index 0000000000..b75fd5b557
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13331.yml
@@ -0,0 +1,4 @@
+author: "raspy-on-osu"
+delete-after: True
+changes:
+ - tweak: "protolathe item categories"
diff --git a/html/changelogs/AutoChangeLog-pr-13333.yml b/html/changelogs/AutoChangeLog-pr-13333.yml
new file mode 100644
index 0000000000..a5aba367be
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13333.yml
@@ -0,0 +1,4 @@
+author: "raspy-on-osu"
+delete-after: True
+changes:
+ - tweak: "supermatter shard examine text"
diff --git a/html/changelogs/AutoChangeLog-pr-13335.yml b/html/changelogs/AutoChangeLog-pr-13335.yml
new file mode 100644
index 0000000000..a216340770
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13335.yml
@@ -0,0 +1,4 @@
+author: "Bhijn"
+delete-after: True
+changes:
+ - rscadd: "Readded the old method of temperature notifications in the form of a new pair of shivering/sweating notifications."
diff --git a/html/changelogs/AutoChangeLog-pr-13336.yml b/html/changelogs/AutoChangeLog-pr-13336.yml
new file mode 100644
index 0000000000..60bad4e644
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13336.yml
@@ -0,0 +1,4 @@
+author: "Putnam3145"
+delete-after: True
+changes:
+ - admin: "admins can now actually reduce threat level in dynamic"
diff --git a/html/changelogs/AutoChangeLog-pr-13337.yml b/html/changelogs/AutoChangeLog-pr-13337.yml
new file mode 100644
index 0000000000..74f5833824
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13337.yml
@@ -0,0 +1,4 @@
+author: "Putnam3145"
+delete-after: True
+changes:
+ - tweak: "Made owo.ogg smaller."
diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi
index 4ced910193..e64c037cf8 100644
Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ
diff --git a/sound/voice/medbot/owo.ogg b/sound/voice/medbot/owo.ogg
index 0fdaa9d483..5eeb502c88 100644
Binary files a/sound/voice/medbot/owo.ogg and b/sound/voice/medbot/owo.ogg differ