diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index ba755b336f..e1290a215c 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -72,6 +72,8 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
*/
var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1), \
+ new/datum/stack_recipe("Metal closet", /obj/structure/closet, 5, time = 50, one_per_turf = 1), \
+ new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1), \
)
/obj/item/stack/sheet/plasteel
diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm
index 3a02b9fca5..4a0c9a6103 100644
--- a/code/modules/mining/satchel_ore_boxdm.dm
+++ b/code/modules/mining/satchel_ore_boxdm.dm
@@ -28,6 +28,7 @@
var/amt_plasma = 0
var/amt_uranium = 0
var/amt_clown = 0
+ var/amt_strange = 0
for (var/obj/item/weapon/ore/C in contents)
@@ -47,6 +48,8 @@
amt_uranium++;
if (istype(C,/obj/item/weapon/ore/clown))
amt_clown++;
+ if (istype(C,/obj/item/weapon/ore/strangerock))
+ amt_strange++;
var/dat = text("The contents of the ore box reveal...
")
if (amt_gold)
@@ -65,6 +68,8 @@
dat += text("Uranium ore: [amt_uranium]
")
if (amt_clown)
dat += text("Bananium ore: [amt_clown]
")
+ if (amt_strange)
+ dat += text("Strange rocks: [amt_strange]
")
dat += text("
Empty box")
user << browse("[dat]", "window=orebox")
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 43eb1b3ba5..58f226d21f 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -258,3 +258,31 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
see_invisible = SEE_INVISIBLE_OBSERVER
else
see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
+
+/mob/dead/observer/verb/become_mouse()
+ set name = "Become mouse"
+ set category = "Ghost"
+
+ //find a viable mouse candidate
+ var/mob/living/simple_animal/mouse/host
+ var/list/mouse_candidates = list()
+ for(var/mob/living/simple_animal/mouse/M in world)
+ if(!M.ckey && !M.stat)
+ mouse_candidates.Add(M)
+ if(mouse_candidates.len)
+ host = pick(mouse_candidates)
+ else
+ var/obj/machinery/atmospherics/unary/vent_pump/vent_found
+ var/list/found_vents = list()
+ for(var/obj/machinery/atmospherics/unary/vent_pump/v in world)
+ if(!v.welded && v.z == src.z)
+ found_vents.Add(v)
+ if(found_vents.len)
+ vent_found = pick(found_vents)
+ host = new /mob/living/simple_animal/mouse(vent_found.loc)
+ else
+ src << "Unable to find any live mice, or unwelded vents to spawn one at."
+
+ if(host)
+ host.ckey = src.ckey
+ host << "You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent."
diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds.dm
index a834b96f69..b3060a2515 100644
--- a/code/modules/research/xenoarchaeology/finds.dm
+++ b/code/modules/research/xenoarchaeology/finds.dm
@@ -79,6 +79,8 @@
R.source_rock = src.source_rock
R.geological_data = src.geological_data
user << "\blue You take a core sample of the [src]."
+ else
+ ..()
/*Code does not work, likely due to removal/change of acid_act proc
//Strange rocks currently melt to gooey grey w/ acid application (see reactions)
diff --git a/html/changelog.html b/html/changelog.html
index f750f811a3..c6e26d8e23 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -59,6 +59,15 @@ should be listed in the changelog upon commit though. Thanks. -->
+