diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index f250f350f21..f75d128fe9a 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -433,7 +433,7 @@
if(willing)
- visible_message("[user] starts putting [G:affecting:name] into \the [src].", 3)
+ visible_message("[user] starts putting [G:affecting:name] into \the [name].", 3)
if(do_after(user, 20))
if(!M || !G || !G:affecting) return
@@ -476,7 +476,7 @@
var/mob/living/L = O
if(L.stat == DEAD)
- user << "Dead people can not be put into cryo."
+ user << "Dead people can not be put into stasis."
return
for(var/mob/living/carbon/slime/M in range(1,L))
@@ -487,7 +487,7 @@
var/willing = null //We don't want to allow people to be forced into despawning.
if(L.client)
- if(alert(L,"Would you like to enter cryosleep?",,"Yes","No") == "Yes")
+ if(alert(L,"Would you like to enter stasis?",,"Yes","No") == "Yes")
if(!L) return
willing = 1
else
@@ -495,9 +495,9 @@
if(willing)
if(L == user)
- visible_message("[user] starts climbing into the cryo pod.", 3)
+ visible_message("[user] starts climbing into \the [name].", 3)
else
- visible_message("[user] starts putting [L] into the cryo pod.", 3)
+ visible_message("[user] starts putting [L] into \the [name].", 3)
if(do_after(user, 20))
if(!L) return
@@ -508,7 +508,7 @@
L.client.perspective = EYE_PERSPECTIVE
L.client.eye = src
else
- user << "You stop [L == user ? "climbing into the cryo pod." : "putting [L] into the cryo pod."]"
+ user << "You stop [L == user ? "climbing into" : "putting [L] into"] \the [name]."
return
if(orient_right)
diff --git a/code/game/objects/items/devices/floor_painter.dm b/code/game/objects/items/devices/floor_painter.dm
index 415a5ec2003..b5b19e4f672 100644
--- a/code/game/objects/items/devices/floor_painter.dm
+++ b/code/game/objects/items/devices/floor_painter.dm
@@ -21,7 +21,7 @@
if(istype(A, /turf/simulated/floor))
var/turf/simulated/floor/F = A
- if(F.is_steel_floor()) // only tiled floors
+ if(!is_type_in_list(F, subtypesof(/turf/simulated/floor))) // only tiled floors
if(tile_dir_mode)
var/D = get_dir(usr, F)
if(usr.loc == F)
diff --git a/code/game/objects/items/devices/magnetic_lock.dm b/code/game/objects/items/devices/magnetic_lock.dm
index c6765569211..48bc3aafc19 100644
--- a/code/game/objects/items/devices/magnetic_lock.dm
+++ b/code/game/objects/items/devices/magnetic_lock.dm
@@ -13,7 +13,7 @@
//icon_state = "inactive"
w_class = 3
req_access = list(access_cent_specops)
- health = 90
+ health = 150
var/department = "CENTCOM"
var/status = 0
@@ -107,13 +107,17 @@
user << "You cannot swipe your [I] through [src] with it partially dismantled!"
return
- if (istype(I, /obj/item/weapon) && user.a_intent == "hurt")
- if (I.force >= 8)
+ if (istype(I, /obj/item/weapon) && user.a_intent == "harm")
+ if (I.force >= 18)
user.visible_message("[user] bashes [src] with [I]!", "You strike [src] with [I], damaging it!")
takedamage(I.force)
+ playsound(loc, "sound/weapons/genhit[rand(1,3)].ogg", I.force*3, 1)
+ spawn(3)
+ playsound(loc, "sound/effects/sparks[rand(1,4)].ogg", 30, 1)
return
else
- user.visible_message("[user] hits [src] with [I] to no visible effect.", "You hit [src] with [I], but it appears to have no effect.")
+ user.visible_message("[user] hits [src] with [I] but fails to damage it.", "You hit [src] with [I], [I.force >= 10 ? "and it almost makes a dent!" : "but it appears to have no visible effect."]")
+ playsound(loc, "sound/weapons/Genhit.ogg", I.force*2.5, 1)
return
switch (constructionstate)
@@ -402,13 +406,14 @@
overlays += "overlay_deconstruct_[constructionstate]"
/obj/item/device/magnetic_lock/proc/takedamage(var/damage)
- health -= damage
+ health -= rand(damage/2, damage)
if (damage >= 40 && prob(50))
health = 0
if (health <= 0)
visible_message("[src] sparks[target ? " and falls off of \the [target]!" : "!"] It is now completely unusable!")
+ detach(0)
status = STATUS_BROKEN
update_icon()
return
diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm
index 84d5b1d30cd..3366340ea8d 100644
--- a/code/modules/ventcrawl/ventcrawl.dm
+++ b/code/modules/ventcrawl/ventcrawl.dm
@@ -5,6 +5,7 @@ var/list/ventcrawl_machinery = list(
// Vent crawling whitelisted items, whoo
/mob/living/var/list/can_enter_vent_with = list(
+ /obj/item/device/mmi,
/obj/item/weapon/implant,
/obj/item/device/radio/borg,
/obj/item/weapon/holder,
diff --git a/code/modules/ventcrawl/ventcrawl_atmospherics.dm b/code/modules/ventcrawl/ventcrawl_atmospherics.dm
index 4a9901952c6..32f32452381 100644
--- a/code/modules/ventcrawl/ventcrawl_atmospherics.dm
+++ b/code/modules/ventcrawl/ventcrawl_atmospherics.dm
@@ -51,10 +51,10 @@
else
if((direction & initialize_directions) || is_type_in_list(src, ventcrawl_machinery) && src.can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent
user.remove_ventcrawl()
- user.forceMove(src.loc)
+ user.forceMove(check_neighbor_density(get_turf(src.loc), direction) ? src.loc : get_step(src, direction))
user.sight &= ~(SEE_TURFS|BLIND)
user.visible_message("You hear something squeezing through the pipes.", "You climb out the ventilation system.")
- user.vent_trap_check("arriving", target_move)
+ user.vent_trap_check("arriving", user.loc)
user.canmove = 0
spawn(1)
user.canmove = 1
diff --git a/html/changelogs/Bedshaped-PR-1146.yml b/html/changelogs/Bedshaped-PR-1146.yml
new file mode 100644
index 00000000000..8c0a395aa2c
--- /dev/null
+++ b/html/changelogs/Bedshaped-PR-1146.yml
@@ -0,0 +1,11 @@
+author: Bedshaped
+
+delete-after: True
+
+changes:
+ - bugfix: "Fixed Spider-bots unable to vent-crawl."
+ - bugfix: "Fixed a runtime error when exiting through a pipe after vent-crawling."
+ - bugfix: "Fixed incorrect message when putting robots in storage."
+ - bugfix: "Fixed floor painters being able to be used on non-valid tiles."
+ - bugfix: "Fixed magnetic locks unable to be damaged and increased their health."
+ - tweak: "Quietened Bosun's whistle."
diff --git a/sound/misc/bosuns_whistle.ogg b/sound/misc/bosuns_whistle.ogg
index c767cb6fde4..1cc7bce4417 100644
Binary files a/sound/misc/bosuns_whistle.ogg and b/sound/misc/bosuns_whistle.ogg differ