diff --git a/citadel.dme b/citadel.dme index 5c76643dc852..39afb0996fa2 100644 --- a/citadel.dme +++ b/citadel.dme @@ -4714,6 +4714,7 @@ #include "code\modules\reagents\machinery\reagent_dispenser\water.dm" #include "code\modules\reagents\machinery\reagent_dispenser\watercooler.dm" #include "code\modules\reagents\reagent_containers\blood_pack.dm" +#include "code\modules\reagents\reagent_containers\blood_pack_vr.dm" #include "code\modules\reagents\reagent_containers\borghydro.dm" #include "code\modules\reagents\reagent_containers\cartridge.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" diff --git a/code/modules/reagents/chemistry/reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/chemistry/reagents/Chemistry-Reagents-Core.dm index 3a6f91bf8219..3030bec93dd0 100644 --- a/code/modules/reagents/chemistry/reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/chemistry/reagents/Chemistry-Reagents-Core.dm @@ -41,7 +41,7 @@ /datum/reagent/blood/affect_ingest(mob/living/carbon/M, alien, removed) var/effective_dose = dose - if(issmall(M)) + if(issmall(M)) effective_dose *= 2 var/nutritionvalue = 10 //for reference, normal nutrition has a value of about 30. @@ -76,10 +76,9 @@ M.add_chemical_effect(CE_BLOODRESTORE, 8 * removed) // Same rating as taking iron else M.adjust_nutrition(nutritionvalue * removed * volume_mod) + M.heal_organ_damage(0.2 * removed * volume_mod, 0) // Heal brute slightly like normal nutrition. More 'effective' blood means more usable material. M.adjust_hydration(2 * removed) // Still has some water in the form of plasma. Hydrates less than a normal drink. M.add_chemical_effect(CE_BLOODRESTORE, 4 * removed) //same rating as eating nutriment - if(effective_dose >= 20 && prob(10)) - M.vomit(FALSE, FALSE) //Drinking blood makes you vomit, due to the high iron content and unpleasant consistency if(data && data["virus2"]) var/list/vlist = data["virus2"] diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 8356dc2934a1..92bade4d10e5 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -78,15 +78,6 @@ name = "[base_name] ([label_text])" desc = "[base_desc] It is labeled \"[label_text]\"." -/obj/item/reagent_containers/blood/attack_mob(mob/target, mob/user, clickchain_flags, list/params, mult, target_zone, intent) - if(user.a_intent == INTENT_HARM) - return ..() - . = CLICKCHAIN_DO_NOT_PROPAGATE - standard_feed_mob(user, target) - -/obj/item/reagent_containers/blood/self_feed_message(var/mob/user) - to_chat(user, "You drink from \the [src]") - /obj/item/reagent_containers/blood/APlus blood_type = "A+" @@ -116,78 +107,3 @@ desc = "Seems pretty useless... Maybe if there were a way to fill it?" icon_state = "empty" item_state = "bloodpack_empty" - -/obj/item/reagent_containers/blood/attack_self(mob/user, datum/event_args/actor/actor) - . = ..() - if(.) - return - if(istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/human_user = user - if(human_user.species.is_vampire) - if(user.a_intent == INTENT_HARM) - if(reagents.total_volume && volume) - switch(reagents.get_master_reagent_id()) - if("blood") - user.show_message("You sink your fangs into \the [src] and suck the blood out of it!") - user.visible_message("[user] sinks their fangs into \the [src] and drains it!") - standard_feed_mob(user, user) - update_icon() - if(!bitten_state) - desc += " It has two circular puncture marks in it." - bitten_state = TRUE - return - else - user.show_message("You take a look at \the [src] and notice that it is not filled with blood!") - return - else - user.show_message("You take a look at \the [src] and notice it has nothing in it!") - return - else - return - -/obj/item/reagent_containers/blood/prelabeled - name = "IV Pack" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted." - -/obj/item/reagent_containers/blood/prelabeled/update_iv_label() - return - -/obj/item/reagent_containers/blood/prelabeled/APlus - name = "IV Pack (A+)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled A+." - blood_type = "A+" - -/obj/item/reagent_containers/blood/prelabeled/AMinus - name = "IV Pack (A-)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled A-." - blood_type = "A-" - -/obj/item/reagent_containers/blood/prelabeled/BPlus - name = "IV Pack (B+)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled B+." - blood_type = "B+" - -/obj/item/reagent_containers/blood/prelabeled/BMinus - name = "IV Pack (B-)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled B-." - blood_type = "B-" - -/obj/item/reagent_containers/blood/prelabeled/ABPlus - name = "IV Pack (AB+)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled AB+." - blood_type = "AB+" - -/obj/item/reagent_containers/blood/prelabeled/ABMinus - name = "IV Pack (AB-)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled AB-." - blood_type = "AB-" - -/obj/item/reagent_containers/blood/prelabeled/OPlus - name = "IV Pack (O+)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled O+." - blood_type = "O+" - -/obj/item/reagent_containers/blood/prelabeled/OMinus - name = "IV Pack (O-)" - desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled O-." - blood_type = "O-" diff --git a/code/modules/reagents/reagent_containers/blood_pack_vr.dm b/code/modules/reagents/reagent_containers/blood_pack_vr.dm new file mode 100644 index 000000000000..7a7c947e2186 --- /dev/null +++ b/code/modules/reagents/reagent_containers/blood_pack_vr.dm @@ -0,0 +1,77 @@ +/obj/item/reagent_containers/blood/attack_self(mob/user, datum/event_args/actor/actor) + . = ..() + if(.) + return + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/human_user = user + if(human_user.species.is_vampire) + if(user.a_intent == INTENT_HARM) + if(reagents.total_volume && volume) + var/remove_volume = volume* 0.1 //10% of what the bloodpack can hold. + var/reagent_to_remove = reagents.get_master_reagent_id() + switch(reagents.get_master_reagent_id()) + if("blood") + user.show_message("You sink your fangs into \the [src] and suck the blood out of it!") + user.visible_message("[user] sinks their fangs into \the [src] and drains it!") + user.nutrition += remove_volume*4 + reagents.remove_reagent(reagent_to_remove, remove_volume) + update_icon() + if(!bitten_state) + desc += " It has two circular puncture marks in it." + bitten_state = TRUE + return + else + user.show_message("You take a look at \the [src] and notice that it is not filled with blood!") + return + else + user.show_message("You take a look at \the [src] and notice it has nothing in it!") + return + else + return + +/obj/item/reagent_containers/blood/prelabeled + name = "IV Pack" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted." + +/obj/item/reagent_containers/blood/prelabeled/update_iv_label() + return + +/obj/item/reagent_containers/blood/prelabeled/APlus + name = "IV Pack (A+)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled A+." + blood_type = "A+" + +/obj/item/reagent_containers/blood/prelabeled/AMinus + name = "IV Pack (A-)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled A-." + blood_type = "A-" + +/obj/item/reagent_containers/blood/prelabeled/BPlus + name = "IV Pack (B+)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled B+." + blood_type = "B+" + +/obj/item/reagent_containers/blood/prelabeled/BMinus + name = "IV Pack (B-)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled B-." + blood_type = "B-" + +/obj/item/reagent_containers/blood/prelabeled/ABPlus + name = "IV Pack (AB+)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled AB+." + blood_type = "AB+" + +/obj/item/reagent_containers/blood/prelabeled/ABMinus + name = "IV Pack (AB-)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled AB-." + blood_type = "AB-" + +/obj/item/reagent_containers/blood/prelabeled/OPlus + name = "IV Pack (O+)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled O+." + blood_type = "O+" + +/obj/item/reagent_containers/blood/prelabeled/OMinus + name = "IV Pack (O-)" + desc = "Holds liquids used for transfusion. This one's label seems to be hardprinted. This one is labeled O-." + blood_type = "O-"