diff --git a/modular_skyrat/master_files/code/modules/jobs/job_types/roboticist.dm b/modular_skyrat/master_files/code/modules/jobs/job_types/roboticist.dm index 1c1212b0154..a2b0767ce97 100644 --- a/modular_skyrat/master_files/code/modules/jobs/job_types/roboticist.dm +++ b/modular_skyrat/master_files/code/modules/jobs/job_types/roboticist.dm @@ -4,10 +4,21 @@ duffelbag = /obj/item/storage/backpack/duffelbag/science/robo messenger = /obj/item/storage/backpack/messenger/science/robo + glasses = /obj/item/clothing/glasses/hud/diagnostic + gloves = /obj/item/clothing/gloves/color/black + + l_hand = /obj/item/storage/medkit/mechanical/roboticist + /datum/job/roboticist description = "Build cyborgs, mechs, AIs, and maintain them all. Create MODsuits for those that wish. Try to remind medical that you're \ actually a lot better at treating synthetic crew members than them." +/datum/outfit/job/roboticist/New() + . = ..() + + LAZYINITLIST(backpack_contents) + backpack_contents[/obj/item/clothing/head/utility/welding] = 1 + /datum/job/roboticist/New() . = ..() diff --git a/modular_skyrat/modules/medical/code/cargo/packs.dm b/modular_skyrat/modules/medical/code/cargo/packs.dm index a7a84c600f4..58259bc4568 100644 --- a/modular_skyrat/modules/medical/code/cargo/packs.dm +++ b/modular_skyrat/modules/medical/code/cargo/packs.dm @@ -1,8 +1,8 @@ /datum/supply_pack/science/synthetic_burns name = "Synthetic Burns Kit" - desc = "Contains a bottle of pre-chilled hercuri and a bottle of dinitrogen plasmide, perfect for treating synthetic burns!" + desc = "Contains bottles of pre-chilled hercuri and dinitrogen plasmide, perfect for treating synthetic burns!" cost = CARGO_CRATE_VALUE * 2.5 - contains = list(/obj/item/reagent_containers/spray/hercuri/chilled = 1, /obj/item/reagent_containers/spray/dinitrogen_plasmide = 1) + contains = list(/obj/item/reagent_containers/spray/hercuri/chilled = 3, /obj/item/reagent_containers/spray/dinitrogen_plasmide = 3) crate_name = "chilled hercuri crate" access_view = FALSE @@ -34,3 +34,21 @@ access_view = FALSE access = FALSE access_any = FALSE + +/datum/supply_pack/science/synth_medkits + name = "Mechanical Repair Kits" + desc = "Contains a few low-grade portable synthetic medkits, useful for distributing to the crew." + cost = CARGO_CRATE_VALUE * 4.5 // same as treatment kits + contains = list(/obj/item/storage/medkit/mechanical/regular = 4) + + crate_name = "synthetic repair kits crate" + + access_view = FALSE + access = FALSE + access_any = FALSE + +/datum/supply_pack/goody/mechanical_repair_kit_single + name = "Mechanical Repair Kit Single-Pack" + desc = "A single mechanical repair kit, fit for fixing most robotic injuries." + cost = PAYCHECK_CREW * 3 + contains = list(/obj/item/storage/medkit/mechanical/regular) diff --git a/modular_skyrat/modules/medical/code/medical_lefthand.dmi b/modular_skyrat/modules/medical/code/medical_lefthand.dmi new file mode 100644 index 00000000000..5c5e34a5e68 Binary files /dev/null and b/modular_skyrat/modules/medical/code/medical_lefthand.dmi differ diff --git a/modular_skyrat/modules/medical/code/medical_righthand.dmi b/modular_skyrat/modules/medical/code/medical_righthand.dmi new file mode 100644 index 00000000000..569d3665f5c Binary files /dev/null and b/modular_skyrat/modules/medical/code/medical_righthand.dmi differ diff --git a/modular_skyrat/modules/medical/code/medkit.dm b/modular_skyrat/modules/medical/code/medkit.dm index a641932619d..fe496ea8f76 100644 --- a/modular_skyrat/modules/medical/code/medkit.dm +++ b/modular_skyrat/modules/medical/code/medkit.dm @@ -178,3 +178,81 @@ /obj/item/storage/backpack/duffelbag/synth_treatment_kit/trauma/advanced/unzipped zipped_up = FALSE + +// basetype, do not use +/obj/item/storage/medkit/mechanical + name = "mechanical medkit" + desc = "For those mechanical booboos." + + icon = 'modular_skyrat/modules/medical/code/medkit.dmi' + icon_state = "medkit_mechanical" + inhand_icon_state = "medkit_mechanical" + lefthand_file = 'modular_skyrat/modules/medical/code/medical_lefthand.dmi' + righthand_file = 'modular_skyrat/modules/medical/code/medical_righthand.dmi' + +/obj/item/storage/medkit/mechanical/Initialize(mapload) + . = ..() + + var/static/list/list_of_everything_mechanical_medkits_can_hold = list_of_everything_medkits_can_hold + list( + /obj/item/stack/cable_coil, + /obj/item/crowbar, + /obj/item/screwdriver, + /obj/item/wrench, + /obj/item/weldingtool, + /obj/item/wirecutters, + /obj/item/multitool, + /obj/item/plunger, + /obj/item/clothing/head/utility/welding, + /obj/item/clothing/glasses/welding, + ) + var/static/list/exception_cache = typecacheof( + /obj/item/clothing/head/utility/welding + ) + + atom_storage.set_holdable(list_of_everything_mechanical_medkits_can_hold) + LAZYINITLIST(atom_storage.exception_hold) + atom_storage.exception_hold = atom_storage.exception_hold + exception_cache + +/obj/item/storage/medkit/mechanical/regular + name = "mechanical repair kit" + desc = "Used to treat injuries sustained by mechanical limbs/lifeforms." + +/obj/item/storage/medkit/mechanical/regular/PopulateContents() + if(empty) + return + var/static/items_inside = list( + /obj/item/stack/medical/gauze = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weldingtool/mini = 1, + /obj/item/clothing/head/utility/welding = 1, + /obj/item/reagent_containers/hypospray/medipen = 1, // treats electrical damage + /obj/item/healthanalyzer/simple = 1, + ) + generate_items_inside(items_inside,src) + +/obj/item/storage/medkit/mechanical/roboticist + name = "intensive repair kit" + desc = "A high capacity repair kit for roboticists, used to treat injuries sustained by mechanical lifeforms." + icon_state = "medkit_robo" + +/obj/item/storage/medkit/mechanical/roboticist/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL //holds the same equipment as a medibelt + atom_storage.max_slots = 12 + atom_storage.max_total_storage = 24 + +/obj/item/storage/medkit/mechanical/roboticist/PopulateContents() + if(empty) + return + var/static/items_inside = list( + /obj/item/stack/medical/gauze = 2, + /obj/item/stack/cable_coil = 4, + /obj/item/storage/pill_bottle/nanite_slurry = 1, + /obj/item/storage/pill_bottle/system_cleaner = 1, + /obj/item/reagent_containers/spray/hercuri/chilled = 1, + /obj/item/reagent_containers/spray/dinitrogen_plasmide = 1, + /obj/item/reagent_containers/hypospray/medipen = 1, // treats electrical damage + /obj/item/healthanalyzer/simple = 1, + /obj/item/healthanalyzer/no_medibot = 1, // no welding tool since we assume you already have one + ) + generate_items_inside(items_inside,src) diff --git a/modular_skyrat/modules/medical/code/medkit.dmi b/modular_skyrat/modules/medical/code/medkit.dmi new file mode 100644 index 00000000000..451d8587d14 Binary files /dev/null and b/modular_skyrat/modules/medical/code/medkit.dmi differ