mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Airflow now prevents doors being bumped open.
Plasma settings changed as per Cacophony Airflow defaults changed as per Cacophony Plasma now has an effect other than what happens when breathed. (contamination readded) Washing machines now clean off contamination.
This commit is contained in:
@@ -303,7 +303,6 @@ atom/movable
|
|||||||
if(airflow_speed)
|
if(airflow_speed)
|
||||||
airflow_speed = n/max(get_dist(src,airflow_dest),1)
|
airflow_speed = n/max(get_dist(src,airflow_dest),1)
|
||||||
return
|
return
|
||||||
last_airflow = world.time
|
|
||||||
if(airflow_dest == loc)
|
if(airflow_dest == loc)
|
||||||
step_away(src,loc)
|
step_away(src,loc)
|
||||||
if(ismob(src))
|
if(ismob(src))
|
||||||
@@ -317,6 +316,7 @@ atom/movable
|
|||||||
if(src:shoes.flags & NOSLIP)
|
if(src:shoes.flags & NOSLIP)
|
||||||
return
|
return
|
||||||
src << "\red You are pushed away by airflow!"
|
src << "\red You are pushed away by airflow!"
|
||||||
|
last_airflow = world.time
|
||||||
var/airflow_falloff = 9 - ul_FalloffAmount(airflow_dest) //It's a fast falloff calc. Very useful.
|
var/airflow_falloff = 9 - ul_FalloffAmount(airflow_dest) //It's a fast falloff calc. Very useful.
|
||||||
if(airflow_falloff < 1)
|
if(airflow_falloff < 1)
|
||||||
airflow_dest = null
|
airflow_dest = null
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ pl_control/var
|
|||||||
PLASMA_DMG_NAME = "Plasma Damage Amount"
|
PLASMA_DMG_NAME = "Plasma Damage Amount"
|
||||||
PLASMA_DMG_DESC = "Self Descriptive"
|
PLASMA_DMG_DESC = "Self Descriptive"
|
||||||
|
|
||||||
CLOTH_CONTAMINATION = 0
|
CLOTH_CONTAMINATION = 1
|
||||||
CLOTH_CONTAMINATION_NAME = "Cloth Contamination"
|
CLOTH_CONTAMINATION_NAME = "Cloth Contamination"
|
||||||
CLOTH_CONTAMINATION_DESC = "If this is on, plasma does damage by getting into cloth."
|
CLOTH_CONTAMINATION_DESC = "If this is on, plasma does damage by getting into cloth."
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ pl_control/var
|
|||||||
GENETIC_CORRUPTION_NAME = "Genetic Corruption Chance"
|
GENETIC_CORRUPTION_NAME = "Genetic Corruption Chance"
|
||||||
GENETIC_CORRUPTION_DESC = "Chance of genetic corruption as well as toxic damage, X in 10,000."
|
GENETIC_CORRUPTION_DESC = "Chance of genetic corruption as well as toxic damage, X in 10,000."
|
||||||
|
|
||||||
SKIN_BURNS = 1
|
SKIN_BURNS = 0
|
||||||
SKIN_BURNS_DESC = "Plasma has an effect similar to mustard gas on the un-suited."
|
SKIN_BURNS_DESC = "Plasma has an effect similar to mustard gas on the un-suited."
|
||||||
SKIN_BURNS_NAME = "Skin Burns"
|
SKIN_BURNS_NAME = "Skin Burns"
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ pl_control/var
|
|||||||
EYE_BURNS_NAME = "Eye Burns"
|
EYE_BURNS_NAME = "Eye Burns"
|
||||||
EYE_BURNS_DESC = "Plasma burns the eyes of anyone not wearing eye protection."
|
EYE_BURNS_DESC = "Plasma burns the eyes of anyone not wearing eye protection."
|
||||||
|
|
||||||
CONTAMINATION_LOSS = 0.01
|
CONTAMINATION_LOSS = 0.02
|
||||||
CONTAMINATION_LOSS_NAME = "Contamination Loss"
|
CONTAMINATION_LOSS_NAME = "Contamination Loss"
|
||||||
CONTAMINATION_LOSS_DESC = "How much toxin damage is dealt from contaminated clothing" //Per tick? ASK ARYN
|
CONTAMINATION_LOSS_DESC = "How much toxin damage is dealt from contaminated clothing" //Per tick? ASK ARYN
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ obj/item/proc
|
|||||||
//Clothing and backpacks can be contaminated.
|
//Clothing and backpacks can be contaminated.
|
||||||
if(flags & PLASMAGUARD) return 0
|
if(flags & PLASMAGUARD) return 0
|
||||||
else if(istype(src,/obj/item/clothing)) return 1
|
else if(istype(src,/obj/item/clothing)) return 1
|
||||||
else if(istype(src,/obj/item/weapon/storage/backpack)) return 1
|
// else if(istype(src,/obj/item/weapon/storage/backpack)) return 1 Cannot be washed :(
|
||||||
|
|
||||||
contaminate()
|
contaminate()
|
||||||
//Do a contamination overlay? Temporary measure to keep contamination less deadly than it was.
|
//Do a contamination overlay? Temporary measure to keep contamination less deadly than it was.
|
||||||
|
|||||||
@@ -21,27 +21,27 @@ vs_control/var
|
|||||||
fire_gas_combustion_ratio_DESC = "The rate at which oxygen and plasma are converted to CO2, expressed in terms of the firelevel."
|
fire_gas_combustion_ratio_DESC = "The rate at which oxygen and plasma are converted to CO2, expressed in terms of the firelevel."
|
||||||
|
|
||||||
|
|
||||||
airflow_lightest_pressure = 30
|
airflow_lightest_pressure = 20
|
||||||
airflow_lightest_pressure_NAME = "Airflow - Small Movement Threshold %"
|
airflow_lightest_pressure_NAME = "Airflow - Small Movement Threshold %"
|
||||||
airflow_lightest_pressure_DESC = "Percent of 1 Atm. at which items with the small weight classes will move."
|
airflow_lightest_pressure_DESC = "Percent of 1 Atm. at which items with the small weight classes will move."
|
||||||
|
|
||||||
airflow_light_pressure = 45
|
airflow_light_pressure = 35
|
||||||
airflow_light_pressure_NAME = "Airflow - Medium Movement Threshold %"
|
airflow_light_pressure_NAME = "Airflow - Medium Movement Threshold %"
|
||||||
airflow_light_pressure_DESC = "Percent of 1 Atm. at which items with the medium weight classes will move."
|
airflow_light_pressure_DESC = "Percent of 1 Atm. at which items with the medium weight classes will move."
|
||||||
|
|
||||||
airflow_medium_pressure = 90
|
airflow_medium_pressure = 50
|
||||||
airflow_medium_pressure_NAME = "Airflow - Heavy Movement Threshold %"
|
airflow_medium_pressure_NAME = "Airflow - Heavy Movement Threshold %"
|
||||||
airflow_medium_pressure_DESC = "Percent of 1 Atm. at which items with the largest weight classes will move."
|
airflow_medium_pressure_DESC = "Percent of 1 Atm. at which items with the largest weight classes will move."
|
||||||
|
|
||||||
airflow_heavy_pressure = 95
|
airflow_heavy_pressure = 65
|
||||||
airflow_heavy_pressure_NAME = "Airflow - Mob Movement Threshold %"
|
airflow_heavy_pressure_NAME = "Airflow - Mob Movement Threshold %"
|
||||||
airflow_heavy_pressure_DESC = "Percent of 1 Atm. at which mobs will move."
|
airflow_heavy_pressure_DESC = "Percent of 1 Atm. at which mobs will move."
|
||||||
|
|
||||||
airflow_dense_pressure = 120
|
airflow_dense_pressure = 85
|
||||||
airflow_dense_pressure_NAME = "Airflow - Dense Movement Threshold %"
|
airflow_dense_pressure_NAME = "Airflow - Dense Movement Threshold %"
|
||||||
airflow_dense_pressure_DESC = "Percent of 1 Atm. at which items with canisters and closets will move."
|
airflow_dense_pressure_DESC = "Percent of 1 Atm. at which items with canisters and closets will move."
|
||||||
|
|
||||||
airflow_stun_pressure = 100
|
airflow_stun_pressure = 60
|
||||||
airflow_stun_pressure_NAME = "Airflow - Mob Stunning Threshold %"
|
airflow_stun_pressure_NAME = "Airflow - Mob Stunning Threshold %"
|
||||||
airflow_stun_pressure_DESC = "Percent of 1 Atm. at which mobs will be stunned by airflow."
|
airflow_stun_pressure_DESC = "Percent of 1 Atm. at which mobs will be stunned by airflow."
|
||||||
|
|
||||||
@@ -49,11 +49,11 @@ vs_control/var
|
|||||||
airflow_stun_cooldown_NAME = "Aiflow Stunning - Cooldown"
|
airflow_stun_cooldown_NAME = "Aiflow Stunning - Cooldown"
|
||||||
airflow_stun_cooldown_DESC = "How long, in tenths of a second, to wait before stunning them again."
|
airflow_stun_cooldown_DESC = "How long, in tenths of a second, to wait before stunning them again."
|
||||||
|
|
||||||
airflow_stun = 0.15
|
airflow_stun = 1
|
||||||
airflow_stun_NAME = "Airflow Impact - Stunning"
|
airflow_stun_NAME = "Airflow Impact - Stunning"
|
||||||
airflow_stun_DESC = "How much a mob is stunned when hit by an object."
|
airflow_stun_DESC = "How much a mob is stunned when hit by an object."
|
||||||
|
|
||||||
airflow_damage = 0.3
|
airflow_damage = 2
|
||||||
airflow_damage_NAME = "Airflow Impact - Damage"
|
airflow_damage_NAME = "Airflow Impact - Damage"
|
||||||
airflow_damage_DESC = "Damage from airflow impacts."
|
airflow_damage_DESC = "Damage from airflow impacts."
|
||||||
|
|
||||||
@@ -193,21 +193,22 @@ vs_control
|
|||||||
return
|
return
|
||||||
switch(def)
|
switch(def)
|
||||||
if("Plasma - Standard")
|
if("Plasma - Standard")
|
||||||
plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
||||||
plc.PLASMAGUARD_ONLY = 0
|
plc.PLASMAGUARD_ONLY = 0
|
||||||
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
||||||
plc.SKIN_BURNS = 0 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 0 //Plasma has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 0 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
||||||
plc.PLASMA_HALLUCINATION = 0
|
plc.PLASMA_HALLUCINATION = 0
|
||||||
plc.CONTAMINATION_LOSS = 0
|
plc.CONTAMINATION_LOSS = 0.02
|
||||||
|
|
||||||
if("Plasma - Low Hazard")
|
if("Plasma - Low Hazard")
|
||||||
plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth.
|
||||||
plc.PLASMAGUARD_ONLY = 0
|
plc.PLASMAGUARD_ONLY = 0
|
||||||
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000
|
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000
|
||||||
plc.SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 0 //Plasma has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 0 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
||||||
plc.CONTAMINATION_LOSS = 0
|
plc.PLASMA_HALLUCINATION = 0
|
||||||
|
plc.CONTAMINATION_LOSS = 0.01
|
||||||
|
|
||||||
if("Plasma - High Hazard")
|
if("Plasma - High Hazard")
|
||||||
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
||||||
@@ -215,6 +216,8 @@ vs_control
|
|||||||
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
||||||
plc.SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
||||||
|
plc.PLASMA_HALLUCINATION = 1
|
||||||
|
plc.CONTAMINATION_LOSS = 0.05
|
||||||
|
|
||||||
if("Plasma - Oh Shit!")
|
if("Plasma - Oh Shit!")
|
||||||
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
||||||
@@ -222,18 +225,20 @@ vs_control
|
|||||||
plc.GENETIC_CORRUPTION = 5 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
plc.GENETIC_CORRUPTION = 5 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
||||||
plc.SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
||||||
|
plc.PLASMA_HALLUCINATION = 1
|
||||||
|
plc.CONTAMINATION_LOSS = 0.075
|
||||||
|
|
||||||
if("ZAS - Normal")
|
if("ZAS - Normal")
|
||||||
IgnitionLevel = 0.5
|
IgnitionLevel = 0.5
|
||||||
airflow_lightest_pressure = 30
|
airflow_lightest_pressure = 20
|
||||||
airflow_light_pressure = 45
|
airflow_light_pressure = 35
|
||||||
airflow_medium_pressure = 90
|
airflow_medium_pressure = 50
|
||||||
airflow_heavy_pressure = 95
|
airflow_heavy_pressure = 65
|
||||||
airflow_dense_pressure = 120
|
airflow_dense_pressure = 85
|
||||||
airflow_stun_pressure = 100
|
airflow_stun_pressure = 60
|
||||||
airflow_stun_cooldown = 60
|
airflow_stun_cooldown = 60
|
||||||
airflow_stun = 0.15
|
airflow_stun = 1
|
||||||
airflow_damage = 0.3
|
airflow_damage = 2
|
||||||
airflow_speed_decay = 1.5
|
airflow_speed_decay = 1.5
|
||||||
airflow_delay = 30
|
airflow_delay = 30
|
||||||
airflow_mob_slowdown = 1
|
airflow_mob_slowdown = 1
|
||||||
@@ -255,15 +260,15 @@ vs_control
|
|||||||
|
|
||||||
if("ZAS - Dangerous")
|
if("ZAS - Dangerous")
|
||||||
IgnitionLevel = 0.4
|
IgnitionLevel = 0.4
|
||||||
airflow_lightest_pressure = 25
|
airflow_lightest_pressure = 15
|
||||||
airflow_light_pressure = 35
|
airflow_light_pressure = 30
|
||||||
airflow_medium_pressure = 75
|
airflow_medium_pressure = 45
|
||||||
airflow_heavy_pressure = 80
|
airflow_heavy_pressure = 55
|
||||||
airflow_dense_pressure = 100
|
airflow_dense_pressure = 70
|
||||||
airflow_stun_pressure = 90
|
airflow_stun_pressure = 50
|
||||||
airflow_stun_cooldown = 50
|
airflow_stun_cooldown = 50
|
||||||
airflow_stun = 2
|
airflow_stun = 2
|
||||||
airflow_damage = 1
|
airflow_damage = 3
|
||||||
airflow_speed_decay = 1.2
|
airflow_speed_decay = 1.2
|
||||||
airflow_delay = 25
|
airflow_delay = 25
|
||||||
airflow_mob_slowdown = 2
|
airflow_mob_slowdown = 2
|
||||||
@@ -272,13 +277,13 @@ vs_control
|
|||||||
IgnitionLevel = 0.3
|
IgnitionLevel = 0.3
|
||||||
airflow_lightest_pressure = 20
|
airflow_lightest_pressure = 20
|
||||||
airflow_light_pressure = 30
|
airflow_light_pressure = 30
|
||||||
airflow_medium_pressure = 70
|
airflow_medium_pressure = 40
|
||||||
airflow_heavy_pressure = 75
|
airflow_heavy_pressure = 50
|
||||||
airflow_dense_pressure = 80
|
airflow_dense_pressure = 60
|
||||||
airflow_stun_pressure = 70
|
airflow_stun_pressure = 40
|
||||||
airflow_stun_cooldown = 40
|
airflow_stun_cooldown = 40
|
||||||
airflow_stun = 3
|
airflow_stun = 3
|
||||||
airflow_damage = 2
|
airflow_damage = 4
|
||||||
airflow_speed_decay = 1
|
airflow_speed_decay = 1
|
||||||
airflow_delay = 20
|
airflow_delay = 20
|
||||||
airflow_mob_slowdown = 3
|
airflow_mob_slowdown = 3
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
var/mob/M = AM
|
var/mob/M = AM
|
||||||
if(world.time - M.last_bumped <= 10) return //Can bump-open one airlock per second. This is to prevent shock spam.
|
if(world.time - M.last_bumped <= 10) return //Can bump-open one airlock per second. This is to prevent shock spam.
|
||||||
M.last_bumped = world.time
|
M.last_bumped = world.time
|
||||||
if(!M.restrained() && !M.small && !M.airflow_speed)
|
if(!M.restrained() && !M.small)
|
||||||
bumpopen(M)
|
bumpopen(M)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -78,6 +78,8 @@
|
|||||||
|
|
||||||
/obj/machinery/door/proc/bumpopen(mob/user as mob)
|
/obj/machinery/door/proc/bumpopen(mob/user as mob)
|
||||||
if(operating) return
|
if(operating) return
|
||||||
|
if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit
|
||||||
|
return
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
if(!src.requiresID())
|
if(!src.requiresID())
|
||||||
user = null
|
user = null
|
||||||
|
|||||||
@@ -40,6 +40,9 @@
|
|||||||
for(var/atom/A in contents)
|
for(var/atom/A in contents)
|
||||||
A.clean_blood()
|
A.clean_blood()
|
||||||
|
|
||||||
|
for(var/obj/item/I in contents)
|
||||||
|
I.decontaminate()
|
||||||
|
|
||||||
//Tanning!
|
//Tanning!
|
||||||
for(var/obj/item/stack/sheet/hairlesshide/HH in contents)
|
for(var/obj/item/stack/sheet/hairlesshide/HH in contents)
|
||||||
var/obj/item/stack/sheet/wetleather/WL = new(src)
|
var/obj/item/stack/sheet/wetleather/WL = new(src)
|
||||||
|
|||||||
@@ -564,6 +564,9 @@
|
|||||||
pressure_alert = -2
|
pressure_alert = -2
|
||||||
else
|
else
|
||||||
pressure_alert = -1
|
pressure_alert = -1
|
||||||
|
|
||||||
|
if(environment.toxins > MOLES_PLASMA_VISIBLE)
|
||||||
|
pl_effects()
|
||||||
return
|
return
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -777,6 +780,12 @@
|
|||||||
|
|
||||||
proc/handle_chemicals_in_body()
|
proc/handle_chemicals_in_body()
|
||||||
if(reagents) reagents.metabolize(src)
|
if(reagents) reagents.metabolize(src)
|
||||||
|
var/total_plasmaloss = 0
|
||||||
|
for(var/obj/item/I in src)
|
||||||
|
if(I.contaminated)
|
||||||
|
total_plasmaloss += vsc.plc.CONTAMINATION_LOSS
|
||||||
|
|
||||||
|
adjustToxLoss(total_plasmaloss)
|
||||||
|
|
||||||
// if(dna && dna.mutantrace == "plant") //couldn't think of a better place to place it, since it handles nutrition -- Urist
|
// if(dna && dna.mutantrace == "plant") //couldn't think of a better place to place it, since it handles nutrition -- Urist
|
||||||
if(PLANT in mutations)
|
if(PLANT in mutations)
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 679 B |
Reference in New Issue
Block a user