diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index e4f2f3b5d1b..0d4a871fc06 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -963,6 +963,13 @@ var/list/uplink_items = list() item = /obj/item/weapon/storage/backpack/duffel/syndie/surgery cost = 4 +/datum/uplink_item/device_tools/bonerepair + name = "Prototype Bone Repair Kit" + desc = "Stolen prototype bone repair nanites. Contains one nanocalcium autoinjector and guide." + reference = "NCAI" + item = /obj/item/weapon/storage/box/syndie_kit/bonerepair + cost = 6 + /datum/uplink_item/device_tools/military_belt name = "Military Belt" desc = "A robust seven-slot red belt made for carrying a broad variety of weapons, ammunition and explosives" diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index c5f32121d4f..2676f5f23ff 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -241,4 +241,27 @@ ..() for(var/i in 1 to 3) new/obj/item/cardboard_cutout/adaptive(src) - new/obj/item/toy/crayon/spraycan(src) \ No newline at end of file + new/obj/item/toy/crayon/spraycan(src) + +/obj/item/weapon/storage/box/syndie_kit/bonerepair + name = "bone repair kit" + desc = "A box containing one prototype field bone repair kit." + +/obj/item/weapon/storage/box/syndie_kit/bonerepair/New() + ..() + new /obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium(src) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src) + P.name = "Bone repair guide" + P.info = {" +Prototype Bone Repair Nanites

+ +Usage:
+ +This is a highly experimental prototype chemical designed to repair damaged bones of soldiers in the field, use only as a last resort. The autoinjector contains prototype nanites bearing a calcium based payload. The nanites will simultaneously shut down body systems whilst aiding bone repair.
+ +Warning: Side effects can cause temporary paralysis, loss of co-ordination and sickness. Do not use with any kind of stimulant or drugs. Serious damage can occur!
+ +To apply, hold the injector a short distance away from the outer thigh before applying firmly to the skin surface. Bones should begin repair after a short time, during which you are advised to remain still.

+ +After use you are advised to see a doctor at the next available opportunity. Mild scarring and tissue damage may occur after use. This is a prototype. + "} \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index bb5c793c3d0..05ea77988d5 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -1043,18 +1043,34 @@ color = "#9b3401" metabolization_rate = 0.5 -/datum/reagent/medicine/nanocalcium/on_mob_life(mob/living/M) +/datum/reagent/medicine/nanocalcium/on_mob_life(mob/living/carbon/human/M) switch(current_cycle) - if(1 to 44) - if(M.has_reagent("methamphetamine")) - M.adjustToxLoss(2) - else - if(prob(50)) + if(1 to 19) + M.AdjustJitter(4) + if(prob(10)) + to_chat(M, "Your skin feels hot and your veins are on fire!") + if(20 to 43) + //If they have stimulants or stimulant drugs then just apply toxin damage instead. + if(M.reagents.has_reagent("methamphetamine") || M.reagents.has_reagent("crank") || M.reagents.has_reagent("bath_salts") || M.reagents.has_reagent("stimulative_agent") || M.reagents.has_reagent("stimulants")) + M.adjustToxLoss(10) + else //apply debilitating effects + if(prob(75)) M.AdjustConfused(5) else M.AdjustWeakened(5) - //apply debilitating effects - if(45 to 55) - //fix minor bones as we go - if(56 to 60) - //fix major bones + if(44) + to_chat(M, "Your body goes rigid, you cannot move at all!") + M.AdjustWeakened(15) + if(45 to 60) // Start fixing bones | If they have stimulants or stimulant drugs in their system then the nanites won't work. + if(M.reagents.has_reagent("methamphetamine") || M.reagents.has_reagent("crank") || M.reagents.has_reagent("bath_salts") || M.reagents.has_reagent("stimulative_agent") || M.reagents.has_reagent("stimulants")) + return ..() + else + for(var/obj/item/organ/external/E in M.bodyparts) + if(E.is_broken()) + if(prob(50)) // Each tick has a 50% chance of repearing a bone. + to_chat(M, "You feel a burning sensation in your [E.name] as it straightens involuntarily!") + E.rejuvenate() //Repair it completely. + return ..() + else + continue + ..() diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 490f46e0a52..978bb15d2d3 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -110,4 +110,13 @@ amount_per_transfer_from_this = 50 possible_transfer_amounts = list(50) volume = 50 - list_reagents = list("stimulants" = 50) \ No newline at end of file + list_reagents = list("stimulants" = 50) + +/obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium + name = "Nanocalcium autoinjector" + desc = "After a short period of time the nanites will slow the body's systems and assist with bone repair. WARNING: Do not use with stimulants!" + icon_state = "bonepen" + amount_per_transfer_from_this = 30 + possible_transfer_amounts = list(30) + volume = 30 + list_reagents = list("nanocalcium" = 30) \ No newline at end of file diff --git a/icons/obj/hypo.dmi b/icons/obj/hypo.dmi index 6baa7869c75..a6df9972275 100644 Binary files a/icons/obj/hypo.dmi and b/icons/obj/hypo.dmi differ