diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 9a62abf43c9..86dbb2760f3 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -720,57 +720,54 @@ datum if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.wear_mask) - if(!H.wear_mask.unacidable) - del (H.wear_mask) - H.update_inv_wear_mask() - H << "\red Your mask melts away but protects you from the acid!" - else + if(volume > 25) + + if(H.wear_mask) H << "\red Your mask protects you from the acid!" - return + return - if(H.head) - if(prob(15) && !H.head.unacidable) - del(H.head) - H.update_inv_head() - H << "\red Your helmet melts away but protects you from the acid" - else + if(H.head) H << "\red Your helmet protects you from the acid!" - return + return - else if(ismonkey(M)) - var/mob/living/carbon/monkey/MK = M - if(MK.wear_mask) - if(!MK.wear_mask.unacidable) - del (MK.wear_mask) - MK.update_inv_wear_mask() - MK << "\red Your mask melts away but protects you from the acid!" - else - MK << "\red Your mask protects you from the acid!" - return - - if(!M.unacidable) - if(prob(15) && istype(M, /mob/living/carbon/human) && volume >= 30) - var/mob/living/carbon/human/H = M - var/obj/item/organ/external/affecting = H.get_organ("head") - if(affecting) - if(affecting.take_damage(25, 0)) - H.UpdateDamageIcon() - H.status_flags |= DISFIGURED - H.emote("scream") + if(!M.unacidable) + if(prob(75)) + var/obj/item/organ/external/affecting = H.get_organ("head") + if(affecting) + affecting.take_damage(20, 0) + H.UpdateDamageIcon() + H.emote("scream") + else + M.take_organ_damage(15,0) else - M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl - else - if(!M.unacidable) - M.take_organ_damage(min(15, volume * 2)) + M.take_organ_damage(15,0) + + if(method == INGEST) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + + if(volume < 10) + M << "The greenish acidic substance stings you, but isn't concentrated enough to harm you!" + + if(volume >=10 && volume <=25) + if(!H.unacidable) + M.take_organ_damage(min(max(volume-10,2)*2,20),0) + M.emote("scream") + + + if(volume > 25) + if(!M.unacidable) + if(prob(75)) + var/obj/item/organ/external/affecting = H.get_organ("head") + if(affecting) + affecting.take_damage(20, 0) + H.UpdateDamageIcon() + H.emote("scream") + else + M.take_organ_damage(15,0) reaction_obj(var/obj/O, var/volume) - if(istype(O,/obj/item/weapon/organ/head)) - new/obj/item/weapon/skeleton/head(O.loc) - for(var/mob/M in viewers(5, O)) - M << "\red \the [O] melts." - del(O) - if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom)) && prob(10)) + if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom)) && prob(40)) if(!O.unacidable) var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc) I.desc = "Looks like this was \an [O] some time ago." diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 35b8f9cef09..a3591a943c1 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -377,7 +377,7 @@ datum id = "sacid" result = "sacid" required_reagents = list("sulfur" = 1, "oxygen" = 1, "hydrogen" = 1) - result_amount = 3 + result_amount = 2 mix_message = "The mixture gives off a sharp acidic tang." ///////Changeling Blood Test///////////// diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index d79cdeed7a4..c173c5adbea 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -227,65 +227,48 @@ datum/reagent/facid datum/reagent/facid/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return //wooo more runtime fixin - if(method == TOUCH) + if(method == TOUCH || method == INGEST) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.wear_mask) - if(!H.wear_mask.unacidable) - qdel (H.wear_mask) - H.update_inv_wear_mask() - H << "\red Your mask melts away but protects you from the acid!" - else - H << "\red Your mask protects you from the acid!" - return + if(volume < 5) + M << "The blueish acidic substance stings you, but isn't concentrated enough to harm you!" - if(H.head) - if(prob(15) && !H.head.unacidable) - qdel(H.head) - H.update_inv_head() - H << "\red Your helmet melts away but protects you from the acid" - else - H << "\red Your helmet protects you from the acid!" - return + if(volume >=5 && volume <=10) + if(!H.unacidable) + M.take_organ_damage(max(volume-5,2)*4,0) + M.emote("scream") - if(!H.unacidable) - var/obj/item/organ/external/affecting = H.get_organ("head") - if(affecting.take_damage(15, 0)) + + if(volume > 10) + + if(method == TOUCH) + if(H.wear_mask) + if(!H.wear_mask.unacidable) + qdel (H.wear_mask) + H.update_inv_wear_mask() + H << "\red Your mask melts away but protects you from the acid!" + else + H << "\red Your mask protects you from the acid!" + return + + if(H.head) + if(!H.head.unacidable) + qdel(H.head) + H.update_inv_head() + H << "\red Your helmet melts away but protects you from the acid" + else + H << "\red Your helmet protects you from the acid!" + return + + if(!H.unacidable) + var/obj/item/organ/external/affecting = H.get_organ("head") + affecting.take_damage(75, 0) H.UpdateDamageIcon() - H.emote("scream") - else if(ismonkey(M)) - var/mob/living/carbon/monkey/MK = M - - if(MK.wear_mask) - if(!MK.wear_mask.unacidable) - qdel (MK.wear_mask) - MK.update_inv_wear_mask() - MK << "\red Your mask melts away but protects you from the acid!" - else - MK << "\red Your mask protects you from the acid!" - return - - if(!MK.unacidable) - MK.take_organ_damage(min(15, volume * 4)) // same deal as sulphuric acid - else - if(!M.unacidable) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/obj/item/organ/external/affecting = H.get_organ("head") - if(affecting.take_damage(15, 0)) - H.UpdateDamageIcon() - H.emote("scream") - H.status_flags |= DISFIGURED - else - M.take_organ_damage(min(15, volume * 4)) + H.emote("scream") + H.status_flags |= DISFIGURED datum/reagent/facid/reaction_obj(var/obj/O, var/volume) - if(istype(O,/obj/item/weapon/organ/head)) - new/obj/item/weapon/skeleton/head(O.loc) - for(var/mob/M in viewers(5, O)) - M << "\red \the [O] melts." - qdel(O) if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom))) if(!O.unacidable) var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc) @@ -293,6 +276,7 @@ datum/reagent/facid/reaction_obj(var/obj/O, var/volume) for(var/mob/M in viewers(5, O)) M << "\red \the [O] melts." qdel(O) + /datum/chemical_reaction/facid name = "Fluorosulfuric Acid" id = "facid"