From b3f13d4dca2b18686b42cd0e498d06ab67d4c0d3 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Wed, 17 Apr 2013 01:36:05 -0700 Subject: [PATCH] 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. --- code/ZAS/Airflow.dm | 2 +- code/ZAS/Plasma.dm | 8 +- code/ZAS/Variable Settings.dm | 73 ++++++++++--------- code/game/machinery/doors/door.dm | 4 +- code/game/machinery/washing_machine.dm | 3 + code/modules/mob/living/carbon/human/life.dm | 9 +++ icons/effects/contamination.dmi | Bin 678 -> 679 bytes 7 files changed, 59 insertions(+), 40 deletions(-) diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index e51542c3eb7..a2506bb2d92 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -303,7 +303,6 @@ atom/movable if(airflow_speed) airflow_speed = n/max(get_dist(src,airflow_dest),1) return - last_airflow = world.time if(airflow_dest == loc) step_away(src,loc) if(ismob(src)) @@ -317,6 +316,7 @@ atom/movable if(src:shoes.flags & NOSLIP) return 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. if(airflow_falloff < 1) airflow_dest = null diff --git a/code/ZAS/Plasma.dm b/code/ZAS/Plasma.dm index 437ac592a2a..78c63f0f22e 100644 --- a/code/ZAS/Plasma.dm +++ b/code/ZAS/Plasma.dm @@ -5,7 +5,7 @@ pl_control/var PLASMA_DMG_NAME = "Plasma Damage Amount" PLASMA_DMG_DESC = "Self Descriptive" - CLOTH_CONTAMINATION = 0 + CLOTH_CONTAMINATION = 1 CLOTH_CONTAMINATION_NAME = "Cloth Contamination" 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_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_NAME = "Skin Burns" @@ -25,7 +25,7 @@ pl_control/var EYE_BURNS_NAME = "Eye Burns" 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_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. if(flags & PLASMAGUARD) return 0 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() //Do a contamination overlay? Temporary measure to keep contamination less deadly than it was. diff --git a/code/ZAS/Variable Settings.dm b/code/ZAS/Variable Settings.dm index 2e0a0a311a8..ee63fd37b22 100644 --- a/code/ZAS/Variable Settings.dm +++ b/code/ZAS/Variable Settings.dm @@ -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." - airflow_lightest_pressure = 30 + airflow_lightest_pressure = 20 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_light_pressure = 45 + airflow_light_pressure = 35 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_medium_pressure = 90 + airflow_medium_pressure = 50 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_heavy_pressure = 95 + airflow_heavy_pressure = 65 airflow_heavy_pressure_NAME = "Airflow - Mob Movement Threshold %" 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_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_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_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_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_DESC = "Damage from airflow impacts." @@ -193,21 +193,22 @@ vs_control return switch(def) 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.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.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.CONTAMINATION_LOSS = 0 + plc.CONTAMINATION_LOSS = 0.02 if("Plasma - Low Hazard") plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth. plc.PLASMAGUARD_ONLY = 0 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.EYE_BURNS = 0 //Plasma burns the eyes of anyone not wearing eye protection. - plc.CONTAMINATION_LOSS = 0 + plc.SKIN_BURNS = 0 //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.PLASMA_HALLUCINATION = 0 + plc.CONTAMINATION_LOSS = 0.01 if("Plasma - High Hazard") 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.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.PLASMA_HALLUCINATION = 1 + plc.CONTAMINATION_LOSS = 0.05 if("Plasma - Oh Shit!") 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.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.PLASMA_HALLUCINATION = 1 + plc.CONTAMINATION_LOSS = 0.075 if("ZAS - Normal") IgnitionLevel = 0.5 - airflow_lightest_pressure = 30 - airflow_light_pressure = 45 - airflow_medium_pressure = 90 - airflow_heavy_pressure = 95 - airflow_dense_pressure = 120 - airflow_stun_pressure = 100 + airflow_lightest_pressure = 20 + airflow_light_pressure = 35 + airflow_medium_pressure = 50 + airflow_heavy_pressure = 65 + airflow_dense_pressure = 85 + airflow_stun_pressure = 60 airflow_stun_cooldown = 60 - airflow_stun = 0.15 - airflow_damage = 0.3 + airflow_stun = 1 + airflow_damage = 2 airflow_speed_decay = 1.5 airflow_delay = 30 airflow_mob_slowdown = 1 @@ -255,15 +260,15 @@ vs_control if("ZAS - Dangerous") IgnitionLevel = 0.4 - airflow_lightest_pressure = 25 - airflow_light_pressure = 35 - airflow_medium_pressure = 75 - airflow_heavy_pressure = 80 - airflow_dense_pressure = 100 - airflow_stun_pressure = 90 + airflow_lightest_pressure = 15 + airflow_light_pressure = 30 + airflow_medium_pressure = 45 + airflow_heavy_pressure = 55 + airflow_dense_pressure = 70 + airflow_stun_pressure = 50 airflow_stun_cooldown = 50 airflow_stun = 2 - airflow_damage = 1 + airflow_damage = 3 airflow_speed_decay = 1.2 airflow_delay = 25 airflow_mob_slowdown = 2 @@ -272,13 +277,13 @@ vs_control IgnitionLevel = 0.3 airflow_lightest_pressure = 20 airflow_light_pressure = 30 - airflow_medium_pressure = 70 - airflow_heavy_pressure = 75 - airflow_dense_pressure = 80 - airflow_stun_pressure = 70 + airflow_medium_pressure = 40 + airflow_heavy_pressure = 50 + airflow_dense_pressure = 60 + airflow_stun_pressure = 40 airflow_stun_cooldown = 40 airflow_stun = 3 - airflow_damage = 2 + airflow_damage = 4 airflow_speed_decay = 1 airflow_delay = 20 airflow_mob_slowdown = 3 diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 3d7a29a530e..c09dbfdf682 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -47,7 +47,7 @@ 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. M.last_bumped = world.time - if(!M.restrained() && !M.small && !M.airflow_speed) + if(!M.restrained() && !M.small) bumpopen(M) return @@ -78,6 +78,8 @@ /obj/machinery/door/proc/bumpopen(mob/user as mob) if(operating) return + if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit + return src.add_fingerprint(user) if(!src.requiresID()) user = null diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 5a903c3f97d..25e3772baf4 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -40,6 +40,9 @@ for(var/atom/A in contents) A.clean_blood() + for(var/obj/item/I in contents) + I.decontaminate() + //Tanning! for(var/obj/item/stack/sheet/hairlesshide/HH in contents) var/obj/item/stack/sheet/wetleather/WL = new(src) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 32eb7019146..ae58b2fbcf4 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -564,6 +564,9 @@ pressure_alert = -2 else pressure_alert = -1 + + if(environment.toxins > MOLES_PLASMA_VISIBLE) + pl_effects() return /* @@ -777,6 +780,12 @@ proc/handle_chemicals_in_body() 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(PLANT in mutations) diff --git a/icons/effects/contamination.dmi b/icons/effects/contamination.dmi index c2fa348084aa9fd296c0550a0859e4e8a066eadd..1a7faf893ba8149b1269f1b849ce47c65097f3fe 100644 GIT binary patch delta 537 zcmV+!0_Odu1*Zj&nSc37L_t(oh3!_cYJ*S|Jt-YKWC{rV03kyb$I$#i5ehDTfP*1J zmP~c9dj=tcACToiA@~JJam-MsWDOLAOdb4y4(XMrc~9R9Em?9WeO~W5@4kDEcGl}P zt{Hb%MZXca5dd(n`$Fv6*7NWI0Fa~w0D!;umaDB!J*^H9_)dzU+%r`5$ZF<%gS{*Q)Pzc~HSKA~lkojh%Gk->acGw#^t+~CCqjeO@ zLs;Kg6M*4_Ksr^btE~bm?nUz|p~+Oc{TC7FjU0Fpkh7q&?nQH@BdSNM3S!r`WW_Vz z1ON;c`?F`q4Sz#CnYOB-aR>>#`}Bg$H*wssGw}NLal?@LCb~~A@S=I^FiHvV;Ja}j zNm?LhL4`z;7Nr{!c+LVOX@T9iuSBA;13Wlz8o-W>0Jn1=mBmHf{b2Z2R$IF>^2Y(xJsc1q;OW8VVPU z5s_oXIyLW9eSingJhQUfre|%T)d9l}gaGb(GfvV1nP*ly^JfHThuxvwn%f=PT1TNg zg!P>@0T^}wq;sXZ+A5&pZn&%xn$5M_e-VN1(1sfVIrA&)Zn#uBqI$HdAabl&Ry^}e z06>3rID2;7F@Hp}d8-;4hmgQK&l6;xiQ|r)f!D8(JBG|N(RrT04VSIMC?&vy@25Q^ zX@Q*i6%t8Wlx|4iIrEXE1@_aP5{bqR@Zi8{0CVP-UceK{JQF$d%R%HxXm=oTta$P9 zS%Qnsk^H}YO+n_gpZ2i$_>^`**$LhCX3R^Cyq_!>IDd6WW$^fr%JBRBO-$lHsZAAevyl1IHaJRne9!i$*6T*W(M5DUsw< zasl~wq0tFtF39U0IH|y}17Tj