From d2500fe389fc039714351c142b27bff4bfceb162 Mon Sep 17 00:00:00 2001 From: Tupinambis Date: Sun, 27 Sep 2020 15:15:58 -0500 Subject: [PATCH] Adds Methane and Methyl Bromide --- code/_onclick/hud/alert.dm | 21 ++++++ code/game/objects/items/tanks/tank_types.dm | 17 +++++ .../atmospherics/gasmixtures/gas_types.dm | 14 ++++ .../atmospherics/machinery/airalarm.dm | 18 +++-- .../machinery/portable/canister.dm | 28 ++++++-- code/modules/mob/living/carbon/human/life.dm | 2 + code/modules/surgery/organs/lungs.dm | 63 ++++++++++++++++++ icons/obj/tank.dmi | Bin 10399 -> 10773 bytes tgstation.dme | 4 +- 9 files changed, 153 insertions(+), 14 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 980ec38909..5bd9632355 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -149,6 +149,27 @@ name = "Choking (Plasma)" desc = "There's highly flammable, toxic plasma in the air and you're breathing it in. Find some fresh air. The box in your backpack has an oxygen tank and gas mask in it." icon_state = "too_much_tox" + +/obj/screen/alert/not_enough_ch4 + name = "Choking (No CH4)" + desc = "You're not getting enough methane. Find some good air before you pass out!" + icon_state = "not_enough_ch4" + +/obj/screen/alert/too_much_ch4 + name = "Choking (CH4)" + desc = "There's too much methane in the air, and you're breathing it in! Find some good air before you pass out!" + icon_state = "too_much_ch4" + +/obj/screen/alert/not_enough_ch3br + name = "Choking (No CH3Br)" + desc = "You're not getting enough methyl bromide. Find some good air before you pass out!" + icon_state = "not_enough_tox" + +/obj/screen/alert/too_much_ch3br + name = "Choking (CH3Br)" + desc = "There's highly toxic methyl bromide in the air and you're breathing it in. Find some fresh air. The box in your backpack has an oxygen tank and gas mask in it." + icon_state = "too_much_tox" + //End gas alerts diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm index 1c90a83c0a..3f2f4e8954 100644 --- a/code/game/objects/items/tanks/tank_types.dm +++ b/code/game/objects/items/tanks/tank_types.dm @@ -182,3 +182,20 @@ /obj/item/tank/internals/emergency_oxygen/double/empty/populate_gas() return + +/* + * Methyl Bromide + */ +/obj/item/tank/internals/methyl_bromide + name = "mantid gas reactor" + desc = "A mantid gas processing plant that continuously synthesises 'breathable' atmosphere." + icon_state = "methyl_bromide" + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + force = 6 + distribute_pressure = 13 + volume = 10 + +/obj/item/tank/internals/methyl_bromide/populate_gas() + air_contents.set_moles(/datum/gas/methyl_bromide, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) + return \ No newline at end of file diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index c7ffc51458..fa5641254e 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -186,6 +186,20 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g moles_visible = MOLES_GAS_VISIBLE * 60 rarity = 250 +/datum/gas/methane + id = "methane" + specific_heat = 30 + name = "Methane" + rarity = 320 + +/datum/gas/methyl_bromide + id = "methyl_bromide" + specific_heat = 42 + name = "Methyl Bromide" + dangerous = TRUE + rarity = 310 + + /obj/effect/overlay/gas icon = 'icons/effects/atmospherics.dmi' mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 8316b29a24..a2a55ee6b1 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -97,7 +97,7 @@ /datum/gas/oxygen = new/datum/tlv(16, 19, 135, 140), // Partial pressure, kpa /datum/gas/nitrogen = new/datum/tlv(-1, -1, 1000, 1000), /datum/gas/carbon_dioxide = new/datum/tlv(-1, -1, 5, 10), - /datum/gas/miasma = new/datum/tlv/(-1, -1, 2, 5), + /datum/gas/miasma = new/datum/tlv(-1, -1, 2, 5), /datum/gas/plasma = new/datum/tlv/dangerous, /datum/gas/nitrous_oxide = new/datum/tlv/dangerous, /datum/gas/bz = new/datum/tlv/dangerous, @@ -106,7 +106,9 @@ /datum/gas/tritium = new/datum/tlv/dangerous, /datum/gas/stimulum = new/datum/tlv(-1, -1, 1000, 1000), // Stimulum has only positive effects /datum/gas/nitryl = new/datum/tlv/dangerous, - /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000) // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/methane = new/datum/tlv(-1, -1, 3, 6), + /datum/gas/methyl_bromide = new/datum/tlv/dangerous ) /obj/machinery/airalarm/server // No checks here. @@ -125,7 +127,9 @@ /datum/gas/tritium = new/datum/tlv/no_checks, /datum/gas/stimulum = new/datum/tlv/no_checks, /datum/gas/nitryl = new/datum/tlv/no_checks, - /datum/gas/pluoxium = new/datum/tlv/no_checks + /datum/gas/pluoxium = new/datum/tlv/no_checks, + /datum/gas/methane = new/datum/tlv/no_checks, + /datum/gas/methyl_bromide = new/datum/tlv/no_checks ) /obj/machinery/airalarm/kitchen_cold_room // Copypasta: to check temperatures. @@ -144,7 +148,9 @@ /datum/gas/tritium = new/datum/tlv/dangerous, /datum/gas/stimulum = new/datum/tlv(-1, -1, 1000, 1000), // Stimulum has only positive effects /datum/gas/nitryl = new/datum/tlv/dangerous, - /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000) // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires + /datum/gas/methane = new/datum/tlv(-1, -1, 3, 6), + /datum/gas/methyl_bromide = new/datum/tlv/dangerous ) /obj/machinery/airalarm/unlocked @@ -542,7 +548,9 @@ /datum/gas/tritium, /datum/gas/bz, /datum/gas/stimulum, - /datum/gas/pluoxium + /datum/gas/pluoxium, + /datum/gas/methane, + /datum/gas/methyl_bromide ), "scrubbing" = 1, "widenet" = 1, diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index c66aabd57f..0eebf22be4 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -50,7 +50,9 @@ "stimulum" = /obj/machinery/portable_atmospherics/canister/stimulum, "pluoxium" = /obj/machinery/portable_atmospherics/canister/pluoxium, "caution" = /obj/machinery/portable_atmospherics/canister, - "miasma" = /obj/machinery/portable_atmospherics/canister/miasma + "miasma" = /obj/machinery/portable_atmospherics/canister/miasma, + "methane" = /obj/machinery/portable_atmospherics/canister/methane, + "methyl bromide" = /obj/machinery/portable_atmospherics/canister/methyl_bromide ) /obj/machinery/portable_atmospherics/canister/interact(mob/user) @@ -62,7 +64,7 @@ /obj/machinery/portable_atmospherics/canister/nitrogen name = "n2 canister" - desc = "Nitrogen gas. Reportedly useful for something." + desc = "Nitrogen. Reportedly useful for something." icon_state = "red" gas_type = /datum/gas/nitrogen @@ -80,19 +82,19 @@ /obj/machinery/portable_atmospherics/canister/toxins name = "plasma canister" - desc = "Plasma gas. The reason YOU are here. Highly toxic." + desc = "Plasma. The reason YOU are here. Highly toxic." icon_state = "orange" gas_type = /datum/gas/plasma /obj/machinery/portable_atmospherics/canister/bz name = "\improper BZ canister" - desc = "BZ, a powerful hallucinogenic nerve agent." + desc = "BZ. A powerful hallucinogenic nerve agent." icon_state = "purple" gas_type = /datum/gas/bz /obj/machinery/portable_atmospherics/canister/nitrous_oxide name = "n2o canister" - desc = "Nitrous oxide gas. Known to cause drowsiness." + desc = "Nitrous oxide. Known to cause drowsiness." icon_state = "redws" gas_type = /datum/gas/nitrous_oxide @@ -115,7 +117,7 @@ /obj/machinery/portable_atmospherics/canister/nitryl name = "nitryl canister" - desc = "Nitryl gas. Feels great 'til the acid eats your lungs." + desc = "Nitryl. Feels great 'til the acid eats your lungs." icon_state = "brown" gas_type = /datum/gas/nitryl @@ -133,7 +135,7 @@ /obj/machinery/portable_atmospherics/canister/water_vapor name = "water vapor canister" - desc = "Water Vapor. We get it, you vape." + desc = "Water vapor. We get it, you vape." icon_state = "water_vapor" gas_type = /datum/gas/water_vapor filled = 1 @@ -145,6 +147,18 @@ gas_type = /datum/gas/miasma filled = 1 +/obj/machinery/portable_atmospherics/canister/methane + name = "methane canister" + desc = "Methane. The simplest of hydrocarbons. Non-toxic but highly flammable." + icon_state = "greyblackred" + gas_type = /datum/gas/methane + +/obj/machinery/portable_atmospherics/canister/methyl_bromide + name = "methyl bromide canister" + desc = "Methyl bromide. A potent toxin to most, essential for the Kharmaan to live." + icon_state = "purplecyan" + gas_type = /datum/gas/methyl_bromide + /obj/machinery/portable_atmospherics/canister/proc/get_time_left() if(timing) . = round(max(0, valve_timer - world.time) / 10, 1) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 56ab1f1b10..68e8c5ac29 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -96,6 +96,8 @@ throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) else if(S.breathid == "n2") throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro) + else if(S.breathid == "ch3br") + throw_alert("not_enough_ch3br", /obj/screen/alert/not_enough_ch3br) return FALSE else diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index e34fd8e8a9..d1c7c8fb6a 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -36,6 +36,10 @@ var/safe_co2_max = 10 // Yes it's an arbitrary value who cares? var/safe_toxins_min = 0 var/safe_toxins_max = MOLES_GAS_VISIBLE + var/safe_ch3br_min = 0 + var/safe_ch3br_max = 1 //problematic even at low concentrations + var/safe_methane_min = 0 + var/safe_methane_max = 0 var/SA_para_min = 1 //Sleeping agent var/SA_sleep_min = 5 //Sleeping agent var/BZ_trip_balls_min = 1 //BZ gas @@ -53,6 +57,9 @@ var/tox_breath_dam_min = MIN_TOXIC_GAS_DAMAGE var/tox_breath_dam_max = MAX_TOXIC_GAS_DAMAGE var/tox_damage_type = TOX + var/methane_breath_dam_min = MIN_TOXIC_GAS_DAMAGE + var/methane_breath_dam_max = MAX_TOXIC_GAS_DAMAGE + var/methane_damage_type = OXY var/cold_message = "your face freezing and an icicle forming" var/cold_level_1_threshold = 260 @@ -129,6 +136,8 @@ H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) else if(safe_nitro_min) H.throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro) + else if(safe_ch3br_min) + H.throw_alert("not_enough_ch3br", /obj/screen/alert/not_enough_ch3br) return FALSE var/gas_breathed = 0 @@ -138,6 +147,8 @@ var/N2_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/nitrogen)) var/Toxins_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/plasma)) var/CO2_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/carbon_dioxide)) + var/CH4_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/methane)) + var/CH3Br_pp = breath.get_breath_partial_pressure(breath.get_moles(/datum/gas/methyl_bromide)) //-- OXY --// @@ -278,6 +289,58 @@ breath.adjust_moles(/datum/gas/carbon_dioxide, gas_breathed) gas_breathed = 0 +//-- METHANE --// + + //Too much methane! + if(safe_methane_max) + if(CH4_pp > safe_methane_max) //Same effect as excess nitrogen, generally nontoxic + var/ratio = (breath.get_moles(/datum/gas/methane)/safe_methane_max) * 10 + H.apply_damage_type(clamp(ratio, methane_breath_dam_min, methane_breath_dam_max), methane_damage_type) + H.throw_alert("too_much_ch4", /obj/screen/alert/too_much_ch4) + H.losebreath += 2 + else + H.clear_alert("too_much_ch4") + //Too little methane! + if(safe_methane_min) + if(CH4_pp < safe_methane_min) + gas_breathed = handle_too_little_breath(H, CH4_pp, safe_methane_min, breath.get_moles(/datum/gas/methane)) + H.throw_alert("not_enough_ch4", /obj/screen/alert/not_enough_ch4) + else + H.failed_last_breath = FALSE + if(H.health >= H.crit_threshold) + H.adjustOxyLoss(-breathModifier) + gas_breathed = breath.get_moles(/datum/gas/methane) + H.clear_alert("not_enough_ch4") + + //Exhale + breath.adjust_moles(/datum/gas/methane, -gas_breathed) + breath.adjust_moles(/datum/gas/methyl_bromide, gas_breathed) + gas_breathed = 0 + +//-- CH3BR --// + + //Too much methyl bromide! + if(safe_ch3br_max) + if(CH3Br_pp > safe_ch3br_max) + if(prob(CH3Br_pp/0.5)) + H.adjustOrganLoss(ORGAN_SLOT_LUNGS, 3, 150) //Inhaling this is a bad idea + if(prob(CH3Br_pp/2)) + to_chat(H, "Your throat closes up!") + H.silent = max(H.silent, 3) + H.throw_alert("too_much_ch3br", /obj/screen/alert/too_much_ch3br) + else + H.clear_alert("too_much_ch3br") + //Too little methyl bromide! + if(safe_ch3br_min) + if(CH3Br_pp < safe_ch3br_min) + gas_breathed = handle_too_little_breath(H, CH3Br_pp, safe_ch3br_min, breath.get_moles(/datum/gas/methyl_bromide)) + H.throw_alert("not_enough_ch3br", /obj/screen/alert/not_enough_ch3br) + else + H.failed_last_breath = FALSE + if(H.health >= H.crit_threshold) + H.adjustOxyLoss(-breathModifier) + gas_breathed = breath.get_moles(/datum/gas/methyl_bromide) + H.clear_alert("not_enough_ch3br") //-- TRACES --// diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index 0c0d220373a582369f7a79307e9421eb8646a120..aa2488365611221f6f67df369000d79caa40e9f9 100644 GIT binary patch literal 10773 zcma)ibyQT*_wS{pL8PQbQju;QT0&4tN$Ey9g(0K`Y3T;(4hfN=ySo{X2I(PYsCWJT z*6+Rb-db`Hf1Au3G#&;F_4jz)=*%OY}RVt+q2l&$PG^_oe$-2K( zDY#;*Ssq)0MT7+?#b*5dwCnAAaW?dP&F&H=(Q#2_`AY2Fj3jR5DED*mcml5PRWGz> zo(S4e2}6$kRXaL-i3wA&2A_%&vy^FHtTpyH-9|VCLh7iBqVhI!l?xkZUxw$rp3N=} zb*+(}9K+OK;LdRjV7wy9?^P|0Hsi_E9wtQkI~|kB^zKi_`y3a8b8$i>apeq__61Tr zeH)Ht3eTsl<10_e2Wd0=`|hLnxcbfDD{;!7*I4085y7eP(N(&dOWsq`-TNm(jFZY; zY;e0zY{M$#jiM~>aI8wq5>G`#d+oCqj^V`LByRpXBdD@Og#UhGn8>Jo^;wy_qtvXz zwkAQ9qpoL+sN~^@O&qc1!bA67u200?7Z_2MQ(-${(v1MX2q?-*X?ms~WPH|qq;=Qr zke8jy{vLzC%ndS>>>VSZpzx(JQq5iaSlzwMKb6hYFpZ`!vSK1zC$su-spza%)1I=z!= z6PIuon<4qE}ySDA{Qb9aYUJMl>c6~XXMs;dcr zvam1`w`=wg8JH^}G7VoHZB{mjf4v9CbU%^Hk>Mp~&D&SJ_D~*x@zO%*FI|RQIp)E8 z35ZZ)%9ROECiRQ$Z*wcLCOehdBGJ5V2;Z3Y5E zzXe49@%eeTbho(Ohkv>{?JnX_zA!hElMVU=US&J>yix2nRp;l6RX=d^A%`q7_n-w$ zL5od-dbW$VHj&i&w0aZwL=wL~9R73|)9G_e5(x7g7FtaWbL`<1MNdiMSLM4F2PC^E znE_ycbkK2Y_R)>nXNI(T9}e*|+wdl5uk*suOngH_!$Xfr%TYTQRF}S-M?}*)>}pPX zD=ZgVi|Au-g3K(Jg*1nUZ|*1q3ZrT+2d5aCu$f;ZRtJ2=x%l$C!Nc{R0-qKx^2?ge zd2Ans+@Rgn-cxBIfwr~1&xb$Hk&(G7lE>$Yn`r(BglmOLhX=fl`u51fxA&9Jtq{Oy z7SHuTR<`eI>x_EnF0yjzd%I;g8^ys{+c%wBxy1{o^}zQbE2bE)8NqD>s`@r&!3Bm$ zjFStNv&|fumpX!m9cOKa-3WvrZ#qYkMJh>dM*Ulfz5Qls8L9H zkU_6(dC*?(Et|%u9-=W#0uh}$L&kh_$Y`VcZUp)R9ar=@>z22s7rEM`SBWO%PE0c~ z=}+{)HIVIrFpc{!ksLRMS2s2=gR`&iZ()%J!=Df|0S*>H#vg~Sbv^E84gKh12jLWQ z|Bx_$az5MWv>qadct3;#KxB^LfgahzP(Tl@zg4d#>MNhj035jwwaELkOA5l5Yj0#U zR06>!4igG`iMTqQq}rNvm|0ibeV^VcLei{J?uhayhQV9pkHlim$LhJM?AoFs^WC1U z^^dX)hqZJ@gyFT!o4KhD5iML5+Z3k1edKR0RwU4@4sZNEo5$^JturUWUYxb?xG`4H z{)(FZ4AXYCdm{bz3eAcyEBV;NcQedAK$R9}Zjo!J;kSf#K0IS5K@HrQpyuf3j2`u7uRPiTI4xYs9T;ls0zSv%g(5 zehegD+uLWGg}g&K_x8Oh@e<4e*=XQS8FfzRX~RB~07eHZ*8%qjtsqvuUjGsQ{mO&< zpHjF56@l&XJU7N{3~pz1H@(_w!yd01w9S#+3Fm-+Sx9K|rCOO>NCvb^AnOer;yH+7 zyHY;E1PIU2BtcDRsXa)U*lwyu%B??k@i5HeJcOqW5Q?K^zw6+eLJm>5br7nSOG6c= zNhhI4pHIVc=!;kD3r~2~ge&2Rqq&!`netu`QazmgL^_J=WjOJ7UlR&ypeMQ_?}`wEY*c z=xZ)x7~va-Vp<2ZKdI3q$GKb{L-L$!IQu5YD|-sc8MO~Im=A^xa5AuOcH%!OuXJr* z756+IjrwltjPP?pA*>%!P?!wJ8oCa?kphWv?7DfLLSpOjNm5Fmjb~W?GWGbd$9fN8 zS1?gf=k%Fp|A((Gt(MsfTqL1U`4Kh{X&2U~VaAXS@W^l)N+$|16iY+9gy0|}u@>&o z(>K31^(Z0l6C)vmA-1)Sr!NkYNyR4rx{cXLo|elqvM$xEvp0O|zfp`!j;?|*sZALd z{_@q|kxUrK5_W3Z*bRJX#y=a4SpWB%Clgyz2^uJEo`K`#WxWH;pBn<@|nLkrl zNAL)L+sV)~MBl)IVAufnY@Dq*x!3$JiE?-bH%O^WaL9pL)eHadG19Rl|0{a=KRXx7(DFyN<8`wp#H=*1KjDgE2{6Q%5ZG<0*IlF%Q&CbD zPOh%4tsxesDWX=%Rl{?%^hR-@m&+b09&jJ6_4|E3xGkM;*S{;n4{LmHv4iw^w#Hr# zr9`38xtT&Lu}HtJ_ASf@mF*OWYtWvt!}6WXI{JyuwM_F<9lt*7Fz2^mwvmST^Db=+(c+M zyMXBak=I0LWs%47#VjYbYwSN!V{~*HsTkRP3XB2g@i0yiwi%-8s9(kZfsZi1p`T11 z5}0Ol$Ip@I?~U+2h%i{PwVSRmIOFgQQ1j}g8^LgSpBP-J+xcPhoMB*U5#3|)JB%v% zJz9RBC38$n)cs$H9*~;fpMC9b7%xr98zt=YyI@!k$?z{h2Km$WX225uY3#T+tF}G5 ztEbcW@kUbB$8C--jRiXWxTkX%pWfaeopfrkPS6K}7aX9*{>b8BmX$^|94dq^!6uo7 z?D7hrkYInEh4d|>_+XgTM3nUlz0%iRT9G;^G>wukpuyO%qv6=`%;rv_j_)?!u(fPb zADrj}fd~o=#6YC*+?ypE1f~jLvdC2OgWj}`H_I+4>kcZU;abBNlK(UmsLQRSJL zF;LKCPgY42vc91U3=HJ;LAh>hZ9U=QQhCSFlA}Def@2hb)<1T1&{Wz8tta(uI~@)r zc|69r=R(sIr2c9P-*cRTZ2PMvEYerzDKGp7>8&FInzO>WEox7($4`vUQA$ZH%$@#f zFv|Ys7Q?A{!DJ$L@7W`~p6+g}pFe*Vm6QYoSaw9PY4L6n?>X*iJu|bg$gQuZASWl^ z>3GT?wQRR4?A}t=1i7Lzm%JMTeOJNeHaAgSGSZc01L%SV$8C_Iw@n-p7(6OIEnWwu z#(3ia4p;M6E9y%l%^@$;=KBoBaNp)-uoU}0i?FNOs3v@UL0*sUzCS|#G` zcHL!?dwU(lgZcYPAnAJ^=%#B=%ik$&PB%>Fa#KMzV8mTA%nDV=8r{Rdydjxeg_@o&*%SaJFLB}I&M+iZ z_xfSP>}W?WEa-{=3ZrKo1uAJ~wpuDihlz&RtNG)hLIiw_5-b9T5l2-w!}D`hh(x(z z9Kg5Moym>Owqq(Q?a4qFWJ@nA<^hm=ef#25CTU3ia>CqAw&K9Ut@yY|%kV1EH`w`f zG`;2@6GB6-<&H6qZ`Sxdk*`@Fiub$L|k-qTa(ArY;hrC*PqO6>P=MeF+MV*~P0w8m4{SDg0fXAQ^eoVNnD zl5wN;pq~1YOlgtz6l#-Q!tiYd_t$$PJXgaDSb(R174IF);+ZtYoKRx2p}v>HF$xdO%FUQpSJ0JH_o*-m;6@Z*Xp6;N#7+4Vj|7+MfNf(>a0i7@YUBwY7Dt z*U@yL+uYntZ{pFkIt3n{eQZ9EmJuru2>4^`Ul6AMuU}&JpIu!AEKT4Q zd<1lSnA6kKMHLkx&^aE@qbtQ3m-GE^!!=)rtnX*D%ZYvAK^BDU7DB0zsX%HCzX~ZZ z{u*JuHHw9HfT2u+V&X8d8I{d6`S#^ewKgOd^0Ie0V4KmylgPREX9uVLvqu-GcO8Ga z`Oodw=W99UF6J$KR8kM}SoY2$F@Q(T!2g_(` zwa+TEU+2}4GR~QS)a6`KRqHeQ~i$yseZ$(jP%;M-*Y79XIHb^ma^{K78`7atFwl#XsV1ApT(M`bWu z{Leqi-@f&QleTk_oh84cb6z<*dxN#a$6M(*F1LJP{q4x#V2O^1uK8kWF;gGQrFDX6 zSM<`T)~J$kUku{>%yc@QPFHYA0+1*m0a^bqIXiHP$}MBKI`I9fGsTKPYqOY_WxZv> zIHHr#VP#OY>3h!JMvtRA0LA3P$E)i7k|@M5W+tgYGT{##&s%yY*IH_h9WeKvkAj{JB?hWzq>$@R#4_%G zMO{|RKw3qs>NSD;UI#0;sOU{nrcyXaDh-;Bqzh9Q!bTonuKx3W-

