[MANUAL MIRROR] [MODULAR] Gives roboticists a medkit containing synthetic treatment items, adds general synth medkits, rebalances some synth medicine-centric cargo packs, and more (#1263)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Manual mirror of https://github.com/Skyrat-SS13/Skyrat-tg/pull/26677

Honey, its the end of the month, time for your monthly synthetic wound
PR!

Title. See proof of testing for screenshots.

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## How This Contributes To The Skyrat Roleplay Experience

When I added things like chilled hercuri or analyzers to the robo
vendor, they were added because I wanted robos to have them at
roundstart. I have since realized I can use the outfit to give them
these things. This PR does that.

There are currently _no_ normal synth medkits. This is an issue, since a
synth trauma kit, being a dufflebag, is not portable. This fills the
gap.

The synth burns kit was given 2 more bottles of each, to make it worth
it compared to the synthetic treatment kits.

<!-- Please add a short description of why you think these changes would
benefit the game and the roleplay atmosphere of the server. If you can't
justify it in words, it might not be worth adding. -->

## Proof of Testing

<!-- Include any screenshots/videos/debugging steps of the code
functioning successfully, between the </summary> and </details> code
blocks. -->
<!-- To our mappers and spriters: Posting screenshots of content INSIDE
EDITORS (aseprite, PDN, SDMM, ect) is NOT valid proof of testing. Please
make sure that you COMPILE the game and provide PROOF you tested your
edits. -->

<details>
<summary>Screenshots/Videos</summary>
  

![image](https://github.com/Skyrat-SS13/Skyrat-tg/assets/59709059/3bfdf559-5824-410e-b77c-d355544c0abf)

</details>

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Roboticists now spawn with synthetic medkits to make their jobs a
bit easier
add: New cargo packs for synthetic medkits
balance: Roboticists now spawn with diag huds, welding helmets, and
black gloves
balance: Synthetic burn kits now have extra bottles
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
This commit is contained in:
nikothedude
2024-03-21 17:53:23 +01:00
committed by GitHub
co-authored by projectkepler-RU Waterpig
parent a2f0b273f1
commit d30f031eba
6 changed files with 109 additions and 2 deletions
@@ -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()
. = ..()
@@ -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)
Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

@@ -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)
Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B