diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index e894342853e..6323c2096f5 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -139,7 +139,7 @@
max_integrity = 250
resistance_flags = LAVA_PROOF | FIRE_PROOF
lights_power = 7
- armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 60, RAD = 70, FIRE = 100)
+ armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 60, RAD = 70, FIRE = 100, ACID = 100)
max_equip = 5 // More armor, less tools
wreckage = /obj/structure/mecha_wreckage/ripley/firefighter
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 266974088d2..8674f623330 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -204,7 +204,6 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
return
C.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 15, 75))
to_chat(user, "You strengthen [target], improving its resistance against melee attacks.")
- use(1)
else
to_chat(user, "You can't improve [C] any further!")
else if(istype(target, /obj/mecha/working/ripley))
@@ -256,7 +255,6 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
if(!use(1))
to_chat(user, "You dont have enough [src] for this!")
return
- use(1)
D.plates++
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 10, 70))
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 4, 50))
@@ -290,7 +288,6 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
if(!use(1))
to_chat(user, "You dont have enough [src] for this!")
return
- use(1)
D.drake_hides++
D.max_integrity += 50
D.obj_integrity += 50
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 9ed65153be9..1f790290870 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -517,6 +517,12 @@
icon_opened = "scicrate_open"
icon_closed = "scicrate"
+/obj/structure/closet/crate/sci/robo
+ desc = "A science crate. Contain various mech parts."
+ icon_state = "scicrate_mech"
+ icon_opened = "scicrate_mech_open"
+ icon_closed = "scicrate_mech"
+
/obj/structure/closet/crate/secure/scisec
name = "secure science crate"
desc = "A crate with a lock on it, painted in the scheme of the station's scientists."
diff --git a/code/modules/supply/supply_packs/pack_science.dm b/code/modules/supply/supply_packs/pack_science.dm
index 51bc785d040..97be6d8a40d 100644
--- a/code/modules/supply/supply_packs/pack_science.dm
+++ b/code/modules/supply/supply_packs/pack_science.dm
@@ -41,19 +41,28 @@
access = ACCESS_RD
/datum/supply_packs/science/robotics/mecha_ripley
- name = "Circuit Crate (Ripley APLU)"
+ name = "Construction Crate (Ripley APLU)"
contains = list(/obj/item/book/manual/ripley_build_and_repair,
- /obj/item/circuitboard/mecha/ripley/main, //TEMPORARY due to lack of circuitboard printer
- /obj/item/circuitboard/mecha/ripley/peripherals) //TEMPORARY due to lack of circuitboard printer
- cost = 500
- containername = "\improper APLU \"Ripley\" circuit crate"
+ /obj/item/circuitboard/mecha/ripley/main,
+ /obj/item/circuitboard/mecha/ripley/peripherals,
+ /obj/item/clothing/suit/fire/firefighter,
+ /obj/item/stack/sheet/plasteel = 15)
+ cost = 350
+ containertype = /obj/structure/closet/crate/sci/robo
+ containername = "\improper APLU \"Ripley\" construction crate"
+ announce_beacons = list("Research Division" = list("Robotics"))
+ department_restrictions = list(DEPARTMENT_ENGINEERING, DEPARTMENT_SCIENCE) // depending on module combinations, this is miner or engi mech
/datum/supply_packs/science/robotics/mecha_odysseus
- name = "Circuit Crate (Odysseus)"
- contains = list(/obj/item/circuitboard/mecha/odysseus/peripherals, //TEMPORARY due to lack of circuitboard printer
- /obj/item/circuitboard/mecha/odysseus/main) //TEMPORARY due to lack of circuitboard printer
- cost = 450
- containername = "\improper \"Odysseus\" circuit crate"
+ name = "Construction Crate (Odysseus)"
+ contains = list(/obj/item/circuitboard/mecha/odysseus/peripherals,
+ /obj/item/circuitboard/mecha/odysseus/main,
+ /obj/item/mecha_parts/mecha_equipment/medical/sleeper,
+ /obj/item/stack/sheet/plasteel = 5)
+ cost = 350
+ containertype = /obj/structure/closet/crate/sci/robo
+ containername = "\improper \"Odysseus\" construction crate"
+ department_restrictions = list(DEPARTMENT_MEDICAL, DEPARTMENT_SCIENCE) // medical mech for medical shenanigans
/datum/supply_packs/science/plasma
name = "Plasma Assembly Crate"
diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi
index 10d0b26c7e4..73b3af8ee83 100644
Binary files a/icons/obj/crates.dmi and b/icons/obj/crates.dmi differ