diff --git a/code/game/objects/items/stacks/medical_vr.dm b/code/game/objects/items/stacks/medical_vr.dm index eda72a3fce..4599bb43f9 100644 --- a/code/game/objects/items/stacks/medical_vr.dm +++ b/code/game/objects/items/stacks/medical_vr.dm @@ -18,4 +18,59 @@ if(9) icon_state = "[initial(icon_state)]_9" else - icon_state = "[initial(icon_state)]_10" \ No newline at end of file + icon_state = "[initial(icon_state)]_10" + + +/obj/item/stack/medical/advanced/clotting + name = "liquid bandage kit" + singular_name = "liquid bandage kit" + desc = "A spray that stops bleeding using a patented chemical cocktail. Non-refillable. Only one use required per patient." + icon_state = "clotkit" + heal_burn = 0 + heal_brute = 2 // Only applies to non-humans, to give this some slight application on animals + origin_tech = list(TECH_BIO = 3) + apply_sounds = list('sound/effects/spray.ogg', 'sound/effects/spray2.ogg', 'sound/effects/spray3.ogg') + amount = 5 + max_amount = 5 + +/obj/item/stack/medical/advanced/clotting/attack(mob/living/carbon/human/H, var/mob/user) + if(..()) + return 1 + + if(!istype(H)) + return + + var/clotted = 0 + var/too_far_gone = 0 + + for(var/org in H.organs) //'organs' is just external organs, as opposed to 'internal_organs' + var/obj/item/organ/external/affecting = org + + // No amount of clotting is going to help you here. + if(affecting.open) + too_far_gone++ + continue + + for(var/wnd in affecting.wounds) + var/datum/wound/W = wnd + // No need + if(W.bandaged) + continue + // It's not that amazing + if(W.internal) + continue + if(W.current_stage <= W.max_bleeding_stage) + clotted++ + W.bandage() + + var/healmessage = "You spray [src] onto [H], sealing [clotted ? clotted : "no"] wounds." + if(too_far_gone) + healmessage += " You can see some wounds that are too large where the spray is not taking effect." + + to_chat(user, healmessage) + use(1) + playsound(src, pick(apply_sounds), 25) + update_icon() + +/obj/item/stack/medical/advanced/clotting/update_icon() + icon_state = "[initial(icon_state)]_[amount]" \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index 8d368233df..7f7d601c33 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -252,6 +252,15 @@ src.modules += new /obj/item/weapon/shockpaddles/robot/hound(src) //Paws of life src.emag = new /obj/item/weapon/dogborg/pounce(src) //Pounce + var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(2000) + synths += medicine + + var/obj/item/stack/medical/advanced/clotting/C = new (src) + C.uses_charge = 1 + C.charge_costs = list(1000) + C.synths = list(medicine) + src.modules += C + var/datum/matter_synth/water = new /datum/matter_synth(500) water.name = "Water reserves" water.recharge_rate = 0 diff --git a/icons/obj/stacks_vr.dmi b/icons/obj/stacks_vr.dmi index 54fe25d911..34d49af81b 100644 Binary files a/icons/obj/stacks_vr.dmi and b/icons/obj/stacks_vr.dmi differ