mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-10 14:44:05 +01:00
- Nerfed chemical smoke. It is now less "penetrating". Also, bio suits protect against chemicals a lot better now.
- You can now simply wear a gas mask (or internals with a breath mask) to be completely immune to smoke, provided that you're wearing a full bio suit. - Nerfed pacid and sulphuric acid a bit. Sulphuric acid is a lot less potent now, and requires large splash-dosages to actually burn peoples' faces off. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2048 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -24,16 +24,38 @@ datum
|
||||
return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO
|
||||
var/datum/reagent/self = src
|
||||
src = null //of the reagent to the mob on TOUCHING it.
|
||||
if(method == TOUCH)
|
||||
|
||||
var/chance = 1
|
||||
for(var/obj/item/clothing/C in M.get_equipped_items())
|
||||
if(C.permeability_coefficient < chance) chance = C.permeability_coefficient
|
||||
chance = chance * 100
|
||||
if(!istype(self.holder.my_atom, /obj/effects/chem_smoke))
|
||||
// If the chemicals are in a smoke cloud, do not try to let the chemicals "penetrate" into the mob's system (balance station 13) -- Doohl
|
||||
|
||||
if(prob(chance))
|
||||
if(M.reagents)
|
||||
M.reagents.add_reagent(self.id,self.volume/2)
|
||||
if(method == TOUCH)
|
||||
|
||||
var/chance = 1
|
||||
var/block = 0
|
||||
|
||||
for(var/obj/item/clothing/C in M.get_equipped_items())
|
||||
if(C.permeability_coefficient < chance) chance = C.permeability_coefficient
|
||||
if(istype(C, /obj/item/clothing/suit/bio_suit))
|
||||
// bio suits are just about completely fool-proof - Doohl
|
||||
// kind of a hacky way of making bio suits more resistant to chemicals but w/e
|
||||
if(prob(50))
|
||||
block = 1
|
||||
else
|
||||
if(prob(50))
|
||||
block = 1
|
||||
|
||||
if(istype(C, /obj/item/clothing/head/bio_hood))
|
||||
if(prob(50))
|
||||
block = 1
|
||||
else
|
||||
if(prob(50))
|
||||
block = 1
|
||||
|
||||
chance = chance * 100
|
||||
|
||||
if(prob(chance) && !block)
|
||||
if(M.reagents)
|
||||
M.reagents.add_reagent(self.id,self.volume/2)
|
||||
return
|
||||
|
||||
reaction_obj(var/obj/O, var/volume) //By default we transfer a small part of the reagent to the object
|
||||
@@ -600,7 +622,7 @@ datum
|
||||
M << "\red Your mask melts away but protects you from the acid!"
|
||||
return
|
||||
|
||||
if(prob(75) && istype(M, /mob/living/carbon/human))
|
||||
if(prob(15) && istype(M, /mob/living/carbon/human) && volume >= 30)
|
||||
var/datum/organ/external/affecting = M:organs["head"]
|
||||
if(affecting)
|
||||
affecting.take_damage(25, 0)
|
||||
@@ -610,12 +632,12 @@ datum
|
||||
M << "\red Your face has become disfigured!"
|
||||
M.real_name = "Unknown"
|
||||
else
|
||||
M.take_organ_damage(15)
|
||||
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
|
||||
M.take_organ_damage(15)
|
||||
M.take_organ_damage(min(15, volume * 2))
|
||||
|
||||
reaction_obj(var/obj/O, var/volume)
|
||||
if((istype(O,/obj/item) || istype(O,/obj/glowshroom)) && prob(40))
|
||||
if((istype(O,/obj/item) || istype(O,/obj/glowshroom)) && prob(10))
|
||||
var/obj/decal/cleanable/molten_item/I = new/obj/decal/cleanable/molten_item(O.loc)
|
||||
I.desc = "Looks like this was \an [O] some time ago."
|
||||
for(var/mob/M in viewers(5, O))
|
||||
@@ -649,7 +671,7 @@ datum
|
||||
M << "\red Your helmet melts into uselessness!"
|
||||
return
|
||||
var/datum/organ/external/affecting = M:organs["head"]
|
||||
affecting.take_damage(75, 0)
|
||||
affecting.take_damage(35, 0)
|
||||
M:UpdateDamage()
|
||||
M:UpdateDamageIcon()
|
||||
M:emote("scream")
|
||||
@@ -660,18 +682,18 @@ datum
|
||||
del (M:wear_mask)
|
||||
M << "\red Your mask melts away but protects you from the acid!"
|
||||
return
|
||||
M.take_organ_damage(15)
|
||||
M.take_organ_damage(min(15, volume * 4)) // same deal as sulphuric acid
|
||||
else
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/datum/organ/external/affecting = M:organs["head"]
|
||||
affecting.take_damage(75, 0)
|
||||
affecting.take_damage(30, 0)
|
||||
M:UpdateDamage()
|
||||
M:UpdateDamageIcon()
|
||||
M:emote("scream")
|
||||
M << "\red Your face has become disfigured!"
|
||||
M.real_name = "Unknown"
|
||||
else
|
||||
M.take_organ_damage(15)
|
||||
M.take_organ_damage(min(15, volume * 4))
|
||||
|
||||
reaction_obj(var/obj/O, var/volume)
|
||||
if((istype(O,/obj/item) || istype(O,/obj/glowshroom)))
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
breath = loc.remove_air(breath_moles)
|
||||
|
||||
// Handle chem smoke effects -- Doohl
|
||||
for(var/obj/effects/chem_smoke/smoke in view(2, src))
|
||||
for(var/obj/effects/chem_smoke/smoke in view(1, src))
|
||||
if(smoke.reagents.total_volume)
|
||||
smoke.reagents.reaction(src, INGEST)
|
||||
spawn(5)
|
||||
|
||||
@@ -193,7 +193,7 @@
|
||||
breath = loc.remove_air(breath_moles)
|
||||
|
||||
// Handle chem smoke effects -- Doohl
|
||||
for(var/obj/effects/chem_smoke/smoke in view(2, src))
|
||||
for(var/obj/effects/chem_smoke/smoke in view(1, src))
|
||||
if(smoke.reagents.total_volume)
|
||||
smoke.reagents.reaction(src, INGEST)
|
||||
spawn(5)
|
||||
|
||||
@@ -283,13 +283,21 @@
|
||||
breath = loc.remove_air(breath_moles)
|
||||
|
||||
// Handle chem smoke effects -- Doohl
|
||||
for(var/obj/effects/chem_smoke/smoke in view(2, src))
|
||||
if(smoke.reagents.total_volume)
|
||||
smoke.reagents.reaction(src, INGEST)
|
||||
spawn(5)
|
||||
if(smoke)
|
||||
smoke.reagents.copy_to(src, 10) // I dunno, maybe the reagents enter the blood stream through the lungs?
|
||||
break // If they breathe in the nasty stuff once, no need to continue checking
|
||||
|
||||
var/block = 0
|
||||
if(wear_mask)
|
||||
if(istype(wear_mask, /obj/item/clothing/mask/gas))
|
||||
block = 1
|
||||
|
||||
if(!block)
|
||||
|
||||
for(var/obj/effects/chem_smoke/smoke in view(1, src))
|
||||
if(smoke.reagents.total_volume)
|
||||
smoke.reagents.reaction(src, INGEST)
|
||||
spawn(5)
|
||||
if(smoke)
|
||||
smoke.reagents.copy_to(src, 10) // I dunno, maybe the reagents enter the blood stream through the lungs?
|
||||
break // If they breathe in the nasty stuff once, no need to continue checking
|
||||
|
||||
else //Still give containing object the chance to interact
|
||||
if(istype(loc, /obj/))
|
||||
|
||||
@@ -203,13 +203,20 @@
|
||||
breath = loc.remove_air(breath_moles)
|
||||
|
||||
// Handle chem smoke effects -- Doohl
|
||||
for(var/obj/effects/chem_smoke/smoke in view(2, src))
|
||||
if(smoke.reagents.total_volume)
|
||||
smoke.reagents.reaction(src, INGEST)
|
||||
spawn(5)
|
||||
if(smoke)
|
||||
smoke.reagents.copy_to(src, 10) // I dunno, maybe the reagents enter the blood stream through the lungs?
|
||||
break // If they breathe in the nasty stuff once, no need to continue checking
|
||||
var/block = 0
|
||||
if(wear_mask)
|
||||
if(istype(wear_mask, /obj/item/clothing/mask/gas))
|
||||
block = 1
|
||||
|
||||
if(!block)
|
||||
|
||||
for(var/obj/effects/chem_smoke/smoke in view(1, src))
|
||||
if(smoke.reagents.total_volume)
|
||||
smoke.reagents.reaction(src, INGEST)
|
||||
spawn(5)
|
||||
if(smoke)
|
||||
smoke.reagents.copy_to(src, 10) // I dunno, maybe the reagents enter the blood stream through the lungs?
|
||||
break // If they breathe in the nasty stuff once, no need to continue checking
|
||||
|
||||
|
||||
else //Still give containing object the chance to interact
|
||||
|
||||
Reference in New Issue
Block a user