From fe914dc5f5eb6e464e8a7ac806ddd28fe894f327 Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Wed, 21 Feb 2018 20:44:03 +0000 Subject: [PATCH] finishes effects, adds nanocalcium auto-injector, adds bone repair kit to uplink. adds sprites. --- code/datums/uplink_item.dm | 7 ++++ .../items/weapons/storage/uplink_kits.dm | 25 +++++++++++- .../reagents/chemistry/reagents/medicine.dm | 38 +++++++++++++----- .../reagents/reagent_containers/hypospray.dm | 11 ++++- icons/obj/hypo.dmi | Bin 3845 -> 4221 bytes 5 files changed, 68 insertions(+), 13 deletions(-) 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 6baa7869c75ed60c96b4f8b040b7a3e0e16cd785..a6df99722754def9849876d2a0375b344ed1871e 100644 GIT binary patch literal 4221 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 V)#q=QkngpCk-n+kXI