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