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..7624fa4bbe5 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -241,4 +241,24 @@ ..() 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.desc = "For when you want to safely get off Mr Bones' Wild Ride." + 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 b135d076818..0e53f7fdc39 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -1035,3 +1035,40 @@ color = "#F5F5F5" // This reagent's effects are handled in heart attack handling code + +/datum/reagent/medicine/nanocalcium + name = "Nano-Calcium" + id = "nanocalcium" + description = "Highly advanced nanites equipped with calcium payloads designed to repair bones. Nanomachines son." + color = "#9b3401" + metabolization_rate = 0.5 + +/datum/reagent/medicine/nanocalcium/on_mob_life(mob/living/carbon/human/M) + switch(current_cycle) + 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) + if(44) + to_chat(M, "Your body goes rigid, you cannot move at all!") + M.AdjustWeakened(15) + if(45 to INFINITY) // 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. + break + ..() diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 490f46e0a52..796b28d9b6f 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -39,6 +39,8 @@ add_logs(user, M, "injected", src, "([contained])") + return TRUE + /obj/item/weapon/reagent_containers/hypospray/CMO list_reagents = list("omnizine" = 30) @@ -75,6 +77,7 @@ return ..() update_icon() + return TRUE /obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon() if(reagents.total_volume > 0) @@ -110,4 +113,17 @@ 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. Nanomachines son." + icon_state = "bonepen" + amount_per_transfer_from_this = 30 + possible_transfer_amounts = list(30) + volume = 30 + list_reagents = list("nanocalcium" = 30) + +/obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium/attack(mob/living/M, mob/user) + if(..()) + playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 20, 1) \ 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