Izm0u35B^Vl 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 mCrk&+{)pz zfF}7tThBwr%H6`v&c(yd*$Du=GcuD@oI1IQLjNAI$yKS8KJMpD$J72Ez#-!)%A|Eo zGULQrfABOnThpFJ!~pd*>qeB%-FvRZ`J!s!-P`!##8>K_J0}kZRGFk7KIeS+xmI3< zIxLn@lp%@xhsg%kP>j{5jPS?goFcC)T=niu=d%f4V3n+}HnL8z?Z1jQFB*GgyX`Lg zHpkBP!OOjG>aV4UU=iceMU#w_F)TXn(hyUc>yFVQ)TJdo%>E~DWK>p8$WyNU_i4(a z?FN@Q6UW;%{S?R`t4C^H!b;Gf@MAwuY0h2x%}LOKE$YHP#<~cN zjTAQrD_@;Sh99GX;Gxx2SSYXgnc5lK3p7cB-zHnPoE)JSL_%eakLx_)iYL;{e>6sG z&2k1~7E`C2eE6DPdt!D}gzRHr=ae-N(aXvXJRr_R*>}sx@&Hv&IhFsc}#gA196`lcIWw(#4i(32EdrOyBWYRm>jyMl(WwLhmk z%Y10wAwHn^ACaIdgoVxzfa&;n2~;w_H{nNjjvPIDd=vlK)4nGHj!($h7v6nGfs&OE zjKy4!+^BRyLi_Ho{SEOB4Oz0fHb3ks{+vHot(Kd2HgDPPqiRIcOx1d9fX6ep@XwbU zbiCTx%B`6O3>{_dQtfnrLzfg~dN+5ziGuXc-2*hB|64c)pxyO_ajl-|`mIjX^gEM2 zO+Te-?cwa((;0Uj$7$|;=LwsUcdn>z!;2Gomn-B zY|~mJLQQ0U)I$wdZ?t8?eQckD&E23~gVczB=gDQ?kyV=v_(=3y-^JIuNT6eD7IVLL zFElonHehilu^$5{E-p4qZ#Zaw$Aj|q@*8o4-#h{sSf}VXIy)_4CrEtD_Lb6l%fr;= zNZBhfZi^|$vCr`NONrW?3%$Fg2=NAbpv>*i;hi39m-uL{wZ1N_I=;MfOLtsG1m}Em zkJvWFWydAH8^48gp%W1{U_lAEIiy9IB?8u-u7tKiN zyH^uU<_!l%WvNrieDuWG!h|#=){E#(5A`ioFEqnfkCN$HT!0Gy6 zw|gH%*;~RMenDAyRTB);oc;te1%DVLmC$G>s1NJ<@`q8(g@e*jPpz;01ajTiGsIB) zey& zrhLiKZhy(^lx0G~bJ1+`V5B>tC%g(=nO#+D-4)P)Qo9oq1C$Zb$)u5YCK#-c@TUV* znb`0YO9@S+UrF_w^kG57shyUK-HxaRhe?x4@U8c+y36fW?tQotuZgmDlH`3}j5h14 z&5!s8?&~fl*FnQ2#9G4Pq}bSdJ~oj>*hBB3-zdOPYp~`TtI&vBLKAIwebGqAXSuk zra@Orgc+pzQFps|GPNhV#7Kh`h%hg<(F7%0@s1eZK$TBg+l6VQ*C6sjXM7-W zzq0nsJ^gQRm(OW?mCo6nn%1kdI8S;&;M-YQKI&OB^#1#5ljH=g!y4+VG4uuL#?K7B z&J{4)H9Pntz;Z}Gsnqb{GEDUZZIK-zT(4a=Y<3~r!%shRz_RY%7Nb&K*PpygrFmnPCWb#HMp?F838)eImw*5Lam<3!5TqKh) zz}Jt@L$EpTMIG`Umu?fU_-#5D1lTk8F1v=`I~C`qj*R-XzZ$&gf$o(%wVB=t0}@sK zv^H%Qy5Y}I0|$*ug#{<3qXDbI8_vi(q!dd&{d{+;E<|jeef^o}#S*rjrcO^QJ*e+s zojkInvhjOl#Pw%iu64+_LflHaHnc3Zul7(OWQ0|lVm;4?i>q?8HUcH*(miLi<+S+4 zyIisQ5h(jo_|DU#+ie%+%pW*fU9>O0Vz>S$&6S6{*Dj0u$w%T6EZn-eUc0a3A0Hoc zTP<^Y^eY4%Z!K*e-8hyWxD(vXDO>&#>mDDD*<5e-IbqHXzUl(utHrXi6AY93mH<|G z{I@83h?E606S%~kKc21HQ!_fG#cMM{%+sAgNJ@O){vh7yS(V5PmL**Tt_f;~|b^3O>f z=uW?4GlgfaoYSrszI7i^3k$ruIM^s8pcYWB(IQY$K@eRl4d{1e9^O}{mtX z>HX`XeGI!F{mj=xn&;*|sXnudMJ0WXH6^slRc9@frXN(wk;i$(5c-tyPXK9Dh&qNQ z>tiVb`Tz6gxH$pqdq@_jV_htfNF8L@pVSfWFn&-WRc0h z?9BIUH_}+lw?t(nor|AeTh7n#GF*fi>23BYp5k`Av_4d+Ky_&tD0J3w$r~6I)bryp!X@agB*Vt?7C4N zOHCx_ihs#0L&h_~&c}0jsh}LeKHiK^k{gv0_)E=P->UGZ=a7mCCns-q64LS7hd~Gv zglizc7uEr`w(>N>%Y(LmXjSow4+7dfs}22)>n&T#gaa`5R9D~^)D2e$Ko~xcKWKWd z==?}RRxTgQ*uP?QBU+9JM!mQivN8RVk0{!y8ZIX#))@Xax>3(nG;T#J7$}L14$CP4 zeNxXNbMDE@cRG5(XWq=WA~(RJsdPeh!rzrYiHGtNMbsh_g%KK$^~9{OzPLMSKi4N&XE6h)`X!Acq_}@KN?UMvy6(!|=-{au{G{60osAT)cVdD>RaKSS zveWmQ6h76TGDcR)4+Wf%kVO=%ZmBKoWM*(|4D*Y62@4BgdV%&WOe88zEv15`0GH^( z6)EUsvy-7ZxFOU*TT7@E`gyW1Gh-)#g)>An5Kiz7S7)p?tW7G%)bU*_QKdTf_wV2J z5f-MV425c0al5;Y8DhRu67*u(QGfqon}(tFjUHq+mNwk0?KoD!Alfxy*>doBZVNa%IXdFDzKEog;MmsqGV5Z^E}W}Qoaa2uBbZKjENn0U3usW|WS;fk#R?M8A?@tM#}V;FciI!Z{qF`xK0|~`a{ie*B#EXzPTF)2@$4ycdzo-FWdEWiVaj;%IQayu60HB_+4Jel0JX z55D%N2SXYW*lqOs;tv4 z*RPiI&gB;<(GhQ(0U#cWvsZk|Nw!LSu9phiP+$n>=X`5f+s1g0UiA?le%%&M_F8%+ z&n1~WUeNg3li9%X4k?$dPR#suZPzQWSFc_bm6gdPghkKQJI7ych^d2N6QR9fVq&sA z;~7+G&ipw+bPW^WsUD-6VE!3%%Qd?)K1}p7Yn1CS8TG7kIn6mziz0t++T6|t3o&dv z%7P3rXFd_=jh&mBClun&JHRP^emGL8Fcw~Wb`m{<0F(8@9A`;WAn5+Ep<=<~=n^Lv zf3>W;$9biM`E|vI*h(%@5vON4?Yyv4OtLN+-9E|k54;DoH zKD{@(5w@szeCpnN@M?2A7$KOWaj(xBXUMd7HLDb?)o^!QalPkRE_OC@dkh00qr;l> z=nlp3E&CjAi!LVwLEBPeNL66RW(Bl!FJn_YEJ{y_>NtQpkhz%fj1S z0aN|`x4YAAnT&E7?WTd8!ovFG)YKg5;CIJg=X=UqO*hqPvA?VueSCzkMniwXJ5VqI z>#p%;orh4Ss$Rm0rY0*eH&duy-u9c!A;=msO5eX9c>L|9w=Vh#ZF53+-w$#@nwwQx z%*^W+!ho;|VlTR+JO|&U%Bb(<@>;$lm7E~jHh5GT+BB~h(u1lk)N<#f3N#r71az#y z5UjMC2I2#n8|~fR4%dV{W=_U*PoF+*a1XqOc-T?ChqjO+9amcr^dg-NcINvhc2dJv za95!(>CEe7FHuD^kXXv8N@}lg>A5%~f;tx6pGlvE7+#e=@O*fV%Uik9RnIG6G?Vkj zXiM^v*9QcB^GXS{hQD7d;T_IiPu(=4N3nrsE0WYd;rK0H*Or+uiDE{mB$}uAs6I$} z{)?x)J3%AB;>TtrzyS>EcFl$}m833=Ujj9iGK|)&{ahhgh$qouUsW_r@Y8D0(Cj8O z(56D_OYE5@u=PmJ-MIHkeqKlEOAbM&tE~v7b#{f^7tBFa1>wJ^?P^~s)jIuiAs4^O zLO@dCuM8n)o`1fLw*P`Dn(SX_C7JxD%qiG@i2EOs^J2R(n^e&~m?}Z)BayuXo~+dW zp4Wu@f82aV{46WMI7TJsNg&unGBPp%K(RpcfOfyP?wLA2kC{1BGMTYY3mwr=qC)r@S*@$`n829Pcr&t0G zxo0;M$c|vLK@d1(2=kaw2N%fXiOM-t#hWwTvum>G&MeuimouhqFbbXlsDZ3F3k%di zf3u`Ers5afwteZtXmnu(PAv;79nSpGO2Kq|iS#aiAwvv6>sGMmrK|EX37{2hY3 zp8XtcIy{hCGaA9mj2iGUGEd|~W1GzAtx+>>RRY&AIV|SSCa#--( z{X?d-S_<^G@sa~H+jq3>R`YJI(+M&%GaF$wy1n(GIWT_d5jlR@yJZmb`?~Zq6n{t)UeI}8 zU-Cq`MICmUJn`6>CLf8&7e71JrUu^8J|(eF!gslK!uHttN5Gzp*AIIxCteVgh+l+5 zSc9SNYrB~v?0!aIW>6i}2p4&HPD@pooP>sfbt*l#uuP8wGV|5NsJv&?C`}z5tOCu* zpTW=)vE&!eRyaLs`A%DR{$cYo)4y9i`dEeBV|>(d^J4~SyS_PBQy*GBfrI}~fVANl zr@iHZ+U=ll8TJ*g_~};ZXZmt!YD(37L|CShP0h~BUyJ?(SWY@CyA;K&oNcj6scSA@ z-P(F5yMCF&;o5%zuV}-u#tWJjfi08Q-n$s2jgM`KL*s!YT zz1X? zci_vus=Xgz{Ia3>?4|viS{E0Oj#%m&p7ZJHw)XhQ!6CKph9>myKJ@(lO5YYld5GV9 z+zJ}1qXtXB`sO!erok_&HV*TE}DPs+b+?_2HLxlLzx2S|?-5 zlWH=#%2d_Dwzb4w=ZVkzJ%n+0hn&s2kL0;F;bj@yWZ$DaCL6E|--Ml2V zqt>Ghm;&0R?Aj7!2}fuKfvJjEC3s|j_TPFQ1B70byXSKH9)|jrC5wHA<>u&RJC35m zUlzTz_@ei#qq9ic!fk9OOzx8bJ`L|mqT~w>jZ~A!-1(=2Tq6&Juvx$+`yM+))+bGkOZ`*52=5%?mf>GL!>^FU30m zC}C2D(bUo8hJbD>_wIzS(rIkLyMrfh>9f=HqX8ZnNBUWB7R>{gb>(Lb(5gFHcGy8Tyeq-b-JY-Pbc=Lkc^bnbTFmQ{>WBA0h(QE zWN4VNh4m-&2^jFv*)z8BpMs1+=p`IkhYSCx7wh>fApr|Y$o|TDR&=feum6#cih(@|cV~ zlHl^43TfR9?As?`ChdX&qd#oaW)fM{EWsJKyo!pfh6ZsMKBc*ii5#J1Pd}9J%eOC_ zro#&(q0-l`rSmk+K9jIoGW$Lht?>KUchIvJE7R3LSjxUF`C%QQOGN@a%LG%@yZaF| zTrMin@V$^|fa`nPX&|N4P8)M|<15%%TLW2p>-fUK2?VpSaN5q!?D}5y$JVRd<;log zUHxj!Rx)06=g=7SbZb?S5@*UUT{GJhSv?h(k~aZ&hM3oe(-%i?r8w+&Fv@0bSuF(t zf6{7e{B0Y36J`QQ&}Y6dQ1bnrbfq^oSex0y>s@eXi^#k~(E4#=JK6d_4F~91XrPG? zxv!u$eH(5c#LOvq@tCIKQQ7(&gg`u>Dm|#rtNS5XQTT}Yp>D*EiHL~E!`b@cgk+*o zUVHK%1E`BE<3u%3j=+W2qJIJX}p({G4Sj#E(-Lk6i|m z#>Seg_y120C0pAfklm*B4Gm$M8l6n) zVCCM#y0ZF?5(1-bq7Q4;RF{p1Uzr}WW?(g6SA3X_EFQVLHYkB0z*VnL}!|v{lVawSSE-3{?u(qVbxWan=SsLdZ+qeDs z;~jgJLcj1=slWUBKPj7>Tu~_AfeE)h&3h(&<9teh-H~?C^l4Hgi6W})yzD5SA0hUJ z^)a3?53(j)Lt0%LX?yMQ#Qk_ICbZOZYz*Ju#AScJQ3u&EQ|=?a;6Og)K?C3G9^crQ zP{`rxJw8#Z{$=wWDuT;*6~@3G{12PcM>|N_iuo4xKG(76t>QY#^a^%^@HJop^+b#y zK5Dm z4@_|2M!F3|^TKFC$sJF=xzO}Klr7{X;b=2vROp$Q$JYKF3Ydlu24zJE%BVNdJX9O1 zuc6Lkz%~Y^=F>JXdt?x8LtA}$RTr^>RPX+3p1o@KXFQEW##z70Fb6tlT_Q(<^4BMR z;ZRJdbqngFh4w=yU=hVa8Le5-V3nCORpOy9J{mQgYcWdV%3mBq!}ne%rNI_P2WA)8 zrGNH3&QAQ|x_206{Y8$1nE2-((I)$keljvx(&!dx)sQ>9FS=LX!!PdKlZ}e|$X-^S zTM#w?;vIjMzD{2@R-HKXyEKg9v3i0@pAgJ*&Az#{71@44AM)eEz1&SUrgm%YTYNrT zK1WTJErY{SMV_58_2sKCT^K1HbmAS80#yCgL{68fT5M97q$2b~+P{CMs8@X{BBP*q z22K~lM%8nelsi+_>O+tZ$$#r)-OS{UnD7mJFWx4MRZjZ2!+Epa{EV4Nw?Q6W61cbx zTzWb*5CNtH-uweKc(&t_-UXU)<&jFq``ww>McA;XIWZNL{Uq1Yayf79McP1?frpU| zh&iI&A<$~DBG6U9>B+v**l$QS8_RMmuPNALlyxC#%oR6cD#K8RM`c&r0gh)a?L4ag zre!rga~Ew@h?P}r?T7MFR0boQ{^??K8s9Fop}ltJAugBAGQmY&g{btvEN?yj#hpTP z?8rv*p_&o*#5~~x(jXne!`N7w!&FMg#Q0jpUL`!j%;Ju{%P7E4n24gQY! zuiuYPi*3OH@aVT(jsM34`2RW<{vS7)Db=@OuS?X<4AR=hC@ko2U#gdPvAI9?Fg|i} z6w$KVLm^%mmQ5XGyfg4PcW@LbLGYi(mIPQ9==1op>I~AA2n=O-7LL!J^?hloP88Ge ztk(T6$o}fr0LKoQ^Rm@$|LzHkp$j_SUkVOtQ35g88bX6KkX(3P>-iacuyw9R@?*(o z-*WOmAQk|y3GUwoP|Lb5mw!__6}N3rk#)BkIfg>2eSK2k>?ZuU`EkFHs~;qzouWPV zb&V&y`tkNSeQqAXBn7#-lr-vEAl6Jnl(O%a?@aSU9kDe6hMrIRgX3xs=fegu_YP5~ zLgkt!dndZg21X|DkOoD!EbtFSFyhT)0G_&v=Nl5r{$I%8S`UDM$ z^lmNBATCZ-n+Dlz)?I?!owPUn_PAaSe!Fo8yZQZ_G=_KaE62*>u?zR3FKu`LNK+-3 zXel0epKAHCPkrT}^{7iXKX%lBTa3ckQ%T8+UTxCfxzM6Fy${wh@XXrR*&|{4oYe7b zvCPN$jD~D zr)r$M;`gf*&`EDSjNS6mON<0v9fc=FGoe6;HS4nwiP?OinZVB%@7{Q5Dnt4D?uY)4&3$R=*d4nDhF%;JJI%|EnW$ zTYQXc8wo?r4iRf)-6557oMYDnUprGFBMQxv(6Zcx12yQj4bGFQIT~~!`Y*CnO+=J9 zB($bBHdZ1F#2a1{qWvp5DvP3>&8VcGCH0`ouDeFfzEuSO!T;8Li&}~=YfKvq_0r}w*L6fQ(?DZ|-wf1E!iQ`%x zs;up*Wd`Tgn)-Ud_<@a$4HFAX7pUm=_Euh1HSEU^KJb3XqI2C(_=02JsR~ulluet$ zXF}*%aa$4!w(2HiBN|X1us#Z&VB}utXJ72mNOhgVK}w?*YyC%{Xtx6BY&riS4(xlcRY5mjkN*fkgi~${K}9kg(2E zcAO63In^NA-u_fx8V(@;rbbMcSBd$q80px{%UBYjAynnnG^dll^tWnX`07<%W-%*x z0@2rp3uJ4v6H`-{{xGqaBi@Ykw&N*5k4lZ7qB)H$HoUf9T-L=%4yFN5jA~H#PZ8bE zctBG2T1ZGTN8R=e#5cu>pPP(DdPv(LS$Y8PpvggH;*a2;DNQ#wx0tEFlb^>=xsm$n zIVWRj=@5r9SSHFv^Kdo-1EHsn0y$xtfE?whI)q9*YbXOm>Fi3vAz0f$a;^epLDomt zsU|*&?@#`NCywi@d9S?Seh``rX8BSzJI^Op5V$yR<*01U2=mQGKe8Nq^d z5qkUflVhL)#6ZWBMd3_M=)H3?ige)nWtbrdgQR-TGHw2QT;GZhBxGjB{;(NYKBasQ zhwlY2M4w_{VDPxD$~QDOJ8a(N6joN!7HpY+M|&{@{Xq%}&~sF7j8~!LEux`81M0|x zia1&cO^UeM+dL&dBMF?lxzZ?QjwcH{P5wJbr-%u zz_{MS2~M~5yzSd8QJP%fp(g2o?VtO?BsWnoQ=r$}*%9u0Hw4L_`WEqU2;1?2A9@@q zT)te5m?DjE8Yk8Y|4E*+f@&c6oGZ^3gR;_~4Ik!Q6n`-4%YO2XBMYfw!FcvHPQV*)E0C8+^J2Oj(;vQ!qD=&AK1{#vaS=>tR!+U68$;g=l`f6q`%gcjd4n5UoH6JA)p|uDpMh48uY&afHgoi diff --git a/tgstation.dme b/tgstation.dme index 143f66a656..9291d1c2b8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -808,8 +808,6 @@ #include "code\game\machinery\mass_driver.dm" #include "code\game\machinery\navbeacon.dm" #include "code\game\machinery\PDApainter.dm" -#include "code\game\machinery\poweredfans\fan_assembly.dm" -#include "code\game\machinery\poweredfans\poweredfans.dm" #include "code\game\machinery\quantum_pad.dm" #include "code\game\machinery\recharger.dm" #include "code\game\machinery\rechargestation.dm" @@ -887,6 +885,8 @@ #include "code\game\machinery\porta_turret\portable_turret.dm" #include "code\game\machinery\porta_turret\portable_turret_construct.dm" #include "code\game\machinery\porta_turret\portable_turret_cover.dm" +#include "code\game\machinery\poweredfans\fan_assembly.dm" +#include "code\game\machinery\poweredfans\poweredfans.dm" #include "code\game\machinery\shuttle\custom_shuttle.dm" #include "code\game\machinery\shuttle\shuttle_engine.dm" #include "code\game\machinery\shuttle\shuttle_heater.dm"